What's new

MIDI Plugin in VST Format?

Hans Adamson

Senior Member
Is it possible to create a VST plugin that intercepts the MIDI signal coming from the DAW and processes it before playing back instruments in Kontakt? Like a multiscript, but in VST format.

Thanks,
/Hans
 
Hi,
Would that really work? As far as I know, daw's generally only allow one instrument per channel.
 
Yes MIDI out is part of the VST spec. I'm eagerly waiting for MIDI out to be added to HISE :D Not too long I hope.
 
Cool, but how would you route the midi output from one instrument to another if the channel can only hold one instrument?
 
Depends on the DAW. Cubase for instance supports MIDI plugins as a MIDI insert effect. Other DAWs like Studio One need to load the MIDI plugin as an instrument and route its output to another track/instrument.

For example I'm heavily using the free pizMidi plugins that are available for Win and Mac. I use them in Studio One and in Gig Performer for transforming velocities or controller data or for getting an chord hold behaviour for live gigs. Works great.
 
Depends on the DAW. Cubase for instance supports MIDI plugins as a MIDI insert effect. Other DAWs like Studio One need to load the MIDI plugin as an instrument and route its output to another track/instrument.
.

Cubase also requires you to setup some nutty routing in order to do this. The midi inserts in Cubase are NOT vst, they are a closed set of proprietary plugins.

Can you please elaborate a bit on how you setup midi VST plugins in S1 in order to feed into other instrument plugins?
 
Oh sorry. I haven't used Cubase for 8 years... I thought they had implemented VST plugins for its MIDI insert slots. Okay then it requires some routing action.

In Studio Studio it works as follows:

- Drag the VST MIDI plugin from the browser (will be shown as VST instrument) to the arrangement to create a new instrument drag
- The track's "out" is now going to the MIDI plugin (in my case it's midiChordHold), the "in" is set to your master keyboard or "All inputs"
- Again add a new instrument track with the instrument you want the receive the MIDI data
- The "out" of the new track is now set to the instrument (in my case Omnisphere). Now change the "in" to your MIDI plugin (instead of your master keyboard)
- The signal chain is now: Master keyboard -> VST MIDI plugin -> instrument
- Important: You need to enable "Monitor" for both tracks in order to have them both receive and play MIDI data (the right button in the track controls)

s1-midi-plugins.png
I hope it helps. Of course you can chain more MIDI plugins that way or have more than one instrument receive the output of a MIDI plugin.
 
This should be something JUCE would make relatively easy. (Relative to using the VST SDK directly, anyway.)
JUCE is a "little" curly in its not obvious(or as obvious as is usual in JUCE) how you make a "MIDI out based plugin - but yes very very possible.
 
Do you think it would it be possible for me to create a VST plugin with any of these tools having only experience from Kontakt script programming? If there were tutorials, that would be great. I want to convert a Kontakt multiscript to a VST plugin.
 
Do you think it would it be possible for me to create a VST plugin with any of these tools having only experience from Kontakt script programming?.
Yes it's possible and your KSP experience will give you good knowledge of programming logic, but you'll have to learn C++. Or have some patience and wait for HISE to implement MIDI out then you'll just need to learn HISE script, which is easier than C++ :)

Another option is Cabbage which does have MIDI out apparently and uses CSound which is much simpler than C++ - https://cabbageaudio.com/docs/using_cabbage/
 
Yes it's possible and your KSP experience will give you good knowledge of programming logic, but you'll have to learn C++. Or have some patience and wait for HISE to implement MIDI out then you'll just need to learn HISE script, which is easier than C++ :)

Another option is Cabbage which does have MIDI out apparently and uses CSound which is much simpler than C++ - https://cabbageaudio.com/docs/using_cabbage/
Thanks David,
Will cabbage allow me to create a custom interface, using the images (Wallpaper, switches etc.) that I have created for the multiscript?

Hmm, it seems the user will have to install CSound to use the exported VST plugins?
 
Last edited:
check out ProtoPlug: https://www.osar.fr/protoplug/

Protoplug uses Lua, its way way easier then C++. It will do both midi and audio. its free. Check it out. Its about as hard or easy to program as LogicPro's Scripter, but has better GUI support then Scripter, though still not great. It can also do audio processing if you want to.

if you want a little more sophisticated GUI, then BlueCatAudio's is the next step and not free.

After that it's JUCE. I don't recommend JUCE until you learn C++ which is not a quick process.

VST spec definitely provides for midi in and out. The scripters just make it easier to do simple tasks. If you need a more sophisticated plugin with a nice GUI, then I'd go JUCE all the way, but its going to be a longer project. I plan to learn JUCE this year, but I have many years experience with C++ already.
 
Top Bottom