ScoreScript.org
Scorescript app coming soon

What is ScoreScript?

ScoreScript is two things at once:

  1. The Language. Music written as plain text, in a shorthand musicians and composers recognize.
  2. 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) |||
Four bars in G major for one melody: a slurred G, B and D; a long accented E; a slurred D, C and B; and a long A under a fermata, with a crescendo from the E that arrives at forte on the A.
Three lines of ScoreScript, and the music they make. Try changing a note.

The language

  1. Notes and rhythms

    A capital letter is the pitch, A to G. The rhythm comes first, as a number or a lowercase letter — 1G and wG are the same whole note.

    1 w whole · 2 h half · 4 q quarter · 8 e eighth

    1G
    Notes and rhythms
  2. 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 |||
    A series of notes
  3. Higher and lower

    A number after the note fixes its octave, however far it is: C4 is middle C, C6 is two octaves above it.

    1C4 | 1C6 |||
    Higher and lower
  4. The nearest note

    Leave the number off and the note takes the octave nearest the one before it — after C4, a bare G is 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'' |||
    The nearest note
    C4, then G3 — the nearer G. G' is G4, G'' is G6.
  5. 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/4 changes it, and meter none lets bars run whatever length the music wants.

    meter 3/4
    
    4G A B | 4C D E | 2.F |||
    Measures and meter
  6. Durations

    4 is a quarter, 2 a half, 2. a dotted half, 1 a whole. The letters say the same thing: w whole, h half, q quarter, e eighth. Lowercase is where durations live, which is why a pitch is a capital: qG and 4G are one note.

    wG | hG hA | qG A B C | eG A B C D E F G |||
    Durations
  7. 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 |||
    Everything hangs on the node
  8. 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 |||
    Slurs and ties
    One slur, D to F. Then a tie, held over the bar line.
  9. 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, ]
      }
    }
    A page of music
    Four voices on two staves. Each bar names its own voices, so nothing is declared anywhere else.
  10. 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.
  11. 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.

    LilyPondScoreScript
    Written forThe engraverThe musician reading it
    One noteg4\mp(4G4(mp)~
    Seeing the scoreAfter it compilesAs you type
    Where it runsA program run on the fileOne engine: the browser, the command line and embeds
    MaturityDecades of refinementPre-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 /embed block, an image URL for Notion, Markdown, a README or HTML, and a ready-made <img> tag.

    Embedding
  • Pre-alpha

    For developers

    the scorescript command line, the scorescript lsp language server, and the scorescript-mcp server. Today you build them from the repository, which is not public yet.

    Integration
  • Planned

    a published package, so a page or a notes app renders ScoreScript by adding it, the way Mermaid is added.

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.