TT-KICK Kick Machine — User Manual

JSFX instrument for REAPER // Version 1.1.0 // TimTechlor

One kick, three sequential segments — crossfading instead of layering. A hybrid kick designer for REAPER: every segment is either a synth engine or your own sample (loaded or captured live), and the synth path stays phase-coherent across the segment boundaries by construction.

01The concept

TT-KICK builds one kick from three sequential segments on the time axis — TRANSIENT (the click), BODY (the punch) and TAIL (the room) — joined by equal-power crossfades. Unlike layered kick tools, the segments play one after another, so each stage can be crafted without the stages fighting each other.

Every segment is switchable between SYNTHESIZED and SAMPLE: mix your own sample attack with a synthesized body, or run the whole kick purely from the synth engines — no sample pack required (a fresh instance is all-synth and sounds immediately). The synth path carries its oscillators phase-coherent across the segment boundaries: a successor segment starts at the exact phase its predecessor holds at the boundary — phase-continuous by construction, not by phase-offset tinkering.

A fourth row below the lanes — FUSION — always shows the kick as it is currently built: the segments in sequence on one output time axis, the crossfade zones shaded, and the total chain length in milliseconds. Where a segment starts on that axis is set by the crossfade of its boundary and, if you want it, by the lane's OFFSET (see The time axis and OFFSET in section 04).

00.51position in the crossfade (outgoing lane to incoming lane)outgoing (cos)incoming (sin)power sum = 1dashed: linear fade
EQUAL POWERWhy the joins do not dip. The outgoing lane follows a cosine, the incoming lane a sine, so their squared gains always add up to 1. A linear fade would lose 3 dB of power in the middle of every join (dashed).
The TT-KICK front at 125% UI size, version 1.1.0
The TT-KICK front in v1.1.0 at the default UI size of 125%.

02Sound examples

All 44 factory kicks, each as eight hits (two bars of four on the floor) at 130 BPM with its natural tail. Filter by family, click a waveform to jump, and compare. All clips share one export gain, so louder kicks stay louder; there is no normalisation, EQ, compression or mastering on any clip.

The clips are rendered offline from the plug-in’s own code (the same EEL2 source that REAPER runs, played by an interpreter), not recorded in REAPER, so the sound in your project can differ in small details. Each kick is the factory preset at its default settings, played at the ROOT note with velocity 110.

TT-KICK // 44 factory kicks, eight hits eachReady
909 TIGHT

Punchy club kick — tail ≈ 110 ms, sub ≈ 45 Hz

130 BPMPreset 1909
0:00
0:00/0:05
Audio file not found. The examples are online at timtechlor.de/docs.

What is inside a hit

The pictures below show one hit of five different designs: the waveform on top, the spectrogram (frequency on a logarithmic axis, 20 Hz to 2 kHz) below, and the three segments shaded on the time axis exactly as FUSION shows them.

Waveform and spectrogram of 909 TIGHT with the three segments marked
909 TIGHTAnatomy of 909 TIGHT. A short click, a pitch-swept body and a brief tail. The spectrogram shows the body sweeping down into the sub region while the transient is still ringing.
Waveform and spectrogram of 808 SUB with the three segments marked
808 SUBAnatomy of 808 SUB. The body carries the whole sound: a long sub with a slow decay and no distinct transient.
Waveform and spectrogram of RUMBLE DEEP with the three segments marked
RUMBLE DEEPAnatomy of RUMBLE DEEP. The tail (S3) keeps the sub alive between the hits.
Waveform and spectrogram of ROLL TIGHT with the three segments marked
ROLL TIGHTAnatomy of ROLL TIGHT. Everything is short, so the pattern stays clear at fast tempos.
Waveform and spectrogram of REVERSE BLOOM with the three segments marked
REVERSE BLOOMAnatomy of REVERSE BLOOM. S3 runs backward: the tail swells into the next hit instead of decaying.

03Quick start

  1. Drop TT-KICK from your effects browser onto a track (REAPER 7.x; it is an instrument — feed it MIDI).
  2. Play instantly: the factory state is pure SYNTH on all three lanes — press a note (or switch the built-in player on) and a complete kick sounds with no kit loaded.
  3. Use your own samples: run one of the TT-KICK Load Kit actions (section 10) with the TT-KICK window focused (or its track selected) and assign one file per slot — that instance loads the kit at once. Or click a lane's CAP and record a source straight into the slot (section 07).
  4. Watch the FUSION row for the assembled result, shape the master rack (section 08), dial in the player (section 09), pick a preset (section 11).
Check the kit status readout in the top right (KIT n/3), make sure the lane is set to SAMPLE with a loaded slot (or to SYNTH), that its Mute is off (and it is not left out by another lane's Solo), and that the master OUT gain is up. In SYNC mode the player only runs while the REAPER transport plays.
The TT-KICK header: logo, UNDO, trigger LED, kit status, the preset bar, OPTIONS and the MAIN, SYS and EXPERT tabs
HEADERRow 2: the preset bar (INIT + 44 factory kicks + 32 user slots) left of OPTIONS; row 1: 20-step UNDO, the trigger LED (lights on every kick) and the kit status: KIT 3/3 means all three slots carry samples.

04The three segments

LaneRoleRecommended (REC)Synth engine
S1 · TRANSIENTAttack / click0–30 msClick oscillator + noise burst
S2 · BODYThe punch5–150 msPitch-envelope oscillator (core)
S3 · TAILRoom / sub tail10–1500 msSine + drift + room component

The lane header carries the segment title plus Mute, Solo and MAXimize. Below it sit the SYNTH|SAMPLE switch, REV (reverse), CAP (record into the slot, section 07), RAND (randomize the lane within musical bounds — CTRL+click resets it to INIT) and a GAIN fader (0–200 %). The START and LENGTH flags cut the sample window — on SYNTH lanes there is no start offset and the LENGTH flag sets the window duration against a per-type maximum (60 ms transient / 500 ms body / 2000 ms tail). The crossfade diamonds (0–100 ms) at the window edges edit two independent fades: the right-edge diamond is the lane's XF-OUT (its exit fade into the next segment — on the TAIL it doubles as the kick's fade-out), the left-edge diamond of lanes 2/3 is that lane's XF-IN (the entry side of the same boundary). A shared boundary fades over the minimum of the previous lane's XF-OUT, the following lane's XF-IN and both window durations. Empty or unplayable slots simply drop out of the chain — the remaining segments play on.

The status line under each waveform shows the file name plus S/L/XF values on SAMPLE, or the engine name plus F/C/XF values on SYNTH (section 06) — with the DUR (REC) check right-aligned in the same row. A muted lane is dimmed, title included; an engaged lane filter warns FILTER ON in the compact view (the knobs only exist in EXPERT mode). White lines inside a box are the playheads of sounding voices; a kick trigger fires up to three chained spans, and the 24-voice pool keeps about 8 kicks overlapping before stealing — enough for long tails at every player rate up to 1/8 at 174 BPM (stolen voices get a 64-frame fade-out, never a hard cut).

Mute / Solo (M / S)

The M and S buttons in every lane header are always visible — also on collapsed strips. Mute takes its lane out of the kick chain; Solo leaves only the soloed lanes playing (any solo drops all non-soloed lanes like mutes, and mute wins over solo on the same lane). The FUSION row follows the gate — it closes the chain without the excluded lanes — while each lane's own DUR readout stays. The gate applies to triggered kicks only: CAP recording and lane audition ignore it, so a muted lane can still be captured into or previewed. CTRL+click returns a button to its default (off). Solo lights warning-orange when active.

Lane maximize (MAX)

MAX blows one lane up to fill the whole lane area: its controls move into a toolbar row and the waveform box grows to full width and height for precise flag, diamond and zoom work (the EXPERT knob row stays on board). The other two lanes collapse to thin strips showing title, M/S, MAX and a short SYNTH/SAMPLE + DUR info. Click a strip — or its own MAX — to switch the maximized lane; MAX on the big lane returns to the three-lane view. The state is a pure view setting: it is not saved with the project and never enters the undo ring.

EXPERT mode — the knob row

The EXPERT switch next to MAIN|SYS (saved with the project, kept across presets and undo like the tooltip switch) reveals an indented row of eleven knobs under every lane. The waveform box shrinks to make room. Slots 0–3 hold the lane's engine parameters on SYNTH lanes — F0/F1 (logarithmic sweep start/target, per-type ranges), then NOISE on S1, CURVE on S2 and DRIFT+ROOM on S3 — and read NO ENGINE KNOBS (SAMPLE) on SAMPLE lanes. Slots 4–10 are the same on every lane and mode: PITCH (±24 st detune), LEN (window length — SYNTH shows milliseconds, SAMPLE per-mille of the slot), OFFSET (start of the lane on the time axis, in ms — see the next section), XF-IN and XF-OUT (the split boundary fades, 0–100 ms; XF-IN on S1 is locked dim — the chain head has no predecessor and the kick head always gets a short anti-click fade), and the lane filter CUT/RES (below). Drag a knob vertically (120 px = full travel, SHIFT = fine), CTRL+click resets it; all values are drawn under the knob and freeze into the trigger snapshot like every span parameter.

The time axis and OFFSET

The three lanes sit on one output time axis. Without OFFSET, a lane starts where the lane before it ends, minus the shared crossfade of that boundary: the two overlap by exactly the fade length. OFFSET moves the start of a lane from that place, in milliseconds with 0.1 ms steps (default 0).

OFFSET 0S2 BODYS3 TAILoverlap = crossfadeOFFSET +20 msS2 BODYS3 TAILgap of silenceOFFSET -20 msS2 BODYS3 TAILlonger overlap
OFFSETMoving a lane on the time axis. At 0 the lanes overlap by their crossfade. A positive OFFSET slides the lane later and opens a gap, a negative OFFSET starts it earlier and lengthens the overlap.

With OFFSET 0 on all lanes the kick is bit-for-bit the same as before the control existed, and projects saved without it load with 0. OFFSET is part of the lane state: it is saved with the project, restored by undo, and stored in user presets (factory kicks are all at 0; the 14 lane presets and RAND leave it alone, while the lane preset INIT and CTRL+click on RAND reset the whole lane, OFFSET included). You can also drag it in the wave: in the WAVE page and in FUSION EXPAND every lane has a small start grip (a triangle) at the foot of the lane's start, one step higher per lane because S1 and S2 often start at the same point. Drag it sideways to set OFFSET, double-click or CTRL+click it for 0.

Lane filter (CUT / RES)

Each lane carries its own resonant low-pass — a 2-pole TPT state-variable design (the same math as the master FILTER stage): CUT sweeps 40 Hz–16 kHz exponentially, RES drives Q 0.5–8. The knobs only exist in EXPERT mode, but the filter keeps working in the compact view, which then flags LANE FILTER ACTIVE - SEE EXPERT. At the default (CUT fully open = 16 kHz, RES = 0) the stage is bypassed bit-exactly — no processing happens at all; just below the stop the wet amount eases in quadratically, so there is no level jump at the top of the travel. The state lives per voice: overlapping hits of the same lane never push each other through the filter and stay click-free — that is what distinguishes it from the master FILTER, which sees the summed output.

DUR / REC — the duration check

Every lane prints DUR <ms> (REC <lo>-<hi>) right-aligned in its status line: the segment's effective output duration — at reference pitch ROOT — next to the recommended range for its role (the REC column above); on a tight layout the (REC …) part shortens away first. DUR is green inside the range and orange outside; a slot that cannot play shows DUR -. On the INIT preset all three lanes read green: the factory synth windows are 6 / 100 / 280 ms (S1/S2/S3), inside their recommended ranges.

The FUSION row

Below the lanes, the FUSION row shows the kick exactly as the chain builds it at the ROOT note: the segments in sequence on the output time axis, the equal-power crossfade overlaps shaded behind them. It draws the real waveform, rendered from the lanes (see The wave view below); until the first preview is ready it shows envelope bars. The header prints the total length (FUSION - 312.5 MS). The row mirrors the M/S gate — muted or non-soloed lanes drop out and the chain closes without them. Three switches in the header choose the view:

FIT LENGTH TO / FIT NOW sit in the row's header. Choosing a note (1/1, 1/2, 1/4, 1/4T, 1/8, 1/8T, 1/16) scales the lane lengths of all playing lanes once, with one common factor, so the whole kick — the total shown in the title — lasts that note at the current host tempo (120 BPM if none is reported). The proportions between the lanes stay as they are and the crossfades are respected. Synth lanes stop at their type maximum (60 / 500 / 2000 ms), sample lanes at the end of their slot, so very long notes may fall short. Later tempo changes do not rescale anything; FIT NOW applies the selected note again after you edited lanes or changed the tempo. Muted lanes are left untouched, and the change is a normal undoable edit.

AUTO (left of FIT LENGTH TO, saved per instance; not the OPTIONS zoom) fits automatically: while it is on, every preset load — arrows, list or user slot — fits the new kick to the selected note at the current tempo, in the same undo step as the load. Switch it off to keep presets exactly as stored.

The three segment lanes S1 TRANSIENT, S2 BODY, S3 TAIL with synth engines armed
SEGMENT LANESThree lanes, one kick. Each lane is a full sound slot: SYNTH⇄SAMPLE switch, REVERSE, GAIN, waveform editor and the live engine readouts.
The FUSION row showing the rendered kick waveform, coloured by lane, and the total length
FUSION ROWThe result, live. The FUSION strip under the lanes shows the rendered kick - segments sequenced on the time axis, joined by equal-power crossfades, coloured by the loudest lane - with the total length readout.
FUSION in STACK view: one row each for S1, S2 and S3 at their place in the kick, the sum below
FUSION STACKWho plays when. STACK gives every lane its own row on the shared time axis, the sum below; the shaded zones are the crossfades.
FUSION expanded over the lane area in STACK view, with M, S and OPEN per lane and draggable flags and diamonds
FUSION EXPANDEdit in the wave. EXPAND lets FUSION fill the lane area: drag END flags for lane lengths and diamonds for the crossfades, click a row to hear that lane.

The wave view

TT-KICK shows the real waveform of every lane and of the finished kick. It is rendered in the background from the lanes, with the same chain, crossfades and phase hand-over as the sound, at velocity 127 and at the ROOT note — before the master section, so FILTER, DRIVE, CLIP and OUT GAIN are not in it (the OUT SCOPE shows the output after them). No hit is needed: after every edit the preview renders again within a fraction of a second (a 0.3 s kick takes about 0.25 s, long tails up to about 0.5 s). It does not change the sound in any way. The three lanes keep their colours everywhere — S1 lime, S2 the accent colour, S3 mint in the ACID scheme; the colours follow OPTIONS > colour scheme.

Lane boxes: ENV / WAVE / BOTH

Every lane header has three small switches for its wave box. ENV shows the pitch and level curves of a SYNTH lane, the sample of a SAMPLE lane. WAVE shows the rendered wave of this lane, as it sounds inside the kick (with its fades). BOTH (default) draws the wave dimmed with the curves on top. The wave sits in the lane window, so zoom, skew, pan and the flags work as before; a reversed lane shows its wave the way the window plays. A muted lane still shows its wave, dimmed, rendered on its own.

The three lanes with the WAVE switch on: each lane box shows the rendered waveform of its lane
LANE WAVESSee each segment. With WAVE (or BOTH) every lane box shows the waveform that lane adds to the kick.

The WAVE page

The WAVE tab in the header (between MAIN and SYS) shows the whole kick on one time line, like a dedicated kick editor; the player, master rack and scope stay on the right.

All view switches (ENV/WAVE/BOTH, SUM/STACK, EXPAND, LAYERS, LUPE and the page) are saved per instance and never create an undo step. Lengths and crossfades you drag in the wave are normal, undoable edits.

The WAVE page: the whole kick on one time line with coloured S1, S2, S3 bands, the next player hit as a red line, a magnifier for the first 20 ms and the segment strip of the selected lane
WAVE PAGEThe kick as one piece. The whole kick on one time line, the next player hit in red, the LUPE for the transient and, below, the selected lane with its controls.
WAVE page in LAYERS view: the waves of S1, S2 and S3 drawn on top of each other
LAYERSLook into the crossfades. LAYERS draws the three lane waves on top of each other, so you see how body and tail overlap.

05Editing conventions

06Synth engines & phase

The three engines are tuned to their segment role:

A SYNTH lane draws the engine's frequency trajectory F0 → F1 inside the window (bright curve) over its dim internal amplitude envelope, labelled CLICK OSC + NOISE BURST, PITCH-ENV OSCILLATOR or SINE + DRIFT + ROOM. The readout <F0>><F1> HZ  <note>><note>  <dur> MS  PHASE LINK sits in the box, and the status line below shows ENGINE: <name>  F <f0>><f1>  C <curve>  XF <ms> MS.

PHASE LINK is the phase-coherence badge: chained synth segments share one phase trajectory — the oscillator phase is a closed-form function of position, so a successor starts at the exact phase its predecessor holds at the boundary and the fusion stays click-free and tight. The chain head, and a synth segment following a sample, start at phase 0 by convention; a per-segment phase offset (PH) exists in the serialized state. A reversed synth segment runs the same trajectory backwards. Keytrack and the played note scale the engine frequencies — window durations stay absolute in time. The per-lane PITCH knob (section 04) detunes a single engine ±24 st on top of keytrack.

The EXPERT knob row under each lane exposes F0/F1 (the label shows the nearest note, e.g. F0 A4 for 440 Hz, with C4 = MIDI note 60 as in the ROOT display; the value below stays in Hz), the per-engine control (NOISE / CURVE / DRIFT + ROOM), PITCH, LEN, XF-IN/XF-OUT and the lane filter CUT/RES (section 04). Only the per-segment phase offset (PH) is serialized without a control — presets and undo write it, the front deliberately has no knob for it. All lane parameters apply from the next hit; the exception are NOISE (S1) and DRIFT / ROOM (S3), which the engine reads live: turning them while a kick rings changes that kick at once.
S1 TRANSIENT lane with the click oscillator plus noise burst engine
S1 · CLICK + NOISEThe transient engine: a fast click oscillator over a noise burst, shaped by a steep decay. The readouts show F0>F1, curve, crossfade and the phase-link status.
S2 BODY lane with the pitch envelope oscillator engine
S2 · PITCH-ENV OSCThe body engine - the punch of the kick: F0 glides to F1 through the curve exponent, the envelope carries the decay.
S3 TAIL lane with the sine plus drift and room engine
S3 · SINE + DRIFT + ROOMThe tail engine: a sub sine with slow amplitude drift and a room component for the space behind the punch.

07Capture (CAP)

Each lane carries a CAP button (next to REV) that records the plug-in's audio input straight into that lane's sample slot — no file dialog, no disk, no Lua. Capture ignores the M/S gate: a muted lane can be recorded into, and the audition of its result plays regardless.

  1. Click CAP on a lane — the waveform box blinks REC ARMED - PLAY YOUR SOURCE and the input is now monitored at the output so you can aim.
  2. Play the source into the plug-in's audio input (the track's input or items before it on the track). Recording starts when the mono input exceeds −40 dBFS for three consecutive samples — the two samples just before the threshold crossing are kept, so the attack is not cut.
  3. Recording stops after 8 s, after 1 s of silence (with at least 0.2 s captured), or at the bank limit at very high sample rates — the silent tail is trimmed back, a 32-frame fade is applied, and the lane switches to SAMPLE automatically.
  4. Clicking CAP again on the armed/recording lane aborts (discards). Arming another lane moves the arm; a running recording is never interrupted by a different lane.
Captured audio lives in RAM only. It survives kit reloads of the other slots — and assigning a file to that same slot replaces the capture (even if it is the very same WAV that was there before) — but it does not survive a sample-rate change or a project reload. Captures are never serialized: after reopening the project the slot goes back to the file path it had before the recording, so it is empty only if no WAV was assigned to it. Bounce the result to a WAV — e.g. via the Export action — if you want to keep it.

Outside an armed/active capture the input is not passed through and the instrument stays bit-identical to a pure kick generator — silent on MIDI-only tracks. If the extended memory is unavailable (embedded/limited hosts) the button shows N/A instead of arming.

08Master rack

StageControlsWhat they do
FILTERON · CUT · RES · BEEFResonant 24 dB/oct low-pass (two TPT state-variable stages): CUT sweeps 40 Hz–16 kHz exponentially, RES drives Q 0.5–14, and BEEF pulls the resonance peak up to three octaves below the cutoff — a bass-heavy bump while the HF rolloff stays.
DRIVEON · PROT · BEEF · GLUEBEEF is a parallel bass-band drive (one-pole split ≈140 Hz into a level-matched waveshaper, up to ~+27 dB into the knee); GLUE is a sum saturation on top. PUNCH PROTECT keeps the dry remainder — punch and mids — out of the shaper; switched off, the band morphs to the full signal for classic all-over drive. GLUE deliberately touches everything, so bit-exact transparency needs BEEF=0 and GLUE=0.
CLIPON · SOFT/HARD · CEILFinal clipper as a creative tool: SOFT is a true tanh knee (linear below 0.7, continuous slope), HARD a flat clamp; CEIL sets the ceiling −36…0 dBFS and is enforced explicitly. The SOFT / HARD selector is drawn dimmed while CLIP is off (it has no effect then).
OUTGAIN · meters · scopeOutput level −24…+24 dB with an exact 0 dB centre detent; peak/RMS metering (~300 ms ballistics, the peak tick turns red on overs) and the OUT SCOPE — it always shows the post-chain output. No final limiter: the ceiling is the clipper's job.

All stage switches and faders are click-free — every change glides over a ~20 ms slew, and bypassed stages keep tracking the live signal so re-engaging never jumps. Every fader resets to its factory value on CTRL+click (the shared default table, section 05).

The master rack: filter, drive with punch protect, clipper and output gain
MASTER RACKFilter (cut/reso/beef), parallel band drive with punch protect, soft/hard clipper and output gain with peak/RMS metering.
The output scope strip
OUT SCOPEAlways shows the post-chain output - what you render is what you see here.

09Player & MIDI

The player panel: on/sync/free, rate, root note with detect, keytrack and swing, plus the live BPM-to-milliseconds reference
PLAYER PANEL4/4 player with SYNC/FREE and swing, root note with DETECT, keytrack - and the live tempo reference: 1/4 @ 125.0 BPM = 480.0 ms, with 1/2 and 1/8 alongside.

10Sample kits & loaders

JSFX has no file dialogs, so kit assignment runs through companion ReaScripts. A loader sends the kit to one TT-KICK instance: the TT-KICK window that has (or last had) the focus, otherwise the first TT-KICK on the selected track. So every instance can carry its own kit. The script waits for the instance to confirm (it then reports the track) and adds one undo point TT-KICK: assign kit. If the instance does not answer (audio engine stopped, FX bypassed or offline), it loads the kit as soon as it runs again. Each file is resampled to the project rate, mixed to mono and capped at 20 s per slot. The assigned paths travel inside the project — after a reload the WAVs are pulled from the stored paths again. A new instance starts without a kit (it plays the synth lanes). The protocol carries 255 characters per path: a longer path is rejected with a message naming the slot (that slot keeps its previous sample), and if no slot can be loaded nothing is sent and no undo point is set.

ActionWorkflowNotes
TT-KICK Load KitThree file dialogs — pick one WAV per slot (1 = TRANSIENT, 2 = BODY, 3 = TAIL)Cancelling a dialog keeps that slot; cancelling all three changes nothing. Exact control per slot.
TT-KICK Load Kit (Folder)Pick any one file inside a kit folder — the script scans the folder (*.wav/*.aif/*.aiff) and maps files to slots by name, then asks for confirmationStem matching: trans/click/att → TRANSIENT, body/mid/punch → BODY, tail/sub/room/end → TAIL; leftover slots fill alphabetically, surplus files are ignored (listed in the confirmation). Copies the kit files into the folder and pushes it onto Recent Kits.
TT-KICK Load Kit (from Items)Drop up to 3 audio files onto a track as items, select them, run the action — selection order becomes slot order (track, then position, then lane)MIDI items and items without a file source are skipped; the confirmation lists the mapping before writing. Pushes the slot-1 folder onto Recent Kits.
TT-KICK Recent KitsZero-dialog re-load: a menu lists the last 8 kit folders and activates the chosen oneWorks across projects; loads into the target instance like the other loaders. Folders whose copy of tt-kick-kit.bin is missing are greyed out; kits assigned via the plain Load Kit action are not listed (it writes no folder copy).

Install the scripts once via Actions → Show action list → New action → Load ReaScript, then run them from the action list (or bind them to keys/toolbar).

An empty kit line leaves the slot untouched (sampler convention) — assigning fewer slots never clears the others, and captured slots are only replaced when their own slot gets a new path assignment. An unreadable file flags the slot LOAD ERROR. Keep paths reachable: the loader stores absolute paths, so moving the WAVs breaks the kit on next load.

11Presets, undo, system page

Preset bar & user bank

Header of TT-KICK with the preset bar in the second header row: previous, preset name with drop-down, next, SAVE and a menu button, left of the OPTIONS button, and the open preset list with the FACTORY section
PRESETSThe preset bar sits in the second header row, directly left of OPTIONS: < name > SAVE .... The name opens the list with the FACTORY (INIT plus 44 kicks) and USER (32 slots) sections.

The bar loads and saves the whole kick in one step: all lane and segment data of the three lanes (including the lane preset assignments), the master rack (filter, drive, clipper, output) and the player head (rate, sync, root, swing, keytrack) — exactly what a factory preset replaces. Not part of a preset: the kit paths (sample assignments stay), the colour scheme (OPTIONS), the player ON switch, the page, the lane selection and the TOOLTIPS / EXPERT switches. The lane view (zoom, skew, scroll position and ZOOM FIT) is stored with a user preset and comes back when you load it, but changing it never marks a preset as modified. Factory presets and INIT open with ZOOM FIT on all three lanes. Presets load with UNDO like every other edit. A running player keeps running when you load a factory preset or INIT; a factory preset still sets rate, sync, swing and keytrack, but leaves your ROOT note alone (it belongs to your kit and the DETECT result, not to the sound design); INIT is the way back to the factory state and still resets ROOT to C2. User presets load ROOT exactly as saved, and so does a project. With keytrack on, MIDI notes are transposed relative to ROOT: the factory presets are tuned so that C2 plays the designed pitch, with another ROOT it is the ROOT key that does. The built-in player always fires at ROOT and is not affected.

ControlFunction
< / >Previous / next preset: INIT and the 44 factory kicks first, then the used user slots; wraps around and loads immediately.
Name fieldOpens the list: FACTORY (INIT + 44 kicks) and USER (32 slots, empty ones show - empty -). Mouse wheel scrolls, click loads, a click outside just closes. A * behind the name means the state differs from the loaded preset.
SAVESaves the current kick into the selected user slot; with a factory preset (or none) selected, into the first free slot. A name box opens (up to 24 characters, default User 02): type, Enter or OK saves, CANCEL or a click outside cancels.
...RENAME, COPY (into the next free slot) and DELETE (a second click confirms) for the selected user preset.
The SAVE PRESET name box of TT-KICK with the default name User 01, OK and CANCEL
SAVEName box. Enter confirms, Shift+Space types a blank, CANCEL (or a click outside) leaves everything unchanged.

Where the user bank lives. Plug-ins cannot write files, so the 32 user slots are part of the plug-in state: they are saved with the project, with FX-chain and track-template copies, and in every REAPER preset of this plug-in (the + button in the FX window toolbar). To take your bank to another project or computer, save a REAPER preset once (+ → Save preset) and load it there: the whole bank comes with it.

Typing names. REAPER keeps Space for the transport, so type Shift+Space for a blank. Depending on your REAPER settings Esc closes the whole FX window; use CANCEL instead. (The + menu of the FX window also has Send all keyboard input to plug-in.)

The factory bank holds INIT (the factory state) plus 44 designs in eight families: 909 (7), 808 (4), HARD (6), RUMBLE (5), MINIMAL (6), DEEP (5), ROLL (4) and CHAR (7 — glide, reverse, warehouse and classic characters). Every one of them is purely synthesized — license-free, and they sound with no kit loaded; each candidate has a short transient, a pitch-swept body and a tail designed for its style. Level and mix balance were checked on real REAPER renders, but a kick always has to work with your bass line, so judge the presets in your own arrangement. On the SYSTEM page the FACTORY PRESETS panel still groups the collection into tabs: pick a family, click a name to load it (the bar follows).

Choose a tail for the groove: ROLL and dry MINIMAL sounds leave short gaps for fast patterns; 909 and CLUB sounds are balanced starting points. The long 808, DEEP, RUMBLE and REVERSE designs are intentional effects. At faster tempos or with a continuous bass line, shorten S3 TAIL or make space for it in the bass arrangement. REVERSE BLOOM and REVERSE RISE run S3 backward. Check the kick with bass and hats at your actual project tempo.

Factory kicks at a glance

FamilyKicks
909 (7)909 TIGHT, 909 PUNCH, 909 DEEP, 909 SOFT, MACHINE FUNK, 909 SLAM, 909 CLICKY
808 (4)808 SUB, 808 LONG, 808 PUNCHY, 808 TIGHT
HARD (6)HARD TECHNO, HARDER, HARDCORE, INDUSTRIAL, HARD SCOOP, NOISE INDUSTRIAL
RUMBLE (5)RUMBLE DEEP, RUMBLE FAST, RUMBLE DRY, RUMBLE DARK, RUMBLE SUB
MINIMAL (6)MINIMAL CLUB, DUB DRY, CLUB PUNCH, BERGHAIN, MINIMAL DRY, CLUB WARM
DEEP (5)SUB FOCUS, DEEP MELODIC, SOFT DEEP, SUB RUMBLE, DEEP PUNCH
ROLL (4)ROLL TIGHT, ROLL SHARP, ROLL DEEP, ROLL SOFT
CHAR (7)ACID GLIDE, REVERSE BLOOM, WAREHOUSE, CLICK MINIMAL, TECHNO CLASSIC, WAREHOUSE TIGHT, REVERSE RISE

Every factory kick as a waveform of its first 900 ms, grouped by family, with the measured tail length (time until the hit has dropped 40 dB below its peak) and the sub frequency of the body. The numbers are measured on the rendered hit, they are not preset settings.

Waveforms of the 909 factory kicks
909Family 909.
Waveforms of the 808 factory kicks
808Family 808.
Waveforms of the HARD factory kicks
HARDFamily HARD.
Waveforms of the RUMBLE factory kicks
RUMBLEFamily RUMBLE.
Waveforms of the MINIMAL factory kicks
MINIMALFamily MINIMAL.
Waveforms of the DEEP factory kicks
DEEPFamily DEEP.
Waveforms of the ROLL factory kicks
ROLLFamily ROLL.
Waveforms of the CHAR factory kicks
CHARFamily CHAR.

The names describe a style, not a promise: use them as starting points and bend them with the lanes, the EXPERT knobs and the master rack.

Lane preset browsers

Every lane header carries its own small preset browser — < n/14 NAME > on the right. The three lanes have three independent banks of 14 lane presets each, one level below the factory kicks: S1 holds attacks and clicks (NEEDLE, RIM CLICK, METAL EDGE …), S2 tonal bodies (TIGHT 909, ACID GLIDE, 808 ROUND …) and S3 tails (STUB, TECH TAIL, HEAVY SUB …). The banks are ordered by character: S1 from dark to bright, S2 and S3 from short to long. The arrows step through the lane's bank, the mouse wheel steps too, and clicking the name opens the lane's list:

TT-KICK lane preset browser: prev and next arrows around a name box showing 0/14 INIT in the S1 TRANSIENT header
LANE BROWSER< n/14 NAME > in every lane header. Index, current lane preset, prev/next — mouse wheel steps as well. The collapsed lane strips keep a compact version of the same browser.
TT-KICK lane preset dropdown open on S1 TRANSIENT: INIT highlighted plus 14 entries from NEEDLE to WOOD KNOCK B
LANE LISTClick the name for the lane's bank. INIT plus 14 entries; the current one is highlighted, a click loads it and closes the list, a click outside just closes. Lane presets are undoable like any edit.

A lane preset is a recipe for exactly that lane: it sets the 16 engine parameters of the segment (level, pitch, length, fades, phase, sweep, curve, noise/drift/room, the lane filter) and switches the lane to SYNTH — your sample window, MUTE/SOLO and everything else stay untouched; the lane's zoom switches to ZOOM FIT so the new window is in view. Position 0 = INIT resets the lane to the factory state (CTRL+click on the name does the same). After loading, the usual edit rules apply: dragging any lane control (or running DETECT) adds an asterisk * in the name box — the entry is modified since load. The starred state survives save and reload, and UNDO walks lane preset changes back like any other step.

The whole state rides in @serialize (blob 'KICK' v8, 994 words, followed by the user bank). UNDO (header and SYSTEM page) walks back through the last 20 edit states: a snapshot is pushed when a drag or a button edit ends — preset changes included. Lane view (zoom/skew/pan, maximize), segment selection, the current page and the interface switches never enter the ring, and there is deliberately no redo.

The SYSTEM page (MAIN|SYS tabs in the header) hosts the factory preset row, the undo depth readout (n/20 SAVED), a short export guide, the INTERFACE section and the status block. INTERFACE shows the TOOLTIPS ON/OFF state (switched in the OPTIONS box; saved with the project, default on) next to a compact recap of the editing conventions — hover hints, CTRL+click reset, RAND and MAX. Both interface settings are pure view settings: EXPERT (header) and TOOLTIPS are serialized but kept out of the undo diff and survive preset changes untouched. The status block lists sample rate, serialize format, sample RAM incl. the undo head, kit slots, last trigger source and note, player/swing/keytrack state — plus a navigation hint and build info.

Two hidden mirror sliders expose state to ReaScripts (FX → Lua, never read back): slider63 = root note, slider64 = last loaded factory preset index. The export action uses them to pitch and name the rendered item. Two hidden request parameters take data from scripts (Lua → FX) for exactly one instance: Kit request (slider 70, used by the loader actions) and Lane request (slider 71): a script writes the 16 sound parameters of up to three lanes (the lane preset format) plus the lane's OFFSET in ms (one more value per lane) to shared memory and sets the parameter to a new serial number. Values are clamped to the lane ranges, the import is one undo step, and an old value (project reload, undo, copied instance) is never applied again.

12Exporting a kick

Select the track holding TT-KICK, put the edit cursor at the start (or make a time selection), then run TT-KICK Export Kick.lua from the action list. The script fires a single trigger note at the current ROOT pitch across the export range — the time selection, or four bars from the cursor — and renders it in place through the track's FX chain ("Item: apply track/take FX"). The resulting audio item is named TTKICK_<preset>.wav after the last loaded factory preset (kick as fallback): the REAPER-native equivalent of drag & drop export — drag the item wherever you need it. Cursor position, time selection and your item selection are restored.

13Options / Color

TT-KICK with the OPTIONS box open: ten colour swatches, the FONT SIZE steppers and the CUSTOM COLOR picker with FONT 1, FONT 2 and BG targets
OPTIONSOptions / Color. Click OPTIONS in the header (left of MAIN | SYS | EXPERT), then a swatch. Below the schemes sit the FONT SIZE steppers and the CUSTOM COLOR picker. A click outside the box closes it.

Options / Color. The OPTIONS button opens the box; COLOR offers ten schemes: ACID, CYAN, ORANGE, MAGENTA, YELLOW, RED, BLUE, VIOLET, MINT and ICE. A scheme changes the accent colour (active switches, knob rings, waveforms, LEDs), the warning colour (a DUR outside its target range, SOLO) and, for RED to ICE, the slightly tinted panel background of the whole front at once — on both pages (MAIN and SYS) and in EXPERT mode. The choice applies per plug-in instance, is saved with the project and with FX-chain copies, and is not touched by factory presets, lane presets, RAND or undo. The factory colour is ACID (the classic acid green). The colour is stored in the hidden slider 65 (UI Color, 0–9); it is the third listed parameter after the two Lua mirrors.

TOOLTIPS ON / OFF sits at the right of the OPTIONS box's title bar. Every control of the front shows a tooltip after you hover it briefly; the switch turns them off for this instance and is saved with the project. The SYS page just shows its state.

FONT SIZE scales the two font slots independently: FONT 1 (TITLE) is the panel/headline slot, FONT 2 (TEXT) feeds all four text slots — each steps −4…+8 around the kit default (+0). CUSTOM COLOR overrides a scheme per target: pick FONT 1, FONT 2 or BG (panel background) and drag the HSV field and the hue strip; the preview swatch on the right shows the current pick, the label under the box names the active scheme. RESET clears the selected target back to the scheme, RESET ALL clears every override and both font steps. Font steps and custom colours are also per instance and ride in the same serialized style block — presets, RAND and undo never touch them either.

Font steps above +2: the TT-KICK front has a fixed grid of rows; from step +3 on, texts would run into their neighbours. The front therefore draws with at most +2 for FONT 1 and FONT 2, even if OPTIONS is set higher (the setting itself is kept and shown as chosen). For a bigger front use UI SIZE, which scales everything together.

14Recipes & quick reference

Four ways to start

Quick reference

You want to…Do this
reset a controlCTRL+click it (RAND: resets the whole lane to INIT)
change a value finelySHIFT+drag an EXPERT knob
zoom a lane- / + in the lane's zoom bar or the mouse wheel (up to 64×); FIT fits the lane window; CTRL+wheel or the scroll bar scrolls; SHIFT+wheel skews the wave vertically
hear one lane aloneClick its waveform, or use S (solo)
take a lane outM (mute); CAP and the audition still work on a muted lane
see the finished kickFUSION row; EXPAND for the large editable view
move a lane on the time axis (gap or more overlap)OFFSET knob in EXPERT, or drag the lane's start grip in the WAVE page; double-click the grip for 0
fit the kick to a note lengthFIT LENGTH TO, then FIT NOW after later edits (AUTO does it on every preset load)
undoUNDO in the header (20 steps, no redo)
type a space in a nameSHIFT+Space
take the user bank alongSave a REAPER preset of the plug-in (the + button) and load it elsewhere
hide the hintsOPTIONS → TOOLTIPS OFF

15Release notes

TT-KICK 1.1.0 adds OFFSET per lane (see The time axis and OFFSET): the start of every lane can be moved on the time axis, in milliseconds, with an EXPERT knob and a grip in the WAVE page and FUSION EXPAND. At 0 the kick sounds exactly as in 1.0.x. TT-KICK 1.0.0 was the first release; the sound engine was verified by measurement, the front, the loader scripts and the state handling were checked in REAPER.

Known limits

16Troubleshooting

UI Size & Saved Options

Updated in v1.1.0. New instances open at 125% UI size for clearer text. The controls and text are redrawn at the selected size; the colour scheme and background retain their appearance.

Current front at the new default UI size
Current front at the default UI size of 125%.

Open OPTIONS and choose UI SIZE: 100% / 125% / 150% / 200% / 300%, or click the percentage field and enter a whole number from 25 to 400. Enter or a click outside the field applies it; Escape cancels the edit. Values outside the range are limited to the nearest supported value.

OPTIONS with UI size buttons and the custom percentage field
The shared OPTIONS box, including the UI size controls.

AUTO FIT. When you drag the edge of the FX window, the front rescales to the new window size (the largest whole percentage that shows the whole front, 25 to 400 %) and the scrollbars disappear. The UI SIZE buttons and the percentage field still set a fixed size, which stays until you change the window again. AUTO FIT ON / OFF in the UI SIZE row of OPTIONS switches the rescaling off for this instance; the setting is saved with the project. Switching it on fits the front to the current window at once.

If the enlarged front exceeds the host window, use the horizontal and vertical scrollbars to reach every control. The mouse wheel over a scrollbar moves that view. OPTIONS stays visible at the upper right. You can also enlarge the REAPER FX window to show more of the front.

All OPTIONS settings are saved per instance: UI size, colour scheme, title and text font sizes, custom title/text/background colours, colour-picker target, and TOOLTIPS ON / OFF. Closing and reopening the FX window keeps them; saving and reopening the project restores them. They also travel with FX chains and native REAPER FX presets. Save the project to keep changes between sessions.

The sound presets in the plugin's own preset bar retain the instance's appearance settings. Older projects and style blocks remain readable; projects that predate UI SIZE use the new 125% default.