Route
A Route is a container for multiple chains, enabling modular and sequential processing of MIDI data.
Learning to Create Routes
If you're trying to understand how routes are built, the easiest way is to start with an EasyConfig
. Once you've created one, inspect how it's automatically translated into a full route. This reverse-engineering method offers a hands-on, intuitive way to grasp the structure and logic of route creation—without needing to dive into low-level details right away.
Chains
A chain defines a linear path composed of a sequence of filters. Each filter performs a specific transformation or analysis on the MIDI stream, allowing for flexible and customizable data manipulation as it flows through the chain.
Filter Types
TO_MIDI_DESTINATION
Routes MIDI events to a specific local MIDI destination.
TO_CONSOLE
Logs MIDI events to the console (either server or client). This filter is also used for inter-server communication, such as sending logged MIDI messages to a client or triggering preset changes via MIDI.
TO_NETWORK
Sends all MIDI events to a remote destination.
SCHEDULE_TO
Holds MIDI events and schedules them for future delivery based on deferredType
and deferredTo
parameters. Requires MIDI clock events to function properly.
FILTER_AND_TRANSFORM
Allows both filtering and transforming MIDI event data. Transformation notation includes:
[[fromStart, fromEnd, toStart, toEnd]]
— Maps a range fromfromStart
tofromEnd
ontotoStart
totoEnd
.[[fromStart, fromEnd, toStart]]
— Short form wheretoEnd = toStart + (fromEnd - fromStart)
.[[value1, value2]]
— Mapsvalue1
tovalue2
.[[value]]
— Equivalent to[[value, value]]
, a single value mapping.
📚 Reference
Filter Type 0: TO_MIDI_DESTINATION
Parameters:
filterType
:0
midiInputName
: Name of the MIDI input port
Filter Type 1: TO_CONSOLE
Parameters:
filterType
:1
logTo
: Logging destination0
(CLIENT): Client console1
(SERVER): Server console
userdata
: Optional user-defined JSON data
Filter Type 2: TO_NETWORK
Parameters:
filterType
:2
midiInputName
: MIDI input port nameserverName
: Target server nameserverPort
: Target server port
Filter Type 3: SCHEDULE_TO
Parameters:
filterType
:3
deferredType
: Scheduling mode0
: IN_SPP (relative to Song Position Pointer)1
: IN_BAR (relative to current bar)2
: AT_SPP (specific SPP)3
: AT_BAR (specific bar)4
: QUANTIZE_SPP (nearest SPP)5
: QUANTIZE_BAR (nearest bar)
deferredTo
: Number of units to defer
Filter Type 4: FILTER_AND_TRANSFORM
Parameters:
conditionAction
: Event deletion logic0
: DO_NOT_DELETE1
: DELETE_IF_NOT_MET_CONDITION2
: DELETE_IF_MET_CONDITION
filterChannel
: MIDI channel filterfilterData1
: Data1 byte filter/transformfilterData2
: Data2 byte filter/transformfilterEvents
: MIDI event types to filter (e.g.,[8]
for Note On)filterType
:4
name
: Filter name