DRUMLAB

M05 · Sound Design Lab

5 / 10
Transport
Tempo
120BPM
Swing
50.0%
Play mode
pattern loop
Grid

Step grid

Click once for a hit, twice for an accent · right-click clears · arrow keys move the cursor, Space places a hit

Sound lab

Designing the selected track’s sound

Engine
Kick · kick
Touch a knob and its stage lights up. This is the graph js/voices.js actually builds.
Lab kit
One algorithm, eight sounds
This track
Save this kit
Saved kits
Decode lab

Before you press that: decodeAudioData is handed an ArrayBuffer and decodes it. Commit to an answer — what does decoding the same buffer a second time do?

Patterns

Sixteen slots · click to switch · while the transport runs the change is queued to the bar line

This pattern
Speed
Slot
Pattern change
Copy lab

Before you press that: copying a pattern with slots[b] = slots[a] then editing slot b — what happens to slot a? Commit to an answer, then run it on the two scratch slots B7 and B8.

Song

Each row plays one pattern for a number of bars, then the next row takes over

Loop song
no song playing
Project
not saved yet
File

Mixer

Eight channels into one bus · 18 select, M mute, S solo

Factory kit
Mix
Master bus gain → DC block → limiter → out
Level
90%
Output
Limiter
0.0 dB
Smooth params
Voices · DSP estimate
0 voices · ~0 %

Timing lab

CLOCK: lookahead (ctx.currentTime)
Clock engine
Drift, last step stopped
Grid error · min / avg / max — / — / —
Dropouts · steps lost since Play 0
Stall the main thread

Press Play, guess how far a one-second stall knocks this clock out of time, then press the 1 s button.