TT-HYPERKICK — User Manual

JSFX instrument for REAPER // Version 0.6.0 // TimTechlor

A kick drawn, not sampled: three curves and a chain of distortions turn one sine into the hard kicks of techno, hardstyle, rawstyle and gabber. The bass band can stay untouched while everything above it is driven, the rumble tail breathes around the kick, and a reversed swell can lead into the next hit.

01The concept

TT-HYPERKICK is a pure synth kick for the hard genres. There is no sample inside: an oscillator follows a pitch curve you draw, an amplitude curve you draw shapes its length, and a drive curve you draw decides how hard the distortion chain works at each moment of the kick. Click, sub and screech layers add transient, weight and bite; a rumble tail and an optional reverse swell turn a single hit into the bass of a whole track.

The signal path is fixed and short: oscillator + layers → EQ pre → slot 1..4 → Rawstyle stack → (Punch Protect sum) → rumble → EQ post → clipper → out → limiter. Everything from the EQ pre to the Rawstyle stack runs at twice the sample rate.

TT-HYPERKICK front panel: three curve editors, four distortion slots, rumble, scope and pattern player
FRONTThe whole instrument on one page. Top: pitch, amp and drive curves with their knobs. Middle: four distortion slots, Rawstyle / Punch Protect, screech. Below: EQ, rumble, scope and spectrum, master. Bottom: the pattern player.

02Quick start

  1. Insert TT-HYPERKICK on a track (it is an instrument: no input needed).
  2. Pick a factory kick from the PRESET box (arrows step through the 41 kicks).
  3. Play notes from the piano roll, or press PLAY in the PATTERN panel: with HOST the 16 steps follow the transport, with FREE they run on their own at FREE BPM.
  4. Reshape the sound: drag the points of the three curves, turn the drive of a slot, switch the rumble on.
  5. Happy? Actions → TT-HYPERKICK Render Kick renders the current kick as a 24-bit WAV item on a new track.
One kick sounds at a time. A new trigger fades the previous kick out over 2 ms and starts the new one; the rumble buffer keeps running underneath, so a rolling pattern never leaves a hole in the low end.

03The front

AreaWhat it does
HeaderPreset bar (< name > SAVE ...) with the family label, RANDOMIZE / MUTATE with LOCK P / A / D (pitch, amp, distortion), output meter and clip LED, OPTIONS button (colour scheme)
Row 1PITCH, AMP and DRIVE ENV curve editors, each with the controls that belong to it. A white line runs along each curve while a kick plays
Row 2Four distortion slots, RAWSTYLE / PUNCH, SCREECH
Row 3EQ, RUMBLE, scope + spectrum, MASTER (clipper, limiter, output gain)
Row 4PATTERN: step buttons, velocity bars, play, sync, rate, template, steps, swing, free-run tempo

Every value is an automatable parameter (the sliders are hidden in the JSFX list and driven from the front). Curves, the pattern and the lock mask are stored with the project and with REAPER presets.

04Pitch curve & body

The pitch curve is drawn in semitones relative to the end frequency. The kick always lands at the base pitch when the curve reaches 0 st: f(t) = f_end · 2curve(t)/12, with f_end = the played note (KEYTRACK on) or TUNE (KEYTRACK off). The vertical range is selectable (+-12 / 24 / 48 / 96 st); a typical hardstyle start is +48..+60 st.

ControlRangeFunction
TUNEnote 12..60Base pitch when KEYTRACK is off (note name and Hz are shown); the pattern always plays TUNE
PITCH TIME5..1000 msLength of the pitch curve; after it the pitch stays at the curve end
TIME LOGoff / onLogarithmic time axis: the start of the curve gets more room (the first millisecond matters in a kick)
PHASE0..360 degStart phase. 90 deg (default) starts at zero rising: no click. The first sample jump is 0; the largest step in the first millisecond of a +60 st kick is 0.04 full scale
WAVE, SAW MIXsine / sine+saw / triangleOscillator shape; the saw is band-limited (PolyBLEP)
KEYTRACKon / offOn: the MIDI note sets the end frequency (C1 = 32.70 Hz)
Click on empty space adds a point and lets you drag it right away. Drag moves a point (Shift = no snapping to the grid), right-click deletes it, Alt+drag inside a segment bends its tension, double-click on a segment straightens it.
TT-HYPERKICK curve editors: pitch, amp and drive envelope with their knobs
CURVESThree curves. Pitch (semitones relative to the end note), amp (gain) and drive (distortion scale over the kick). The white line follows the playing kick.

05Amp curve, click, sub, screech

The amp curve is the gain envelope of the body (drawn 0..1). LENGTH is 30 ms..1.5 s; SYNC replaces it with a note value at the host tempo (1/32 .. 1/2). The last 2 ms are faded out automatically, so a curve that does not reach zero never clicks.

LayerControlsWhat it is
ClickCLICK, TONE (300 Hz..14 kHz), DECAY (0.5..40 ms), CLICK BPNoise burst through a state-variable filter (high-pass, or band-pass with CLICK BP) with an exponential decay. The noise is deterministic: every kick clicks the same
SubSUB, SUB LVL, SUB LENA sine one octave below, phase-locked to the body (no phase hole when they add up), with its own polynomial decay
Screechrow 2: LEVEL, FREQ, DECAY, FMFast fading FM tone through a band-pass, mixed before the distortion so the chain turns it into the rawstyle top

06Drive envelope & velocity

The drive curve scales the drive of all slots (and the Rawstyle stack) over the length of the kick. ENV AMT is the depth: at 0 the curve is ignored, at 100 % the drive follows it completely. Hardstyle habit: a lot of drive at the start, less in the tail.

Velocity: VEL>LEVEL, VEL>DRIVE, VEL>CLICK (0..100 % each) decide how much a soft note is quieter, cleaner and less clicky than a hard one.

07Distortion chain

Four slots in a fixed order. Each has a type, a drive (0..40 dB), a mix and an on switch. Every shaper is normalised so that a full-scale input stays a full-scale output; the drive changes character and loudness of the tail, not the peak.

TypeShape
SOFTtanh(g·x) / tanh(g)
HARDclip(g·x), normalised
FOLDsine wave-folder sin(π/2 · g·x) (input limited to +-4)
TUBEasymmetric tanh (even harmonics), with a 10 Hz DC blocker
BITbit-depth reduction (16 bit down to 4 bit) plus sample-and-hold at the oversampled rate; the drive sets both
CLIPcubic soft clipper

RAW STACK is a three-stage saturation (soft → fold → hard) with one DRIVE and MIX. The whole section from EQ pre to the stack runs at 2× the sample rate (IIR half-band pair, flat to 20 kHz, 3.1 samples group delay at low frequencies = 64 µs at 48 kHz, so a triggered kick starts that much late). A fold at 220 Hz with +12 dB drive leaves its non-harmonic (aliasing) products below −140 dBFS; a hard clip at the same drive stays below −90 dBFS.

TT-HYPERKICK distortion slots, Rawstyle stack with Punch Protect and screech
CHAINFour slots, Rawstyle stack, Punch Protect, screech.

08Punch Protect

With PUNCH PROTECT on, the low end of the kick bypasses the distortion. The input is split at SPLIT (60..200 Hz, default 120 Hz) with a Linkwitz-Riley crossover; the dry low band and the high band of the distorted signal are added: out = LP(x) + HP(distort(x)). The harmonics are generated from the whole kick, including its body, but only what lies above the split is added, so the fundamental keeps its weight and the top gets the drive.

The crossover is an 8th-order Linkwitz-Riley (two cascaded Butterworth-4 filters). With a 4th-order split the heavily driven fundamental leaked back into the bass band: +0.8 dB at 30 dB total drive (measured in the reference model). With the 8th order the bass band stays within 0.4 dB of the dry kick (measured in REAPER: −0.3 dB for 20–60 Hz, −0.4 dB for 20–120 Hz), while everything above 1 kHz gains more than 10 dB. With all slots off, the sum of the two bands is an exact all-pass: the level is unchanged.

09EQ & master

One three-band EQ (low shelf, peak, high shelf) sits either PRE (before the chain, at the oversampled rate) or POST (after the rumble mix), or is off. Pre shapes what the distortion sees; post shapes the result. The CLIPPER is a hard clipper with a ceiling (-12..0 dB) using first-order antiderivative anti-aliasing; LIM is a soft limiter that keeps the output below 0 dBFS; OUT is the output gain (-24..+12 dB) in front of the limiter. The meter in the header shows the output peak; the clip LED lights when the clipper engages.

10Rumble & reverse

The rumble is fed from the distorted kick (after the chain, before EQ post and clipper): four damped comb filters and two all-pass diffusers per channel build a bass tail, a low-pass at FREQ (30..250 Hz) keeps it below the top, WIDTH spreads it in stereo. With PITCH on, the delay lengths are integer multiples of the kick period, so the tail rings on the kick note. DECAY is the 60 dB decay time (0.1..1 s). DUCK pulls the tail down by up to that amount while the kick is loud: the duck follows the kick envelope, so the tail blooms as the kick fades.

REVERSE records the rumble of the last kick and plays it backwards so that it swells into the next kick: with the pattern running, the playback ends exactly on the next kick (the last sample is one sample before the kick trigger). The length is REV LEN (50..1000 ms) but never more than half the gap to the previous kick. The very first kick has no predecessor: no reverse. Without the pattern there is no way to know when the next note arrives, so a MIDI kick starts the reverse of the previous kick right at the trigger, with the free length.

TT-HYPERKICK EQ, rumble, scope and spectrum, master
RUMBLEEQ, rumble, scope / spectrum, master. The scope shows the last kick, the spectrum the output.

11Pattern player

16 steps with a velocity each: click a step button to switch it on, paint the bars underneath to set the velocity (0 = off). RATE 1/4, 1/8, 1/16, 1/32; STEPS 1..16; SWING delays every second step by up to half a step. Templates: 4 ON FLOOR, ROLLING 16TH, HS OFFBEAT ROLL, GABBER 16TH, CLEAR.

TT-HYPERKICK pattern player with 16 steps and velocity bars
PATTERN16 steps with velocity. Click a button to switch a step, paint the bars for velocity. The white outline is the running step.

12Presets: bar, user bank, randomize

Header of TT-HYPERKICK with the preset bar: 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 header, directly left of OPTIONS: < name > SAVE .... The name opens the list with the FACTORY (41 kicks) and USER (32 slots) sections; the family of a factory kick is shown above the bar.

41 factory kicks in families: Techno (rumble, hard, peak time), Hardstyle (classic, euphoric, rawstyle screech, reverse bass), Gabber, 909/808, Click, Sub. A preset (factory or your own) loads the sound: all sound parameters and the three curves (pitch, amp, drive). Not part of a preset: the pattern (steps and template), the pattern player settings (PLAY, sync, rate, steps, swing, free-run tempo), the MIDI channel, the scope span, the LOCK buttons, the colour scheme (OPTIONS) and the hidden test parameter.

ControlFunction
< / >Previous / next preset: first the 41 factory kicks, then the used user slots; wraps around and loads immediately.
Name fieldOpens the list: FACTORY and USER (32 slots, empty ones show - empty -). Mouse wheel scrolls, click loads. A * behind the name means the sound differs from the loaded preset.
SAVESaves the current sound into the selected user slot; with a factory kick (or none) selected, into the first free slot. A name box opens (up to 24 characters, default User 07): type, Enter or OK saves, CANCEL or a click outside cancels.
...RENAME, COPY (into the next free slot), DELETE (a second click confirms) for the selected user preset, and INIT (the factory default sound with the INIT KICK curves).

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. Projects saved with earlier versions load unchanged with an empty bank.

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

RANDOMIZE draws a new kick within sensible ranges, MUTATE nudges the current one by about 12 %. The LOCK buttons protect a whole area: P pitch curve and pitch controls, A amp curve, click and sub, D the distortion, screech, rumble and drive curve.

13Options / Color

TT-HYPERKICK header with the OPTIONS box open: ten colour schemes
OPTIONSTen colour schemes. The OPTIONS button sits in the header under the preset family. The white frame marks the active scheme; the name of the scheme under the mouse is shown at the bottom left.

Click OPTIONS in the header to open the box. Under COLOR pick one of ten schemes: ACID, CYAN, ORANGE, MAGENTA, YELLOW, RED, BLUE, VIOLET, MINT or ICE. A click on a swatch changes the whole front at once (accent, dimmed accent, panel and ground tint, knob discs); a click outside the box closes it. The choice applies per plug-in instance, is saved with the project, with FX chains and with REAPER presets (hidden parameter UI Color), and is not touched by factory presets, RANDOMIZE or MUTATE. The factory colour of TT-HYPERKICK is ORANGE.

14MIDI & voice behaviour

15Render Kick script

TT-HYPERKICK Render Kick.lua (installed by ReaPack, Actions → Show action list) renders the current sound: it puts a temporary MIDI note at the edit cursor on the track with the plug-in, sizes the range from LENGTH / sub / rumble decay (plus reserve), renders it as a stereo 24-bit WAV stem on a new track and removes the temporary note. Select the track first.

16Technical notes

17Troubleshooting

18Release notes