tonaljs/tonal
A music theory library for Javascript observed · 2026-08-28
Health v2 · maintenance only
75/100
- Activity 94
- Release rhythm 35
- Longevity 100
Flags: no_releases no_license
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: n/a
- age_days: 4065
- days_rel: n/a
- days_push: 36
- n_releases_24m: 0
Adoption not part of the score
4223 stars · 252 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
Tonal is a TypeScript music theory library for JavaScript that provides pure functions to manipulate notes, intervals, chords, scales, modes, and keys. It deals with musical abstractions rather than actual sound, and is published as a collection of modular npm packages usable in Node or the browser.
Use cases
- convert note names to midi numbers and frequencies
- transpose notes and chords by intervals
- get the notes of a scale or chord
- detect or name chords from note collections
- compute chord inversions and scale degrees
- work with key signatures, modes, and roman numeral progressions
- parse ABC notation in a web app
When to choose
- you need music theory calculations (notes, chords, scales, keys) in JavaScript or TypeScript
- you want a small, modular, dependency-free library with a functional API
- you're building a music education tool, chord app, or theory-based generator in the browser or Node
When to avoid
- you need audio playback, synthesis, or sound generation - Tonal handles abstractions only
- you need real-time MIDI hardware I/O or DAW integration
- you need notation engraving or score rendering
Facets
library · maturity stable
parser serialization developer-tools audio web-development frontend education browser cross-platform music-theory chords scales intervals transposition typescript functional-programming midi key-signatures chord-progressions nodejs web-server
3 sources
- readme: https://github.com/tonaljs/tonal · fetched 2026-08-28 · 9d4958db1a15
- homepage: https://tonaljs.github.io/tonal/docs · fetched 2026-08-29 · 093e520312f1
- registry_npm: https://registry.npmjs.org/tonal · fetched 2026-08-29 · 80d6660727f2
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| tonaljs/tonal | main | 75 |
For agents
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem