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.
BCEditor is designed to configure your B-Control unit — it is not a controller. The physical function keys on the device (STORE, LEARN, EDIT, EXIT) and other BC function buttons are hardware operations; BCEditor intentionally does not emulate or trigger them.
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.
The BCR2000 and BCF2000 can connect in two ways:
⚠ Apple Silicon (M-series) USB known issue
After extensive real-world testing, it has been found that Apple Silicon Macs send USB MIDI at a speed the BCR2000/BCF2000 firmware simply cannot keep up with. This only affects outgoing SysEx transfers (sending presets to the device) — receiving MIDI from the device works normally. Unlike USB timing issues on other platforms, this one could not be resolved with SysEx send delays or by splitting messages — the M-series USB subsystem sends data fundamentally too fast for the device's SysEx handling.
If you are on an Apple Silicon Mac and experience dropped or garbled preset transfers, the recommended workaround is to use a DIN MIDI interface instead of USB.
If a reliable software-side solution is ever found, it will be implemented in BCEditor — that's a promise!
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.
One LED per position; when the value falls between two positions, both adjacent LEDs light.
Like 1-2 Dots but ring 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 — Binary SysEx (Behringer factory files and BC Manager exports)
.bcr — BCL text preset for BCR2000 (BC Manager).bcf — BCL text preset for BCF2000 (BC Manager).bc2 — BC Manager project file (BCL text).txt — Plain BCL text.bcr, BCF2000 presets as
.bcf. Both are plain BCL text files and can be opened in any text editor.
.bcr or .bcf
file, depending on the active device model.
Imported files are automatically detected as BCR2000 or BCF2000 from the file header or extension. The model can be overridden after import.
BCEditor uses the BCL (B-CONTROL Language) protocol over SysEx to read from and write to the device. Transfer operations are available in the Banks panel:
Transfer progress and any BCL responses are shown in the Log tab of the bottom panel.
On Apple Silicon Macs, USB SysEx is unreliable — see the Apple Silicon USB known issue note in the MIDI connection section.
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.
On Apple Silicon Macs, USB SysEx is unreliable regardless of SysEx Delay settings — use an external USB-MIDI interface with DIN cables and set the device to S-1 mode. On other platforms, try increasing the SysEx Delay in Settings (20–50 ms) if transfers are intermittently unreliable.
Use the receive icon (↓) on a bank slot to read the currently active preset from the device. 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 | Import |
|---|
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.