What is ScoreScript?
ScoreScript is two things at once:
- The Language. Music written as plain text, in a shorthand musicians and composers recognize.
- The Engine. That plain text, easily shareable on multiple different platforms.
With the engine, you can
- Write complex music — the full score, every part and playback, out of one file;
- Embed what you write — a live score, editable in place, on any website;
- Build with it — the same engine, inside your own app or site.
Our goal: preserve your music, share across platforms, and own your work.
meter 3/4
key G
*Andante 4G(mp)~ B ~D | (>)2.E< | 4D~ C ~B | <(!)2.A(f) |||The language
-
Notes and rhythms
A capital letter is the pitch,
AtoG. The rhythm comes first, as a number or a lowercase letter —1GandwGare the same whole note.1wwhole ·2hhalf ·4qquarter ·8eeighth1G -
A series of notes
A duration is written on the note that changes it, and every note after it keeps that duration. Numbers and letters mix freely in the same phrase.
4G A hB | qC D eE F G A | 1B ||| -
Higher and lower
A number after the note fixes its octave, however far it is:
C4is middle C,C6is two octaves above it.1C4 | 1C6 ||| -
The nearest note
Leave the number off and the note takes the octave nearest the one before it — after
C4, a bareGis the G below, not the G above. An apostrophe lifts that choice an octave and a comma drops it; write two to move two.4C4 G G' G'' |||C4, then G3 — the nearer G. G'is G4,G''is G6. -
Measures and meter
A bar line divides the music exactly where you write it, and
|||ends the piece. Until you say otherwise a bar is 4/4 — every example above is.meter 3/4changes it, andmeter nonelets bars run whatever length the music wants.meter 3/4 4G A B | 4C D E | 2.F ||| -
Durations
4is a quarter,2a half,2.a dotted half,1a whole. The letters say the same thing:wwhole,hhalf,qquarter,eeighth. Lowercase is where durations live, which is why a pitch is a capital:qGand4Gare one note.wG | hG hA | qG A B C | eG A B C D E F G ||| -
Everything hangs on the node
A mark written before the note prints above it; a mark written after prints below, and a word after
*is the tempo. The source sits the way the score does.*Andante (>)4G(mp) A B C ||| -
Slurs and ties
A connector opens after its first note and closes before its last, so the endpoints draw the figure and the notes between stay unmarked. Between two of the same pitch it is a tie, and it carries across the bar line.
4D~ E ~F G~ | ~1G |||One slur, D to F. Then a tie, held over the bar line. -
A page of music
The same language holds a whole score: parts, voices and bar numbers in one file. Twelve hymn settings are ScoreScript masters now, one file each, and the packet they go into is built from them.
parts { voice: "S / A" voice: "T / B" } voice { m1-2 { v1 [ 4A4 Bb G A | 1Bb ] v2 [ 4F4 D E F | 1F ] } } voice { clef bass m1-2 { v1 [ 4C4 Bb C C | 1D ] v2 [ 4F3 G C, F | 1Bb, ] } }Four voices on two staves. Each bar names its own voices, so nothing is declared anywhere else. -
Who writes with it
- A composer types a phrase in Explore and hears it back.
- An arranger sets a hymn in minutes — four voices and a repeating rhythm, typed once instead of clicked in.
- A teacher keeps a packet of exercises as one file that prints a part per instrument.
-
LilyPond came first
For nearly thirty years LilyPond has shown that music written as text can be engraved beautifully. It is free software, built on a close study of traditional engraving, and a large free library of scores, the Mutopia Project, exists because of it. ScoreScript owes it that proof.
The difference is who the text is written for. LilyPond's input is written for its engraver: commands, contexts and a programming language give a typesetter control over every detail of the page. ScoreScript's text is written for the musician.
LilyPond ScoreScript Written for The engraver The musician reading it One note g4\mp(4G4(mp)~Seeing the score After it compiles As you type Where it runs A program run on the file One engine: the browser, the command line and embeds Maturity Decades of refinement Pre-alpha
The engine
The point is not one program. A score written this way can go wherever text goes, and one Rust engine draws it there: the command line, the browser through WebAssembly, the language server, and the AI tool boundary.
This is the other half of ScoreScript. The way Mermaid turns a few lines of text into a diagram wherever they are placed, the same ScoreScript text placed in a page, a note or a README becomes the engraving where it sits.
-
Live
Try it now
Explore runs in the browser. Nothing to install.
Explore -
Live
Put a score in your notes or on a page
the Embed dialog gives a live-editor address for a Notion
Embedding/embedblock, an image URL for Notion, Markdown, a README or HTML, and a ready-made<img>tag. -
Pre-alpha
For developers
the
Integrationscorescriptcommand line, thescorescript lsplanguage server, and thescorescript-mcpserver. Today you build them from the repository, which is not public yet.
Mission
Music should not be tied to the program it was written in. Notation programs keep scores in files only they can open, and when a program ends, as Finale did in 2024, the music written in it is left stranded. A PDF survives, but a PDF is a photograph of a score: nobody can change a note in it.
ScoreScript keeps the music itself as text a musician can read, with an engine that runs wherever text goes. A score written this way can be opened, printed, played and changed long after any one program is gone.
Why open source
AI is a tool. As a total generator it is a real problem. Used to streamline tedious work it is one of the best cases there is — notating, formatting and inputting music are among the most tedious tasks there are. The name on a score belongs to whoever approved every note.
Preservation. The music we have should survive. That needs a language that compresses, renders quickly, and duplicates across many instances instead of living in one program and leaving as a PDF. A PDF is a photograph of a score.
Other people must be able to implement it. The source is not public yet, and no licence has been chosen.
Where it stands
Pre-alpha. The demos work — write, engrave, hear, format, export — though playback reads straight through repeats, so a repeated score sounds shorter than it looks. The language is still being refined: spellings change, and an older file may need a formatter pass.
Do not keep the only copy of a score here.
The story
I am a composer, a trumpeter and an educator.
I have written music in notation software for nineteen years — Finale, then Sibelius — and I am in them constantly. Seventy works are published in full on my website; around two hundred composed in all, experiments included.
Alongside the music I build systems. I am a Notion Ambassador; most of that work has been complex Notion systems for musicians and their organisations. Then I got used to AI tooling, and the systems turned into software.
ScoreScript is where those meet: the composer, the player who knows what a part must be on the stand, and the builder who thinks a score should outlive its program.
I am confident in the language. On the engineering I lean on AI tooling, and say so.