
Splitter duplicates MIDI information from 1 up to 4 channels. Each “voice” is transposable and can be set to span an arbitrary range of notes on the keyboard.
Splitter can be used alone, to drive virtual instruments live, or together with a DAW where its output channels can be recorded on separate tracks.
Download
Splitter is built both as native “Apple silicon” and Intel code. Requires MacOS 10.12 or higher.
- Download the app: Splitter 1.1

- Input channel selection. Other MIDI channels are ignored. Only physical MIDI keyboards or controllers are taken into account, applications connected via the IAC Driver are ignored on the input side.
- The four output routes. Each voice includes:
- An enable checkbox,
- Selection of the output channel. Any channel can be used, including the same one on multiple voices, which is interesting with transposing.
- The transposition, from -48 to +48 semitones.
- The range of notes. Input notes played outside the range are not resent to this voice.
- All sliders are accompanied by a button that indicates their value, either in semitones for the transposition, or as the note name and octave. Click on the button to make the application wait for the next note played, to set the corresponding parameter from the MIDI keyboard. To cancel, click the button again.
- Key Switching. When Splitter is used with virtual instruments that use key switching technique to switch from one articulation to another, activating this option allows you to define a range of keys that will be always passed to active channels, even if the key is out of the channel range.
- Clicking on the Splitter logo will send an All Notes Off message to all active channels; this is the application's “panic button”.
IAC Driver
Inter-Application Communication Driver allows MIDI applications to communicate through MacOS. It is not enabled by default. Before using the application, make sure that the IAC Driver is active on your Mac. Open Audio MIDI Setup (in the /Applications/Utilities/ folder), display the MIDI studio window and double-click the IAC Driver icon. Enable it by checking the “Device is online” box.
Routing
The following drawing should clarify the workflow:

Notes entry
Splitter accepts notes from all MIDI inputs, on the selected channel.
Control
Most MIDI messages are forwarded through Splitter:
- note off (8x)
- note on (9x)
- poly aftertouch (Ax)
- control change (Bx)
- program change (Cx)
- channel aftertouch (Dx)
- pitchbend (Ex)
Other messages (Fx) are ignored.
The notes are filtered by taking into account the Splitter settings. If an incoming note is not within the range defined for a voice, it will not be forwarded to the voice's output channel. This allows you to define zones on the keyboard driving different instruments, or on the contrary, with overlapping zones, create layered instruments. You can also send the same channel several times with different transpositions.
Only notes are affected by this filtering. Other MIDI messages are transmitted as soon as a voice is active, on its selected output channel.
MIDI output, recording
In the DAW, create an instrument track (or MIDI track). Use IAC Driver for its MIDI input, selecting the same channel as in Splitter for the desired voice's output.
A typical use of Splitter: create several instances of a virtual instrument with distinct ranges on the keyboard, for example to play basses, cellos, violas and violins distributed on the keyboard with appropriate split points. Each instance will be played and recorded to its own track, but via Splitter it becomes possible to record them all at once in the most natural way.
Latency
Using IAC inevitably introduces some latency. Fortunately it is easy to compensate:
- Create an instrument track in the DAW, driven directly by the keyboard.
- Record notes on this track and another track fed from Splitter at the same time.
- Compare the position of the notes on the two tracks to deduce the latency, which can easily be compensated with the appropriate command in the DAW to make it disappear.
Glenn's Corner
This octave selection for middle-C has no effect on the MIDI actions. It merely changes the octave displayed in the buttons, not the actual MIDI note.
See this web page for more info: liveabout.com/illustrated-guide-to-middle-c
Changes
1.1: better handling of MIDI input buffer.
Enjoy!