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?
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.