External control

MIDI control

Play notes and pressure independently from parameter control, then choose high-resolution NRPN, eight page-following CCs, the MNLT direct-CC bank, the dedicated OXI E16 Remote surface or a script-free E16 + Monolit route.

Next-release preview: selectable controller modes, MNLT and Priority Duck control require the local 0.30.0-test.39 or newer build. The published 0.29.1 release predates this controller interface. Check the version shown when takeover opens.

MIDI options at a glance

OptionMessages and channelsBest use
Note inputNotes, note-offs and polyphonic aftertouch on channels 1–4Play parts A–D from keys, pads or a sequencer. This remains active regardless of parameter mode.
NRPN14-bit NRPN on channels 5–8 for A–D; channel 16 for shared controlsFull, stable parameter addressing and two-way feedback.
Generic CCEight consecutive absolute CCs on a configurable channelA small controller that should follow the eight controls visible on Move.
MNLT direct-CC bankChannels 9–12 for A–D; shared controls and commands on channel 13Simultaneous part control from Light Reft Monolit or another multi-control surface.
OXI E16 RemoteDedicated Schwung surface using E16’s display, encoders and RGB ringsReadable pages with formatted names, values and feedback.
E16 NRPN + MNLTE16 native 14-bit aliases on channels 5–6; Monolit direct CC on 9–13One direct USB connection to Move, with Monolit entering E16 over TRS MIDI.
Clock and transportMIDI real-time messagesExternal synchronization; unaffected by parameter-mode selection.

Choose a controller mode

Open Menu → MIDI Control. This shared page appears once in Single, Split, Shared Dual and Quad. Controller messages do not change Move's current editing focus.

DisplaySettingWhat it controls
MODEAutoAccept NRPN, current-page Generic CC and E16 Remote. This is the default.
MODENRPNAccept only the fixed 14-bit parameter map and its scene commands.
MODECCMap eight consecutive absolute CCs to the visible Move parameter page.
MODEMNLTUse the fixed Light Reft Monolit bank and button layout.
MODEE16Accept only OXI E16 Remote parameter control.
MODEN+MAccept fixed NRPN, the script-free E16 native aliases and the MNLT direct-CC bank together.
MODEOffDisable external parameter control.
CCCH1–16Generic CC channel; default 9.
BASE0–120First of eight Generic CC numbers; default 20 for CC 20–27.
TAKEPick / JumpPick waits for an absolute control to meet the stored value. Jump applies it immediately.
MIDI Control is a shared page. It changes external parameter routing without changing the instrument's note and pressure input.

These modes affect parameter messages only. Note input, note-offs, polyphonic aftertouch, clock and transport remain available. The previous hard-coded 7-bit CC assignments are no longer routed, preventing unrelated controller messages from changing sound settings.

Eight-knob Generic CC

Generic CC follows the parameter page shown on Move: its first eight available controls map to eight consecutive CCs. With the defaults, CC 20–27 on channel 9 correspond to knobs 1–8. Change page or engine and the assignments follow the visible controls. A reserved cell does nothing.

Use Pick when changing pages on a controller with absolute knobs or faders. Thru ignores a control until it crosses the current stored value, avoiding a jump. Use Jump when immediate response matters more. Generic CC follows the part and page currently shown on Move.

MIDI channels and CC ranges

Mode or messageChannelCC / dataWhat it controls
Note input1–4Notes, note-offs, polyphonic aftertouchParts A–D according to the current instrument mode.
Safety1–4CC 120 / CC 123All Sound Off / All Notes Off for the addressed part.
NRPN part control5–8CC 99, 98, 6 and 38High-resolution parameters for A–D. The same NRPN address retains its meaning across part channels.
NRPN shared control16CC 99, 98, 6 and 38Mixer, effect returns, Tape, transport, recording, performance loops, chains and fades.
Generic CCCCCH, default 9BASE through BASE + 7; default CC 20–27The first eight available parameters on Move’s visible page.
MNLT part controls9 A / 10 B / 11 C / 12 DCC 16–79Engine, Stack, adaptive engine-detail, Mix/Color and Stereo/Rotary controls. Parts can be changed simultaneously.
MNLT A/B crossfade13CC 24Shared Split or Shared Dual crossfade: 0 = A, 64 = center and 127 = B.
MNLT crossfade curve13CC 25Shared Split or Shared Dual curve: lower region = Linear, upper region = Equal Power.
MNLT Priority Duck13CC 26–33Priority direction/depth, threshold, attack, hold, release, detector HPF, knee and routing.
MNLT shared controls13CC 72–79Performance clip, tempo and pattern-fade controls.
MNLT commands13CC 16–23Stack Hold A–D, clip record, pattern-fade Hold, Panic and one reserved command.
OXI E16 Remote1 while Remote owns the surfaceRelative CC 1–16; notes 0–16 for held encoders and shortcutsThe active E16 Remote page. This transport is reserved while the surface is live.
E16 native aliases5 A / 6 B turns; 14 A / 15 B resetsPrivate NRPN 3456–3551; reset CC 0–95The twelve script-free E16 pages in N+M mode. CC reset presses preserve the active turn address. Destinations follow each part's current engine.
Clock / transportChannel-freeMIDI Clock, Start, Continue and StopExternal tempo and transport synchronization.

Use channel 5 for Single; 5 and 6 for Split or Shared Dual; 5–8 for Quad. Unavailable parts and parameters sent on the wrong control channel are ignored. In Auto or NRPN mode, channels 5–8 and 16 also accept controller commands, so keep note input on channels 1–4.

Changing A or B from an external controller leaves Move’s editing focus and page in place. Move’s visible parameter values refresh when their controls change. External MIDI notes keep the pitches sent by the keyboard; the Move pad scale does not quantize them.

All fixed direct-CC mappings

The two tables below are the complete fixed ordinary-CC receiver map implemented by Thru. Parts use identical CC numbers on separate channels: channel 9 = A, 10 = B, 11 = C and 12 = D. Send A and B controls at the same time without selecting a controller target first.

Set MODE to MNLT, or N+M when Monolit is routed through the script-free E16 scene. The map can be used by Light Reft Monolit or any controller able to send these addresses. Values are absolute 0–127; Pick is the safer takeover setting while testing a layout.

The map defines what Thru receives, not where a control must live physically. Banks C–F are intentionally adaptive: each address follows one knob on the addressed part’s current engine-detail page. This makes them flexible, but their sound function changes when the engine changes.

Banks A–H use the part channels above and CC 16–79. Channel 13 CC 24 controls the shared A/B crossfade, CC 25 selects its curve, CC 26–33 control Priority Duck, and CC 72–79 form the shared Performance bank. An unavailable engine page or part that does not exist in the current instrument mode is ignored.

Monolit Split / Shared Dual example preset

The supplied preset keeps Part A on faders 1–4 and Part B on faders 5–8 wherever the controls are part-specific. Addresses below use channel / CC. ENG controls follow the playback engine selected for that part.

BankFaders 1–4Faders 5–8
1 · LIVEA POS 9/17
A FLD 9/18
A SPD 9/19
A LVL 9/23
B POS 10/17
B FLD 10/18
B SPD 10/19
B LVL 10/23
2 · ENG 1AA ENG 1.1–1.4 9/32–35B ENG 1.1–1.4 10/32–35
3 · ENG 1BA ENG 1.5–1.8 9/36–39B ENG 1.5–1.8 10/36–39
4 · ENG 2AA ENG 2.1–2.4 9/40–43B ENG 2.1–2.4 10/40–43
5 · ENG 2BA ENG 2.5–2.8 9/44–47B ENG 2.5–2.8 10/44–47
6 · MIX / SENDA LVL 9/64
A DLY 9/65
A REV 9/66
X-CURVE 13/25
B LVL 10/64
B DLY 10/65
B REV 10/66
X-FADE 13/24
7 · COLORA TONE 9/68
A DRIVE 9/69
A BITS 9/70
A RATE 9/71
B TONE 10/68
B DRIVE 10/69
B BITS 10/70
B RATE 10/71
8 · ROTARYA X-PN 9/72
A RATE 9/73
A DPTH 9/74
A MIX 9/79
B X-PN 10/72
B RATE 10/73
B DPTH 10/74
B MIX 10/79

Every paired Monolit button remains a local MOTION control; the example does not assign Thru command CCs to those buttons. Download the importable preset or see the complete receiver CSV.

Complete direct-CC fader map

Bank / faderChannelCCDisplayWhat it controls
A19–1216ALGAlgorithm for the addressed part.
A29–1217POSPosition for the addressed part.
A39–1218FLDField for the addressed part.
A49–1219SPDSpeed for the addressed part.
A59–1220STK / LANEStack Start or Lane; meaning follows the current engine and mode.
A69–1221SCAN / ADVStack Rate or Cutups Advance; meaning follows the current engine.
A79–1222JOINJoin for the addressed part.
A89–1223LVL / OUTPart Level or Output, according to instrument mode.
B19–1224PATHStack Path.
B29–1225BLNDStack Blend.
B39–1226SHAPStack Shape.
B49–1227OFFSStack Offset.
B59–1228SKEWStack Skew.
B69–1229CURVStack Curve.
B79–1230SLEWStack Slew.
B89–1231—Reserved; no action.
C19–1232ENG 1.1Engine-detail page 1, knob 1.
C29–1233ENG 1.2Engine-detail page 1, knob 2.
C39–1234ENG 1.3Engine-detail page 1, knob 3.
C49–1235ENG 1.4Engine-detail page 1, knob 4.
C59–1236ENG 1.5Engine-detail page 1, knob 5.
C69–1237ENG 1.6Engine-detail page 1, knob 6.
C79–1238ENG 1.7Engine-detail page 1, knob 7.
C89–1239ENG 1.8Engine-detail page 1, knob 8.
D19–1240ENG 2.1Engine-detail page 2, knob 1.
D29–1241ENG 2.2Engine-detail page 2, knob 2.
D39–1242ENG 2.3Engine-detail page 2, knob 3.
D49–1243ENG 2.4Engine-detail page 2, knob 4.
D59–1244ENG 2.5Engine-detail page 2, knob 5.
D69–1245ENG 2.6Engine-detail page 2, knob 6.
D79–1246ENG 2.7Engine-detail page 2, knob 7.
D89–1247ENG 2.8Engine-detail page 2, knob 8.
E19–1248ENG 3.1Engine-detail page 3, knob 1.
E29–1249ENG 3.2Engine-detail page 3, knob 2.
E39–1250ENG 3.3Engine-detail page 3, knob 3.
E49–1251ENG 3.4Engine-detail page 3, knob 4.
E59–1252ENG 3.5Engine-detail page 3, knob 5.
E69–1253ENG 3.6Engine-detail page 3, knob 6.
E79–1254ENG 3.7Engine-detail page 3, knob 7.
E89–1255ENG 3.8Engine-detail page 3, knob 8.
F19–1256ENG 4.1Engine-detail page 4, knob 1.
F29–1257ENG 4.2Engine-detail page 4, knob 2.
F39–1258ENG 4.3Engine-detail page 4, knob 3.
F49–1259ENG 4.4Engine-detail page 4, knob 4.
F59–1260ENG 4.5Engine-detail page 4, knob 5.
F69–1261ENG 4.6Engine-detail page 4, knob 6.
F79–1262ENG 4.7Engine-detail page 4, knob 7.
F89–1263ENG 4.8Engine-detail page 4, knob 8.
G19–1264LVLPart Level for the addressed part.
G29–1265DLYDelay Send for the addressed part.
G39–1266REVReverb Send for the addressed part.
G49–1267MUTEPart Mute for the addressed part.
G59–1268TONETone for the addressed part.
G69–1269DRIVEDrive for the addressed part.
G79–1270BITSBits for the addressed part.
G89–1271RATERate for the addressed part.
H19–1272X-PNStereo Cross Pan for the addressed part.
H29–1273RATERotary Rate for the addressed part.
H39–1274DPTHRotary Depth for the addressed part.
H49–1275SPRDRotary Spread for the addressed part.
H59–1276RAMPRotary Ramp for the addressed part.
H69–1277BALRotor Balance for the addressed part.
H79–1278XOVRRotary Crossover for the addressed part.
H89–1279MIXRotary Mix for the addressed part.
Crossfade1324X-FADEA/B crossfade in Split or Shared Dual: 0 = A, 64 = center and 127 = B.
Crossfade1325X-CURVEA/B curve in Split or Shared Dual: 0–63 = Linear and 64–127 = Equal Power.
Priority1326PRIOPriority direction and maximum reduction: 0 = A ducks B by 24 dB, 64 = Off and 127 = B ducks A by 24 dB.
Priority1327THRPriority detector threshold, −60–0 dBFS.
Priority1328ATKPriority gain-reduction attack, 1–250 ms.
Priority1329HOLDPriority hold time, 0–1000 ms.
Priority1330RELPriority release, 10–3000 ms.
Priority1331HPFStereo-linked detector high-pass frequency, 20–2000 Hz.
Priority1332KNEESoft-knee width, 0–24 dB.
Priority1333ROUT0–63 = duck Dry only; 64–127 = duck Dry + Sends. Existing effect tails remain open.
Shared 11372CLIP RATEPerformance clip playback rate.
Shared 21373REC MODEPerformance clip record mode.
Shared 31374TIMINGPerformance clip timing.
Shared 41375QUANTLaunch Quantize.
Shared 51376BPMTempo BPM.
Shared 61377SWINGTempo Swing.
Shared 71378FADE TIMEPattern Fade Time.
Shared 81379FADE CURVPattern Fade Curve.

Optional shared command map

ButtonChannelCCWhat it controls
11316Toggle Stack Hold for part A.
21317Toggle Stack Hold for part B.
31318Toggle Stack Hold for part C.
41319Toggle Stack Hold for part D.
51320Toggle performance clip recording.
61321Toggle Pattern Fade Hold.
71322Panic.
81323Reserved for a future global command.

Send these optional commands as momentary 0/127 controls. Thru acts on the nonzero edge, so the release does not repeat the command.

The controller folder includes a downloadable receiver-map CSV and generated Split / Shared Dual example preset for the official Monolit Web-Editor. Each bank places A on faders 1–4 and B on faders 5–8. The eight banks cover LIVE, both halves of ENG 1, both halves of ENG 2, MIX / SEND, COLOR and ROTARY. MIX / SEND places X-CURVE on fader 4 and X-FADE on fader 8. ROTARY keeps per-part X-PN and omits SPRD from the focused preset. All paired buttons remain local Monolit MOTION controls; the example does not use the optional command map above.

E16 NRPN + Monolit · one USB connection

This alternate local setup keeps E16 directly attached to Move and brings Monolit into E16's TRS MIDI input:

Monolit TRS MIDI OUT → E16 TRS MIDI IN → E16 USB-C → Move USB-A

Move powers E16 over USB. Power Monolit separately over USB-C; TRS MIDI does not carry power. Use a type-A-compatible TRS MIDI cable or adapter. E16 sends its own controls and the forwarded Monolit messages to Move through the same USB connection, so no USB hub or direction-switching adapter is involved.

Connection setup

  1. Install the matching 0.30.0-test.39 tarball.
  2. Leave takeover and set Schwung Global Settings → Surfaces → Surface → CC Only.
  3. Before connecting E16 to Move, open Thru and set Menu → MIDI Control → MODE to N+M. Use Pick for safe Monolit fader pickup or Jump for immediate response. The selection is saved.
  4. On E16, select USB1, turn USB Multi Port off and enable MIDI Thru in Conf / Settings → MIDI. OXI documents that an enabled input is echoed to the other MIDI outputs.
  5. Transfer the matching Scenes/THRU NRPN MNLT.oxie16 from controllers/oxi-e16-nrpn with OXI App. Replace an older THRU NM scene rather than retaining the test.38 copy. The E16 scene appears as THRU NM and contains no Lua script.
  6. Load the supplied Monolit preset or a custom channel 9–13 MNLT map. Select THRU NM, connect the devices in the order shown above, then open Thru.

In N+M mode, Thru disables its E16 Remote discovery and ignores Remote handshakes, so the native THRU NM scene remains on the controller. If an older build has already replaced it with Remote, install test.39, disconnect E16, set Surface to CC Only and MODE to N+M, then reconnect and reselect THRU NM.

Updating from test.38: install the test.39-or-newer module and replace the THRU NM scene. The revised scene reserves raw zero for startup synchronization. Thru also repairs the exact saved zero-sweep state—Position 0, minimum Field, Speed and Scan, Join 0 and possibly Level 0—on first load. Individual controls intentionally set to a minimum are not reset.

E16 encoders 1–8 control A and 9–16 control B. Its twelve page positions match Engine, Stack, ENG 1–4, Sends, Color, Rotary, Delay, Reverb and Tape. Shared pages occupy encoders 1–8 once. ENG pages show P1–P8 because a stock scene cannot rename controls as the algorithm changes, but each destination and value follows that part's current engine. Full parameter names, option text and units remain visible on Move. Quick-press an active encoder to return its current parameter to the Thru default. The reset follows adaptive ENG assignments; PRIO returns to neutral Off, XFD to center, levels to unity and effect mixes to dry. A Monolit fader edit is returned to its matching E16 ring before the background page sweep, so the ring follows on the next feedback tick. Monolit remains a 7-bit source with 128 positions; turning E16 itself retains 14-bit resolution.

The scene uses private turn aliases 3456–3551 on channels 5 and 6. Reset presses use CC 0–95 on dedicated channels 14 (A) and 15 (B), preserving E16's selected NRPN turn address without colliding with Monolit on channels 9–13. These controls are not part of Thru's fixed public registry. Thru resolves them dynamically and returns values to E16. This native route controls A/B only and uses fixed ring colors. Use Move or the fixed NRPN registry for Quad C/D.

Rebuild the OXI App bundle with npm run controllers:nrpn:package. It writes dist/s3g-thru-e16-nrpn-monolit.zip and a ready storage folder at dist/e16-nrpn-monolit.

Native scene checks

SymptomWhat it meansWhat to do
Library preview works; pads light and playheads move, but performance audio is silentA test.38 native scene may have saved the Engine page's startup minima.Install test.39 or newer, replace THRU NM, and reopen takeover. Confirm FIELD is full, SPD and SCAN are 1, JOIN is full and LVL is unity.
THRU NM changes to RemoteRemote still owns the E16 connection.Leave takeover, choose Schwung Surface CC Only, set Thru MODE to N+M, select THRU NM and reopen takeover.
Monolit changes Move but not the E16 ringsMIDI reaches Thru, but E16 feedback or MIDI Thru is not configured.Use USB1, USB Multi Port Off and MIDI Thru On; confirm the matching THRU NM scene is selected.

OXI E16 Remote

The local test.39 build retains the script-free THRU RM scene as the more readable alternative. OXI Remote draws a compact name above each formatted value, while Thru retains its high-resolution parameter values internally. Remote is separate from the N+M route above and does not merge Monolit.

Connection setup

  1. Install the matching 0.30.0-test.39 tarball with Schwung Manager.
  2. Leave takeover. Set Schwung Global Settings → Surfaces → Surface → E16.
  3. Use current E16 firmware, USB1, USB Multi Port Off and USB MIDI Thru Off.
  4. Extract dist/s3g-thru-e16-remote.zip, or select dist/e16-remote as OXI App's computer storage folder. Transfer Scenes/THRU REMOTE.oxie16 to an unused slot. No Lua script is attached or required.
  5. Connect E16 USB-C to Move USB-A. Select THRU RM before opening takeover. Remote replaces the blank starter screen automatically.

The official integration is in controllers/oxi-e16. Run npm run controllers:generate and npm run controllers:package to rebuild it. Screen traffic is acknowledged and bounded; headings arrive before a changed page body. Ordinary value changes redraw only their value and ring. Engine changes preserve common cells, the other part and effects.

Parts and modes

A/C occupies the first two encoder rows, 1–8; B/D occupies the last two, 9–16. Single uses A; Split and Shared Dual use A/B. In Quad, hold E16 Shift and press encoder 1 to switch A/B ↔ C/D. Shared SENDS always shows all four parts. E16 edits leave Move's current part and page selected.

Remote RGB rings use neutral A, teal Split B, plum Shared Dual B, yellow Quad C and plum D. Shared returns use purple. Inactive and reserved controls stay dark.

Page navigation

Hold E16 Shift, the round button inside the OXI O, and turn encoder 1 to move backward or forward. For direct access, press Shift + encoder 2 to open PAGE JUMP, release Shift, then press encoder 1–12 under the page name you want. The current page reads CURRENT; encoder 16 cancels. Page Jump consumes turns while open, so it cannot accidentally edit a hidden sound parameter. All twelve page positions stay fixed. An unused page remains in place with reserved squares and dark rings; one instrument can use a page while the other half stays blank.

PageDisplayKnobWhat it controls
1ENGINE1–8 A/C; 9–16 B/DALG, POS, FLD, SPD, STK/LANE, SCAN/ADV, JOIN and LVL/OUT.
2STACK1–8 A/C; 9–16 B/DPath, Blend, Shape, Offset, Skew, Curve and Slew. Blank in Quad and for engines without Stack controls.
3–6ENG 1–41–8 A/C; 9–16 B/DEngine-specific controls in Move's order; Motion reveals its Packets, Motor or Event pages.
7SENDS1–8, onceDual A/B sends, Priority direction/depth and threshold, curve and Blend; Quad A–D sends. Blank in Single.
8COLOR1–8 A/C; 9–16 B/DTone, Drive, Bits and Rate.
9ROTARY1–8 A/C; 9–16 B/DStereo Cross Pan and seven Rotary controls.
10DELAY1–8, onceTime, Feedback, Width and MIX.
11REVERB1–8, onceAlgorithm, Decay, Pre-delay, Damping, Diffusion, Modulation, Width and MIX.
12TAPE1–8, onceFormat, Record level, Age, Crinkle, Mechanics, Inertia, Hiss and MIX.

Shared returns occupy the top eight controls once. SENDS does not duplicate return MIX. Blank controls show a small reserved square. Pads & Scale, envelopes, Engine Lists, Path Editor points, browsing, recording, loops and chains remain on Move; open its page chooser with Capture + Menu.

Values and feedback

Remote uses a compact 3×5 display font. Each cell places its abbreviated parameter name above a readable choice, percentage, ratio, millisecond, second, hertz or semitone value. Bipolar controls use centered rings.

Hold an encoder while turning for fine continuous adjustment. Choice controls advance one option per turn. Shift turns do not edit sound parameters. Move edits and clip recalls update the visible E16 page.

Remote sends relative turns, while Thru retains its full parameter precision. Ordinary NRPN feedback pauses while Remote owns the surface and resumes after it disconnects.

Connection checks

Display or symptomWhat it meansWhat to do
THRU RM–REMOTE remainsThe starter scene is loaded, but Remote did not take ownership.Check test.39, USB1 and Schwung Surface E16; select THRU RM and reopen takeover.
E16 RECONNECTINGA display patch was rejected or its acknowledgement was lost.Thru retries automatically. If the display stays frozen, reconnect USB without closing takeover.
Reserved square; dark ringThe current engine or mode does not use that control.Select a relevant page or Quad pair.

Press Shift + Menu on Move and select E16 Link 5/5. STATE reports LIVE, SEARCH, WAIT CLEAR, RECONNECT or OFF. LAST retains the most recent transport issue. ACK/NACK and RETRY/RECON show display confirmations and recovery attempts. PENDING PX is unacknowledged display work against its 320-pixel window; these are not audio-load measurements.

High-resolution NRPN map

Thru provides 342 fixed NRPN addresses for playback, engines, effects, recording and performance. Channels 5–8 address parts A–D; channel 16 addresses shared controls. Each address keeps the same meaning when engines or pages change.

Use the downloadable complete NRPN CSV for every address, CC 99/98 selector byte, channel, range, curve and action flag. The MIDI reference folder also contains the source registry.

Engine List, Voice Setup, Stochastic and Pulsar mappings are included in the same CSV rather than repeated as separate manual sections.

Send CC 99 and 98 to select an address, followed by CC 6 and 38 for its 14-bit value. Configure two-way feedback without retransmitting received values. Ordinary NRPN feedback pauses while THRU RM owns the E16 surface and resumes after it disconnects.

Note input also accepts All Sound Off (CC 120) and All Notes Off (CC 123) on channels 1–4.