Skip to content

Releases: sugarlabs/musicblocks

Spring 2024

02 Jun 23:12
Compare
Choose a tag to compare

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

11 Sep 23:09
Compare
Choose a tag to compare

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.

Screenshot from 2023-09-11 19-00-51
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.

Screenshot from 2023-09-11 19-01-09
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).
Screenshot from 2023-09-11 19-08-27

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"

16 Jan 16:23
cd28a98
Compare
Choose a tag to compare

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

Screenshot from 2023-01-16 11-18-40

##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

29 May 18:46
Compare
Choose a tag to compare

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.)

sampler

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:

Read more

Christmas Eve

24 Dec 18:26
Compare
Choose a tag to compare

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.)

Highlights:
grid-menu

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

17 Nov 14:44
Compare
Choose a tag to compare

A few corrections to v3.4 including:

  • missing Japanese transations (thx Devin)
  • fix regression in block rendering
  • fix regression in hidden palette display

Dictionaries

12 Nov 22:57
Compare
Choose a tag to compare

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

07 Sep 00:08
Compare
Choose a tag to compare

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

JavaScript Widget

Saksham added an oscilloscope widget that displays the wave form of the music as it is playing.

Oscilloscope Widget

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:

stats

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.

Mode Selector

and a converter block for pitch.

Pitch Converter

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

03 Aug 20:35
010d7f9
Compare
Choose a tag to compare

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

Screenshot from 2020-08-01 10-04-55

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

25 May 11:47
Compare
Choose a tag to compare

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.

Subtract one from Block

XOR Block

Mouse count Block

The mouse will wrap around when it goes off the screen.

76876053-63af3a80-6897-11ea-8dcc-a32152fafc77

Details: