Skip to content

MIDI and OSC ​

Any knob, fader or pad can drive Velo, and so can any app or phone that sends OSC.

MIDI learn ​

Velo finds MIDI controllers by itself: a controller plugged in while it runs connects within a second, and one unplugged comes back when you plug it in again.

Learn mode binds many controls in a row:

  1. Press L, or click the MIDI chip in the top bar. Every control you can learn gets an outline.
  2. Click a control: a macro knob, a slider in the inspector, a scene card, a variation, the preview's Launch, the Blackout chip or the tempo chip. It breathes while it waits.
  3. Move a knob or hit a pad. Bound: the control shows a badge such as CC 21 or Note C1.
  4. Click the next control, move the next knob. L or Esc leaves.

For a single control, right-click it and choose Learn MIDI. Forget on the same menu removes its binding.

The first message that means something wins: a knob has to move two steps, a pad has to be hit. That message only binds; it doesn't also act.

What a binding does ​

Bound toA knob or faderA pad or key
A macro or a valueSets it along its travelFlips it between its two ends
A scene cardLaunches that scene
The preview's LaunchLaunches the selected scene
A variationRecalls it
BlackoutTurns it on or off
The tempo chipTaps the tempo

A program change launches scenes too: program 1 the first scene, program 2 the second, and so on.

Soft takeover ​

When a scene launches, its macros jump to where that scene keeps them, but your knobs stay where they are. A knob bound to a macro waits until you turn it to where the macro is, then takes over, so nothing jumps. A knob bound to a value takes over at once. Learn sets this for you.

Encoders and fine knobs ​

Endless encoders work too. Learn spots the two common kinds; the MIDI menu switches any CC binding between a knob and the three encoder kinds (two's complement, binary offset and sign magnitude). A pair of CCs that a controller sends for one fine, 14-bit knob is learned as one control.

The bindings list ​

Click the arrow beside the MIDI chip: it lists the open ports and every binding, with its control, channel and target. A binding learned on one port can be made to listen on any port, or removed there.

Bindings are saved with the project, by port name. Unplug a controller and its bindings stay; plug it back and they work again.

OSC ​

Turn OSC on in Preferences → OSC. It shows this computer's address and the port to send to (9000 unless you change it) and the last address it heard. Velo listens on every network interface, so a phone with TouchOSC on the same network can drive it.

AddressArgumentsDoes
/velo/scene/launcha number from 1, or a nameLaunches a scene
/velo/scene/selecta number from 1, or a nameSelects a scene
/velo/scene/macro/1 to /80 to 1Sets a macro of the selected scene
/velo/variation/<n>Recalls a variation
/velo/param/<node>/<param>0 to 1 along its rangeSets a value; the node by its id or its name
/velo/tempo/tapTaps the tempo
/velo/tempo/bpmthe BPMSets the tempo
/velo/tempo/resyncPuts the downbeat on now
/velo/blackouton or off, or nothing to flipBlackout
/velo/freezeon or off, or nothing to flipFreeze
/velo/op/<operator>the operator's settings as JSONRuns any operator

/velo/op/ reaches every command in Velo: the same operators the command palette (Ctrl K) runs. That makes OSC the simplest way to script Velo from another language or a live-coding setup.

Keys ​

Every command has a key on the computer's keyboard too. The stage keys (scenes, blackout, freeze, tap, learn) are listed in Shortcuts.

The app is GPL-3.0-or-later; its libraries are MIT or Apache-2.0.