Releases: sugarlabs/musicblocks
Spring 2024
This is a maintenance release, but it does incorporate some new features added by Google Summer of Code interns.
Highlights:
New features:
- Bulk delete
- !=, <=, and >= blocks
Improvements:
- search behavior
- palettes
- PieMenus
- tour
- widget behavior
- Planet navigation
New sample projects:
- folk song
- crossword puzzle
- quiz example
- rock-paper-scissor
- typing game
JS Doc style added to most functions
Documentation/Guide edits/improvements
Lots of translation clean up, including Spanish, Hindi, Hebrew, Italian, and Japanese.
Post GSoC 2023
We (mostly @MohitGupta14) made a lot of progress this summer, largely on "behind the scenes" issues that make a big difference in performance. Most notably, the interface for touch devices is much improved and many issues around screen size (and resizing) have been addressed.
There is now a Record Button on the the main toolbar (just to the right of the Stop Button). When the button is pressed, its center will turn red and video recording of your project will begin. Clicking on the button a second time will stop the recording and you will be prompted to save the recording to the file system. Note that recording is not available on some browsers, e.g., Firefox.
There is also a Full Screen Button on the main toolbar (just to the left of the New Project Button). Pressing this button will cause Music Blocks to enter full-screen mode. Use the ESC key to exit full-screen mode.
The One-of-this-or-that Block on the Numbers Palette now has numeric defaults (0 or 1). There is a new macro block available on the Pitch Palette that lets you use pitch defaults (do or sol).
Many thanks to all of the contributors and testers. And thank you to Google for allowing us to participate in GSoC 2023.
"It's been a while since a formal release"
While we have been mostly working in Music Blocks v4, we still continue to make some enhancements to Music Blocks v2.
##Enhancements
- more sample projects
- updates to some sample projects
- migrate .tb projects to html format
- accidents in staffs
- chord block
- arpeggio block
- set default instrument block
- improvements to dictionary blocks
- improvements to splash screens
- eslint on all code
- overhaul of the guide
- updates to help artwork
##Bug fixes
- make sure there are always effects and filters
- Possible Regression with Oscillator in Timbre Widget
- fix race condition with switch logic
- fix regression in octave calculation
- music keyboard should be showing up in beginner menu
- fix bug in grid when selecting drums
- don't use drum with settimbre block
- fix issue with drum exports
- fix regression/bug with multiple drums
- account for custom temperament index outside of octave
- Loading Projects by Dropping into Browser Window Broken
- fix regression due to refactoring of activity.js
- fix issues with argument parsing for graphics blocks dispatched inside notes
Tip of the hat to:
https://github.com/sugarlabs/musicblocks/commits?author=sethafancher
https://github.com/sugarlabs/musicblocks/commits?author=srevinsaju
https://github.com/sugarlabs/musicblocks/commits?author=Traitor000
https://github.com/sugarlabs/musicblocks/commits?author=agathata
https://github.com/sugarlabs/musicblocks/commits?author=eterny13
https://github.com/sugarlabs/musicblocks/commits?author=S-kus
https://github.com/sugarlabs/musicblocks/commits?author=pikurasa
PreGSoC 2021 Release
The plan is to have this be the last release of v3 of Music Blocks. All of our efforts beginning with GSoC 2021 will be put towards Music Blocks v4, which will be a major refactoring of all aspects of the code. We will continue to accept bug fixes to the v3 branch, but no more new features will be added. New contributors should please focus on the 4.0 efforts, which can be followed here: https://github.com/sugarlabs/musicblocks-v4-lib and https://github.com/sugarlabs/musicblocks-v4
Regarding this release, it has largely been dedicated to bug fixing and general tidying up of the code, but there are a few new features worth mentioning. Liam Norman has added support for end-user samples (you are no longer restricted to the samples provided by Music Blocks.)
There were major improvements to many of the widgets. The plugin mechanism has been overhauled. And developers may appreciated that the code is now free of eslint errors.
Thanks to everyone who contributed to the code and the testing, including Will and Henry Rico.
Here are all of the PRs from this release:
- #2927 pitchdrum widget for full screen functionality @kevinzheng17
- #2946 Fix: Concat text string inside a Note by @daksh4469
- #2943 Activity refactor by @walterbender
- #2942 Fixes Mouse Name Block Connection issues by @ksraj123
- #2938 Fix: Print simultaneous with the note by @daksh4469
- #2937 Fixed : NaN appearing in Stats by @joykirat18
- #2934 Collapsible define temperament and define mode blocks by @daksh4469
- #2932 Blocks cleanup by @walterbender
- #2930 Persistent text block for define temperament by @ksraj123
- #2929 Regression Fix: Add check to avoid name undefined errors by @daksh4469
- #2926 Bug Fix: Force stop runnning project on New Project by @daksh4469
- #2923 fixes #2907: When new project button is pressed, the original project is first saved by @tborich
- #2922 lessonplanv14-14 by @sandyliu418
- #2919 Create BO-README.md by @ghostcoder12
- #2918 Renamed README for MusicBlocks by @pmccabe5
- #2917 Added README for the Examples folder by @pmccabe5
- #2916 bottom button issue fix #2913 by @KaranSingh1301
- #2910 Create a README for the examples folder by @jhones212
- #2909 Added an example classification README_1.md to musicblocks/examples/ by @CormacDC
- #2908 Add oscilloscope visualizer to sampler widget by @liamnorm
- #2904 README for the examples folder with organization by @pmccabe5
- #2903 pitchdrum-mapper: Implement Stop Functionality and enhance UI by @daksh4469
- #2902 BugFix: rhythmruler widget does not render individual pause buttons by @daksh4469
- #2901 BugFix: rhythmruler widget does not render individual pause buttons by @daksh4469
- #2899 StatsWidget: Fix regression in frequency values when using custom pitches by @ksraj123
- #2898 Correcting Auxiliary Menu Spelling by @Arjit222830
- #2897 Update in ReadMe file by @Arjit222830
- #2895 Rhythm Ruler Widget: fix rulers overflowing outside widetWindow and enhancements to fullscreen mode. by @ksraj123
- #2894 Mode Widget: enhancements to fullscreen mode by @ksraj123
- #2893 Statistics Widget: Enhancements to fullscreen mode by @ksraj123
- #2892 Oscilloscope Widget: Enhancements to fullscreen mode by @ksraj123
- #2887 Correcting Auxiliary menu Spelling by @Arjit222830
- #2886 Correcting Auxiliary menu spelling by @Arjit222830
- #2885 Fixes bugs in PhraseMaker with custom pitch and custom temperament by @ksraj123
- #2884 Souptik main by @souptik4572
- #2880 Updating README.md by @Arjit222830
- #2879 Updating README.md by @Arjit222830
- #2878 Bug Fix: Tooltip of Collapse Icon by @daksh4469
- #2877 Fixes regression in overlay of full-screen mode and disables full-screen in some widgets by @ksraj123
- #2874 Enhanced the UI of search-bar and its suggestions by @daksh4469
- #2873 fixing cents wrt C only for higher frequencies in temperament stack with custom octave ratio by @ksraj123
- #2871 Define temperament - custom pitch names by @ksraj123
- #2870 Update root documentation to target more beginner contributors by @meganindya
- #2868 Sampler widget no longer attempts to play a sound on load, changes to play button. by @liamnorm
- #2863 Fix regressions in MusicKeyboard widget by @daksh4469
- #2862 Temperament export save regression fix by @ricknjacky
- #2861 Temperament export save bug fix by @ricknjacky
- #2860 Sample block and sampler widget by @liamnorm
- #2857 Update the MusicKeyboard widget on maximizing. by @daksh4469
- #2856 Sample block and sampler widget by @liamnorm
- #2855 Oscilloscope: Error Fix and UI modification by @daksh4469
- #2854 Bug Fix: Pitch Staircase Widget by @daksh4469
- #2851 Fix: palletes for plugins not loading by @ksraj123
- #2849 Multiple Bug Fixes and Enhancements to Music Keyboard by @ksraj123
- #2847 musicKeyboard: fix extra octave generated with hertz blocks by @ksraj123
- #2845 Bug Fix, Temperament Widget: Play and Stop not working properly by @daksh4469
- #2844 Fixing regression in Music keyboard widget block with alignment of blocks by @ksraj123
- #2843 Fixing regression in lillypond by @ksraj123
- #2841 musickeyboard.js: Enhanced the UI on maximizing the musickeyboard widget and fix bugs. by @daksh4469
- #2840 Andantino by @Giuliani
- #2838 widgets/status.js: Improved UI of status widget by @daksh4469
- #2837 pitchstairecase Bug Fix: Sound keeps playing even after closing the widget. by @daksh4469
- #2835 blockfactory.js: Add global locations and constructor JSDoc by @daksh4469
- #2834 Initial cleanup by @meganindya
- #2832 WidgetWindows: UX Enhancement by @daksh4469
- #2831 Linting and Prettify: All files in js/turtleactions by @daksh4469
- #2830 turtleactions/DictActions.js: Linting and Prettify by @daksh4469
- #2829 Feature: Set Key - Multiple custom modes by @ksraj123
- #2827 FAQ/README.MD: Fixed some typos and grammatical mistakes. by @daksh4469
- #2826 widgets/musickeyboard ES6 port, enhancements etc. by @ricknjacky
- #2825 Fixing movable do - set key not working as expected by @ksraj123
- #2824 widgets/statistics.js: Add JSDoc Documentation by @daksh4469
- #2823 refractor: utils/munsell.js: linting, prettify by @abhishekkumar08
- #2822 refractor:utils/mathutils.js:linting by @abhishekkumar08
- #2821 notation.js: Linting and prettify by @daksh4469
- #2820 js/activity.js : prettify, linting and jsdocs by @abhishekkumar08
- #2819 mxml.js: Prettify and Linting by @daksh4469
- #2818 basicblocks.js: Pretiffy,linting and JSDoc Documentation by @daksh4469
- #2817 utils/platformstyle.js: Pretiffy, Linting and JSDoc Documentation by @daksh4469
- #2816 refractor/boundary.js by @abhishekkumar08
- #2815 Refractor/languagebox.js by @abhishekkumar08
- #2814 utils/musicutils.js: Pretiffy,linting and JSDoc Documentation by @daksh4469
- #2813 js/turtleactions: refactor, lint & prettify by @ricknjacky
- #2812 widgets/jseditor.js: Linting and Prettify by @daksh4469
- #2811 toolbar.js: Prettify, Linting and JSDoc documentation by @daksh4469
- #2810 toolbar.js: JSDoc, Refactored and Prettify by @daksh4469
- #2809 refractor:js/logo.js by @abhishekkumar08
- #2807 Fix Bug in Arbitrary Edit Tab and improvements in Tempo Widget. by @daksh4469
- #2806 Lint, Pretify js/js-exp files by @ricknjacky
- #2805 Help artwork for wrap block by @ksraj123
- #2804 BugFix: custom mode block mode preview by @ksraj123
- #2803 timbre erratic svgs update by @ricknjacky
- #2802 Corrected spelling errors and checked grammar of README.md by @Hackerbone
- #2801 Refractor/pastebox.js by @abhishekkumar08
- #2799 js/blockfactory.js JSDoc and ESLint by @ricknjacky
- #2798 refractored: turtles.js JSDoc, lint and prettify by @abhishekkumar08
- #2797 Trash.js file JSDoc, Lint and Prettify by @ricknjacky
- #2796 MusicKeyboard: BugFixes, ES6 port, linting. by @ricknjacky
- #2795 Feature: Wrap Block by @ksraj123
- #2794 BugFix: missing exit wheel in piemenus of temperament, invert and some other blocks by @ksraj123
- #2793 Rhythm Maker solving regression, linting & jsdoc by @ricknjacky
- #2792 widgets/timbre.js JSDoc style comments by @ricknjacky
- #2791 refractor/pitchslider:fixed linting errors and added js docs by @abhishekkumar08
- #2790 Fix linter changed files identification by @meganindya
- #2789 BugFix: Scalar step behaving incorrectly inside invert by @ksraj123
- #2785 Refractor/status.js by @abhishekkumar08
- #2784 Refractor/tempo.js by @abhishekkumar08
- #2783 BugFix: Scalar step behaving incorrectly inside invert by @ksraj123
- #2782 BugFix: strage behaviour for mouse events in some widgets by @ksraj123
- #2781 Refractor/pitchdrummatrix.js by @abhishekkumar08
- #2780 Feature: dragging windows to top to maximize - windows/widgetWindow by @ksraj123
- #2778 Refactor: widgets/pitchstaircase.js - lint, prettify and documentation by @joykirat18
- #2776 Update UI of Temperament Widget by @daksh4469
- #2775 BugFix and Refactor : widget/modewidget.js by @joykirat18
- #2774 BugFix and Refactor : widget/modewidget.js by @joykirat18
- #2773 Add class to js/widgets/temperament.js and port ES6 to syntax. by @daksh4469
- #2772 Temperament BugFix and ES6+ port by @ricknjacky
- #2771 meterWidget: fix sound playing indefinitely on reload and enhancement to fullscreen mode by @ksraj123
- #2770 refractor:widget/statistics-lint, prettify and documentation by @abhishekkumar08
- #2769 Oscilloscope lint-pretify and jsdoc by @ricknjacky
- #2768 Refactor: widgets/help - lint, prettify and documentation by @ksraj123
- #2766 BugFix: Phrase Maker - play stop button by @ksraj123
- #2765 No wrapping in middle of fill by @ksraj123
- #2764 Port ES6 and added classes to js/widgets/temperament.js by @daksh4469
- #2763 Porting ES6 widgets/rhythmruler.js by @joykirat18
- #2762 BugFix: doSearch is not defined by @ksraj123
- #2760 Update a function to ES6 Arrow Func...
Christmas Eve
This release pulls together a number of small enhancements and bug fixes. It is the final release for 2020. (Expect some major enhancements in 2021.)
A new pie menu for selecting the grid
And we have some new contributors:
@ricknjacky
@ksraj123
@zaidjamal-create
@codescientist703
@sj00coder
@RinkiyaKeDad
@kushal-khare-official
Issues closed:
#2605 loading projects is veeeery slooooow
#2661 [Deprecation] Web MIDI
#2537 Build Scale Logic Refactoring
#2575 regression with block resizing
#2516 Phrase Maker Styling for shorter notes
#2291 Not all Pitches play in Example
#2349 Preview for Temperament Widget Only Plays Octave
#2350 Temperament: Multiple Custom Pitches
#2351 Temperament Widget Enhancements
#2234 Sample Instruments Pitch is not Transformed
#1898 Combination of On strong beat do
and On every note do
not working
#2095 Issue with Box and JA's "Hako"
#1934 Infinite note in Phrase Maker
#1877 modifications to the grid view breaks playback
#2250 skip notes block not functioning
#2287 Set Heading not fully executed before "input value" begins
#2701 UI of 'show Cartesian' button.
#2718 Global Search Broken
#2711 Help Widget Erratic Behavior.
#2728 CSS broken on share button in Global Planet
#2729 share button for Local Planet is wrong
#2717 Search bar not closing after clicking on search row
#2705 Reference error in "phasemaker.js"
#2702 'DrumLabels' is not defined
#2699 Re-declaration of some variable.
#2690 Add scroll to help widget
#2172 Tour window imperfect positioning
#1101 Contributor Guidelines
#2667 Phrase Maker not allowing for more than one repeat of "modal length" for scalar step
#2338 Add automated and semi-automated testing
#2632 Investigate console errors in production
#2609 Lint and Prettify JavaScript files
#1107 Row Row Row your Boat in 12/8 meter
#2013 collapsing notes with embedded notes is broken
#2646 "Merge" Feature should keep the current project`s name
#2239 accidental block implementation is dubious
#2404 ecstatic is deprecated and a vulnerability
#2649 New name when opening project via planet
#2662 Title bar of JavaScript editor got hidden on maximizing it.
#2317 Repetition of block names when searching a block name using search tool
#1153 Problems with adding multiple filters
#2302 Set Relative Volume is Broken
#1891 Note Counter
and Sum Note Values
#2251 Beat Events triggered regardless of whether a note is played
#2564 Accidental Support for Pitch Converter
#2389 Set Pitch Number Offset does not work
#2347 Unknown Block on Custom Temperament Save
#2334 Funny behavior with the multiply note value clamp
#2189 Broken pitch add/update in Phrase Maker with note or repeat blocks
#1872 Solfege in Phrase-maker with Scalar Step should generate Solfege
#1859 Note Visualization for Notes input via Musical Keyboard
#1655 Projects vanish if you select 2 categories
#1589 Disappeared grid lines in Pitch Time Matrix
#1675 Resizing MB causes thumbnail to misbehave
#1842 bug in 120 beats per minute, 1/12 beat value
#843 Shepard tone
#823 rethink sharp and flat | Perhaps have the block appear when selected
#663 Complete Software Keyboard by Piggeh
#789 APK fails to run on Android 4.4.2
#719 "factor of" block
#2420 Three "do" in search | More description appreciated WF6-Needs testing
#1882 Tag Suggestions for Planet Publish
#1853 Upload and download functionality in Planet does not seem to work
#1381 Erratic Behavior for Set Drum Block Good first issue
#1744 Recorder breaks synth
#1860 music keyboard only saves default synth
#1825 attach other functions to music keyboard
#2563 oscilloscope continues to run after stop
#1463 Make middle mouse scroll more sensitive
#1118 Start is initiated when saving as .wav?
#1299 Possible to type into search with iBus Japanese (only on Trisquel)?
#2052 Enable scrolling in palettes menu
#2485 Two Design Issues with Pitch Slider
#1899 Accept MIDI input
#1873 A forgiving broken 'pitch' block
#2370 Ctl-V pasting of .tb code block rendering issue
#2596 merge project from Global Planet
#2184 Widget reopen after some time
#2221 "Hover" as a sensor event
#2603 blocks not always expanding properly
#855 Drag to edge of screen with "enable scrolling" on should scroll the screen
#2395 Pitch in hertz Cannot be found | Values in Pie Menu Cannot be found
#2190 Temperament Widget: action block generating issue
#2483 Action Block support for Phrase Maker
#2310 Does Store in Box
have two name inputs?
#2263 Repeat of zero (and below)
#2254 Blocks generated by Temperament Widget are jumbled at the left side of the screen
#2606 Store in Block Issue
#2622 CSS issue in opening Modal
#2624 Error 404
#2615 Could not load sourceMap
#2616 Issue in card CSS in planet
#2612 Timbre UI Issue
#2617 Merge and Open button in Global Planet Card
#1900 Update Musical Keyboard Documentation
#2587 support dictionary blocks in export-js
#2607 Error in Manifest.json
#2586 translations needed for dictionary blocks
Spot check 2
A few corrections to v3.4 including:
- missing Japanese transations (thx Devin)
- fix regression in block rendering
- fix regression in hidden palette display
Dictionaries
We have accumulated enough small bug fixes to merit a new release. The most significant change is the introduction of a Dictionary object (thx to Christopher Liu for the inspiration). One fun thing you can do with the dictionary code is to query (and update) the individual mouse dictionaries -- a simpler and more general way to do "ensemble" communication.
To simplify using Music Blocks for presentations, an Erase Media block was added. This makes it easier to do transitions in slide shows, etc.
Other changes/updates:
- Improvements to the Guide
- Show project title when you load from the planet (thx ricknjacky)
- Updated the Japanese translations (thx pikarusa)
- A regression was fixed in the Camera block. (thx ricknjacky)
- Fixed error with erase on pitch staircase eliminates starting pitch
- Fixed regression in "On Every Note Do"
- Fixed rotating a tablet causes work to be lost Issue-Bug (thx favor)
- Fixed Hertz block pitches exported from Phrase Maker
- Fixed Music Keyboard misplacing octave of sharp keys
- Update background when updating background color
- Fixed when running from an event, don't flush the event queue
- Fixed don't display grid name when showing grid
- Fixed semi-tone interval measure
- Fixed scalar interval measure
- Fixed scrolling issue with keyboard widget (thx ricknjacky)
- Added drums to keyboard; fixed add menu
- Fixed issue with grid display of notes w/o blocks in Phrase Maker
- Added Solfege class; cleaned up pitch to color; pitch to octave; et al.
- Added help for beat factor block
- Calculate beat factor based on current note value -- See #2371
- Enabled stand-alone scalar step
- Always sort to remove repeated blocks in widget
- Check for planet when running offline
GSoC 2020
Thanks to the efforts of Anindya Kundu (@meganindya) Aviral Gangwar (@aviral243), and Saksham Mrig (@sksum), we have made tremendous progress on Music Blocks this summer. (Tip-of-the-hat to the GSoC mentors as well: Favor, Sumit, and Devin.)
Anindya added a JavaScript widget that converts blocks to JavaScript. You can learn more here
Saksham added an oscilloscope widget that displays the wave form of the music as it is playing.
Also, the Music Keyboard widget now considers beats per minute (BPM) and Tempo when generating notes . The widget also accepts Midi as an input source.
Saksham refactored the Stats widget:
And he made numerous improvements to the palette, block search, and the on-every-beat-do logic. He also added a block that lets you pan audio from left to right. And he upgraded to the latest version of Tone.js.
Aviral added a pie menu for setting a preferred mode and scale that makes it easier to preview and select notes.
and a converter block for pitch.
Other highlights:
We had a new contributor (@athenajq) who added a pie menu to the BPM block.
Christopher Liu and Martin Abente Lahaye packaged Music Blocks with Flatpak.
Issues closed since the last release:
#2499 _buildScale() doesn't process Cb Major.
#2535 BPM and Meter Widget
#2533 Phrase Maker and Hertz
#2549 backward block seems to play twice
#2396 Use plus block to formulate scale degree
#2550 Changing Meter has no impact on "On Every Beat Do"
#2551 default synths not initialized for companion turtle Issue-Bug
#2513 Regression on Rawgit Issue-Regression WF6-Needs testing
#2548 regression: last start block should not go into the trash Issue-Regression
#2481 Pitch Preview Bugs and Enhancements
#857 Statistics better oriented for musical parameters. Issue-Enhancement
#2543 Forward inside Note Block fails to run from JS Widget
#2390 On every beat do
is always one beat behind
#2520 Run Slowly and Step-by-Step is broken Issue-Regression
#2505 Sugarlabs.org version (release, I assume) not passing smoke test Priority-High WF1-Need more info
#2527 Increase Click and Drag Area in Palette
#2521 Putting pitch blocks directly into trash does not generate silence Issue-Regression
#1767 missing Meter Widget features Issue-Enhancement
#2469 Octave is Stubborn for Scale Degree Issue-Regression
#862 Accidentals accurate to "set key" selection Component-Lilypond Component-key/mode Issue-Bug WF1-Need more info WF4-In development
#2301 Pie Menu for Beats Per Minute Blocks Good first issue Issue-Enhancement
#2495 Regression in Simple Tuplet and Tuplet (Phrase Maker) Component-Widget Issue-Regression
#2484 Spurious Initiation when a Widget is open Priority-Major
#2510 JS Widget: Please output pitches to logs (for now)
#2486 No "Did you mean to use Note Block" error for Phrase Maker
#2434 Update Tone.js to V 14.7.39
#2465 upgrade to latest tone.js release Component-Tonejs Issue-Enhancement
#2466 close search after selecting a block Good first issue Issue-Enhancement
#2474 oscilloscope widget should auto-open on play Component-Widget Issue-Enhancement
#2482 Mouse/Turtle should not be draggable when shrunk
#2494 Use Print Block for Display Grid
#2506 y to pitch fails for most neg. numbers Issue-Bug
#2406 hertz to color Issue-Enhancement
#2479 openFile block regression Issue-Regression
#2440 pitch preference menu should rotate on click Issue-Enhancement
#2373 Measurement Blocks' Clamp does not work WF6-Needs testing
#2467 Not opening (fatal) Issue-Bug Priority-High WF6-Needs testing
#2459 No way to toggle back to beginner mode Issue-Regression Priority-Major
#2478 missing graphics Issue-Bug Issue-Documentation
#2475 output of y to pitch cannot be played by any pitch block variant Issue-Bug
#2473 hovering over home icon on music blocks page shows Home[HOME]
#2444 Oscilloscope Widget Component-Tonejs Component-Widget Issue-Enhancement
#2464 select turtle/mouse in oscilloscope block clamp Component-Widget Issue-Enhancement
#2463 add icons for zoom buttons in Oscilloscope Widget Component-Widget Issue-Design
#1475 More unit testing, please: Some samples are only in a single channel of stereo? WF1-Need more info
#2439 new JA strings from pitch menu Issue-Japan Issue-Translation
#2411 Scale Degree is acting "wonky" WF6-Needs testing
#2398 y to pitch converter Issue-Enhancement
#747 Down/Up arrow on keyboard scrolls screen in FF (and Left/Right does nothing) Browser-Firefox Issue-Bug WF6-Needs testing
#604 Stereo (Left <--> Right) Block Issue-Enhancement Priority-Minor
GSoC 2020 Midterm
Thanks to the continued efforts of @aviral243, @sksum and @meganindya, we have a number of new features to release:
- Much of the code is refactored into a Model-View-Controller framework (in anticipation of JavaScript export)
- There are numerous enhancements to the core vocabulary for describing pitch, including nth modal pitch and a refactoring of scale degree
- The palette code is refactored to circumvent race conditions and improve performance
- The on-screen buttons are refactored to be more robust
- A collection of musical staffs are added to the grid display
- New translations for Aymara and Quechua
- An Android app is in the Google Play Store
Issues closed since the last release include:
#1463 Make middle mouse scroll more sensitive
#2339 Some block images fail to load in "take a tour"
#1957 Choose Key in Menu; Changes Central Options in Pitch Pie Menus
#1454 Crescendo "within a note"
#2143 wrap graphics Issue-Enhancement
#1432 Add zoom option to the Palette Issue-Enhancement
#2241 Recommended Tags (on Planet) arbitrated by blocks used
#2252 On Every Beat Do
#2329 Display Grid Block Issue-Enhancement WF6-Needs testing
#2367 In music blocks tour, the "Show palette containing blocks" button doesn't work
#2385 Revamp Palette
#2426 Missing Images from Help
#2423 regression in on-every-beat-do Issue-Regression
#2414 add 1 block not working properly when pitch is stored in box Issue-Regression
#2415 removing a box from a pitch block has unexpected results Issue-Bug
#2376 Min (Pitch 1) - Max (Pitch 2) for Random Component-key/mode Issue-Enhancement
#2372 Declutter Interval Palette by Removing Verbose Macros
#2374 Noise block Pie Menu is broken WF1-Need more info
#2361 Check for regression due to porting Issue-Regression Issue-Testing Priority-Major
#2305 Print Letter Class, Solfege Syllables and other Tools Component-key/mode Issue-Enhancement
#2366 Searching a blocks loads two blocks of the same type Issue-Bug
#2326 regression in print block when used with Lilypond Component-Lilypond Issue-Regression
#2353 mouse over/mouse out events not working as expected Issue-Bug
#2058 Scale Degree Design Path Proposal Component-key/mode Issue-Enhancement
#2320 add staff display to grid cycle Issue-Enhancement WF6-Needs testing
#2319 Int in the back end for n^th modal
#2335 Issue with Mode Pie Menu
#2323 regression in backwards block Issue-Regression
#2315 Mice associated with bezier blocks rotate on project load
#2285 Zero Based Indexing for Scale Degree block and it's subsequent renaming to nth modal pitch Component-key/mode
#2288 Paste JSON only works once
#2293 Turtle loses track of position on running a turtle movement block after a bezier block is executed
GSoC Bonding Period Release
Thanks to the efforts of @aviral243, @sksum and @meganindya over the community bonding period for Google Summer of Code 2020 we have a large number of bug fixes and enhances we are pushing out to celebrate the start of the coding period. (Tip of the hat to other community members as well.) We'll be making another release at the end of the summer based on the work we anticipate completing during the coding period.
New features include a Subtract 1 from block, strong beat defaults for common meters, xor, count mice, and a global wrap graphics mode.
The mouse will wrap around when it goes off the screen.
Details:
-
Update palette.js executing showmenu "after" all visible palettes are closed (fixes #2060) @sksum
-
add store in box to beginner mode (#2280) @aviral243
-
interactive example @walterbender
-
add missing artwork @walterbender
-
define a macro for pitch offset block (#2278) @aviral243
-
add minor to MUSICALMODES (#2276) @aviral243
-
Octave calculation fix for scale degree block (nth modal pitch) (#2275) … @aviral243
-
Update blocks.js Octave block auto-generates when removed from a pitch block @sksum
-
fix regression in invert block @walterbender
-
deducto game example @walterbender
-
make default value for mod == 12 -- more musical @walterbender
-
Fix broken play pitch (#2260) @meganindya
-
fixes issue Combination of
On strong beat do
andOn every note do
not working #1898 (#2258) … @sksum -
special case to handle adder for boxes with solfege @walterbender
-
fix args for setMouse block @walterbender
-
fix logic error in StartMouse code: break instead of return @walterbender
-
Complete var to let refactor in js/blocks (#2249) … @meganindya
-
use floor for number to pitch arg @walterbender
-
fix la# and check proper list for SOLF names @walterbender
-
use doubleflat literal @walterbender
-
fix errors in synthutils (#2248) @aviral243
-
let to const (#2247) @meganindya
-
Fix variable scope (#2240) @meganindya
-
let in utils 1 (#2226) … @Ishakikani9117
-
fix set pitch number offset block argument type (#2245) @aviral243
-
new example @walterbender
-
fixes input block does not connect to broadcast block #2235 @walterbender
-
fix regression in boxes palette update @walterbender
-
Update synthVolume on setMasterVolume (#2229) @meganindya
-
Fix set drum overriding set instrument issue (#2219) … @meganindya
-
add lilybin as an additional service (#2223) @aviral243
-
Add transposition definition (#2211) … @aviral243
-
let there be let (#2217) … @Tobenna-KA
-
Fix issue of broken keyboard after input block (#2213) … @meganindya
-
Fix variable scope (#2215) @meganindya
-
Update widgetWindows.js … @sksum
-
Added scroll Feature to widgetWindows @sksum
-
Additional
bool
property for flows.left (#2212) … @aviral243 -
add missing transposition code @walterbender
-
fix regression with abc notes @walterbender
-
change scope of variables @walterbender
-
add wrap button help entry (#2205) @aviral243
-
replaced comparision operator(==) with identity operator(===) @Ishakikani9117
-
fixed minus and multiply @Ishakikani9117
-
Convert block map into dictionary structure @meganindya
-
fix typo in keyboard code @walterbender
-
fixed gulpfile and gitignore (#2199) @aviral243
-
Fix broken change pitch in phrase maker when note or repeat blocks pr… … @meganindya
-
var to let @Tobenna-KA
-
fixed redundant code and added coercion comparison where needed @Tobenna-KA
-
let there be let (abc.js, activity.js, basicblocks.js) @Tobenna-KA
-
add tooltip data for wrap button @aviral243
-
Added wrap enable/disable button @aviral243
-
Fix improper restore issue with note and repeat blocks in Phrase Maker ( … @meganindya
-
minor refactor, var to let in index.html (#2191) @Tobenna-KA
-
minor refactor, var to let in index.html @Tobenna-KA
-
only three playback modes now @walterbender
-
Add initial sorting if note or repeat block @meganindya
-
Fix improper restore issue @meganindya
-
widen widget so 1/32 fits @walterbender
-
fix isNaN problem @walterbender
-
add some explanation of input @walterbender
-
added "contextWheelDiv" to list @sksum
-
add missing help @walterbender
-
close all wheelnavs and labels when scrolling @sksum
-
add input blocks @walterbender
-
fixed grid (#2183) @Ishakikani9117
-
fix regression with back block @walterbender
-
Conditional rendering of like button tooltip in planet (#2158) … @aviral243
-
Update sorted variable after a change in pitch (#2180) @meganindya
-
Fix repeated notes not played issue @meganindya
-
Fix invalid access @meganindya
-
Generate notes to play/save on the fly @meganindya
-
Improve appearance of Wheel Menu (#2175) … @meganindya
-
Implemented new features in individual help divs @aviral243
-
changed loadBlocks icon and button positioning @aviral243
-
Added a find button in helpdiv @aviral243
-
Added icon for advanced blocks @aviral243
-
wrap canvas for (forward & back) … @sksum
-
fix regression due to widget window closing @walterbender
-
switch from 0.0.0.0 to 127.0.0.1 @walterbender
-
fixes Reproducible method to creating an Infinitely long note with Phrase Maker #2164 @walterbender
-
using svg @walterbender
-
more checks @walterbender
-
cycling through advanced blocks @aviral243
-
cleanup and fixed left/right arrow behaviour @aviral243
-
cycling through beginner blocks help @aviral243
-
prepare beginner/advanced blocks list @aviral243
-
setup div to show block help after last page @aviral243
-
fix regression in block value update @walterbender
-
Update turtle.js @sksum
-
fix broken heap logic @walterbender
-
fix syntax error for minus block @walterbender
-
count mice @walterbender
-
add xor block @Ishakikani9117
-
update debug artwork @walterbender
-
close any open widgets when loading new projects @walterbender
-
no decimal points for coordinate status @walterbender
-
fix scale @walterbender
-
resize block (#2154) @Ishakikani9117
-
subtract @Ishakikani9117
-
fixed typo in timer @b18050
-
fix subtract block svg (#2149) @aviral243
-
Input translations for visible ommissions in hard mode @pikurasa
-
Spelled out subtract @aviral243
-
added help svg for other languages @aviral243
-
Added decrementOne block svg @aviral243
-
Change arg value to -1 for subtract one block @aviral243
-
Added subtract one block prototype @aviral243
-
removed unused cleanCSS const (#2114) @arteevraina
-
Added prettier with gulp (#2116) … @arteevraina
-
fix official app repository link in plugin readme (#2138) @aviral243
-
fixes #2096 -- use consistent method for show/hide @walterbender
-
adding debug output to help diagnose mysterious Print problem on server @walterbender
-
add more details re No-clock Block @walterbender
-
fixed a typo in logo.js (#2135) … @Ishakikani9117