DOC.04·~5 min read·updated 2026-06-07

Setting up MIDI bindings

WebMIDI permission, learn-mode mapping, 14-bit CC, expression-pedal calibration, and how bindings persist across sessions.

MIDI bindings let you control any knob in Axion from a hardware controller — a footswitch board, a fader strip, a single expression pedal. Bindings are persisted globally, which means the controller does the same thing across every preset you load. That's the right shape for live performance, where you don't want a preset switch to also re-map your pedal.

MIDI bindings are a Pro feature.

Granting MIDI access

The browser gates getUserMedia and requestMIDIAccess separately. The first time you open the MIDI panel, the browser prompts for MIDI access — click Allow. Permission persists for the origin.

If you previously dismissed or denied the prompt, re-grant it in the browser's site settings (usually click the lock icon in the address bar → site permissions → MIDI → reset to default). Refresh after, and the prompt fires again on next panel open.

The MIDI panel

Open it from the preset bar's menu → MIDI bindings. The panel lists:

  • Connected devices (input + output, though Axion only listens on input).
  • All current bindings — knob, MIDI source (note / CC / pitch bend), channel, value-range mapping.
  • The Learn button.

If your controller appears under devices, it's online. Disconnect / reconnect resets the device state if it stops responding.

Learn mode

The fastest way to bind a knob:

  1. Click Learn in the MIDI panel. The button lights up.
  2. In Axion, click the knob, button, or pedal slot you want to bind.
  3. On your controller, move the corresponding knob, press the corresponding button, or step on the pedal.
  4. Axion captures the source (e.g., CC 12 · channel 1), maps it to that knob's parameter range, and the binding is live.

Learn mode stays active until you press Learn again or hit Esc. You can chain multiple bindings — click knob, move controller, click next knob, move next controller, and so on.

To remove a binding, find it in the list and click the × in its row. To re-bind, learn over the top.

CC, 14-bit CC, and expression

Three source types are supported:

  • CC (7-bit) — the standard 0–127 range. Coarse, but universal.
  • 14-bit CC — pairs an MSB CC with a corresponding LSB CC for full 0–16383 resolution. Axion auto-detects the pair when both CCs arrive in quick succession during learn. Useful for knob sweeps where 7-bit stepping is audible (chorus rate, delay time).
  • Pitch bend — handy for expression pedals on controllers that route the pedal to pitch bend by default. Mapped as a signed range; the centre maps to a knob's midpoint.

Footswitches bound to a pedal's bypass act as toggles, whether they send notes or CC. Axion treats note-on — and any CC press (value 64 or above) — as a single toggle, and ignores the release (note-off, or a sub-64 CC value) so a hold-and-release doesn't flip the pedal back.

This makes Axion work with footboards that send a constant value per press with no separate "off" event. A stock-firmware Behringer FCB1010, for example, emits CC 127 every time you tap a switch and nothing on release — bind the switch to a pedal's bypass via Learn and each tap toggles the pedal. (Set its two expression pedals to dedicated CC numbers outside the footswitch range — CC 100 and CC 101 work well — then bind each to any knob; the full 0–127 sweep maps to the knob's range.)

Toggle vs Level

Some controllers don't send a constant value — a latching switch sends a distinct on value (≥ 64) when engaged and an off value (< 64) when released, and you want the pedal to follow the switch position. For CC bindings to a pedal's bypass, each row in the MIDI panel shows a Toggle / Level switch:

  • Toggle (default) — each press flips the bypass; the release is ignored. Right for footswitches that send one value per press.
  • Level — the CC value sets bypass directly: on-value engages the pedal, off-value bypasses it. Right for latching switches that send both on and off.

The setting is per binding and persists with it. Note-based footswitches are always toggles (a note has no off-value to follow), so the switch only appears for CC bindings.

Expression pedal calibration

Expression pedals rarely send the full 0–127 range. To get full sweep:

  1. Bind the pedal to a knob as normal.
  2. Open the binding's settings (gear icon in the row).
  3. Toggle Calibrate. The panel shows live input values.
  4. Sweep the pedal heel-to-toe slowly. Axion records the actual min / max.
  5. Save. Future sweeps map your real pedal range to the knob's full range.

Calibration is per-binding, so the same pedal can drive different knobs over different ranges if you bind it twice.

Bindings across presets

Bindings are global, not per-preset. The advantage is consistency — your expression pedal always controls master volume, regardless of which preset is loaded. If you need a binding that differs per preset, save the parameter value as part of the preset and use a binding for runtime adjustment only.

Bindings persist in IndexedDB across sessions. If your Pro licence lapses, bindings stay in the database (your data, your keep) but stop firing. Restoring Pro brings them back instantly.