mScore.js
A JavaScript library for musical typesetting and more
mScore.js is in ongoing development and receives frequent updates. The current version is ???. mScore.js’s features include:
- Scores can be loaded from mScore.js’s own XML format, which is designed to be human-readable, intuitive and very concise for fast typing. Scores can also be created on the fly through JavaScript commands for use in interactive situations.
- mScore.js supports a growing number of features of traditional musical typesetting, including multiple stave systems, unlimited numbers of voices, clefs, keys, line justification, fine-tuning of positions and note stems. For more convenient input the user can pre-define rhythm patterns with which to lay out the entered notes.
- Notes and other items can be arbitrarily colored. mScore.js uses pre-rendered sprites for high-performance screen drawing.
- mScore.js provides an audio module for playback of musical scores. Sounds are generated in real-time. The synthesizer is a modified version of the Musical Keyboard module courtesy of Keith William Horwood (much obliged!)
- An interaction module provides capability to select/modify content with mouse/keyboard (only elementary hovering/selecting/dragging implemented as of now).
See what mScore.js can do:
- mScore.js Showcase
- Notation training excercise 1: Writing intervals (Coming soon)
- Training for singers: scales
Resources for composers and musicians
- Interactive manual
- Score database editor (under construction)
- Calculating a note’s accidental from a key (for the curious)
Resources for software developers
- mScore.js’s sprite model and path language (under construction)
- SVG and mScore.js path editor
- mScore.js content language technical specification (under construction)