About this project

abcjs is a JavaScript library for rendering standard music notation in a browser. It lets websites display sheet music from ABC notation text, and can also generate MIDI files or play them directly in the browser. Key capabilities described in the README: - Render ABC text as sheet music on a web page, including sites you do not own via a greasemonkey script, or by adding a single JavaScript file to an existing page containing ABC text. - Generate MIDI files and play them in the browser. - Transposition: input an ABC string and get a new ABC string in a different key (introduced in 6.1.0). - Chord grid view similar to trad jazz lead sheets, with options for chords only or chords above standard music (6.6.0). - String tablature via an option to the renderAbc parameters (6.0.0-beta.36). - Improved handling of repeated sections for more complicated repeating patterns (6.6.0). - Audio control styling via abcjs-audio.css, and a default soundfont hosted by the project. The README notes version 6.7.0 removed files under test, so imports like `import abcjs from "abcjs/test"` no longer work. Version 6.6.0 added chordGrid and new repeat handling. Version 6.4.0 changed chord accompaniment creation. Version 6.3.0 changed underlying SVG structure for top and bottom text. Version 6.1.2 wrapped each line in a `<g>` element. Version 6.0.0 moved out of beta, and the last version supporting midi.js is 6.0.0-beta.28. The default branch was renamed to main, and old versions moved to a separate historical repository. An informal roadmap for version 7.0.0 mentions architecture changes: a clearer synth API, a plugin architecture, a TypeScript build while keeping legacy browser support, size reduction, better spacing control, improved synth documentation, and bug fixes. Documentation is at docs.abcjs.net, examples at examples.abcjs.net, and related projects are collected under the abcjs-music organization. The project is supported by BrowserStack and welcomes contributions including documentation, bug fixes, testing, refactoring, modernizing tools, and features.