<
>

MIDI Filter Collection

About

A collection of 25+ MIDI data filters in LV2 plugin format.

The filters follow the basic rules:

Overview

NameDescription
CC2NoteConvert MIDI control change messages to note-on/off messages. Note off is queued 10msec later.
MIDI Channel FilterSimple MIDI channel filter. Only data for selected channels may pass. This filter only affects midi-data which is channel relevant (ie note-on/off, control and program changes, key and channel pressure and pitchbend). MIDI-SYSEX and Realtime message are always passed on. This plugin is intended for live-use, button-control. See also 'MIDI Channel Map' filter.
MIDI Channel MapRewrite midi-channel number. This filter only affects midi-data which is channel relevant (ie note-on/off, control and program changes, key and channel pressure and pitchbend). MIDI-SYSEX and Realtime message are always passed thru unmodified.
MIDI Enforce ScaleFilter note-on/off events depending on musical scale. If the key is changed note-off events of are sent for all active off-key notes.
MIDI Event FilterNotch style message filter. Suppress specific messages. For flexible note-on/off range see also 'keyrange' and 'velocityrange'.
MIDI Key-Range FilterThis filter allows to define a range of allowed midi notes. Notes-on/off events outside the allowed range are discarded. If the range changes, note-off events are sent to currently active notes that end up outside the valid range.
MIDI KeysplitChange midi-channel number depending on note. The plugin keeps track of transposed midi-notes in case and sends note-off events accordingly if the range is changed even if a note is active. However the split-point and channel-assignments for each manual should only be changed when no notes are currently played.
MapCCChange one control message into another -- combine with scalecc to modify/scale the actual value.
MIDI Keys TransposeFlexible 12-tone map. Allow to map a note within an octave to another note in the same octave-range +- 12 semitones. Alternatively notes can also be masked (disabled). If two keys are mapped to the same note, the corresponding note on/events are latched: only the first note on and last note off will be sent. The settings can be changed dynamically: Note-on/off events will be sent accordingly.
MIDI ChordHarmonizer - make chords from single (fundamental) note in a given musical scale. The scale as well as intervals can be automated freely (currently held chords will change). Note-ons are latched, for multiple/combined chords only single note-on/off will be triggered for the duration of the combined chords. If a off-scale note is given, it will be passed through - no chord is allocated. Note: Combine this effect with the 'MIDI Enforce Scale' filter to weed them out.
MIDI DelaylineMIDI delay line. Delay all MIDI events by a given time which is given as BPM and beats. If the delay includes a random factor, this effect takes care of always keeping note on/off events sequential regardless of the randomization.
MIDI Channel UnisonoDuplicate MIDI events from one channel to another.
MIDI StrumA midi arpeggio effect intended to simulate strumming a stringed instrument (e.g. guitar). A chord is 'collected' and the single notes of the chord are played back spread out over time. The 'Note Collect Timeout' allows for the effect to be played live with midi-keyboard, it compensates for a human not pressing keys at the same point in time. If the effect is used with a sequencer that can send chords with all note-on at the exactly time, it should be set to zero.
MIDI Chromatic TransposeChromatic transpose of midi notes and key-pressure. If an inversion point is set, the scale is mirrored around this point before transposing. Notes that end up outside the valid range 0..127 are discarded.
MIDI Monophonic LegatoHold a note until the next note arrives. -- Play the same note again to switch it off.
MIDI Remove Active SensingFilter to block all active sensing events. Active sensing messages are optional MIDI messages and intended to be sent repeatedly to tell a receiver that a connection is alive, however they can clutter up the MIDI channel or be inadvertently recorded when dumping raw MIDI data to disk.
MIDI Duplicate BlockerMIDI Duplicate Blocker. Filter out overlapping note on/off and duplicate messages.
Note2CCConvert MIDI note-on messages to control change messages.
MIDI Note ToggleToggle Notes: play a note to turn it on, play it again to turn it off.
MIDI N-Tap DelayThis effect repeats notes N times. Where N is either a fixed number or unlimited as long as a given key is pressed. BPM and delay-time variable allows tempo-ramps. On every repeat the given velocity-adjustment is added or subtracted, the result is clamped between 1 and 127.
MIDI ThruMIDI All pass. This plugin has no effect and is intended as example.
MIDI QuantizationLive event quantization. This filter aligns incoming MIDI events to a fixed time-grid. Since the effect operates on a live-stream it will introduce latency: Events will be delayed until the next 'tick'. If the plugin-host provides BBT information, the events are aligned to the host's clock otherwise the effect runs on its own time.
MIDI Velocity RandomizationRandomize Velocity of MIDI notes (both note on and note off).
Scale CC ValueModify the value (data-byte) of a MIDI control change message.
MIDI SostenutoThis filter delays note-off messages by a given time, emulating a piano sostenuto pedal. When the pedal is released, note-off messages that are queued will be sent immediately. The delay-time can be changed dynamically, changes do affects note-off messages that are still queued.
MIDI Velocity-Range FilterFilter MIDI note-on events according to velocity. Note-on events outside the allowed range are discarded. If a Note-off is received for a note that was previously filtered, it is also not passed though. If the allowed range changes, note-off events are sent to currently active notes that end up outside the valid range.
MIDI Velocity AdjustChange the velocity of note events with separate controls for Note-on and Note-off. The input range 1 - 127 is mapped to the range between Min and Max. If Min is greater than Max, the range is reversed. The offsets value is added to the velocity event after mapping the Min/Max range.