MIDI PADs to Controll Tracks
by

🎹 Zorgan: MIDI PADs to Controll Tracks

Author: Roman Prucha (zorgan)
Platform: Renoise 3.5.4
API target: Renoise Lua API 6.2 / Lua 5.1 runtime style
Version: 4.28 β€” Engine Runtime, Group Topology, DSP Cache & Assigned Instrument Selection

Zorgan MIDI PADs to Controll Tracks is a compact Renoise performance and navigation tool for MIDI pads, button controllers and mouse control. It links hardware pads, GUI buttons, Renoise tracks, instruments, send routing, mute states, solo states, group tracks and visual feedback into one fast control surface.

The tool is designed for quick project navigation, track/instrument selection, group-aware mute/solo handling, controlled TRACK OFF states and clear visual feedback without opening a large mixer workflow.


1. Quick Workflow

  1. Open the tool from the Zorgan menu, keybinding, or MIDI-mapped Show GUI action.
  2. Press STOP ENGINE / START ENGINE to control whether the runtime engine is active.
  3. Map your hardware pads/buttons through Renoise MIDI Mapping (Ctrl+M).
  4. Use hardware MIDI pads for fast track selection, assigned instrument selection, normal MUTE, or hold-to-SOLO.
  5. Use GUI PADs buttons only when you intentionally want persistent TRACK OFF.
  6. Use GUI Tracks buttons to select tracks or double-click for track SOLO.
  7. Use GUI GROUPS buttons to select or group-mute Renoise Group tracks.
  8. Use the global SOLO button to solo either the selected track or the selected group.

The GUI is both a control surface and a live visual monitor. Track buttons keep the real Renoise track color and receive overlays for MUTE, OFF, SOLO, selected track and selected group membership.


2. Engine Runtime

The main service button is:

STOP ENGINE / START ENGINE

STOP ENGINE

When the engine is stopped:

  • MIDI PAD runtime input is ignored.
  • GUI runtime buttons do not change Renoise track states.
  • Track notifiers are detached.
  • PAD assignment cache is cleared.
  • DSP summary cache is cleared.
  • PAD hold state is cleared.
  • Group sweep FX is stopped.
  • Tooltip and DSP status show the stopped state.

STOP ENGINE does not reset your Renoise mixer state. It does not clear mute/solo/off states. It only stops this tool’s runtime engine and clears internal runtime cache.

START ENGINE

When the engine is started:

  • Track notifiers are attached again.
  • PAD assignment cache is rebuilt.
  • DSP summary cache is rebuilt.
  • GUI visibility and button state are refreshed.
  • Track buttons, instrument row, MIDI CH row, Send rows and DSP status are updated from current Renoise song data.

START ENGINE replaces the old manual GUI refresh workflow. It performs the full runtime rescan needed after a stopped state.

RESET STATE

RESET STATE is still available as a dedicated safety/service action.

It clears current solo logic and sets non-master tracks back to active. This is intentionally separate from START/STOP ENGINE because it changes Renoise mixer state.


3. Hardware MIDI Pad Logic

The hardware pad/button mapping uses one Renoise MIDI mapping per PAD slot.

Hardware action Result
Soft press / low velocity <= Select Threshold Selects the target Renoise track and its assigned instrument when available.
Standard MIDI button CC value 127 Treated as a select command for non-velocity-sensitive controllers.
Hard press / velocity above threshold but below 127 Toggles normal Renoise MUTE / ACTIVE for the target track.
Long hold Activates SOLO for the target track.

Important distinction:

Hardware MIDI PAD mute = Renoise MUTE
GUI PAD mouse click    = Renoise TRACK OFF

Hardware MIDI pads do not create persistent TRACK OFF. This keeps hardware mute safe for live performance.


4. GUI Button Rows

Each PAD block contains multiple rows. Every column represents one visible track/PAD slot.

PADs row

The numbered PADs buttons are not normal mute buttons.

Mouse action Result
Click GUI PAD button Toggles persistent Renoise TRACK OFF / ACTIVE.
Track already muted Click still forces the track into TRACK OFF.
Track already OFF Click restores the track to ACTIVE.

Use this row only when you want a deliberate hard-off state. TRACK OFF is protected from group mute/unmute and group solo operations.

When a group is selected, the PADs row mirrors the final color of the Tracks row for tracks inside that group. This makes the selected group visible as a larger two-row block.

Tracks row

The Tracks row displays the Renoise track number and keeps the real Renoise track.color as its base color.

Mouse action Result
Single click track button Selects the Renoise track and its assigned instrument when available.
Double click track button Toggles track SOLO using the single-track solo engine.
Hover track button Shows cached track DSP summary as a tooltip.

The tooltip is read from the internal DSP cache. It does not scan Renoise devices during hover.

Example tooltip:

Track [05] Bass
DSP: Hydra, Pro-Q 3, Delay

If no DSP devices are active on the track:

Track [05] Bass
DSP: none

Send 1 / Send 2 rows

The Send rows scan real Renoise Send routing from track devices and display the first two detected Send targets.

Mouse action Result
Click Send button Selects the detected Send track.

Muted or blocked source/target states are shown with dedicated blocked/send colors.

Instr row

The Instr row displays the detected instrument index for each track.

Mouse action Result
Click Instr button Selects the track and detected instrument.

Instrument detection uses real project data:

  • Renoise instrument MIDI input assigned_track when available.
  • Pattern note data as fallback.
  • Safe assignment matching for songs containing Group tracks.

MIDI CH row

The MIDI CH row displays the detected MIDI channel for the assigned instrument or plugin/hardware routing when available.

Mouse action Result
Click MIDI CH button Selects the track and detected instrument.

5. Selected & DSP Status Rows

The top area shows two independent status lines.

Selected row

Selected: TRK: [05] Bass   INSTR: [02] VST3: Omnisphere (...)

This row shows the selected Renoise track and selected instrument.

DSP row

DSP: Hydra, Pro-Q 3, Delay

This row shows the active DSP devices on the selected track.

Rules:

  • DSP row reads from cached track DSP summary.
  • DSP row lists Track DSP devices only.
  • Virtual instruments such as Kontakt, Omnisphere or other VSTi sources do not appear in the DSP row.
  • Parameter names are not stored or displayed.
  • If no DSP is active, the row shows DSP: none.
  • In STOP ENGINE state, the row shows DSP: Engine stopped.

6. GROUP Buttons

The GROUPS area lists detected Renoise Group tracks.

Current layout:

5 columns Γ— 4 rows = 20 GROUP buttons
GROUP button action Result
Single click group button Selects the Renoise Group track.
Double click group button Toggles GROUP MUTE for child sequencer tracks.
Single click another group while group solo is active Moves GROUP SOLO to the newly selected group.

GROUP SELECT

A single group click selects the actual Renoise Group track and stores it as the current group target for the global SOLO button.

When a group is selected, a short Group Select Sweep FX runs across the PADs and Tracks rows for that group. This is visual only. It does not change Renoise track color, mute state, solo state, instrument state or routing.

After the sweep finishes, the child tracks stay marked using a final color derived from the selected Group track color. This keeps the selected group readable after the animation ends.

GROUP MUTE

Double-clicking a group button toggles normal Renoise MUTE on all child sequencer tracks inside that group.

GROUP MUTE does not use TRACK OFF and does not overwrite tracks already in TRACK OFF.

GROUP MUTE ON  = child tracks -> Renoise MUTE
GROUP MUTE OFF = child tracks -> ACTIVE
TRACK OFF      = left untouched

The group membership resolver uses real Renoise group_parent relationships, so it works correctly when group tracks are placed after their children and when nested group structures are used.


7. SOLO Button

There is intentionally only one global SOLO button.

The SOLO button acts on the current context:

Current context SOLO button result
Regular track selected Uses Renoise native single-track solo.
Group selected in GUI or selected in Renoise Uses custom GROUP SOLO.
Same group already soloed Clears GROUP SOLO.
Any solo state active on a regular track Pressing SOLO clears the active solo state.

Track SOLO

For a regular sequencer track, SOLO uses the native Renoise solo state. Existing temporary MUTE states created by the solo engine are cleared as needed.

GROUP SOLO

Renoise does not provide a perfect native one-click group solo behavior for this tool’s workflow, so GROUP SOLO uses a custom mute-based engine:

  1. Clears existing solo flags.
  2. Mutes other active tracks.
  3. Unmutes tracks that belong to the selected group.
  4. Keeps TRACK OFF tracks protected.
  5. Keeps relevant Send tracks active when detected through child track Send routing.
  6. Stores the current group as the active group solo target.

This allows one global SOLO button to work for both normal tracks and group tracks.


8. MUTE vs TRACK OFF Semantics

The tool uses two independent mute layers.

State Renoise state Created by Meaning
ACTIVE MUTE_STATE_ACTIVE Normal state Track plays normally.
MUTE MUTE_STATE_MUTED Renoise mute, hardware MIDI PAD hard press, GROUP MUTE, GROUP SOLO masking Temporary/performance mute.
TRACK OFF MUTE_STATE_OFF GUI PAD mouse click only Persistent hard-off state.

TRACK OFF is the protected state. It remains off across group mute/unmute and group solo/unsolo until the user explicitly clicks the GUI PAD button again.

If you click MUTE directly in Renoise, the tool synchronizes that state back into the GUI Tracks row through track mute notifiers.


9. Visual State Colors

Track buttons always start from the real Renoise track color. The tool then blends in a state overlay.

Visual state Meaning
Real track color Normal active track.
Cyan overlay Selected track.
Group-color overlay Selected group child after Group Select Sweep FX.
Sweep colors Temporary Group Select Sweep FX animation.
Red overlay Normal Renoise MUTE.
Magenta overlay Persistent GUI PAD TRACK OFF.
Purple/pink merge Selected group child that is also muted/off.
Yellow SOLO button Active SOLO / GROUP SOLO state.
Red STOP ENGINE button Engine is running; click to stop it.
Dark START ENGINE button Engine is stopped; click to start it.

When a group is selected, the PADs row mirrors the Tracks row for all child tracks in that group. This makes group membership and muted/off child tracks readable at a glance.


10. Native Project Scan Engine

The tool does not require rigid mathematical offsets for instrument assignment. It scans the Renoise project and builds dynamic caches.

The scan engine checks:

  1. Real sequencer tracks from the configured start index.
  2. Group tracks and group membership through Renoise track topology.
  3. Notes written in pattern data to detect used instruments.
  4. Renoise instrument MIDI input assignment where available.
  5. Plugin or MIDI routing data to detect MIDI channel information.
  6. Send devices to detect Send 1 / Send 2 routing per track.
  7. Track DSP devices for tooltip and DSP status cache.

Assigned instrument selection

When selecting a track through a Track button or MIDI PAD, the tool also selects the Renoise instrument assigned to that track when available.

The assignment resolver supports projects with Group tracks. It checks valid assigned-track candidates so the selected instrument still resolves correctly when the GUI Track buttons display only normal sequencer tracks while Renoise song track order also contains Group tracks.

If no assigned instrument is found, the tool selects the track and leaves the current instrument unchanged.

DSP cache

The DSP cache stores only primitive text snapshots:

  • Track index.
  • Track name.
  • Active DSP device names.
  • Tooltip text.
  • Status row text.

It does not store Renoise userdata objects, device parameters, parameter names or parameter values.


11. Track Topology & Live Refresh

The tool now watches structural song changes through lightweight signatures.

Handled cases:

  • Add track.
  • Remove track.
  • Reorder track.
  • Change classic track into Group track.
  • Change Group track back into a normal track.
  • Rename Group track.
  • Change instrument assigned track.
  • Change track DSP chain by adding/removing/reordering devices.

When topology changes, the tool rebuilds the internal PAD assignment cache and DSP cache structurally. It does not fake this by text refresh.

This is important because Group tracks are not shown as normal Track buttons, but they still affect song track order and instrument assignment numbering.


12. Performance Architecture

The GUI does not use a heavy fixed redraw timer.

Current design:

System Behavior
GUI refresh app_idle_observable + dirty flags.
GUI redraw Only when GUI_DIRTY is set.
Assignment rebuild Only when ASSIGNMENT_DIRTY is set.
Track topology check Lightweight signature check, throttled.
Instrument assignment check Lightweight signature check, throttled.
Event bus check Throttled through os.clock().
PAD hold/SOLO hold Lightweight 50 ms timer.
Group Select Sweep FX Runs through the existing idle loop, no extra timer.
Tooltip display Reads prepared cached text; no hover scan.

This avoids refresh storms and keeps the GUI responsive while Renoise track states change rapidly.


13. MIDI Mapping

The tool dynamically registers mappings for:

  • Show GUI
  • Preset PAD 01-10
  • Preset PAD 11-20
  • Preset PAD 21-30
  • Pattern Scroll Absolute MIDI Control
  • Pattern Scroll Endless Encoder

Use Renoise Ctrl+M and move/click the target hardware pad or controller control.


14. Practical Notes

GUI PAD vs hardware MIDI PAD

GUI PAD click     = persistent TRACK OFF
Hardware PAD mute = normal Renoise MUTE

This separation is intentional.

Group tracks in Track buttons

Group tracks are listed in the GROUPS area, not in the normal Track button grid.

If a normal track is changed into a Group track in Renoise, the tool rebuilds the Track button list and removes it from the normal track grid.

Virtual instruments vs DSP devices

Virtual instruments belong to the Selected / Instr information.

Track DSP devices belong to the DSP row and Track button tooltip.

Example:

Selected: TRK: [05] Bass   INSTR: [02] VST3: Omnisphere (...)
DSP: Hydra, Pro-Q 3, Delay

Omnisphere is not listed as DSP because it is a virtual instrument, not a Track DSP device.


15. Changelog

v4.28 β€” Assigned Instrument Selection Fix

Fixed

  • Fixed track selection not switching to the assigned virtual instrument in projects containing Group tracks.
  • Reworked assigned-track matching from one-way resolver logic into target-track candidate matching.
  • Track button and MIDI PAD selection now select the assigned instrument when Renoise instrument assignment is available.

Changed

  • Track selection now uses a unified track + assigned instrument path.
  • If no assigned instrument is detected, the current instrument is left unchanged.

v4.27 β€” Assigned Instrument Cache Path

Added

  • Separate assigned-instrument cache field for PAD assignments.
  • Assigned-instrument detection path independent from pattern fallback display logic.

v4.26 β€” Assigned Track Resolver

Added

  • Initial resolver for Renoise instrument MIDI input assigned track conversion.

Changed

  • Prepared assigned-track handling for songs where song track index and visible sequencer position differ.

v4.25 β€” Track Select + Instrument Select

Added

  • Unified helper for selecting track + assigned instrument.
  • Instrument assignment signature check for live assignment changes.

Changed

  • Track button, MIDI PAD select, Instr row and MIDI CH row now share one selection path.

v4.24 β€” Group Child Final Color

Fixed

  • After Group Select Sweep FX, child tracks now remain marked with a final color derived from the selected Group track color.
  • Removed fallback to generic group-child color after the sweep ends.

v4.23 β€” Track Topology Scope Fix

Fixed

  • Fixed crash after adding a new track caused by an undeclared local song reference in topology update callback.

v4.22 β€” Track Topology Signature

Added

  • Lightweight track topology signature check.
  • Automatic Track button rebuild when a normal track is changed into a Group track.
  • GROUP name refresh support when a Group track is renamed.

Changed

  • Assignment cache can rebuild structurally even when GUI is closed.

v4.21 β€” Compact Status Layout

Fixed

  • Fixed status row layout width so Selected and DSP text no longer stretch the GUI window.

v4.20 β€” Status Row Gap Cleanup

Fixed

  • Removed unnecessary spacing between status labels and their text.

v4.19 β€” Compact DSP Status Text

Changed

  • Added controlled clipping for the fixed DSP status row.
  • Kept full DSP text available in Track button tooltip.

v4.18 β€” DSP Cache, Tooltip & 20 GROUP Buttons

Added

  • Track DSP summary cache.
  • Cached Track button DSP tooltip.
  • Fixed DSP status row under Selected.
  • GROUP button layout expanded to 5Γ—4 / 20 buttons.

Changed

  • Removed the old REFRESH GUI button from the main GUI.
  • START ENGINE now performs the proper refresh/rescan workflow.

v4.17 β€” START / STOP ENGINE Runtime

Added

  • Runtime STOP ENGINE / START ENGINE button.
  • STOP ENGINE clears runtime cache and stops engine work.
  • START ENGINE rebuilds assignment cache, notifiers, DSP cache and GUI state.

Changed

  • Replaced the older RESTART TOOL workflow with a safer runtime state toggle.

v4.16 β€” Header Cleanup

Changed

  • Tool version is kept only in the GUI title.
  • Script comments were cleaned to English language where touched.

v4.15 Final β€” Group Solo, Group Mute, PAD OFF & Visual State Engine

Fixed

  • Fixed GROUP SOLO selecting or affecting the wrong group by replacing fragile index/bounds logic with real Renoise group_parent membership detection.
  • Fixed GROUP SOLO behavior for group tracks placed after their child tracks.
  • Fixed Renoise MUTE synchronization back into the tool GUI.
  • Fixed selected group coloring overwriting child track MUTE/OFF visibility.
  • Fixed GROUP MUTE visibility so child tracks inside the selected group remain readable.

Changed

  • GUI PAD mouse click now means persistent TRACK OFF, not normal MUTE.
  • Hardware MIDI PAD hard press now toggles normal Renoise MUTE, never TRACK OFF.
  • GROUP double-click now toggles normal MUTE on group child tracks and preserves existing TRACK OFF states.
  • The single global SOLO button is preserved and now resolves group context more reliably.

Added

  • Group-aware color merge system for selected group + muted/off child tracks.
  • Track button color overlays on top of the real Renoise track color.
  • PADs row mirror mode while a group is selected.
  • Short Group Select Sweep FX using real track colors.
  • More robust group membership handling for nested/group-parent structures.

v4.14 and older

  • Anti-freeze GUI architecture and dirty-flag refresh.
  • Zero FOUC GUI preparation.
  • Standard MIDI button support.
  • Smart Instrument and MIDI CH detection.
  • Pattern scroll mappings.
  • Split solo architecture and early group-track handling.

External Links

Liability exclusion: You are about to download and install software from a third-party provider. This software was not developed by Renoise and is listed here in a summarised form purely as a convenience for our users. Renoise takes no responsibility for any malfunction, incompatibility, or damage caused by or otherwise arising from the use of the software. In the case of problems with the installation or use of the software, please contact the relevant developer.