Write it anywhere
Plainsong is a faithful subset of music notation in plain text. If you read music but not code, you already understand most of that block — it's a lead sheet with the bars drawn in. If you write code but not music, the thing to know is that you never declare durations: write how many events happen in a bar and the bar divides itself.
Hear it immediately
The Playground is a working compiler in one HTML file — parser, arranger, MIDI writer, and a player. It's checked against the reference Python compiler by running both over the same notation and comparing the pitch, start, and length of every note: triplets, 3/4, 6/8, chord qualities, stacks, sustains, rests, and repeated rows.
Believe the simulations
Two of the system's ideas are hard to believe from prose, so the Playground lets you touch them:
- The subdividing bar — change how many events a bar holds and watch the bar divide itself, live.
- The 0 ms stage — four players and a listener on a stage you can drag. Move the ear onto the podium and the four sounds land 0 ms apart. Move it anywhere else and they don't.
No server, no build step, no network. Nothing you type leaves the
page — you can even save it and open it from file://.
Works offline. Also on PyPI: pip install plainsong —
zero dependencies, enforced by CI.