The Patchbay_

Tonal Alternatives

Looking for an alternative to Tonal? It's functional music-theory library for notes, intervals, chords, scales and keys in JavaScript. Below are 17 other composition & notation tools for making music with code — how each compares, and when it's the better choice. Every option is verified against its own source.

AlternativeLanguageLicenseBest for
abcjsRenders ABC-notation text into SVG sheet music with optional MIDI playback in the browser.JavaScriptMITEmbedding editable, playable sheet music from ABC notation on a web page.
AbjadPython API for building LilyPond files to produce publication-quality music notation.PythonGPL-3.0Algorithmically composing and engraving complex contemporary notation.
AldaText-based music composition language; write and play back scores from your editor and terminal.Go / KotlinEPL-2.0Composing multi-part scores as plain text.
Bosca Ceoil: The Blue AlbumBeginner-friendly step-sequencer music maker; a modern Godot port of Bosca Ceoil.GDScript (Godot)MITQuick, fun melodies and chiptune-style tunes for newcomers.
FrescobaldiPowerful, lightweight text editor/IDE for LilyPond music engraving with live score preview.Python (PyQt)GPL-2.0-or-laterEngraving publication-quality scores with LilyPond.
isobarPython library for expressing and manipulating musical patterns for algorithmic composition.PythonMITBuilding generative, pattern-based music and sonification pipelines.
LilyPondText-based music engraving program that produces publication-quality sheet music from plain-text input.C++ / SchemeGPL-3.0-or-laterHigh-quality, reproducible score engraving and programmatic notation pipelines.
MelroseInteractive Go tool for programming melodies as expressions and playing them live over MIDI.Melrose (DSL, Go)MITComposers who think in melodic/algebraic expressions and drive external MIDI gear.
MuseScoreFull-featured free music-notation and composition app with a QML/JavaScript plugin API.C++ (plugins in QML/JS)GPL-3.0-onlyComposing, engraving and sharing conventional sheet music.
music21Toolkit for computer-aided musicology and symbolic-music analysis and generation.PythonBSD-3-ClauseAnalyzing and manipulating symbolic scores and computational-musicology research.
PartituraPython package for handling symbolic music: MusicXML, MIDI, Humdrum kern, and MEI.PythonApache-2.0Research pipelines that parse and analyze symbolic music across formats.
SCAMPComputer-assisted composition framework hubbing playback and notation from Python code.PythonGPL-3.0Composers who want to script music and get both audio playback and notation.
VerovioFast, portable library for engraving MEI music scores to SVG, with MusicXML/Humdrum/ABC import.C++ / JSLGPL-3.0Server- or browser-side engraving of MEI/MusicXML scores into SVG.
VexFlowTypeScript library for rendering music notation and guitar tablature in the browser (SVG/Canvas).TypeScriptMITProgrammatically rendering music notation/tablature in web apps.
TeoriainactiveLightweight JavaScript library for classical and jazz music theory: notes, chords, scales, intervals.↔ head-to-head vs TonalJavaScriptMITLightweight music-theory calculations when a maintained lib like Tonal isn't required.
mingusinactiveMusic-theory package for notes, scales, chords, progressions, and MIDI playback.PythonGPL-3.0Exploring and computing Western music theory in Python.
MusPyinactiveToolkit for symbolic music: convert between MIDI/MusicXML/ABC and load ML datasets.PythonMITPreparing and converting symbolic music datasets for machine-learning research.

Notable picks

abcjs JavaScript · MIT

Renders ABC-notation text into SVG sheet music with optional MIDI playback in the browser. Best for embedding editable, playable sheet music from ABC notation on a web page. Versus Tonal: it's also written in JavaScript, so switching is low-friction.

Abjad Python · GPL-3.0

Python API for building LilyPond files to produce publication-quality music notation. Best for algorithmically composing and engraving complex contemporary notation.

Alda Go / Kotlin · EPL-2.0

Text-based music composition language; write and play back scores from your editor and terminal. Best for composing multi-part scores as plain text.

Bosca Ceoil: The Blue Album GDScript (Godot) · MIT

Beginner-friendly step-sequencer music maker; a modern Godot port of Bosca Ceoil. Best for quick, fun melodies and chiptune-style tunes for newcomers.

Frescobaldi Python (PyQt) · GPL-2.0-or-later

Powerful, lightweight text editor/IDE for LilyPond music engraving with live score preview. Best for engraving publication-quality scores with LilyPond.

Related JavaScript tools

Other JavaScript tools worth a look, from adjacent categories.

Gibberish.jsgibberwockyMidiWriterJSNexusUIOrca
← Tonal overviewAll composition & notation tools