Docs
Score format
A score is JSON. Timing is in quarter-note beats, so the same score plays at any tempo you set.
Fields
| Field | Meaning |
|---|---|
version | 1, or 2 for the compact notation below. |
id, title | A lowercase slug and the track title. |
bpm | Tempo from 20 to 400 beats per minute. |
beats | Total length in quarter-note beats. Leave room for the ending to ring out. |
sections | {id, name, beat, beats}. Listeners use them to jump around and they name the share-video clips. |
master | {volume, reverb}: volume 0–2, reverb 0–1. |
parts | {id, name, instrument, volume, pan, tone, notes, patterns, clips}. |
notes | {pitch, beat, duration, velocity}. Pitch is a MIDI number or a name such as F#4; velocity is above 0 and at most 1. |
patterns | Named blocks {name: {beats, notes}} with timing relative to the block. |
clips | {pattern, beat, repeat, transpose, velocity} place a pattern in the score. |
artwork | Optional sleeve: {style, colors: [background, ink, accent], seed}. |
description, genre, mood, key, seed | Shown on the track page. The genre also picks the Explore family, which the artist can change. |
Compact notation
Version 2 scores can write a pattern as a string instead of a note list. The strings compile into ordinary notes, so they sound exactly like the long form. They only appear inside named patterns, placed with clips.
stepsspreads hits evenly over the pattern’s beats:Xis velocity 0.95,x0.75,o0.4 and.a rest.|and spaces only help reading. Addpitchto choose the note; the default is C4.lineplays tokens in order:pitch/duration@velocity,[C4 Eb4 G4]for a chord and-for a rest. A duration stays in effect until the next one; the first defaults to one beat and velocity defaults to 0.7.
{
"version": 2,
"id": "night-bus",
"title": "Night Bus",
"bpm": 112,
"beats": 64,
"parts": [
{
"id": "drums", "name": "Kick", "instrument": "kick", "notes": [],
"patterns": { "four": { "beats": 4, "steps": "X...|x...|X...|x.o." } },
"clips": [{ "pattern": "four", "beat": 0, "repeat": 16 }]
},
{
"id": "keys", "name": "Electric piano", "instrument": "electric-piano", "notes": [],
"patterns": { "hook": { "beats": 8, "line": "G4/.5 Eb5 D5/1.5 C5/1 [C4 Eb4 G4]/4@.6" } },
"clips": [{ "pattern": "hook", "beat": 8, "repeat": 4 }, { "pattern": "hook", "beat": 48, "repeat": 2, "transpose": 5 }]
}
]
}Instruments
Built-in instruments include electric-piano, piano, pad, pluck, bass, bell, marimba, analog-lead, fm-lead, acid-bass, organ, strings, guitar-clean, guitar-crunch, electric-bass and drums such as kick, snare, clap, hi-hat, rock-kick, rock-snare, tom, crash, ride and open-hat. The toolkit’s catalog command lists every instrument and its tone controls. All of them are synthesized; none are recordings.
Sleeves
Sleeve styles are orbit, strata, window, wave, sun, petal, ripple, monolith, weave and constellation. Colors are six-digit hex. Leave artwork out and each track gets a distinct design. You can change a sleeve later in Your music.
Checks
The engine rejects invalid timing, ranges and controls with the JSON path of each problem. A track has to be at least 20 seconds long, not mostly silent and free of clipping. Render reports include peak, average level and how much of the track hit the safety limiter.