TT-RUMBLER

TT-RUMBLER Rumble Machine — User Manual

JSFX effect for REAPER // Version 0.4.0 // TimTechlor

The pumping sub-bass layer under your kick — built from the kick itself. A rumble machine for REAPER: it listens to the kick running through it, re-triggers a tempo-synced envelope on every hit and gates a VERB, NOISE or PITCH engine into the signature techno rumble. A Kikzilla-Lite-style chain with every parameter on the front — plus a PITCH engine no Kikzilla has.

01The concept

The rumble is the rolling sub-bass carpet that carries a modern techno track — classically built by copying the kick, running the copy through a long dark reverb, gating it with an envelope that re-fires on every hit, low-passing it hard and ducking it against the dry kick. TT-RUMBLER packs that whole chain into a single plug-in with every stage on the front: a trigger detector that listens to the kick, three rumble engines (VERB / NOISE / PITCH), a tempo-synced AHDR envelope in the Kikzilla percent-of-length semantics, a resonant filter block with an envelope-driven high cut, and a mix stage with feed-forward auto gain and a clipper.

It is an effect, not an instrument: it processes the audio that reaches it — put a kick in front of it (TT-KICK is the obvious partner, but any kick source works) and it does the rest. The engines run on the mono mid signal and the rumble is duplicated to L/R — an authentic mono sub — while the dry kick passes through in stereo, scaled by the KICK fader. The third engine, PITCH, is the feature no dedicated rumble tool offers: it drops the kick itself by up to two octaves, so the rumble is literally built out of your own kick's body.

All 28 sound parameters live on one 900 × 700 panel — no tabs, no menus. The header carries the trigger LED, a 20-step UNDO, the preset bar (INIT + 24 factory designs and a 32-slot user bank), the OPTIONS button and the TIPS switch for the hover tooltips.

02Quick start

  1. Insert TT-RUMBLER on the kick track right after the kick source in the FX chain (e.g. after TT-KICK) — it needs the kick's audio on its input.
  2. Set THRESHOLD (default −3 dBFS — the kick peak must reach it, see section 04) so the TRIG LED blinks once per kick hit — the LEVEL bar shows the follower against the white threshold mark.
  3. Push the RUMBLE fader up (≈70 %), leave LENGTH on 1/4 and START at its default 50 % — the rumble swells after the kick punch instead of covering it.
  4. Pick an engine: VERB for the classic room rumble, NOISE for a textured bed, PITCH to drop the kick's own body into the sub.
  5. Leave AUTO GAIN on (it holds the rumble ≈6 dB under the kick) and park HIGH CUT in the 40–120 Hz sweet spot.
Check that kick audio actually reaches the plug-in — TT-RUMBLER hears what is on its input pins, so it must sit behind the kick generator, not in front of it. Then make sure the LEVEL bar crosses the white THRESHOLD mark on each hit (the TRIG LED must blink), that the RUMBLE fader is up, and that START is not delayed so long that the swell lands after the next kick. With SRC on MIDI the audio trigger is off — feed notes or switch back to AUDIO.

03Signal flow

                     +---------------------------------------------------+
IN (kick audio from   | TRIGGER — peak follower 0.5 ms / 50 ms,           |
 the FX chain before, | threshold −60…0 dBFS, ~3 dB hysteresis,           |
 e.g. TT-KICK)        | 30 ms debounce — AUDIO / AUDIO+MIDI / MIDI        |
        |             +-----------------------+---------------------------+
        |                                     | re-fires the AHDR envelope
        |                                     | (sample-accurate)
        |                                     v
        +--> [DRY KICK ── KICK fader]    [ENGINE: VERB | NOISE | PITCH]
        |        (stereo, untouched)          |  (mono mid signal)
        |                                     v
        |                               AHDR gate (env value EC_VAL)
        |                                     v
        |                               LOW CUT (resonant HP 20–200 Hz)
        |                                     v
        |                               DRIVE (parallel band ~140 Hz)
        |                                     v
        |              +--> HIGH CUT (LP 30–2000 Hz, CUT TYPE)  <-- ENV DEPTH
        |              |      (envelope opens it up to +4 oct)  (0–4 oct)
        |              |                      |
        |              |                AUTO GAIN (feed-forward peak-hold,
        |              |                ~6 dB under kick, freezes on breaks)
        |              |                      v
        |              +-------------- RUMBLE fader (mono → L/R)
        |                                     |
        +--------------- SUM ---------------+
                               |
                         CLIPPER (soft clip at CEILING, CLIP LED)
                               |
                         OUT −12…+12 dB → ±2.0 safety clamp → OUT PINS

Every kick hit re-fires the envelope, the envelope gates the engine and — via ENV DEPTH — sweeps the high cut upward while the rumble swells. AUTO GAIN measures both paths between triggers (feed-forward, so it cannot pump with the beat) and sits before the RUMBLE fader, so the fader always stays a pure level control.

04Trigger

ControlRangeWhat it does
THRESH−60…0 dBFS
(default −3)
Audio trigger level. The peak follower (0.5 ms attack / 50 ms release) must drop ~3 dB below the threshold to re-arm — the hysteresis keeps one hit from double-firing — and a 30 ms debounce enforces a minimum gap between triggers.
SRCAUDIO · A+M · MIDITrigger source. AUDIO = the input follower only; MIDI = note-ons only; A+M = both. MIDI hits are sample-accurate (queued per block), and a MIDI hit briefly holds the audio follower off (≈250 ms) so the same event cannot fire twice.
LEVEL bar−60…0 dBFS logThe follower level with a white mark at the threshold — above the mark the trigger can fire. The numeric LVL/THR readout sits under it.
TRIG LED100 ms latchLights on every fired trigger — a big one in the panel, a small one in the header.

Default since 0.2.0: THRESH −3 dBFS. The follower must actually exceed the threshold, so the kick has to peak above roughly −2.4 dBFS at the input of TT-RUMBLER (measured with a synthetic kick and the exact follower: peaks of −3 dBFS and below do not fire). For quieter kicks lower THRESH (CTRL+click resets it to −3 dB).

TT-RUMBLER is an FX plug-in: all incoming MIDI (notes, CC, pitch bend, clock) passes straight through — notes only additionally fire the envelope when SRC allows them. A trigger restarts the envelope from the START phase and re-anchors the auto-gain measurement window.

05Engines

Three engines, one active at a time — the MODE buttons select the source, CHARACTER refines it, and only the knobs the selected engine actually reads are shown. Switching the engine flushes its buffers, so an old tail never repeats into the new engine.

EngineCharactersKnobsSource
VERBMODAL · WALL · BLOOMDECAY · FOCUS · DENSEFeedback-delay network excited by the kick
NOISECLASSIC · GRIT · RUBBLETONEColored noise bed
PITCHTIGHT · DEEP · GRAINPITCH (0…−24 st)The kick itself, pitched down

VERB — a dark room on the kick

The mono mid feeds a 200 Hz low-pass exciter into four parallel feedback comb filters plus two allpasses. DECAY sets the comb feedback as a T60 time (0.2–8 s — the readout is the nominal value, see section 12), FOCUS parks the damping pivot between 40 and 400 Hz (lower = darker room), DENSE (0–100 %) controls the diffusion — low values thin the comb tails out.

NOISE — a textured bed

A deterministic generator (Park-Miller LCG) feeds the noise character; TONE (40–2000 Hz) shifts the colour.

PITCH — the kick's own body, dropped (the USP)

The input runs through a 32768-sample ring buffer read by two heads a half window apart, blended with a Hann half-period crossfade (the weights sum to exactly 1, so transitions are click-free; reads are linearly interpolated). PITCH sets 0…−24 semitones — −12 st doubles the kick into an octave-down sub shadow. The window phase-locks to every trigger: at fire time head A sits at full weight exactly W/2 behind the write head, so each kick lands identically in the shifted tail — deterministic punch instead of beat-to-beat level lottery. The envelope restart waits the same ~W/2, keeping gate and shifted flag in sync.

At 0 st the engine deliberately still runs through the buffer — the latency stays constant and switching pitches never clicks. The inherent lag (~W/2 samples) is a documented characteristic — see section 12.

06Envelope

The AHDR uses the Kikzilla basic semantics: LENGTH picks the whole envelope's duration as a note value — 1/1 · 1/2 · 1/4 · 1/4T · 1/8 · 1/8T · 1/16 — always tempo-synced to the host (the panel prints the resulting time in ms under the stepper), and START / ATTACK / HOLD / RELEASE are percentages of that length, not absolute times:

Section% of LENGTHBehaviour
START0–100A pure delay before the attack — the output stays at 0 while the kick punch plays through clear. The single most important rumble control.
ATTACK0–100Swell time — how fast the rumble rises to full level.
HOLD0–100Full-level time.
RELEASE0–100Fall time to zero.

Default START = 50 % (INIT and all factory presets, CTRL+click reset). With the other sections unchanged the sum exceeds 100 %, so the sections are squeezed proportionally — the swell starts later and is correspondingly shorter; reduce ATTACK/HOLD/RELEASE if you want the old shape back.

If the four percentages sum to more than 100 % they are squeezed proportionally (each is scaled by total/sum); a sum below 100 % leaves silence at the end. The display draws the resulting curve with the S/A/H/R section markers — squeezed proportions included — and is read-only in v1 (edit with the knobs, the curve follows).

CURVE (−500…+500) bends the attack and release exponent: p = 23·c·0.002 — negative values give a sharp knee with a long tail, positive values a fast snap. A 1.5 ms smoothing pole on the gate output keeps re-triggers and tempo jumps click-free, and a parameter or BPM change mid-flight hands the running envelope to the right next section instead of jumping. Every trigger restarts the envelope from START — the pumping comes from the re-triggered gate, not from a compressor.

07Filter & drive

ControlRangeWhat it does
LOW CUT20–200 HzResonant high-pass on the engine output — cleans the kick's click and top end off the rumble.
LC RESQ 0.5–8Resonance of the low cut — a tuned bump right at the cutoff that can sing.
HIGH CUT30–2000 HzLow-pass on the rumble — the main tonal control. The typical techno spot is 40–120 Hz.
HC RESOQ 0.5–8Resonance of the high cut — adds a whistle edge to the sweep.
DRIVE0–100 %Parallel saturation band around ~140 Hz — thickens the rumble while the top of the band passes clean. At 0 the stage is bypassed bit-exactly.
ENV DEPTH0–4 octThe envelope opens the high cut as the rumble swells — the "rolling pressure" move (the filter opens from e.g. 45 to 90 Hz and closes again). Hard-limited inside at 30 Hz to 0.45·srate.
CUT TYPECLEAN · COMB · DIRTYHigh-cut character: CLEAN is a linear state-variable filter, COMB adds a 35 % delay line at the cutoff (industrial edge), DIRTY is a stabilized tanh SVF (raw, grittier).

08Mix & clipper

ControlRangeWhat it does
KICK / RUMBLE switcheson / offThe KICK and RUMBLE labels under the faders are on/off switches (lit = audible). Off = mute of that output only, with a ~5–10 ms soft ramp (no click): with KICK off the dry kick is silent while trigger and engine keep running; with RUMBLE off the engine, AUTO GAIN and the trigger keep running, so switching it back on causes no settling. MIDI pass-through is untouched. A muted fader and its percentage are dimmed. The switches are a listening/working tool: they are not part of presets (loading a preset leaves them alone, UNDO ignores them), are stored in the project/FX-chain state, and both default to on. Older projects load with both on.
KICK / RUMBLE0–100 %Vertical faders. KICK is the dry kick (stereo, untouched); RUMBLE is the engine level (mono, duplicated to L/R) sitting after AUTO GAIN in the chain.
AUTO GAINon/off (default on)Feed-forward peak-hold: measures the kick's peak and the rumble's peak before its own VCA between triggers, then aims the rumble ≈6 dB under the kick — it only attenuates and glides over ~2 s, so it cannot pump with the beat. If no trigger fires for 3 s or the kick drops below −45 dBFS, the gain freezes — breakdown tails are never cut. The AG n% readout shows the current gain.
OUT−12…+12 dBFinal level, bipolar — the middle is unity gain.
CLIPPER + CEILINGon/off · −12…0 dBFSSoft clip on the sum at the ceiling; the CLIP LED latches 100 ms on hits. Behind OUT a last-resort ±2.0 safety clamp catches extreme settings.
OUT SCOPE—The summed output as heard — post-OUT, pre-clamp (right edge = now).

09Presets

The preset bar in the header (left of OPTIONS) is the same in every TimTechlor plugin: [<] [ name ▾ ] [>] [SAVE] [...]. The list holds INIT (the factory state) plus the 24 factory designs (section FACTORY) and 32 user slots (section USER). Every preset (factory or user) writes the 28 sound parameters and is undoable: UNDO next to the bar steps back over a preset load like over any edit. An asterisk * behind the name means the sound was edited since the preset was loaded. Every factory preset was rendered through a Python transcript of the engine and passed an offline level/pump/clip gate before shipping.

TT-RUMBLER with the preset bar dropdown open: FACTORY and USER sections, two user presets saved
The preset bar with the dropdown open: FACTORY list on top, USER slots below (empty slots show - empty -).

Loading, saving, managing

Where the user presets live

JSFX cannot write files, so the user bank is part of the plugin state (@serialize): it is saved with the project, in FX chains and track templates. To carry it to other projects or computers use REAPER's own preset button in the FX window (+ → Save preset...): a native REAPER preset file of this plugin contains the whole bank, and loading that preset restores all 32 slots. Projects saved with an older version open with an empty bank and an unchanged sound. Each used slot adds well under 1 kB to the project.

#NameEngine · CharacterCharacter of the design
0INITVERB · MODALNeutral defaults — VERB T60 3 s, 1/4 envelope, HC ~80 Hz.
1WAREHOUSEVERB · MODALThe video recipe: T60 3 s, 1/2 length, ATTACK 40 % (START 50 % like every preset since 0.2.0).
2DEEP DARKVERB · WALLLong dark wall: T60 6 s, FOCUS 70 Hz, HC down to 60 Hz.
3BLOOM RISEVERB · BLOOMSlow riser: T60 8 s (×1.5 character), 2-oct env depth.
4TONAL DEEPVERB · MODAL"Tonal reverb" demo: short T60 ~1 s at FOCUS 55 Hz through a DIRTY cut.
5MODAL AIRVERB · MODALAirier modal room: T60 4.5 s, FOCUS 120 Hz, HC up at 120 Hz.
6BLOOM WIDEVERB · BLOOMFull diffusion (DENSE 100), T60 5 s, 1/2 length.
7WALL SHORTVERB · WALLTight wall at 1/8 length, T60 1.5 s — close, clipped rumble.
8CLUB READYVERB · MODALBalanced club rumble: T60 2.5 s, HC ~90 Hz, 30 % drive.
9BOOM E1NOISE · CLASSICThe "E1 boom" chest-pressure recipe: HC 45 Hz, LC 86 Hz with a small LC bump.
10SCHRANZNOISE · GRIT"Inject Schranz": bright grit (TONE ~500 Hz), DIRTY cut at 70 Hz, clipper at −1 dB.
11ROLL 16NOISE · RUBBLERolling 1/8T flags — the comb-roll idea, TONE ~180 Hz.
12DARK CARPETNOISE · CLASSICWhole-bar carpet: dark noise (TONE 55 Hz) over a 1/1 envelope.
13WHITE WASHNOISE · GRITBrighter wash: TONE ~300 Hz through a CLEAN 110 Hz cut.
14BROWN PULSENOISE · CLASSICHard-pumping triplet pulse: TONE 65 Hz, 1/4T, sharp knee.
15RUBBLE LOWNOISE · RUBBLEDark comb growl: TONE 70 Hz, LC wide open at 25 Hz.
16COMB ROLLNOISE · RUBBLEIndustrial 1/16 roll through the COMB high cut.
17DIRTY LOWNOISE · CLASSICRaw low rumble: TONE 90 Hz, DIRTY cut, 40 % drive.
18OCTAVEPITCH · TIGHTThe kick one octave down — the shortest window, tightest sub drop.
19DEEP SEAPITCH · GRAINTwo octaves down through the grain window, dark filter chain, rumble at 100 %.
20SUB DROPPITCH · DEEP−12 st long flag over a 1/2 envelope — the classic sub drop.
21GRAIN TAILPITCH · GRAIN−18 st triplet tail (1/4T) with a drive edge.
22OCTAVE FATPITCH · DEEP−12 st fattened by drive and the COMB cut at 110 Hz.
23HALF TIMEPITCH · TIGHT−24 st half-time drop over 1/2, rumble at 100 %.
24GLITCH SUBPITCH · GRAIN−7 st chopped sub over 1/16 with COMB and full env depth.

10Editing, undo & tips

11Options / Color

TT-RUMBLER with the OPTIONS box open: ten colour swatches, the factory scheme ACID is marked
OPTIONSOptions / Color. Click OPTIONS in the header (right of UNDO), then a swatch. A click outside the box closes it.

The OPTIONS button opens a small box with the COLOR choice: ten schemes — ACID, CYAN, ORANGE, MAGENTA, YELLOW, RED, BLUE, VIOLET, MINT and ICE. A scheme changes the accent colour (knob rings, envelope curve, active buttons, LEDs, panel lines), the second colour (the CLIP LED) and, for RED to ICE, the slightly tinted background and panel greys of the whole front at once. The choice applies per plug-in instance and is saved with the project and with FX-chain copies (it rides in a spare word of the state blob; projects saved with an older version open in ACID). It is not part of the presets and not touched by UNDO — loading a preset never changes your colour. The factory colour is ACID (the classic acid green, identical to versions before 0.3.0). The scheme has no effect on the audio.

12Tips & tricks

13Limitations & notes