Help & documentation
Everything you need to know about using MidiQ with your Behringer B-CONTROL hardware.
Getting started
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.
- Open MidiQ in a supported browser (Chrome, Edge, or Opera).
- Connect your BCR2000 or BCF2000 via USB or a standard DIN MIDI interface.
- Click the Settings icon (gear) in the left rail, select your MIDI input and output ports, and click Connect.
- Click any encoder, button, or fader on the virtual hardware to open the element editor and configure its MIDI assignment.
- Send the preset to your device using the Send to device button in the bank panel, or export it as a BCL/SysEx file.
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.
MIDI connection
USB vs DIN MIDI
The BCR2000 and BCF2000 can connect in two ways:
- USB - Plug directly into your computer. This is the simplest option and works on Windows and Linux without additional hardware. On most Macs it works as well - see the note about Apple Silicon below.
- DIN MIDI (5-pin) - Connect via a standard MIDI interface (USB-to-MIDI adapter or audio interface with MIDI ports). This is the most reliable option on all platforms, including Apple Silicon Macs.
⚠ 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!
Settings panel
Click the Settings icon (gear) in the left rail to open the Settings panel.
- In port / Out port - Select the MIDI ports matching your BCR/BCF device.
- Connect - Opens the selected ports. The status indicator in the toolbar turns green when connected.
- Refresh - Rescans available MIDI ports after you connect or disconnect hardware.
- SysEx Delay - Optional delay (ms) between SysEx messages. May help on some setups; not effective for the Apple Silicon USB issue described above.
- Model / Firmware - Read-only fields showing device info received after connecting.
MIDI port preferences are saved automatically when you are logged in.
Global device setup
Global Setup contains settings stored by the hardware rather than in one preset. Expand it in Settings to edit:
- Device ID (1–16) - Selects which device responds on a shared MIDI connection.
- MIDI mode (U-1 to U-4 USB or S-1 to S-4 DIN) and receive channel - Controls routing and Program Change reception.
- Foot switch polarity and startup preset - Configure pedal wiring and the preset loaded at power-on.
- Transmission interval and dead time - Tune message timing and encoder/fader debouncing.
Click Send Global to Device to transmit these settings immediately. The toolbar Panic Reset sends All Notes Off and Reset All Controllers on all 16 MIDI channels.
BCR2000 & BCF2000
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.
BCR2000 (ROTARY)
- 8 push encoders (top row, 4 groups = 32 virtual)
- 24 dedicated encoders (3 rows of 8)
- 16 buttons (upper + lower row)
- 4 user buttons (B49–52)
BCF2000 (FADER)
- 8 push encoders (top row, 4 groups = 32 virtual)
- 8 motorized faders (encoders 33–40)
- 16 buttons (upper + lower row)
- 4 user buttons (B49–52)
Both models share the same preset format. Faders on the BCF2000 are internally mapped to encoders 33–40. Drag an encoder or fader to change its value; click a button to trigger its configured momentary, toggle, or increment behavior.
The LED display shows the active preset and can show an element value when Show value is enabled. The status LEDs indicate incoming MIDI, outgoing DIN activity, foot-switch presses, and the current mode. B49–B52 are user-configurable buttons; B61/B62 are foot-switch inputs, with the BCF2000 also exposing a continuous foot controller.
Element editor
Click any encoder, fader, or button on the virtual hardware to select it and open the editor panel on the right.
Common fields
- Name - A label displayed on the virtual element (up to 24 characters).
- Type - The MIDI message type. See MIDI types below.
- Channel - MIDI channel 1–16.
- Min / Max - Output value range. For CC and NRPN this supports 14-bit values (0–16383) when used with 14-bit modes.
- Default - Value sent when the element is reset (CC only).
- Show value - Display the current value numerically on the element.
- Color - A color dot for visual grouping.
- Reset - Resets all parameters on this element to default.
Encoder-specific fields
- Mode - Absolute or Relative, in 7-bit or 14-bit resolution. Relative variants: 1 (signed bit), 2 (two's complement), 3 (sign-magnitude).
- LED - How the LED ring visualizes the value. See LED ring modes below.
- Resolution - Encoder steps per rotation (1–65535).
Button-specific fields
- Mode - Momentary: sends value on press and release. Toggle: latches on/off. Increment: each press adds or subtracts a step value.
- Step - Step size for Increment mode (-127–127, excluding 0).
BCL code view
Click the toggle 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.
MIDI types
None
Element sends no MIDI. Useful to disable an element without losing its other settings.
BC Function
Assigns a built-in B-CONTROL hardware function (e.g. preset select, store, learn). The value selects which function.
To reprogram STORE, LEARN, EDIT, or EXIT, select that button and change Type to a MIDI type such as SysEx. This disables the built-in function for the function-key group.
CC (Control Change)
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.
NRPN (Non-Registered Parameter Number)
14-bit parameter addressing (0–16383). Used by synths that need more controllers than CC provides. Value range also supports 14-bit.
Note
Sends Note On/Off. Set the note number (0–127) and fixed velocity (1–127). Useful for drum triggers, mute buttons, or performance pads.
Program Change
Sends a program change. The encoder/button value determines the program number.
Aftertouch (AT)
Sends channel pressure messages.
Pitch Bend (PB)
Sends pitch bend messages with 14-bit resolution.
GS/XG
Roland GS / Yamaha XG parameter control over SysEx. The value selects the target parameter.
SysEx (custom template)
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).
Each element supports up to four custom
.tx
messages. Separate messages by their MIDI status byte or SysEx F0 ...
F7 boundaries.
Encoder groups
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.
Group buttons 1–4 can be reprogrammed like other buttons: select the group button and change Type to SysEx or another MIDI type. This frees that button for custom messages, but reduces the number of hardware encoder groups available.
LED ring modes
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.
Drag & drop
Rearrange element assignments by dragging them on the virtual hardware:
- Swap - Drag one element onto another to swap their configurations.
- Insert - Hold Shift while dropping to insert and shift subsequent elements down by one position.
- Copy - Hold Alt (or Ctrl) while dropping to copy the source element instead of moving it.
- Multi-element drag - Select multiple elements first (Ctrl+click or Shift+click range), then drag the group.
Banks & presets
Presets are organized into banks. Click the Banks icon (folder) in the left rail to open the banks panel.
- Each bank holds up to 32 numbered preset slots.
- Click a preset slot to load it into the editor.
- Double-click a bank or preset name to rename it. Use a bank's trash icon to delete it when available.
- Drag a preset onto another slot to swap them. Hold Alt or Ctrl while dropping to copy instead.
- Use the active preset panel to copy, paste, or reset the loaded preset. Reset clears its assignments but keeps the slot.
- Use Recv and Send to transfer the active preset to or from the device's temporary memory.
- Click the export icon next to a bank name to download all presets in that bank as a single file.
- Create a new bank with the + button in the banks panel header.
Import & export
- Import - Click the import icon in the banks panel
header to load a preset file. Supported formats:
.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
- Export preset - Click the export icon on a preset
slot to save it as a file. BCR2000 presets export as
.bcr, BCF2000 presets as.bcf. Both are plain BCL text files and can be opened in any text editor. - Export bank - Click the export icon next to a bank
name to save all presets in that bank as a single
.bcror.bcffile, 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.
SysEx transfer
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:
- Send preset - Click the send icon (↑) on a preset slot to push that preset to the device's active (temporary) memory over SysEx.
- Receive preset - Click the receive icon (↓) on a preset slot to read the currently active preset from the device into that slot.
- Receive all - Click the receive icon next to the bank name to read all 32 presets from the device at once.
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.
MIDI monitor
The bottom panel can be expanded by clicking or dragging its top edge. It has two tabs:
- Log - Shows application events and BCL transfer output.
- MIDI Monitor - Shows all incoming and outgoing MIDI messages in real time. Each row shows: timestamp, port, direction, channel, type, parameter, and value.
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.
Community presets
Open the Library panel to browse public presets. Search by preset name or author, filter by BCR2000/BCF2000 and minimum rating, and sort by name, model, author, date, or rating.
- Import a library preset into a local bank as an editable copy; the published original is unchanged.
- Rate presets from one to five stars, adjust or remove your rating, and open an author's profile to see their presets and bio.
- Use the visibility control on the active preset to publish it or keep it private. Free accounts publish publicly; Studio accounts can keep presets private.
Accounts & profiles
Register or log in from the top-right account menu to sync presets and access community actions. You can still edit locally without an account.
- Cloud banks and presets, the active bank/slot, MIDI preferences, and profile changes are saved to your account.
- Edit your display name, bio, and avatar from Edit Profile; uploaded avatars can be cropped before saving.
- The profile menu shows your Free or Studio tier and community rating badge. Email accounts can change their password; Google accounts manage authentication through Google.
- Log out to return to local browser storage. Cloud and community actions remain unavailable until you log in again.
Status & notifications
- The bottom status bar shows separate MIDI IN and MIDI OUT connection indicators. Click either indicator to open Settings.
- The hardware status LEDs show live activity and control state; the MIDI Monitor shows message details.
- Toast notifications in the top-right report saves, imports, connections, transfers, and errors.
- The top-right bell announces app updates. Its indicator clears when the updates menu is opened; it is separate from the preset Library.
Keyboard shortcuts
| 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 |
Troubleshooting
No MIDI ports appear
Web MIDI is only supported in Chromium-based browsers: Chrome, Edge, Firefox and Opera. Safari does not support Web MIDI. Make sure your device is connected before opening the Settings panel.
SysEx transfer fails or hangs
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.
Preset on device doesn't match the editor
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.
SysEx echo / loopback
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.
Multi-select / bulk editor
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.
Preset Library
Browse community presets.
| Preset | Type | Brand | Model | Author | Date | 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
Maximum 4 sysex messages at once.
0 elements selected
Only filled fields are applied. Leave blank to keep existing values.