MusiKraken
MusiKraken
Experimental MIDI Controller Construction Kit

Filter

This can be used to filter out MIDI events of a specific type or a specific range.

Select which MIDI events (note, Control Change, Aftertouch, Channel Pressure, Pitch Bend, Program Change) should be removed and set the range of the accepted channels or other ranges.

Every MIDI event with values outside of these ranges will be removed.


Typical use cases:

Control different instruments on different key ranges of the keyboard: For example create a filter that accepts MIDI notes in ranges C-2 to B2, and another one that accepts MIDI notes in the range C3 and G8. Connect both of their inputs to the keyboard output and connect their output ports to different instruments (maybe using the channel switcher, or different Audio Units).

Now every note played below C3 will be sent to the first instrument, and every note played on C3 or above will be sent to the second instrument.

(Of course this can be repeated to support any number of ranges. This is mostly useful when using an external keyboard, because if you are using the internal keyboard module, you can alternatively just create multiple keyboards instead, connect them to different instruments and split the screen so that you can see up to three rows of keyboards simultaneously).


Send notes of different velocities to different instruments: My favorite use case of the filter so far: Create two (or more) filters with different velocity ranges and connect them to the same keyboard and different instruments. Now depending on how hard you hit a key on the keyboard, the MIDI event will be sent to a different instrument.

Note that the velocity of MIDI Note-Off events will be ignored in the filter and the velocity of the matching Note-On event will be used instead, otherwise this wouldn't work.

So one example of how this can be used is to load an instrument that uses a smooth articulation on one channel (for example a violin playing smoothly) and a more expressive articulation on another channel (like a violin playing a more special articulation). Then if you press the key slowly, it will pass the first filter, send the MIDI event to the first instrument and play smoothly. And if you press the key with more velocity, it will play the sound of the second instrument instead. And this will all work per-note.

Ports:

MIDIIn and MIDIOut:

Route the MIDI events through this to filter out MIDI events.