Using Cantabile as a VST Host for MIDI-Only Programs

Recently I’ve had a few people email me asking if Cantabile can be used to host VST plugins for other MIDI-Only programs. It can, and it’s fairly easy to setup.

The trick to getting this working is to use a virtual MIDI cable. There are a few of these available, but the one I find the best is LoopMIDI.

Setting Up LoopMIDI

First, download and install LoopMIDI. Once installed, run it and type “CantabileIn” into the New Port Name field and press the + button to create a new virtual MIDI port:

(You can use the built in “loopMIDI” port but the names can become confusing if you have a few of these virtual cables running).

Setting Up Cantabile

Now start Cantabile and go to the Options | MIDI Ports page, click the Add button and choose “Input Port”. Give it the same name “CantabileIn” and place a check mark next to the MIDI device called “CantabileIn” — this is the virtual MIDI cable that we created above.

While we’re in Cantabile, lets setup a simple VST plugin to listen on that port. Click the Add Object button, choose Plugin and select a VST instrument. Here I’m using a simple piano plugin that I like for testing. Once you’ve loaded the plugin, change the source of the route in the Input Ports section to “Cantabile In”:

OK, we’ve now Cantabile running with a plugin loaded and listening on the virtual MIDI port called “CantabileIn”. The next step is to setup the “other program”.

Setting Up the MIDI Program

For this example I’ll be using “VanBasco Karaoke Player” but similar options should be available in any other MIDI software.

Go to the programs settings, and locate the setting for where MIDI should be sent. In the case of VanBasco, this is simply the Output Device drop-down in the Setup screen. Change it to CantabileIn:

That’s it! Now anything played from VanBasco, will be sent to Cantabile:

MIDI Channel Mapping

Most MIDI programs will have the ability to send different MIDI events on different MIDI channels. If you’re using a generic player like VanBasco, the MIDI files may have different instruments on different channels, or if you’re using a MIDI sequencer different tracks will generally be on different channels.

There are many different ways to handle MIDI channels in Cantabile, but the simplest is to simply send each MIDI channel to a different plugin.

To show how this works, lets load another plugin. This time I’m using VB3 — a great sounding organ plugin. You’ll notice now there are two routes in the Input Ports section. As before change the new route’s source port to CantabileIn.

Next we need to setup the channel mapping. Notice that in the Control column both routes are current set to Omni? This means send all incoming MIDI to the target without affecting the channel numbers. What we want instead is to send channel 1 to the piano and channel to the organ.

Click the Omni setting for the first route and choose Channel 1:

Repeat for the second route and choose channel 2. It should end up looking like this:

You can do lots of other things with MIDI routes too. For example you might like that second route to listen on channel 2, but send everything to the plugin on channel 1. Go back to the route settings and change the target channel to channel 2:

How you set things up here really depends on your requirements and the capabilities of the plugins you’re using — but Cantabile gives you a lot of flexibility here including keyboard splits, transpose settings, velocity curves and lots more.

What’s Next

If you’re new to Cantabile and VST in general, you might find this video on getting started handy which covers all the basics of downloading and installing plugins, loading them into Cantabile, setting up routing and more.

One final tip: if you restart your computer, don’t forget you’ll need to restart loopMIDI too.

If you’ve got questions, please get in touch or check out the forum.