Designing New Virtual Rack- best way?

There’s one audio cycle of latency on both audio and MIDI loopback ports. ie: audio or MIDI sent on this audio cycle will appear on the loopback port on the next.

Brad

2 Likes

Thanks for the clarification @brad, but can you explain what “one audio cycle” means in a real world context? If my buffer size is 512 resulting in buffer duration of 11.61 ms at 41.1 kHz. How will that change when using a loopback?
Thank you - David

Aaah, good to know!

That means I’ll rework my input racks to use the MIDI inputs directly without going through the loopback route; for faders, pots and buttons, the additional latency doesn’t really matter, but for keystrokes, it will definitely matter…

Hi @Torsten, Please keep me updated on how you go about doing this without the loopback.
Thanks - David

Pretty simple: I edited the MIDI ports “Main Keyboard” and “Second Keyboard”. Now they’re assigned directly to the MIDI ports coming from my controller keyboards. But I configured a filter on these ports so they only listen on channel 1 and only pass through notes, pressure, pitch bend and modulation.

At the same time, I killed the routes from my routing racks to “Loopback - Main Keyboard” and “Loopback - Second Keyboard” - don’t want double notes.

Now all time-critical messages (notes, bend, mod and aftertouch) flow directly from the MIDI port to the input racks without going through loopback; all the complicated stuff that needs conversion (faders, pots, buttons, pedals) goes through the conversion racks and loopback.

With my typical buffer settings of 128 samples, that’s roughly 3 ms carved out of the latency - definitely helps with the “snappiness” of the keyboard action…

Cheers,

Torsten

1 Like

Here’s the new routing diagram to illustrate the above:

2 Likes

What if notes are passed through a rack, is this also a clock cycle?

In that case, no additional latency. Basically the Cantabile’s MIDI processing for each cycle works in a forward only direction. Everything in the forward direction can be processed instantly. Anything that goes backwards (loopbacks) needs to be buffered for the next audio cycle.

Brad

3 Likes

Hi,
I try to abstract my keyboards in two racks MainKB and SecondKB. In those racks I created different outputs “Notes”, “Modulation”, “Aftertouch” and “Pitch Bend” following the setup @Torsten described.
In only use bindings, no midi filters.
Now I have a problem with the midi “notes” output. It sends out the notes but the velocity is mapped to 127. The midi monitor is telling me that the midi input is correct. (Midi notes with different velocities). I cannot figure out why the velocity is always 127 in the midi “notes” output.

thanks,
Johan

Don’t use bindings to route notes - you’ll lose the velocity information. That’s how Note bindings work currently.

You’ll need to use routes (with the setting ‘notes only’) for notes.

1 Like

See discussion Here.