Skip to content

Releases: sugarlabs/musicblocks

Pre-GSoC-2026

15 Feb 13:10
c78b31f

Choose a tag to compare

Tip-of-the-hat to everyone contributing in the run-up to GSoC 2026.

This release is largely a maintenance release. Lots of bug fixes and performance enhancements.

End of Year 2025

31 Dec 19:58

Choose a tag to compare

Music Blocks Release Notes

We are thrilled to announce the latest update to Music Blocks, driven by our incredible community! As of this release we have more than 300 contributors. And this release is the product of more than 150 Pull Requests. It brings powerful AI tools, creative widgets, and significant performance improvements to your musical programming environment.


🌟 Highlights

AI-Powered Exploration

  • AI Debugger: Stressed about a bug? Our new intelligent assistant helps identify coding errors and explains music theory concepts to keep your creativity flowing.
  • AI-Generated Samples: Instantly expand your sound library with unique, AI-crafted audio samples.

New Interactive Widgets

  • Reflection Widget: An AI assistent will help you reflect upon your creations and help you think critically about your learning.
  • Lego Widget: A new way to visualize and build rhythmic structures literally composed with Lego blocks.
  • Sampler Tuner: The Sampler Widget now includes a built-in tuner for precise pitch control of your custom sounds.

User Experience & Design

  • Dark Mode: A sleek new interface option for those late-night composing sessions.
  • Animated GIF Support: Bring your visual art to life with GIF integration.
  • MIDI Export: Ready to take your track further? Export your creations as MIDI to use in other digital audio workstations (DAWs).
  • JavaScript Import: Seamlessly transition from blocks to code by importing scripts directly from JavaScript.

🛠 Improvements & Tweaks

  • Enhanced Instrumentation: New high-quality samples added, including the Mandolin, Sitar, and Koto.
  • Advanced Debugging: Major enhancements to the JavaScript editor and debug modes for a smoother developer experience.
  • Global Accessibility: Expanded i18n support with improved translations for Hindi, Urdu, Chinese, Hebrew, Portuguese, and more.
  • UI/UX Polishing:
  • Significant improvements to the Toolbar and Read Pixel functionality.
  • Better support for Electron (desktop version).
  • Comprehensive updates to the official documentation.

⚙️ Maintenance & Stability

  • Core Infrastructure: Successfully migrated to i18next for more robust internationalization management.
  • Quality Assurance: Achieved nearly 100% test coverage, ensuring a more stable and reliable platform.
  • Responsive Design: Resolved numerous layout and scaling issues to ensure Music Blocks looks great on all screen sizes.

🚀 Looking Ahead

We are already working on the next generation of collaboration! In 2026, look forward to a full GIT interface which will replace Planet, allowing for even better version control and project sharing.


Related blog posts:

2025 New Year Release

12 Jan 16:07

Choose a tag to compare

This release is the culmination of many contributors -- we are now at 249 total contributors!!! It is largely a maintenance release -- many bugs have been squashed and little annoyances addressed.

We've also (finally) begun adding unit tests!!!

Alas, many of the AI features developed during GSoC 2024 are not yet deployed -- we are still sorting out hosting details for the requisite LLMs.

Tip of the hat to all of our new contributors.

Some highlights:

  • French language support has much better coverage
  • Many updates to the documentation
  • Lyrics support in Phrase Maker
  • octave limits consistent throughout the interface
  • pen commands work properly inside note blocks
  • better menu support for smaller screens
  • more notifications throughout
  • live waveform visualization in sampler
  • more built-in EDOs for temperament
  • pitch selector pie menu clean up
  • many code optimizations

Spring 2024

02 Jun 23:12

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

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

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

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

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

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

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