STBY
SPD174BPM RNG011%
HDG130°T VARAC

FX PADS

Hold a pad to play it, let go to stop. Turn on Latch to make pads toggle. Roll repeats the last quarter, eighth or sixteenth note and drops you back in time when released. Echo, reverb and filter live on the three magenta dots in the scope.

ADVANCED

FLIGHT NOTES

The contacts

The four numbered contacts are your band: 1 kick, 2 snare, 3 hats, 4 bass. Press PLAY, then drag them around the scope.

Distance from center picks the pattern. Inside the black core you get a plain two step groove. The middle band adds ghost notes and syncopation. The outer field, past the dotted ring, is the busy broken version. Drag a contact beyond the magenta ring and it goes out of range and falls silent.

Farther out also sounds darker and wetter, the way distant sounds lose their highs and pick up room. Left and right sets stereo pan for snare and hats. Kick and bass stay centered, which is common practice for keeping the low end solid on club systems.

Heading, the compass angle shown on the tape, sets character: kick tuning, snare tone, hat length, and the bass root note, one semitone every 30 degrees.

The magenta dots

The three dots start parked just outside the ring, which means off. Drag one inside to engage it. Closer to center is stronger. ECHO: heading picks the delay time. SPACE: reverb, heading sets its brightness. SWEEP: a DJ style filter, low pass on the left half and high pass on the right half. You can drag two things at once with two fingers.

The controls

DROP: hold to cut kick and bass while a snare roll and rising filter build. Let go and it lands on a fresh downbeat with a crash. R scatters the contacts, the square mutes the selected one, the slash resets the layout, F plays a fill on the next bar. TACT is tap tempo; tactus was the Renaissance music theory word for the beat. BANK switches between four synthesized kits. REC records what you hear.

Inside the phone

Nothing here is a recording. Every hit is synthesized as you play with the Web Audio API. The kick is a sine oscillator whose pitch falls quickly. Snare and hats are filtered white noise, and the hats add six square waves at inharmonic ratios, the same idea the Roland TR 808 used for its metallic cymbals and hats.

The NEURO bass is a Reese: two sawtooth waves detuned slightly so they beat against each other. The name comes from Kevin Saunderson's 1988 track released under the name Reese.

JavaScript timers wander by several milliseconds, so a scheduler wakes every 25 ms and books sounds about 120 ms ahead on the audio clock, which is sample accurate. This is the approach Chris Wilson described in his article A Tale of Two Clocks. The browser renders the audio on its own thread, separate from the drawing.

The reverb is convolution with an impulse response the app generates at startup from decaying random noise. The line across the inner core is a live oscilloscope from an AnalyserNode that reads 1024 output samples each frame.

Recording uses MediaRecorder. The file type depends on the browser: Safari usually gives MP4 audio and Chrome usually gives WebM. On iPhone, if you hear nothing, check the silent switch. The app asks newer Safari versions to treat its sound as media playback, but older versions follow the switch.