Click once for a hit, twice for an accent · right-click clears · arrow keys move the cursor, Space places a hit
Designing the selected track’s sound
js/voices.js actually builds.
Drop an audio file here — or onto any track name in the grid above
Audio is never written into the project. The trim, pitch, tone
and gain above are numbers and they are saved and exported like everything else
— the buffer is not. A four-second stereo buffer at 48 kHz is about
4 MB once JSON-encoded, against a localStorage ceiling near
5 MB, so one dropped kick would evict your whole project. A shipping
product keeps the audio in IndexedDB and stores a key here.
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?
Inserts sit in the path · sends tap a copy out to a shared bus · hover any control to light its block
Eight tracks want reverb. Commit to two answers before you touch the switch: how many ConvolverNodes does each topology build, and will the two sound different?
Presets travel; audio does not. A preset is a plain object of
numbers, so it rides inside the project JSON and comes back with an
Import .json — the same reason a kit can be saved in M05 and
a four-second sample buffer cannot.
Sixteen slots · click to switch · while the transport runs the change is queued to the bar line
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.
Each row plays one pattern for a number of bars, then the next row takes over
Eight channels into one bus · 1–8 select,
M mute, S solo
Press Play, guess how far a one-second stall knocks this clock out of time, then press the 1 s button.