Recently I’ve received a couple of emails asking about how to have the notes played on an external keyboard appear on Cantabile’s on-screen keyboard.

In Cantabile 2, this happened automatically but Cantabile provides more explicit control over it — but you need to set it up. Here’s how it works…

The Onscreen Keyboard Is Just Another MIDI Device

The trick to understanding this up is to realize that the on-screen keyboard is just another MIDI device — you can route MIDI both to it and from it.

Not only is it MIDI device, but it’s also a device that lives outside the Cantabile’s MIDI port configuration. This means you can map the on-screen keyboard device to any MIDI port.

When you run Cantabile for the first time, it automatically create two ports — one input and one output — called Onscreen Keyboard.

What’s more, these ports are automatically mapped to the “Onscreen Keyboard” MIDI Device.

Yes, it’s a little confusing at first but makes sense once you understand how Cantabile’s port mapping works.

Playing from the Onscreen Keyboard

With the default port mapping you need to create explicit routes from the on-screen keyboard to plugins for it to work.

eg: this route to an instrument won’t work with the on-screen keyboard:

but it can be resolved by changing the source of route like so:

You could also create an additional route to have both work:

Connecting the Onscreen Keyboard to the Main Keyboard

If you want the on-screen keyboard to always work like the main keyboard, you can avoid all the above fiddling with routes and simply map the “Onscreen Keyboard” device to the “Main Keyboard” port:

  1. Go to Cantabile Options -> MIDI Ports
  2. Double click on the Main Keyboard
  3. Leave your existing real keyboard selected, but also select the Onscreen Keyboard

Now MIDI from both devices will be mapped to the one MIDI port and you only need the one MIDI route from the Main Keyboard:

Reflecting Played Notes on the Onscreen Keyboard

Now that we know the On-screen Keyboard is just another device, to have it display notes from an external controller we just need to create a route for it.

Take a look at the second route in this screen shot:

Any MIDI events from the Main Keyboard will be forwarded to the on-screen keyboard and shown as highlighting notes as they’re played.

You can also use this to display notes from a media player:

Here you can see the media player’s MIDI output is sent to both a piano plugin and to the on-screen keyboard… and the notes light up as it plays.

Use Whatever Port Names You Like

Just to be clear, in this article I’ve used the default port names that Cantabile creates — “Onscreen Keyboard”, “Main Keyboard” etc…

The port mapping is completely flexible though — you can create whatever ports you like or need and map them to whatever devices you like.


The on-screen keyboard is just another MIDI device — map it to MIDI ports and create routes to and from it just like you would any other device.