Switch between audio and midi input on audio interface

Dear all,

Although I am not sure if I will continue with Cantabile I hope that someone can help me.

I’ve got a Yamaha P140 digital piano, which I connect with an Audiogram 6 (antique, I know) to the USB of my computer. As the piano sound of the piano is quite ok I would like to use that sound as well.
However, if I connect the audio output of the P140 to the Audiogram input it will always be routed to the output of the Audiogram as well. So I will always have the piano sound in the mix. I can turn down the volume to 0, but that is not something you would like to do live.

So the question is: with a more fancy audiointerface is it possible to route the audio signal via the USB, computer, back to the output of the audiokinterface output, such that I can choose in Cantabile to use the P140 sound or not.

thanks for your replies!

There is an easier way: your piano should have a setting in its MIDI configuration (F8.3 on the P-140) called “Local Control” - you can set it to “on” or “off”. When you turn Local Control off, the keyboard is essentially disconnected from the internal sound generation of your piano and only sent out via MIDI.

So now you can route the all MIDI notes you get from your piano keyboard through Cantabile and decide per song (or song state) if you then route these MIDI notes to a VST instrument or back to your piano (of course, you’ll need to have a MIDI output to your piano then…).

All done!



I Torsten,
I see, that would be a solution indeed!

You’d think that the MIDI into the piano is going to generate the sound, even if Local Control is off?

Yep, because that’s what Local Off is designed for :wink:

You just need to configure your MIDI input channel correctly on your piano - and use the same for Cantabile output to your piano.


… which, as a side effect, will introduce latency - an extra delay between hitting the key and hearing the sound.

Some folks report 12ms (https://forums.cockos.com/showthread.php?t=128767) on the Audiogram 6.

Just tried it out, on quite an old desktop that gives loads of latency with most instruments:
works brilliant! If quite fast pieces no disturbing latency.

by the way, I measured the RTL of my Yamaha Audiogram 6 with RTL utility: 7.8 ms RTL with 64 samples (1.5 ms).

…which would also occur in @Joop’s original scenario of routing the piano audio output through Cantabile :wink:

1 Like

I was thinking that …

… was being done directly in the audio interface by some flavor of direct monitoring. But …

Right You Are!

and … It’s all so complicated!!

Yup - I guess that actually was the case in the original scenario. But @Joop was asking in his original post if he could manage the sound coming from his piano by routing it through Cantabile - so it didn’t just pass through all the time. And routing it through Cantabile would definitely incur the full round-trip latency…

And yes, it’s a pity that “control” signals like MIDI have the same buffer cycles that audio signals have - given their nature, they could actually be treated on an ad-hoc, interrupt basis. That way, plain routing of MIDI signals could be a lot faster.

But given that the whole architecture of VST treats audio and MIDI in the same buffer-oriented logic, there wouldn’t be a lot gained if @brad created a faster mechanism for treating MIDI data - as soon as MIDI passes through VST plugins, it becomes wrapped and quantized into that buffering mechanism.

So essentially, it’s all about being able to lower your buffer sizes to reduce the pain…

And yes - it’s all so complicated. And it becomes even more complicated with VST3 and MIDI 2.0.

MIDI 1.x is just so simple - just a few message types to understand and handle, simple byte-oriented data, it’s just so easy to process. I’m not really ready to deal with MIDI 2.0 and all its levels of complexity. Give me simple note-on, note-off and CC any day :wink:

1 Like