October Surprise
This is a release of the work done during Google Summer of Code, 2019.
Favor Kelvin worked on numerous optimizations to the code. Her work resulted in enhancements to performance and robustness. Sparsh Agarwal worked on widgets. He made a number of UX improvements to the Phrase Maker and the Musical Keyboard.
Details:
UX
- bring mice home with home button.
- reduce easeljs framerate to ease CPU consumption
- clear on load -- but not on opening load dialog
- clear graphics when loading new project
- don't auto-exit numeric piemenus
- don't autoexit note value piemenu
- Fix position of mouse icon (#1866) @tanhengyeo
- Add better keyboard icon (#1869) @tanhengyeow
- fix css bug for help div
- disable tabbing
- add message when processing keyboard shortcuts
- add tool tips for tuples
- use pie menu for bpm3 block
- Clicking on error text box hides arrows @benlangham
- Added styles for error text @benlangham
- Show and populate HTML error message instead of using canvas @benlangham
- Add error message HTML element and onclick function to hide @benlangham
- uniformity of the "x" icon in the widgets @fakela
- debounce resize buttons
- add +/- for number values
- allow for arrows to change number block value
- fixed the drag issue in help
- Meet Mr.Mouse logo changed to LOGODEFAULT (#1672)
- Encircling effect on top icons … @Aniket21mathur
- stop playback when undo is pressed
- update colors to match numbers palette
- save as collapsed
- use highlight color during playback
- add support for setting voice
- add scalar delta pitch block
- Drag icon disappear fix
- show/hide block indicator
- Layout changes to welcome tab
- update position block names
- renamed the left, right, top and bottom blocks (#1711)
- Change x default for scrollxy to 100; 100 is more obvious than 10 (#1710 …
- use increments of 15; use smaller font when there are > 20 items
- enabled the scrolling of palettes on smaller android screens (#1743) …
- inc/dec block size indicator (#1734)
- fix problem with cursor y position when aux toolbar is open
- add pie menu for on strong beat block
- add raindrop sample
- Media Palette: "left/right" and "text" blocks are confusing fixes #1709
- Action name collision avoidance is overly zealous #1846
- Enter [Return] to complete input #1845
- help scroll should not scroll header #1787
- There are some buttons with no icons on the windows of tutorial #1784
- Rhythm Blocks inside an instrument clamp should play the
G_4
default pitch #1543 - Hertz Lilypond Output Implementation #1353
- Export to BPM from Tempo widget #1766
- Color-scheme to differentiate motion vs pitch vs drums for Phrase Maker #1783
- Improvements to Pitch Pie Menu for Octave #1724
- floor tom tom --> floor tom #1727
- Set Synth to affect playback for PTM #1698
MISC
- update to Tone.JS v13.8.25
- no recorder with new tone.js
- worked on service worker to enable offline usage and caching (#1802) … @fakela
- add loudness to beginner palette (except JA) and ensure screen is ref… …
- add access to other mouse heaps
- assign default start for scalar step
- handle step pitch in music keyboard
- Rename set timbre to set instrument @tanhengyeow
- Add TRANS messages to Planet strings (#1868) @tanhengyeow
- fix bug in calculating transpositions off the top or bottom of the scale
- add missing help artwork
- don't allow blank action or box names
- give run block a default arg
- run block from block name
- allow pitch inputs to random
- adjust map pitch to drum
- don't allow 0 BPM
- don't allow neg. BPM
- fix blink -- was intermittent due to timing of refresh
- added promises to timeout @fakela
- replace timeout calls with async and await @fakela
- added promises to blocks.js and refactored the palette promises code @fakela
- switched from promises to async/await @fakela
- {fixes} security issues with dependabot (#1797) … @fakela
- added gulp task runner to musicblocks @fakela
- added async await to palette.js @fakela
- use i18n when exporting block values
- better handling of solfege mapping with modes of length !== 7
- allow avatar block to accept boxes, etc.
- adjust base volumes
- Electron-based offline build (#1751) @ukkari
- use taiko for Japanese drum
- fixes #1745 -- reset synth every time we hit play
- working on help function @jshreyans
- Fix Brazilian Portuguese translation (#1721) @afmachado
- update block graphics
- update colors
- use navigator.language to detect language for splash screen
- add rest symbols
- fix regression in box renaming
- Updated Crab Canon examples to HTML, add movable Do and guitar (#1692) @pikurasa
- Fixing Context Wheel overlapping (#1687) @Ashnidh
- Fixing Help widget overlapping (#1684)
- Fixing Pie menu overlapping (#1679) …
- restore save stacks to my blocks palette
- fix GIANT NOTE bug by using font instead of image
- Spelling error in readme (#1702)
- corrected typos in index.html (#1708)
- Fixes #1719 (Crab Canon) | On "weak beat do" is one arg block (#1763)
- Don't use number names for turtles by default
- Correct "on every note do" for help (#1723)
- fix bug where wrong note value is assigned when block division is gre… …
- add doc for mouse index heap
- Fix tuplet handling in Lilypond #1381
Show heap
does not run when in a script afterwait for
fixes #1851- (Regression?) in lilypond output that breaks .ly file #1778
- regression in advanced menus #1849
- bug in beats per minute #1840
- (pie) pitch preview drones when crossing the octave #1786
- Notes cluster together when "asked to wait" #1512
- Possible Choices for Search no longer display #1782
- Prevent Rapid Succession of Block Exports from Widgets #1781
- Collapse Notes look fine upon creation, but load funny #1780
- Corner Case that hides Palette Menu Completely #1779 -- redisplay palette after close
- Divide icon does not render (FF only?) #1773
- Notes after mistaken tie all performed simultaneously #1764
- Tones of simple1 and sine are the same #1758
- Name display bug on Tutorial #1761
- Fixed timber widget synthesizer issue (#1760)
- Should not allow to add multiple filters of same kind #1155
- drag icons fix (#1707)
- fixes increment help string problem identified in #1568
- On weak beat do" looks like a mess #1715
- Drum Consolidation for Rhythm in PTM #1699
- Moveable = True for Crab Canon Example #1281
- Clicking cancel on file save causes filename to be "null". #1690
- Pen does not follow mouse cursor #1680
PHRASE MAKER
- use default BPM factor when previewing notes
- track duplicate note blocks --- see #1156
- add bellset for do5
- preserve format of starting pitch when using step pitch in Phrase Maker
- Change Phrasemaker defaults to Notename = Alphabet (#1871) @pikurasa
- added the promises to timeout in pitchtimematrix.js @fakela
- added columns edit functions @sparsh0204
- new label colors for ptm
- add separate colors for notes and drums in phrase maker
- fix regression in tuplet processing for matrix
- Corrected phrase maker tuplet display error @sparsh0204
MUSIC KEYBOARD
- fixes add note -- part of #1877
- fix add/delete/divide -- part of #1877
- convert from arrays to objects
- add set instrument entries
- partial fix to #1877 -- store objid in layout
- add changes for music keyboard so keyboard and box are both visible.
- display matrix of notes as they are played.
- Change selectedNotes from array to JSON object @lucasturci
- change notesPlayed array to json object @lucasturci
- use voice in playback
- fix regression in note duration; key press highlight
- add color to indicate a key is pressed. fix problem with mouse out ra… …
- Advanced mode and other bug fix for Musical Keyboard @sparsh0204
- add, divide, delete menu for nite durations @sparsh0204
- fixes #1822 -- enable scalar step inside Music Keyboard
- Keyboard key top corner click fix (#1824) @sparsh0204
- new added note adds next note @sparsh0204
- reverse order of blocks inside music keyboard
RHYTHM RULER
- merge rulers when saving rhythms for PTM