(home) (bottom)

Piz MIDI plugin collection

These are intended to be small, useful MIDI processing VST 2.4 plugins, and are available for Windows (32/64-bit), Linux (x86), and Mac OS X (PPC/x86, 32/64-bit), unless otherwise noted. They use the host-provided GUI for easy development. C++ source code is available via Google Code.

Current price: free.


Included Plugins

  • midi16CCRouter - Changes up to 16 CCs to 16 other CCs.
  • midi2qwerty16 - Use MIDI to trigger fake keystrokes to the focused window.
  • midiAlias - Note values are reflected between a "Nyquist Note" and a "Zero Note," similar to the effect of audio sample aliasing.
  • midiAudioToCC - Converts audio amplitude to CC messages.
  • midiBlackKeyFilter - Separately adjust velocity of black and white keys, and/or send them on different channels.
  • 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 times.
  • midiCCStepper - Quantize CC events by value or in time.
  • midiCCToggle - For changing momentary CC buttons into toggles.
  • midiChannelize - Transforms everything to the selected channel.
  • midiChordHold - Sustains a chord until another one is played.
  • midiChordSplit - For splitting polyphonic material to multiple midi channels based on selected note ranges for each voice.
  • midiChs_noGUI - Channel filter/changer like energyXT1 "MIDI chs" component.
  • midiConverter3 - Change and convert between CC, Channel Pressure, Poly Aftertouch, Program Change, Pitch Bend, NRPN/RPN, Note On/Off, and other 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 received.
  • 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.
  • midiKeySplit4 - Four-zone keyboard splitter.
  • midiMultiProgramChange - Uses input program change to trigger selected program changes on all channels.
  • midiNotchFilter - Isolate, remove, or channelize specific MIDI messages.
  • midiNoteGroups - Assign play and/or choke groups to MIDI notes.
  • midiNoteMap - Simple 1-to-1 keyboard mapper.
  • midiNoteRepeater - Repeats every Nth note a set number of times, or blocks it.
  • 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.
  • midiOverlappingNoteKiller - Prevents overlapping notes at the same pitch.
  • midiPitchBendQuantize - Quantizes pitch bend messages to up to 25 values.
  • midiPitchBendToNotes - Changes pitch bend plus note messages into notes at the "bent" pitch (may be useful for using Suzuki QChord with non-multitimbral instruments).
  • 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.
  • midiScaleChanger - Transposes notes by individual scale degrees and/or globally, to change one scale into another. Among other things, this allows you to play any scale using only the white keys.
  • midiSostenuto - Like a piano sostenuto pedal, but for MIDI notes instead of piano dampers.
  • midiStrum - Sequentially delays notes of an input chord to simulate strumming.
  • 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 value.
  • midiTriggerList - Use one note or CC to trigger up to 8 other notes and/or CCs.
  • midiVelocityScaler - Scale/reverse/offset velocity of input notes (Note On and/or Note Off).

Host support

Not all VST hosts support MIDI VST plugins. Most do, some quite well, and others with certain complications.

Renaming a plugin with "fx" in its name with force the plugin to load as a VST effect. By default they load as VST instruments. See pizmidi.ini for more options for configuring plugins globally or per host.


AudioMulch 2.0
Buzz/Buz/etc (via Polac VST loader)
FL Studio
Pure Data
Studio One

As VST Instruments Only:

forte Live SONAR

As VST Effects Only:

Cubase LE 4 (no instrument rack) Kore MOS (Open Labs Music OS 3.0)


AudioMulch 1.0
Pro Tools
Project 5


n-Track Studio
everything else.