TT-303 (JSFX) — User Manual

JSFX plug-in for REAPER // Version 2.1.4 // TimTechlor

TT-303 is a monophonic acid bass synthesizer in the style of the Roland TB-303 — a tribute model, no samples: one oscillator, an 18 dB ladder filter that squeals, the accent and slide circuits that make a 303 line move, and a chain of drive, ping-pong delay, reverb and compressor behind it. Play it from the piano roll (HOST) or let the built-in 16-step sequencer with four pattern banks run on the project timeline (SEQ).

01The concept

The Roland TB-303 is a single-oscillator bass synthesizer whose filter, envelopes and sequencer were never meant to be a bass synthesizer — and became the sound of acid house. TT-303 is a tribute to it as a REAPER instrument: a model of the signal path, without samples and without a sample ROM. There is one voice (monophonic), one oscillator, one filter, and the two circuits that give the original its character: accent and slide.

note → oscillator (saw / square) → 18 dB ladder filter (VCF) → VCA
     → drive → ping-pong delay → reverb → compressor (dry only)
     → VOLUME → soft clip → stereo out

The plug-in has no audio input and two outputs (stereo). Its MIDI input is the only way to play it from the outside; in SEQ mode an internal 16-step sequencer with four banks A–D plays the notes itself. The whole front is drawn by the plug-in, uses the UI SIZE setting in OPTIONS, and every control can be automated.

Current suite front at 125% UI size, version 2.1.4
Current front in v2.1.4, at the default UI size of 125%.
There is also a browser version of the TT-303 with its own manual (TT-303 (Web)). This manual describes the REAPER plug-in only — the JSFX has no drum machine and no export buttons (REAPER renders the audio), and its tempo is always the project tempo.

02Installation

TT-303 ships through the TimTechlor ReaPack repository. In REAPER: Extensions → ReaPack → Import repositories…, add

https://raw.githubusercontent.com/timtechlor/reapack-TimTechlor/main/index.xml

then Browse packages, pick TT-303 Acid Machine and apply. The effect is listed under JS: TT-303 Acid Machine in the FX browser. Manual installation works too: the plug-in is one file, TT-303_Acid_Machine.jsfx; copy it into Effects (or a sub-folder) in REAPER’s resource path (Options → Show REAPER resource path in explorer) and add it from the FX browser.

There is nothing else to install: the plug-in needs no samples and no additional files. REAPER 6 or newer is assumed. The wordmark uses the font Zilap Orion if it is installed; otherwise a bold sans-serif is used. The front measures which fonts exist and falls back by itself.

After an update REAPER may keep showing the old name or version in the FX window title — see Troubleshooting. The real version is always written in the header of the front (the small version badge next to the wordmark).

03Quick start

  1. Create a track and add JS: TT-303 Acid Machine (it is an instrument: it needs no audio input, only MIDI). A new instance starts in HOST mode with the INIT sound.
  2. Give the track MIDI: record-arm it and play a keyboard, or put a MIDI item on it. Play a low note (C2 is the original pitch of the sequencer, the keys around C1–C3 are the bass register). Overlapping notes slide, a note with velocity ≥ 65 is an accent (the threshold is adjustable).
  3. Shape the sound with CUTOFF FREQ, RESONANCE, ENV MOD and DECAY (the four knobs that make the acid sound) and ACCENT. Pick a starting point from the preset bar in the header (INIT, TT-Groove, TT-BigBoy, TT-HiImTom!, TT-OffbeatBaby, TT-GoodStart).
  4. Want a pattern without MIDI? Switch the MODE (top right) to SEQ and press play: the 16-step sequencer below the effects panel plays the start pattern of bank A on the project timeline. FREE RUN lets it run while the transport is stopped.
  5. Add character in the effects panel: DRIVE on with FOLD or FUZZ, the dotted-eighth DELAY (the INIT default), some REVERB; COMP adds punch to the dry signal.

04The front & how to operate it

The front is drawn in a fixed grid (900 × 732 units) and redrawn at the UI SIZE chosen in OPTIONS (125% by default; HiDPI is honoured). Resize the FX window to show more of the front. All built-in REAPER sliders are hidden; you operate the drawn front only. The areas, top to bottom:

AreaContents
HeaderWordmark and version, ACCENT indicator (charge of the accent capacitor), MIDI THRU, the MODE switch HOST / SEQ, the preset bar (< name > SAVE ...) and OPTIONS
SYNTHESIZERNine knobs: TUNING, FINE, SLIDE, CUTOFF FREQ, RESONANCE, ENV MOD, DECAY, ACCENT, VOLUME; WAVEFORM SAW / SQUARE; ACCENT VEL (only in HOST mode)
Effects panelFour columns: DRIVE (on/off, model, amount, input EQ), DELAY (division, mix, feedback, EQ), REVERB (mix, size, EQ), COMP (on/off, mix)
OscilloscopeThe output signal, with a read-out NOTE C2 65.4 Hz | VCF 419 Hz | 125 BPM: current note and pitch, the current filter cutoff (moves with the envelope) and the tempo in use
Bottom panelHOST: a keyboard you can play with the mouse; it also lights the notes being held. SEQ: the sequencer (section 12)
SYNTHESIZER panel and effects panel: nine knobs with value read-outs, waveform switch, accent velocity, DRIVE, DELAY, REVERB and COMP columns with input EQ strips
PANELSSYNTHESIZER and effects panel. Read-outs under the knobs: semitones, cents, cutoff in Hz, resonance in %, envelope depth in octaves, decay in ms, accent and volume in %. The green bar under each EQ is the band that passes.

Knobs

Drag a knob vertically (up = more). Hold Shift while dragging for fine adjustment (about five times finer); the mouse wheel over a knob moves knobs with whole-number values (TUNING, FINE, FEEDBACK, SIZE, COMP MIX, LEN, SHUF, GATE) by exactly one step per notch and all others by 2 % of their range (SLIDE: 6 ms); right-click or double-click resets it to its default value. Values land on the step of the parameter (0.1 for CUTOFF FREQ to VOLUME and DRIVE, 0.5 for the delay and reverb MIX, whole numbers for the rest). A knob you do not touch never writes its parameter, so an automation envelope on it is left alone.

Tooltips

Every control of the front has a tooltip: rest the pointer on a knob, button, EQ handle, sequencer step row or preset-bar button for about a third of a second and a one-line explanation appears next to it (not while you drag). OPTIONS > TOOLTIPS ON / OFF switches them off for this instance; the setting is saved with the project.

Buttons and the EQ strips

Buttons switch on click (mode, waveform, drive model, delay division, FREE RUN and so on). The three EQ strips under DRIVE, DELAY and REVERB carry two handles: the left one is the low cut (LO), the right one the high cut (HI), on a logarithmic scale from 20 Hz to 20 kHz. Drag a handle horizontally (Shift = five times finer, mouse wheel = steps), right-click restores the factory value. At the outer edge a handle snaps to OFF (low cut 0, high cut 20 kHz = true bypass of that filter). The low cut cannot cross the high cut.

The EQ strips are input filters of each effect: they shape what is sent into DRIVE, DELAY or REVERB. The dry signal is not touched by them (details in the sections of the effects).

05Operating modes: HOST and SEQ

The MODE switch in the header selects who plays the voice. Switching modes releases all notes cleanly.

HOST

The plug-in is a pure sound generator, played from the piano roll, a keyboard or another plug-in’s MIDI output. Rules, as printed on the front:

The KEYBOARD / MIDI INPUT panel in HOST mode: the rule line VELOCITY >= n = ACCENT, OVERLAPPING NOTES = SLIDE, LAST NOTE WINS, and a playable keyboard from C1 to C4
HOSTThe keyboard and MIDI input panel. The rule line repeats the current accent threshold (65 by default); click the keys to play, held notes light up.

SEQ

The internal 16-step sequencer takes over and plays the pattern of the active bank (A–D). MIDI notes no longer play the voice: they transpose the pattern (section 12). The bottom panel turns into the sequencer.

TT-303 front in SEQ mode with FREE RUN running: the sequencer panel shows banks A to D, COPY RND MUT CLEAR UNDO, the LEN SHUF GATE knobs, the note lane and the GATE ACC SLD rows of 16 steps
SEQSEQ mode. The header shows SEQ active and the ACCENT indicator lights on accented steps; the sequencer panel at the bottom replaces the keyboard. Here FREE RUN is on and step 02 is playing.

06Oscillator & filter

ControlRangeWhat it does
WAVEFORMSAW / SQUARESawtooth, or the 303 square: a narrow, asymmetric pulse (duty about one fifth, slightly narrower towards high notes) with a high-pass tilt, rich in even harmonics. Both are band-limited (1-sample PolyBLEP).
TUNING−24 … +24 stCoarse pitch. Takes effect with the next note.
FINE−50 … +50 ctFine pitch, for detuning against other instruments.
CUTOFF FREQ0 … 100Base cutoff of the filter, exponential, about 145 Hz at 0 up to about 1 kHz at 100. Resonance lifts the corner additionally (factor 1 + resonance, so up to about 2 kHz at both knobs full). The Hz read-out under the knob is this base cutoff, before the envelope.
RESONANCE0 … 100 %Feedback of the ladder. Even at 0 % the filter has a slight peak (Q about 1.6); towards 100 % it becomes the nasal, whistling peak. The feedback is level-dependent, so a loud signal damps its own peak, as on the original. A small fixed level trim keeps the loudness similar across the knob.
ENV MOD0 … 100How far each note opens the filter: up to 5.2 octaves (the read-out shows octaves). The essence of the acid sound: every note flings the cutoff up, then it falls shut.
DECAY0 … 100Decay of the filter envelope, exponential from about 30 ms to about 570 ms (the read-out shows the time constant in ms). Short values give tight blips, long ones let the filter stay open. Accented notes ignore this knob — their filter decay is a fixed 0.2 s (next section).
VOLUME0 … 100 %Output level, after all effects (section 11).

The filter is a three-pole ladder, 18 dB per octave (like the original), built in zero-delay-feedback form, run at twice the sample rate and decimated with a 1/4-1/2-1/4 filter. A 20 Hz high-pass sits in the feedback path as a DC block, so the resonance stays alive even at a low cutoff. The amplitude envelope (VCA) is an attack of about 3 ms (1.8 ms on accented notes) followed by a slow sag with a fixed time constant of about 1.1 s, independent of the DECAY knob, and a release of about 12 ms when the note ends. The filter cutoff is limited to 30 Hz at the bottom and to 16 kHz (or 0.45 of the working rate) at the top.

07Accent & slide

Accent

An accented note is louder, has a sharper attack and opens the filter further — and the effect depends on the knobs, as on the hardware:

In HOST mode an accent is a velocity at or above ACCENT VEL; in SEQ mode it is the ACC row of a step.

Slide

A slide ties two notes: the pitch glides from the old to the new note and the envelopes are not retriggered, so the filter and amplitude carry on. The glide is an RC-style approach in logarithmic frequency: constant time for any interval (a fifth takes as long as an octave), fast at first, then settling. The SLIDE knob (0–300 ms, default 60) is the time constant: about 63 % of the way after one time constant, about 95 % after three. At 0 the pitch jumps. (The knob sits in the SYNTHESIZER panel, between FINE and CUTOFF FREQ. Up to v2.0.0 it stood in the REVERB column of the effects panel.)

An accented note that is tied by a slide still fires its accent sweep, but the amplitude envelope is left alone — that is how accents and slides combine on the hardware. In HOST mode a slide is an overlapping note of a different pitch (the same pitch overlapping is ignored, as on the Devil Fish, see section 05), in SEQ mode the SLD flag of a step ties it to the following step. If the following step has the same note, the note is simply held on (a tie): no new attack, and SEQ OUT keeps one held note instead of sending a second note-on.

08Drive

A distortion stage between the voice and the delay. ON/OFF switches it (off = the stage is bit-exact transparent). Four models:

ModelCharacter
SOFTSmooth tanh saturation.
HARDHard clipping: the signal is driven into a limit at about ±0.82 with rounded corners.
FOLDWave folding (a triangle fold): new harmonics that change with the level.
FUZZAsymmetric fuzz: the positive and the negative half-waves are bent with different curves.

DRIVE (1 … 40) is the gain in front of the shaper; the output level is compensated with the amount and, per model, so that changing the model does not change the loudness much. The shaper runs at twice the sample rate to keep aliasing down.

The EQ strip selects what gets distorted. It is not in series: the band between LO and HI goes into the shaper, what the EQ removes runs past it undistorted and is added back afterwards. Raise the low cut and the bass is taken out of the distortion, not out of the output: the fundamental stays clean, only the mids get dirty. The factory setting is OFF / OFF (the whole signal is distorted).

09Delay

A stereo ping-pong delay, synchronised to the project tempo.

The echoes also feed the reverb, so they get a tail of their own. The tempo is read from REAPER; below 10 BPM (or if none is reported) 120 BPM is used. The delay buffer holds 3.3 s, which is only reached with the 1/2 setting below about 37 BPM.

10Reverb

A Freeverb-type room: eight comb filters and four all-pass filters per channel with a short pre-delay (about 12 ms), lengths scaled with the sample rate.

11Compressor & master

The COMP column holds a compressor that acts on the dry signal only — delay and reverb are added afterwards, so the punch of the 303 stays in front of the room. Fixed values: threshold −14 dB, ratio 5:1, soft knee (30 dB wide), attack 3 ms, release 250 ms, plus a make-up gain of about +5 dB.

Master. Dry, delay and reverb are summed and scaled by VOLUME; then a soft clipper takes over: linear up to 0.7, a tanh knee above it, with a limit of exactly 1.0, so a resonance overshoot rounds off instead of clipping square. A hard limit at ±1 follows.

12The sequencer

In SEQ mode the plug-in plays a pattern of up to 16 steps. One step is a sixteenth note at the project tempo. Each step has a note, a gate (sounds or rests), an accent flag and a slide flag.

The sequencer panel: RUN indicator with the step number, FREE RUN and SEQ OUT switches, the MIDI = TRANSPOSE note, bank buttons A to D, COPY RND MUT CLEAR UNDO, the LEN SHUF GATE knobs, the note lane and the GATE ACC SLD rows
SEQThe sequencer panel. Top: RUN / STOP with the current step, FREE RUN, SEQ OUT and the transpose hint. Second row: banks, COPY, RND, MUT, CLEAR, UNDO and the knobs LEN, SHUF, GATE. Below: the note lane (C1–C3) and three rows per step. White bars are accented steps, the arrow marks a slide into the next step, dimmed bars are rests.

Editing steps

Playback controls

ControlFunction
LEN (1–16)Pattern length. Shorter patterns loop their first steps — useful for odd meters. The pattern is locked to the project timeline, so a 12-step pattern restarts every 12 sixteenths counted from the project start.
SHUF (0–75 %)Shuffle: delays every second sixteenth (steps 2, 4, 6…) by up to 37.5 % of a step. 0 = straight.
GATE (10–100 %)How long each normal step sounds, as a share of the step. Steps that carry a slide flag are held until the next step starts.
BANK A B C DFour pattern memories. Switching during playback changes the pattern with the next step. A new instance holds the start pattern in A, B and C and the pattern PUMP in D (an E2 bass with slides and accents).
FREE RUNRuns the sequencer with the transport stopped: it starts at step 1 and follows the project tempo. When the transport runs, the sequencer follows the timeline again.
SEQ OUTAlso sends the generated notes to the plug-in’s MIDI output (channel 1, velocity 127 for accents, otherwise 100) — to play an external synth or another plug-in with the same line. See the MIDI section for the difference from MIDI THRU.
RUN / STOPA lamp and the current step number.

Pattern tools

All four banks, the length, shuffle and gate settings are saved with the project. RND, MUT, CLEAR and UNDO work on the active bank only. Every pattern change (step edits, COPY, RND, MUT, CLEAR, UNDO, loading a user preset or INIT) also creates an entry in REAPER’s undo history (Ctrl+Z, Edit FX) once the mouse button is released, and marks the project as changed.

Transport and MIDI transpose

The sequencer runs while the project plays (and, with FREE RUN, also while it is stopped). On start it picks up the step under the cursor; a loop jump, a position change or a tempo change re-syncs it, but the ordinary running does not, so the timing stays steady; a small re-sync (for example after a tempo change) never plays a step twice. Pressing play does not cut a note that is sounding (FREE RUN, a held key) or a delay or reverb tail, and keeps UNDO, COPY and a held transpose key; if the plug-in is silent at that moment it starts from its clean initial state, exactly as before. Incoming MIDI notes transpose the pattern: C2 (MIDI note 36) is the original pitch, every semitone above or below shifts the pattern accordingly while the key is held; MIDI TRANSPOSE +n shows the shift. When the key is released the pattern returns to its original pitch.

13MIDI

Notes

In HOST mode incoming notes play the voice (velocity ≥ ACCENT VEL = accent, overlapping = slide, last note wins from a stack of ten). In SEQ mode they transpose the pattern. The plug-in listens on all MIDI channels. Notes are consumed by the instrument: unless MIDI THRU is on they do not appear at the output.

Controllers

CCControlsNotes
74CUTOFF FREQ0–127 is scaled to the full 0–100 range of the knob; the knob on the front follows. Any MIDI channel.
71RESONANCE
73ENV MOD
75DECAY
16ACCENT
7VOLUME
64Sustain (HOST mode)64–127 holds the gate on after the last key is released, 0–63 lets it go (Devil Fish behaviour, see section 05). Ignored in SEQ mode. The controller still passes through to the output.
123, 120All notes offReleases the voice and clears held notes, the sustain flag and the MIDI transpose.

Pitch bend, clock and all other controllers are not used by the voice; they are passed to the output.

THRU and SEQ OUT — two different sources

In SEQ mode incoming notes are transpose commands — whoever also passes them on with THRU sends them out next to the sequence. MIDI events carry their sample offset: notes start sample-accurately, and the sequence leaves the plug-in with the same accuracy.

The pattern mirror (gmem)

The plug-in mirrors the displayed bank into shared memory named tt303_acid. A ReaScript can read it and turn the pattern into a MIDI item; the script tt303_pattern_to_midi.lua does exactly that (accent = velocity 127, otherwise 100; slides tie legato into the next step). It is a separate file that is not part of the plug-in package. With several instances in a project, the last one processed wins.

14Preset bar & user bank

The preset bar sits in the header, directly left of OPTIONS: < name > SAVE .... It replaces the six patch buttons of earlier versions.

The preset bar with its dropdown open: the FACTORY section with INIT, TT-Groove, TT-BigBoy, TT-HiImTom!, TT-OffbeatBaby and TT-GoodStart and the USER section with empty slots
PRESETSPreset bar with the list open. Click the name to open the list; FACTORY first, then the 32 USER slots (empty ones read - empty -). The mouse wheel scrolls, a click loads.
ControlFunction
< / >Previous / next preset: first the six factory presets, then the used user slots; wraps around and loads immediately.
Name fieldOpens the list with FACTORY and USER. A * behind the name means that a sound or pattern setting differs from the loaded preset.
SAVESaves the current state 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 07): type, Enter or OK saves, CANCEL or a click outside cancels.
...RENAME, COPY (into the next free slot, named Copy of …) and DELETE (a second click confirms) — for the selected user preset — and INIT: all preset parameters to their default values and the start pattern in banks A–D.
The SAVE PRESET name box with the default name User 01, OK and CANCEL buttons
SAVENaming a preset. The name box opens after SAVE: up to 24 characters, Enter = OK. REAPER keeps the space bar for the transport, so type Shift+Space for a blank.

The factory presets

The six FACTORY entries are the default presets of the web version of the TT-303. Unlike a sound-only patch, a factory preset loads the complete state of a user preset: all sound controls listed below, the pattern settings (length, shuffle, gate, active bank) and the four pattern banks A–D, so loading one replaces the pattern too. Not part of it: the operating mode (HOST / SEQ), FREE RUN, SEQ OUT, MIDI THRU and the tempo (the plug-in follows the host tempo; the web presets were made at 135 BPM). Switch to SEQ to hear the pattern.

PresetWaveCutoffResoEnvDecayAccentDriveDelay mix / fbReverb
INITSAW3246.626.727.960off0 / 760
TT-GrooveSQUARE010000100on, HARD 24.829.5 / 5828.5
TT-BigBoySQUARE007.1057.6on, HARD 24.58 / 7611
TT-HiImTom!SQUARE0045.741.477.5on, FOLD 29.55.5 / 7611
TT-OffbeatBabySQUARE57.150.847.836.281on, FOLD 32.312 / 7728
TT-GoodStartSAW13.155623560on, SOFT 815 / 6018

All values are knob positions (0–100), except drive (1–40) and feedback (%). They are starting points: every control stays editable.

What a user preset contains

All sound controls (waveform, tuning, fine, cutoff, resonance, env mod, decay, accent, volume, slide time, accent velocity, drive on / model / amount, delay mix / division / feedback, reverb mix / room size, the three input EQs, compressor on / mix), the pattern settings (length, shuffle, gate, active bank) and the four pattern banks A–D with all steps. The pattern is always part of a user preset (for an acid machine the pattern is part of the sound), so loading one replaces the pattern too. Not part of a preset: the operating mode (HOST / SEQ), FREE RUN, SEQ OUT, MIDI THRU, the colour scheme (OPTIONS) and the transport.

Where the user bank lives

A plug-in 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 (v1.0, v1.1) load unchanged with an empty bank.

REAPER keeps Space for the transport: type Shift+Space for a blank. Depending on your REAPER settings Esc closes the whole FX window — use CANCEL (or a click outside) to leave the name box.

15Options / Color

The OPTIONS button is at the right end of the header (up to v1.1 it sat between THRU and MODE; since v1.2 the preset bar is on its left). Click it, then a swatch. A click outside the box closes it.

The OPTIONS box open: ten colour swatches in two rows, the factory scheme ACID marked with a white frame and named below
OPTIONSOptions / Color. Ten swatches; the marked one is active, the name of the swatch under the pointer is shown below. The box says per instance.

COLOR offers ten schemes: ACID, CYAN, ORANGE, MAGENTA, YELLOW, RED, BLUE, VIOLET, MINT and ICE. A scheme changes the accent colour (knob rings, active buttons, step bars, LEDs, traces), the dimmed accent and, for RED to ICE, the slightly tinted panel background of the whole front at once. The choice applies per plug-in instance and is saved with the project and with FX-chain copies. The factory colour is ACID, the classic acid green (#39FF14). Loading a preset (factory or user), RND, MUT or UNDO does not change the colour. It is stored in the hidden parameter 36 (UI Color, 0–9); the sound is not affected.

Tooltips. The title row of the box carries a TOOLTIPS ON / OFF switch. ON (the default) shows the tooltip of the control under the pointer after a short dwell; OFF hides all of them. The setting applies per instance, is saved with the project, the FX chain and REAPER presets, and is not part of the factory or user presets.

Style: font size and custom colours. Below the swatches the box carries the style controls: FONT SIZE scales the two font slots in steps of about 8 % (range -4–+8) — FONT 1 is the large title font, FONT 2 is all other text; the current step is shown between the - and + buttons. The colour picker assigns a custom colour to FONT 1, FONT 2 or the background BG: pick the target, then drag in the hue strip and the saturation/value field — every change applies live while you drag, and BG derives the panel, border and knob colours from the spacing of the active scheme. RESET restores the scheme value of the selected target, RESET ALL restores everything. If a custom text colour drops below a contrast of 3:1 against the background, the box shows a small warning. All style settings apply per instance, are stored with the project, the FX chain and REAPER presets — and are not part of the factory or user presets of the preset bar.

16Automation & parameters

All sliders are hidden in the plug-in window, but every one is a normal REAPER parameter: use the Param menu of the FX window (or the automation list of the track) to put any of them on an envelope or to map it to a controller. The values are saved with the project. Names as REAPER shows them:

#NameRangeDefault
1ModeHOST / SEQHOST
2WaveformSawtooth / SquareSawtooth
3Tuning (semitones)−24 … 240
4Fine (cents)−50 … 500
5Cutoff Freq0 … 10032
6Resonance0 … 10055
7Env Mod0 … 10062
8Decay0 … 10035
9Accent0 … 10060
10Volume0 … 10070
11Slide time (ms)0 … 30060
12Accent from velocity1 … 12765 (up to v1.4.1: 100)
13DistortionOff / OnOff
14Distortion modelSoft / Hard / Fold / FuzzSoft
15Drive1 … 408
16Delay mix (%)0 … 10015
17Delay division1/8 / Dotted 1/8 / 1/4 / 1/2Dotted 1/8
18Delay feedback (%)0 … 9060
19Reverb mix (%)0 … 10018
20Room size (%)20 … 10070
21SEQ pattern length1 … 1616
22SEQ Shuffle (%)0 … 750
23SEQ Gate (%)10 … 10055
24SEQ Free RunOff / OnOff
25SEQ pattern bankA / B / C / DA
26SEQ Out (sequence to output)Off / OnOff
27 / 28Drive EQ Lowcut / Highcut (Hz)0 … 20000 / 20 … 200000 / 20000 (off)
29 / 30Delay EQ Lowcut / Highcut (Hz)0 … 20000 / 20 … 20000250 / 3000
31 / 32Reverb EQ Lowcut / Highcut (Hz)0 … 20000 / 20 … 20000300 / 2300
33MIDI Thru (incoming notes)Off / OnOff
34CompressorOff / OnOn
35Compressor mix0 … 100100
36UI Color0 … 90 (ACID)
37–40Q IDX (test), Q CMD (test), Q A (ro), Q B (ro)see below0

REAPER adds its own Bypass, Wet and Delta after these. Moving a knob on the front, a CC (section 13) or a preset load all move the same parameters.

Automating 25 (SEQ pattern bank) switches the pattern from bank to bank along the song; 21, 22, 23 (length, shuffle, gate) and 24 (FREE RUN) are automatable too. The pattern steps themselves are not parameters: they live in the plug-in state.
Sliders 37–40 are the test interface of the preset bank (index, command, two read-outs). They are not needed in normal use and should not be automated: a non-zero Q CMD is a command (for example it saves the current state into a user slot, loads a factory preset or randomises the pattern). Since v1.3.3 these commands only run while a test script has unlocked them; otherwise the plug-in ignores them and sets Q CMD back to 0. Slider 36 (UI Color) stores the colour scheme.

17In practice

18Troubleshooting

19Release notes

v2.1.4 — 2026-10-25: SEQ OUT note-off

Switching SEQ OUT off while a sequencer note was still playing dropped its note-off — the receiving instrument kept the note hanging. The pending note-off is now sent once on the switch. The @provides header was cleaned (stray PATGEN entries removed, the keyboard panel image added). Sound is unchanged.

v2.1.3 — 2026-10-20: space bar

v2.1.2 — 2026-10-14: fixes

v2.1.1 — 2026-10-12: new factory presets

v2.1.0 — 2026-10-10: playable keyboard, SLIDE in the synthesizer panel, smoother knobs

v2.0.0 — 2026-10-05: ReaPack release

v1.5.0 — 2026-10-03: HOST mode, more of the Devil Fish MIDI input

v1.4.1 — 2026-10-02: HOST mode as on the Devil Fish

v1.4.0 — 2026-10-02: same note in HOST mode

v1.3.3 — 2026-10-02: fixes from the code review

v1.3.2 — 2026-10-01: tooltips

Every control of the front now has a tooltip (knobs, switches, bank and pattern buttons, sequencer rows, EQ handles, preset bar, OPTIONS). The OPTIONS box gains TOOLTIPS ON / OFF (per instance, saved with the project). DSP and audio unchanged.

v1.3 — 2026-10-01: style options

The OPTIONS box gains FONT SIZE for FONT 1 (titles) and FONT 2 (text) and a custom HSV colour picker for FONT 1 / FONT 2 / BG with RESET / RESET ALL, live preview and a low-contrast warning; dim text contrast raised for readability in all schemes. DSP unchanged.

v1.2 — 2026-09-30: preset bar

v1.1 — 2026-09-30: Options / Color

v1.0 — 2026-09-07: first full release

20Technical data & honest notes

ItemValue
TypeJSFX instrument, monophonic, stereo out (TT-303 L / R), no audio input
HostREAPER 6 or newer (Windows, macOS, Linux); developed and tested with REAPER 7
OscillatorSaw / square, 1-sample PolyBLEP, 2× oversampled
Filter3-pole ladder, 18 dB/oct, ZDF/TPT, level-dependent feedback, 2× oversampled, 1/4-1/2-1/4 decimation
EnvelopesVCF decay 30–570 ms (accent: 0.2 s fixed), VCA attack 3 ms / 1.8 ms, sag 1.1 s, release 12 ms
DriveSoft / Hard / Fold / Fuzz, 2× oversampled, parallel input EQ
DelayPing-pong, 1/8, dotted 1/8, 1/4, 1/2 of the project tempo, feedback 0–90 %, buffer 3.3 s
ReverbFreeverb type, 8 combs + 4 all-passes per channel, sample-rate scaled
Compressor−14 dB, 5:1, knee 30 dB, 3 ms / 250 ms, about +5 dB make-up, dry only, MIX
MasterSoft clip (linear to 0.7, tanh knee, limit 1.0) and a hard limit at ±1
Sequencer16 steps, 4 banks, step = 1/16 note, shuffle up to 37.5 %, note range C1–C3, sample-accurate notes
MIDIAll channels; CC 74, 71, 73, 75, 16, 7, 123, 120; queue of 512 events per block
Presets6 factory, 32 user slots in the plug-in state (project, FX chain, REAPER preset)
LatencyNone reported (no plug-in delay compensation)
WindowDefault 1120 × 912, scalable; drawing grid 900 × 732; HiDPI aware

Honest notes

UI Size & Saved Options

Updated in v2.1.4. 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.