Midi Matrix Switch v10a

Live jam utility to switch midi matrix routings to beat-juggle with pattern snippets, to switch between song parts or to play additional notes with different voicing while holding notes.


(Since the overlays are a bit too fast to read, you can find a full transcript in the videos comment section)

Route several midi event sources (keyboards, sequencers or generative midi) sending on different midi channels to this Mozaic instance and feed the scripts midi output to several instruments, each limited to listen to only a single midi channel.
The 16 pads allow to instantly toggle between connection setups for all input senders and output receivers.

Per default all pads connect in an identity mapping where the event is send to the same output channel as its input channel. The pad of the active setup is highlighted. To edit the mapping, tap ‘Shift’. Tap ‘Shift’ again to return to the pad view.

To edit/view the settings of inactive pads, press and hold ‘Shift’ and then press the pad for which you want to edit/view the setup.

The headline of the edit view states the setup/pad number and contains (ACTIVE) when editing the currently applied setup. All changes made to an active setup are activated directly, allowing to audition the changes.

UI Documentation
===================

‘Play’ mode / Pad view
———————————-
* The 16 pads change the current setup.
* Shift-press a pad edits the setup of that specific pad.
* Press shift without a pad to edit the active setup.
* Each pads is labeled with its routing for the active setup, channels marked as ‘unused’ hide their label.
* The ‘Help/Config’ knob toggles to ‘Config’ mode when turned right

‘Edit’ mode / Knob view
————————————
* 16 knobs are used to define the output channel for each input channel, turn to knob to the full right to mute the input channel. Knob 2 for instance specifies where events incoming from midi channel 2 will be routed. It is possible to route several input channels to the same destination channel.
* The ‘Edit PAD’ knob directly changes edited setup.
* The ‘Activate’ knob allows to active the edited setup.
* The ‘Reset’ knob resets the edited pads channel connection matrix to identity.
* The ‘Copy’ knob copies a whole setup from another pad, the source is selected by the ‘From’ knob.
* Return to the pad view/’Play’ mode by pressing ‘Shift’.

‘Config’ mode / Help view
—————————————
* The top two knobs select the type of external control to trigger setup changes. Specify the channel for midi modes, the control events will not be forwarded:
*** Via notes with Rozeta pattern change notes (extened) or C0-E1
*** Via CC1 – CC10 with values 00-15
*** Via PC message with values 00-15
*** Via AU User parameters, either User0 with values 00-7F or User1 with values 00-15
* The ‘Log’ knob toggles event logging between OFF, WARN and NOTES
* The ‘Help/Config’ knob toggles to ‘Play’ mode when turned left

Midi Event Handling
====================
All midi events (PC, PitchBend, AfterTouch, Note-On etc) are routed to their current destination. Note-Offs are NOT send to the current active destination (which might have changed since) but to the channel used during Note-On.

The script tracks all incomming and outgoing note-on/note-off events to prevent hanging or doubly send notes.

Due to the flexible routing, the same note of an output channel might be triggered and released simultaneously from several input channels. Only the first event triggers the note and afterwards only that input channel can release the note – all events for this note originating from other input channels are ignored.

Setup example for AUM
======================
* Connect AUMs keyboard (channel 1) to the scripts Mozaic instance
– Add synth A, connect to Mozaic and use AUMs midi filter to only read from channel 1
– Add synth B, connect to Mozaic and use AUMs midi filter to only read from channel 2
* In Mozaic edit pad 2 to route channel 1 to 2, (pad 1 routes to 1 to 1 by default)
* Press pad 1 and hold a chord on AUMs keyboard playing sounds from syth A
– While holding the chord, press pad 2 and play addtional notes.
– Synth A will hold the chord until its notes are released.

Its as simple as press pad 1 for synth A notes and pad 2 for synth B notes.

Another usage idea
===================
Setup Fugue maschine to send its four playheads on four channels and use the scripts setup to mixup the routing to four instruments generating sound variations of the same running theme – this could even be automated by CC control from an LFO.

TL;DR
======
The Midi Matrix Switch allows for the 16 midi channel inputs to be freely connected to 16 midi channel outputs in 16 setups. Since its taking care of sending the note-offs to the correct channel and prevents double note-ons/offs, you can switch setups at any time.

Author
645 PM
  • Platform:
  • Category: Utility
  • Revision: 10a
  • Views: 1,067
  • Modified: 4 months ago
Chat about this patch on Discord! Download (47)
Appreciate 12
10 comments on “Midi Matrix Switch v10a
  • -ki on said:

    Just uploaded V4:
    – Several bugfixes regarding external control
    – Added Rozeta pattern change notes external control

  • -ki on said:

    Updated to V5:
    – Added MUTE as channel output option

  • -ki on said:

    Updated to V6:
    – Added log levels and Log WARN logging mode. The main change is that Log OFF no longer shows the warnings.

  • -ki on said:

    Updated to V7:
    – Added ‘Shift only’ edits active setup

    This made the work-flow a lot easier.

  • -ki on said:

    Still V7:
    – Added ‘Edit PAD’ knob to change setup in edit mode

  • -ki on said:

    Update to V8:
    – Bugfix: Offset error in both trackers

  • -ki on said:

    Update to V9
    – New: ‘Activate’ knob in edit mode
    – New: Logging for MUTED channels

    With the help of the Copy / Edit and Activate knobs one can quickly create and audition setting variants without leaving the editor.

  • -ki on said:

    Updated to V10
    – New: Mark channels as unused
    – New: Pad labels stating channels output
    – Fix: Mute of CCs, ATs if channel is muted
    – Change: Moved external control to config view
    – Del: Visualization
    – New: Include version number in main label

  • Pejman on said:

    Thanks , very very nice patch .

  • -ki on said:

    Since the overlays of the demo video are a bit too fast to read, i added a full transcript in the videos comment section. Choose ‘watch on youtube’ to see the comments.

  • Leave a Reply