Everything you need to know about using MidiQ with your Behringer B-CONTROL hardware.
MidiQ is a browser-based MIDI editor for Behringer BCR2000 and BCF2000 controllers. It uses the Web MIDI API to communicate directly with your hardware — no drivers or plugins required.
No account is required to use the editor. Create an account to save presets to the cloud, organize them in banks, and import/export files.
Click the Settings icon (gear) in the left rail to open the Settings panel.
MIDI port preferences are saved automatically when you are logged in.
Use the ROTARY / FADER toggle on the right side panel to switch between device models. This changes the virtual layout without affecting the preset data.
Both models share the same preset format. Faders on the BCF2000 are internally mapped to encoders 33–40.
Click any encoder, fader, or button on the virtual hardware to select it and open the editor panel on the right.
Click the </> button in the editor header to toggle the BCL code editor, which shows the raw BCL lines that will be sent to the device for the selected element. The editor is fully editable: each line is validated as you type, with line numbers and red highlights marking syntax errors. When the code is valid, your changes are applied to the element automatically. The form-based editor below will reflect them when you switch back.
Changes are saved automatically. Use Ctrl+Z to undo and Ctrl+Y / Ctrl+Shift+Z to redo.
Element sends no MIDI. Useful to disable an element without losing its other settings.
Assigns a built-in B-CONTROL hardware function (e.g. preset select, store, learn). The value selects which function.
The most common type. Sends a CC number (0–127) with a value. Supports 7-bit (0–127) and 14-bit (0–16383) ranges via high-resolution modes.
14-bit parameter addressing (0–16383). Used by synths that need more controllers than CC provides. Value range also supports 14-bit.
Sends Note On/Off. Set the note number (0–127) and fixed velocity (1–127). Useful for drum triggers, mute buttons, or performance pads.
Sends a program change. The encoder/button value determines the program number.
Sends channel pressure messages.
Sends pitch bend messages with 14-bit resolution.
Roland GS / Yamaha XG parameter control over SysEx. The value selects the target parameter.
Define an arbitrary SysEx message using BCL
.tx syntax. The template contains literal hex bytes and token
identifiers that are replaced at runtime.
val — 7-bit value (bits 0–6)
val7.13 / val0.6 — high/low bytes of a 14-bit value
rel2s — 2's-complement relative
reloffs N — relative with offset N
relsign N — sign-magnitude relative, N bits
cks-1 N / cks-2 N — Roland/Yamaha checksum from byte N
ifp / ifn — conditional byte (positive/negative value)
Button-specific behavior: Momentary (send on press), Up/Down (two values: press and release), Toggle (latching).
The top row of 8 push encoders supports up to 4 independent groups, effectively giving you 32 configurable encoders in the same physical row. Click the 1 / 2 / 3 / 4 buttons on the right side panel to switch the active group. The LED display shows the active group.
Each group stores its own MIDI assignments independently. The dedicated encoders and buttons (rows below) are not affected by group switching.
Push encoders and dedicated encoders have a 15-segment LED ring. The LED field in the element editor controls how it displays the current value:
All LEDs off at all times.
Single LED tracks the value.
Like 1 Dot but ring off at minimum.
Single dot, starts from 12 o'clock.
Like 1-2 Dots but off at minimum.
Fill from left edge up to value.
Like Bar but off at minimum.
Symmetric fill outward from center.
Center-origin dot, moves left or right.
LEDs fill inward from both edges.
Filter cutoff visualization.
Damping / decay visualization.
Rearrange element assignments by dragging them on the virtual hardware:
Presets are organized into banks. Click the Banks icon (folder) in the left rail to open the banks panel.
.syx, .bcr,
.bcf, .bc2, .txt (BCL text).
.bcr, BCF2000 presets as
.syx.
Imported files are automatically detected as BCR2000 or BCF2000 from the file header. The model can be overridden after import.
MidiQ uses the BCL (B-CONTROL Language) protocol over SysEx to read from and write to the device. The four function keys on the right side panel control transfers:
Transfer progress and any BCL responses are shown in the Log tab of the bottom panel.
Tip: If transfers fail on Apple Silicon Macs over USB, increase the SysEx Delay in settings, or use an external USB-MIDI interface with DIN cables and set the device to S-1 mode.
The bottom panel can be expanded by clicking or dragging its top edge. It has two tabs:
Use the Filter button (funnel icon) in the MIDI Monitor tab to show/hide specific message types or directions. Use the Copy button to copy the current tab content to the clipboard.
| Ctrl + Z | Undo |
| Ctrl + Y / Ctrl + Shift + Z | Redo |
| Escape | Close the element editor |
| Ctrl + click | Toggle element in/out of multi-selection |
| Shift + click | Select range of elements |
| Shift + drop | Insert instead of swap when dragging |
| Alt + drop / Ctrl + drop | Copy instead of move when dragging |
Web MIDI is only supported in Chromium-based browsers: Chrome, Edge, and Opera. Firefox and Safari do not support Web MIDI. Make sure your device is connected before opening the Settings panel.
Increase the SysEx Delay in Settings (try 20–50 ms). On Apple Silicon Macs, USB SysEx is unreliable — use an external USB-MIDI interface with DIN cables and set the device to S-1 mode.
Use LEARN to read the preset currently stored on the device into the editor. Also verify that the Device ID in Settings matches the ID configured on your hardware.
S-4 mode causes the device to echo SysEx back, which can disrupt transfers. Use S-1 for external MIDI or U-1 through U-4 for USB.
Select multiple elements with Ctrl+click or Shift+click to open the bulk editor panel. Only filled fields are applied — leave a field blank to keep existing values on each selected element.
Browse community presets.
| Preset | Model | Author | Date | Rating | Your Rating |
|---|
Sends program number from encoder/button value.
val (0–127 bits
0–6),
val7.13 val0.6 (14-bit split),
rel2s, reloffs N, relsign N,
cks-1 N, cks-2 N, ifp / ifn
Only filled fields are applied. Leave blank to keep existing values.