Cantabile now supports audio and MIDI loop back.

Loop back provide the ability to route audio and MIDI from inside a song or rack back to one of the environment or rack input ports.

This is useful for a few scenarios:

  1. Playback of recorded media files to the same inputs from where they were recorded
  2. Ability to route MIDI files back to an input so events in the file can be used in bindings
  3. Using triggers to invoke a binding

Usage

Using the loopback support is as simple as selecting the appropriate input port from the list of target ports (as shown in the above screen shot) on either a route or as the target of a trigger.

Within a rack you can also loopback to the rack’s input ports:

Caveats and Warnings

There’s a couple of dangers you should be aware of before using this feature.

You need to be careful not to create feedback loops. This applied to both audio and MIDI loops.

If you create a loopback such that MIDI events loopback on to the same input port you’ll end up in a situation where the same event will just keep looping infinitely. Cantabile takes no measures to prevent this since it’s really difficult to detect accurately — especially if there are MIDI filters or MIDI processing plugins manipulating the MIDI as it loops around. The only way to recover from this is to stop and restart the audio engine.

If you create an audio feedback loop it’ll create the typical audio feedback loop screeching sound and you’ll need to turn down the gain somewhere in the chain to stop it.

The other situation where you need to be careful with loopback is when using a trigger to inject MIDI back into an input port which is then bound to a binding. Care needs to be taken to not create a trigger that invokes a binding that invokes an action that might re-invoke the trigger. A similar infinite loop of insanity might ensue.

In other words you need to be careful when using loopback. You’ve been warned!

Latency

With both audio and MIDI loopback there is one audio cycle latency on the loopback.

That is a MIDI event sent via loopback in this audio cycle won’t arrive at the MIDI input port until the next audio cycle. Same for audio — the signal is delayed by one audio cycle.

Possible Future Uses

In the future I hope to leverage this loopback support to simplify the playback of recordings made with Cantabile’s recorder. The intention is to provide an easy way to just hit a Replay button and have the recording replayed to the same input ports from which it was captured.

In the meantime you can use the media player and manually created routes to the loopback ports to achieve a similar result.

Loopback ports are available now in build 3165 and later.