Stolperbeats visualiser

This is a visualiser and emulator of the MSM Stolperbeats module. I made this to help my eyes understand what my ears were hearing, and also to experiment with hypothetical "alt timings" that may be able to be added to the firmware at some stage. I built this for educational purposes only.

Timing

Timing creator
Start from Beats Snap
Grid

Shuffle 0
Feel

Timing
What it does
Resolution
Largest shift

One bar

Linear
Kit
Drum presets
on the grid pushed late pulled early where the straight 16th would be ratchets (Rolls, Stut) silenced by Linear

Click anywhere to place a hit on the nearest step, or hold and drag to draw several. Start on a hit to erase instead. Use the M button beside a track to mute it.

Half a bar up close: the firmware's 8-step cycle

Use this section to shape the grid above: drag the steps and the bar follows.

About · what everything on this page is

Pick a Timing, turn the Shuffle control, and watch each hit get pushed off the straight 16th grid, then hear it. Click or drag on the bar to write your own beat.

Stolperbeats Timings. Trip, Shake, Push and Clave, with all seven Shuffle settings, come from the step tables in firmware 163, and every hit is placed the same way the module places it.

Feels. Tight, Rolls, Flam and Slop come from the module. Lock (kick stays straight), Late (kick straight, snare a tick late) and Stut (trap-style hat ratchets where producers usually put them) are proposed additions.

Deluge styles. DRNK (Trip's six shuffled rows) and HOPP (MPC-style 16th swing) are groove tables written for the Synthstrom Deluge community firmware, shown at its 96 ticks per beat. DEEP (8ths and 16ths swinging at once) is proposed. SQEZ, the fourth green tile, was made in the creator below: it starts like CLSTR, then squeezes the "&" and "a" up against the next downbeat. It only exists as module rows, so it has no DELUGE 96 version. Every style runs 0 to 6.

Grid. MODULE 36, the default, rebuilds the green styles in whole ticks at 16 to 36 ticks per beat, the way Stolperbeats would have to hold them, with the Feels running on that grid. DELUGE 96 shows them at the Deluge's 96 ticks per beat.

MORE. The archive, all proposed: CLSTR (DRNK inside out: the "e", "&" and "a" cluster mid-beat instead of leaving a gap, and lean further late as the level rises), FOLD (the "e" and "a" of every beat fold in toward the "&"), AFOLD (FOLD alternating: in on beats 1 and 3, out on 2 and 4), XFOLD (the original FOLD: hats fold in while Kick and Snare fold out), TRIO (quarter-note triplet pull), PROG (a 7+9 split, Tool style), VOODOO (D'Angelo's dragging rhythm section), LOTUS (a swing ratio per track), SKEW (a clock per track), DROP, FLOP and FAFF (HOPP and DRNK hybrids), BALL and TOSS (bouncing and thrown balls), SWAY (the tempo breathing across the bar) and LIMP (2+2+2+3 aksak).

Linear. From the module: when tracks clash on a step, only the highest priority one plays.

Download tables. The button by the Timings saves the selected style as a zip: its step positions at 96 ticks per beat (JSON and CSV), Stolperbeats-format rows for HOPP, DEEP, FOLD and CLSTR, and a one-bar MIDI groove per level for Ableton (right-click a clip, Extract Groove(s)). It's off for the four factory Timings. No firmware is included.

Download MIDI. The button above the grid saves the bar exactly as it plays: every hit where the grid shows it, with the Timing, Shuffle, Feel, Rolls and Stut, accents as velocity, at the current tempo. Muted tracks and hits Linear silences are left out. It's one bar of GM drums (Kick 36, Snare 38, Hihat 1 42, Hihat 2 46, Perc 1 39, Perc 2 63) at 960 ticks per beat.

Creator. The CREATOR switch at the top swaps the Timing row for a table maker, with the same grid, kits, Feels and playback. Start from a Timing or from straight, then drag the steps in the half-bar view while it plays. The Shuffle slider picks the level you're editing, and a level you haven't touched yet starts as a copy of the one before. Every Timing made here keeps to the module's rules: whole ticks, 16 to 36 ticks per beat in steps of 4, every step at least 1 tick, and the half bar's 8 lengths adding up to 2N. So it can go straight into a test build. Save adds it under MORE, Export saves its 7 rows as a file, and Import loads one back, including a style's JSON from Download tables. Saved Timings stay in this browser only, so export the ones you want to keep.

See Sources below for what's read from firmware, what's matched, and where each idea comes from.

Sources · what's read from the firmware, and what's matched

✓ Read from the firmware code

  • Ticks per beat for each Shuffle setting: 0x08029948
  • Step lengths: Trip 0x08029788, Shake 0x080297F8, Push 0x08029868, Clave 0x080298D8
  • SHUFFLE is clamped to 0 to 6, and the row is shuffle + 7 × timing (0x080097E8)
  • At boot, step lengths become running totals (0x0800D430)
  • Tick length = 60 × 48014 ÷ (bpm × ticks per beat) timer counts, which is exactly 1/N of a beat (0x08003BB8)
  • A step fires when the tick counter equals its running total. The first 8 totals replay every half bar (0x08010E58)
  • FEEL is 0 to 3 (Tight, Rolls, Flam, Slop) at 0x2401738C. The firing code runs on every tick, not just on steps
  • Flam fires Kick and Snare one tick after their step. Slop does the same, and also holds Hihat 1 and Hihat 2 for a tick, but only on steps where Kick or Snare hits (0x08011284)
  • Linear (flag 0x24016ED2, toggled by the Linear button) is applied at each step (0x08011082): Snare silences Kick and all hats and percs, Kick silences hats and percs, Hihat 2 silences Hihat 1, Perc 2 silences Perc 1. Hats and percs don't silence each other. This matches the manual's priority list
  • Rolls retrigger Hihat 2 until the next step: on every tick for Shuffle 0 and 3, otherwise on every second tick (row mask 0x01224489)

≈ Matched, not traced in code

  • Which table belongs to which button. The four tables sit in button order and match the manual's descriptions. Push and Clave are now confirmed on hardware: a private test build with DEEP and FOLD in the third and fourth tables played them from the PUSH and CLAVE buttons. Trip and Shake follow the same order.
  • Feel colours come from the manual. The firmware only switches one of four LEDs per button.
  • Trigger pulse length, and how the Feels appear on MIDI out, haven't been traced.
  • Only the DEEP and FOLD tables have been tried on a real module (by ear, in that test build). Nothing has been measured with instruments.
  • The 808, 909 and 606 kits are synthesised approximations, not samples.
  • Here Linear looks at the pattern, so a track muted with M still takes priority. The firmware's Linear reads the pattern arrays too, so this is likely the same on the module (not tested on hardware).
  • Stut is a proposed Feel, not on the module. Its placement follows common trap production practice, not measured data: rolls at the end of the bar and just before snares, and triplet rolls on steps 7 and 15 in Metro Boomin and Southside style trap (eMastered); 32nd-triplet rolls at the end of a loop with a volume crescendo (Ch41rm4n); ×2 to ×8 subdivisions with a volume ramp (Padwolf). Boom bap rarely rolls its hats (LANDR). Here it fires every bar; real tracks often save rolls for every second or fourth bar.

✓ DRNK, HOPP, BALL, TOSS, SWAY, LIMP, DEEP, DROP, FLOP, FAFF, TRIO, PROG, VOODOO, FOLD, AFOLD, XFOLD, CLSTR, LOTUS and SKEW: Deluge groove styles

  • Tables are copied from src/deluge/model/swing/swing_style.cpp on the swing-styles-drnk-hopp branch: kHoppEven16th, kDrnkTuplet and kDrnkSlots. Ticks are at the Deluge default of 96 per quarter note, so a 16th is 24 ticks.
  • HOPP swings each pair of 16ths. The patch has 7 levels; here it has 6, landing the even 16th at tick 26, 27, 28, 30, 32 or 34 of the pair: whole ticks, the way a 96ppq MPC60 or MPC3000 places them. That's 54.2% to 70.8%, dense at the low end, then triplet shuffle and Linn's 71% top step.
  • DRNK repeats every beat and has 6 levels: the six shuffled rows of Trip from the Stolperbeats manual's "Shuffle display in Trip mode". Each beat is cut into 7, 9, 5, 6, 8 or 9 equal slots, and its four 16ths play on chosen slots, leaving gaps. The downbeat never moves. These are the same slots the firmware 163 Trip tables give at Shuffle 1 to 6, so DRNK level L lands where Trip at Shuffle L does.
  • BALL is proposed, not yet in the Deluge patch. It's a 16-step window like a bar-long table: each 16th gap is r times the one before (r = 0.995, 0.988, 0.981, 0.974, 0.967, 0.96 for levels 1 to 6), and the 16 gaps fill the 384-tick bar exactly. The bar's downbeat never moves, beats 2 to 4 drift late (beat 3 the most), and the last 16ths stack up just before the next downbeat. At 90 bpm the largest shift runs from about 27 ms at level 1 to about 216 ms at level 6.
  • TOSS, SWAY and LIMP are proposed too, also one-bar windows with the bar's downbeat fixed. TOSS plays BALL's gaps in reverse, so everything lands early by the amounts BALL lands late (beat 3 up to about 216 ms early at 90 bpm). SWAY bends time by M × sin(2πx) ticks across the bar, M = 4, 10, 15, 21, 26, 32: beat 2 late, beat 4 early, beats 1 and 3 fixed, with the tempo swinging up to ±52% at level 6. LIMP makes beat 4 longer than beats 1 to 3 by a ratio rising evenly from 1.08 to 1.5 (5:4 at level 3, 4:3 at level 4); at 1.5 that's 2+2+2+3, the 9/8 aksak limp, with beat 4 landing about 222 ms early at 90 bpm.
  • DEEP is proposed too, in a 1-beat window. It swings at two levels: each beat's 8ths split 52, 55, 58, 61, 64 or 66.7% (triplet 8ths at level 6), and each 8th's two 16ths split 52, 53, 54, 56, 58 or 60% inside it. Every downbeat stays on the grid, the "&" drags the most (about 111 ms at level 6 and 90 bpm), and the gaps shrink across each beat.
  • DROP, FLOP and FAFF are proposed too: hybrids of HOPP and DRNK at the same level. DROP puts Kick and Snare on HOPP level L and the other four tracks on DRNK level L. FLOP is the opposite: Kick and Snare on DRNK, the rest on HOPP. FAFF puts only the Kick on DRNK and the other five tracks on HOPP. On the Deluge they'd need swing per track, which the patch doesn't have yet. Their Feels run on the grid the other four tracks use: DRNK's clock (Trip's Shuffle L) for DROP, the straight clock for FLOP and FAFF.
  • TRIO is proposed too, a one-bar window. The bar's six quarter-note triplets (every 64 ticks) pull on the nearest 16ths: steps 1, 4, 6, 9, 12 and 14 move s/6 of the way onto them, and the steps between spread evenly. The four downbeats never move. At level 6 steps 4 and 12 land 8 ticks early and 6 and 14 land 8 ticks late (about 56 ms at 90 bpm).
  • PROG is proposed too, a one-bar window inspired by Danny Carey's odd groupings over 4/4 in Tool (Schism alternates 5/8 and 7/8). The bar's 16 steps are split 7+9 and each group gets half the bar: 7 in the time of 8, then 9 in the time of 8. Level s moves the steps s/6 of the way. At level 6 step 8 lands right on beat 3 (24 ticks, about 167 ms late at 90 bpm) and the second half rushes back to the bar line.
  • VOODOO, XFOLD, LOTUS and SKEW are proposed per-track styles: each track gets its own placement, which the Deluge patch can't do yet (its swing moves every track together). All four scale from straight at 0 to the values below at level 6.
  • VOODOO follows D'Angelo's Voodoo: Questlove's groove drags behind the metronome and D'Angelo pushed the kick further off the beat, the claps aren't quantised with the snare, and Pino Palladino's bass drags behind drums that already drag (Slate). Dilla, the Soulquarians' reference, set a different offset per MPC pad, with the snare about 30 ms after the kick (LRB). The values are our model, in ms so they hold at any tempo, and exaggerated past what's been described so the effect is obvious: Kick +35, Snare +50, clap (Perc 1) +70, Perc 2 +100 standing in for the bass, hats on the grid. No published measurement of Voodoo itself was found.
  • FOLD uses one grid for every track and the same shape every beat: the "e" moves late and the "a" early, in toward the "&" (up to 14.4 ticks, about 100 ms at 90 bpm), passing the 8th-note triplets a little past level 3 and reaching the quintuplet slots at level 6. Downbeats and every "&" stay. Like the module's own rows it's a plain table, so it would need no code change on Stolperbeats. AFOLD, in the archive, alternates: beats 1 and 3 fold in, beats 2 and 4 fold out at half the amount (also a plain table: Trip already mixes early and late steps in one beat, and Clave already shapes beat 1 and beat 2 differently). XFOLD, in the archive, is the original per-track FOLD: hats and percs fold in while Kick and Snare fold out on the same beats. It's a read of Flume's records, not a measured study.
  • LOTUS gives each track its own swing ratio on the off 16th of each 8th: Kick 50% (straight), Snare 66.7% (triplet 2:1), hats 75% (dotted 3:1), percs 80% (4:1, about 100 ms late at 90 bpm). It follows the "several grids in one beat" feel of Flying Lotus and the LA beat scene. SKEW takes the description of that scene as "several metronomes skewed in different directions": each track drifts on its own clock (by step 16 the hats are about 11 ticks early, the Snare 7.5 late, the percs 15 late, about 104 ms at 90 bpm) and every clock resyncs on the next downbeat.
  • MODULE 36 rebuilds DRNK, HOPP and DEEP within Stolperbeats' limits: whole ticks, 16 to 36 ticks per beat, one ticks-per-beat value per level (the firmware's ticks-per-beat table has an entry for every row). Each level's grid is the closest fit among the module's own 16, 20, 24, 28, 32 and 36 ticks per beat; all are divisible by 4, so the Subdiv clock out, which pulses every 4 ticks, stays even. DRNK is exactly Trip. HOPP uses 36, 32, 24, 32, 36 and 28 ticks per beat (55.6, 56.3, 58.3, 62.5, 66.7 and 71.4%, the last being Linn's 71% step; within 4.6 ms of the 96-tick version at 90 bpm). DEEP uses 36, 24, 36, 36, 36 and 32 (within 8.2 ms). SQEZ is module rows only, on 36, 20, 36, 32, 28 and 36; its levels 5 and 6 have 2-tick steps, like FOLD's. CLSTR, now in the archive, still has module rows for Download tables: 36, 20, 36, 32, 28 and 36, exactly, since each slot is 4 ticks. FOLD, also archived, still has module rows for Download tables: 36, 20, 28, 20, 16 and 20 (within 2.4 ms). Its levels 5 and 6 have 2-tick steps, one shorter than the shortest step in any factory row (3, in Clave); the code has no minimum and a one-tick Flam or Slop hold still lands before the next step, so it should be fine, but no factory table exercises it. The Rolls rate assumes a new style takes over one Timing's 7 rows, so it follows that group's slots in the row mask (every tick at levels 0 and 3).
  • XFOLD (the per-track FOLD) on the module: traced in firmware 163, it would work with a firmware change, not a rewrite. The fire function already runs on every tick and every output has its own gate, MIDI and note-off state; only one shared "step reached" compare ties the tracks to one grid (0x08010E7C). Keeping that compare on a straight reference grid and adding a per-track check each tick (6 tracks × 8 steps against a small per-track table) would let tracks fire early or late on their own ticks: roughly 80 lines of C. Flam and Slop's hold can't be stretched to do it, as it only remembers the previous step for one tick. See NOTES.md.
  • CLSTR is proposed too: DRNK inside out. Each beat is cut into n equal slots (9, 5, 9, 8, 7 and 9 for levels 1 to 6), and where DRNK leaves a gap in the middle, CLSTR clusters the "e", "&" and "a" and leans them late, more as the level rises: slots 4, 6, 8 of 9; 3, 4, 5 of 5; 5, 7, 8 of 9; then shifted right, 5, 6, 7 of 8; 5, 6, 7 of 7; and at level 6 the last three of 9 (7, 8, 9), jammed against the next downbeat. At 90 bpm the "e" runs from 56 ms late at level 1 to 278 ms at level 6. On the module it would sit on 36, 20, 36, 32, 28 and 36 ticks per beat, with every step at least 4 ticks, so it would be a plain table too.
  • Every Deluge style here runs 0 to 6, like the module's Shuffle, with 0 meaning straight. HOPP is cut from the patch's 7 levels to 6 by dropping 60.4%. BALL, TOSS, SWAY, LIMP and DEEP keep their gentlest and strongest settings, spread over 6 levels.
  • Swing level 0 is off. Swing on the Deluge is a song-wide time warp, so all six tracks move together, and the Deluge has no Feels. The Feels here are a model of what they would do on these grids: DRNK level L runs them on Trip's Shuffle L clock (DRNK is Trip, so DRNK plus a Feel matches Trip plus that Feel), and the other Deluge styles and Swing OFF run them on Stolperbeats' straight clock of 16 ticks per beat.
  • Lock is a proposed fifth Feel, not on the module or in the Deluge patch. The Kick stays on the straight 16ths while the other five tracks land where the Timing's table puts them, at every level. Downbeat kicks don't move under these Timings anyway, so Lock shows up on off-beat kicks.
  • Late is a proposed sixth Feel, also not on any hardware. It locks the Kick like Lock, and fires every Snare one Feel tick after its step, the same push Flam gives it. Hihats and percs land where the table puts them.
  • The Deluge interpolates positions between steps, so notes off the 16th grid are warped smoothly too. This page only shows the 16th steps, at the default 16th swing interval. An 8th interval doubles every offset.
  • Background: Linn's 54/58/62/66/71 ladder (Attack, Roger Linn interview, MPC60 manual), breakbeat swing medians near 54.5% (Frane 2017), DRNK's slot patterns (Stolperbeats manual, Shuffle section), and the design intent behind tuplet-grid beats (CDM Superbooth preview).

Disclaimer. This is an unofficial, independent educational project. It is not affiliated with, endorsed by, or supported by Making Sound Machines. Stolperbeats is designed and made by Making Sound Machines, and all rights in the module and its firmware remain theirs. The timing tables used here were read from the publicly available firmware 163 purely to illustrate how the shuffle works. For anything official, see the Stolperbeats manual. The Deluge styles here (DRNK, HOPP, DEEP, FOLD, AFOLD, XFOLD, CLSTR, TRIO, PROG, VOODOO, LOTUS, SKEW, DROP, FLOP, FAFF, BALL, TOSS, SWAY and LIMP) are not part of Stolperbeats. They are groove styles proposed for the open-source Synthstrom Deluge community firmware. DRNK reproduces the Trip patterns published in the Stolperbeats manual, and the Trip timing is Making Sound Machines' design. Neither style is an official release of, or endorsed by, Synthstrom Audible or Making Sound Machines.