seqbaby is a step sequencer that runs in a browser tab. Each track plays its own instrument, you fill a grid of steps, and you pile effects and movement on top. Nothing to install, and nothing leaves your machine unless you save or share it.
Press play. Browsers keep audio muted until you have interacted with the page, so the first press is really just permission. If you hear nothing, press it again.
A new session opens with a few drum tracks already running. Click any cell in a track's row of squares to add or remove a hit. After that:
The bar across the top runs playback for everything.
| Control | What it does |
|---|---|
| play | Starts and stops the sequencer. Playback starts from the top, except in arrange mode, where it starts from the ruler's start marker, and in a jam, where it lands on the room's beat. |
| record | With the sequencer running, anything you play on your computer keyboard is written into the active track. |
| capture | Writes the phrase you just played into the active track even though you weren't recording. It keeps the last 32 seconds, takes the run of notes since your last pause, and keeps the lengths you held. |
| bpm | Tempo. Type a number, or drag the field up and down. |
| swing | Pushes every second step later, from dead straight to a heavy shuffle. |
| macro | Opens the XY macro pads. |
| undo / redo | Steps back and forward through your edits. See undo. |
| vim | Switches vim mode on and off, for driving the studio from the keyboard. Desktop only. |
| metronome | A click on every beat, the downbeat accented, for playing along. Drag it up or down for its volume. It never ends up in an export. |
| meter | Output level, over on the right. If it sits pinned at the top, turn some tracks down. |
The second row is the keyboard strip: scale, octave, chord and arp, covered under playing from your keyboard. The status line at its right end reports what just happened.
Above the transport sit new, share, and, once you are signed in, save and songs. See saving and sharing.
Nearly every parameter is a knob, and they all behave the same way.
| Gesture | Result |
|---|---|
| Drag | Grab anywhere on the knob. The value doesn't jump to your click, it follows the pointer from wherever it already was. |
| Drag out sideways | Fine trim. The further from the knob your pointer travels, the smaller each pixel gets, so one gesture does the sweep and the trim. Shift forces fine mode. |
| Wheel | Nudges the value a step at a time. |
| Double-click | Back to the default. On a touchscreen it is reset to default in the long-press menu instead, so two quick taps never throw away a setting. |
| Right-click, or long press | Opens the parameter menu: what the control does, and any modulation on it. |
On a phone the same controls draw as vertical sliders and the thumb follows your finger. Two rows stay sliders everywhere: the wavetable editor's harmonic bars and the chance generator's pitch faders.
Every session has 32 pattern slots. Click a number to switch to it; the one you are editing is outlined. Empty slots are blank, so one slot per section is an easy way to build an arrangement.
| Control | What it does |
|---|---|
| repeat / chain / arrange | Repeat loops the current pattern. Chain plays your non-empty patterns in order, like a song. Arrange plays each track's own timeline of pattern blocks, drawn in the arrangement view. |
| immediate / finish | Whether clicking another pattern switches straight away or waits out the current bar. |
| dup | Copies this pattern into the next free slot. The usual way to start a variation. |
| drag a number | Drops a copy of that pattern onto any other slot and takes you there. In finish mode while playing it waits for the bar, like any other switch. |
| sig | Time signature for this pattern, from 4/4 through 5/4, 7/8 and the compound meters. |
| rep | In chain mode, how many bars this pattern gets before the next one. |
| pattern / song | Render audio and download a WAV. See export. |
One song, three pictures of it. The switcher in the transport (or tab, with nothing focused) moves between the groove view, the step grids you know; the clips view, every track's 32 patterns laid out as clips to launch one track at a time; and the arrange view, a timeline of pattern blocks per track. Play plays what the open view shows: the arrangement in the arrange view, the clips in the clips view, and whatever the pattern bar says in the groove view. Switching views while playing takes effect at the next bar line. Desktop only for now.
| Control | What it does |
|---|---|
| a cell | Launches that pattern on that track alone, now, or on the bar line in finish mode (the pattern bar's switch setting). The other tracks keep playing what they were. The lit cell is the pattern the track is on; a dot marks a p-locked one. Each different clip on a track wears its own shade of the track's colour, so copies of one pattern match and a pattern that differs stands out. Double-click a cell to mute the clip (the track stops; a click plays it again). |
| the detail | Under the grid: the selected track's instrument, its effects and modulation, and the step grid of the clip it is on, exactly as in the groove view. Clicking a cell selects its track; clicking a track's name selects it without launching anything. The pattern bar is hidden in this view and the arrangement: the scene row and the toolbar do its jobs there. |
| the scene row | The numbers along the top launch a whole column: every track to that pattern, which is exactly what the pattern bar does. Double-click one to play it now, whatever the switch setting, starting the transport if it is stopped. A track launched off the scene shows a p5 badge beside its length in the groove view; click it to bring the track back. |
| a cell's right edge | Drag it across the cells beside it, either way, and the clip is copied into each of those slots on this track when you let go, like a spreadsheet's fill handle. The cells it will fill light up while you drag. A slot that already has a sound locked to it keeps that sound. Hold shift and the same drag changes the clip's length instead, a bar at a time: longer repeats what is there (as the track head's x2 does), shorter cuts the end off. A clip more than a bar long wears its bar count in the corner. |
| ■ / ▶ | Stops that track's clip: it plays nothing until a clip is launched on it or a scene is. Stopped, the same button is a play that brings its clip back. |
| drag a cell | Copies the pattern onto another cell, on the same track or another (lanes the other engine cannot play are dropped, as paste does). |
| play, repeat / chain, now / finish | The transport's play button, the pattern mode and the switch setting, here too since the pattern bar is hidden in this view: repeat loops the scene, chain walks the non-empty patterns in order with every track together; finish makes every launch wait for the bar line, now lands it at once. |
| ● rec | Records what you launch into the arrangement, bar by bar: play, launch clips for a while, stop, and the recording lands in the arrangement view. With rec armed, play plays the clips whichever view you are in. If an arrangement already exists you are asked whether the recording replaces it or goes on after it (or is thrown away). |
| Control | What it does |
|---|---|
| play | The transport's play plays what the open view shows: in the arrangement view it plays the arrangement (switching to arrange mode), in the clip view the clips (back to repeat or chain). The groove view plays whatever the pattern bar's mode says. Switching to the arrangement view or the clip view while playing does the same at the next bar line, so the arrangement takes over from the clips without a stop. Every track follows its blocks bar by bar, the song loops at the last block on any track, and a gap is silence for that track. |
| the ruler | Click a bar to put the start marker there: play starts the arrangement from it. While the arrangement plays, the click is a jump, landed at the next bar line. |
| drag on empty lane | Draws a block of the pattern the track is on, as many bars as you drag. |
| drag a block | Moves it, snapped to the bar. Drag its right edge to resize; hold alt to drag out a copy. A block dropped on another cuts it. |
| the number on a block | Picks which pattern it plays. |
| delete / backspace | Removes the selected block. Every edit is one undo step. |
| from chain | Lays the chain out as blocks on every track: the non-empty patterns in order, each for its rep count. A starting point to pull apart. |
| − / + | Zoom. |
| the detail | Under the timeline, as in the clip view: the selected track's instrument, effects, modulation and the step grid of the clip it is on. Clicking a block or a track's name selects the track. |
A track is one instrument plus its pattern. The header row has its name, its engine, the pattern length and the mixer controls.
| Control | What it does |
|---|---|
| len | How many steps this track loops over in the pattern you're on. Each pattern keeps its own, so a bass can be 16 steps in the verse and 32 in the chorus. Lengths don't have to match across tracks either: a 12-step track against a 16-step one drifts in and out of phase. When chain mode or a queued switch moves to the next pattern on the bar line, every track starts it from step one. |
| +1 x2 x4 /2 /4 | Grow or shrink the pattern. Growing copies what is already there. |
| spd | Runs this track faster or slower than the rest, from 1/16 up to 16 times. |
| out | Where the track goes: straight to the master, or into an fx bus. It only appears once a bus exists. See fx buses. |
| vol | Track volume, with its level meter behind the knob. |
| the four knobs | The instrument's main tone controls. What they do, and what they are called, changes with the engine. rand beside them rolls all four. |
| wave / save / load icons | The sample or wavetable editor for this engine, save this sound as a patch, load a saved patch. |
| solo / mute | Hear only this track, or silence it. |
| p-lock | Gives this track a sound of its own on the pattern you are on. See p-lock. |
| clear | Empties this pattern on this track. |
| dice | Rolls a new pattern. Keep pressing until one sticks; drag it up or down to set how full the rolls come out. See the three generators. |
| ring | Euclidean rhythms. See the three generators. |
| die | Chance: a whole part, rhythm and pitches, from probabilities. See the three generators. |
| dup / remove | Copy the whole track, sound and all, or delete it. |
| oct / semi | Transposes everything in the pattern up or down. |
The last row of buttons (roll, filter, env, fx, eq, comp, mod, aut) opens the panels described under filter, effects and dynamics and modulation and automation.
A button wears a dot with a count when something inside it is switched on, and hovering it names what. Whatever is on also shows on the track itself: engaged effects, enabled LFO rows, a filter you have closed, an eq band you have moved. Open the panel and you get all of it again.
The row of squares is the pattern. A filled square is a note, and every fourth one is marked so you can find the beat.
On drum tracks the pitch hardly matters, so the grid is usually all you need. Melodies are easier in the piano roll.
roll opens the piano roll on that track, on the pattern it is playing: a keyboard up the side, bars across, the notes as bars you draw, drag, stretch and paint. It is the same editor as the piano view, so everything below is true there too, and it works with a finger on a phone. It is the best place to write a melody, and the only place to stack notes into a chord you voice by hand.
The tools along the top decide what a drag does: pan scrolls, draw places and moves notes, paint lays a note every length as you sweep, erase deletes what you sweep over and select boxes notes to move or delete together. snap is the grid notes land on.
| Gesture | Result |
|---|---|
| Click empty space (draw) | Adds a note of the last length you used. Keep dragging to put it where you want it. |
| Drag a note's middle | Moves the whole note in time and pitch. Shift-drag copies it. |
| Drag a note's right edge | Resizes it. On a phone the edge is a finger wide. |
| Double-click a note | Deletes it. |
| Draw on a row above a note | Stacks another pitch onto that step, for chords you voice yourself. With chord mode on, one click draws the chord. |
| Right-click, or hold a finger on a note | Opens the step editor for that note. |
| Two fingers | Scroll the roll, and pinch to zoom in or out across. |
| Click the keys | Plays the track at that pitch, so you can find a note before you draw it. |
The lane underneath is velocity: drag across the stalks to make steps harder or softer. With notes selected, the arrow keys move them (shift: an octave, or a bar), nudge pushes them off the grid, and delete removes them. The pattern's header above the grid makes it a bar shorter or longer, doubles it, or sets its time signature; in key folds the rows to the scale when one is on, and hear sounds the notes as you place them.
Right-click any step for everything it can do beyond pitch and length.
| Setting | What it does |
|---|---|
| note | The pitch, on a small keyboard. |
| chord | Plays a whole chord from that root: major, minor, sevenths and the rest, plus an inversion. |
| arp | The chord's notes play one after another across the length of the note instead of together. Set how fast, how many octaves, and which direction. |
| ratchet | Retriggers the step up to 8 times. Drum rolls and stutters. |
| vel | How hard the note hits. |
| offset | Nudges the step slightly early or late for a looser feel. |
Three buttons on the track row fill the grid for you: the dice rolls a part, the ring divides the bar evenly, the die throws odds. All three can print a result into the grid as ordinary steps you can then edit. The ring and the die also run live, generating as the track plays without writing anything, so their controls can take an LFO, an automation lane or a macro pad; switch live off and the pattern is exactly as you left it. While live is on the grid shows what is playing and goes read-only. A track has one rhythm at a time, so turning one of those two on turns the other off.
One press replaces the pattern with a new one, rhythm and pitches both. Keep pressing until something sticks; nothing is held, so each roll starts from scratch. What lands in the grid is ordinary steps, yours to edit afterwards.
Drag the dice up or down to set how full the rolls come out, drawn as the fill behind the icon. All the way down is empty, all the way up is every step, and downbeats stay likelier than the steps between them.
On a drum-kit track every hit sits on C2 and only the rhythm changes. Anywhere else it walks a melody in the session's key, mostly a step or two at a time with the occasional octave leap, starting from the last note you used on that track. It follows the root and mode even when scale quantize is off. It leaves the sound alone; rand beside the four knobs is the one that rolls that.
A number of hits spread as evenly as possible over a cycle, which covers a lot of the world's drumming. Set the hits, the cycle length and a rotation, and the cycle tiles across the track. It decides only when notes happen; the pitches stay whatever the pattern already had.
Chance decides the pitches as well. You write the odds of notes rather than the notes, and it plays something that fits them. Two sections, each with its own dice.
Rhythm. note value is the base rhythm, from 1/1 down to 1/32 by way of the triplets, and nothing random happens to it on its own. variation is off in the middle: turn it left for longer note values, right for shorter, and how far you turn it is both how often another value turns up and how far from the base it strays. legato is how likely a note is to be tied to the one before instead of gating again; all the way up you get a single held note. rest is how likely a note is to be dropped. Two checkboxes let variation reach the triplets and the 1/32s, which are off to start with.
Melody. The twelve faders are the probability of each semitone, not a switch on each: one at half height turns up half as often as one at full, and a single raised fader is certain wherever it sits. That is how you write a scale here, or a scale with a bias. Until you move a fader they are the session's scale, when one is switched on (and follow it when you change key), and a minor pentatonic when not. from scale writes the active scale into them as faders of the track's own, so a later key change leaves the part where it is. Generated notes are not snapped to the session scale, because these faders are the scale. low note and high note set the range, up to five octaves; a semitone raised outside it can't play, and its label greys out to say so.
The dice. Each section's roll takes a new throw. A throw is held, so the part repeats and you can play against it. The new throw dropdown beside each roll says how long for: hold keeps it until you roll again, every pass takes a fresh throw every time the window comes round, so that section never repeats, and every 4 passes lets a phrase play four times and then move on. Rolling a section twice always changes something; if a throw can't change anything, the button says which knob to turn instead.
The window is the first and last step it generates over, and it tiles across the track like the ring's cycle. Until you turn last step it is the whole track, so a 32-step track gets a 32-step window. Moving first step slides the window without changing its length.
Six controls can be modulated while live is on: the four rhythm knobs and the two range knobs. An LFO on rest breathes the part in and out; a lane on low note walks it up the register over a bar. The picture at the top of the panel is the part it is playing now: height is pitch, width is how long a note is held, and a note in the second colour is struck more than once, which is how the triplets and the 1/32s fit a grid of sixteenths.
On a desktop machine your computer keyboard always plays the active track, which is the last one you clicked and the one with the outline. Typing in a text box is safe: note keys only fire when no text field has focus.
The layout is a piano on the top two rows: the letter row is the white keys, the number row above it the black keys. That leaves the home row free for moving around in vim mode.
Two ways to get what you play into a pattern.
To move around, edit and turn knobs from the keyboard too, switch on vim mode.
Vim mode turns the whole studio into something you can drive without the mouse, in the manner of the vim text editor. Press ` (the backquote key, top left) or vim in the transport to switch it on, and the same again to switch it off. Your browser remembers the choice. With it off, the keyboard is just the piano described above.
In vim mode the letters stop playing notes and become commands, until you ask to play. A box in the bottom corner says which mode you are in, and a cursor on the active track's step grid shows where the next edit lands.
| Mode | What the keys do |
|---|---|
| NORMAL | Letters are commands: move around, add and delete notes, pick knobs. Esc always comes back here. |
| INSERT i | The piano keys write notes. Stopped, each note lands on the cursor and the cursor moves on; playing, notes land on the playhead, as with record. |
| PLAY a | The piano keys only sound. Nothing is written, so this is the one for jamming along. |
| VISUAL v | Select a run of steps, then copy, delete, paste over or transpose them. |
| COMMAND : | A line at the bottom for commands like :bpm 128. Enter runs it. |
Most moves take a count typed first: 4l moves four steps, a beat.
| Keys | Moves |
|---|---|
| h l | The cursor one step left or right. |
| j k | Down or up a track. The piano keys follow, as if you had clicked it. |
| w b | To the next or previous note. |
| 0 $ | To the first or last step. |
| 5| | To step 5, or whichever number you type. |
| gg G | To the first or last track. A number before G picks that track. |
| Space | Play and stop, in every mode but the command line. |
| Keys | Does |
|---|---|
| o x | Adds a note on the cursor / deletes the note under it. |
| r then a piano key | Sets the note under the cursor to that pitch, or writes one there. |
| > < | Moves the note up or down a step of the scale (a semitone with no scale on). |
| + - | Velocity up or down. |
| [ ] | Nudges the note a microstep (1/24 of a step) earlier or later, up to half a step either way. A count moves it further: 3] is three. A nudged note shows a tick where it lands: the middle is on the grid. |
| dd yy p | Clears the track's pattern / copies it / pastes what you copied at the cursor. |
| . | Does the last edit again, here. |
| u U | Undo and redo. Ctrl r also redoes. |
| m s | Mutes or solos the track. |
Every command is its own undo step, however fast you type. A whole stretch in insert mode undoes as one, the way it does in vim.
In insert mode with the sequencer stopped, h and l (or ← and →) move the cursor, l while you hold a note makes that note a step longer, Enter switches the cursor's step on or off with the track's usual note (C2 on a drum track) and Backspace clears the step behind the cursor. j and k change track, playing or stopped, so you can record one part and move straight on to the next.
Visual mode selects steps on one track: move with the same keys, then press y to copy, d to delete (which copies too), p to paste over the selection, > < to transpose it, or [ ] to nudge it. A copy carries everything on a step: chords, arps, ratchets, sample regions.
One knob at a time can be picked, which draws a bright outline round it. Scroll on the trackpad to turn it (hold shift for finer steps), or press - and = to move it 1% at a time, with a count for bigger jumps: 10= is 10%. hjkl move to the knob next to it, as drawn on screen, and Esc lets go.
| To pick | Type |
|---|---|
| The fx picker | f opens the effect picker: pick a stage to put it on the track. To turn one of its knobs, name it: :k delay time. |
| The filter | c. It opens on cutoff. |
| Any knob by name | :k and its name: :k morph, :k reverb decay, :k fx.delay.time. Part of a name is enough. A knob in a closed panel opens that panel. |
| Set it at once | Add a value from 0 to 1: :k cutoff .3. |
The command line lists what could come next as you type: every command on an empty line, the effects after :fx, and the active track's knobs after :k, each with where it is set now. Tab takes the next match into the line and shift Tab the one before (the arrow keys do the same), or click one. Enter runs whatever the line says.
| Command | Does |
|---|---|
| :bpm 128 | Sets the tempo. |
| :p 3 | Switches to pattern 3. |
| :len 32 | Sets the track's length in steps. |
| :cut .4 :res .6 | Sets the track's filter cutoff and resonance, 0 to 1. |
| :fx reverb .5 | Sets an effect's level on the track, 0 to 1. |
| :k name | Picks a knob, as above. |
| :nudge 3 | Puts the note under the cursor 3/24 of a step late (negative is early, :nudge 0 back on the grid). |
| :view clips | Opens the clips, arrange or groove view (tab cycles them). |
| :12 | Moves the cursor to step 12. |
| :w | Saves. With a song of yours open it saves the next version straight away; otherwise it opens the save panel to name it. You need to be signed in. |
| :h | Lists every vim key. |
| :q | Switches vim mode off. |
Tick scale, pick a root and a mode, and your playing is locked to that key. The white keys all belong to the scale and the black keys go quiet, so there are no wrong notes. There are major and minor modes, pentatonics, blues, some exotic scales and a few microtonal tunings.
The palette button next to it colours notes by pitch across the roll and the grid, which makes repeated shapes jump out.
With chord on, each key plays a whole chord instead of a single note. Pick the chord type and a voicing. If a scale is active the choice collapses to on or off, because the chord gets built from the scale itself: each degree gets the quality it should have and everything stays in key.
Chords you record or capture are stored as chords rather than loose notes, so the roll shows one labelled note you can retune or move in a single go.
The arp box sits next to the chord picker. Switch it on and a held key arpeggiates as you play, at the rate, octave range and direction you choose. Anything you then record or capture carries those arp settings into the pattern.
The instrument button beside a track's name picks its instrument, from a searchable picker. They come in groups:
| Group | What is in it |
|---|---|
| plaits | Sixteen synthesis models from the Mutable Instruments Plaits oscillator: virtual analogue, FM, wavetable, granular, noise and physical models. |
| drum / synth | An 808 and 909 kit, a poly saw, an FM bell and a pad. |
| Emulators | The silverbox, the contagion, the hexop, an electric guitar and bass, subby, vox, a singing voice, siege, a bass drum synth, and lancet, a snare synthesizer, halo, a cymbal synthesizer, the ladder, the transistor-ladder monosynth, and the oracle, the poly analog (two morphing VCOs with slop, a drive on the summed voices, a chorus), all modelled rather than sampled. Then three voices in the spirit of classic hardware: snarl, drift and tines. |
| texture | A granular engine that plays a sample as a cloud of tiny grains. Load your own, or pick from the bundled library of pads and drones. |
| wavetable | A wavetable synth with its own editor. |
| sampler | Your own audio, or one of the bundled kits. See samples. |
| saved patches | Sounds you have saved yourself. |
| midi | Sends notes to external hardware or software instead of making a sound itself. |
| fx bus | Not an instrument. See fx buses. |
The four knobs under the name are that instrument's main tone controls: harm, timb, morph and decay on a Plaits model, something else on the next engine. The labels change with the engine, and hovering one says what it does on the instrument you have loaded.
An acid box modelled from its circuits, so it answers a pattern the way the original does. Its four knobs are the panel: cutoff, reso, env mod and decay. Next to them are the waveform switch, the accent depth and tuning.
Three behaviours are how you play it:
The filter thins out as you wind the resonance up, same as the real one. That is why acid records run a silverbox into a distortion pedal, and you can do the same from the track's fx panel.
A big polyphonic synth built for movement. Its four knobs are cutoff, reso, shape and decay. The four beside them are the levels of osc 1, osc 2, the sub and the noise. Everything else lives in the rows underneath.
With sync on, osc 2 is forced to osc 1's pitch, so dragging or automating the semi knob gives you the classic tearing sync lead. fm works the same way round: osc 1 modulates osc 2.
The amp and the filter each have an envelope. The track's decay knob is the amp's; the filter's has its own attack, decay, sustain and release, so a short filter decay over a long amp sustain is a pluck that keeps ringing. env amt is how far it moves the cutoff. Each envelope also has a slope: in the middle the sustain holds, to the right it fades while you hold the note, to the left it swells.
Six sine waves. That is the whole instrument: no filter, no sub oscillator, nothing else. What comes out depends on which sines are wired into which, and how hard. The panel is the same six rows whatever you are building, one per operator, each with its level, its frequency as a ratio of the note, and its own envelope.
The four track knobs ride all six operators at once. bright raises every modulator's level together, which is the fastest way to hear what a patch can do. fbk is the feedback, mod dec scales how fast the timbre falls away, and decay how fast the note does.
Start from the voice dropdown rather than from silence: an electric piano, a bass, a bell, brass, a marimba, an organ and a pad. Load one and change a single operator level. vel makes playing harder raise the modulation index, so hard notes come out brighter and not just louder, and key scale pulls the modulators back as you play up the keyboard. Without it the top octave screams.
Each models the whole chain a real one goes through: the string, the pickup reading it, the amp it runs into and the speaker in front of the mic.
Both start from a tone dropdown of famous rigs. Load the nearest one, move a control, hear what that control is for. Loading a tone replaces everything including the four track knobs.
The string has the losses of a real one: the highs die before the fundamental does, so a note gets duller as it rings rather than just quieter. Where you pick notches harmonics out of it, bridge thin and cutting, over the neck round and full, and the pickup notches it again on the way out. Choosing a pickup is choosing where its resonance sits. A single coil peaks high and glassy, a humbucker low and fat.
The four knobs are drive (how hard the amp is hit, on a log taper like the real pot), tone (the knob on the guitar itself, not the amp; roll it down with a neck humbucker for the darkest sound the instrument has), bloom and sustain.
bloom is feedback. The speaker is coupled back into the strings, so past a certain point the energy coming back beats the string's own losses and the note stops decaying and starts growing. It needs volume: a clean amp barely blooms, a cranked one sings. It stops when the note ends, the same way taking your hand off the string does. Hold a long step on a high setting and listen to it climb.
Same string, wound and stiffer. Its harmonics sit noticeably sharp of where the arithmetic says they should, and that disagreement between the pitch and the clank is most of what a bass sounds like. Flatwounds take it away along with the high end, which is why records made before about 1970 sound the way they do. That is the roundwound / flatwound select.
fret is how hard the string is allowed to clatter against the fretboard; wound up with the hand control at the top, that clatter is slap. grind is distortion, but only above the xover frequency, with the clean low end put back underneath. Distort a bass whole and the bottom vanishes, which is why every bass overdrive worth owning works this way.
The knobs are drive, tone, comp and sustain. Wind comp up and the part sits perfectly still under everything else.
A monosynth for the bottom two octaves and nothing else. Two notes a third apart at 40Hz beat at a rate you feel as lumpiness rather than hear as harmony. Last note wins, and glide slides into it, either always or only when a note arrives while another is still sounding, which is the 808 slide.
Most people cannot hear a 35Hz sine. A phone speaker starts around 500Hz and a laptop around 180Hz. The fix is harmonics: generate them and the ear rebuilds the fundamental it cannot hear. drive is that path. At zero you get a genuinely pure sine, which is the right choice when something else in the mix is already carrying the note.
The four knobs are drive, tone, shape and decay. The tone dropdown loads a complete patch: the trap 808, a distorted one, a pure sine, a reese, an acid sub and a dub sub.
A singing voice, built the way a voice works: the vocal folds make a train of pulses, and the throat and mouth are resonances (formants) that the pulses ring. The pulses are the pitch and the effort; the resonances are the vowel. A note can start with a consonant, and a choir of up to eight sings each note.
The voice dropdown loads a complete setup: a choir on aah, angels on ooh, a basso, a soul lead, doo wop backing, a robot choir, a monk chant, a whisper and a hallelujah.
A snare drum synthesizer with seven ways of making a snare, picked with the model dropdown: analog (sine shells and noise, the early drum machines), slap (sines through a waveshaper under a bright clipped noise), modal (a drum head's own partials plus noise), physical (an exciter through resonant delay lines, with wires), fm (a carrier under two modulators and noise), granular (a snare under a cloud of grains from a rattle, a chain, paper, a coin or sand) and blend (layered high and body layers, through an old sampler).
The strike dropdown loads a complete setup: a tight or fat analog snare, a slap crack, a wood or piccolo modal, a tin head, an fm clap, a metal fm, coins on the head, boom bap, dusty funk, and one that rolls the dice.
A cymbal synthesizer: hats, rides, crashes, chinas, splashes and a gong from one instrument, four ways, picked with the model dropdown: metal (the 808's six square waves through two bandpasses, the drum machine hat), fm (inharmonic carrier and modulator pairs, the digital cymbal), modal (forty partials on a plate's series, each dying faster the higher it sits, the acoustic one) and noise (two bands of noise, a shaker or a trashy splash).
The cymbal dropdown loads a complete setup: 808 closed and open hats, a pedal hat, an fm hat, a ride and its bell, a crash, a china, a splash, a gong, an fm crash, a shaker, trash, and a reverse swell.
A bass drum synth, a siege engine for the low end: a sine under a pitch envelope, an amplitude envelope, and a drive that comes after the envelope. That order is the sound. A drive in front of an envelope distorts the whole note the same amount; behind it, it crushes the loud start, leaves the quiet tail a clean sub, and lifts that tail up to twelve times, so a driven kick reads longer and a long one turns into a rumble.
The kick dropdown loads a complete setup: an 808, a 909, a techno kick, a rumble, a tick, a gabber kick, a sub drum, a hard trance kick and a bassline.
The transistor-ladder monosynth, after the Minimoog: three oscillators and noise into a mixer, the mixer into the four-pole ladder filter, the filter into the amplifier, with a contour on each. The things that make it sound like itself are all in the details: the mixer overloads the filter's input stage when the levels are up, the filter thins out as the emphasis climbs and whistles on its own past three quarters of the knob, and the oscillators drift a little against each other.
Choose sampler as a track's engine and it asks for a source: a file from your machine, or one of the bundled drum kits. After that the waveform button in the track header opens the sample editor.
Three of the kits are real drums, recorded with real mics: Salamander (a punchy garage rock kit), Virtuosity (a dry jazz club kit) and DRS (a big multi-mic rock kit). Each has a kick, snare, rim, closed and open hat, a high and a floor tom, a ride and a crash. Put each piece on its own track, and keep the whole part on one kit so it sounds like one room.
Files you load stay in your browser. They only go anywhere if you save the session to an account or make a share link.
With the wavetable engine selected, the waveform button opens an editor where you draw the sound. A wavetable is a series of frames, each a single cycle of a waveform, and the wave knob sweeps between them.
Each track has its own chain, opened from the buttons under its name.
| Panel | What it holds |
|---|---|
| filter | A low-pass filter with cutoff and resonance. The classic way to open and close a sound. |
| env | An envelope that sweeps the filter on every note: how far it moves, and how it attacks, decays, sustains and releases. |
| fx | The effects chain, below. |
| eq | Five bands — low, lo mid, mid, hi mid and high — for sitting a track in the mix. |
| comp | Compression, either on the track itself or ducked by another track, which is how you get a bass pumping under a kick. |
Effects run in the order they appear in the panel, starting with amp. drive pushes the signal into everything that follows, so fuzz, the wave shaper, tape saturation and the crusher all bite harder, and out trims the level back afterwards. Both sit at unity in the middle.
Then come vinyl and cassette (wear, warble and noise), fuzz, ring modulation, a wave shaper, a bit crusher, auto-wah, chorus, phaser, flanger, pitch shift, delay and reverb. Each has a wet or amount control that does nothing at zero, so you can poke around the panel safely. The vinyl crackle and cassette hiss only sound while the track is playing, so a muted or stopped track is silent.
The bit crusher has a rate as well as bits: the sample rate it runs at, from 48k down to 250Hz. Bits alone is a noise floor under the sound; rate is where the sampler grit comes from, because anything above half of it folds back down out of tune with the track.
glide lives here too. It slides the pitch between notes instead of jumping, for portamento leads and basses.
Everything in the panels above belongs to one track. So does the mod matrix, and so do the automation lanes. An fx bus is how several tracks come to share them: a track with no instrument, that other tracks are routed through on the way to the master.
Press + add fx bus under the tracks, or pick fx bus from any track's engine dropdown. An out control then appears on every track: point it at the bus and that track arrives there with its own sound intact, like an output assignment on a mixer.
In every other respect the bus is an ordinary track. Its filter, effects, eq and compressor act on everything feeding it at once. Its mod panel sweeps the whole group with one LFO, its aut lanes draw per-step movement across all of it, and it can be p-locked, so the group is drenched in one pattern and dry in the next. A bus can feed another bus. Sends that would loop back on themselves are refused.
A bus plays no notes, so its step grid and roll are gone. mute on a bus cuts the audio passing through it, and solo on a bus keeps whatever feeds it.
A track normally has one sound and 32 patterns of notes. Move its filter and it moves everywhere, because the sound belongs to the track and only the notes belong to the pattern.
The p-lock button changes that for the pattern you are on. Locked, that pattern keeps a sound of its own; every pattern you leave unlocked carries on sharing the track's. So the bass can be bright and drenched in delay for the chorus while the verse and the middle eight are left alone, and those two still move together when you tweak them.
It is per pattern, so the button changes as you move around, lighting up on the patterns you have locked. In chain mode the sound changes arrive with the arrangement, on the bar.
Everything about the sound comes along:
What stays put is the instrument: the engine, and any sample loaded into it. A locked pattern is one instrument played differently, not a different instrument. Routing, macro pads and the generator settings stay put too.
Two ways to make a sound move, both per track.
Assign an LFO to a parameter and it sweeps on its own. Pick the target, a shape, an amount, and either a free speed in hertz or, with sync on, a length: how long one cycle takes in sequencer steps, from half a step up to 64. Filter cutoff is the obvious target, but effect amounts and the instrument's own tone controls work just as well.
The ± switch beside the amount says where that movement sits. On, the modulation swings either side of wherever the knob is. Off, it only lifts the parameter above the knob and lets it fall back: the same amount of movement, all on one side. Use that for anything that should idle where you left it and only open up.
phase is where in the cycle the shape starts. A quarter turn between two LFOs at the same rate gives you a circular pan.
Two of the six shapes are not waveforms. rnd square holds a fresh random value for a whole cycle and then jumps to another, which is sample and hold. euclid taps the parameter in a euclidean rhythm instead of sweeping it. Its length is the step length, so “1 step” means one ring step per sixteenth, and you set the pulses, the cycle length and a rotation the way you would on a track. decay at zero holds each tap for its whole step, which is a gate; turn it up and each tap falls away, which is a pluck. It locks to the transport, so the rhythm it plays is the rhythm the sequencer is playing. Put it on a filter for a gated sweep, on reverb for throws that land on the offbeats, or on a live euclid track's rotate and have one euclidean pattern turn another.
Automation draws a value for each step of the pattern instead. Choose a parameter and you get a lane under the grid where every step holds its own value: a filter that opens over 16 steps, a delay that only shows up on the last beat. Lanes belong to the pattern, so each pattern can move differently.
To see what is moving one control, right-click the knob, the switch or its label. It works anywhere: the instrument row, the filter, effects, eq and comp panels, the sample and wavetable editors. You get a small window for that one parameter, holding what it does, whatever LFO or automation is on it, its macro assignment, and a button to add any of them.
A parameter with something on it wears a dot next to its label: green for an LFO, blue for an automation lane, grey for a lane you have switched off.
A knob being driven grows a second needle in that same colour, at wherever the LFO or the lane has pushed the parameter right now, while the knob itself stays where you left it. The two needles together tell you how far it is travelling and where it comes back to.
macro in the transport opens a set of XY pads. Each axis drives a list of parameters, and that list can span tracks: one thumb opening the bass filter while ducking the lead's reverb.
Two ways to assign a parameter to an axis:
Each assignment has a from and a to, so one axis can open one filter across its whole range while barely moving another, and flip reverses it.
The assigned knobs move as you play the pad. By default the move is momentary: let go and everything ramps back to where it was, so nothing is committed. latch instead leaves the parameters where you put them, exactly as if you had moved the knobs yourself, so they go into the patch and into a save.
Pads are global rather than per track, and they don't follow p-lock. They are saved with the session.
code in the transport opens a drawer under the tracks with your song written as Strudel code. Change it and press Ctrl/⌘ Enter: the song takes the change while it plays, without the beat stopping. Ctrl/⌘ . stops. While it plays, the words in the code that wrote the sounding notes light up.
Whatever the code makes are ordinary tracks. The grid shows them, you can turn their knobs by hand, and a save keeps them. The code isn't a second copy of the song. While the drawer is open it follows the song: change a step, a knob or anything else in the studio, and the code is written again to match. Once you've typed in it, your code is left alone, and from song lights up with a dot to say the song has moved on. The bar also has examples, from song (write the song out again), copy, and strudel.cc, which opens the code on the Strudel site.
All of Strudel's mini-notation works inside the quotes:
| Write | Means |
|---|---|
| bd sd | a sequence: each word a step of the bar |
| ~ or - | a rest |
| [bd sd] | squeeze a group into one step |
| <c e g> | one per bar, taking turns |
| bd, hh*8 | layers played together |
| bd*2 bd/2 | faster, slower (the number can itself be a pattern: hh*<2 4>) |
| bd!3 bd@3 bd _ _ | repeat, stretch, hold |
| bd(3,8,2) | euclidean: 3 hits over 8 steps, turned by 2 |
| bd? bd?0.3 | drop at random |
| a | b | pick one at random each bar |
| {a b c}%4 | polymeter: three steps read four to a bar |
| 0 .. 7 | a run of numbers |
And these functions: s, sound, note, n, chord with .voicing(), .scale("C4:minor"), stack, cat, seq, arrange, fast, slow, rev, ply, euclid, degradeBy, struct, mask, off, superimpose, add / transpose, early / late, segment, the signals sine saw tri square cosine rand perlin with .range(), const variables, and setcpm / setcps for the tempo.
seqbaby has no sample library behind these names: each sound plays on the nearest seqbaby instrument.
| Sound | Plays on |
|---|---|
| bd, sd, hh, oh, cp | the 808 kick, snare, closed hat, open hat, clap. With .bank("RolandTR909"), the 909's |
| cb, rim, perc | the 808 cowbell |
| lt, mt, ht | the techno kit's tom (sampler) |
| cr, rd | the open hat |
| bank CR78, R8, techno, breakbeat, acoustic | that bundled kit on the sampler (kick, snare, hat) |
| bank salamander, virtuosity, drskit | that acoustic kit, every piece: bd, sd, rim, hh, oh, ht (high tom), lt (floor tom), rd, cr |
| sawtooth | poly saw |
| supersaw | contagion |
| square, pulse | snarl |
| tb303, acid | silverbox |
| sine | subby under C3, Plaits virtual analog above |
| siege | siege, the bass drum synth |
| sine or triangle with .fm() | hexop |
| triangle (the default for note()) | Plaits virtual analog |
| piano, epiano, rhodes, wurli | tines |
| synth_bass, moog | ladder |
| anything else with bass in it | electric bass |
| guitar, pluck | electric guitar |
| organ, strings, violin, choir | oracle |
| bell, glockenspiel, marimba, vibraphone, kalimba | fm bell |
| pad | pad |
| lead | drift |
| white, pink, noise | Plaits noise |
| any other name | Plaits virtual analog, and the run says so |
General MIDI names (gm_epiano1, gm_electric_bass_finger and so on) go through the same rules. To pick a seqbaby instrument exactly, name it: s("silverbox"), s("subby"), s("electric_guitar"), s("plaits:virtual_analog"), or its key, s("dm:contagion"). Its name as the engine menu shows it, with underscores for spaces.
A value that is the same on every note sets the knob. One that changes from note to note becomes an automation lane. A signal such as sine.range(300, 2000).slow(4) becomes an LFO, synced to the bar, with the knob parked in the middle of the range.
| Strudel | seqbaby | Lane / LFO |
|---|---|---|
| lpf / cutoff | filter cutoff, in Hz | both |
| hpf, bpf | the filter as highpass or bandpass | both |
| lpq / resonance | filter resonance (Strudel's 0..20 onto the knob) | both |
| lpenv | filter envelope amount | no |
| room, size | reverb wet, reverb decay in seconds | room |
| delay, delaytime, delayfeedback | delay wet, time, feedback | delay |
| crush, coarse | the bitcrusher's bits and its clock | no |
| shape | the wave shaper | both |
| distort | fuzz | both |
| phaser | phaser, at that rate | no |
| gain | the same on every note: the track fader. Varying: note velocities | LFO |
| velocity | note velocities | - |
| legato, clip | how long each note holds | - |
For everything Strudel has no name for, seqbaby adds its own methods:
| Method | Sets |
|---|---|
| .knob("sbaccent", 0.9) | any slider or panel control of the instrument |
| .preset("surf twang") | a guitar, bass or subby tone, a hexop voice, a drone patch, a vox voice or a siege kick |
| .fx("chorus.wet", 0.4) | any control in the effects rack, as stage.control |
| .filter("type", "squelch") | any filter field: type (including the eight analog models), cutoff, reson, env, attack, decay, sustain, release |
| .eq("low", -3) | an eq band, in dB |
| .comp("threshold", -24) | the compressor. .comp("source", "kick") sidechains it from the kick track |
| .lfo("cutoff", "sine", 0.4, 16) | an LFO on any target: shape, amount, then length in beats or "2hz". Shape "euclid(3,8)" for the ring |
| .aut("fx.delay", "0 0.5 1") | an automation lane on any target, one value per step, 0 to 1 |
Every name and value is checked against the instrument's own controls, so a typo comes back as a note under the code rather than a broken track.
A song that uses more than one pattern is written in sections. pattern(2) starts one, and the lines after it write pattern 2. .repeat(4) is how many bars it plays in chain mode (leave it off and it plays as long as its longest part), .meter("7/8") its time signature, and chain() at the top turns chain mode on.
strudel.cc opens the code on the Strudel site. When it uses seqbaby's own names, which strudel.cc doesn't know, it opens a version Strudel can play instead: seqbaby's instruments as the nearest stock sounds, only the effects Strudel has, a chained song as arrange(), and a list of what was left out.
Ctrl/⌘ Z steps back, Ctrl/⌘ shift Z steps forward, and the two arrows in the transport do the same. It covers the whole session, not just the grid: notes, knobs, tracks added and removed, generator settings, a pattern you cleared, a session you loaded by accident.
A drag counts as one step, so a knob moved in three goes comes back in one. Which pattern you are looking at is not part of it, so an undo changes the song and never the view. Text fields keep the browser's own undo: retyping a track name is the field's history, not the song's.
jam in the top bar starts a room from the song that is open and gives you a link. Everyone who opens it edits the same song with you, live: steps, knobs, tracks added and removed, generators, undo. Nobody needs an account, only the link. Opening a different song, or pressing new, leaves the jam: the song you open is yours, not the room's.
Each of you plays it on your own machine, so press play wherever you are. Play and stop are yours alone, but a start lands on the room's beat, so two people pressing play hear the same step. Which pattern you are looking at is not shared. Everything else is one song. Undo steps back over the others' edits as well as your own, and an undo goes out to the room like any other edit.
| Action | What happens |
|---|---|
| new | Blanks the session. Undo brings it back, until the tab goes. If your account has a default template, a new session starts from that instead of from the starter tracks. |
| save | Stores the song in your account. Saving a song you already have keeps the older one: each save is a new version. |
| songs | Your library. Click a title to load it. The row icons are version history, remix, public link, delete, and the two template toggles. |
| history | A song's versions, drawn as the tree they are. Open any version to hear it again; save after that and the new version branches off the one you opened. name labels a version, remix copies one into a song of its own. |
| template | Marks a song as a starting point. The first save from an open template makes a new song instead of another version of the template. The second icon makes one the default, which is what new loads. |
| share | Makes a link anyone can open. They get a playable copy and your original is untouched. |
| public link | Publishes a song to your profile at /u/yourname, where anyone can remix it. |
| patch | The save icon in a track header stores that instrument's sound, which then shows up under saved patches for any track. Signed in, you can publish patches to the gallery. |
| pattern / song | Renders audio and downloads a WAV, either the current pattern or the whole song (its chain, or its arrangement in arrange mode). Recording happens in real time, so a long song takes as long as it plays. |
Leave the name field blank and the song gets named after what is in it, something like basement squelch or soft vapour. The adjective comes from the tempo and the key, the noun from whichever engine the song is mostly made of. The name appears in the field when the save box opens, so you can read it and type over it.
A saved song is a tree, not a file that gets overwritten. Every save hangs off the version you are working from, so the history keeps a straight line while you go forward and branches the moment you open an older version and carry on. Remixing leaves the tree and starts a new song. Sharing a song shares the state you saved, never the versions behind it.
Without an account everything lives in the tab, which means a reload or a clearing of site data takes it with it. An account is the way to keep it.
seqbaby ships an MCP server, which is the plug that lets an AI agent such as Claude use a tool. Connected, the agent can start a song, add tracks, write their rhythms and notes, shape their sound, put movement on them, and hand you a share link. It writes the same session the studio saves, so whatever it makes opens here like any other song, and you carry on by hand from there.
The agent works in the same vocabulary as this manual. A rhythm is a step string, so x..x..x. is a hit on steps 1, 4 and 7; X is an accent,_ a tie; a string shorter than the pattern repeats across it. Notes are names like C2. Every engine, every panel control with its range, every preset and every modulation target is served to the agent as reference, and each value it sends is checked against the engine's own tables, so a wrong engine name or a control outside its range comes back as a correction rather than a silent track. A guide tells it which engine suits which job and how each one likes to be played: that a silverbox accent is a hard hit and a slide is a tie, that subby needs drive to be heard on a phone, that a reverb belongs on a bus.
In Claude Code, register the server once. It runs straight from the repository; the first start installs it, later starts are instant.
Claude Desktop and other MCP clients take the same command in their configuration file:
Working inside a checkout of the repository needs no registration at all: Claude Code finds the server in the project and the composing guide with it.
Say what you want in plain words, and ask for a link at the end:
The reply is a link that opens the song here. Keep talking to change it: busier hats, a different bass preset, a filter sweep across four bars. Each request edits the same song and each share is a fresh link. If you would rather nothing was published, ask for the song as a file instead and load it from the session menu's import.
seqbaby is built on other people's work. Thank you to everyone below, and if you use the sounds in something you release, these are the licences that travel with them.
| Project | Used for | Licence |
|---|---|---|
| Tone.js | Transport and scheduling, and the synth voices behind the drum and analog-mono engines | MIT |
| woscillators | A WebAssembly port of Mutable Instruments' Plaits, which is the plaits engine group | MIT (Plaits: MIT) |
| Dexed | The 32-algorithm table the hexop decodes its operator routings from | Apache-2.0 |
| AKWF (Adventure Kid Waveforms) by Kristoffer Ekstrand | The single-cycle waveforms in the wavetable engine and its editor | CC0 |
| Lemondrop Pack by callimero | The texture library offered to the granular engine | GPL-3.0 |
| CMU Pronouncing Dictionary by Carnegie Mellon University | How the vox's phonetic box pronounces a typed lyric | BSD 2-clause |
| Tone.js audio samples | The bundled drum kits in the sampler (techno, CR-78, breakbeat, acoustic, R8) | MIT |
| Salamander Drumkit by Alexander Holm | The salamander kit in the sampler (one hit per piece, trimmed) | CC BY-SA 3.0 |
| Virtuosity Drums by Versilian Studios | The virtuosity kit in the sampler (one hit per piece, mics mixed down) | CC0 |
| DRSKit by DrumGizmo and DRSDrums | The drs kit in the sampler (one hit per piece, mics mixed down) | CC BY 4.0 |
| Strudel and TidalCycles | The mini-notation and the pattern ideas the code drawer reads. seqbaby has its own reader; no Strudel code ships with it | - |
| Next.js, OpenNext and Better Auth | The shell around the studio, run on Cloudflare Workers: accounts, saved songs, the patch gallery and share links | MIT |
The emulator engines are original models of those instruments rather than recordings of them, and the trademarks belong to their owners.