MCU_MIDI_COM : Advanced controll tool for MIDI mapping update

Will any of you appreciate this tool for fully utilizing the Panorama Nektar T4 and T6 keyboards?


The target will be to switch Instrument and Load Host Automation map … and everything will be remapped in Nektar T4, T6 according to the settings for the given instrument. Or driving mode Track DSP select TRACK and every DSP parametr list in Renoise per track for mapping.

with feedback on the display when the button is activated … the name of the assigned parameter is displayed on display Nektar T4,T6

What I already have ready:

Fader Mode

  1. Mixer : Volume tracks (8 + Master)
  2. …. see later

Encoder Mode

Track DSP : for ENC 1-8 Control DSP devices on a track use list from Renoise Track Automation Editor Pane

Instrument : for ENC 1-8 load One Instrument Host Automation (One NECTAR for One Instrument)

Master 1 / 2 / 3 : For ENC 1-8 Advanced mapping across tracks use list from Renoise Track Automation Editor Pane, separate presets for ENC 1-8 can be set individually from all tracks in the song.
The track is loaded automatically when the ENC x button is activated, then click on the track, or manually select from the popup menu.

1. Two Independent Layers (Dual Mode)

Layer Controls Responsibility
Fader Mode Faders 1–9, Buttons 1–9 Mixing, Transport
Encoder Mode Encoders 1–8 Track parameters, DSP, instruments, Master mapping

Fader Modes

Mode What the faders do
Mixer Volume of 8 tracks + Master Volume. Banking shifts the track range.
Transport Faders control I’m not thinking about it yet. (only the display shows BPM, time, etc.)
  • Buttons (Mute/Active) work only in Mixer mode.

3. Encoder Modes

Mode What the encoders do
Track DSP Each encoder = selection of a DSP device on the selected track + parameter.
Instrument Each encoder = Host Automation parameter of the selected instrument.
Master 1 / 2 / 3 Each encoder = any track (independent of the selected one) + its DSP device + parameter.

4. Nektar Banks

  • Each bank remembers which Fader Mode and Encoder Mode were last active (bank_modes[bank_index]).

  • Each bank remembers which Fader Mode and Encoder Mode were last active (bank_modes[bank_index]).

  • Switching banks automatically restores the saved modes, but encoder data/mappings remain according to the chosen Encoder Mode (Track DSP cache is bound to the selected track, Instrument cache to the selected instrument).

5. Master Bank Matrix (new from v0.51.0)

For Master 1/2/3 there is a second banking dimension:

Bank 1 Bank 2 Bank 3
Master 1 8 independent mappings 8 independent mappings 8 independent mappings
Master 2 8 independent mappings 8 independent mappings 8 independent mappings
Master 3 8 independent mappings 8 independent mappings 8 independent mappings

Each cell (Bank × Master preset) has independent assignments – which encoder controls which track, device, and parameter.

Hardware Shortcuts

Button Function
F1 (Note 0x36) Fader Mode → Mixer ( support Renoise Track Automation edit pane : Mixer, #Send, #Multiband Send, #Sidechain, #ILine Input )
F2 (Note 0x37) Encoder Mode → Instrument = 8 enc to one Instrument, when change Instrument change encoder map
F3 (Note 0x38) Encoder Mode → Track DSP - 8 enc to one Track, when change Track change encoder map
F4 (Note 0x39) Cycle Master 1 → 2 → 3 → 1 … preset global for all track TAEP {Track Automation Edit Pane DSP)
Bank < / > (Notes 0x2E/0x2F) Shift bank 1 - 2 - 3 = all preset x 3
  • F1 - F4 - function buttons under display Nectar

The biggest challenge is the SysEx header 0xF0, 0x00, 0x00, 0x66, 0x14, 0x12 for communication with the Nektar LCD display. This is the imaginary holy grail. A function that translates a text string into a byte array (up to 56 characters) and sends it straight to the port.

Navigation matrix (F1–F4) under display: In the build_registry section, exactly at notes 0x36 to 0x39. You beautifully hung callbacks on them for switching modes (fader_mixer, instrument, track_dsp, master_cycle).

Event-Driven Architecture: An array for managing observers (OBS and GOBS) and using notifiers like value_observable or selected_track_observable is the best solution in terms of CPU optimization. The script does not “polling” the program state for nothing, but reacts strictly only to a change in state.

14-bit fader mapping: Nektar sends faders via Pitch Bend messages (0xDF+i). I parse the LSB and MSB bytes (m[2] and m[3]) there directly into an exact 14-bit resolution divided by 16383. This guarantees a maximally smooth volume step without the “staircase” that regular MIDI does with values ​​0-127.

Nektar users are certainly familiar with the experience with Wrapper Nektarin, it is death for large vst instruments… such as Omnisphere 2.3… that’s why I’m trying this project… natively vst in Renoise… and just sending midi mapping to Nektar, along with display text

work continues successfully…

I managed to fully utilize the Panorama MCU architecture in MIXER mode in a pure Lua script for Renoise (I got Pitch Bend fader fineness and captured Note messages for MCU LED feedback and encoders), completely natively without using the Nektarine wrapper!
Unfortunately, the display is still magically locked:

  1. Nektarine uses a graphical, not a text protocol
    Projects on GitHub have successfully reverse-analyzed controllers from Arturia, Akai, or Korg, because their character displays use simple ASCII tables. However, the Nektar Panorama (T4/T6 and P4/P6) has a graphical display. Their wrapper (Nektarine) does not send text like “Boost this parameter” to the keys. It sends proprietary data packets with bitmaps, pixel drawing coordinates, or instructions for the firmware’s internal graphics engine (drawing those iconic graphs and value indicators). No one in the world has cracked Nektarine enough to map this graphical USB protocol yet.

  2. Fake MCU display
    The moment I sent that sysex F0 00 00 66 14 12… , Nektar knew I was speaking to it in standard Mackie Control (MCU) language (which normally works with two-line character displays). The T6 firmware then tried to “map” these texts to its graphic display.
    But as soon as you touch the encoder, the internal hardware function of the keys (Local Control) is triggered. Nektar thinks: “Ah, he’s turning encoder #1, that’s the MCU Pan protocol, I’ll draw PAN LEFT there.” It will immediately discard your text packet from Renoise, because the internal graphic engine has absolute priority.
    When calling GUI Show (you can also map the call from a keyboard shortcut, or MIDI mapping Renoise - for my standard tools, you can find it in the Tools / Zorgan / Panorama MCU MIDI Controll directory … the service starts … mapping is already working on a complete assignment of almost everything that the Renoise API provides … In the future I will add more MIDI control buttons … and switching via MIDI buttons … mapping modes …
    In tools you set your MIDI virtual MIDI port that you have set in Panorama for Mixer (1-4) usually 2, and in Renoise you set for Panorama its MIDI port 1 = keys and pitchband, modwheel.
    Therefore, you do not have to drag more complex VST instruments through Nektarin Wrapper and they run natively in Renoise. Which is the whole advantage and the reason why I created this tool.

  3. The tool saves the MIDI device and the selected profile in preference.xml , you can change the MIDI mapping track MIDI learn (for experimental purposes only) it is saved in the song. But you just need to click on the PROF MCU button … and the MIDI mapping in the Panorama Nektarin MCU profile is automatically loaded for all ENC, FAD, BUT.

Another plan, I created a communication space between the HYDRA SANITI tool, which can draw very well into the automation graph, and this tool. = If you run HYDRA SANITY, it will recognize that you have the MCU COM PANORAMA tool running and will add ENCODERS from PANORAMA natively so that you can write into the automation graph with endless encoders 1-8 from Panorama HW. It will add them as separate lines with a volume meter, where you can use ARP, IRON.

The best direction is already clear: we will not go the “new writer for Panorama” route. The correct thing to do is to create a virtual d_key for PANORAMA_E# and run it through the same state engine as HYDRA, just with a different target parameter resolver.

Work continues successfully, implementation of the connection of the HYDRA SANITY line with the MCU_Panorama tool, two-way communication …

  1. adding the ENC1-8 line to HYDRA SANITY, will allow you to write and overwrite the automation graph even during playback or record play …
  2. In the MCU_Panorama tool, the buttons can be switched to ARM ON / OFF mode … if you select ARM mode for the button automatically assigned ENC1-8 mapping… you don’t have to worry.
  3. If you turn off REC_ON in HYDRA_SANITY on the Panorama line … it will be automatically removed from HYDRA_SANITY, the same thing. If you click on the W.A. button in the MCU_Panorama tool in the GUI at ENCx, the connection with the HYDRA_SANITY tool will be disconnected. vice versa 2. click will establish the connection again and activate the HYDRA line Panorama_ENCx
  4. when moving the ENC, its automation graph is automatically activated. This will make working with multiple automation graphs clearer.

Finalizing MIXER mod … I continue in INTERNAL mode Panorama T
I’m fine-tuning the MIXER mode in MCU mode with Panorama T, I also got the LED play, rec, repeat, track ±, Bank ± buttons working, but I’ve lost hope of getting the button LED under FADs working. MIXER mod is full of sysex communication. Mixer mode is fast settings preset MIDI mapping.
I’m switching to the 2nd mod MCU_COM_Panorama to Internal mode
MIDI Learn Mapping is already done.
On Panorama T, manually set in SETUP MENU / Controll Editor:
ENC to MSG TYPE: MIDI CC REL, and buttons 1-8 under FADs to MSG TYPE MIDI CC and FADs 1-9 set MSG TYPE to PITCH mode (pitchband) 14bit. support (set MIDI ch 1-9 , no GLOBAL) So that everything works as it should and HYDRA automation works smoothly.
In principle, MCU_COM_Panorama is already ready for drawing automation, everything works with the connection of HW control ARM, MUTE, Select track, switch to graph automation. Thanks to endless ENC and HYDRA SANITY, you can play and at the same time tune the automation graph, without any signs of problems in the sound output.
I created a lot of sysex sequences, I read info from MIDI, but Nektarine kept it hidden for itself.
Hopefully everything will be successful in internal mode.
Once the work on the INTERNAL mode of MCU_COM_Panorama is finished, I will put it in the download tool.

News in the development of tools …
If you have your Nektar Panorama Tx in MCU MIXER mode… you do not need to map MID
In INTERNAL mode you need to map your current preset

Button 1-8 (B1-B8) PAGEs ARM , MUTE, SOLO, USER

mode Buttons ARM
Buttons Learn support MIDI CC NOTE mode, MIDI CC Toggle mode … respect LED On/Off
synchronization of toggle button On / Off state and LED On /Off can be done simply by clicking on the small button B1 - B8 … so that LED Off state = Button Off
B1 - B8 in ARM mode … transmit a message to the HYDRA SANITY tool for ARM ON / Off mode
Activating the addition of an Encoder to Hydra is simple: for ENC 1-8, activate the W.A. (Write Automation) button
In HYDRA SANITY, the ENC with W.A. active will appear on the next line, you can write to the graph.
If you turn off REC ON in HYDRA SANITY by clicking, ENC x will disconnect from HYDRA SANITY.
The track at Bx (1-8) is linked to the track in which the DSP effect set at ENCx (1-8) is active, so the automatic switching in Renoise to the automation graph works, as is standard with HYDRA SANITY. When moving the ENC, its automation graph is automatically displayed.

—————————————————————————————————————————————————-
FADERs PAGE
FADERs support two MIDI input types:
PB = Pitch Bend absolute fader, high-resolution 0–16383.
CC = MIDI CC absolute fader, standard 0–127.

Mixer mode:
FAD1–FAD9 follow the current track bank and control Mixer Volume.

FADER mode:
Each FAD slot can be assigned to a selected track, DSP/send device and automatable parameter.
Buttons Page B1–B8 inherit their target tracks from FAD1–FAD8.

—————————————————————————————————————————————————-
ENCODERs PAGE

Use relative MIDI CC control.
MCU mode uses MCU relative encoder data. ( Panorama mode MIXER MCU )
Panorama INTERNAL mode learns DEC_REL encoders by detecting both directions.
When setting up MIDI Learn on the instrument, you must turn both directions for MIDI Learn to complete.

Track DSP mode:
E1–E8 control selected DSP parameters on one selected track.
This type of ENC mapping is suitable if you use a large number of DSP and parameters, it remembers the mapping for each TRACK. When switching tracks in Renoise, it automatically remaps ENC1-8 to your DSP settings for all parameters. This means I will have 10 tracks … in each 8 DSP parameters = in Renoise I switch a MIDI ENC track I immediately have the current settings mapped for that track.
Track 01 → ENC1–ENC8 = 8 vlastních DSP parametrů
Track 02 → ENC1–ENC8 = jiných 8 DSP parametrů
Track 03 → ENC1–ENC8 = jiných 8 DSP parametrů

Track 10 → ENC1–ENC8 = jiných 8 DSP parametrů

Instrument mode:
E1–E8 control selected host automation parameters of the selected instrument. the LOAD Automation button is used for this, it loads your automation into all ENCs 1-8 one after the other
If I switch to another instrument in Renoise, the faders for the parameters of the selected instrument are automatically remapped.

Master 1–3 modes:
E1–E8 can be assigned independently to any track, DSP/send device and automatable parameter.
One surface for the entire song. 3 surfaces MASTER 1, MASTER2, MASTER3 supported simultaneously

W.A.:
Each encoder has its own W.A. switch. When W.A. is ON, encoder movement is published to HYDRA SANITY as PANORAMA_WRITE data for automation capture.

Full MIDI mapping support x 3 banks

I’m releasing version 0.6 beta.

Next work:

  1. Connect IPC channel to OSC. Communication channel between Zorgan Tools
  • I’m also using the 1st line of Renoise song comments mailbox IPC. If there is a comment on the first line of the song, I automatically move it to the next line, I don’t delete it.
  1. Testing and fixes
  2. Adding support for MIDI mapping control buttons for switching modes and modes in tools, including support for play rec stop repeat

MCU COM Panorama controll v0.64**

originally conceived for the Nektar Panorama P T becomes a universal multi MIDI mapping center for 8 encoders, 8 faders, 8 buttons + control buttons**
The original vision of creating a multi mapping center is, thanks to the implementation of INTERNAL mode in the MCU MIDI mode … becoming a sophisticated system that unifies instant multi mapping of 8 encoders, 8 faders and 8 buttons.
With the help of the Hydra 8 ENC tool, you get the ability to draw realtime through playback into hydra automation graphs. With the help of this tool, you are no longer just fixed to the HYDRA input, which automatically creates a line in Hydra Sanity for working with the auto. graph. You can transfer your own extended mapping immediately, by switching instrument or track, but at the same time use the capabilities of Hydra Sanity.

I have recently added a Setup controll window where the control buttons are available.
SETUP CONTROLL PAGE
The HS button activates the connection with the tool H.S. , that is, the PLAY, REC, STOP, and REPEAT buttons instead of performing their simple function are sent to H.S. as an IPC command and the tool H.S. only uses them in its system: PLAY REC NOTE&Automation, PLAY REC Automation, PLAY safe and DEL active track x on pattern y & goto row 00.
in H.S. these buttons are connected in a radio style. That means I switch the PLAY REC N&A button to PLAY REC Automation and they switch to the mode without pause, after pressing the button again, only PAUSE comes.

ENCODER PAGE
W.A. button means yes I want to link this ENCODER and its DSP parameter with HYDRA SANITY.
LCK button means lock in H.S. and do not disconnect when pressing REC ON to REC OFF. When LCK is active REC ON, REC OFF works in H.S. in the standard way as for HYDRA automation line.

HYDRA SANITY PAGE in slim mode / full mode GUI
For clarity for those who do not use an external secondary MIDI controller, a “hide H” button has been added, allowing you to keep only the lines from the MCU_COM_Panorama tool …

I have tested both the H.S. and MCU_COM_Panorama tools and they work together smoothly and the writing to the graph is smooth and clean even with audio output operation.
You can still draw the automation graph with a pencil in Renoise, and even record it simultaneously with ENC, the H.S. IRON function is able to iron out the graph so that it sounds dynamically clean in the audio output.

The work on MCU_COM_Panorama finally convinced me to continue, because it will become a universal tool. It can already recognize types ENC, DEC REL, pitchband fader, buttons value >0 , 0 .

Change log v0.63

  • transition of IPC event to OSC server, client for MIDI comunication over H.S. tool and MCU_COM_Panorama tool, H_S server, MCU?_COM client … send & reciever, basic event with flags
    ( also needed for the “Linking to Graph” function )
  • adding support for ENC mode : ENC absolute, ENC REL, DEC REL for writing HYDRA SANTIY graph
  • fix tool when 1. run save state for W.A. and LCK in ENC
  • dafault state on in mode INTERNAL
  • fix for inteligent reshresh prarameter and name DSP, name Tracks, name instrumets
  • fix buttons 1-8 in ARM mode are connected with ENC 1-8 for ARM function in HYDRA SANITY
  • better diagnostic data view ( cache 1000 row ) GUI one row actual last message

I run the tool … MCU_COM_Panorama tool v0.63 and HYDRA_SANITY v8.31

———————– next test and 1 hour later working —-

  • Fix for MCU_COM v0.64
    If the old server/client handle remains non-zero after reload, the start function returns “OK”, but the socket is not physically reopened. This corresponds exactly to: OSC looks on, but data is not flowing; since write fallback is off, linking to graph then has no alternative path

  • Callback is not wrapped in pcall() - with socket callback via Renoise C++ layer it is a risk

  • fix for low cost usage CPU with GUI view

  • full transfer IPC of all communication via OSC

  • disconnecting some diagnostic outputs that are important to me and are no longer needed. This will again rapidly reduce CPU cost.

  • parameter filling validation

  • conversion old of heavy cmd into small flags for OSC ..now 1 answer and command = complete sentence with main stream following it control flags

  • removing the old maras, everything I could disconnect was gone

  • activating the BANK 1-3 function saves the W.A. and LCK states for quick switching according to the mapped control buttons in SETUP CONTROLL BUTTONs
    So BANK is not just a set of mappings, but the entire active controller context.

    web page support here

Send me report, bug

MCU MIDI COM — Resurection

v0.74 Change log

Compact GUI 4 / GUI 8 Layout and Live #DSP Refresh

  • Added mutually exclusive GUI 4 and GUI 8 controls after SETUP CONTROLL TOOL.
  • GUI 4 shows and enables only ENC1–4, FAD1–4 and BTN1–4.
  • ENC5–8, FAD5–8 and BTN5–8 are hidden and excluded from MIDI input, MCU feedback and active W.A. control while GUI 4 is selected.
  • Existing MIDI Learn assignments, BANK 1–3 configuration, targets and stored W.A./LCK states for slots 5–8 are preserved.
  • Returning to GUI 8 restores the complete ENC1–8, FAD1–8 and BTN1–8 layout and reactivates the preserved mappings.
  • FAD9 / Master remains visible and active in both layouts.
  • The selected GUI layout is stored in preferences. Existing configurations default to GUI 8.
  • Pending MIDI Learn or encoder-write activity for hidden slots is safely cancelled when switching to GUI 4.

Compact upper control panel

  • Removed the obsolete DUAL MODE PAGE label.
  • Removed the manual SAVE Mapping and LOAD Mapping buttons from the GUI.
  • Automatic load, automatic save and the final silent STOP ENGINE save remain active.
  • Reduced the spacing between BANK controls and Fader Mode.
  • Reduced the width of the Fader Mode and Encoder Mode selectors.
  • GUI 4 uses a narrower main panel layout.

FADER #DSP workflow

  • Renamed FADER mode to FADER #DSP ONLY to clearly identify its target scope.
  • Selecting a track now rebuilds its Device and Parameter lists from the current Renoise DSP chain in the correct order.
  • Tracks without an assignable #DSP safely show -- for both Device and Parameter.
  • Added targeted live refresh for insertion, removal, movement and renaming of DSP devices on tracks assigned to FADER slots.
  • A DSP renamed with the # prefix becomes available immediately without switching to another track and back.
  • Existing valid Device and Parameter selections are preserved by Renoise object identity when the DSP list changes.
  • Removed targets safely return to --.
  • Fixed the AudioDevice / DeviceParameter identity crash by replacing unsupported == comparisons with rawequal().
  • Fixed invalid BUTTONS Device and Parameter popup indices after switching between tracks with different target counts.

Architecture and compatibility

  • Uses the existing mapping, cache, observable lifecycle and persistence authorities.
  • No parallel four-slot mapping model, timer or duplicate persistence path was added.
  • Existing BANK 1–3 mappings remain compatible.
  • Compatible with HYDRA SANITY v8.85.

v0.70 — Mixer Mapping, Persistent Reset and State-Safe Persistence

FADER Mixer mode

  • Added per-fader Renoise Mixer parameter selection.
  • Existing songs without a saved Mixer parameter selection default to Volume.
  • Learned MIDI CC faders use the corrected inverted direction expected by the Renoise automation graph.
  • Pitch Bend fader direction remains unchanged.

Mapping reset

  • The R control now clears CC, Note and Pitch Bend assignments without restoring a default MCU assignment.
  • A reset mapping remains disabled after STOP / START and after reopening the song.
  • Any cleared control can be assigned again with L.

Persistence and lifecycle safety

  • Complete MCU MIDI COM state is saved automatically with the song.
  • STOP ENGINE performs one final silent save before runtime teardown.
  • New-document lifecycle skips saving against the new song, preventing mappings from the previous song from contaminating it.
  • Automatic loading restores saved mappings and controller state without requiring manual LOAD Mapping.

Compatibility

  • Existing BANK 1–3 configurations remain compatible.
  • with HYDRA SANITY v8.85 update is required.


MCU MIDI COM v0.74

Universal MIDI Learn and hardware-control bridge for Renoise

MCU MIDI COM turns a compatible MIDI hardware controller into a configurable control surface for Renoise. It provides dedicated encoder, fader and button pages, three target-mapping banks, universal MIDI Learn, automatic song-based mapping persistence and optional realtime cooperation with HYDRA SANITY.

The tool was originally developed for the Nektar Panorama T4 and T6. Its MCU MIXER profile remains optimized for the Panorama MCU layout, but the INTERNAL profile and universal MIDI Learn also allow other MIDI controllers, including Arturia devices, to be used.

The current release was developed and tested with Renoise 3.5.4 and Lua API 6.2.

Quick Start

  1. Open MCU MIDI COM from the Renoise Tools menu. Opening the GUI also starts the engine.
  2. Press Show MIDI Setup if the MIDI port panel is hidden.
  3. Select the hardware control input in P2 CTRL. Select its output as well when MIDI LED feedback is required.
  4. Choose MCU MIXER for a compatible MCU layout, or INTERNAL for a standard MIDI controller that will use MIDI Learn.
  5. Press Show MIDI LEARN and learn the required ENC, FAD and BTN slots.
  6. Select GUI 4 or GUI 8.
  7. Choose a Fader Mode, an Encoder Mode and a target BANK.
  8. Use STOP ENGINE before closing a completed session. It performs the final silent mapping save.

MCU MIDI COM loads the saved song mapping automatically when the engine starts. Manual SAVE Mapping and LOAD Mapping buttons are no longer required.


1. Introduction

MCU MIDI COM separates physical MIDI hardware from Renoise targets.

The physical layer determines which MIDI message controls ENC1–8, FAD1–9, BTN1–8 and the additional control buttons. The target layer determines which Renoise track, DSP, instrument parameter or action is controlled by each slot.

This separation makes it possible to:

  • use one controller with several Renoise target layouts;
  • change targets without re-learning the hardware;
  • keep three independent BANK 1–3 configurations;
  • use either the prepared Panorama MCU layout or a custom MIDI controller;
  • connect encoder automation to HYDRA SANITY without giving HYDRA SANITY direct ownership of the same hardware port.

The main control groups are:

Group Purpose
ENC1–8 Control Track DSP, Instrument or Master-page parameters.
FAD1–9 Control Renoise Mixer parameters or explicitly selected #DSP parameters.
BTN1–8 Control USER parameters, MUTE, SOLO or HYDRA SANITY ARM states.
SETUP CONTROLL TOOL Learn additional Panorama-style navigation and transport buttons.

2. Basic MIDI Hardware Setup — Show MIDI Setup

Press Show MIDI Setup to display the three MIDI port roles. The button changes to Hide MIDI Setup while the panel is visible.

MIDI port roles

GUI port Intended role Typical use
P1 PERF Performance input Keyboard, pads, Pitch Bend and Mod Wheel handled through the normal Renoise MIDI input configuration.
P2 CTRL MCU MIDI COM control port Encoders, faders, buttons, transport messages and MIDI feedback owned directly by MCU MIDI COM.
P3 BRG Optional external bridge A separate external MIDI bridge or Nektarine-style connection. Leave it at None when unused.

The Nektar Panorama exposes several USB MIDI endpoints. MCU MIDI COM supports the Nektar MIDI device/port 1–3 arrangement by keeping performance, controller and bridge traffic in separate roles.

Panorama T4/T6 in MCU MIXER mode

For the prepared Panorama MCU profile:

  • put the Panorama into its physical MIXER / MCU-compatible mode;
  • route the controller endpoint to USB port 2 on the Panorama;
  • select MIDIIN2 (PANORAMA T4/T6) as P2 CTRL input;
  • select MIDIOUT2 (PANORAMA T4/T6) as P2 CTRL output when button LED feedback is required.

The exact device name can vary slightly with the operating system and driver.

Standard MIDI controller mode

When the connected hardware is used only as a MIDI controller, its control data must be assigned to P2 CTRL.

Example for Arturia:

  • select the Arturia MIDI input as P2 CTRL input;
  • select the Arturia MIDI output as P2 CTRL output only if the device supports feedback that matches the active mapping;
  • press INTERNAL;
  • use Show MIDI LEARN to assign the Arturia controls to ENC, FAD and BTN slots.

The same procedure applies to other standard MIDI controllers.

P1 PERF is intentionally reserved for Renoise-native performance input. MCU MIDI COM stores the selected P1 name but does not open P1 as a second direct controller input. This avoids mixing note-performance traffic with the control-surface path.

MIDI device selections are stored in the tool preferences. If a device is changed while the engine is running, the corresponding P2 or P3 port is rebound immediately.


3. Universal MIDI Learn — Show MIDI LEARN

Press Show MIDI LEARN to display the Learn row above each ENC, FAD and BTN control. Hiding the Learn rows does not disable or delete their assignments.

Each Learn row contains:

Control Meaning
L Start MIDI Learn for this slot. While waiting, it changes to W.
R Reset only this MIDI assignment to the persistent disabled value -1.
Number Learned CC number, Note number or Pitch Bend type.
Channel Learned MIDI channel and input-port reference.
Mode Detected encoder interpretation where applicable.

Learning an encoder

  1. Select INTERNAL when learning a standard MIDI controller.
  2. Press L for the required ENC slot.
  3. Move the encoder in both directions.

For a relative encoder, MIDI Learn waits until it detects both directions on the same CC, channel and port. The supported INTERNAL relative range is:

  • increase: values 1–20;
  • decrease: values 107–127.

An absolute CC encoder is recognized when the movement reaches values inside 21–106. The detected mode is stored with the mapping, so a relative encoder is not treated as an absolute knob later.

Learning a fader

FAD Learn accepts:

  • absolute MIDI CC;
  • 14-bit Pitch Bend.

Learned absolute CC faders use the inverted direction required by the Renoise automation-graph orientation. Pitch Bend faders keep their native direction.

Learning a button

BTN Learn accepts CC and Note messages. It automatically distinguishes the common behaviors:

  • a release received within one second is stored as momentary;
  • no release within one second is stored as toggle;
  • an initial value 0 is treated as a toggle-style message;
  • Note On/Note Off is stored as a Note button.

Reset and persistence

R disables the selected assignment without restoring an MCU default. The reset survives STOP ENGINE, a later START ENGINE and reopening the song. Press L to learn the slot again.

ENC/FAD/BTN mappings are stored with the song. Additional SETUP CONTROLL TOOL mappings and MIDI-port preferences are stored in the tool preferences.


4. INTERNAL and MCU Compatibility

MCU MIXER and INTERNAL are hardware-mapping banks. They are independent from target BANK 1–3.

MCU MIXER

MCU MIXER writes the prepared MCU-compatible layout into the MIXER hardware bank:

Hardware control Default MIDI assignment
ENC1–8 CC 16–23, Channel 1, MCU relative interpretation
FAD1–9 Pitch Bend, Channels 1–9
BTN1–8 Notes 16–23, Channel 1
Cycle CC 86
Rewind CC 91
Fast Forward CC 92
Stop CC 93
Play CC 94
Record CC 95

This profile is intended for the Panorama T4/T6 physical MIXER mode and controllers with the same MCU message layout. It also provides compatible Note LED feedback through P2 CTRL OUT.

Pressing MCU MIXER rewrites the MIXER hardware bank with these defaults. Use it deliberately if custom assignments already exist in that bank.

INTERNAL

INTERNAL activates the customizable standard-MIDI hardware bank. Its initial prepared assignments are:

Hardware control Initial INTERNAL assignment
ENC1–8 CC 11–18, relative
FAD1–9 Pitch Bend, Channels 1–9
BTN1–8 CC 21–28
First six control buttons CC 29–34

These values are starting points, not a restriction. Universal MIDI Learn can replace them with messages from Arturia or another MIDI controller.

The last selected hardware bank is remembered. Switching between MCU MIXER and INTERNAL changes the active hardware interpretation; it does not erase the Renoise targets stored in BANK 1–3.


5. GUI 4 and GUI 8

The two GUI buttons select how many main hardware slots are visible and active.

Mode Visible and active controls
GUI 4 ENC1–4, FAD1–4 and BTN1–4
GUI 8 ENC1–8, FAD1–8 and BTN1–8

FAD9 / the Master fader lane remains visible and active in both layouts.

GUI 4 is an operational mode, not only a visual resize. While it is active, slots 5–8:

  • do not receive MIDI control messages;
  • do not keep active Renoise parameter observables;
  • do not send MCU button feedback;
  • do not keep active W.A. communication with HYDRA SANITY;
  • cancel a pending Learn or encoder-write event that belongs to a hidden slot.

Their learned MIDI messages, target assignments, BANK 1–3 data and stored W.A./LCK states remain in memory. Returning to GUI 8 reactivates the preserved configuration.

The selected GUI size is stored in preferences. Existing configurations default to GUI 8.


6. BANK 1–3

BANK 1, BANK 2 and BANK 3 are independent Renoise target profiles. Use < BANK and BANK > to move between them.

Each bank can preserve its own:

  • Fader Mode and Encoder Mode;
  • Mixer and FADER #DSP ONLY target selections;
  • Track DSP mapping;
  • Instrument-slot mapping;
  • Master 1–3 mappings;
  • Buttons Mode and USER targets;
  • W.A. and LCK states.

In Mixer Fader Mode, changing the bank also moves the fader track range by eight tracks. In custom target modes, each bank restores its explicitly stored track, device and parameter selections.

When changing banks, MCU MIDI COM safely detaches the outgoing HYDRA SANITY W.A. state, restores the next bank and then attaches the active targets from that bank. This prevents one bank from leaving a parallel automation owner behind.

Important distinction:

  • MCU MIXER / INTERNAL selects the physical MIDI message map.
  • BANK 1–3 selects the Renoise target map.

The same learned hardware can therefore operate three completely different Renoise layouts.


7. Fader Modes

The Fader Mode menu contains Mixer, FADER #DSP ONLY and Clear Current.

Mixer

Mixer mode follows the active track bank. Each fader resolves the Renoise Mixer device on its assigned track.

  • The default parameter is Volume.
  • A different Mixer parameter can be selected for each fader.
  • The selected parameter name is remembered per bank and slot.
  • BTN1–8 follow the FAD1–8 track assignments in USER, MUTE and SOLO modes.

FADER #DSP ONLY

This mode lets every fader select its own:

  1. Renoise track;
  2. DSP device;
  3. automatable parameter.

Only DSP devices or Send devices whose displayed name begins with # are listed. Rename a Renoise DSP, for example, to #Filter or #Delay to expose it to this mode.

The target list refreshes automatically when an assigned track receives these changes:

  • a DSP is inserted or removed;
  • DSP order changes;
  • a DSP is renamed with or without the # prefix;
  • an existing #DSP name changes.

A valid selected device and parameter are preserved by their actual Renoise object identity. If the selected target is deleted or loses the # prefix, Device and Parameter safely return to --.

Tracks without an eligible #DSP also show --; an assigned instrument is not required for FADER targets.

Clear Current

Clear Current clears only the currently active fader-mode mapping. It does not reset MIDI Learn or the other target banks.


8. Encoder Modes

The Encoder Mode menu contains Track DSP, Instrument, Master 1, Master 2, Master 3 and Clear Current.

Every encoder page also provides:

Control Function
W.A. Publish the encoder target and live movement to HYDRA SANITY for automation writing.
LCK Keep the corresponding Panorama row locked in HYDRA SANITY. Enabling LCK also enables W.A.; disabling LCK leaves W.A. active.

Without W.A., the encoder still changes its resolved Renoise parameter directly. W.A. is specifically the automation-writing bridge to HYDRA SANITY.

Track DSP

All ENC slots operate on the current Renoise track. Each ENC slot can select its own DSP and parameter from that track.

When the selected track changes in Renoise, MCU MIDI COM automatically:

  1. detects the selected-track change;
  2. loads the new track’s current DSP chain;
  3. rebuilds all ENC Device and Parameter lists;
  4. reapplies the active-bank ENC mapping to the new track;
  5. restores the stored W.A./LCK state for that track where available;
  6. publishes the new target identity to HYDRA SANITY.

This means the encoder page follows Renoise track navigation without requiring a manual page switch. If the new track does not contain a compatible device or parameter at the stored selection, that target safely becomes --.

The Track selector in the page header also changes the selected Renoise track, so the same automatic remapping path is used.

Instrument

All ENC slots control one selected Renoise instrument.

  1. Select the instrument in Renoise or with the Instrument popup.
  2. Press LOAD Host Automation.
  3. MCU MIDI COM loads the instrument plugin’s automatable parameters.
  4. The first available parameters are assigned to ENC1–8 and can then be changed individually.

Instrument mappings are cached per selected instrument and restored automatically when the Renoise instrument selection changes.

For HYDRA SANITY W.A. operation, the current track must contain the corresponding *Instr. Automation target. When several identical matches exist, select the intended automation device in Renoise first.

Master 1, Master 2, Master 3

These are three independent eight-encoder mapping pages. They are not limited to the Renoise Master track.

Each encoder can select any:

  • track;
  • DSP device;
  • parameter.

The FOLLOW button on one encoder slot makes that slot follow the selected Renoise track. Changing tracks then rebuilds that slot for the new track while preserving its per-track target cache where possible. Only one FOLLOW slot is active on a Master page at a time.

Clear Current

Clear Current clears only the currently active Encoder Mode page in the current bank. Other Encoder Modes, MIDI Learn assignments and other banks remain unchanged.


9. Buttons Modes

BTN1–8 use one shared Buttons Mode. Choose USER, MUTE, SOLO or ARM in the Buttons Page.

Mode BTN1–8 behavior
USER Each button controls a selected parameter on the corresponding FAD1–8 target track. Device and Parameter popups are available in this mode.
MUTE Each button controls the mute/active state of the corresponding FAD1–8 target track.
SOLO Each button controls Solo on the corresponding FAD1–8 target track.
ARM B1–8 control ENC1–8 / PANORAMA_E1–8 in HYDRA SANITY instead of following the fader tracks.

The selected Buttons Mode and USER targets are stored per target bank.

Compatible MCU Note LED feedback follows the current button state through P2 CTRL OUT. In ARM mode, the hardware button activates the corresponding HYDRA SANITY Panorama row action.

The separate F9 hardware button is local to the fader section and is not part of the four B1–8 Buttons Modes.


10. SETUP CONTROLL TOOL

SETUP CONTROLL TOOL extends the main ENC/FAD/BTN layout with additional learned hardware buttons. It was designed around the dedicated control buttons available on the Panorama T4/T6, while the Learn mechanism can also accept CC or Note buttons from another controller connected through P2 CTRL.

The dialog contains prepared positions for:

  • TRACK -, TRACK +, BROWSE, VIEW;
  • BANK -, BANK +, ZOOM -, ZOOM +;
  • Repeat, Rewind, Fast Forward, Stop, Play and Record.

Press a displayed control button to start Learn for that position. It changes to PRESS B; then press the required physical hardware button. The learned MIDI type, number and channel are shown below it.

Clear All MIDI Learn in this dialog clears only the additional SETUP CONTROLL TOOL assignments and their HS routing states. It does not clear the main ENC/FAD/BTN assignments.

Current actions

  • BANK - and BANK + switch MCU MIDI COM BANK 1–3 locally.
  • Transport-row positions can be switched to HS routing individually.
  • With HS enabled, Repeat sends the HYDRA SANITY DEL TRACK NOTE / GO TO ROW 00 command.
  • With HS enabled, Stop controls HYDRA SANITY Safe Play.
  • With HS enabled, Play controls HYDRA SANITY REC Automation.
  • With HS enabled, Record controls HYDRA SANITY REC Note & Automation.
  • Rewind and Fast Forward HS positions are currently reserved.
  • Track, Browse, View and Zoom positions currently provide learned button/state detection and remain prepared for further local actions.

SETUP CONTROLL TOOL mappings are stored in preferences, so the physical Panorama T4/T6 control buttons can remain available across songs while the main target maps remain song-specific.


11. MCU MIDI COM and HYDRA SANITY

MCU MIDI COM and HYDRA SANITY have separate responsibilities:

Tool Responsibility
MCU MIDI COM Owns the MIDI hardware ports, MIDI Learn, hardware mode, target selection, direct parameter control and MCU LED feedback.
HYDRA SANITY Owns automation-graph writing, Panorama rows, ARM/STICKY behavior, graph continuity and protected recording workflows.

The current MCU MIDI COM v0.74 implementation is compatible with HYDRA SANITY v8.85. The two tools exchange runtime data over a local OSC connection.

Encoder W.A. workflow

  1. Select an ENC target in Track DSP, Instrument or Master mode.
  2. Enable W.A. for that encoder.
  3. MCU MIDI COM publishes the track, DSP, parameter and encoder-slot identity.
  4. HYDRA SANITY creates or updates the corresponding PANORAMA_E1–8 row.
  5. Encoder movement is sent to the HYDRA SANITY automation writer.
  6. Relative encoder startup can synchronize with the current graph value before applying movement.

LCK keeps the Panorama target protected in HYDRA SANITY and forces W.A. on. ARM Buttons Mode sends the matching encoder-row ARM action.

Changing a target, bank, Renoise track or GUI 4/8 layout publishes the corresponding state transition so HYDRA SANITY does not keep an obsolete target active.

The hardware controller should normally be assigned to MCU MIDI COM P2 CTRL. HYDRA SANITY receives the resulting Panorama control data through OSC; it does not need to open the same Panorama control port a second time. HYDRA SANITY can still use its own MIDI MAPPER for other controllers and global functions.

Both tools must be running for W.A., LCK, ARM and HS-routed SETUP CONTROLL TOOL commands to work.


12. Development Status and Hardware Scope

MCU MIDI COM is still under active development.

The tool was originally created for the Nektar Panorama T4 and T6, including their multiple MIDI endpoints, MCU control layout and additional hardware buttons. Universal MIDI Learn now makes it possible to use other MIDI hardware as well, including Arturia and other controllers that send supported CC, Note or Pitch Bend messages.

Hardware compatibility has two levels:

  • MCU MIXER is the prepared profile for the Panorama-compatible MCU message layout.
  • INTERNAL is the recommended path for other controllers and custom MIDI presets.

Different controllers can use different relative-encoder formats, button release values and feedback protocols. MIDI input can usually be learned, but MCU LED feedback is only available when the device accepts the feedback format sent by the active profile.

Current development limitations include the reserved SETUP CONTROLL TOOL actions described above. Test a new controller setup on a copy of the song before relying on it in a live performance.

When reporting a problem, include:

  • MCU MIDI COM version;
  • Renoise version and operating system;
  • exact MIDI hardware model and hardware mode;
  • selected P2 CTRL input/output;
  • MCU MIXER or INTERNAL;
  • GUI 4 or GUI 8;
  • target BANK, Fader Mode, Encoder Mode and Buttons Mode;
  • the exact action sequence and observed result.

Persistence Summary

Data Storage and lifecycle
ENC/FAD/BTN MIDI Learn Saved automatically with the Renoise song.
BANK 1–3 targets and modes Saved automatically with the Renoise song.
W.A./LCK and Buttons states Saved with the corresponding target bank.
MIDI device names Stored in tool preferences.
GUI 4/8 and MIDI panel visibility Stored in tool preferences.
SETUP CONTROLL TOOL Learn and HS routing Stored in tool preferences.
Final save Performed silently by STOP ENGINE.
New song Stops the engine, closes the GUI and clears song-scoped mappings before the next explicit start.

MCU MIDI COM v0.79

This release was created to make REL encoder control feel closer to real physical movement and deliver smoother, higher-quality automation recording in HYDRA SANITY.

  • Improved REL encoder response with precise 1/127 movement scaling.

  • Refined acceleration for faster movement without aggressive value jumps.

  • Limited processing to three encoder changes per Renoise row, preventing excessive MIDI CC data from degrading automation.

  • Encoder WRITE events are transmitted immediately while preserving their original Renoise row position.

  • Improved SGA synchronization so the first encoder movement continues naturally from the current automation value.

  • Provides stable and natural control with both stepped and continuous REL encoders.