score
score · modulationSheet-music sequencer. A treble-clef staff of 16 bars per page, up to 4 pages, in 4/4 — click to place notes. Outputs pitch / gate / env (ADSR x dynamic) / clock.
the faceplate
11 inputs · 4 outputs · 6 params
inputs
| id | cable | what it does |
|---|---|---|
play_cv | gate | A rising edge toggles play/stop (each pulse flips the transport state). gate / trigger; trigger — fires once per rising edge |
reset_cv | gate | A rising edge snaps the playhead back to the top of the piece and restarts. gate / trigger; trigger — fires once per rising edge |
queue1_cv | gate | A rising edge queues saved pattern slot 1: it finishes the current pass, then switches to slot 1 and plays from the top (does nothing if slot 1 is empty). gate / trigger; trigger — fires once per rising edge |
queue2_cv | gate | A rising edge queues saved pattern slot 2 — applied at the end of the current pass, then plays slot 2 from the top. gate / trigger; trigger — fires once per rising edge |
queue3_cv | gate | A rising edge queues saved pattern slot 3 — applied at the end of the current pass, then plays slot 3 from the top. gate / trigger; trigger — fires once per rising edge |
queue4_cv | gate | A rising edge queues saved pattern slot 4 — applied at the end of the current pass, then plays slot 4 from the top. gate / trigger; trigger — fires once per rising edge |
clock | gate | External clock: each rising edge advances the playhead one 16th-note. Notes placed between 16ths (eighth-note triplets) still sound, at their exact fraction of the pulse. While patched the internal BPM is ignored; unpatch to fall back to the BPM clock. gate / trigger; trigger — fires once per rising edge |
attack | cv | CV that displaces the built-in ADSR's ATTACK time (log-scaled around the knob) — modulate it to make notes swell faster or slower. control voltage (CV); modulates attack (multiplicative ≈ octaves — ±1 CV spans the param’s log range) |
decay | cv | CV that displaces the ADSR's DECAY time around the knob. control voltage (CV); modulates decay (multiplicative ≈ octaves — ±1 CV spans the param’s log range) |
sustain | cv | CV that displaces the ADSR's SUSTAIN level around the knob. control voltage (CV); modulates sustain (additive offset — ±1 CV sweeps the full range, centered on the knob) |
release | cv | CV that displaces the ADSR's RELEASE time around the knob. control voltage (CV); modulates release (multiplicative ≈ octaves — ±1 CV spans the param’s log range) |
outputs
| id | cable | what it does |
|---|---|---|
pitch | pitch | The current note's pitch as V/oct — emitted as each note is played, following the notes and accidentals you wrote on the staff. V/oct pitch CV |
gate | gate | Goes high while a note sounds and low between notes; a tie holds the gate high across the whole tied span (one held note) so a single envelope shapes the entire tie. Patch it into an envelope or VCA. gate / trigger; gate — acts while the level is high (reacts to both edges) |
env | cv | The built-in ADSR envelope CV, scaled by the dynamic marking in force at that point in the score (pp..ff) — a ready-made loudness contour you can patch straight into a VCA. control voltage (CV) |
clock | gate | A short pulse on every 16th-note advance — the chained clock-out; patch it into another sequencer's CLOCK IN to keep them in step. gate / trigger; trigger — fires once per rising edge |
params
| id | label | range | default | curve |
|---|---|---|---|---|
bpm | BPM | 30..300 | 120 | linear |
attack | A | 0.001..10s | 0.005 | log |
decay | D | 0.001..10s | 0.1 | log |
sustain | S | 0..1 | 0.7 | linear |
release | R | 0.001..10s | 0.3 | log |
isPlaying | Play | 0..1 | 0 | discrete |
controls
| control | what it does |
|---|---|
| A | ATTACK — the built-in ADSR's rise time, how quickly each note swells in (also reachable via the ATTACK CV input). |
| BPM | BPM — the internal tempo the playhead walks the score at (each step is a 16th note); used only when nothing is patched into CLOCK IN. |
| D | DECAY — the ADSR's fall time from the peak down to the sustain level after the attack. |
| Play | PLAY — the transport state: 1 plays from the playhead, 0 stops and forces the gate low. Starting playback returns the playhead to the top. |
| R | RELEASE — the ADSR's fade time after a note's gate releases. |
| Score accidental {n} | The accidental carried by the SELECTED note: sharp, natural, flat, or none. `key` means the note has no accidental of its own and follows the key signature; `natural` explicitly cancels the key signature on that one note, and a note you mark here keeps its spelling when the key signature changes. With NOTHING selected it arms the accidental for the notes you write next — so you can spell a note as you place it rather than going back to fix it. |
| Score dyn {n} | The dynamic marking sitting exactly at the SELECTED note (pp, p, mf, f, ff), or none. From where a marking sits onward it scales the ENV output's loudness, forward-filled until the next one, with mf in force before any marking at all. It shows the marking placed HERE rather than the level in force here — those are different facts, and picking the level already in force would silently add a second marking. With NOTHING selected it arms a level for the notes you write next, and a marking is only actually placed where it would change something. |
| Score key {n} | The key signature, from seven flats to seven sharps, named by its major key. Changing it respells every note that carries no accidental of its own and leaves the ones you marked alone — so it is a bulk default you set once at the start, not a transpose. |
| Score loop {n} | What happens when the playhead reaches the end of the piece — the stop bar if one is set, otherwise the end of the last page. On, it wraps back to the top and keeps going; off, it stops and the transport returns to stopped. |
| Score note {n} | The STAFF itself — click an empty position to write a note of the current VALUE there, click a note to select it, and click the selected note again to delete it. Drag a note to move it: sideways changes when it sounds, up and down changes its pitch. Each note plays as V/oct on the PITCH output with a gate, in score order, as the playhead reaches it. A note that will not fit — the bar is full, it overlaps a neighbour, or the pitch is outside C4..C6 — is refused and the bar flashes. |
| Score pages {n} | How long the piece is, in pages of sixteen bars each, from one to four. Shrinking it is NON-DESTRUCTIVE: notes on a page that is no longer allocated stay in the patch and simply stop sounding, and growing back brings them back. The sequence length the playhead walks comes from this, so an unwanted page is sixteen bars of silence on every pass. |
| Score slots {n} | Eight quicksave slots holding whole snapshots of the piece — every note, tie, dynamic, the key, the length, the loop flag, the stop bar and the five knob values. Arm SAVE, LOAD or QUEUE and then click a slot: SAVE writes, LOAD switches instantly, QUEUE switches at the end of the current pass. The four QUEUE CV inputs reach the FIRST FOUR of these slots from a patch cable, so this is where the patterns those inputs play come from; slots 5 to 8 are reachable by hand only. RESET drops any queued slot and restarts the playhead at the top. |
| Score stop {n} | The stop-music double bar. `here` puts it at the SELECTED note, which is where the piece ends; with nothing selected it goes where the written music ends. `none` removes it and the piece plays to the end of its last page. What HAPPENS at that point is LOOP's decision, so the two are one idea in two controls. Drag the double bar on the staff to move it. |
| Score tie {n} | Ties the SELECTED note to the next note in the piece, and unties it again — turning it off is the only way there is to remove a tie. A tie makes the two into one held note: the gate stays high across the whole span and a single envelope shapes it, with only the last note in a chain releasing the gate. With NOTHING selected it is legato mode: leave it on and each note you write is tied to the one before it. |
| Score value {n} | Which note value the NEXT click on the staff writes: whole, half, quarter, eighth, triplet or sixteenth. It is the one setting that applies to the gesture you are about to make rather than to the note you have selected. Triplets sound on the full 48-tick grid, between the sixteenths, rather than being rounded onto them. |
| S | SUSTAIN — the ADSR's held level while a note's gate stays high. |
source
score.ts on GitHub.