Tzec has released a beta of VST Lua, a VST plug-in for scripted MIDI manipulation.

From the FAQ:

What does VstLua do?
It allows simple scripting of MIDI events in a VST. It does not have any audio manipulation facilities. It is purely for MIDI control.

Tzec VST Lua

Tzec VST Lua – rhythmic script loaded (click image to enlarge)

And why is that useful?
It replaces many custom VST MIDI manipulators with a quick and easy way of scripting MIDI events. It provides support for limited GUI creation, so that scripts can set up their own control panels. New scripts can be quickly rapid prototyped without restarting the host.

For example?
Say, for example, I want add a new note, a fifth above the original, if the note is below middle C. All that is needed is a script like:


function midiEventCb(midiEvent)
         if midiEvent.type==midi.noteOn or midiEvent.type==midi.noteOff then
                local note = midiEvent.byte2
                -- decide whether to transpose it up or down
                if note>=noteToNumber('C-5') then
                    note = midiEvent.byte2 + interval.fifth
                else
                   note = note - interval.fifth
                end
                midiEvent.byte2=note
         end
         sendMidi(midiEvent)
end

See the API for details.

The download includes a .dll for Windows PC, but the source code is also available for download, so you could try to port/compile it for another system.

Visit the VST Lua page for more information and a link to download the latest beta.