[LAU] pidim: midi filters collection
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,
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
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