Music Blocks -- A musical microworld
Clone or download
Failed to load latest commit information.
FAQ Created a draft of a comprehensive FAQ, based on real questions (#1259) Jul 29, 2018
activity update repo location; update examples links Apr 7, 2018
bower_components/prefixfree IE detection Dec 6, 2016
charts Music Blocks Guide Artwork (#1514) Nov 8, 2018
css Porting toolbars from easel.js to HTML (#1490) Nov 8, 2018
documentation-es clean up help Nov 18, 2018
documentation-ja clean up help Nov 18, 2018
documentation-kana clean up help Nov 18, 2018
documentation clean up help Nov 18, 2018
examples 2018 11 08 update examples row your boat (#1525) Nov 8, 2018
fonts Fixed #1548 (#1549) Nov 13, 2018
guide-es update URLS Apr 9, 2018
guide-ja update URLS Apr 9, 2018
guide-zhCN update URLS Apr 9, 2018
guide Update Block Guide Artwork (#1547) Nov 12, 2018
header-icons new artwork Oct 16, 2018
images make the background for pie menus almost invisible Nov 10, 2018
js clean up help Nov 18, 2018
lib Better responsiveness when toolbar width < 400px (Fixes #623) (#1554) Nov 16, 2018
lilypond update repo location; update examples links Apr 7, 2018
mouse-art Add files via upload (#484) Jan 18, 2017
msie_flashFallback IE detection Dec 6, 2016
planet Replaced placeholder translation function in Planet (#1523) Nov 8, 2018
plugins fix typo that broke sin Jul 4, 2018
po 2018 11 12 input revised gakken ja (#1551) Nov 19, 2018
screenshots update to show on beat do examples with graphics Sep 27, 2017
sounds cleanup Nov 10, 2018
usermanual added usermanual module Sep 26, 2017
.gitmodules added usermanual module Sep 26, 2017
.travis.yml specify node.js Mar 16, 2017
COPYING -x Jan 2, 2017 update repo location; update examples links Apr 7, 2018 update repo location; update examples links Apr 7, 2018
Licence.txt -x Jan 2, 2017
Minsky.jpg reduce image size Jan 2, 2017
NEWS -x Jan 2, 2017 Added a draft japanese translation of the README (#1258) Jul 24, 2018 add 2018 data Oct 19, 2018
android_chrome_manifest.json this is Music Blocks Mar 14, 2017
cache.appcache Porting toolbars from easel.js to HTML (#1490) Nov 8, 2018
config.xml -x Jan 2, 2017
favicon.ico -x Jan 2, 2017
index.html don't reference deprecated file Nov 18, 2018
loading-animation.gif back to using animated gif due to performance issues with movie Mar 31, 2017
localization.ini new JA strings Nov 19, 2018
manifest.json Remove allowance of unsafe eval Jan 6, 2018
manifest.webapp added some missing elements Sep 16, 2017
package.json more cleaning up of widget code Mar 19, 2017 add macro support; remove errant eventListener Jan 6, 2018
script.js Porting toolbars from easel.js to HTML (#1490) Nov 8, 2018 -x Jan 2, 2017 first commit May 31, 2015
sw.js remove mespeak until we find a suitable replacement Nov 10, 2018


“All musicians are subconsciously mathematicians” – Monk

Music Blocks is a collection of manipulative tools for exploring fundamental musical concepts in an integrative and fun way.

alt tag

alt tag

Using Music Blocks

Music Blocks is designed to run in the browser.

The easiest way to run Music Blocks is to open Music Blocks in your browser (Firefox, Chrome, and Opera work best).

If you want to run Music Blocks offline, download (or git clone) this repo and point your browser to the index.html file found in the musicblocks directory on your local file system.

You can also run Music Blocks by setting up a local server.

Sugar users can run Music Blocks as an app embedded in the Browse activity (See Music Blocks Embedded) or simply open Music Blocks in Browse.

See Using Music Blocks and Music Blocks Guide


Music Blocks is a fork of TurtleBlocksJS created by Walter Bender.

Devin Ulibarri has contributed functional and user-interface designs. Many of his contributions were inspired by the music education ideas, representations and practices (e.g. aspects of matrix, musical cups) developed and published by Larry Scripp with whom Devin studied at New England Conservatory and for whom he worked at Affron Scripp & Associates, LLC.

Center for Music and the Arts in Education (CMAIE)

Music in Education

Some of the graphics were contributed by Chie Yasuda.

Much of the initial coding of the fork from Turtle Blocks was done by Yash Khandelwal as part of Google Summer of Code (GSoC) 2015. Hemant Kasat contributed to additional widgets as part of GSoC 2016. Additional contributions are being made by Tayba Wasim, Dinuka Tharangi Jayaweera, Prachi Agrawal, Cristina Del Puerto, and Hrishi Patel as part of GSoC 2017. During GSoC 2018, Riya Lohia developed a Temperament Widget. Ritwik Abhishek added a keyboard widget and a pitch-tracking widget.

Many students contributed to the project as part of Google Code-in (2015–16, 2016–17, and 2017–2018). Sam Parkinson built the Planet during GCI 2016–17. Euan Ong redesigned the Planet code as a series of GCI tasks in 2017–18.

A full list of contributors is available.

Reporting Bugs

Bugs can be reported in the issues section of this repository.


Please consider contributing to the project, with your ideas, your music, your lesson plans, your artwork, and your code.

Programmers, please follow these general guidelines for contributions.