Behringer
Behringer X-TOUCH MINI
Behringer X-TOUCH MINI is a MIDI hardware controller by Behringer: 8 encoders, 1 fader and 24 buttons.
It sends CC and Note on channel 11. The profile cites 3 sources. No control is flagged unverified.
- Manufacturer docs
- Community notes
- Kind
- hardware device
- Maker
- Behringer
- Controls
- 33 controls
- Messages
- CC · Note
- MIDI channels
- 11
- LED feedback
- none sent
- Signals
midi/xtouchmini/…- Port name matches
/x-?\s*touch\s*mini/i
Drag knobs and faders · tap pads and keys · or plug the real one in and press Connect. Nothing is sent anywhere unless you add a MIDI out.
MIDI implementation
Every control of Behringer X-TOUCH MINI and the message it sends
Generated from the profile file, so it is the same table the on-screen controller plays. Channels are 1–16; numbers are real MIDI numbers.
| Control | Type | Message | Ch | Number | Signal | LED feedback | Verified |
|---|---|---|---|---|---|---|---|
1 enc1 |
encoder | CC · absolute | 11 | 1 | midi/xtouchmini/enc1 |
— | yes |
2 enc2 |
encoder | CC · absolute | 11 | 2 | midi/xtouchmini/enc2 |
— | yes |
3 enc3 |
encoder | CC · absolute | 11 | 3 | midi/xtouchmini/enc3 |
— | yes |
4 enc4 |
encoder | CC · absolute | 11 | 4 | midi/xtouchmini/enc4 |
— | yes |
5 enc5 |
encoder | CC · absolute | 11 | 5 | midi/xtouchmini/enc5 |
— | yes |
6 enc6 |
encoder | CC · absolute | 11 | 6 | midi/xtouchmini/enc6 |
— | yes |
7 enc7 |
encoder | CC · absolute | 11 | 7 | midi/xtouchmini/enc7 |
— | yes |
8 enc8 |
encoder | CC · absolute | 11 | 8 | midi/xtouchmini/enc8 |
— | yes |
Push push1 |
button | Note · momentary | 11 | 0 · C-1 | midi/xtouchmini/push1 |
— | yes |
Push push2 |
button | Note · momentary | 11 | 1 · C#-1 | midi/xtouchmini/push2 |
— | yes |
Push push3 |
button | Note · momentary | 11 | 2 · D-1 | midi/xtouchmini/push3 |
— | yes |
Push push4 |
button | Note · momentary | 11 | 3 · D#-1 | midi/xtouchmini/push4 |
— | yes |
Push push5 |
button | Note · momentary | 11 | 4 · E-1 | midi/xtouchmini/push5 |
— | yes |
Push push6 |
button | Note · momentary | 11 | 5 · F-1 | midi/xtouchmini/push6 |
— | yes |
Push push7 |
button | Note · momentary | 11 | 6 · F#-1 | midi/xtouchmini/push7 |
— | yes |
Push push8 |
button | Note · momentary | 11 | 7 · G-1 | midi/xtouchmini/push8 |
— | yes |
1 b1 |
button | Note · momentary | 11 | 8 · G#-1 | midi/xtouchmini/b1 |
— | yes |
2 b2 |
button | Note · momentary | 11 | 9 · A-1 | midi/xtouchmini/b2 |
— | yes |
3 b3 |
button | Note · momentary | 11 | 10 · A#-1 | midi/xtouchmini/b3 |
— | yes |
4 b4 |
button | Note · momentary | 11 | 11 · B-1 | midi/xtouchmini/b4 |
— | yes |
5 b5 |
button | Note · momentary | 11 | 12 · C0 | midi/xtouchmini/b5 |
— | yes |
6 b6 |
button | Note · momentary | 11 | 13 · C#0 | midi/xtouchmini/b6 |
— | yes |
7 b7 |
button | Note · momentary | 11 | 14 · D0 | midi/xtouchmini/b7 |
— | yes |
8 b8 |
button | Note · momentary | 11 | 15 · D#0 | midi/xtouchmini/b8 |
— | yes |
9 b9 |
button | Note · momentary | 11 | 16 · E0 | midi/xtouchmini/b9 |
— | yes |
10 b10 |
button | Note · momentary | 11 | 17 · F0 | midi/xtouchmini/b10 |
— | yes |
11 b11 |
button | Note · momentary | 11 | 18 · F#0 | midi/xtouchmini/b11 |
— | yes |
12 b12 |
button | Note · momentary | 11 | 19 · G0 | midi/xtouchmini/b12 |
— | yes |
13 b13 |
button | Note · momentary | 11 | 20 · G#0 | midi/xtouchmini/b13 |
— | yes |
14 b14 |
button | Note · momentary | 11 | 21 · A0 | midi/xtouchmini/b14 |
— | yes |
15 b15 |
button | Note · momentary | 11 | 22 · A#0 | midi/xtouchmini/b15 |
— | yes |
16 b16 |
button | Note · momentary | 11 | 23 · B0 | midi/xtouchmini/b16 |
— | yes |
Fader fader |
fader | CC | 11 | 9 | midi/xtouchmini/fader |
— | yes |
LED feedback is not modeled for this one yet, so OAV does not light its LEDs. Every control still plays and sends its message.
Sources
- manufacturer X-TOUCH MINI Quick Start Guide (Behringer / MUSIC Group, P0B3M; mirror)MIDI map: Preset A on MIDI channel 11 — encoders turn CC 1–8, push notes C-2…G-2 (0–7), upper buttons G#-2…D#-1 (8–15), lower buttons E-1…B-1 (16–23), fader CC 9; Preset B (channel 11) — CC 11–18, notes 24–47, fader CC 10. RX table (global channel): LED-ring style CC 1–8, ring value CC 9–16 (0 off, 1–13 one LED, 14–26 blink, 27 all, 28 all blink), button LEDs notes 0–15 velocity 0 off / 1 on / 2 blink, Program Change 0/1 = layer A/B, CC 127 = standard/MC mode. 8 endless encoders with 13-LED rings, 16 backlit buttons, 60 mm fader; MC mode = hold MC while plugging in; 325 × 102 mm
- community X-Touch-Mini-FS2020 docs (non-official)encoders must be switched to Relative2 in the X-TOUCH Editor for that app — i.e. the factory encoders are not relative; editor shows encoder push as Momentary notes on channel 11
- community Q Light Controller+ forum — Behringer X Touch Mini (non-official)input on channel 11; the fader is CC 9 on layer A and CC 10 on layer B; buttons pressed on the unit only light while held (momentary)
Notes
Standard mode (not MC), Layer A, as shipped: everything on channel 11. Layer B sends CC 11–18 / notes 24–47 / fader CC 10 on the same channel — a layer the faceplate cannot show, so it is not modelled (學習 rebinds). The encoders are endless but send absolute 0–127 by default (the unit keeps the value and draws it on the LED ring); switch them to a relative mode in the X-TOUCH Editor and set "relative" here to match. Layer A / B select presets inside the unit. LED feedback is not wired: button LEDs and LED-ring values are addressed on the unit's global channel (notes 0–15, CC 9–16), whose factory value is not documented (owners report 1 or 12). MC mode (Mackie Control) is a different protocol and is not covered.
Port names it recognises
- matches
/x-?\s*touch\s*mini/i
Signals
Every control publishes midi/xtouchmini/<control> (0..1), plus /raw; pads add /hit, encoders /delta, keys /on /off and n<note>; the last control touched is midi/xtouchmini/last.
Use it
Use Behringer X-TOUCH MINI in your own work
Embed it with one line
No import map, no build step. Change
layout, addhardware="ask"for a Connect button.<script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script> <oav-controller profile="behringer-x-touch-mini" readout></oav-controller>Or as an iframe
For places that only take an iframe. Every event arrives as a
postMessage.<iframe src="https://openaudiovisual.com/embed/controller/?profile=behringer-x-touch-mini&readout" width="720" height="249" style="border:0;max-width:100%" allow="midi" title="Behringer X-TOUCH MINI"></iframe> <script> // every control the visitor plays arrives here addEventListener('message', (e) => { if (e.data?.source !== 'openav' || e.data.type !== 'control') return; console.log(e.data.detail.signal, e.data.detail.value); }); </script>Send it to Ableton, TouchDesigner or Resolume
What you play on screen leaves as real MIDI on the IAC bus (macOS) or a loopMIDI port (Windows). The steps are on the catalog page.
<!-- what you play on this controller → the IAC bus (macOS) → Ableton, TouchDesigner, Resolume --> <script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script> <oav-controller profile="behringer-x-touch-mini" midi-out="IAC" readout></oav-controller> <!-- Windows: midi-out="loopMIDI" · let the visitor pick a port: midi-out="ask" -->macOS: Audio MIDI Setup → MIDI Studio → IAC Driver → “Device is online”. Windows 11: the built-in Windows MIDI Services have a loopback (not tested by us); older Windows: install loopMIDI, add a port and use
midi-out="loopMIDI".
In p5.js, with one line
The one-line injection names knobs, faders and pads by their order in this profile, the order of the table above. Add ?profile=behringer-x-touch-mini to make the on-screen controller this one; a real Behringer X-TOUCH MINI is recognised by its port name.
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=behringer-x-touch-mini' }));| In your sketch | Control | Message |
|---|---|---|
fader1 | Fader fader | CC 9 · Ch 11 |
function draw() {
background(fader1 * 255); // Fader · CC 9
}Encoders, buttons, wheels and strips are not numbered: read them as midi.cc[number] in the table above, or react in controlChange(cc, value, ch).
Missing
Is your controller not here?
Open an issue with the brand and model, whether you have the unit and a link to the manual. Or write the profile yourself: it is one JSON file.
GitHub
Is something in this data wrong?
Every number on this page comes from one JSON file. If it disagrees with your unit or the manual, tell us which firmware you checked and we fix the file.