TT-ARPSEQ — User Manual

JSFX MIDI plug-in for REAPER // Version 0.8.0 // TimTechlor

A four-track arpeggiator and pattern sequencer in which every data lane loops on its own: notes, rhythm, gate, accent, transposition, subdivision, micro-timing, chord voicing and CC values each run in their own loop length and direction, so a few steps produce long, evolving patterns. Sample-accurate, host-synchronous, with chord memory, a pattern chain, a control zone and MIDI learn.

01The concept

TT-ARPSEQ turns held notes into patterns. Up to four tracks (key areas) listen to your MIDI, build a note list from the keys you hold and play it back in a host-synchronous rhythm. What makes it different from a classic arpeggiator is the data lane architecture: each aspect of the pattern is its own row of step values with its own loop start, loop end and direction.

Give the TRANSP lane a 3-step loop and the ACCENT lane a 4-step loop and the combined pattern only repeats after 12 steps; add a 5-step ORDER lane and it takes 60. The unit is a MIDI-only effect: put it before an instrument in the FX chain. Output goes to the MIDI channel of each track, so four tracks can drive four different instruments.

TT-ARPSEQ front panel: TRANSP lane with data, chord memory keyboard, pattern controls
FRONTThe front panel. Left: tracks and patterns. Centre: lane tabs, step editor, loop strip, tools. Right: chord memory, pattern sequencer, control zone and global settings. Bottom: pattern controls and track settings.

02Quick start

  1. Insert TT-ARPSEQ on a track before your instrument (it passes audio untouched).
  2. Hold a chord in the key area (default C2–B6). Track 1 starts playing an ascending 1/16 arpeggio, locked to the project tempo.
  3. Pick a factory preset with the preset bar in the header (< / > or the name field). Names ending in 3k want a three-key chord, 1k a single key, 1-8k one to eight keys.
  4. Open a lane tab (e.g. TRANSP), drag across the bars to paint values. Painting switches the lane and the touched steps on.
  5. Drag the two loop markers under the bars to shorten the lane loop; the other lanes keep their own length.
  6. Use HOLD to latch the chord, PANIC if a note ever hangs.

03The front panel

HEADER
The preset bar (< name > SAVE ...; the name opens the list of factory and user presets), author, INFO popup with the preset description, SETTINGS (opens the GLOBAL tab), the OPTIONS button (colour scheme), the status bar (shows the value of the control you touched last) and the red PANIC button (all notes off on every channel, all tracks reset).
TRACKS
Four track buttons with input/output channel and an ON switch. Ctrl+click on ON solos the track (again: all on). Right-click a track: copy, paste, Send only CC, Trigger CM.
PATTERN
12 patterns per track. Only the selected pattern plays; with the pattern sequencer on, the selection follows the chain. Right-click: copy, paste, clear. A dot marks a pattern that is playing but not selected.
LANE TABS
Nine data lanes (ORDER, CHRDMEM, LENGTH, GATE, ACCENT, TRANSP, DIV, SHIFT, SEQ) and eight CC lanes. Green/red dot top left: lane on/off (click to toggle, off = all values ignored). White dot top right: the lane holds data.
STEP EDITOR
16 bars per page (1-16 / 17-32 when STEPS > 16). The value is printed above each bar, the step number below. Bars outside the pattern length are dimmed. The white cursor shows the step each lane played last.
LOOP STRIP
The accent-coloured region is the lane loop, the line below it (second colour of the scheme, blue in YELLOW) the pattern length (STEPS).
STEP ON/OFF ROW
Off = the step's value is ignored (default value used). On the ORDER lane an off step means no note.
TOOLS
DRAW paints, SELECT selects a step range by dragging; RANDOM, COPY, PASTE (same lane only) and CLEAR act on the selection (whole pattern length when nothing is selected).
GestureEffect
Drag over barspaint values (fast drags are interpolated)
Ctrl + drag over barscopy the last value to the bars you cross
Double-click a barreset the step to its default
Right-click barsmenu: toggle lane, MIDI learn step, MIDI unlearn, copy to all steps, reset steps
Drag a knobset value; Shift = fine
Right-click a knobMIDI learn / unlearn
1–4select track
5 6draw / select tool
7 8 9 0random / clear / copy / paste on the selection
q w e r t z u i oselect lane ORDER … SEQ (w = CHRDMEM; QWERTY, QWERTZ or AZERTY in GLOBAL)
SEQ lane as an 8-row voicing grid
SEQSEQ lane. Each column is a step, each row a note of the list (row 1 = lowest). Any combination of rows can play in one step.

04Options & color

The OPTIONS button sits in the header directly right of the preset bar. It opens a small box with the COLOR choice: ten colour schemes (ACID, CYAN, ORANGE, MAGENTA, YELLOW, RED, BLUE, VIOLET, MINT, ICE). Click a swatch to switch the whole front at once; each swatch shows the accent colour on top and the second colour below. A click outside the box closes it.

OPTIONS box with the ten colour schemes, YELLOW selected
OPTIONSOPTIONS box. Ten colour schemes; the selected one has a white frame, the name of the scheme under the pointer is shown at the bottom left.

05Tracks & key areas

ControlFunction
ONOff: notes in the key area are not processed but sent unchanged to the MIDI OUT channel.
MIDI IN / OUTInput channel (All or 1–16) and output channel. Notes outside every active key area and channel pass through untouched on their own channel.
KEY AREALowest and highest key the track listens to. Areas may overlap; if two tracks output the same note on the same channel the running note is stopped and the new one starts (note steal). Use different OUT channels to avoid that.
BASEOutput transposition relative to the key-area start: output = input + (BASE − area start). Key area C1–C2 with BASE C2 plays C1 as C2.
VELOCITYMax (127), Note (velocity of the note being played), First / Last (velocity of the first / last entry of the note list), Average (mean of the held notes).
VOLUMEScales the generated velocities (0–100 %).
ARP ON NOTE COUNTNumber of keys that must be held before the arpeggio starts. Fewer keys pass through unchanged, so you can play melody lines without arpeggiating; when the count is reached the passed-through notes end and all held keys join the arpeggio.
HOLDThe chord keeps playing after you release the keys; the next chord replaces it. HOLD BYP temporarily disables hold.
SYNCDelays a change of the input chord by n steps (Next = at the next step).
TRANSPOSEWith HOLD on and a chord latched, a newly pressed key does not join the chord but transposes it by (key − chord root): C-E-G latched, then G3 → G-B-D.
BYPASSAll incoming notes pass through unprocessed; a latched hold chord keeps playing.
Send only CCThe track sends its CC lanes only, no notes (right-click the track button).
Trigger CMThe keys of the key area play chord-memory slots as block chords (first key = slot 1) on BASE; keys without a slot are silent.

06Patterns & pattern controls

Every track owns 12 patterns; each pattern owns its controls and all lane data. Each knob has a L lock switch: a locked control keeps its value when a preset is loaded.

ControlRangeFunction
GATE−100…+100Note length as a fraction of the step: 0 = a full step, +100 = 150 %, −100 = 50 %. A lane GATE value overrides it.
SWING0…100Delays every second step by up to 50 % of the rate (100 = 50 %).
OCTAVES1…5Repeats the whole note list in higher octaves (Lo-Hi: C E G C' E' G'; Hi-Lo and Reversed run the complete list backwards).
TRANSPOSE−24…+24Semitones, or scale degrees when a scale is set.
RATE1/1 … 1/64Straight, dotted and triplet values. FREE switches to Hz (0.1–20), independent of tempo.
STEPS1…32Pattern length; limits the right end of every lane loop.
PLAY ORDERHi-Lo, Lo-Hi, As Played, Reversed.
RESET ON NEW NOTEEvery new key restarts the pattern.

07Data lanes

LaneValuesMeaning
ORDERNxt, Off, Prv, 1st, Lst, Hi, Low, RndWhich note of the list plays. Nxt (default) is the next note and advances the list. Off plays nothing and does not advance. Prv repeats the previous note. 1st, Lst, Hi, Low pick the first, last, highest or lowest entry; Rnd a random one (seeded: identical on every play). A step switched off in the ORDER row is silent.
CHRDMEM1…16Chord-memory slot played in this step (see below).
LENGTH1…16Multiplies the note length: LENGTH 2 at 1/16 lasts 2/16 and can overlap the next step.
GATE−100…+100Note length relative to rate × LENGTH: at 1/16, LENGTH 2, GATE 50 the note lasts 3/16. Overrides the pattern GATE. With Gate length in steps a positive value is a length in steps (1–32).
ACCENT0…100Velocity emphasis. As soon as a lane has accents, un-accented notes drop to 75 % of the base velocity and an accent lifts the note up to 127.
TRANSP−24…+24Semitones (scale degrees with a scale) for all notes of the step, added to the pattern TRANSPOSE.
DIV1…8Splits the note into n equal parts: at 1/16 with DIV 2 two 1/32 notes play.
SHIFT−50…+50Moves the note earlier (negative) or later (positive) by a percentage of the rate. Negative values need lookahead; the plug-in generates the step early, the first step after a start is clamped to the moment the key was pressed.
SEQ8-bit maskEach row of the grid is one place of the note list (row 1 = lowest). Only marked places play, in any combination: with a 3-note chord and only row 1 marked just the lowest note sounds.
CC 1…80…127One CC per active step on the MIDI OUT channel, on a CC number you choose per lane (CC --: unassigned).

A lane's default state: on (except SEQ) with every step switched off (ORDER: on), so a fresh pattern is a plain arpeggio. Painting a value switches the lane and the step on.

08Loop points, directions & resets

Below the bars, the loop strip holds the loop start > and end < of the lane. Left mouse button moves the left marker when the mouse is between the markers, the right button the right marker; outside them the nearer marker follows the mouse. Ctrl applies the change to all lanes of the pattern.

LOOP DIROrder of the steps
Upleft to right, then back to the start
Downright to left
Up altleft to right and back, without repeating the end steps (ping-pong)
Down altright to left and back

RESET ON PTN RESET: by default a lane simply keeps looping when the pattern restarts (after all keys were released, on a pattern change, on RESET ON NEW NOTE). With the switch on, the lane starts from its loop start again. On the ORDER lane the switch also rewinds the note list; by default the list position is not reset. Lane cursors stand still while the track is idle.

Default state: ORDER lane, 16 steps
INITInit state. Plain ascending 1/16 arpeggio; every lane still holds its defaults.

09Chord memory

16 slots, each a chord of up to 8 keys on a three-octave keyboard, stored as intervals. The chord is stamped on the lowest input note:

output note = lowest played note + (chord key − base key)
Chord keysBase keyPlayedOutput
0 4 70C1C1 E1 G1
0 4 74C2G#1 C2 D#2
2 4 70C1D1 E1 G1
keys 1,5,8 (0 4 7), neutral base 1313 (index 12)C3 D3C2 E2 G2

Moving the base key moves the whole chord relative to the input note. The neutral position is key 13, the first key of the second octave. Click keys to toggle them; right-click a key to set the base key. FILL writes a preset chord (Major, Minor, Sus2, Sus4, 7, maj7, m7, Dim, Aug, Power, Quart, 6, m6, add9, 9, Octave) at the base key, INV inverts, COPY/PASTE/CLEAR work per slot, LOAD BANK loads one of six factory banks (16 chords each).

A step whose CHRDMEM lane is active plays the whole slot chord at once and replaces the ORDER choice; a SEQ mask then filters the chord tones. The original manual's display bug (slots 1–15 only) does not exist here: all 16 slots are selectable.

10Pattern sequencer

The P-SEQ panel chains patterns of the selected track. Each of the 16 sections has a PATTERN (1–12, -- = empty), a LENGTH in rate steps and a REPEAT count (number of plays). Example: section 1 = pattern 1, length 4, repeat 2; section 2 = pattern 2, length 4, repeat 1 plays pattern 1 for 4 steps twice, then pattern 2 for 4 steps, and starts over. Empty sections are skipped. The chain restarts with every pattern reset; each pattern change starts the new pattern from its loop starts (lanes with the reset flag) and continues the swing grid.

Pattern sequencer panel
P-SEQPattern sequencer. The active section is highlighted while the track runs.

11Control zone & program change

Keys of a 24-key zone control the plug-in instead of being played (default C0 = MIDI 24 with C3 = 60):

KeyFunction
C0 … G#0toggle ORDER, CHRDMEM, LENGTH, GATE, ACCENT, TRANSP, DIV, SHIFT, SEQ lane on/off in the current pattern of the selected track
A0 / A#0toggle HOLD / HOLD BYPASS
B0panic
C1 … B1select pattern 1–12 of the selected track

The table in the C-ZONE tab is freely assignable (n/a, lanes, previous/next preset, hold, hold bypass, panic, pattern 1–12) and replaces the original configuration file. Disable Control Zone turns the zone off so all keys play notes.

CONTROL ZONE SYNC (GLOBAL tab): with value 4, pattern changes happen at steps 1, 5, 9, 13 …; a command issued during step 5 takes effect at step 9. Idle tracks switch immediately.

Program change 0–47 selects track (PC ÷ 12 + 1) and pattern (PC mod 12 + 1): 0–11 = track 1 patterns 1–12, 12–23 = track 2, and so on.

12Scale & global settings

SCALE (All, Major, Minor, Dorian, Phrygian, Lydian, Mixolydian, Harm. Minor, Pent. Major, Pent. Minor, Blues, Whole Tone, Custom) with KEY and SHIFT (modes). All output notes are snapped to the nearest scale tone (a tie goes down) and transposition counts in scale degrees: C3 E3 G3 +1 gives D3 F3 A3 in C major, C#3 F3 G#3 without a scale. SHIFT n rotates the mask: mode 1 of C major is 0,1,0,1,1,0,1,0,1,0,1,1. All is the identity.

SettingFunction
NOTE RELEASEThe pattern is not reset the moment the last key is released: at the next step it resets only if no new note has arrived. Lets you change chords live without restarting the pattern.
Start notes immediatelyThe first note plays at the moment of the key press instead of the next grid step.
Use only ORDER on/offOnly the ORDER row keeps step switches; LENGTH, GATE, ACCENT, TRANSP, DIV and SHIFT apply on every step. CHRDMEM, SEQ and CC lanes keep their own step switches.
Transpose as semitonesTransposition counts in semitones; the result is snapped to the scale.
Transpose all output notesPass-through notes (track off, bypass, below the note count) are snapped to the scale too.
Gate length in stepsPositive lane GATE values are lengths in steps (1–32).
Disable Control Zonesee above
Enable MIDI note namesNot available: JSFX has no way to name MIDI editor keys. The row is shown greyed out.
GLOBAL tab and a CC lane
GLOBALGLOBAL tab and CC lane. The CC lane sends a rising CC ramp; the CC number is chosen per lane.

13MIDI learn & TEACH CC

Right-click a pattern knob (or the FREE switch, or a step in the bar editor) and choose MIDI learn, then move a controller: the next incoming CC is assigned. Learned CCs control the pattern knobs of the current pattern, step values, master volume, track volume, the rate type, track on/off and hold, and are consumed (not passed on). Unlearn removes an assignment; GLOBAL has CLEAR ALL LEARNED CC. Assignments are saved with the project and presets. CC 120 and CC 123 from the host act as panic.

TEACH CC (CC lanes): sends a slow 0–127–0 triangle on the lane's CC number and the track's OUT channel so you can put the target plug-in into its own learn mode and pick the parameter. Switch it off afterwards.

14Presets & project state

Header of TT-ARPSEQ with the preset bar (previous, name with drop-down, next, SAVE, menu) left of the OPTIONS button, the open preset list with the USER section and the name box of SAVE
PRESETSThe preset bar in the header, directly left of OPTIONS: < name > SAVE .... The name opens the list (FACTORY and USER); SAVE opens the name box.

The bar offers the 36 factory presets and 32 user slots. Loading a factory preset works as before: it replaces tracks, patterns, chord memory and the scale group; MIDI learn, control-zone table, the global app settings and the colour scheme stay, and locked pattern controls keep their values. The control-zone keys assigned to previous / next preset still step through the factory list.

ControlFunction
< / >Previous / next preset: first the 36 factory presets, then the used user slots; wraps around and loads immediately.
Name fieldOpens the list: FACTORY (36 presets) and USER (32 slots, empty ones show - empty -). The mouse wheel scrolls, a click loads. A * behind the name means that the state differs from the loaded preset (the pattern selection of the tracks is not counted, because control zone, program change and the pattern sequencer change it while playing).
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) and DELETE (a second click confirms) for the selected user preset.

What a user preset contains. Everything a factory preset can change, and all of it as it is right now: the four track set-ups (key area, channels, base note, velocity mode, volume, hold, sync, ...), the pattern controls and all lane data of all 12 patterns of all four tracks (values, step switches, loop points, directions), the pattern sequencer chains, the chord memory, and the scale group (scale, key, mode, custom mask, control-zone sync, note release, use-only-ORDER, gate length in steps). Loading a user preset restores this state exactly, including the pattern lock flags. Not part of a preset: master volume, the MIDI learn table, the control-zone key table, the other global app settings (start immediately, semitone transposition, keyboard layout, ...), the selected track and the colour scheme. Loading stops all sounding notes and restarts the lane cursors, like loading a factory preset.

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. Because a slot holds the complete lane data, a full bank makes the project grow: a used slot adds roughly 4–8 KB to the project (the state is stored as its difference to the default pattern), a full bank of 32 slots about 0.2 MB; the plug-in reserves about 18 MB of memory per instance for the 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. While the bar's list or name box is open, the front's own keyboard shortcuts (1-4, q w e ...) are switched off. The window's INFO box shows the description of the loaded preset (for a user preset: its name).

15Timing model

16Automation & parameters

The whole state lives in the plug-in and its saved data. For the host, sixteen hidden parameters exist: TEST ID (diagnostics, keep at 0), MASTER VOLUME, PANIC, per track T1–T4 ON, PATTERN (1–12) and HOLD, and UI Color (colour scheme 0–9, per instance, not part of presets). They follow the panel and can be automated.

17Differences & limits

18Troubleshooting