TT-PHALYX Drum Sampler — Reference Manual

JSFX instrument for REAPER // 16 pads // Version 1.03 // TimTechlor

A 16-pad sample player for REAPER with the working depth of Vengeance Phalanx, in the Tim Techlor design language. Pure MIDI triggering — no internal sequencer. One file, one stereo output, no dependencies.

01Introduction

TT-PHALYX is a 16-pad drum and loop sampler implemented as a REAPER JSFX instrument. Each pad plays two sample slots (A and B) with a crossfade, and offers per-pad sound shaping — transpose, filter, envelopes, loops — plus a per-pad arpeggiator, a scratcher, a modulation matrix with two LFOs, and a shared master FX chain with a four-band EQ and four insert effects.

Pads are triggered exclusively via MIDI: from the piano roll, a keyboard, or pad controllers. Two trigger modes can be mixed freely — a Drum Kit mode listening on channel 1 with a General-MIDI note map, and a Multitrack mode where each pad owns its own MIDI channel and plays tonally with keytrack.

Highlights

  • 16 pads × 2 sample slots, crossfaded, reverse, start / random offset, sample delay, phase invert
  • 64-voice engine, per-pad voice limiting and choke (killnote)
  • Amp / filter / pitch envelopes, loop editor with ping-pong and crossfade
  • 8-row modulation matrix, 2 LFOs, mod envelope, velocity curves
  • Per-pad arpeggiator with shuffle and tempo sync; scratcher
  • Master 4-band EQ + 12 insert effect types with tempo-syncable delay
  • 8 parameter banks, per-pad undo, full MIDI Learn via REAPER automation

Requirements

  • REAPER 7.x (developed and tested on 7.79) — any platform that runs JSFX
  • No third-party libraries, no binaries — everything is one .jsfx text file
  • Your own WAV/AIFF samples, arranged in kit folders (see §06)
  • Two optional Lua helper scripts for kit loading and bank saving (§02)
TT-PHALYX is the drum sibling of the TT-303 Acid Machine: core black panel, acid green (#39FF14) on ink, monospaced type, 45° circuit traces. If you know the TT-303, every widget behaves the same way.

02Installation

Files

FileLocationPurpose
tt-phalyx.jsfx…/REAPER/Effects/TimTechlor/TT-PHALYX/ The instrument. REAPER scans the Effects folder — the FX appears as JS: TimTechlor/TT-PHALYX/tt-phalyx.
TT-PHALYX Load Kit.lua…/REAPER/Scripts/ Kit loader — spreads a folder of WAVs across the 16 pads (§06).
TT-PHALYX Save Bank.lua…/REAPER/Scripts/ Bank saver — writes the complete state to a bank file (§17).

Steps

  1. Copy tt-phalyx.jsfx into the Effects folder as shown above (create the folder if needed).
  2. In REAPER, open View → FX Browser, find JS: TimTechlor/TT-PHALYX/tt-phalyx and drop it on a track. If it does not appear, run FX Browser → Rescan.
  3. Copy both Lua scripts into the Scripts folder. In REAPER: Actions → Show action list → New action → Load ReaScript… and pick each file once. They then run as normal actions.
The JSFX source is plain text. If you open it in the JSFX editor (click the Edit button in the FX window) and save, REAPER hot-reloads the plugin instantly — the UI is the compiled result of what you see.

03Quick Start

  1. Insert TT-PHALYX on an empty track. Set the track's MIDI input to your controller or to All channels.
  2. Run the Load Kit action. Pick any WAV from a folder that holds your drum samples — the folder's contents are sorted and spread across the 16 pads automatically.
  3. Play. Kit mode listens on MIDI channel 1 with the GM map (C2 = 36 kick, D2 = 38 snare, F#2 = 42 closed hat …). The kit note of each pad is printed under its waveform.
  4. Click a pad to select it — the full panel below now edits that pad. Turn TRANSPOSE, draw the amp envelope in the AMP tab, or add a delay in the FX tab.
  5. When your kit sounds right, run the Bank speichern action and store it in slot 1–8 so any project can recall it (§17).

04UI Conventions

Every control follows the TT-303 behaviour — once learned, nothing new:

GestureResult
Drag verticallyAdjust knobs, faders, envelope points, loop flags, numbers
Right-click dragFine adjustment (higher resolution)
Double-clickReset the control to its default value
Mouse wheelStep the control in increments
Right-click a stepped buttonStep back (e.g. ARP mode, EQ band type)
Click a slim padSelect the pad (its full panel opens below)

The current pad is highlighted with an acid frame in the pad grid. All editing always refers to the selected pad and its currently chosen A/B slot.

The complete front end — 16 slim pads with the kit loaded, full panel of pad 1, and the AMP tab editor below the tab bar.
The complete front end — 16 slim pads with the kit loaded, full panel of pad 1, and the AMP tab editor below the tab bar.

05The Front Panel

Slim pads (top row)

Each of the 16 pads shows, from top to bottom: pad number, name, its vertical waveform and the volume fader, the kit note / MIDI channel label, and the M/S buttons.

  • Waveform — bright line: Sample A. A dark ghost contour behind it is Sample B (drawn as soon as slot B holds a sample).
  • M / S — mute / solo the pad. Soloing one pad mutes all others.
  • Fader — pad volume, 0–100 % (default 80 %).
  • LED (top right) — lights while voices of this pad are sounding.
  • Small bar (left of the LED) — arp marker; lit while this pad's arpeggiator is running.
  • Bottom label — kit note in drum mode (K:C2) or MIDI channel in multitrack mode.

Full panel (selected pad)

The row of buttons on the left switches which sample slot the two knob rows edit:

A / B
Select slot A or slot B as the edit target. The front waveform always shows both.
A -> B
Copy all slot-A settings and the sample assignment to slot B.
PHASE
Invert the polarity of the selected slot — useful to fight phase cancellation between A and B.
REV
Play the selected slot backwards.
SCR
Arm the scratcher for this pad (§15).
Crossfade fader
Mix slot A and B. 0 %= A only, 100 %= B only. The XFADE target of the mod matrix rides this fader.

Knob row 1 — sample

TRANSPOSE
±24 semitones, integer.
FINE TUNE
±50 cents.
GAIN
Slot gain 0–200 % (default 100 %).
START
Start point of playback, 0–100 % of the sample.
RND OFF
Random start offset — each hit starts somewhere inside a window after START. 0–100 %.
DELAY
Sample delay, 0–50 ms — nudges the hit later for phase alignment between pads.

Knob row 2 — colour & level

LPF / HPF
Simple per-slot low- / high-pass colour filters, 0–100 % each.
LOFI
Bit/rate degradation amount, 0–100 %.
SPIKE
Transient emphasis, 0–100 %.
VOLUME
Slot volume 0–100 %.
PAN L/R
Stereo position of the slot, −100 (L) … +100 (R).
RETRIG
Retrigger mode with keytrack and fade — repeated notes restart the envelope musically instead of clicking.

INPUT box (right side)

Kit note / MIDI ch
In drum mode (input 0) the pad's GM note; in multitrack mode the pad's own channel 1–16. Multitrack pads play tonally: incoming pitch is tracked relative to ROOT.
KILLNOTE
Choke group of one: a new note-on with this note number stops the pad (classic closed-hat-kills-open-hat). −1 = off.
VOICES MAX
Per-pad voice limit, 1–16. Oldest voice is stolen first.
ONE SHOT / SUSTAIN
One shot plays the sample to its end regardless of note-off; sustain releases with the amp envelope when the note ends.
ENV -> INIT
Reset the pad's envelopes to their defaults.
ROOT (KEYTRACK)
Base note for multitrack keytrack and the arpeggiator, 0–127 (default 36).
PB-RANGE
Pitch-bend range in semitones, 0–24 (default 2). Bend is slewed (~11 ms) for a smooth, analogue-style glide and applies to all playing voices of the pad.

The header shows active voices against the polyphony limit, the project tempo, and the CLIP LED — it lights when the output stage exceeds 0.95 and decays after the overload.

06Loading Kits

JSFX cannot open file dialogs, so samples arrive through a kit file. The Lua action “TT-PHALYX Load Kit” builds it:

  1. Run the action. A file dialog opens — pick any WAV inside your kit folder.
  2. The script lists the folder, sorts it alphabetically, and writes tt-phalyx-kit.bin: entries 1–16 become Sample A of pads 1–16, entries 17–32 become Sample B. A readable tt-phalyx-kit.txt documents the mapping.
  3. The plugin polls the kit file about twice per second and reloads any slot whose path changed — new kit takes effect without restarting.
Name your files with numeric prefixes (01_kick.wav, 02_snare.wav …) to control the sort order. Subfolders are ignored. To audition a single new snare, drop it alone in a folder and load — the rest of your banks/parameters stay untouched because only samples move, not parameters.
Projects store the parameter state and the kit paths, never the audio. Keep kit folders in a stable location; if a WAV moves, its slot loads empty.

07AMP Tab

The amp envelope is drawn as breakpoints over the sample waveform of the selected slot. Drag the points to shape attack, decay, sustain and release stages; the horizontal axis is controlled by TIMESCALE — below 100 % the envelope runs faster than drawn, above 100 % slower. Timescale also applies to the filter envelope.

  • One-shot pads ignore note-off and run the envelope to the end of the sample.
  • Sustain pads hold at the sustain level until note-off, then release.
  • RETRIG adds keytrack and fade behaviour for fast repeated notes — useful for rolls without clicking.
  • ENV → INIT (front panel) restores the drum defaults of all envelopes of the pad.

The overview screenshot in §04 shows the AMP editor with its envelope points over the pad's waveform.

08FILTER Tab

Each pad has one state-variable filter with envelope and drive, applied after the A/B mix of the sample slots.

Types

FamilySlopes
LP — low pass6 / 12 / 24 dB/oct
HP — high pass6 / 12 / 24 dB/oct
BP — band pass12 / 24 dB/oct
NO — notch12 / 24 dB/oct

Controls

CUTOFF
Cutoff frequency, logarithmic.
RESO
Resonance emphasis.
ENV AMT
Bipolar modulation depth of the filter envelope.
Filter ADSR
Draggable envelope graphic next to the knobs.
DRIVE
CLEAN leaves the filter linear; DIRTY pushes a saturation stage into the resonance for acid bite.
FILTER tab — filter envelope (left), TYPE/CUTOFF/RESO/ENV knobs and the CLEAN/DIRTY drive stage (right). Factory state: LP 12 dB/oct.
FILTER tab — filter envelope (left), TYPE/CUTOFF/RESO/ENV knobs and the CLEAN/DIRTY drive stage (right). Factory state: LP 12 dB/oct.

09PITCH Tab

Pitch envelope
Breakpoint envelope over a waveform display, per pad. It starts at every note-on and returns to base pitch.
RANGE
Envelope depth in semitones.
STEPS
Quantises the envelope into discrete semitone stairs instead of a continuous glide.
FLIP
Inverts the envelope direction.
PORTA TIME
Portamento/glide time, 0–500 ms.
PORTA MODE
OFF — no glide. POLY — every new voice glides from the previous pitch. LEGATO — a new note while the pad already sounds slides the running voice instead of starting a new one.
PITCH tab — pitch envelope with RANGE/STEPS, portamento time and the OFF/POLY/LEGATO modes.
PITCH tab — pitch envelope with RANGE/STEPS, portamento time and the OFF/POLY/LEGATO modes.

10FX Tab

The FX tab is the shared master chain, identical for all pads: 4-band EQ → insert 1 → insert 2 → insert 3 → insert 4. Each insert slot can host one of twelve effect types with four parameters and a mix control; OFF bypasses the slot.

Four-band EQ

  • Bands: PEAK, LO-SHELF, HI-SHELF, LO-CUT, HI-CUT — click a band's type to step forward, right-click to step back.
  • Frequency 30 Hz – 20 kHz (logarithmic), gain ±15 dB, Q 0.3 – 8.
  • The response curve is drawn live and updates while you drag.

Insert effects — parameter reference

TypeP1P2P3P4
DELAYTIME — 0–1000 ms, or a note raster with tempo sync (see below) FEEDBACK 0–100 %SPREAD — widens L vs R delay time DAMP — feedback low-pass 100 Hz…18 kHz
CHORUSRATE 0.1–8 HzDEPTHBASE 5–30 ms SPREAD — L/R modulation phase
FLANGERRATE 0.05–4 HzDEPTHFEEDB 0–95 %, HF-damped (~2.5 kHz) BASE 0–10 ms
PHASERRATEDEPTHFEEDBSPREAD
DISTORTDRIVETONE 500 Hz–18 kHz——
CRUSHBITS 1–16SRR — sample-rate reduction——
COMPTHRESH −48…0 dBRATIO up to 20:1ATTACK 0–10 ms RELEASE 0–1000 ms
LIMITTHRESHRELEASE——
ROOMSIZEDAMPWIDTHPRE — predelay 0–250 ms
TRASHDECAYCRUSHDRIVEPRE — predelay
GATEDECAYHOLDTHRESHPRE — predelay
STEREOWIDTH 0–200 %—PAN — L / C / R placement—

Every slot has its own MIX knob (dry/wet). CHORUS uses two modulation voices per channel (v1.02) — noticeably fuller than a single-voice chorus. ROOM is a dense algorithmic room, TRASH a degraded “zero verb”, GATE a gated reverb — all three accept a predelay on P4 to keep transients in front of the wash.

Tempo sync for the delay

With SYNC (SYSTEM tab) set to DELAY or DELAY+ARP, the DELAY TIME parameter selects a note value instead of milliseconds:

TIME position01234567
Note value1/161/8T1/81/4T1/41/23/41/1

The value row of the slot shows the note name while sync is active. The delay buffer holds 1 s per channel at 96 kHz — very long values at low tempos are clipped to the buffer length. Value changes are stepped, not ramped; retrigger a hit if you change the raster mid-groove.

FX tab — FX-CHAIN readout, 4-band EQ with live response curve and the four insert slots (here: all OFF, factory PEAK bands).
FX tab — FX-CHAIN readout, 4-band EQ with live response curve and the four insert slots (here: all OFF, factory PEAK bands).

11LOOP Tab

The loop editor works on the selected slot (A or B — choose it in the full panel).

Flags
Drag the start and end flags directly in the waveform. The loop runs between them while LOOP is on.
NRM
Normal loop: end jumps back to start.
PING
Ping-pong: alternates forward and backward passes.
XFD
Crossfaded loop: the tail of the loop is blended into the start to hide the seam.
ZERO
Snaps the flags to the nearest zero crossings — loops without DC thumps.
XFADE ms
Length of the loop crossfade in milliseconds.
Loop points follow the sample: they are stored as permille of the loaded sample, so a re-scan of a slightly edited file keeps its loop roughly in place.
LOOP tab — slot loop editor with NRM/PING/XFD types, ZERO snap and the XFADE length; start/end flags sit on the waveform.
LOOP tab — slot loop editor with NRM/PING/XFD types, ZERO snap and the XFADE length; start/end flags sit on the waveform.

12MOD Tab

Modulation matrix — 8 rows

Each row routes one source to one destination with a bipolar amount (−100…+100). Click the source field, then the destination field, then drag the amount. Several rows can target the same destination and sum up.

Sources

NameSignal
VELNote-on velocity (0…127 normalised)
KEYKeytrack — note pitch relative to ROOT
G1 / G2 / G3GUI modifier knobs (this tab) — automate or MIDI-learn them
M-X / M-YMouse position over the plugin window
LFO1 / LFO2The pad's two LFOs
MENVThe pad's mod envelope (ADSR below the matrix)
RNDNew random value per note-on

Destinations

NameTarget
VOLPad volume
PANStereo position
PITCHPlayback rate (in semitones at ±100)
CUTOFF / RESOFilter frequency / resonance
LFO1 RT / LFO2 RTLFO 1 / LFO 2 rate
XFADERides the A/B crossfade fader

LFOs & mod envelope

LFO 1 / LFO 2
Shapes SIN, TRI, SAW−, SAW+, SQR, S&H. Rate 0–100 maps to 0…30 Hz (quadratic). RETRIG restarts the LFO phase on each note-on; otherwise it runs free (and free phases start randomised so voices don't pile up).
MENV
Attack 0–2 s, decay 0–2 s, sustain 0–100 %, release 0–2 s. Its output is a matrix source (MENV).
VELOCITY
Depth 0–200 % scales how hard velocity drives the pad; the curve (LIN, EXP2, EXP4, LOG, S-CURVE) shapes the response — draw a sketch, the graph shows it.
PAN A / PAN B
Independent pan of each sample slot (in addition to the pad pan).
MOD tab — 8-row modulation matrix, two LFOs with shape/rate/retrig, mod-envelope ADSR, velocity depth & curve, slot pans and the G1–G3 modif
MOD tab — 8-row modulation matrix, two LFOs with shape/rate/retrig, mod-envelope ADSR, velocity depth & curve, slot pans and the G1–G3 modifier knobs.

13MIDI/ARP Tab

Drumkit matrix

A one-and-a-half-octave keyboard shows the current kit mapping. Click any key to assign it to the selected pad (drum mode only — multitrack pads use channels instead). The mapping is per pad and stored with the project.

Arpeggiator — one per pad

Hold a note and the pad's arp takes over, firing sample-accurately in the audio thread (no plugin-latency wobble):

MODE
OFF, UP, DOWN, UP-DN (up-down), RND (random octave), ROLL (retrigger wall on the base note — hat rolls). Right-click steps back.
RATE
20 ms … 2 s (quadratic). With ARP tempo sync: 1/4, 1/8T, 1/8, 1/16T, 1/16, 1/32 — the value display shows the note name.
OCTAVES
1–4 octaves above the held note.
GATE
Step length 5–100 % of the rate — shorter values leave audible gaps.
SHUFFLE
0–50 %. Off-beat steps swing late while the grid itself stays put — 50 % turns straight sixteenths into a full swing feel. Drag the number directly.

The slim pads show a small arp marker while a pad's arpeggiator runs. A note-off stops that pad's arp; the current step still plays out.

MIDI/ARP tab — drumkit matrix (acid keys are assigned) and the arpeggiator with mode, shuffle, rate and gate.
MIDI/ARP tab — drumkit matrix (acid keys are assigned) and the arpeggiator with mode, shuffle, rate and gate.

14SYSTEM Tab

Readouts
Samplerate, active voices vs polyphony limit, output configuration, project tempo (BPM) as used by tempo sync.
LINEAR / AA (HERMITE)
Interpolation for resampled playback. AA (4-point Hermite) sounds cleaner when transposing up, at somewhat higher CPU. Default is linear.
IN TRANSPOSE
±24 st applied to incoming notes before the pad map. In kit mode this retunes the whole kit at once — the Phalanx behaviour.
POLYPHONY
Global voice limit, 4–64.
SYNC
Tempo sync selector: OFF → DELAY → ARP → DLY+ARP, each click advances. Affects the FX delay raster and/or all arp rates (§10, §13). Stored with the project; MIDI-learnable as automation slider 63.
SNAP / UNDO
Store / restore the selected pad's parameters (§17).
B1–B8
Load bank files 1–8 (§17).
SYSTEM tab — readouts, interpolation, SNAP/UNDO, incoming transpose, polyphony, tempo-sync selector and the eight bank slots.
SYSTEM tab — readouts, interpolation, SNAP/UNDO, incoming transpose, polyphony, tempo-sync selector and the eight bank slots.

15Scratcher

  1. Arm the pad with SCR in the full panel.
  2. Hold a note on that pad.
  3. Grab the waveform in the full panel and drag — the playhead of both slots follows your hand, like a vinyl scratch, for as long as the note is held.

The same position is exposed as automation slider 53, so you can scratch from a MIDI controller, an LFO in REAPER's modulation system, or draw scratch moves in the arrange view. A playhead line on the waveform shows the live position.

16MIDI Reference

Drum kit mode (channel 1)

Pad input 0 = kit mode: the pad responds to its GM note on channel 1. Factory mapping:

P01 KICK36 · C2
P02 SNARE38 · D2
P03 CL HH42 · F#2
P04 OP HH46 · A#2
P05 CLAP39 · D#2
P06 RIM37 · C#2
P07 RIDE51 · D#3
P08 CRASH49 · C#3
P09 TOM LO41 · F2
P10 TOM MD45 · A2
P11 TOM HI48 · C3
P12 SHAKER70 · A#4
P13 COWBELL56 · G#3
P14 TAMB54 · F#3
P15 PERC63 · D#4
P16 SNAP40 · E2

Multitrack mode

Pad input 1–16 assigns the pad exclusively to that MIDI channel. The pad becomes tonal: incoming notes are tracked relative to ROOT and transposed with TRANSPOSE/FINE — play chromatic lines through one pad's sample. Different pads can share a channel (layering) or split the channels.

Other MIDI behaviour

  • Incoming transpose (SYSTEM, ±24 st) is applied first; in kit mode it remaps the entire kit.
  • Pitch bend applies to all sounding voices of a pad within the pad's PB range (0–24 st, default 2), smoothed over ~11 ms.
  • Killnote implements per-pad chokes; the classic use is closed hat (42) killing open hat (46): set the open-hat pad's killnote to 42.
  • Monitor: the status line at the bottom logs note events, shows the last pitch-bend / CC values and a velocity bar for each of the 16 pads.
  • TT-PHALYX consumes note events; CC and pitch bend are passed through the FX chain.

17Banks & Undo

A bank is the complete state of the plugin — all 16 pads with every parameter, the mod matrix, envelopes, the master EQ and FX chain, polyphony and system settings. Samples always come from the current kit, so a bank is a sound-setup snapshot, not an audio archive.

Save (Lua action)

  1. Set up your kit and parameters.
  2. Run “TT-PHALYX Save Bank”.
  3. Enter a slot number 1–8. The action saves tt-phalyx-bankN.bin next to the plugin.

Load (SYSTEM tab)

  1. Click B1…B8.
  2. The bank replaces parameters and FX; the status line confirms “BANK LOADED” or “BANK EMPTY OR WRONG VERSION” (empty/incompatible).

Undo

  • SNAP stores the selected pad's parameters; UNDO restores them. One level per pad.
  • Switching pads takes an automatic snapshot — a quick UNDO always brings back what you just left.

18Automation & MIDI Learn

TT-PHALYX exposes its whole engine as hidden REAPER parameters. In the FX window's parameter list (or via Param → MIDI learn / envelopes in the arrange view) they behave like any plugin parameter:

SlidersFunction
1Master volume
2Selected pad (1–16)
3–14Selected pad: volume, pan, transpose A, fine A, transpose B, fine B, crossfade, mute, solo, input mode, kit note, killnote
15–38Mod matrix rows 1–8: source / target / amount (3 per row)
39–44LFO 1 shape / rate / phase-retrig, LFO 2 shape / rate / phase-retrig
45–48Mod envelope attack / decay / sustain / release
49–50Velocity depth / velocity curve
51–52Pan sample A / pan sample B
53Scratcher position
54–55Interpolation (linear/AA), incoming transpose
56–59Arp mode / rate / octaves / gate (selected pad)
60–63Root note, pitch-bend range, arp shuffle, tempo-sync mode

Sliders 3–52 mirror the selected pad — automate a specific pad by first selecting it (slider 2 or a UI click), or use REAPER's “take all snapshots” workflow. The FX-slot knobs of the FX tab are independent parameters, not sliders.

19Limitations vs. Phalanx

TT-PHALYX follows Phalanx where JSFX allows it. These points are deliberate differences:

PhalanxTT-PHALYX
16 stereo outputs1 stereo output (JSFX limitation). Workaround: several instances on routed tracks.
256 voices64 global voices, 1–16 per pad — far beyond drum needs.
AA Reverb & impulse convolutionAlgorithmic ROOM/TRASH/GATE instead — no convolution in JSFX at real-time-friendly cost.
Vengeance plugin hostingNot possible in JSFX.
Samples embedded in the projectSamples referenced from kit folders; projects store paths and parameters (keeps projects small and REAPER-native).
Banks saved from the UILoad from the UI; saving via the bundled Lua action (JSFX file access is read-only).
Drag & drop sample loadingKit-folder loading via the Lua action.

20Troubleshooting

No sound?

  • Kit not loaded — run the kit action and check the pad labels for file names.
  • Kit mode listens on channel 1 only; set the track input or the pads to multitrack channels.
  • Mute/solo state: a lone active SOLO silences every other pad.
  • Check pad volume (default 80 %) and master volume (default 90 %), and the CLIP/MUTE LED column — a red CLIP indicates earlier overload.

FX window shows an error text instead of the UI

The JSFX failed to compile (e.g. after a manual edit). The first line names the problem; fix or restore tt-phalyx.jsfx — REAPER recompiles on save.

Sync / banks oddities

  • Delay ignores sync — set SYSTEM → SYNC to DELAY or DLY+ARP; the delay TIME row must then show note values, not ms.
  • Arp plays ms again — same switch; ARP must be active in SYNC.
  • “BANK EMPTY OR WRONG VERSION” — the bank file doesn't exist or was written by an incompatible version. Re-save it with the current Lua script.
  • First ~0.5 s after loading ignore the FX preset file — the plugin polls external config files on a timer; renders starting at zero should place hits beyond the first half second.

Sound & CPU

  • Clicks when transposing up — switch the pad to AA (Hermite) interpolation.
  • Samples longer than 20 s are truncated per slot (loop material is unaffected in principle — but plan loops below 20 s).
  • CPU: the arpeggiator scheduler sleeps when no arp is active; AA interpolation and the ROOM insert are the most expensive blocks per voice.

21Specifications

Engine
Pads16, each with sample slots A + B and crossfade
Voices64 global (4–64 configurable), 1–16 per pad, voice stealing oldest-first
Sample loadingWAV/AIFF via RIFF parser, resampled to project rate, mono-summed, 20 s cap per slot, 128-bucket peak cache for the display
InterpolationLinear (default) or 4-point Hermite (“AA”)
LatencyNone; arpeggiator runs sample-accurately in the audio thread
I/OStereo in / stereo out, instrument (notes consumed, CC + bend passed)
State
Project storageFull parameter blob (all 16 pads × 128 fields, system, FX) via JSFX serialize, format v5
External filestt-phalyx-kit.bin (sample paths), tt-phalyx-bank1…8.bin, optional tt-phalyx-fx.bin (FX preset, 45 floats)
Parameters64 automation sliders, 63 in use (v1.02)
Misc
Samplerates44.1 – 96 kHz (delay buffer sized for 96 kHz = 1 s per channel)
PlatformREAPER 7.x JSFX (all platforms)
LicenseMIT — © TimTechlor

22Changelog

1.03 — English UI

  • All on-screen text, the built-in manual (@about) and the Lua helper scripts are English now. Helper scripts renamed: “TT-PHALYX Load Kit” / “TT-PHALYX Save Bank” (re-add them once in REAPER's action list).

1.02 — Feinschliff package

  • NEW: Tempo sync (SYSTEM, slider 63) — delay time and/or arp rate follow the project tempo. Delay rasters 1/16…1/1, arp rasters 1/4…1/32, including triplets.
  • NEW: Slim pads draw Sample B as a dark ghost contour behind Sample A.
  • TONE: Chorus now runs two modulation voices per channel (quarter-phase offset) — fuller, less comb colouration. Flanger feedback got HF damping (~2.5 kHz).

1.01 — Improvement package

  • NEW: Per-pad arpeggiator shuffle 0–50 % (off-beats swing late).
  • NEW: Pitch bend with per-pad range 0–24 st, smoothed ~11 ms, works in both trigger modes.
  • NEW: Root note control for multitrack keytrack.
  • NEW: MIDI monitor in the status line (PB/CC readout + 16 velocity bars).
  • NEW: Predelay 0–250 ms for ROOM / TRASH / GATE.
  • NEW: Clip LED in the header, scratch playhead line, arp markers on slim pads.
  • FIX: Debug counters no longer written into project state blobs.

1.00 — Release

  • Built-in manual (@about), CPU polish (arp scheduler sleeps when idle), release build.

0.6.0 — MIDI/ARP/System

  • Per-pad arpeggiator (UP/DOWN/UP-DN/RND/ROLL), scratcher, system page (AA interpolation, incoming transpose, polyphony), preset banks B1–B8, per-pad undo.
  • ROOM output staging fixed (was near full scale).

0.5.0 — FX page

  • Master chain: 4-band EQ (RBJ biquads, live response curve) + 4 insert slots with 12 effect types.

0.4.0 — Modulation

  • 8-row modulation matrix, 2 LFOs, mod envelope, GUI modifiers, velocity panel, per-slot panorama.

0.3.x — Filter / Pitch / Loop · 0.2.0 — Pad sound · 0.1.x — Core

  • Filter page (LP/HP/BP/Notch, 6/12/24 dB, drive), pitch envelope with portamento, loop editor (normal/ping-pong/crossfade, zero-cross snap), pad sound shaping (slot B, reverse, offsets, sample delay, phase), core sampler with voice pool, kit note map, multitrack mode, killnote and the TT design front end.