Tap to derive a BPM, or open the room-listener to detect tempo via the microphone.
Tap to add the instrument as a row at the top of the grid. Tap again to remove. The default 8 rows always stay visible.
Pick a sound for this limb. Cells you've already authored stay — only the voice changes.
Tap a system to load it. Save the current grid as a named system using the button below.
Drag the handles on the waveform to set a loop region, then tick Loop region. Tap Tap 1 while listening to anchor the song's downbeat — the labs use it for bar alignment when you Apply BPM.
Loop mode repeats this many bars. Reading mode keeps a 2-bar buffer regardless.
1 limb · 2 limbs · 3 limbs · 4 limbs (R / L / K / Q). Voices, pitches, and palettes are in the Sounds menu.
Standard music notation with note heads, stems and beams.
Sizes notation to fill the available staff height. Turn it OFF — or just drag the size slider below — to set the size yourself.
Drag to set the size yourself — this switches off Auto-fit so your size sticks (handy when a System fills a bar and auto-fit overshoots). Flip Auto-fit back on to let the app size it again.
Soft column highlight that follows the current beat in the 2‑bar view. In the Reading Lab it's a practice aid: leave it on as long as it helps, but a Tap Play run with the guide bar on won't pass a level — it shows you where the beat is, so it reads the music for you. Switch it off to earn the level.
Overlays a thin vertical line at ~1/4 from the left in scroll mode, marking the moment each note sounds.
Streamlines the reading experience by removing bar lines, repeat marks, and the time signature so the staff reads as one continuous stream — useful in Linear mode for seeing how runs (doubles, triples, quads, 7-strokes etc.) flow across what would normally be a barline. Note: with bar lines hidden, the time signature display is also disabled.
Shows dashed lines at each beat subdivision — in Staff mode as tick marks on the staff lines, in 3D as perspective grid lines, in Dots mode as lines between note groups.
When on, the same bar(s) repeat continuously. When off, Reading mode regenerates a fresh pattern at every cycle.
Tag random onsets with one of four notation marks. Each add-on has its own mode (per-bar across all limbs, or per-limb counts).
The same bar twice, written two ways. The first measure shows only your ⚡ limb — just your notes, nothing else on the page. The second measure is the exact same music, but now written with the rest of the kit around it, the way it would appear in a real chart. You play the phrase twice in a row; what changes is how much you have to read.
It sounds identical both times — the whole system plays through both measures. Only the notation changes.
Rotates the staff view bar-by-bar so you drill the same figure across multiple readings. Requires a system to be active + staff display mode.
Set any field to 0 to skip that view. ⚡-only hides the fixed system rows and shows just the lab-generated notes so you play the free voice from memory. Look-ahead is truthful — the next bar you see is the next bar you'll play.
Top number = beats per measure. Bottom = the beat unit (4 = quarter, 8 = eighth, 16 = sixteenth). Shown at the start of every passage.
Pick one or more. Tap to add or remove. One active = single subdivision. Two or more = Mix (random pick each beat).
The smallest cell of each beat — controls how finely each beat is divided.
0 = straight · 100 = full triplet feel. Pushes the off-beat 8th later. Toggle off to mute swing without losing the slider value.
Controls rest density across all modes — higher values weave more silence into the pattern.
A 16ths reading set built from the off-beat partials. Each beat the shuffle draws one figure below. The ah → e couple guarantees an ah is answered by an e on the next beat — the downbeat between them stays silent (…ah · e…) — letting you weave denser syncopated clusters. Turn figures off for a narrower reading focus.
At least one figure stays on.
Choose where the click fires inside each beat. Practice notes against an offset click to strengthen internal time.
Single-line reading patterns built from quarters, 8ths, dotted quarters, rests, and ties. The drummer interprets each line in any voice.
Adds offbeat-anchored quarter patterns. Each quarter straddles a beat-line (anchors on "&" of 1, 2, 3) for the classic syncopated feel.
When ON, the generator never produces three or more consecutive 16th notes — neither within a beat nor across a beat boundary. The pool is restricted to single 16ths, paired 16ths (doubles), and 16th + dotted-8th combinations. Useful for drilling clean isolated accents and broken-pair phrasings.
Slide left to feature isolated single‑16th hits more often (e‑rest, a‑rest patterns). Slide right to feature paired doubles more often (1‑e, e‑&, &‑a). Mid = even mix.
A cycle is a short phrase that repeats on its own length instead of lining up with the bar — so it keeps landing in a new spot until it works its way back around. Playing against one trains the thing a metronome can't: holding your own place while something familiar refuses to sit still. You can read a cycle, hear one, or run both at once.
The cycle you read. The phrase gets written into your exercise, so you practice recognizing the same figure wherever it lands in the bar — the skill that makes syncopated charts readable. Lengths that don't divide evenly into the bar (5, 7, 9, 11 against 16ths) drift the most; even lengths do the same under triplets or odd time signatures.
Tap cells to place notes; empty cells are rests. The phrase is the length you picked above.
Multi-select — each time the phrase restarts it randomly picks one of the ones you've turned on. Chips are grouped by note count.
Written and Sound are separate loops and can run at the same time — read one cycle while hearing another.
A hit every 3rd 16th, repeating without ever restarting on the beat — so it keeps moving through the bar and only lines up again every three beats. It's the sound of a dotted-8th pulse laid over 4/4, and one of the most common ways a groove pushes against its own time.
Dotted 8th — one hit every 3rd 16th (N · ·). Classic
dotted-eighth pulse.
2 of 3 — two hits then a rest (N N ·). Denser, more
driving feel.
Mix — randomly swaps between the two each 3-cell cycle.
Reading practice for runs of notes rather than single figures. Pick the run lengths you want; they're placed freely across beats and bar lines, so a run of 3 turns up on the downbeat, starting on "e", straddling the barline — every position it can occupy. That's what builds the reflex to see a cluster as one shape instead of counting it note by note.
Tap sizes to include them. Each cluster placed gets its size picked randomly from your selection. Sizes shown depend on the current subdivision (16ths cap at 8, sextuplets cap at 8).
A 5-unit course in reading with one limb while the others hold a pattern. It introduces every single-note figure first, then two-note, then three-note, then longer runs — that order is deliberate, since each one asks something different of the bass drum foot. Tap a unit to jump to its start, or pick any lesson from the list.
Shapes the stream into 4-bar phrases instead of endless even randomness: a bar states an idea, the next echoes most of it, the third goes somewhere else, the fourth gets busier before it resets. Every figure the lesson teaches still appears — and when a repeat would break the lesson's own rules, the generator picks something else instead, which is where the surprises come from. Turn it off for flat, fully random practice.
Tap a palette for a 1-tap config. Each limb has its own voice + pitch + mute. For EQ / FX / sample swap, open the Sound Sculptor below.
Figures = picks rhythms from the current subdivision's pool. Synco = single-line reading in the tradition of Ted Reed's Progressive Steps to Syncopation, with quarters / 8ths / ties / rests.
Tap to pick a subdivision. Multi-subdivision Mix lives in the global Time menu.
The moving column that tracks the beat across the bar. In the Reading Lab it appears on its own for early levels and steps aside after level 10 — switching it here takes over from that.
If the guide bar drifts behind what you're hearing, slide right (positive ms). If it runs ahead, slide left. Seeded automatically from the device's reported output latency at boot; adjust here if it's still off on this machine. Portrait and landscape are stored separately. Wired audio usually needs none of this — it's for Bluetooth speakers/headphones and audio interfaces, whose output delay varies wildly.
Flips the chrome to a deep navy palette. Zone accents stay the same color so each lab still feels like its own room.
Pick any image file — it becomes the top-left logo and stays there between sessions.
Saves a single .html file with your uploaded logo baked in, so anyone you send it to sees your branding (not the default).
Tempo, accelerando and metronome modes live on the Metronome tab. Limbs, time signature, accents, format and quick sounds live in the lab toolbar above the staff.
Captures the active lab, tempo, level, subdivision, bars, add-ons, and other settings. Loading a workout replaces your current setup.
No saved workouts yet. Set up a lab the way you like it, type a name above, and tap Save.
Auto-saves on blur.
The dedicated Rudiments tab has been hidden from the main bar. Tap below to open it when you need it — everything inside still works exactly as before.
Envelope + crop edits from the Sound Sculptor stay on THIS device.
To carry them to your phone build, copy them below and paste the
JSON into SAMPLE_EDITS_SEED in the app source before
you ship. First-run installs will start with those edits applied.
Generate a link or QR code from inside any lab that a student can tap to open the app at the same lab, tempo, level, add-ons, and other settings — so they can pick up at home exactly where a lesson left off. Designed after the app's state schema stabilizes so the URL format doesn't have to change every release.