[LAU] pidim: midi filters collection

Dave Phillips dlphillips at woh.rr.com
Thu Aug 26 11:24:16 UTC 2010


The project looks like it has a good beginning.

For a good idea of what I'm looking for in a MIDI transformer check out 
the pizmidi collection of Linux VST plugins. They're a great set of MIDI 
filters, with a variety of useful functions. It would be very nice to 
have the same utilities in something other than the native VST format. I 
have nothing against Linux VSTs, but there aren't enough reliable (and 
appropriately scaled) hosts for them.


Here's what the pizmidi plugins do :

midi16CCRouter - Changes up to 16 CCs to 16 other CCs.
midi2qwerty16 - Use MIDI to trigger fake keystrokes to the focused window.
midiAudioToCC - Converts audio amplitude to CC messages.
midiCCModulator - Use one CC to modulate another CC (or note velocity) 
in various ways: add/subtract/multiply/etc, plus logic gates (AND, NAND, 
XNOR, etc).
midiCCReset - Remembers CC values and sends them out again at selected 
midiCCStepper - Quantize CC events by value or in time.
midiCCToggle - For changing momentary CC buttons into toggles.
midiChannelize - Transforms everything to the selected channel.
midiChs_noGUI - Channel filter/changer like energyXT1 "MIDI chs" component.
midiConverter2 - Change and convert between CC, Channel Pressure, Poly 
Aftertouch, Program Change, Pitch Bend, NRPN/RPN, and Note On/Off 
messages in various ways.
midiDelay - Delay notes and/or CCs with feedback.
midiDuplicateBlocker - Remembers all MIDI message values it gets on each 
channel, and blocks any repeated values until a different value is 
midiExactDelay - Simple delay (no dry signal, no feedback) with flexible 
and precise delay time.
midiFingered - Selectively sends standard portamento on/off CC messages 
to emulate "fingered portamento" for synths that don't have it.
midiForceToKey - Enforces a scale, and transposes within the scale 
(optionally based on MIDI notes on a selected channel).
midiForceToRange - Transposes notes by octave into the selected range.
midiInvertNotes - "Mirrors" notes centered around the selected note.
midiKeySplit - Simple keyboard splitter.
midiNotchFilter - Isolate, remove, or channelize specific MIDI messages.
midiNotesToCC - Converts note number and velocity to CC messages.
midiNoteToggle - Notes (optionally within a selected range and/or 
channel) are toggled... play a note once to turn it on, play it again to 
turn it off.
midiNRPNConverter - Converts between NRPN/RPN and CC messages, with 16 
conversion slots.
midiPolyphony - For spreading polyphony across MIDI channels, i.e. if 
you play 4 notes, each one will go to a different channel. Polyphony per 
channel can be set from 1 to 16 notes for more flexibility. You can also 
use it to convert polyphonic input to monophonic output.
midiProbability - Add probability-based effects to incoming MIDI events, 
optionally synced to host timeline.
midiProgramChange - Send Program Change and/or Bank Select messages.
midiSimpleLFO - One CC LFO with some "simple" options.
midiSostenuto - Like a piano sostenuto pedal, but for MIDI notes instead 
of piano dampers.
midiStrum - Sequentially delays notes of an input chord to simulate 
midiStuckNoteKiller - Sends note-off messages to end hanging notes when 
the host stops (for hosts that don't do this themselves).
midiSwing - Delays and/or offsets velocity of and applies probability to 
notes (and optionally also CCs) at every other step of a selected note 
midiVelocityScale - Scale/reverse/offset velocity of input notes (Note 
On and/or Note Off).

The MIDI Transforms in many MIDI-only sequencers from the 80s and early 
90s have yet to be realized in Linux MIDI software.

You might also consider the various functions of the Yamaha MEP4, a 
hardware MIDI event processor with some valuable features. Google search 
for 'Yamaha MEP4' for a link to the manual.



More information about the Linux-audio-user mailing list