Tech Note:MIDI Bindings

From Loopy Pro Wiki
Revision as of 03:36, 4 November 2024 by Edwards (talk | contribs) (→‎Avoiding False Triggers - Defer Other Actions)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This page covers helpful details of Loopy Pro's MIDI bindings. MIDI Bindings are what binds (maps) a MIDI Command with the actions triggered by the commands. MIDI Bindings are created when you use MIDI Learn.

Bindings and Profiles

MIDI Bindings are stored in profiles that are listed in the Control Settings panel. Profiles are either local to the project or global. Local/project profiles are stored in the project itself. Global Profiles are stored in the Loopy Pro folder. MIDI bindings can be created manually or with MIDI Learn.

MIDI Learn and Profiles

When you MIDI Learn, you choose what profile the binding is stored in by using the popup available in the upper-left of the screen.

Editing and Viewing Profiles

Choose Control Settings to see a listing of the available profiles, both local and global.

Tap on a profile so see the bindings that it contains. Bindings are grouped by the controller to which the actions are bound. Tap Clear to clear all of the bindings for the controler. Tap Transfer to copy or move the bindings to another controller. Tap Edit to enter list-edit mode where you can delete individual bindings. You can swipe left on a binding to delete it.

Additional Binding Topics

Binding Tap/Hold/Double-Tap to the same message

Loopy Pro allows tap, hold and double-tap of the same MIDI message (such as a MIDI CC or MIDI note) sent from a controller.

Normally, if you map tap and hold and/or double-tap to the same controller, the tap binding will be triggered immediately when the "on" message is received. This means that on a double-tap or hold, the tap binding will be triggered in addition to the double-tap or hold. This is unavoidable if you need immediate response to a single tap with no latency.

Avoiding False Triggers - Defer Other Actions

There is an option that avoids triggering the tap action when double-taps or holds happen. In order to do this, Loopy Pro needs to wait a short while to be sure that a hold or double-tap isn't in process. Double-tap and hold bindings have an option Defer Other Actions that ensures that the tap will not be triggered if the interaction is a hold or double-tap. This can be turned on in the binding's trigger settings. When actions are deferred, Loopy Pro will try to compensate for the delay. For example when tap is set to record and hold is set to something else, the recording will end up being the same as if there was no delay when deferred action is on even though the on-screen animation is delayed. While the recording will be the same as if the action had not been deferred, playback of the first loop will start from a point that is slightly delayed (the point where Loopy recognized no hold was going to happen).

To access the Defer Other Actions option, tap on the Trigger section of the binding.

Hold delay time, If there is only a tap and a hold binding, the tap is deferred until the off message is received or until 500 milliseconds have passed. By making short taps, the delay is minimal. The 'on' is processed as soon as you release the trigger (such as footswitch or MIDI pad).

Double-tap delay time. If tap and double-tap are mapped to the same MIDI message, Loopy Pro waits 250 ms after the on message for a double-tap's second on message.

Strategies When Not Deferring Actions

You may sometimes need immediate response to the on action but want to avoid the consequences of the false trigger when a double-tap or hold occurs. To do this, you add an action as the start of your double-tap and hold bindings to undo the falsely started action.

Let's say you want tap to toggle record, double-tap to peel (undo) the last overdub and hold to stop. Your bindings would look something like this:

  • Tap: record/stop selected clip
  • Double-tap: stop record (selected clip), peel (selected clip)
  • Hold: stop record (selected clip), Stop (Play) (selected clip)