BC Manager Manual (001-144)
BC Manager Manual (001-144)
Version 4.0.2
MANUAL
MOUNTAIN UTILITIES
https://mountainutilities.eu/
CONTENTS
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Version history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Computer requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4. BCF2000/BCR2000 setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5. Installation of BC Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6. MIDI setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7. Tutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
8. The main window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9. The B-Control detection options dialog box. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
10. The B-Controls window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11. The global setups window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
12. The presets window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
13. The preset dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
14. The layout windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
15. Printing overlays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
16. The element windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
17. The element dialog boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
18. Editing LEARN and custom output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
19. The Insert SysEx parameter dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
20. The BCL output options dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
21. The BCL editor windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
22. Reason maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
23. The MIDI input messages window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
24. The Mackie monitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
25. The MIDI keyboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
26. The (N)RPN messages window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
27. The MIDI System messages window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
28. The MIDI controllers window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
29. The MIDI System Exclusive messages window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
30. Using the computer keyboard and mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
31. Item dragging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
32. Known problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
33. Wish list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
34. Frequently asked questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
1. Overview
BC Manager is a utility by Mountain Utilities for working with the Behringer BCF2000 and
BCR2000 USB MIDI Controllers. It is available for macOS and Windows. It is free, although
donations are more than welcome.
! Maintenance of up to sixteen B-Controls simultaneously: you can send and receive global
settings and presets.
! A hardware test mode, allowing you to test whether a B-Control’s buttons, encoders and faders
work correctly.
! For the BCF2000 in emulation mode (except bhuI): a window showing the messages which the
controlling MIDI device sends to the BCF.
! You can save all B-Control data as ‘bcf’, ‘bcr’, ‘syx’,‘txt’ or ‘bc2’ files. BC Manager opens and
saves all these formats, so no manual, external conversion is needed between bcf, bcr, syx, txt
and bc2. (Actually BC Manager does include a conversion utility, but you never need to use it
for BC Manager itself.)
! Graphical editing of all B-Control settings. (So you don’t have to know BCL.)
! You can edit a particular setting for a range of elements (or even presets) in one go, either to a
single value or incrementally.
! Full support for ‘custom’ (‘.tx’) MIDI messages: you can edit these graphically too.
! A ‘SysEx preprocessor’: for many MIDI devices (e.g. many models by Fractal Audio,
Roland/BOSS, Waldorf and Yamaha) it is possible to use special ‘SysEx model definition files’:
in this way you only have to tell BC Manager which parameter of a specific synthesizer (etc.)
you want to assign to a particular button, encoder or fader on your B-Control, and BC Manager’s
SysEx preprocessor generates the appropriate MIDI System Exclusive message definition
automatically.
3
! Direct capture of BCF/BCR snapshots.
! You can provide labels for elements (and print them — see below). Furthermore, you can add
your own comments (of unlimited length) to the global setup, to each preset and to each element.
Beware: these labels and comments cannot be stored in the B-Control itself. Therefore it is
recommended that you only send preset definitions containing labels and/or comments to the B-
Control, but don’t attempt to receive those definitions back from the B-Control.
! You can export a table to a specially formatted ‘txt’ file that you can use as an input file to
create a table in an external word processor. (In any case this works for WordPerfect;
presumably it works for other word processors as well.)
! Many generic MIDI input/output tools, such as a MIDI message recorder, a SysEx editor and a
mouse-controlled MIDI keyboard with chord and arpeggio facilities. There are also virtual
displays for Mackie Controls (much like those provided by the Huskervu utility).
! For testing purposes, BC Manager incorporates a seamlessly integrated BCL editor featuring
syntax highlighting: you can load the internally maintained state of a B-Control (or even a single
preset) directly into a BCL text editor window, and you can have BC Manager ‘execute’ the text
from this window or send it directly to the B-Control via MIDI.
4
2. Version history
5
application and this manual have been replaced with ‘macOS’.
New features in BC Manager itself:
! The ‘Print strips’ operation (accessible via the File pull-down menu of the layout windows) has
been replaced with ‘Print overlays’. This opens a dialog box from which you can’t just print
strips, but also complete or partial overlays for your BCF or BCR. The button, encoder and fader
labels are printed in the colors you have defined for them (as also shown in the layout windows).
Lots of customization options are available. A live preview panel shows exactly what you’re
about to print.
! Several new features in the BCL editor windows, most prominently syntax highlighting.
! Via the Settings tab of the preset dialog box you can change the background color (by default
pink) and the text color (by default black) of the disabled/special buttons/encoders.
! In a layout window you can move directly to cells in adjacent grids via the arrow keys of your
computer keyboard: it’s as if all the grids are one big grid.
! The Resolutions column of the encoders window now warns about several anomalous
conditions:
! If all four resolutions are 0, the Resolutions column says ‘Default’ if standard output has
been defined, ‘0 (ERROR)’ otherwise.
! If any resolution is higher than 32673, the Resolutions column says ‘INVALID’ in front of
the sequence of resolutions.
! The General tab of the encoder dialog box now mentions two resolution setups you should
avoid:
! A resolution of 0 when there is only custom output.
! A resolution higher than 32673.
! Several new features concerning SysEx model definition files:
! Error messages concerning ini files now mention the line number where the error occurred.
Moreover, some error messages have become more informative.
! An empty or invalid ProgramVersion is no longer interpreted as version ‘0.0.0.0’, but
generates an error message.
! DevicePosition can be blank: this is for target devices that don’t use Device parameters in
their SysEx messages.
! The new AfterData parameter in the header specifies any fixed data bytes occurring after
the variable data bytes (but before the checksum, if defined).
! The Models folder of the BC Manager package now includes the SysEx model definition
file Axe-FX_II_XL_MvdB.ini, demonstrating the format of Fractal Audio’s Axe-FX II XL.
! The Mackie monitors now accept display messages from all Mackie models (such as the Mackie
Control XT).
Bug fixes (macOS and Windows editions):
! In the B-Controls window, the Import operation now sets the ‘modified’ flag (shown as an
asterisk in the File column) of any affected data area; this is appropriate because Import is
intended for loading partial data into an existing dataset, which creates a new ‘concoction’ that
may have to be saved. However, the Open operation still does not set this flag: the idea is that
you only apply Open to a file containing all data areas, so that no new concoction is created and
subsequent saving isn’t necessary.
! In the B-Controls window, the Open and Import operations now clear any pre-existing comments
in the global setup.
! In the ‘MIDI options’ dialog box, changes to ‘Select preset upon "Copy to preset 0"’ and
‘Method’ are now retained when you press OK. (Thanks to Pistor for reporting this bug, which
was introduced in BC Manager 2.6.0.)
! In a layout window the ‘Print window image’ operation now actually prints the window image.
! In the preset dialog box, when you press Alt+T, the ‘Text color’ box is now actually selected.
! In the preset dialog box, the tab order of the controls on the Settings tab has been corrected.
6
Bug fix (macOS edition only):
! In the MIDI data calculator, the position of a ‘Binary’ label has been corrected.
Bug fix (Windows edition only):
! In the View pull-down menu of the layout windows, the selected label scheme is no longer
indicated by a checkmark, but by a bullet.
Additions to this manual:
! CopperLan has been added to the list of MIDI pipes in §6. (Thanks to JAPP for bringing
CopperLan to my attention.)
! A tutorial on setting up individual elements (buttons, encoders and faders) in §7.
! A whole new section on printing overlays: §15.
! In §19:
! The table of the SysEx model definition file format has been brushed up and updated.
! There is a new subsection on FractalAudio’s Axe-FX II XL.
! Information on the many new features of the BCL editor windows (such as syntax highlighting)
has been added to §21.
7
! The window now has three panels: MIDI, Probe and Toolbar, each of which can be hidden via
the View pull-down menu.
! On the Probe panel, an editbox (with a history list) allows you to type one or more SysEx
messages. These messages can be sent to a MIDI device, and the history list can be saved to and
loaded from a text (‘.txt’) file.
! You can prevent the grid from automatically scrolling to the latest received message by clearing
the new View , ‘Scroll to new message’ setting.
! The vertical order of the representations of the message bytes in the grid has changed. From top
to bottom the order is now: decimal, hexadecimal, binary, character. (This order is the same as in
the MIDI data calculator window, accessible from the main window's View pull-down menu.)
! The old Edit operation (allowing you to edit the selected messages as text lines) is still available,
but has been renamed to ‘Edit message(s)’ and its icon has changed to a ‘T’.
! The ‘E’ icon is now associated with the new ‘Edit byte(s)’ operation. This operation allows you
to edit the selected byte(s) in the message grid individually via a dialog box, offering three
editing formats: decimal, hexadecimal and binary. The corresponding ASCII character is also
displayed.
! Quite a few keyboard shortcuts have changed.
! ‘Correct Roland checksum(s)’ can be applied on demand to the message(s) selected in the probe
edit box or the grid.
! If ‘Auto-correct Roland checksum(s)’ in the Edit pull-down menu has been ticked, the ‘Edit
byte(s)’ and ‘Edit message(s)’ operations automatically correct any invalid Roland checksums
resulting from your edits to the grid. Similarly, if ‘Auto-correct Roland checksum(s)’ in the
Probe pull-down menu has been ticked, the message(s) in the probe editbox is/are automatically
corrected when you execute Send.
Bug fixes (OS X and Windows editions):
! Mackie monitors: the height of the window now updates immediately after its font size has
changed.
! MIDI System messages window: the Start button for Timing Clock now uses the correct interval.
Bug fixes (OS X edition only):
! Incoming MIDI System Exclusive messages are now processed correctly. (Previously the
terminating F7 could get cut off, leading to error message ‘Not enough MIDI SysEx input
buffers’.) Many thanks to adriaanhendrik for reporting this bug and assistance in fixing it!
! Non-SysEx messages coming in in quick succession are now processed correctly. (Previously
such messages would get skipped and lead to error message ‘Non-SysEx MIDI input message
too long’.)
! MIDI input messages window: the actual maximum number of messages in the grid now keeps
matching the value stipulated in the Options dialog box.
! MIDI System Exclusive window: the Edit , Insert operation is now executed upon Ctrl+N.
(Previously it was associated with Ctrl+I, but this was (and is) already associated with File ,
Insert.)
! Output statement dialog box: ‘Paste bare hex sequence’ now works.
! The menu bar now consistently shows the active window’s pull-down menus. So if the active
window doesn’t have any pull-down menus, nothing is shown; previously in this situation, the
pull-down menus of the previously active window would still be shown.
Bug fix (Windows edition only):
! BCL editor windows:
Previously, saving the BCL lines to a text file (with extension ‘.bcf’, ‘.bcr’, ‘.txt’ or ‘.bc2’)
unintentionally created an RTF (Rich Text Format) file, containing several formatting codes.
This has been corrected: saving to a text file now creates a ‘normal’ text file.
In line with this, opening a text file now expects a ‘normal’ text file. (So if you open a
previously saved file containing RTF codes, these codes now show up as text too! Please remove
8
these codes manually, then re-save.)
9
! In the ‘Window list’ dialog box you can make all windows visible in one operation.
10
! Many screenshots of windows and dialog boxes.
! Several new sections dedicated to particular windows.
! A tutorial (§7) on working with presets.
! Many small improvements.
11
! In SysEx model definition files, ManufacturerID can now consist of multiple bytes.
! Seven SysEx model definition files for the Elektron Machinedrum, provided by Bob Svitilla.
Many thanks again!
Improvements:
! Windows that were open when the previous session of BC Manager terminated reappear exactly
where they were. (In previous versions of BC Manager, even a window previously on a
secondary monitor always reappeared on the primary display, even when the secondary monitor
was still available.)
This new behavior has one potentially problematic consequence: when you remove a
monitor or reduce the screen resolution, windows may become invisible upon a restart of BC
Manager. To remedy this, you can use the new ‘Make fully visible’ operation in the ‘Window
list’ dialog box (accessible via the main window’s View pull-down menu or the Alt+0 key
combination).
! The ‘Test hardware’ dialog box now includes an explanation of what you can do (namely
manipulate elements in synchrony and run a ‘light show’).
! When sending or saving a B-Control’s Global Setup (e.g. via MIDI , ‘Send all data’ from the
B-Controls window), BC Manager no longer includes a BCL message that sets the B-Control’s
device ID (as occurring in the Global Setup). Thus, a B-Control can no longer suddenly become
inaccessible in the middle of a Send operation due to an unintentional change to its device ID.
Accordingly, the ‘Device’ column in the ‘Global setups’ window has been renamed to
‘Device (ignored)’ and you can’t edit the device ID in the Global Setup dialog box any more. For
reference purposes only, the ‘Device (ignored)’ column still shows the device ID received from a
B-Control or read from an old-style or third-party syx/txt/bc2 file; however, these values are
never sent or saved.
As before, BC Manager only uses the ‘Device’ value defined in the ‘MIDI options’ dialog
box (accessible from the B-Controls window via MIDI , Options) for all its device ID
‘fingerprints’ in communication with the B-Control and in syx files.
So from now on, you can only change a B-Control’s device ID manually on the B-Control
itself via its Global Setup edit mode (EDIT + STORE , ‘EG’); of course you still also have to
update the device ID as maintained by BC Manager via the ‘MIDI options’ dialog box. Note that
certain Behringer USB device drivers include the B-Control’s device ID in the B-Control’s MIDI
I/O port names; in this case you also have to restart BC Manager and any other running
programs still using the old MIDI I/O ports.
! When saving a B-Control’s data (presets/global setup) to a syx file, BC Manager now by default
uses the generic device ID ($7F) for each BCL SysEx message’s ‘fingerprint’, rather than the
selected B-Control’s device ID (1-16), This ensures that any B-Control (of the same type, i.e.
BCF or BCR) accepts the messages from this syx file when sent via a SysEx-uploader such as
MIDI-OX, irrespective of the B-Control’s actual device ID. (For BC Manager the device ID
fingerprints stored in syx files don’t matter: when opening a syx file, BC Manager ignores these;
when sending SysEx data to a B-Control, BC Manager uses the B-Control’s actual device ID (1-
16) as defined in the ‘MIDI options’ dialog box.)
If you want to restore the old saving behavior (i.e. use the selected B-Control’s device ID as
message fingerprints), open the ‘BCL output options’ dialog box (accessible from the main
window via the Options pull-down menu) and set ‘Device to save to syx file’ to ‘Selected B-
Control’.
! The Insert SysEx parameter dialog box no longer displays a definition file’s Comment field as a
single line (cutting off any characters that don’t fit the width of the dialog box), but in a
scrollable, word-wrapping multi-line text box. (Note that the Comment field itself can still only
be single-line in the definition file.)
12
Bug fix:
The ‘Paste bare hex sequence’ operation in the ‘Output statement’ dialog box now works
correctly.
Improvements:
! A verification dialog box pops up whenever you are about to send a global setup to a B-Control,
warning you that changing the B-Control’s Operating Mode may invalidate its MIDI/USB ports.
! In the BCR’s encoder list window, the LEDs column now shows ‘INVALID ...’ if a ‘fancy’
setting is chosen for a ‘normal’ (i.e. non-push) encoder. (A new question in the FAQ section of
this manual discusses this phenomenon.)
! Invalid message indexes in the main window’s ‘Convert syx to txt/bc2’ operation are now
reported with their most significant byte first, in harmony with the error report generated when
the same file is opened in the B-Controls window.
! For clarity, error messages concerning B-Control SysEx messages now add the $ prefix to the
hexadecimal command number.
! Minor stylistic improvements to this manual.
New:
Two new SysEx model definition files: one for the Alpha Juno 1 (by Bob Svitilla) and one for
the Waldorf Q (by Sven Baus). Many thanks!
13
98 or Me, because these operating systems do not support Unicode. (If you require a version of
BC Manager that runs under these operating systems, please send a message to the contact
address at the Mountain Utilities web site.)
! The ‘Output statement’ dialog box can paste a sequence of bare hexadecimals while
automatically adding the $ prefixes required in BCL’s ‘.tx’ statements.
! The ‘Insert SysEx parameter’ dialog box displays the device’s manufacturer and version, date
and author of the SysEx model definition file. The dialog box also has a button that opens the
folder containing the SysEx model definition files in Windows Explorer, and a button that opens
the folder containing the templates.
! The ‘Import Reason map’ operation can load Propellerhead Reason 5’s map files for the
BCF2000 and BCR2000 (BCF2000.remotemap and BCF2000.remotemap respectively). Since
each of these files contains more devices (38) than there are memory presets (32) in a B-Control,
BC Manager imports such a file into two, new B-Controls. Accordingly, BC Manager no longer
imports a Reason 3 or 4 map file into the currently selected B-Control, but into a (single) new B-
Control.
To clarify the above-mentioned altered procedure of ‘Import Reason map’, the ‘Import
Reason map’ operation has been moved to the ‘B-Controls’ pull-down menu in the B-Controls
window.
! The BC Manager package now includes a SysEx definition file (written by Patrick Manderson)
for 4-operator Yamaha FM synthesizers.
Improvements:
! Some error messages concerning MIDI System Exclusive messages now specify the BCL line
number in which they occur. This makes it easier to pinpoint the location of the error, e.g. in a
corrupt syx file being opened.
! In the ‘Output statement’ dialog box, the edit box is a lot wider than before, which is useful for
long lines.
! BC Manager no longer rejects a SysEx model definition file if it contains one or more lines with
only spaces.
! A few cosmetic changes, e.g. to the main window’s Help menu.
! Upon first startup, BC Manager now copies all the shipped SysEx model definition files from
the installation folder to the user’s application data folder.
! The questions in the FAQ section of this manual are numbered.
! Miscellaneous improvements and additions to this manual.
Bug fixes:
! The ‘Global setup history’ operation (in the menu of the B-Controls window) can no longer be
executed if no B-Controls are defined.
! The ‘Global setup history’ window shows up in the middle of the screen.
! Patrick Manderson has provided a corrected version of the TX81Z SysEx definition file.
14
Version 2.1.0 (2010-09-23)
New features:
! Up to four virtual displays showing the text messages which certain MIDI applications send to
Mackie Controls. (You can use these displays if you have set up your BCF (in standard B-
Control mode) or BCR as a Mackie Control.)
! For the BCF2000 in emulation mode (except bhuI): a virtual display showing the text messages
which the BCF outputs.
! You can keep BC Manager’s main window on top of BC Manager’s other windows and other
applications.
! A global setup history window (accessible from the B-Controls window’s MIDI pull-down menu
via Maintenance). This allows you to view and edit the BCF/BCR’s internal global setup history.
! A column in the presets window showing the currently used data size.
! This manual’s FAQ section (under ‘MIDI connection’) describes how a BCF/BCR can
communicate with a synthesizer and BC Manager simultaneously.
Improvements:
! A hint in the ‘MIDI System Exclusive messages’ window has been improved.
! In this manual, the subsection on USB drivers has been rewritten completely, to take into
account the new Behringer drivers (published December 2009).
! A few minor improvements to this manual and to BC MIDI Implementation.pdf (BCMI).
! The link to the Mountain Utilities web site installed in Windows’ start menu has been updated.
Bug fix:
! The data size of $FE (Active Sensing) in LEARN/custom output is now counted correctly.
15
transition from ‘.fkeys off’ to ‘.fkeys on’.)
! Some typos and inaccuracies in this manual’s FAQ section were corrected.
16
hexadecimal 7-bit values (MSB first).
! In the element windows, the ‘Create simple’ submenu allows you to quickly set up an element
(or range of elements) for ‘standard’ Program Change and Control Change messages.
! The encoder dialog box contains a button to quickly set the encoder resolutions to the standard
value of 96.
! If a custom output definition is invalid (i.e. if it will cause the BCF/BCR to transmit incorrect
MIDI byte sequences), BC Manager displays a warning, indicating the exact location and nature
of the error.
! BCL editor windows display the current line number and character index on the status bar.
! In the MIDI input messages window, you can save the bytes of any MIDI messages (so not just
the SysEx messages) to a ‘flat’ binary file. This is mainly useful for specialistic further
processing. (Previously you could only achieve this indirectly, namely by first saving the bytes
to a text file, then converting that text file to a binary file.)
! The main window’s Help pull-down menu contains a link to the Mountain Utilities web site.
Improvements:
! BC Manager and its installer now adhere to the folder and registry access restrictions of modern
Windows operating systems (XP and later). As before, you must install BC Manager with
Administrator privileges, but you can now run BC Manager from a limited user account, i.e. one
without Administrator privileges. (Previously this could lead to file access violations.)
In accordance with this new policy, BC Manager’s configuration file (BCMan.ini) and the
SysEx model definition files are no longer kept in BC Manager’s installation folder (e.g.
C:\Program Files\Mountain Utilities\BC Manager). Instead, BC Manager now stores these files
in your home folder: under Windows XP typically in C:\Documents and
Settings\Username\Application Data\Mountain Utilities\BC Manager, under Windows Vista and
later typically in C:\Users\Username\AppData\Local\Mountain Utilities\BC Manager.
On its first run, this new version of BC Manager automatically copies any existing
BCMan.ini from the installation folder to your home folder, so you don’t lose your previous
settings. However, if you have created any additional SysEx model definition files, you should
move these manually from C:\Program Files\Mountain Utilities\BC Manager\Models (on a 32-
bit operating system) or C:\Program Files (x86)\Mountain Utilities\BC Manager\Models (on a
64-bit operating system) to the Models subfolder at the new location, otherwise BC Manager
will no longer see them.
! A sequence of MIDI communication errors (e.g. those relating to a USB port that has been
disconnected after BC Manager was started) no longer leads to dozens of error boxes you have
to plow through; instead, these errors are gathered in a single window, which you only have to
click away once.
! Operations involving SysEx messages from the B-Control to BC Manager (such as ‘Refresh
connection status’, ‘Receive presets’ and ‘Send firmware’) can no longer be spoiled by
interference from unrelated incoming SysEx messages on the same MIDI input port.
! The ‘Send firmware’ operation is more robust and user-friendly.
! The ‘MIDI input messages: BCL’ window can now record a maximum of 99,999 BCL messages
(previously only 9,999).
! A number of small improvements to the user interface. For instance:
! Many menu and toolbar icons were modified (in particular to make them look more 3-D),
and several new icons were added.
! In the B-Controls window: after you execute ‘New BCF2000’ or ‘New BCR2000’, the table
automatically selects the row of the new B-Control. (Previously the selection bar stayed
where it was.)
! The ‘BCF2000’ and ‘BCR2000’ windows have been renamed to ‘layout’ windows, and
their preset LEDs change color from red to orange for preset 0 (i.e. the temporary preset).
! When a knob is selected, its position mark changes from green to red.
17
! Many message boxes now contain an icon indicating the severity of the message:
information, warning or error.
Bug fixes:
! BC Manager now remains the active application throughout startup. (Previously it could become
inactive during startup (particularly the very first time it was run). Consequently, BC Manager’s
intended active window or dialog box could end up hidden behind other running applications,
forcing the user to manually navigate back to BC Manager.)
! The Exit operation from the main window’s Files pull-down menu now asks you whether you
want to save/send any unsaved/unsent B-Control data before termination of BC Manager; this
also applies when you press the associated hotkey (Alt+X). (Previously the save/send questions
only occurred when you pressed Alt+F4 or clicked on the V icon on the main window’s title
bar.)
! The mouse options dialog box can no longer be resized.
! The maximum hint width (as set in the ‘Hint options’ dialog box) now works correctly.
! Upon a restart, BC Manager restores all associations between B-Controls and syx/txt/bc2 files
correctly. (Previously, if e.g. the first B-Control did not have a file but the second B-Control did,
a restart would wrongly assign the second B-Control’s file to the first B-Control instead of to the
second.)
! The byte display formats in the MIDI input messages window are now retained between sessions
of BC Manager.
! After the deletion of a range of recorded MIDI messages, the MIDI input messages window now
displays the correct remaining messages.
! It is no longer possible to paste more than 999 bytes from the MIDI message clipboard into a
preset’s LEARN output or an element’s custom output.
! The Compare dialog box no longer reports that two identical items containing LEARN/custom
output are different.
! BC Manager no longer produces messy windows and dialog boxes under non-standard DPI
settings.
! The default table window widths are no longer too narrow under Windows Vista’s default
‘Windows Vista Basic’ color scheme.
18
wrongly meant device 2!)
! The ‘generic’ device ID can be chosen by simply selecting the ‘Generic’ radio button: you
no longer have to enter the actual value (127 = $7F).
! The handling of characters above #127 (e.g. ‘international’ characters with diacritics) in
comments and element names has been improved: if you try to save such characters to a syx file,
send them to a B-Control or load them in a BCL editor window, they are automatically
converted to dots; this also applies to the ‘Convert txt/bc2 to syx’ operation. (Previously, a
character above #127 would simply trigger an error message and the operation would be cut off,
resulting in e.g. a ‘truncated’, invalid syx file.)
Note that saving such characters to a txt or bc2 file is (and always has been) unproblematic,
so if you use such characters, you should save to txt or bc2, not to syx. Also note that the B-
Control itself doesn’t store any comments or element names anyway, which is why by default
BC Manager doesn’t send comments or element names to the B-Control.
! A typo in the MIDI input messages window has been corrected.
19
MIDI input device for a B-Control could then stop sending any MIDI messages to the computer.
(Only entering the MIDI devices dialog box for the second time and pressing OK again would
then unfreeze this MIDI input device.)
The MIDI devices dialog box in BC Manager 1.5.0 waits 100 msec between closing and
reopening the MIDI input devices, which should be more than enough to circumvent the
Behringer USB driver bug, so USB-based MIDI input devices should not freeze any more upon
exit of the MIDI devices dialog box.
Note: as far as I could establish, Microsoft’s USB driver (‘USB Audio Device’) and
Behringer’s older USB drivers (vs. 1.1.1.0 and 1.1.1.1) do not suffer from vs. 1.2.1.3’s bug.
However, vs. 1.2.1.3 is still to be preferred: Microsoft’s driver has no multi-client support and
creates generic, very confusing MIDI I/O device names, and Behringer’s vs. 1.1.1.0 and 1.1.1.1
are confused about the names of the MIDI output A and B device names.
! A MIDI I/O device (typically a USB device) that is temporarily unavailable (as indicated by its
appearance between parentheses) now shows up in the MIDI options dialog box. As long as you
keep choosing the temporarily unavailable device name, the device will be connected again once
available upon a restart of BC Manager. However, if you have selected ‘[None]’ (or any present
device) when you press ‘OK’, the reference to the unavailable device disappears and won’t be
shown the next time you open the dialog box.
! The ‘Receive firmware version’ dialog box now reports the response time.
! The Comments areas in the dialog boxes now contain vertical scroll bars. (Horizontal scroll bars
are unnecessary, since any text gets wrapped.)
! In the element dialog boxes: if any standard output is defined (i.e. Type isn’t None), the
Default’s value knob is enabled and the Default’s checkbox is disabled. This matches the B-
Control’s actual behavior concerning the Default parameter: any standard output causes a default
value to be defined. You can only forgo a default value if only custom output is defined; this is
relevant for snapshots: an initial snapshot only includes the element’s output if it has a default
value.
! A positive button increment value is now displayed with ‘+’ in front of the number.
! In the MIDI input messages window, the settings for ‘Buffer size’, ‘Buffer overflow protocol’
and ‘Scroll to new message’ are now editable via a separate dialog box. Moreover, they are
retained across BC Manager sessions. (The MIDI message type filters already were.)
Bug fixes:
! When opening a BCL data file, BC Manager no longer skips empty comment lines.
! A bug has been fixed that sometimes caused the MMC frame rate to be set to a wrong value
upon entrance of the button dialog box.
! In encoder and fader dialog boxes, the GS/XG parameter list no longer shows duplicates of all
items.
20
any saving or sending verification dialog boxes.]
! You can ‘export’ a range of presets to a BCL (syx, txt or bc2) file.
! When importing a Propellerhead Reason remote map file, you can choose to only load the
Reason control names: BC Manager then skips its generation of fully functional elements. See
§22 for why this is useful.
! You can now also open/save the content of the BCL editor window from/to a syx or bc2 file.
! The BCL editor window now contains scroll bars.
Improvements/bug fixes:
! The preset number or range displayed in the caption of a ‘Set’ dialog box run from the presets
window is now correct.
! BC Manager strictly enforces BCL’s allowed range of characters in preset names: characters
below #32 and above #127 are converted to dots, just as the B-Control itself does.
! Changing the width of layout windows works more accurately than in version 1.3.0. (This is
particularly noticeable under Windows Vista’s default color scheme.)
! BC Manager now maintains separate Value 1 and Value 2 parameters for CC (in both 7 and 14
bit versions), NRPN (7 and 14 bit), AT (7 bit) and GS/XG (7 bit). A few obscure problems
concerning the ranges of Value 1 and Value 2 have thus been solved.
! The ‘Set MMC Device’ operation is no longer available in encoder and fader list windows.
(Encoders and faders don’t have MMC options, so the operation can’t apply to them.)
21
Bug fixes:
! The ‘open’ and ‘save’ dialog boxes for B-Control data now use the extension of the current file
as the default file type (‘.syx’, ‘.txt’ or ‘.bc2’). (Previously, these dialog boxes always started
with ‘.syx’, even when you were working with a ‘.txt’ file.)
! In the B-Controls window it is no longer possible to select more than one B-Control. (Previously
you could, but subsequent operations would only apply to one B-Control anyway.)
! In the B-Controls window and the global setups window: double-clicking on the table when no
B-Control has been defined no longer produces an error message.
! Copying an element or preset to its clipboard now correctly enables the Paste operation in the
pertinent windows of all B-Controls (not just the current one).
! In black & white prints of layout window images, all grid borders are now equally thick.
! The tab order of the grids in a BCR2000 layout window is now correct.
22
Version 1.1.1 (2008-04-13)
! Sending an individual element of preset 0 to the connected B-Control now tells the B-Control to
initialize the element if all its parameters are at their default values. (In version 1.1.0 such an
‘empty’ element wasn’t sent at all, so that the B-Control didn’t clear it.) The same applies if you
load such an element into a BCL editor window.
23
3. Computer requirements
To run BC Manager, your computer must comply with the following requirements:
! Operating system:
! macOS: any version for the Intel x86-architecture.
! Windows: 2000 or later (XP, Vista, 7, 8, 10 etc.).
! A mouse.
! Free hard disk space: about 30 MiB on macOS and 10 MiB on Windows.
! RAM: when running, BC Manager normally occupies roughly 24 MiB on macOS and 12 MiB
on Windows.
! Unlike Behringer’s BC-EDIT, BC Manager does not require Java Runtime Environment (JRE).
(By the way: it doesn’t require Microsoft .NET Framework either.)
! BC Manager runs perfectly without a MIDI link to an actual BCF2000 or BCR2000, but if you
want to establish a real-time connection between BC Manager and a B-Control, the B-Control
must be linked to the computer via MIDI input and output ports; these can be either ‘standard’
MIDI I/O ports or the B-Control’s USB-based MIDI I/O ports. See the next section for some tips
on setting up your BCF/BCR.
24
4. BCF2000/BCR2000 setup
It is highly advisable to set up your B-Control(s) correctly on your computer before installing BC
Manager. You should consult the relevant documentation for the full details on these matters, but
here are some guidelines:
Note that the BCR2000 doesn’t have any emulation modes, so it is always in B-Control mode by
definition.
3. MIDI connections:
You can connect a BCF or BCR to your computer either via USB or standard MIDI I/O ports
(typically on a soundcard).
For proper communication, BC Manager requires a bidirectional connection. If you use the
B-Control’s USB connection, you can set the B-Control’s Operating Mode to U-1, U-2, U-3 or
U-4. If you use the standard MIDI ports, S-4 (MIDI OUT A) is recommended, though S-3 (MIDI
OUT B/THRU) is possible too; however, S-1 and S-2 should not be used, since these modes lead
to inherent feedback, messing up communication between BC Manager and the B-Control.
BC Manager can even communicate with two chained B-Controls, where one B-Control is
connected to the computer directly via USB (in mode U-4), and the other (in mode S-3 or S-4) is
connected to the first B-Control’s standard MIDI sockets, as described in Behringer’s User’s
Manual.
The advantage of the U-modes is that more additional connections to other MIDI equipment
25
are possible than in the S-modes, because you don’t have to sacrifice any MIDI hardware ports
to the bidirectional connection between BC Manager and the B-Control.
However, the USB connection also has some pitfalls:
! Most extremely, several people have reported cases where the USB controller of their BCF
or BCR was defective. Very nasty.
! You may experience USB driver problems, both concerning installation and later operation.
See point 4 below.
! To get a working USB connection between the B-Control and any computer program (such
as BC Manager), you must always start up the B-Control before the computer program. And
switching the B-Control’s Operating Mode to any other value (U-1/2/3/4 or S-1/2/3/4) while
a computer program is running completely disconnects any existing USB connections
between the B-Control and the computer program, and any newly set USB connections only
start working after you have terminated and restarted the computer program.
4. USB driver:
If you wish to use a USB connection between your B-Control and your computer, an appropriate
driver must be installed. macOS handles this automatically; however, especially on earlier
Windows versions it may be better or even required to replace the default driver automatically
installed by Windows with a Behringer driver. You have the following options:
26
small bugs in version 1.1.1.0. Behringer no longer offer this driver on their web site either.
! Behringer’s BCF2000/BCR2000 USB driver version 1.2.1.3 (dated October 19, 2005):
Advantage:
This driver consistently uses transparent device names for its USB-based MIDI input
and output ports (in particular in operating mode U-4).
Drawback:
The same installation restrictions as version 1.1.1.0.
! Behringer’s generic USB MIDI driver version 1.0.10 (dated December 15, 2009):
Advantage:
No more installation problems. As stated on the Behringer web site, this driver comes
in two versions:
1. BEHRINGER_MIDI_WIN32_1.0.10.zip for 32-bit operating systems (Windows
XP, Vista and 7; I’m not sure about 8 and 10).
2. BEHRINGER_MIDI_X64_1.0.10.zip for Windows 7’s 64-bit version (I’m not
sure about 8 and 10).
(However, does this mean there is no version for 64-bit XP and Vista?)
Drawback:
The resulting device names of the USB-based MIDI ports are not as transparent as
those of Behringer’s BCF2000/BCR2000 driver 1.2.1.3 (or even 1.1.1.0 and 1.1.1.1).
E.g. for a BCR2000 in operating mode U-4 you get ‘BCR2000 port 1’ and ‘BCR2000
port 2’ instead of version 1.2.1.3’s ‘BCR2000[1]’ and ‘BCR2000[1]-B’.
BC Manager works with all the drivers mentioned above. However, I recommend Behringer’s
BCF2000/BCR2000 USB driver 1.2.1.3 for any 32-bit version of Windows up to and including
Windows 7; to install this driver under the 32-bit versions of Windows Vista or 7, you must set
bcr2000-driver-setup.exe’s compatibility mode to ‘Windows XP (Service Pack 2)’. For the 64-
bit versions of XP, Vista and 7, try Behringer’s generic USB MIDI driver version 1.0.10. I don’t
know about the situation on Windows 8 and 10 yet; maybe you have no other option than accept
the default driver.
In my experience, (re-)installing a USB driver often occurs only for a particular hardware device
(e.g. BCF2000/BCR2000), thus affecting only that device’s settings (including its port names).
So for instance, if you first install driver P for hardware devices X and Y, then driver Q for
device X, device Y may still have its ‘old’ settings/names. In other words, you may have to
install driver Q twice in this case; not for the driver itself (once should be enough for that), but to
update the settings/names of both individual hardware devices X and Y.
27
that’s where they are in my case): in this way you can see exactly which USB ports use which
drivers.
28
5. Installation of BC Manager
macOS
1. Download BCMan-a.b.c.dmg (where a.b.c stands for the actual version number) to your
computer from the BC Manager page at the Mountain Utilities web site
(https://mountainutilities.eu/bcmanager).
2. Open the dmg file in Finder, and drag-and-drop the BC Manager icon on the Applications icon.
If a previously installed version of BC Manager exists in the Applications folder, you are asked
what you want to do: it’s best to select Replace.
3. Right-click the dmg file’s ‘disc’ icon on the right side of the desktop and run Eject from the local
menu.
Windows
On Windows, three editions are available: an installer, a 32-bit portable edition and a 64-bit portable
edition:
Installer:
1. Download BCMan-a.b.c-install.exe (where a.b.c stands for the actual version number) to your
computer from the BC Manager page at the Mountain Utilities web site
(https://mountainutilities.eu/bcmanager).
2. Run BCMan-a.b.c-install.exe and follow its instructions. The installer automatically installs the
edition of the actual application (BCMan.exe) that matches the operating system: the 32-bit
edition on a 32-bit Windows system, the 64-bit edition on a 64-bit Windows system.
Note: the installation includes an uninstaller. It can be run from the Windows Start Menu
via Programs þ Mountain Utilities þ BC Manager, or via Settings þ Control Panel þ ‘Add or
Remove Programs’ (Windows XP) or ‘Programs and Features’ (Windows Vista and later).
Note that when you install a new version of BC Manager, you do not have to uninstall any
previously installed version first: the old version will be replaced with the new version
automatically.
29
with USB ports that are active the very moment when BC Manager is being started. No matter what
connection you’re using, the advantage of having your B-Controls switched on at the moment when
you start BC Manager, is that BC Manager should then be able to immediately autodetect all your B-
Controls.
If you have never run BC Manager (in any version) from the installed operating system before,
the program notifies you that it can’t find your configuration. This is normal: the program saves its
configuration file (bcman.ini in macOS, BCMan.ini in Windows) whenever the program terminates,
so obviously this configuration file doesn’t exist yet when you start the program for the very first
time. The program also notifies you if the configuration file does exist but belongs to a previous
version; all existing settings are retained.
30
6. MIDI setup
When BC Manager is started for the first time, it automatically sets up data structures for all B-
Controls that are connected to the computer via USB or standard MIDI, provided that these B-
Controls have been switched on before BC Manager is started.
If BC Manager doesn’t detect any such B-Control, it sets up data structures for one BCF2000
and one BCR2000. You can still edit these structures, but you can’t communicate with any actual B-
Controls until you establish a valid connection.
You can also tell BC Manager manually where to find a particular B-Control. This involves the
following steps:
1. You must ensure that the pertinent MIDI I/O ports are enabled in BC Manager:
From the main window’s Options pull-down menu, ‘MIDI devices’ opens a dialog box in
which you can select the MIDI I/O devices to which BC Manager connects:
31
access conflicts.
Tip (Windows only): In the MIDI devices dialog box you can also set up a ‘soft MIDI thru’ link,
by connecting an enabled MIDI input to an enabled MIDI output device. Any MIDI message
received by the MIDI input device is then immediately passed on to the MIDI output device. In
fact, you can set up as many links as there are devices; the only restriction is that each device
can have only one connection.
2. You must set the B-Control’s MIDI I/O ports and its Device ID to the correct values:
a. In the list of B-Controls in the B-Controls window, select (highlight) the appropriate B-
Control. (If necessary, you can add one via B-Control º New BCF2000/BCR2000.)
Obviously, if only one B-Control is defined, it’s automatically selected:
b. Open the ‘MIDI options’ dialog box via the MIDI pull-down menu, and select the B-
Control’s MIDI I/O ports and Device ID (i.e. the number you can see on the B-Control itself
when you press the ‘VAL 2’ button in ‘EG’ mode, entered via EDIT + STORE):
Provided ‘Startup detection’ in the ‘B-Control detection options’ dialog box (accessed via
the main window’s Options pull-down menu) is not ‘None’, BC Manager automatically
performs a ‘refresh connection status’ operation when you click OK. If ‘Startup detection’
in the ‘B-Control detection options’ is ‘None’, you must execute ‘Refresh connection
status’ manually from the B-Controls window’s MIDI pull-down menu.
In either case, the ‘refresh connection status’ operation first shows the ‘receive
firmware version’ dialog box, stating the firmware version returned by the B-Control;
normally this is ‘BCF2000 1.10’ or ‘BCR2000 1.10’. Secondly, for a BCF the mode
(‘personality’) is shown in the ‘receive personality’ dialog box. (For BC Manager, standard
32
‘B-Control’ mode is most appropriate; in any of the emulation modes BC Manager can’t do
very much.)
After this, the B-Controls window should look like this:
For a BCF, the detected mode is shown in the ‘Personality’ column. For a BCR (which has
no emulation modes) this column states ‘B-Control’ anyway, provided that the firmware
version has been retrieved.
MIDI pipes
Of particular interest is the enabling/disabling of ‘MIDI pipes’. ‘MIDI pipe’ is my term for what is
commonly known as a ‘virtual MIDI device’. This is software that manifests itself as a virtual MIDI
output port plus a virtual MIDI input port: the driver passes any MIDI data sent to the output port to
the input port. Hence, when a computer program sends data to the virtual MIDI output port, this data
can be picked up at the corresponding input port by any other computer program. Thus, a MIDI pipe
allows inter-program MIDI communication. If a MIDI pipe driver is ‘multi-client’, we can connect
more than one program (up to a particular maximum) to the same virtual output or input port.
To my knowledge, the following free MIDI pipe drivers are available (please contact me if you know
any others):
! Sony/Sonic Foundry Virtual MIDI Router: 4 single-client pipes. Windows 32-bit only.
! LoopBe1: only 1 multi-client pipe, so not very useful. (No, you can’t install more than one
copy!) Windows 32-bit only.
! LoopBe30: 30 multi-client pipes, but the trial version only works for a brief period, and the full
version is not free. Windows 32-bit only.
33
The MIDI Yoke installer tries to create MIDI Yoke’s configuration file
(MYOKENT.INI) in C:\Windows, but the operating system doesn’t allow this and actually
creates it in C:\Users\Username\AppData\Local\VirtualStore\Windows. On the other hand,
the MIDI Yoke configuration applet under Control Panel does have write access to
C:\Windows and will create a second copy of MYOKENT.INI there when you change the
settings. However, the latter file will never be never seen by the driver (because the
operating system keeps redirecting it to the copy in ...\VirtualStore\Windows); in other
words, the driver ‘won’t listen to you.’
To fix this, you must manually remove MYOKENT.INI from
C:\Users\Username\AppData\Local\VirtualStore\Windows or move it to C:\Windows, using
administrator rights.
3. As discussed below, the NT version of MIDI Yoke may slow down the termination of MIDI
Tools.
! CopperLan (http://www.copperlan.org/):
Available for macOS and Windows (32- and 64-bit).
This is primarily a MIDI-over-Ethernet system, so it’s a bit of overkill if you only need local
MIDI pipes. (CopperLan 1.4 for Windows installs three drivers, if I remember correctly!)
It offers up to 32 virtual MIDI input ports and 32 virtual MIDI output ports; by default none of
these are set up as ‘pipes’, but you can manually connect any output to any input (although the
idiosyncratic user interface makes this much more difficult than it should be).
! loopMIDI (http://www.tobias-erichsen.de/):
This allows you to create and destroy any number of MIDI pipes on the fly.
Simple and effective, so probably the best choice on modern Windows versions (particularly 64-
bit versions, given MIDI Yoke’s problems on those).
If configured improperly, MIDI pipes can easily cause problematic MIDI signal paths. There are
several dangers:
Duplication:
If there is first a split in the signal path, and then a merge, two or more copies of the same MIDI
message arrive at the end of the signal path (i.e. the target MIDI device). This is time-consuming in
all cases, but — even worse — it’s disastrous in the case of communication to or from a B-Control
via BCL, as performed by BC Manager:
A BCL chain (a sequence of related MIDI SysEx messages, e.g. a preset dump) must contain
strictly incremental MIDI message indexes. Therefore duplicate reception of the same MIDI message
within the chain causes the B-Control (and indeed BC Manager) to reject any further MIDI messages
belonging to the same BCL chain. Upon reception of a MIDI message containing an invalid index,
the B-Control returns a BCL reply message mentioning ‘Error 22’ to BC Manager, and the B-
Control’s display shows ‘Er22’, so if this happens, you have to correct the MIDI signal path.
Feedback:
In general, feedback involves the return of a sent MIDI message to the same MIDI hardware device or
computer program that sent the message. Obviously this needlessly slows down operation, although it
isn’t necessarily disastrous. However, there may also be more sinister effects. For instance, feedback
may interfere with BC Manager’s communication with the B-Control, in particular the ‘Detect B-
Controls’ and ‘Send firmware’ operations.
At the very least you should normally avoid enabling both the output port and the input port of
the same MIDI pipe in the same program (e.g. BC Manager), because by definition anything you send
to a MIDI pipe’s output port (the pipe’s starting point) is returned at the corresponding MIDI pipe’s
34
input port (the pipe’s end point). So for instance, if you enable both ‘Out To MIDI Yoke: 1’ and ‘In
From MIDI Yoke: 1’ in a program, then any MIDI data the program sends to ‘Out To MIDI Yoke: 1’
is returned to the program at ‘In From MIDI Yoke: 1’. This type of feedback is usually undesired,
except perhaps for monitoring purposes.
The most severe type of feedback occurs when the sender/recipient actually re-sends the
returned MIDI message: this leads to an infinite loop, which may well grind the sender/recipient (and
indeed the whole computer) to a virtual standstill.
In BC Manager this horror can happen if you enable the MIDI Thru feature in the MIDI devices
dialog box for an input-output pair already exhibiting feedback. For instance, if you activate MIDI
Thru from ‘In From MIDI Yoke: 1’ to ‘Out To MIDI Yoke: 1’ in BC Manager’s MIDI devices dialog
box, then any MIDI data sent to ‘Out To MIDI Yoke: 1’ not only comes back to BC Manager at ‘In
From MIDI Yoke: 1’ (via MIDI Yoke’s pipe 1), but is then automatically re-sent from ‘In From MIDI
Yoke: 1’ to ‘Out To MIDI Yoke: 1’ via the MIDI Thru feature, in principle ad infinitum, although
MIDI Yoke does perform some checks that spot and kill the infinite loop — but still...
Close delay:
This problem only occurs with MIDI Yoke NT 1.75 (but not with MIDI Yoke for Windows
95/98/Me): closing any MIDI Yoke NT input port causes a delay of 1 second. (Certain earlier
versions even 3 seconds.)
Concerning BC Manager this is mainly relevant during program exit. In principle BC Manager
terminates almost instantly upon exit, but when all the input ports of MIDI Yoke NT 1.75 are
enabled, termination of BC Manager takes some 16 seconds longer than normal! Therefore you
should disable as many MIDI Yoke NT input ports as possible in BC Manager’s MIDI devices dialog
box, i.e. any MIDI Yoke NT input ports that BC Manager itself doesn’t use. (Note that you can still
use any MIDI ports disabled in BC Manager in other programs!)
To help you avoid some of the serious problems discussed above, BC Manager takes the following
steps:
! On first startup, if BC Manager detects any of the MIDI pipes listed above [excluding
CopperLan, since by default its virtual ports aren’t interconnected], it asks you if you want to
enable the I/O devices of these pipes. It’s best to answer No (to avoid feedback loops, and to
avoid MIDI Yoke NT’s close delays during BC Manager’s exit procedure), unless some other
program (e.g. MIDI-OX) is routing a BCF2000 or BCR2000 through a MIDI pipe.
! On every startup, BC Manager optionally warns you if any MIDI Yoke NT input ports are
enabled and thereby cause extra delays during termination of BC Manager. You can
enable/disable this warning on the Input tab of the MIDI devices dialog box.
35
7. Tutorials
1. First make sure that all memory presets are synchronized between the B-Control and BC
Manager.
Two situations are possible:
A. The B-Control contains one or more presets that you don’t have anywhere else.
In this case your first priority should be to make a backup file containing these presets. To
do so, you should perform the following sequence of actions:
1. Execute ‘Receive all data’ from the MIDI pull-down menu in the B-Controls window.
2. Execute ‘Save As ...’ from the File pull-down menu in the B-Controls window.
Be aware though, that due to bugs in the B-Control’s firmware a few advanced features of
presets cannot be retrieved from a B-Control, so if your presets use any of these features,
the backup file will be imperfect.
B. The B-Control does not contain any presets of which you don’t have backups.
In this case your best course of action is to synchronize from BC Manager to the B-Control.
To do so, you should perform the following sequence of actions:
1. Optionally: execute ‘Open’ from the File pull-down menu in the B-Controls window,
and choose a file containing presets you want to use. (E.g you could use one of
Behringer’s general-purpose syx files.)
2. Execute ‘Send all data’ from the MIDI pull-down menu in the B-Controls window.
Once you have synchronized the B-Control and BC Manager, you can start creating/editing presets in
BC Manager:
2. Use BC Manager’s ‘Copy to preset 0’ operation in the preset list window (by pressing the
spacebar or executing the menu item on the Edit pull-down menu). This achieves two things:
1. The selected memory preset is copied to the temporary preset in BC Manager.
2. BC Manager sends a ‘select memory preset N’ command to the B-Control, provided you
have enabled ‘Select preset upon "Copy to preset 0"’ in the ‘MIDI options’ dialog box
(accessed via the MIDI pull-down menu of the B-Controls window). Note that this
operation does not send any preset data to the B-Control, so this only works correctly if the
memory preset on the B-Control has already been synchronized to the corresponding
memory preset in BC Manager.
3. In BC Manager, edit the temporary preset (‘preset 0’) to your liking. Using preset 0 for editing
has the additional advantage that you can send individual button/encoder/fader changes to the B-
Control: you can see immediately how the edited element works on the B-Control itself, and
determine which MIDI output it generates via BC Manager’s ‘MIDI input messages’ window.
See the subsection ‘Setting up individual elements (buttons, encoders and faders)’ below for a
36
tutorial on setting up an encoder.
4. To save the changes you have made within the temporary preset to a memory preset, proceed as
follows:
1. Copy the edited temporary preset to a memory preset in BC Manager.
2. Send that memory preset to the B-Control. This achieves the following:
1. The memory preset data from BC Manager overwrites the temporary preset on the B-
Control.
2. The memory preset data from BC Manager is copied from the B-Control’s temporary
preset to the memory preset on the B-Control.
3. The B-Control’s temporary preset is restored to BC Manager’s temporary preset data.
(In this case this should be superfluous, but of course this is not automatically the
case.)
Note that the above editing procedure avoids pressing the B-Control’s PRESET buttons. This is a
good thing, because that would only cause loss of synchronization between the B-Control and BC
Manager, hence potential confusion.
To summarize the general philosophy behind the above editing procedure: it’s best to do as
much editing as possible in BC Manager as such. You use the B-Control’s temporary preset only to
verify your changes, and the B-Control’s memory presets only as ‘dumb receivers’ (presumably for
later, ‘stand-alone’ use with your controlled MIDI hardware or software device).
37
This window allows you to enter an element’s underlying BCL code directly.
Drawbacks: (1) of course you have to learn BCL for this (see BCMI), and (2) you don’t gain
very much (if anything) on what BC Manager’s Button, Encoder and Fader dialog boxes offer.
See §21 for in-depth discussion.
1. Switch on your B-Control, start BC Manager and verify that BC Manager recognizes the B-
Control, as indicated in the B-Controls window.
4. Verify that the B-Control’s encoder is now working according to the definition you have sent to
the B-Control:
From BC Manager’s main window, open the ‘MIDI input messages’ window (e.g. via the third
toolbutton, the one with red horizontal lines).
In the ‘MIDI input messages’ window, press the Record button.
Then turn the encoder on the B-Control: the ‘MIDI input messages’ window should now show
the MIDI messages coming from the B-Control.
Of course the specific MIDI messages reflect the encoder definition you have uploaded to the B-
Control, so this monitoring is a nice way to learn about the MIDI data format and how it is
implemented in the B-Control.
38
8. The main window
The toolbar merely contains a number of buttons duplicating some of the most useful menu items.
39
However, opening a setup file involves restarting the application; thus you will lose transient
data like unsaved recorded MIDI input messages. So if you only wish to change the window
positions/sizes, it’s simpler to use the desktop (‘.dsk’) file facility (see View º Desktop),
because this doesn’t involve restarting the application.
Tip: you can force BC Manager to use a specific setup file via the command line, as follows:
macOS: -s setupfile
Windows: /s setupfile
View º B-Controls:
Opens the B-Controls window. This is the gateway to the main functionality of BC Manager.
See §10 for more information.
40
The error messages very closely match the error messages which a B-Control returns when it
receives a BCL script.
Note that BCL scripts can be received in three ways:
! You open a BCL file (via File º Open in the B-Controls window).
! You receive a BCL script from a B-Control via MIDI (e.g. via MIDI º Receive all data in
the B-Controls window).
! You execute a BCL script from a BCL editor window (via Run º Execute).
41
View º MIDI º Mackie monitors º 1/2/3/4:
Opens the indicated Mackie monitor. See §24 for more information.
42
This window is very useful for testing devices that seem unwilling to change programs.
43
Both the normal bytes and the MIDI data bytes are displayed in decimal, hexadecimal and binary
form simultaneously. You can also perform simple operations like SHL and SHR. The Sanitize
button clears bit 7 of all four MIDI data bytes. Via the Options button you can customize the
window’s display.
View º Desktop:
A submenu from which you can open and save desktop (‘.dsk’) files.
A desktop file contains the positions, sizes and states (hidden/visible/minimized) of all the
generic windows in the application, plus all the display options of the four generic Mackie
monitors. (Thus, a desktop file contains a subset of the data in a setup file: see BC Manager
(macOS)/File (Windows) º Setup.) However, a desktop file does not contain the settings of the
windows belonging to the individual B-Controls (such as preset and element list windows):
instead, these can be maintained via ‘B-Control desktop’ (‘.bcd’) files; see View º Desktop in
the B-Controls window.
By opening a (previously saved) desktop file you can quickly switch from one layout (at least for
the generic windows) to another. Unlike opening a setup file, this does not involve restarting the
application.
By default the ‘Keep numbers’ option is off, so that opening or saving a file promotes the file
name to position 1 in the list; when ‘Keep numbers’ is on, the list stays as it is, which can be
useful when you’re continually switching between particular desktops.
44
Note that the hotkey (Alt+0) for opening this dialog box works from almost any location in the
program, not just the main window.
If the highlighted window is partially or completely outside the current monitor(s), you can
move it into full view by pressing ‘Make this window fully visible’. ‘Make all windows fully
visible’ performs this operation on all windows in the list.
Options º Hints:
Opens a dialog box in which you can set options affecting the hints that are displayed when you
move the mouse cursor over buttons etc.:
45
Options º Mouse:
Opens a dialog box in which you can set the way in which the mouse turns the parameter knobs:
Options º Printer:
Shows the standard Windows dialog box in which you can set your printer’s properties. These
settings affect all printing operations performed from BC Manager, with the following
exceptions: in the layout windows, the ‘Print window image’ and ‘Print strips’ operations do not
adhere to the orientation setting made here, but always use Landscape.
46
This is basically the same table as the one in §30 in this manual.
47
Help º Mountain Utilities web site:
Provided you’re connected to the internet, your web browser opens the Mountain Utilities web
site, where you can find up-to-date information about BC Manager and other matters related to
the BCF2000 and BCR2000.
48
If you set ‘Versions to report’ to ‘Release’, you will only be notified about Release versions.
‘Release Candidate/Release’ will also notify you about Release Candidate versions, etcetera.
When an update is available, the program asks you whether you wish to open the program’s
web page at the Mountain Utilities site. You can also check for updates manually, by pressing
the ‘Check now’ button.
Note: If your firewall catches the program's connection attempt and asks you whether you
want to allow this, you can safely say yes: no information identifying you or your computer will
be sent to the Mountain Utilities web site.
Help º Donate:
Makes your web browser open the Donate page at the Mountain Utilities web site
(https://mountainutilities.eu/donate), at which you can express your appreciation of BC Manager
and support its further development by making a donation.
49
9. The B-Control detection options dialog box
The B-Control detection options dialog box is accessed via the main window’s Options pull-down
menu (º B-Detection).
! Startup detection:
! None:
On startup BC Manager does not try to find any previously defined or new B-Controls
connected to your computer. This option provides the fastest startup, but you must manually
execute the ‘Refresh connection status’ operation before you can exchange data with any B-
Control.
! Verify identity of previously defined B-Controls:
On startup BC Manager automatically verifies the presence of all previously defined B-
Controls via ‘Refresh connection status’ operations. This is the default setting.
! Scan enabled MIDI ports:
On startup, BC Manager scans all enabled MIDI I/O ports: any previously defined B-
Controls are reconfirmed, and contexts are established for any newly discovered B-
Controls. Unless you regularly add and remove B-Controls, you probably don’t want to use
this setting, because BC Manager’s startup takes a bit longer.
50
If this checkbox is checked, BC Manager’s startup scan dialog box closes automatically when
the scan is complete. If this checkbox is unchecked, you must manually close this dialog box.
51
10. The B-Controls window
The B-Controls window is the gateway to the main functionality of BC Manager. It displays a table
showing the B-Controls that BC Manager currently maintains in the computer’s RAM. These
representations in RAM can be loaded from and saved to files, and received from and sent to actual
BCFs and BCRs.
The best way to approach this setup is to use the file as the ‘master’ and the BCF or BCR as the
‘slave’. This is because (unless you have unsaved presets on the B-Control) it is advisable not to
receive presets from the B-Control. There are several reasons for this:
1. MIDI communication with B-Controls via BCL SysEx messages is extremely slow. (This is
simply because BCL messages consist of long text strings, rather than compact binary data.) So
if you have a file containing the same data as the B-Control, opening the file is always much
faster than receiving the data from the B-Control: you don’t want to have to receive all the data
from the B-Control whenever you start up BC Manager!
2. The BCF and BCR don’t store comments, hence can’t transmit them.
3. The BCF and BCR transmit certain aspects of their internal data incorrectly. This especially
concerns custom output (‘.tx’) lines. See BCMI for details.
! No.:
This is simply the number of the B-Control by which BC Manager identifies the B-Control in
window captions etc. (This number is unrelated to Device IDs, MIDI channels, etc.) The
maximum number of B-Controls you can define is 16.
Note: BC Manager doesn’t prevent you from having different B-Controls use the same file
and/or BCF2000/BCR2000 (via identical MIDI I/O ports and Device numbers), but it is
advisable not to do so to avoid confusion and data mismatches.
! File:
An asterisk in this column indicates that the B-Control data being maintained by BC Manager
has changed with respect to its associated file, either via manual editing or by receiving data
from the actual B-Control connected via MIDI. The asterisk disappears after you save the file
again.
Note: When you open one of the standard syx files provided by Behringer, the asterisk
immediately appears, and when you then try to exit BC Manager, you get the question whether
you want to save the file. This behavior is not a bug in BC Manager, but a consequence of the
fact that Behringer’s syx files do not contain any reference to unused presets. By contrast, when
BC Manager saves a bcf, bcr, syx, txt or bc2 file, all presets get stored, even the empty ones, and
when such a file is reopened, the asterisk does not appear.
52
! MIDI:
An asterisk in this column indicates that the B-Control data being maintained by BC Manager
has changed with respect to the B-Control connected via MIDI, either via manual editing or by
opening a file. The asterisk disappears after you send the data maintained by BC Manager to the
B-Control.
! File:
The name of the file associated with the B-Control data being maintained. This is a bcf, bcr, syx,
txt or bc2 file containing the full BCL definition of the B-Control.
! Device:
The Device ID that BC Manager uses in its MIDI SysEx communication with the connected B-
Control. For this communication to work, you must make sure that this number corresponds with
the Device ID set on the B-Control.
! Personality:
The current status of the connected B-Control, as established via the latest ‘Refresh connection
status’ operation. The following values occur:
! Offline:
The B-Control is not connected (or at least could not be detected), so no meaningful MIDI
data communication is possible. All you can do in this case is resolve the problem and retry
‘Refresh connection status’.
The cause of the problem can be any of the following:
! The MIDI input and/or output ports are undefined or disabled. Refer to the MIDI
devices dialog box, accessible from BC Manager’s main window.
! The Device ID of the B-Control itself and the Device ID specified in BC Manager
don’t match.
Obviously, to remedy this situation, you should change one or both of these
Device IDs so that they do match, and then try ‘Receive identity’ again. Beware: if the
B-Control is in a USB operating mode (U-1/2/3/4), any change to its Device ID causes
the USB-based MIDI I/O ports to change their identities, and these new MIDI I/O ports
are unavailable to BC Manager until you have quit and restarted BC Manager, and
manually enabled them via the MIDI devices dialog box. On the other hand, if the B-
Control is in a standard MIDI operating mode (S-1/2/3/4), you can change the B-
Control’s Device ID without having to quit and restart BC Manager.
! The B-Control is in Global Setup edit mode, the display showing ‘EG’. You should
53
press EXIT on the B-Control and retry ‘Refresh connection status’.
! The B-Control is in element edit mode, the display showing ‘b nn’, ‘E nn’ or (BCF
only) ‘Fd n’. You should press EXIT on the B-Control and retry ‘Refresh connection
status’.
! Bootloader:
The B-Control has been started up in bootloader mode. BC Manager’s functionality is
limited.
The B-Control enters bootloader mode on startup if there is a problem with its
firmware or if you are holding the STORE and LEARN buttons when you press the
POWER button. In the former case the B-Control’s display shows ‘noOS’, in the latter
‘LOAd’. Note that in bootloader mode the B-Control cannot communicate via USB-based
MIDI connections, only via standard MIDI connections (and only via Output A at that). See
BCMI for further details on bootloader mode.
! Unknown:
The BCF’s firmware version has been retrieved successfully, but somehow the BCF’s
emulation mode could not be established.
! B-Control:
The B-Control is in standard B-Control mode. For BC Manager this is the desired value:
you can access all the B-Control’s data structures, including global setup, the temporary
preset and the memory presets.
! MC C/So:
The BCF is in ‘MC C’ or ‘MCSo’ emulation mode. BC Manager’s functionality is limited.
(Note: the fact that no distinction is made between ‘MC C’ and ‘MCSo’ is due to a
limitation of the BCF’s emulation mode identification protocol.)
! LC:
The BCF is in ‘LC’ emulation mode. BC Manager’s functionality is limited.
! bhuI:
The BCF is in ‘bhuI’ emulation mode. BC Manager’s functionality is limited.
(Note: so far I haven’t found a way to ‘actively’ establish that the BCF is in bhuI
emulation mode. Instead, BC Manager simply assumes that the BCF is in bhuI mode when
none of the active checks for the other modes have led to a positive result. Hence, it takes a
while for BC Manager to ‘discover’ bhuI mode.)
In all cases except ‘Offline’ and ‘B-Control’, you can only communicate with the B-Control via
‘Refresh connection status’ and ‘Send firmware’.
! Firmware:
The actual firmware identity string returned by the B-Control during the ‘Refresh connection
status’ operation. Normally this should be something like ‘BCF2000 1.10’ or ‘BCR2000 1.10’.
Exceptionally, this can be ‘BCF2000 BOOTLOADER 1.0’ or ‘BCR2000 BOOTLOADER 1.0’,
indicating that the B-Control is in bootloader mode.
54
B-Controls º New BCF2000/BCR2000:
Adds a new B-Control of the specified type to the list of B-Controls. (You are then responsible
for assigning a file and/or MIDI ports to this new B-Control.)
File º Open:
Opens a dialog box in which you can select a bcf, bcr, syx, txt or bc2 file whose data you want to
load into the selected B-Control (as maintained by BC Manager). By default, you can see only
the existing bcf files (if the B-Control is a BCF2000) or the existing bcr files (if the B-Control is
a BCR2000), but you can switch to the existing syx, txt or bc2 files via the ‘Files of type’ list
box.
Note that saving and sending verification dialog boxes show up when appropriate and that
the file name associated with the selected B-Control is updated to the name of the opened file.
By contrast, these things do not happen in case of the Import operation (see below). (The idea is
that an opened file contains all the data for a B-Control, although this is by no means
obligatory.)
File º Import:
Works exactly like the Open operation (see above), except that no saving or sending verification
dialog boxes show up and the file name associated with the selected B-Control is not updated to
the name of the opened file. Thus, Import is ideal for assembling a B-Control setup from several
different source files.
Note: if you import a file containing a memory preset (i.e. a file containing a preset
definition followed by a $store statement), the B-Control’s temporary preset is always
changed too. This is simply a consequence of how BCL works: any preset definition alters the
temporary preset, and can only be copied to a memory preset by a subsequent $store
statement — of course by that time the temporary preset has already been changed.
File º Save:
Saves the selected B-Control’s data (as maintained by BC Manager) to the bcf, bcr, syx, txt or
bc2 file currently associated with the B-Control.
55
BC Manager can reopen any of these file types, but there are several notable differences
that determine which file type is best for you:
Internally, the only the difference between bcf, bcr and txt files on the one hand and bc2
files on the other is that BC Manager saves bcf, bcr and txt files in UTF-8 format and bc2 files in
ANSI format. Thus, a bcf, bcr or txt file retains any Unicode characters in comments and
metadata (such as element and author names), but a bc2 file doesn’t.
bcf and bcr were introduced in BC Manager 3.0.0 and are the recommended extensions,
since they allow you to distinguish between files for the BCF2000 and files for the BCR2000:
particularly syx and txt might cause confusion with other, non-BCL syx and txt files in the same
folder. On the other hand, syx files can be uploaded to B-Controls via third-party uploaders (but
note the caveat below), and txt makes it a bit easier to edit the file in a standard text editor such
as Notepad (note that Notepad supports UTF-8). bc2 is only provided for compatibility with
Royce Craven’s BCn2000 Script Editor.
The advantages of text files (bcf, bcr, txt and bc2) over syx are:
! A bcf, bcr, txt or bc2 file is always slightly smaller than the corresponding syx file.
! You can edit bcf, bcr, txt and bc2 files via any external text editor. (However, other BC-
managing products might only be able to work with syx files.)
! When comments, element names and preset authors are saved to a syx file, all non-ASCII
characters (ANSI and Unicode) are converted to dots: this is necessary to comply with the
syx file format. On the other hand, ANSI characters are saved to bcf, bcr, txt and bc2 files,
and bcf, bcr and txt files even retain Unicode characters.
! Each individual data section (global setup, preset specs, button, encoder, fader) in a syx file
can ‘only’ contain up to 16384 BCL messages (lines), so syx files can’t be used for
extremely big data sections (i.e. with huge amounts of multi-line comments or ‘custom
output’ MIDI messages).
! Third-party syx uploaders will be unable to skip any comments and (comment-embedded)
metadata (such as element names and colors), so they will need substantially more time to
upload comment/metadata-heavy syx files to B-Controls than BC Manager.
File º Backups:
If this option is on, a Save or Save As operation (see above) first renames the existing file (if it
exists), by inserting a tilde (~) at the start of the extension. So e.g. the old demo.bcf is renamed
to demo.~bcf.
File º Detach:
Detaches the bcf/bcr/syx/txt/bc2 file from the selected B-Control. (Note that the file is not
deleted.)
This operation is mainly useful when you wish to transfer a file from one B-Control to
another: whereas BC Manager does allow you to associate a file with more than one B-Control
simultaneously, it is advisable to detach the file from the ‘old’ B-Control to avoid confusion.
56
Sends a request to the connected B-Control for its current control value settings. Any response
messages from the B-Control do not alter BC Manager’s representation of the selected B-
Control, but only show up in the MIDI input message window, which is accessible from BC
Manager’s main window via View º MIDI º Input messages (general). So basically this
operation is only useful for testing purposes.
MIDI º Options:
Opens a dialog box in which you can set several options related to the MIDI communication
with the connected B-Control:
See §6 for a discussion of the MIDI input/output port and Device settings.
If ‘Select preset upon "Copy to preset 0"’ is checked, the ‘Copy to preset 0’ operation (in
the presets window) attempts to synchronize the connected B-Control by selecting the same
memory preset for its ‘preset 0’ (or ‘temporary preset’), exactly as occurs when you press the
PRESET =/< buttons on the device itself. Obviously this synchronization attempt only really
succeeds if the memory preset in the B-Control is identical to its counterpart in BC Manager!
You can also select the method by which the ‘Copy to preset 0’ operation tries to
synchronize the actual B-Control:
57
This sends a single B-Control-specific ‘Select Preset’ message (this is actually a MIDI
System Exclusive message). Only the intended B-Control should respond (provided its
Device ID is correct), so this should be very safe, and is therefore the default and preferred
method.
The BCF internally maintains a global setup history area containing 73 setups; the BCR’s
history area contains 170 setups. The BCF and BCR fill these areas from bottom to top; so the
active global setup is always the first one from the start that isn’t undefined. Once the area
overflows, the BCF/BCR clears it completely and starts filling it from the bottom again.
In the global setup history window, you have to run MIDI º Receive to retrieve the global
setup history from the BCF/BCR.
Normally there is no need to edit the BCF/BCR’s global setup history: you can change the
B-Control’s global setup from the ‘standard’ global setups window, accessible from the View
pull-down menu (see below). However, it’s nice that you can see which setups you have used in
the past; and if you really want to, you can restore a previous setup by removing all the more
recent ones and restarting the BCF/BCR.
1
Apart from the BCL Reply messages which the B-Control returns in response to the BCL
chain, the B-Control also returns any LEARN output bytes if the preset’s Request parameter is on.
Unfortunately, this LEARN output occurs before the B-Control completes its response messages to
BC Manager’s BCL chain. BC Manager deals with this by simply ignoring any interfering MIDI
messages (SysEx or other), i.e. any messages that are not BCL Reply messages; however, it does
mention any interfering SysEx messages in its error listbox.
58
2. The ‘test hardware’ dialog box opens:
As long as this dialog box is open, you can manually press/move any button, encoder, fader,
foot controller or foot switch: all other elements of the same type should respond in
synchrony.
Additionally, from this dialog box you can press the Start button, which starts a kind of
‘light show’: BC Manager starts sends sending Control Change messages at regular
intervals to the B-Control, which should cause the values of all buttons, encoders and faders
to change in synchrony automatically. You can use the various knobs and checkboxes in the
dialog box to customize the properties of the light show.
3. After you have closed the dialog box, BC Manager restores the temporary preset that was
active before the special preset. (Note: this is the ‘preset 0’ that BC Manager knows about,
which could be different from the previous temporary preset on the B-Control, namely if
before the hardware test there was a mismatch between the temporary preset on the B-
Control and the one in BC Manager.)
59
operation.)
Since a B-Control performs a firmware check (using a checksum) when it gets switched on,
and the display only shows the firmware version when the firmware is fully OK, refreshing the
existing firmware is always totally pointless. So if the display says ‘1.10’ on startup,
resending firmware 1.10 won’t resolve any undesired behavior your B-Control might be
exhibiting: by definition the cause of the problem lies elsewhere. So don’t waste your time
refreshing the existing firmware, ever. Really: don’t.
On the other hand, if the B-Control displays a version number lower than 1.10 on startup,
you should definitely upgrade to version 1.10, to optimize the capabilities of the B-Control and
to ensure full compatibility with BC Manager.
When you send firmware to a B-Control, its Operating Mode must not be S-1 or S-2
(because these modes use MIDI merge, which messes up the operation). Any U mode should
work fine (though U-1 is the safest of these), but the preferred mode is S-4 (with BC Manager
receiving the B-Control’s confirmation messages via MIDI OUT A, not MIDI OUT B/THRU).
S-3 is also possible, provided you use MIDI OUT B/THRU.
The ‘send firmware’ operation overwrites the firmware on the B-Control’s EEPROM chip.
However, this operation works by segments, so if the operation gets interrupted, the firmware on
the EEPROM chip can end up as a mix of two versions, hence invalid.
So if a ‘send firmware’ operation has got interrupted, you should not switch off the B-
Control, but redo the operation so that it does complete. As long as you don’t switch off the B-
Control, you can keep retrying, because the B-Control is still running from a copy of the old
firmware in RAM.
If you switch off the B-Control when its firmware has become invalid, the next time you
switch on the B-Control its display will show ‘noOS’, and the device will be almost totally
dysfunctional. Crucially, its USB port and its MIDI OUT B/THRU socket won’t work any more.
So you will then have to redo the ‘send firmware’ operation using the B-Control’s MIDI IN and
MIDI OUT A sockets. Obviously this requires a separate MIDI interface between the computer
and the B-Control.
60
View º Presets:
Opens the presets window for the selected B-Control. (Note: double-clicking on a B-Control’s
row also achieves this.) See §12 for more information.
View º Layout:
Opens the layout window for the selected B-Control. See §14 for more information.
View º Compare:
Opens a dialog box in which you can compare presets and elements:
View º Monitor:
Only available for a BCF2000 in any emulation mode except bhuI. Opens a window that shows
the display messages that the BCF outputs. (This works quite like Behringer’s BCFview utility.)
61
Note the difference with BC Manager’s generic Mackie monitor facility (available from the
main window via View º MIDI º Mackie monitors): a generic Mackie monitor intercepts the
Mackie display messages from a MIDI application to a BCF (in whatever mode) or to a BCR,
but here we capture messages from a BCF (in emulation mode).
A subtle point is that a BCF in emulation mode actually routes back any Mackie display
message it receives (from the MIDI application) as a BCF display message (the two formats
differ slightly). So you don’t need to use a generic Mackie monitor window for a BCF in
emulation mode: the BCF outputs both the converted Mackie messages and its own messages.
This works practically the same as the options dialog box for the generic Mackie monitor
windows; see §8 under Options º Mackie monitors.
View º Desktop:
A submenu from which you can open and save B-Control desktop (‘.bcd’) files.
A B-Control desktop file contains the positions, sizes and states (hidden/visible/minimized) of
the windows of a single B-Control, plus (in case of a BCF2000) the display options of its
BCF2000 monitor.
By opening a (previously saved) B-Control desktop file you can quickly switch from one layout
to another. Note that a B-Control desktop file can be used for any B-Control, not just the one for
which it was saved; you can even use a file saved for a BCF for a BCR and vice versa: the BCF-
only settings (concerning the fader list window and the monitor) are simply ignored.
62
By default the ‘Keep numbers’ option is off, so that opening or saving a file promotes the file
name to position 1 in the list; when ‘Keep numbers’ is on, the list stays as it is, which can be
useful when you’re continually switching between particular B-Control desktops.
63
11. The global setups window
The global setups window displays a table containing the global setup values of the currently
maintained B-Controls:
! No.:
This is the number of the B-Control, exactly corresponding with the B-Controls displayed in the
B-Controls window.
! File/MIDI:
Asterisks in these columns indicate that the representation of the global setup (as maintained by
BC Manager) has changed with respect to its associated file or the B-Control connected via
MIDI. See §10 for further explanation.
! Comments:
A text that is editable via the Info tab of the global setup dialog box. This text can be of any
length.
! Other columns:
These display the actual global setup parameters. See BCMI for details.
Note: as of BC Manager 2.3.3 the Device IDs shown in the ‘Device (ignored)’ column are
completely ignored, i.e. they are never sent to the B-Control or written to a bcf/bcr/syx/txt/bc2
file.
64
MIDI º Receive:
Sends a request to the connected B-Control for sending its global setup to BC Manager.
MIDI º Send:
Sends the selected B-Control’s global setup to the connected B-Control.
Edit º Cut:
Copies the selected global setup(s) to the global setup clipboard and initializes the selected
global setup(s).
Edit º Copy:
Copies the selected global setup(s) to the global setup clipboard.
Edit º Paste:
Pastes the global setup clipboard to the selected global setup(s).
Edit º Initialize:
Initializes the selected global setup(s).
Edit º Edit:
Opens a dialog box in which you can edit the parameters of the selected global setup. If you have
selected more than one global setup, a sequence of dialog boxes will be offered: one for each
global setup.
You should be very careful with the ‘Operating mode’ parameter: when a B-Control
receives this parameter via MIDI, it updates its connection setup, which can invalidate the
connection with BC Manager when you restart the B-Control! The other parameters can be
changed with impunity.
Note: the ‘Device’ parameter shows the device ID received from a B-Control or read from
an old-style or third-party syx/txt/bc2 file; however, to avoid mid-stream communication loss,
the value displayed here is never sent (or saved, for that matter), and accordingly you can’t edit
it. BC Manager only uses the ‘Device’ value defined in the ‘MIDI options’ dialog box
(accessible from the B-Controls window via MIDI º Options) for all its device ID ‘fingerprints’
in communication with the B-Control and in syx files.
65
12. The presets window
A presets window displays a table containing the main features of a B-Control’s presets. A presets
window is also the gateway to miscellaneous windows detailing a preset’s buttons, encoders and
faders. (See BCMI for the details of all preset and element parameters.)
! No.:
This is the preset number. 0 refers to the temporary preset, 1-32 to the memory presets.
Note: the BCF and BCR use the temporary preset as a gateway to the memory presets. That
is: it is only possible to change a memory preset on a B-Control via MIDI by sending the
memory preset’s data as the temporary preset and then sending a command that orders the B-
Control to store its temporary preset as a particular memory preset. Obviously, as a result of this
operation the original temporary preset data on the B-Control has been lost. Thus, it is rather
tricky to keep the temporary preset synchronized. BC Manager does try to achieve this by
resending the original temporary preset after sending one or more memory presets. However,
this ploy only succeeds if the original temporary preset data on the connected B-Control matches
the temporary preset data maintained by BC Manager. This will not necessarily be the case; e.g.
when you manually switch to another preset on the B-Control via the Preset »/º buttons, the B-
Control’s temporary preset data gets set to the data of the memory preset concerned. The bottom
line: don’t assume that the temporary preset’s data as maintained by BC Manager automatically
matches the temporary preset on the connected B-Control.
! File/MIDI:
Asterisks in these columns indicate that BC Manager’s representation of the preset has changed
with respect to its associated file or the B-Control connected via MIDI. This concerns the
preset’s general settings, but also its elements: buttons, encoders and faders. See §10 for further
explanation.
! Name:
The preset’s name, editable via the Info tab of the preset dialog box.
! Comments:
A text that is editable via the Info tab of the preset dialog box.
66
! Groups/Request/Snapshot/Btn 53-56/Btn 64-64:
Parameters that are editable via the Parameters tab of the preset dialog box.
! LEARN output:
The lines of bytes defined via the ‘LEARN output’ tab of the preset dialog box.
! Buttons/Encoders/Faders:
The number of currently active buttons/encoders/faders. This counts all the elements that
produce standard or custom output.
! Data size:
Memory presets (unlike the temporary preset) are restricted in complexity. Each button, encoder
or fader defining standard or custom output takes up space, and so does the preset’s LEARN
output definition. On the BCF 4956 bytes are available for each memory preset, on the BCR
4344 bytes.
This column shows the current number of bytes occupied by the preset. Once this number
exceeds the available space, an asterisk is included. (However, you aren’t barred from sending
such a preset to the B-Control; this may change in a future version of BC Manager.)
MIDI º Receive:
Sends a request to the connected B-Control for sending the selected preset(s) to BC Manager.
67
Note that the preset names (let alone complete presets) do not get synchronized: it’s your own
responsibility to subsequently achieve this (in whatever direction). The only lasting effect from
the comparison concerns the MIDI column in the presets window: for your convenience, presets
with different names receive an asterisk, indicating (as usual) a mismatch between BC Manager
and the connected B-Control.
Beware: even when two counterpart names are reported equal, their presets as a whole may
still differ! This is why BC Manager doesn’t give as much prominence to the preset names as
Behringer’s own BC-EDIT program: as explained elsewhere in this manual, you are advised to
use the bcf/bcr/syx/txt/bc2 files as masters and your B-Controls as slaves. In any case, if any pair
of preset names differs, you should definitely synchronize the presets concerned in the direction
that is appropriate at the time; however, in line with BC Manager’s philosophy, the direction
should usually be from the computer to the B-Control.
MIDI º Send:
Sends the selected presets to the connected B-Control.
Edit º Cut:
Copies the selected preset(s) to the preset clipboard and initializes the selected preset(s).
Edit º Copy:
Copies the selected preset(s) to the preset clipboard.
68
Edit º Paste:
Pastes the preset clipboard to the selected preset(s).
Edit º Initialize:
Initializes the selected preset(s).
Edit º Edit:
Opens a dialog box in which you can edit the general settings of the selected preset. If you have
selected more than one preset, a sequence of dialog boxes will be offered: one for each preset.
View º Layout:
Opens the layout window. See §14 for more information.
View º Buttons/Encoders/Faders:
Opens the Buttons, Encoders or Faders window. See §16 for more information.
69
13. The preset dialog box
The preset dialog box is accessed via the presets window. It allows you to edit a preset’s general
settings (as opposed to the individual buttons, encoders and faders).
1. Info:
! Name:
The preset’s name.
The BCF and BCR actually maintain this name, which is why the maximum length is 24
characters.
Another restriction is that the inclusion of one or more apostrophes (') in the name is
impossible in certain specific cases, because the BCF and BCR interpret preset names in a buggy
way. What is and is not allowed is hard to explain in simple terms, but BC Manager makes the
OK button of the dialog box inaccessible whenever the name is invalid; when this happens,
simply remove the apostrophe(s) and the OK button becomes accessible again.
! Author:
The author of the preset.
Note that in the current version of BC Manager this field isn’t displayed anywhere else, but
maybe in a future version it will be possible to show it in a column in the preset list window.
! Comments:
A completely free text that can be of any length.
! Image:
The name of a bmp or ico file. If the specified name provides a valid image, this image is
displayed to the right of the ‘Select file’ button and (more importantly) in the B-Control’s layout
window when the current preset is selected. The images in bmp and ico files can have any
70
dimensions, but BC Manager always displays them as images of 32×32 pixels.
Important note: when you save one or more presets to a bcf/bcr/syx/txt/bc2 file, BC
Manager copies any related image files referenced by absolute path names to a subfolder called
images and removes the absolute paths from the Image fields in the presets. This strongly
reduces the risk of ‘orphaned’ image file references and makes public preset distribution much
easier: you can simply put the bcf/bcr/syx/txt/bc2 file plus the images subfolder and its contents
into a zip file. Note that all bcf/bcr/syx/txt/bc2 files in the same folder will use the same images
subfolder, which can be both an advantage and a disadvantage.
! Background color:
The background color of the B-Control’s layout window when the current preset is selected.
Note: ‘B-Control’ (the last item in the list) is the color used by BC Manager before version
3.0.0.
! Text color:
The text color of the B-Control’s layout window when the current preset is selected.
Note that the BCF and BCR themselves don’t store the Author, Comments, Image, Background color
and Text color fields, so these fields can only be maintained via the file associated with the B-
Control.
2. Settings:
! Encoder groups:
A number from 1 to 4 indicating how many groups of button and encoder definitions associated
with the 8 push-encoders are accessible on the B-Control. E.g. if this number is 1, only group 1
(i.e. buttons and encoders 1-8) is accessible, if it is 4, all 4 groups (i.e. buttons and encoders 1-
32) are accessible.
Note: irrespective of this value you can always edit any push-encoder definition in BC
Manager.
71
Determines whether the B-Control outputs the ‘LEARN output’ bytes upon preset selection.
3. LEARN output:
Here you can define a sequence of ‘LEARN output’ lines, each containing a sequence of bytes:2
The B-Control outputs the bytes in these lines via MIDI whenever the user presses EDIT + LEARN,
provided that the EDIT and LEARN keys are not used as buttons 55 and 54 respectively – cf. the
‘Function of function keys’ parameter (see above). The B-Control also outputs these bytes upon
preset selection, provided that the Request parameter (see above) is on.
See §18 for further details.
2
Each LEARN output line generates its own ‘.tx’ BCL statement: this is possible because the
BCF and BCR accept multiple ‘.tx’ statements. See BCMI for more information.
72
14. The layout windows
The layout window is accessed via the presets window. It provides a physically more or less accurate
top view of the actual BCF2000 or BCR2000, and shows the selected preset’s element labels:
The layout window’s editing facilities are somewhat limited: it is primarily intended as an overview;
the presets window and the element windows offer more advanced editing operations.
Color coding:
Normally, each element is shown with the background color defined on the Info tab of that element’s
dialog box.
However, if a button or encoder is dysfunctional on the BCF/BCR due to the preset settings, its
background color is pink. (Note that you can still edit these buttons and encoders.)
The following relationships hold between preset settings and element functionality:
! The number of encoder groups (1-4) determines whether the encoders and buttons in GROUP 2,
GROUP 3 and GROUP 4 are enabled, and also whether the four keys on the ENCODER
GROUPS panel function as encoder group selectors or as ordinary buttons 57-60. Note that there
is an inverse relationship: the more encoder groups are enabled, the fewer keys on the
ENCODER GROUPS panel function as normal buttons, because these have to be used for
encoder group selection.
! The ‘Function of function keys’ setting determines whether the STORE, LEARN, EDIT and
EXIT keys function as special function keys or as ordinary buttons 53-56. (Note that the
73
‘Function of preset keys’ setting affects ‘Function of function keys’.)
! The ‘Function of preset keys’ setting determines whether the two PRESET keys function as
preset selectors or as ordinary buttons 63 and 64.
Navigation:
Note that you can ‘tab’ from one group of labels to another by means of Tab (forward) and Shift+Tab
(backward). You can also move directly to a particular group by pressing the character underlined in
the group’s caption (you don’t even have to keep the Ctrl key pressed). Within a group you can use
the arrow keys (and even Home, End, PgUp and PgDn).
Menu:
The menu provides the following operations:
Edit º Cut:
Copies the selected (highlighted) element to the pertinent element clipboard and initializes the
selected element.
Tip: you can move an element definition to another element directly via mouse-dragging:
this usually works faster than cutting and pasting. See the bottom of this section.
Edit º Copy:
Copies the selected (highlighted) element to the pertinent element clipboard.
Edit º Paste:
Pastes the first element on the pertinent element clipboard to the selected (highlighted) element.
Note that ‘Paste’ always takes data from the ‘native’ clipboard for the currently selected
element. So for instance if you are currently on a button, you can thus only paste a button from
the button clipboard. By contrast, ‘Paste button/encoder/fader’ (see below) always concerns
‘foreign’ clipboards.
74
Edit º Paste button/encoder/fader:
Pastes the first element on the indicated ‘foreign’ element clipboard to the selected (highlighted)
element. So for instance if you are currently on a button, you can thus paste an encoder from the
encoder clipboard or a fader from the fader clipboard. Note that parameters in the target element
not contained in the source element on the clipboard are set to default values.
Edit º Initialize:
Initializes the selected (highlighted) element.
Edit º Edit:
Opens a dialog box in which you can edit the selected (highlighted) element.
Edit º Preset:
Opens a dialog box in which you can edit the general settings of the selected preset.
View º Presets:
Opens the presets window for the B-Control to which the layout window belongs. See §12 for
more information.
View º Buttons/Encoders/Faders:
Opens the Buttons, Encoders or Faders window of the B-Control to which the layout window
belongs. See §16 for more information.
75
15. Printing overlays
Via the ‘Print overlays’ operation in the File pull-down menu of the layout windows you can open a
dialog box from which you can print overlays that you can put on a real BCF2000 or BCR2000. The
button, encoder and fader labels are printed in the colors you have defined for them. (These colors are
also shown in the layout windows). A live preview panel shows exactly what you’re about to print.
! Preset: Selects the preset (0-32). (For obvious reasons, printing preset 0 (the temporary preset) is
not recommended.)
! Print: Prints the currently defined page (as shown in the preview).
! Close: Closes the dialog box.
Areas tab:
Here you can select the overlay areas you want to print.
! Strips: This is a non-overlay mode: all the element label rows are printed in a simple column.
This can be useful for further manual processing, e.g. to replace some rows in a previously
printed overlay.
! ‘Upper main’, ‘Upper side’, ‘Lower main’ and ‘Lower side’ put the respective overlay areas on
the page, in any combination.
! Preset background color: Determines whether the preset background color (as defined on the
Info tab of the preset dialog box) is used as the background of the overlays. Be careful: this is
likely to cost a lot of ink/toner! If you still want this, at the very least you should first print a test
page without a background color, to avoid any disappointment.
Positions tab:
! Left (mm): The left margin of the page.
76
! Top (mm): The top margin of the page.
! Height between upper and lower areas (mm): The vertical distance between the bottom of the
upper main/side areas and the top of the lower main/side areas.
Cutouts tab:
! Border: Determines the style of the border of all cutouts (overlay areas, buttons, encoders etc.).
! Rounded: Determines whether the cutouts for the buttons and encoders are rectangular or
rounded.
! Individual encoders: Determines whether each individual encoder has a separate cutout (i.e. a
circle) or whether all encoders in the same row share a single cutout.
Labels tab:
! Border width (1/10 mm): Determines the width of all label borders. Ranges from 0 to 1 mm, in
steps of 0.1 mm. Naturally, if you set this to 0, no borders are printed.
! Preset label: Determines whether the name of the preset is printed (in the upper side and lower
side areas).
! Foot labels: Determines whether labels for the foot controls are printed.
! Empty labels: Determines whether the borders and backgrounds of labels of unused buttons,
encoders and faders are printed.
! Row names: Determines whether the names of button, encoder and fader rows are printed next to
these rows. Very useful in Strips mode, sometimes also for the buttons and encoders in the four
encoder groups.
! Push encoder height (%): Determines the height of the labels of the buttons and encoders in the
four encoder groups. If there are many rows of these, it may help to reduce their height. Range:
25-100%.
Text tab:
! Font: Opens a dialog box in which you can set the font (‘typeface’) and the font style. (Don’t
bother about the ‘Script’ setting. I just don’t know how to remove it from the dialog box...)
! All caps: Determines whether all preset, button, encoder and fader labels are capitalized.
Printer tab:
! Printer setup: Opens the operating system’s standard Print Setup dialog box. Note that BC
Manager ignores the page orientation set in this dialog box; see below.
! Orientation: Sets the page orientation.
! Color scheme:
! Black & white: All labels and borders are printed in black, and no backgrounds are printed.
Use this on any printer (monochrome or color) when you wish to conserve ink/toner.
! Colors: Everything is printed in color, as specified by the background and text colors you
have defined for the preset and its individual buttons, encoders and faders. (The driver of a
monochrome printer will probably convert these colors to grayscale.)
! Grayscale: BC Manager converts all colors to grayscale values. (On a monochrome printer,
the result should match what you get with the ‘Colors’ setting, but since it’s now BC
Manager rather than the printer driver that performs the grayscaling, total equivalence isn’t
guaranteed.)
Preview tab:
The settings on this tab only concern the preview on your computer monitor; they don’t affect the
printed page.
! Page size: Determines the page size of the preview.
! Zoom (%): Determines the zoom factor of the preview.
77
Note that you’re not restricted to the predefined values in the drop-down list: you can type any
value between 25 and 400 (even decimals are allowed). However, you should not use this to
calibrate the scale of your computer monitor: for that you should use the pixel pitch setting (see
below).
! Monitor’s pixel pitch (um): If you calibrate this to the pixel pitch (in micrometer) of your
computer monitor, the size of the preview should exactly match what gets printed if Zoom is at
100%. The pixel pitch of a monitor can often be found in its specs. Alternatively you can hold a
sheet of paper in front of the monitor, then tweak the value until the size of the preview page
matches the sheet of paper. (Note: the default value is based on the operating system’s default,
but this is unlikely to be accurate.)
! Length unit: Determines the length unit used in the status bar. (The status bar shows the
preview’s page size and the current horizontal and vertical mouse positions.)
78
16. The element windows
An element window displays a table containing the main features of a preset’s buttons, encoders or
faders:
! No.:
The element number. For buttons this number runs from 1 to 64, for BCF encoders from 1 to 32,
for BCR encoders from 1 to 56, and for faders (BCF only) from 1 to 9 (where fader 9 is actually
the Foot Controller).
! Group/Row:
The general location on the B-Control.
! Item:
The specific location within the general location on the B-Control. Usually a column number.
! File/MIDI:
Asterisks in these columns indicate that the representation of the element (as maintained by BC
Manager) has changed with respect to its associated file or the B-Control connected via MIDI.
(See §10 for further explanation.)
! Name:
The element’s name, editable via the Info tab of the element’s dialog box.
! Comments:
A text that is editable via the Info tab of the element’s dialog box.
! Other columns:
These are all specific element parameters, editable via the element’s dialog box.
79
formatted ‘txt’ file. You could use this as an input file to create a table in an external word
processor.
Edit º Cut:
Copies the selected element(s) to the pertinent element clipboard and initializes the selected
element(s).
Edit º Copy:
Copies the selected element(s) to the pertinent element clipboard.
Edit º Paste:
Pastes the pertinent element clipboard to the selected element(s).
Note that ‘Paste’ always takes data from the ‘native’ clipboard. So for instance in a button
window, you can thus only paste buttons from the button clipboard. By contrast, ‘Paste
button(s)/encoder(s)/fader(s)’ (see below) always concerns ‘foreign’ clipboards.
Edit º Initialize:
Initializes the selected element(s).
Edit º Edit:
Opens a dialog box in which you can edit the parameters of the selected element. If you have
selected more than one element, a sequence of dialog boxes will be offered: one for each
element. See §17 for more information on element dialog boxes.
80
Simple º Program Change/Control Change/NRPN:
These operations allow you to quickly set up a ‘standard’ Program Change, Control Change or
NRPN element. You are asked to define only a few essential parameters, upon which BC
Manager automatically sets up the whole element according to what BC Manager considers
suitable settings.
These operations also work very nicely if you have selected more than one element: you can
then also define increments for both channel and program/controller number per element.
Note: the difference between ‘Simple’ and ‘Parameter’ (see above) is that ‘Simple’ sets up
whole elements, whereas ‘Parameter’ only affects the selected parameter of the selected
elements.
MIDI º Send:
Sends the selected element(s) to the connected B-Control. This operation can only be executed
for preset 0 (the temporary preset); this restriction is simply a consequence of the BCL protocol:
it is impossible to send individual elements of memory presets to a B-Control.
81
17. The element dialog boxes
An element dialog box is accessed via the corresponding element window. It allows you to edit all the
settings of a single button, encoder or fader. For in-depth discussion of these settings, see BCMI.
1. Info:
! Name:
The element’s name, which can be of any length.
! Color:
The background color of the element in the B-Control’s layout window. (Typically you will
assign a particular color to related elements.) The text of each element is shown in black or
white, depending on which of these colors contrasts best with the selected background color.
! Comments:
A completely free text that can be of any length.
Beware: the BCF and BCR themselves don’t store the Name, Color or Comments fields, so these
fields can only be maintained via the file associated with the B-Control.
2. General:
82
! Show value:
Determines whether moving the element results in new values being shown in the B-Control’s
display.
3. Standard output:
83
This tab contains all parameters related to a ‘standard’ MIDI output message that the element can
output, such as Program Change and Control Change. These are the MIDI messages listed in
Behringer’s manual for the BCF2000 and BCR2000. (Note: in BCL these messages fall under the
‘.easypar’ category.)
4. Custom output:
Here you can assign a sequence of ‘custom output’ lines to the button, encoder or fader. Each custom
output line contains a sequence of bytes, possibly also certain special identifiers. (Note: in BCL these
custom output lines fall under the ‘.tx’ category.)
These custom output lines can be edited in exactly the same way as the LEARN output messages
that can be assigned to a preset. See §18 for details.
Note that it is possible to assign both a standard output message and one or more custom output
84
messages; in this case the element outputs the standard message first, then the custom messages.
The Value 1 and Value 2 parameters shown on the custom output tab allow you to set the
minimum and maximum values of the element. Note that Value 1 and Value 2 only apply if the
standard MIDI output message’s Type parameter has been set to ‘None’: if any actual standard
message has been assigned, that message’s minimum and maximum values prevail.
The same goes for the Mode parameter on the custom output tab for buttons: it is superseded by
any Mode parameter setting on the standard output tab.
85
18. Editing LEARN and custom output
A preset’s ‘LEARN output’ and an element’s ‘custom output’ can be edited in nearly identical ways.
The only difference is that LEARN output messages can only consist of fixed byte values, whereas
custom output messages may also contain special identifiers, such as references to the element’s
value.
In principle the total amount of LEARN or custom output bytes that you can define is 125, but this
number decreases by 2 for each additional LEARN or custom output line you use (in other words: the
definition of the line itself takes up space too), and the special identifiers that can be used in custom
output also decrease this amount in specific ways (see BCMI).
Thus, it might seem best to simply put all the data in a single line, but this is not the case: due to
a bug in the BCF and BCR’s firmware, the BCF and BCR generate additional, spurious MIDI
output whenever a LEARN or custom output line contains a System Exclusive message ($F0 ...
$F7) followed by any other byte. So to avoid spurious output, any MIDI System Exclusive message
should be in line-final position. And for clarity and editability you might as well put all MIDI
messages (not just the System Exclusive ones) on separate lines (unless you’re running out of space,
of course).
BC Manager also allows you to define a name for each LEARN or custom output line. This name
cannot be stored in the BCF or BCR itself, but only in the bcf, bcr, syx, txt or bc2 file, so it is merely
for your own reference.
You can add and edit LEARN and custom output lines via the toolbuttons at the top of the LEARN
and custom output tabs in the preset and element dialog boxes, respectively. Alternatively you can
use keystrokes (but only if the output table has input focus!); these keystrokes are also specified in
these pop-up hints, and are repeated here for convenience:
86
Note that ‘Paste/insert before current line’ and ‘Paste/insert after current line’ are mutually
exclusive settings (rather than data-changing actions): they affect the position of subsequent paste
and insert operations, relative to the current (highlighted) line.
‘Paste MIDI message clipboard’ inserts a single line containing the bytes currently stored in the
‘MIDI byte clipboard’. You can put MIDI messages on this clipboard from the ‘MIDI input
messages’ window and the ‘MIDI System Exclusive messages’ window.
‘Record MIDI messages’ directly records MIDI messages from any enabled MIDI input device
(so not just from the one linked to the B-Control).
‘Insert new line’ and ‘Edit properties...’ show a dialog box in which you can edit an individual
LEARN or custom output line, including the name and the sequence of individual output items.
Individual output items can be edited via a further dialog box.
A special case is the ‘Insert SysEx parameter’ button on the ‘Custom output’ tab of the element
dialog boxes. Pressing this button opens a dialog box in which you can use BC Manager’s SysEx
preprocessor, providing as much ‘user comfort’ as possible. See §19 for further discussion.
The LEARN/custom output tab informs you about various problems in your current LEARN/custom
output definition:
Type Message
Hint Orphan End-Of-Exclusive ($F7)
Warning Non-standard termination of SysEx message
Byte after SysEx message causes spurious output
Checksum in non-SysEx message
Multiple ntimes (only the last one works)
Error Data byte expected
Status byte expected
Invalid status byte
Checksum starting index too high
Incomplete MIDI message
Invalid ntimes loop
87
19. The Insert SysEx parameter dialog box
The ‘Insert SysEx parameter’ dialog box (accessible via the ‘Custom output’ tab of the element
dialog boxes) provides a simple way of creating SysEx messages for certain parameters of certain
MIDI devices:
Basically you only have to select the MIDI device from the Model listbox and the parameter from the
Parameter listbox.
You must also ensure that the value for ‘Device’ is correct: this should be the value for System
Exclusive communication selected on the receiving MIDI device. (It has nothing to do with any
Device ID setting associated with the controlling B-Control.)
If you then press ‘OK’, BC Manager’s SysEx preprocessor inserts the appropriate MIDI System
Exclusive message as a custom output line in the B-Control element’s definition.
Support for each particular model is provided via a special SysEx model definition file. Thus, BC
Manager’s SysEx preprocessor takes away most of the trouble of defining SysEx messages: the
person writing the SysEx model definition file only has to provide a list of parameter addresses,
ranges and names, and end users can simply assign these parameters to their B-Control elements by
name, having to know no technical details.
The BC Manager package already includes several SysEx model definition files, and you are
encouraged to write definition files for other models and upload these to the file section of the
Mountain Utilities web site: https://mountainutilities.eu/userfiles/b-control.
Each model appearing in the ‘Insert SysEx parameter’ dialog box has an associated SysEx model
definition file with the extension ‘.ini’ in your Models folder. Under Windows XP this folder
typically resides under C:\Documents and Settings\ Username\Application Data\Mountain
Utilities\BC Manager, under Vista and later typically under
C:\Users\Username\AppData\Local\Mountain Utilities\BC Manager.
88
Tip: the subfolder Templates of the folder to which BC Manager was installed (typically
C:\Program Files\Mountain Utilities\BC Manager) contains the files BOSS.ini, Roland.ini,
Waldorf.ini and Yamaha.ini; New.ini is for any other manufacturer. You can use these templates as
starting points for your own SysEx model definition files.
The ‘Insert SysEx parameter’ dialog box contains several buttons which help you create or edit
SysEx model definition files:
! Create report:
Saves a CSV file containing a table of all the parameters in the selected definition file, including
each parameter’s actual BCL line that it generates (for the Device value selected in the Device
knob).
You should be able to import the CSV file in any ‘good’ spreadsheet application. It may
help to know that the file’s field separator is a comma and its field delimiter the doublequote
character ("). Beware: you should not use Quattro Pro (at least not version X5 — I haven’t tested
other versions) to open these files, because it interprets and reformats any ‘bare’ hexadecimal as
a decimal number if it can (in particular this may ruin the ‘Min H’ and ‘Max H’ columns);
OpenOffice Calc 3.3 works fine though; I don’t know about Excel.
89
SyxEx model definition file format
A SysEx model definition file must be in ASCII/ANSI or UTF-8 format. (Tip: in Notepad you can
save to a UTF-8 file via File º Save As... º Encoding º UTF-8.)
A SysEx model definition file must consist of a header, followed by any number of parameter
definition lines (optionally within subsections). After the header, empty lines are allowed
everywhere, and so are comment lines, i.e. lines starting with a semicolon (;).
1. Header
After that there must be a sequence of Name=Value lines, in the exact order as shown in the table
below:
90
AddressLength n Range: 1-8
AfterData [h [h ...]] A fixed sequence of bytes inserted immediately after
every parameter’s Data bytes (i.e. before the checksum,
if defined).
ChecksumMethod [n] n’s range is 1-3, corresponding with BCL’s ‘cks-1’,
‘cks-2’ and ‘cks-3’.
If this is left blank, no checksum is used.
ChecksumStart [n] The index of the first byte included in the checksum; the
starting F0 has index 0.
If ChecksumMethod is left blank, this must be left blank
too.
FileVersion n.n.n This definition file’s version
FileAuthor character string The name of this definition file’s author (could be
you...!)
Comment character string Displayed in the ‘Insert SysEx parameter ’ dialog box
Notes:
! In the above table, n stands for a normal decimal number, h for a bare hexadecimal in the range
00-7F. Elements between square brackets are optional. A verticule (‘|’) means ‘or’. (Of course
the square brackets and verticules, being meta-symbols, must not be included in the actual
header.)
! Empty lines are not allowed in the header.
! All string literals in the header are case-insensitive.
! In principle ProgramVersion can be anything complying to the n.n.n format. However, only the
following versions of BC Manager have introduced new features: 1.0.0, 2.3.0, 2.4.0, 2.4.2, 2.5.0
and 4.0.0, so these are the ProgramVersion values you’re likely to encounter in existing SysEx
model definition files.
Note that BC Manager can still read all earlier formats.
In a new file, theoretically the most accurate choice is the lowest number supporting everything
in that particular file. However, users are supposed to use the latest version of BC Manager, so
the advice is to simply state ‘4.0.0’.
! In BC Manager 2.3.0-2.3.2, ManufacturerID could only be a single byte. Multiple bytes are only
supported by 2.4.0 and higher. Accordingly, if ManufacturerID consists of multiple bytes,
ProgramVersion must be set to 2.4.0 or higher.
! The ModelID field can be left blank: this is appropriate for certain old Yamaha synths that don’t
use a fixed Model ID as the fourth byte of a SysEx message, but a variable ‘group’ number,
which is more easily represented as the most significant byte of the address; see for example the
definition file for the TX81Z (included in the BC Manager package). On the other hand, for
Roland/BOSS and Waldorf devices ModelID should never be blank (although BC Manager
doesn’t warn you if it is).
! The option for DevicePosition to be blank was introduced in BC Manager 4.0.0 to accommodate
Fractal Audio’s Axe-FX II XL.
If DevicePosition is blank, there must be no MinDevice, MaxDevice and DefaultDevice lines.
If DevicePosition is AfterModel, BeforeModel or WithCommand, the MinDevice, MaxDevice
and DefaultDevice lines are compulsory.
! The Command field can specify any byte sequence (including an empty one). Since this
sequence is output immediately before each parameter’s address byte(s), you can ‘cheat’
91
concerning the command and parameter address bytes: If different parameters in the definition
file need different command bytes, you obviously can’t define a common command byte; instead
you should leave Command blank and start each individual parameter address with the desired
command byte. On the other hand, if all parameter addresses start with the same byte(s), you
could add this byte or these bytes to Command.
! Before BC Manager 2.4.2, AddressLength’s range was 1-4, so definition files using 5-8 bytes
must set ProgramVersion to 2.4.2 or higher.
! AfterData was introduced in BC Manager 4.0.0 to accommodate Fractal Audio’s Axe-FX II XL.
! All that BC Manager does with FileVersion, FileAuthor and Comment is display them in the
‘Insert SysEx parameter’ dialog box. So in theory FileVersion can be in any format you like, but
the suggested format (n.n.n) is recommended to ensure future compatibility. It’s a good idea to
increase the FileVersion value whenever you make a new version of the file.
! Parameter subsections (discussed below) were introduced in BC Manager 2.5.0, so any SysEx
model definition file using these must set ProgramVersion to 2.5.0.
The parameter section follows the header and consists of any number of parameter definitions,
optionally within subsections:
a. Parameter definition
Note that the verticules, the hyphen and the semicolon are obligatory literals here.
ParameterAddress:
A sequence of bare hexadecimal bytes in the range of 00-7F (separated by spaces) indicating the
parameter’s address. The number of bytes in this sequence must be equal to the AddressLength
value specified in the file header.
MinValue:
One or two bare hexadecimal bytes in the range of 00-7F indicating the parameter’s minimum
value. If two bytes (separated by a space) are specified, these bytes constitute an MSB-first 14-
bit value, i.e. with bits 0-6 of the first byte being bits 7-13 of the resulting value, and bits 0-6 of
the second byte being bits 0-6 of the resulting value.
When the user inserts the custom output line, BC Manager copies MinValue to the Min
knob on the ‘Custom output’ tab of the element dialog boxes.
MaxValue:
One or two bare hexadecimal bytes in the range of 00-7F indicating the parameter’s maximum
value. Similar semantics as MinValue.
Data:
A string of characters in BCL custom output (.tx) format. BC Manager inserts this string in the
generated custom output line at the position where the parameter value is expected, so normally
this string is just val (for a 1-byte parameter) or val7.13 val0.6 (for a 2-byte parameter), but in
fact you can put anything here that leads to a valid custom output line. E.g. in the file XG.ini
92
(included in the BC Manager package), Data is val12.13 val8.11 val4.7 val0.3 for a particular
parameter. You’re not even restricted to ‘val’-type identifiers: fixed byte values and any other
special identifiers are allowed too; see BCMI section 14.6. So in theory you can do weird things
here, but remember that whatever you enter here will be embedded within the custom output line
as is. In particular, you should be aware that fixed hexadecimal bytes must be prefixed by ‘$’
and bytes without ‘$’ are interpreted as ordinary decimal numbers; this contrasts sharply with
ParameterAddress, MinValue and MaxValue, which must be bare hexadecimals.
ParameterName:
The name of the parameter as it will appear in the ‘Parameter’ box of the ‘Insert SysEx
parameter’ dialog box.
b. Subsection
! A subsection starts with a line consisting of an opening brace (‘{’) optionally followed by the
subsection’s name (which will be displayed in the tree in the `Insert SysEx parameter’ dialog
box). Spaces and tabs in front of { or between { and the start of the name are ignored.
! A subsection may contain any number of subsections and parameter definitions. (So you can nest
subsections.)
! A subsection ends with a line consisting of a closing brace (‘}’). Spaces and tabs in front of }
and any characters after } are ignored. (So you can’t close two nested subsections by ‘}}’ on the
same line: each closing brace must occur on a separate line.)
For how subsections work in practice, see D-5.ini and GS-10.ini in the BC Manager package.
Examples
On the following pages some typical SysEx formats of individual manufacturers are described.
The Fractal Audio example can be found in the Model subfolder in BC Manager’s installation folder.
For Roland/BOSS, Waldorf and Yamaha templates are available from the Templates subfolder.
93
Fractal Audio: Axe-FX II XL
[MODEL]
ProgramName=BC Manager
ProgramVersion=4.0.0
ManufacturerName=Fractal Audio
ManufacturerID=00 01 74
ModelName=Axe-FX II XL
ModelID=06
DevicePosition=
Command=02
AddressLength=4
AfterData=01
ChecksumMethod=3
ChecksumStart=0
Explanation:
! The Axe-FX II XL doesn’t have a Device byte in its SysEx messages, so DevicePosition must be
blank and there must be no MinDevice, MaxDevice and DefaultDevice lines.
! Command is set to the Axe-FX’s ‘Function ID’.
! AfterData’s value of ‘01’ is the Axe-FX’s ‘Set’ byte, which indicates that the message is to set
the value of the target parameter.
! DevicePosition being blank and the presence of AfterData both require BC Manager 4.0.0 or
later, which is why ProgramVersion must be set to 4.0.0.
! The Axe-FX calculates a SysEx message’s checksum by xor’ing all the bytes up to that
checksum, hence ChecksumMethod is 3 and ChecksumStart is 0.
{ Amp1
6A 00 01 00 | 00 00 - 03 7F | 00 val0.6 val7.13 ;Input Gain
}
Here the ParameterAddress (6A 00 01 00) consists of the Axe-FX’s ‘FX block ID’ and
‘Parameter ID’.
00 val0.6 val7.13 indicates the three-byte value of the parameter in the Axe-FX.
BC Manager’s preprocessor generates the following custom output line for this parameter:
$F0 $00 $01 $74 $06 $02 $6A $00 $01 $00 $00 val0.6 val7.13 $01 cks-3
0 $F7
94
Roland/BOSS
Byte(s) Meaning/comments
F0 Start of exclusive message
41 Manufacturer: Roland/BOSS
Device Often 00-1F with default 10
Model 1 or more bytes
12 Command: DT1 (Send data one-way)
Address Length depends on model
Data Parameter value(s)
Checksum Applies the cks-1 method to Address and Data
In a definition file for this format, the header’s MinDevice, MaxDevice and DefaultDevice must be in
the range of 00-1F. Common ranges for specific Roland/BOSS models are 00-0F, 10-1F and 00-1F;
DefaultDevice is usually 00 or 10. Note that Roland/BOSS user manuals usually refer to Device IDs
in decimal form with 1 added to the internal value; so for instance if the Device ID range is described
as ‘1-16’, this means 00-0F internally, and ‘17-32’ means 10-1F.
ChecksumMethod must be 1. ChecksumStart must be 4 (for F0, 41, Device and 12) plus the number
of model bytes.
So for example, for the BOSS GS-10 (a multi-effect guitar processor) the pertinent section of the
definition file’s header looks like this (taken from GS-10.ini, included in the BC Manager package):
ManufacturerName=BOSS
ManufacturerID=41
ModelName=GS-10
ModelID=00 63
DevicePosition=BeforeModel
MinDevice=00
MaxDevice=1F
DefaultDevice=10
Command=12
AddressLength=4
AfterData=
ChecksumMethod=1
ChecksumStart=6
Now consider the following parameter definition from the same file:
95
This defines a 4-byte parameter address for a single-byte parameter in the range of 00-0F by the name
of ‘LCD Contrast’. When a user selects this parameter via the ‘Insert SysEx parameter’ dialog box,
BC Manager’s preprocessor could generate the following custom output line:
$F0 $41 $00 $00 $63 $12 $01 $03 $00 $00 val cks-1 6 $F7
Thus, BC Manager automatically uses the correct Manufacturer ($41 = Roland/BOSS), Device (the
first $00), Model ($00 $63 = GS-10), Command ($12 = DT1), parameter address ($01 $03
$00 $00) and checksum specifier (cks-1 6). Note that Device is chosen by the end user in the
‘Insert SysEx parameter’ dialog box.
96
Waldorf
Byte(s) Meaning/comments
F0 Start of exclusive message
3 Manufacturer: Waldorf
Model 1 byte
Device 00-7F with default 00; 7F means any device
Command 1 byte; model-dependant
Address Length depends on model
Data Parameter value(s)
Checksum Optional (depending on model and command);
if included, it applies the cks-2 method
(included bytes depend on model and command)
F7 End of exclusive message
Unlike Roland/BOSS and Yamaha, Waldorf expects the Device ID after the Model ID, so
DevicePosition must be AfterModel.
So for example, for the Waldorf Q (a synthesizer) the pertinent section of the definition file’s header
looks like this (taken from Waldorf_Q.ini, included in the BC Manager package):
ManufacturerName=Waldorf
ManufacturerID=3E
ModelName=Q
ModelID=0F
DevicePosition=AfterModel
MinDevice=00
MaxDevice=7F
DefaultDevice=00
Command=20
AddressLength=3
AfterData=
ChecksumMethod=
ChecksumStart=
Now consider the following parameter definition from the same file:
Based on this definition, BC Manager’s preprocessor could generate the following custom output
line:
$F0 $3E $0F $00 $20 $00 $00 $0D val $F7
97
Here $3E is the Waldorf Manufacturer ID. $0F is the Model ID for the Waldorf Q. The first $00 is
the user-selected Device. $20 is the Q’s ‘Sound Parameter Change’ command. $00 $00 $0D is
the address. There is no checksum in this case, as indicated by the value of ChecksumStart being left
blank in the definition file’s header.
98
Yamaha
Byte(s) Meaning/comments
F0 Start of exclusive message
43 Manufacturer: Yamaha
1x 1 = Command: Individual Parameter Change
x = Device
Model Optional; I’m not sure if this can be more than 1 byte
Address Length depends on model
Data Parameter value(s)
F7 End of exclusive message
So for example, for XG synthesizers the pertinent section of the definition file’s header looks like this
(taken from XG.ini, included in the BC Manager package):
ManufacturerName=Yamaha
ManufacturerID=43
ModelName=XG
ModelID=4C
DevicePosition=WithCommand
MinDevice=0
MaxDevice=F
DefaultDevice=0
Command=1
AddressLength=3
AfterData=
ChecksumMethod=
ChecksumStart=
Now consider the following parameter definition from the same file:
Based on this definition, BC Manager’s preprocessor could generate the following custom output
line:
$F0 $43 $10 $4C $00 $00 $00 val12.13 val8.11 val4.7 val0.3 $F7
99
Here $43 is the Manufacturer ID for Yamaha. The high nibble of the next byte ($1) stands for
‘Individual Parameter Change’. The low nibble is the Device ($0 in this case). $4C is the XG Model
ID, and then follow the 3-byte address for Master Tune ($00 $00 $00) and the four data
specifiers.
100
20. The BCL output options dialog box
The BCL output options dialog box is accessed via the main window’s Options pull-down menu (º
BCL output).
Leave the settings in this dialog box alone unless you know what you’re doing.
There are three output targets, each having its own set of features:
! Save to file:
These settings apply when you save the B-Control data being maintained by BC Manager to a
bcf, bcr, syx, txt or bc2 file, i.e. via File º Save/Save As in the B-Controls window.
! Send to B-Control:
These settings apply when you send the B-Control data being maintained by BC Manager to the
actual B-Control connected via MIDI.
For each output target, seven settings are defined inside the checkbox lists. In each case, the checked
state represents the ‘standard’ BCL protocol. Unchecking an item leads to shorter BCL messages,
hence to more compact files and higher MIDI transmission speed. (See BCMI for detailed
information on these optimizations.)
By default, all items are unchecked for sending BCL messages to a B-Control via MIDI. Most
importantly, the BCF and BCR don’t store (let alone return) comments anyway, so there is no reason
to send comments to the BCF or BCR. The other options also increase MIDI transmission speed at no
conceptual cost.
On the other hand, by default all items are checked for file saving and loading in a BCL editor.
The ‘Comments’ option for ‘Save to file’ is the only option that you normally must leave
checked: otherwise any comments and metadata (colors, labels etc.) you have defined for the
global setup and for presets and elements will be lost in the saved file. All other options can be
unchecked at will; they are merely checked by default because on modern computers BCL script file
sizes are hardly relevant, and the standard BCL format provides greater compatibility with other BCL
script readers such as BC-EDIT and the Birdie editor (although I haven’t actually tested to which
extent these programs could read ‘non-standard’ BCL).
101
Confirm sending memory presets:
If this is checked, BC Manager requires you to confirm all your attempts at sending memory presets
to a B-Control. This may help preventing you from accidentally overwriting presets that you have no
backups of. However, before version 2.6.0 BC Manager didn’t ask for confirmation, so if you’re an
experienced user and/or the question annoys you, you can disable it here. Note that BC Manager
never asks for confirmation when you’re only sending data to the temporary preset.
102
21. The BCL editor windows
Note: This section is only worth reading if you intend to write or edit BCL scripts. If you don’t,
simply skip it.
Each B-Control in the list has its own BCL editor window. These windows can be opened from the
B-Controls window’s View pull-down menu.
The BCL editor windows are intended as testing and debugging tools, not for ordinary usage:
BC Manager allows you to do virtually anything you would ever want via its ‘normal’, graphical
windows and dialog boxes. Working with a BCL editor window requires in-depth knowledge of BCL,
the language underlying most data communication with the BCF and BCR. See BCMI for details.
A BCL editor window provides a basic editor for BCL texts. A BCL text can be opened from and
saved to a file, sent to the connected B-Control, and loaded from and entered into BC Manager’s
internal representation of the B-Control data.
File º Open:
Loads a bcf, bcr, syx, txt or bc2 file into the editor. Beware: any existing text in the editor gets
removed!
File º Export:
Exports text from the BCL window to a text file, including the text attributes and colors
generated by the current syntax highlighting scheme. If a portion of the text in the window is
currently selected, only that selection is exported; if nothing is selected, the whole text is
exported.
In the macOS edition you can only export to html, the Windows edition also allows you to
export to rtf and tex. (This difference exists because the macOS and Windows editions of BC
Manager use different forks of the SynEdit library, each with different capabilities.)
You can import such a file in any external editor capable of loading that file’s format:
! HTML:
103
Any web browser should be able to load these html files correctly (i.e. maintaining the
formatting). Dedicated html editors may or may not work.
! RTF:
The rtf files can be loaded correctly in WordPad and WordPerfect.
However, for some reason LibreOffice (at least 5.2) does not load them correctly.
MS Word: I have no idea.
! TeX:
Any combination of TeX backend (MiKTeX, TeXLive etc.) + frontend (Texmaker,
TeXstudio, TeXworks etc.) should be able to load these files correctly.
MIDI º Send:
Sends the editor’s text to the connected B-Control.
104
settings.
Load º All:
Loads BC Manager’s complete representation of the B-Control into the editor as a BCL block.
Run º Execute:
Executes the editor’s text: BC Manager’s representation (and its display) of the B-Control data is
updated according to this text. BC Manager’s BCL interpreter reports any syntax errors in
virtually the same way as an actual B-Control would.
Options:
Via this pull-down menu you can override the global settings of the ‘BCL editor options’ dialog
box (accessible via the main window’s Options pull-down menu).
Any overrides you make here face two restrictions:
! Naturally, they are local: they don’t apply to the BCL editor windows of other B-Controls.
! They are temporary: they are lost upon termination of BC Manager. To make changes that
stick, use the global ‘BCL editor options’ dialog box.
Options º Auto-indent:
Determines whether pressing the Enter key causes the editor to automatically insert spaces in the
new line up to the first non-space character in the existing line.
Options º Gutter:
Determines whether the editor window’s ‘gutter’ is shown. This is a small vertical strip on the
left side of the editor window, containing:
! The digits (0-9) of any bookmarks you have defined, next to the lines in which you defined
them.
You can create a bookmark at the current location of the cursor via Ctrl+Shift+n (where n =
0-9), and move the cursor to an existing bookmark via Ctrl+n.
! The message indexes of all text lines, provided that ‘Messages indexes in gutter’ (see
below) is on.
105
Options º Syntax highlighting:
Determines whether syntax highlighting applies. See the discussion below.
! Reset:
Resets the ‘Index of 1st message’ to 0.
Syntax highlighting
If syntax highlighting is enabled, various BCL elements are shown in their own colors and styles
(bold/italic/underline): dollar statements, dot statements, parameter constants, decimal numbers,
hexadecimal numbers etc.
The syntax highlighter does not perform a full syntactic check. So for instance it won’t warn you
when a ‘.easypar’ statement contains an invalid number of parameters. However, it does assign the
type ‘unknown’ to any character sequence that doesn't constitute a valid BCL identifier, so you will
be able to see any typos instantly.
Four predefined syntax highlighting schemes and one customizable scheme are available:
! Two of the predefined ones have a black background, the other two a white background. The
only difference between the two blacks and between the two whites is the way they display
‘unknown’ elements: when you’re reviewing a BCL script, you may prefer the scheme that
assigns a gray background to unknown elements; when you’re writing a script, you may prefer
the scheme that only underlines your partial identifiers as you type them.
! The customizable scheme (‘current global scheme’) can be edited via the global ‘BCL editor
options’ dialog box (accessible via the main window’s Options pull-down menu). Note that you
can load any of the four predefined schemes into the customizable scheme via the menu that
opens when you click the ‘Predefined schemes’ button.
106
22. Reason maps
Propellerhead Reason (in any case versions 3.0-9.1) ‘natively’ supports the BCF2000 and BCR2000.
This works as follows:
Reason supplies two remote map files, one for the BCF and one for the BCR:
BCF2000.remotemap and BCR2000.remotemap respectively. (Under Windows XP these files are
typically located in C:\Documents and Settings\All Users\Application Data\Propellerhead
Software\Remote\Maps\Behringer, under Vista and later in C:\Users\All Users\Propellerhead
Software\Remote\Maps\Behringer.)
Reason uses these remote map files in conjunction with the file Behringer.remotecodec
(typically in C:\Program Files\Propellerhead\Reason\Codecs) for its native support of the BCF and
BCR: this support mode is triggered if you select the BCF2000 or BCR2000 via Edit º Preferences
º Keyboards and Control Surfaces º Add.
In this native support mode, Reason takes full control of the B-Control:
On initialization of its link with the B-Control, Reason sets the B-Control’s global Transmission
interval to 2 and Deadtime to 400; furthermore, it assigns fixed Control Change messages to all the
elements (buttons, encoders, faders) of the temporary preset, and prevents you from switching to any
memory preset for as long as Reason has control of the B-Control.
After this initialization, whenever you assign (‘lock’) the B-Control to a particular Reason
device (mixer, synth, etc.), Reason merely changes its internal mapping from the fixed Control
Change numbers on the B-Control to the controls of the Reason device: it is precisely these mappings
that are contained in the remote map files. (Actually, Reason may also update the LED modes of the
B-Control encoders, but apart from that it doesn’t change its initial setup of the B-Control’s
temporary preset.)
BC Manager provides access to Reason’s remote map files via the ‘Import Reason map’ operation,
which is accessible via the B-Controls pull-down menu of the B-Controls window. This operation
converts the mappings defined in the remote map file to memory presets, one for each Reason device,
in as many new B-Control contexts as needed. (Reason 5 and later define more than 32 devices, so
these wouldn’t fit in a single B-Control context.)
However, since Reason’s native support mode takes full control of the B-Control’s temporary
preset (and without reference to memory presets), it would be pointless to edit these memory presets
generated by BC Manager: it’s impossible to use them under Reason in any way. So these memory
presets are only useful for documentation: for instance, you can visualize and print the mappings via
the layout window.
The memory presets generated by BC Manager also allow you to see which B-Control elements
are currently unassigned: this is useful because in Reason itself you can add mappings from B-
Control elements to Reason device controls via Options º Remote Override Edit Mode.
Note that many Reason control names are quite long, so you will probably want to widen the
layout window so that these names show up in full.
The ‘Import Reason map’ operation loads the Reason device and control names from the remote map
file:
! The name of each Reason device is copied to both the name field and the comments field of a
memory preset. (The reason for this duplication is that a name field can only contain up to 24
characters, which results in quite a few truncated device names; the comments fields receive the
full device names.)
! For each Reason device, the names of the mapped controls are copied to the corresponding
element name fields of the memory preset.
107
‘Import Reason map’ also sets up the actual data structures in exactly the same way as Reason. That
is: BC Manager changes the values of the global Transmission interval and Deadtime settings, and it
assigns Control Change messages to all preset elements, even the ones that aren’t currently linked to
any Reason control.
By default a layout window showing a Reason map displays only the Reason control names and
‘low-level’ Control Change summaries for those elements that are currently mapped. However, you
can make the window also show the unmapped elements by selecting View º Element labels º
‘Name, else output’ from the window’s menu.
Note: Reason’s native support for the BCF2000 and BCR2000 has nothing to do with the mappings
defined in Reason’s MIDI Implementation Chart[s].pdf.3 The Control Change mappings specified in
that file are totally different: they only apply to Reason’s ‘<Other> MIDI Control Surface’ devices
and External Control Bus inputs.
3
In Reason 5 the file name includes ‘Charts’, Reason 7 and later have ‘Chart’. I haven’t checked
Reason 6.
108
23. The MIDI input messages window
The MIDI input messages window is accessible from the main window in two ways: its toolbutton
(third from left) and the View pull-down menu (º MIDI º Input messages):
The MIDI input messages window allows you to record and view MIDI messages sent to BC
Manager from any of the currently enabled MIDI input devices, as defined in the MIDI devices
dialog box (opened via the main window’s Options pull-down menu). Thus, this window is very
useful for advanced troubleshooting of a B-Control’s output messages. You can also copy recorded
messages to the ‘MIDI message clipboard’ for inclusion in the LEARN and custom output definitions
of B-Control presets and elements, and you can save recorded messages to files (in various formats).
All recorded MIDI messages are displayed in the table at the bottom of the window, one per row. The
following columns exist:
! No.:
The sequential number (index) of the message in the table.
This number is for reference only. It has no further meaning: when you remove a message,
the numbers of all subsequent messages simply decrease by one.
! Time:
The time at which the message was received, counted from the moment BC Manager was
started. You can set this column’s format in the Edit º Options dialog box (see below).
! Message type:
The type of the message: Control Change, System Exclusive, etc.
! Length:
109
The number of bytes in the message.
! Bytes:
The bytes of the message. The formatting (hexadecimal, decimal etc.) can be set via the options
dialog box, accessed via the Edit pull-down menu.
Technical notes:
! For convenience, the name of the program (‘BC Manager’) plus its version number is
included as the track name. (It completely depends on the receiving program whether you
can see this in any way.)
! MIDI ‘running status’ is automatically applied, i.e. where possible the status bytes of
channel messages are removed.
110
further processing by some specialistic computer program expecting a ‘flat’ sequence of MIDI
messages. (Typically this is a program you write yourself!) Note that you can also save MIDI
message bytes to a text file (see below), which may or may not be easier for further processing.
Edit º Delete:
Removes the selected (highlighted) recorded MIDI messages.
Edit º Clear:
Removes all recorded MIDI messages.
Edit º Options:
Opens a dialog box in which you can set various options related to the MIDI input messages
window:
! Buffer size:
Sets the number of MIDI messages that can be recorded. The default is 65536; this is also
the maximum. Note that lowering this setting removes any existing recorded messages
beyond the new buffer size.
111
! Clear:
The whole table is cleared, and the incoming message is entered at number 1. This is
the default setting.
! Shift:
The existing message at number 1 is removed from the table, all other messages shift
back one position, and the incoming message is added at the bottom.
Beware: this setting can be very time-consuming.
! Freeze:
The incoming message is ignored. However, the recording process itself isn’t stopped
automatically, so when you manually remove one or more recorded messages (e.g. via
the Clear button), new messages will be recorded again.
! Stop:
Recording stops automatically.
! Time format:
Determines the time format used in the Time column. Five formats are available: ms,
sec.ms, min:sec.ms, hrs:min:sec.ms and days:hrs:min:sec.ms. So e.g. in the sec.msec format
you could get ‘61.000’, which would be ‘1:01.000’ in the min:sec.msec format.
! Byte formats:
Determines the ways in which MIDI message bytes are formatted: this affects both the
window’s Bytes column and the ‘Save text’ operation.
Separate settings are available for ‘status’ and ‘data’ bytes in both System Exclusive
and non-System Exclusive messages. A byte in a MIDI message is a status byte if it is in the
range of $80-$FF (128-255), and a data byte if it is in the range of $00-$7F (0-127).
Status º Record:
Starts the recording process.
Status º Stop:
Stops the recording process.
Record/Stop/Clear buttons:
These buttons duplicate the corresponding menu items.
112
Note/Note aftertouch/etc.:
These checkboxes determine which incoming MIDI messages are recorded. Checked means
‘yes’.
113
24. The Mackie monitors
Certain MIDI applications (e.g. Propellerhead’s Reason) send display messages to a MIDI output port
where they suspect a Mackie Control. (Note: In my experience MIDI applications only send these
messages in response to parameter changes sent from the (pseudo-)Mackie Control to the MIDI
application, i.e. when you turn a knob on the Mackie Control. At least I’ve noticed that (curiously
enough) Reason does not send a display message when you move a fader or knob in Reason itself.)
You can intercept these Mackie display messages and show them in one of four Mackie monitor
windows, accessible from the main window’s View pull-down menu (º MIDI º Mackie monitors º
1/2/3/4):
Typically you would use one of these Mackie monitors for a BCF or BCR set up as a Mackie Control
via a preset. For a BCF in an actual Mackie emulation mode (where presets don’t exist) it is better to
intercept the display messages sent by the BCF: see the View º Monitor command in the B-Controls
window.
You set up things as follows: you send the MIDI application’s output to a MIDI pipe (virtual MIDI
device), you capture this pipe’s output in a Mackie monitor in BC Manager, and you pass on the
MIDI pipe’s output to the BCF/BCR’s input by means of BC Manager’s MIDI Thru facility (set via
the main window: Options º MIDI devices).
You set the Mackie monitor’s MIDI input port and customize its display via a dialog box that you can
access via the main window’s Options pull-down menu (º Mackie monitors º 1/2/3/4) or by right-
clicking on the monitor window itself:
114
This dialog box offers three options for ‘Caption (title bar)’:
! None:
The monitor window has no border and no title bar. So you can’t move the window around the
screen via the title bar, but you can do so by keeping the left mouse button down anywhere in the
window itself.
If ‘Stay on top’ is checked, the Windows taskbar shows the monitor window on a separate
button, but you can’t use that button to minimize (i.e. temporarily hide) the window.
! Small:
This setting is only meaningful on Windows (on macOS the result is the same as for Normal
– see below): the monitor window is a ‘tool window’, having a border and a small title bar
without a minimize icon.
If ‘Stay on top’ is checked, the Windows taskbar does not show the monitor window on a
separate button.
So there is no way to minimize (i.e. temporarily hide) the window.
Note that on macOS the ‘Stay on top’ setting doesn’t have any effect.
115
25. The MIDI keyboard
The MIDI keyboard is accessible from the main window’s View pull-down menu (º MIDI º
Keyboard).
From the MIDI keyboard you can send note messages (and several related other messages) to any
MIDI output device (e.g. a synthesizer):
! Note names displayed on the status bar follow the Roland octave numbering protocol.
! Pressing the ‘Send settings’ button sends the selected program, volume, pitch bend and
modulation to the selected MIDI output device.
! To play an individual note, left-click on a key: the key turns green for as long as you keep the
mouse-button pressed.
! To hold a note, right-click on a key: the key turns yellow, until you click it again (or clear all
held keys).
! The ‘Held keys’ drop-down box determines how the held keys are interpreted: they can be
played as a chord (i.e. simultaneously) or as arpeggios.
! Pressing the ‘Release keys’ button clears all currently held keys.
! If you hold the Shift key while left-clicking or right-clicking, all currently held notes are cleared
before the newly selected note is played or held. (In other words: it’s as if you’ve pressed the
‘Release keys’ button.)
! Beware: at least on Windows (I’m not sure about macOS) the chord/arpeggio timing is not very
accurate, because the ‘simple’ Windows timer is used (rather than the multi-media timer, which
is more exact but also puts a larger strain on the computer). In particular, performing actions like
opening a listbox may stall the timer. In other words: don’t try to use the chord/arpeggio modes
116
for actual music production!
117
26. The (N)RPN messages window
The (N)RPN messages window is accessible from the main window’s View pull-down menu (º
MIDI º ‘(N)RPN messages’).
From the (N)RPN messages window you can send NRPN and RPN message sequences:
A complete NRPN or RPN message sequence sends a parameter (i.e. a number) followed by a data
value for that parameter. Non-registered parameter numbers are specific to individual receiving MIDI
devices; registered parameter numbers are defined in the MIDI specification, but are rarely
implemented in actual devices.
Each parameter or value is a 14-bit value in the range 0-16383, divided into the MSB (bits 7-13)
and the LSB (bits 0-6); the MSB must be sent before the LSB. Thus, a complete NRPN or RPN
message sequence consists of four messages in fixed order.
Each of these messages is actually a MIDI Control Change message: the first byte is $Bc (where
c stands for the MIDI channel (1-16) minus 1), the second byte is the ‘controller’ number (e.g. 99 for
the MSB of an NRPN parameter), and the third byte is the actual MSB or LSB of the parameter or
value:
NRPN:
1. $Bc 99(=$63) ParameterMSB
2. $Bc 98(=$62) ParameterLSB
3. $Bc 6(=$06) ValueMSB
4. $Bc 38(=$26) ValueLSB
RPN:
1. $Bc 101(=$65) ParameterMSB
2. $Bc 100(=$64) ParameterLSB
3. $Bc 6(=$06) ValueMSB
4. $Bc 38(=$26) ValueLSB
118
However, in these sequences messages 1 and/or 2 can sometimes be omitted:
! A particular receiving device may ignore either ParameterMSB or ParameterLSB altogether, so
that message 1 or 2 respectively may be omitted.
! Message 1 may be omitted if ParameterMSB equals the most recently sent ParameterMSB.
! If message 1 is omitted, message 2 may be omitted too if ParameterLSB equals the most recently
sent ParameterLSB.
Similarly, message 3 or message 4 can sometimes be omitted:
! A particular receiving device may ignore either ValueMSB or ValueLSB (possibly just for
particular parameters), so that message 3 or 4 respectively may be omitted.
! Message 3 may be omitted if ValueMSB equals the most recently sent ValueMSB.
Clearly, since MIDI has a limited bandwidth, it’s a good thing that certain messages can be omitted as
described above. However, as will be clear from the above definitions, these omissions can cause
confusion, and devices may respond to them in unexpected, idiosyncratic ways. Therefore the
(N)RPN messages window allows you to send individual messages or any combination of messages,
so that you can test the actual behavior of the receiving device.
Tip: for a description of the BCF2000 and BCR2000’s NRPN capabilities, see BCMI sections
15.4 and 16.4.
119
27. The MIDI System messages window
The MIDI System messages window is accessible from the main window’s View pull-down menu (º
MIDI º System messages).
From this window you can send MIDI System Exclusive (SysEx), System Common and System Real-
time messages – presumably mostly for testing purposes.
Some remarks:
System Exclusive:
! Each SysEx message generated here contains 7Dh as Manufacturer, which indicates non-
commercial, generic use. Thus, these messages are normally ignored by all receiving MIDI
devices.
The purpose of these messages is to test SysEx signal flow, in particular the behavior of
devices (drivers, sound cards, devices with ‘MIDI Merge’ facilities, etc. ) through which these
messages pass. For instance, some devices handle SysEx messages beyond certain lengths
incorrectly. (E.g. ‘our own’ BCF2000 and BCR2000 make garbage of any SysEx message longer
than 1019 bytes sent from/to their MIDI IN/OUT sockets via their USB connections.)
! The ‘Length’ field indicates the total length of the SysEx message, i.e. F0 7D <data bytes> F7.
! The ‘Data’ field determines whether the data bytes are all 0, or increment by 1 from 0 to 127
(then start from 0 again).
! To generate your own SysEx messages, use the ‘MIDI System Exclusive messages’ window
instead; see §29.
120
28. The MIDI controllers window
The MIDI controllers window is accessible from the main window via the View pull-down menu º
MIDI º Controllers.
This window allows you to send MIDI Control Change messages and to monitor incoming MIDI
Control Change messages.
Each of the 128 MIDI controllers (0-127) has its own fader:
! Moving a fader (via mouse or computer keyboard) changes the value of the controller and
outputs the corresponding MIDI Control Change message on the selected MIDI channel to the
selected MIDI output device.
Moving a fader via the computer keyboard works as follows:
! Arrow Up: +1
! Arrow Down: !1
! Page Up: +8
! Page Down: !8
! Home: set 127 (maximum)
! End: set 0 (minimum)
! If the Record button has been pressed, the faders react to incoming messages on the selected
MIDI channel of the selected MIDI input device. To stop recording, press the Stop button.
121
! The Options button opens a dialog box called ‘MIDI controllers: options’, in which you can
customize the following things:
! Whether the mode message buttons (‘Reset all controllers’, ‘Local off’ etc.) are shown.
! How big the faders of the controllers are.
! How many controllers are visible per row.
! Which controllers are visible. (The buttons on the right of the dialog box are ‘macros’,
selecting particular ranges.)
122
29. The MIDI System Exclusive messages window
The MIDI System Exclusive messages window is accessible from the main window via the View
pull-down menu º MIDI º ‘System Exclusive messages’.
In this window you can create and edit SysEx messages, but also insert SysEx messages from syx
files, save messages to syx files, and record and play SysEx messages.
Furthermore, you can extract the SysEx messages from a standard MIDI (‘.mid’) file and save
them to syx files. One syx file is created for each MIDI track (in the mid file) containing one or more
SysEx messages.
3. The toolbar.
This contains a number of buttons performing actions related to the grid below.
123
The grid below the toolbar contains a sequence of messages (recorded/opened/edited).
You can edit the data in this grid in two ways: per byte or per message.
Both the probe panel and the grid allow you to correct the checksums of Roland DT1 and RQ1
messages, either automatically or on demand:
! If ‘Auto-correct Roland checksum(s)’ in the Edit pull-down menu has been ticked, the ‘Edit
byte(s)’ and ‘Edit message(s)’ operations automatically correct any invalid Roland checksums
resulting from your edits to the grid.
! If ‘Auto-correct Roland checksum(s)’ in the Probe pull-down menu has been ticked, the
message(s) in the probe editbox are automatically corrected when you execute Send.
! When you execute ‘Correct Roland checksum(s)’ from the Edit pull-down menu, any invalid
checksums in the selected messages in the grid get corrected.
! When you execute ‘Correct Roland checksum(s)’ from the Probe pull-down menu, any invalid
checksums in the probe editbox get corrected.
From the View pull-down menu you can customize the window in several ways:
! You can hide any of the three panels (MIDI, probe, toolbar).
! You can include or exclude the horizontal and vertical grid lines, separately for the header and
leader cells (gray in the screenshot above) and the (white) data cells. (However, on macOS the
grid lines in the header and leader cells don’t get hidden. This is probably due a bug in the
programming library for macOS used by MIDI Tools, so at the moment I can’t fix this easily.)
! You can display the message lengths in decimal or hexadecimal format.
! You can display the message bytes in various formats: decimal, hexadecimal (the default),
binary and character (insofar as the bytes are in the ASCII range). Note that you can select as
many formats simultaneously as you like: each format is displayed on a separate line.
! If ‘Select row’ is on, you can only select (and edit) whole lines (messages); if it is off, you can
select (and edit) blocks of bytes. Note that in the latter case certain operations (like Play and
‘Correct Roland checksum(s)’) still use the whole message(s) of the selected bytes.
! You can highlight/unhighlight any column by right-clicking anywhere in the column or by
executing View º ‘Highlight selected column’ from the menu. (Cf. the yellow columns in the
image above.) You can even customize the highlight color.
124
30. Using the computer keyboard and mouse
BC Manager’s user interface uses mostly standard widgets (buttons, checkboxes, pull-down boxes
etc.). This means that it may sometimes be easier to use the keyboard instead of the mouse for
particular operations.
Of particular interest are the keystrokes and mouse-clicks that you can apply to parameter knobs. On
Windows, the following actions are defined (I haven’t fully checked yet to which extent these
keystrokes work on a Mac keyboard; in any case Option = Alt and Cmd = Ctrl):
And here are a few standard Windows keystrokes worth mentioning (I haven’t checked yet to which
extent these are the same in macOS):
Tip: on macOS it is advisable to enable ‘tabbing through’ all controls via System Preferences º
Keyboard º Shortcuts º Full Keyboard Access º All controls. (As the Keyboards window states,
you can also change this setting by pressing Control+F7.)
125
31. Item dragging
You can directly copy or move any preset, button, encoder or fader definition (or range of
definitions) from one position to another, as follows:
1. If your intended source item or range of items is in a preset or element window, first select
(highlight) this item or these items as you normally do (via mouse or keyboard).
2. Move the mouse to the source item(s). (If the source item is in a layout window, this does not
have to be the currently selected (highlighted) item.)
3. If you want to copy one or more elements rather than move them, press a Shift or Ctrl key and
keep it pressed.
4. Press the right mouse button and keep it pressed. (If the source item is in a layout window, the
source item immediately becomes the currently selected item as well.)
5. If you have pressed a Shift or Ctrl key under step 3 above (for copying), you may release this
key now (although this is not required).
6. Move the mouse to the (first) target item. The target must be of the same type (preset, button,
encoder or fader) as the source item, but it can be in any B-Control’s preset, element or layout
window. The mouse cursor is a ‘No’ symbol when it is on an invalid target, and an arrow plus
rectangle whenever it is on a valid target.
8. The settings of the source item(s) have now been copied or moved to the target item(s). And of
course after a move the source item(s) has/have become empty, i.e. initialized.
Note that these dragging operations completely bypass the button, encoder and fader clipboards, so
they do not affect any items already there.
126
32. Known problems
MIDI input:
If an incoming SysEx message is followed immediately by a channel message, the channel
message may be processed first. This regression was introduced in BC Manager 2.6.0 and will
probably be fixed in BC Manager 5.
Window widths:
If the screen dimensions are too small, big windows of fixed size can get cut off. Normally
you’re safe with a screen of 1024 × 768 pixels, but you can run into problems when you
decrease the screen size of a virtual machine running BC Manager.
On macOS, the program’s GUI (graphical user interface) has several shortcomings, such as:
! Scrollbars around grids don’t go away once they are there: once you’ve made such a scrollbar
appear by making the window smaller, it remains, even when you re-enlarge the window.
! Numbers in editboxes don’t align to the right but to the left. (Even worse, a long number may
initially be partly hidden behind the left edge of the editbox.)
! Tabbing into a multi-line editbox by pressing Tab or Shift+Tab adds a spurious tab character in
the editbox.
! If a combobox allows you to enter your own text in its editbox, its drop-down list wrongly limits
the number of items displayed simultaneously to six. So if the drop-down list contains more than
127
six items, you have to navigate to any out-of-view items via the scrollbar to the right of the list;
this can be a bit inconvenient. For example, in Windows the ‘Zoom %’ combobox in the ‘Print
overlays’ dialog box displays all nine options simultaneously, in macOS only six.
! Color comboboxes:
! Unlike in the Windows edition, no colored rectangles are available in the drop-down list.
! The ‘Custom’ item in the drop-down list behaves strangely:
! Initially its ‘Colors’ dialog box doesn’t open when it should.
! Once you have selected ‘Custom’, the ‘Colors’ dialog box opens when you try to
switch to another item in the drop-down list.
Work-around: select the desired color in the ‘Colors’ dialog box.
All these shortcomings on macOS are caused by bugs in the GUI library that the program uses, so at
the moment there’s little or nothing I can do. I would either have to debug the library myself (which
would be quite time-consuming, with success not guaranteed) or switch to a different library (which
would be extremely time-consuming).
128
33. Wish list
If you have any other suggestions for improvement, please post these in the B-Control forum at the
Mountain Utilities web site: https://mountainutilities.eu/forums/b-control.
The subsections on the following pages contain some of the most relevant questions concerning BC
Manager. Some actual questions by users appear here almost verbatim, others have been generalized,
and a few were invented by yours truly specially for this section...
Thanks to everyone for asking these questions!
129
General
[5] Can I shoot you a few bucks in appreciation of all your efforts?
Of course! Please go to the Donate page at the Mountain Utilities web site
(https://mountainutilities.eu/donate) for instructions. In BC Manager you can go directly to this page
via Donate in the main window’s Help pull-down menu.
130
Editing
[7] In the B-Controls window, how can I remove the BCF2000? I only have a BCR2000 and
would like to keep things clean.
In the table, select (highlight) the line containing the undesired device, then execute Close from the
B-Control pull-down menu. The undesired device should disappear (and not return when you restart
BC Manager).
[9] What do the Request checkbox and the ‘LEARN output’ tab in BC Manager’s Preset dialog
box refer to?
If the current preset on the B-Control has its Request parameter set to on, the B-Control automatically
sends the preset’s ‘LEARN output’ whenever you select that preset. If Request is off, the B-Control
only sends this ‘LEARN output’ when you press EDIT + LEARN on the B-Control itself.
On the ‘LEARN output’ tab you can define a sequence of MIDI messages for each individual
preset. You’re completely free as to the nature of these MIDI messages (although the total length is
restricted to 125 bytes).
Probably Behringer’s original idea was that this LEARN data sent from the B-Control should be
a request for settings getting sent back from the other device to the B-Control: hence the name
‘LEARN’, i.e. learned by the B-Control. However, that doesn’t have to happen: you can of course
have the B-Control send anything, not necessarily triggering a MIDI response from the other device
back to the B-Control. One obvious idea is to have the B-Control simply send a MIDI Program
Change message indicating that the B-Control has indeed selected that preset. So e.g. for preset 1 you
could define ‘$C0 $00’, for preset 2 ‘$C0 $01’, etc. Another application is the initialization of a
receiving synthesizer or so.
131
snapshot (e.g. as a standard MIDI file), and then you can resend the snapshot to the synthesizer at any
later time, so that the synthesizer is set exactly to your favorite setup.
There are several ways to trigger a snapshot:
! On the B-Control itself: hold the EDIT button, then press the ‘= PRESET’ button.
! From BC Manager: execute ‘Receive snapshot’ from the B-Controls window.
! A bit more advanced: From BC Manager, record a snapshot from the B-Control and put it in a
button definition. Then send that button definition back to the B-Control, so that whenever you
press that button on the B-Control, the whole snapshot is output. In this way you could define a
preset that is a collection of synthesizer setups!
It is also possible to have the B-Control send a preset’s snapshot whenever you select that preset (e.g.
via pressing the ‘= PRESET’ and ‘PRESET <’ buttons): thus you ensure immediate synchronization
between the preset’s current values and e.g. a synthesizer. In BC Manager you can switch this feature
on and off via the Snapshot checkbox on the Settings tab in the Preset dialog box.
[11] In the element (button/encoder/fader) tables, is there a way to change a particular parameter
(e.g. the MIDI channel) of the selected elements? It seems that even when you select several
rows, you can only change the parameters for one element at a time.
The ‘E’ button or the Edit menu item indeed simply edits each selected button/encoder/fader in turn
and as a whole. So that is not what you should use in this case.
Instead, to edit just a single parameter of a range of elements, use the Parameter pull-down
menu: there you can select the parameter of your choice (e.g. ‘Channel’) that you want to change in
one go for all the selected elements. A dialog box appears in which you can select the new parameter
value. What’s more: the ‘Step per row’ knob allows you to define an increment: e.g. if ‘Step per row’
is 1, the first element gets set to the value you have indicated, but the second becomes 1 higher than
the first element, and so on. (See the next question for a concrete example of this procedure.)
Beware: afterwards you may not actually see the parameters change in the element table if the
Type parameter is ‘None’. But you can set Type in a bulk operation as well, so that can be fixed
easily...
[12] Wouldn’t it be nice if the paste operation could increase the previously copied element’s
CC/NRPN number by 1 for every successive element? You could then set up one element, then
create the others almost instantaneously.
BC Manager currently doesn’t allow this particular ‘complex paste’ operation. However, you can
achieve basically the same result as follows:
1. Select a range of elements (e.g. encoders 1-10).
2. From the Parameter menu, execute Type and choose (for instance) NRPN.
3. From the Parameter menu, execute NRPN º NRPN, setting NRPN to the first desired value and
‘Step per row’ to +1.
4. Set any other parameters (e.g. Value 1 and 2) in the same way.
Alternatively:
1. Set up encoder 1 completely (via the Encoder dialog box).
2. Copy encoder 1.
3. Select encoders 2-10. (Or possibly 1-10, since you’re going to set the first selected encoder’s
NRPN value anyway in step 5 below; you then don’t even have to set up encoder 1’s NRPN
value in step 1 above.)
4. Execute Paste: this pastes encoder 1 to all the selected encoders.
5. Execute Parameter º NRPN º NRPN, again setting ‘Step per row’ to +1.
[13] The B-Control allows me to make a button send incremental Program Change messages. I
can set this on the B-Control itself by entering the button’s edit mode and setting push
encoder 6 to ‘InC’. However, I can’t do this in BC Manager; why not?
132
This feature was introduced in the B-Control’s firmware version 1.10. However, due to a bug in this
firmware, the B-Control doesn’t include the ‘InC’ setting in its preset dumps, nor can it be set via
MIDI. Consequently, BC Manager (or any other B-Control editor) cannot work with this setting, and
destroys it whenever it sends the button’s settings to the B-Control.
[14] I use BC Manager to make tweaks on my B-Control. Is there a way to make a toggle-off
button skip through the available options? For instance, for an effect parameter with only 3
or 4 options I would like to make the button jump in skips, so that continuous presses reveal
values of 0, 64, 127, 0, 64, 127, 0, 64, etc. Is this possible?
In BC Manager, go to the ‘Standard output’ tab of the button dialog box. There, for a button with
‘Type’ set to Control Change, you can set the ‘Mode’ parameter to ‘Increment’, and then the
‘Increment’ parameter to the desired jump value. Obviously, a limitation of the increment parameter
is that the step size is fixed. Please consult the sections called ‘Button increment mode’ and
‘Increment mode’ in BCMI for in-depth discussion of the increment feature.
[15] Behringer’s BC-Edit program doesn’t allow me to assign note messages to an encoder. Is this
possible in BC Manager?
No in that it’s simply a feature of the BCF and BCR themselves that their ‘standard output’ protocol
only allows the assignment of note messages to buttons, not to encoders or faders.
Yes in that BC Manager allows you to assign any messages (including note messages) to buttons,
encoders and faders under the ‘custom output’ protocol. However, this requires a bit more work,
since you have to construct the MIDI byte sequence manually:
A MIDI Note On message has the format ‘$9c n v_on’, where c (a hexadecimal digit from 0 to
F) is the MIDI channel (1-16) minus 1, n (0-127) is the note number, and v_on (1-127) is the (onset)
velocity. So e.g. ‘$90 64 127’ (or the equivalent ‘$90 $40 $7F’) constitutes a Note On message on
MIDI channel 1 for note 64 with maximum velocity.
For an encoder you can also include the knob’s value (position) in the output message, by using
the keyword ‘val’. You can use this keyword for either the note number or the velocity, so for
instance ‘$90 val 127’ or ‘$90 64 val’ — whichever is appropriate in your situation. Note that you
must define the range of ‘val’ via the Value1 and Value2 parameters of the encoder’s custom output
definition.
You also have to decide whether you need to add the corresponding Note Off message (‘$8c n
v_off’) to the custom output definition (or possibly ‘$9c n 0’, of course). This depends on the
requirements of the receiving device.
[16] I have played with the Default value setting with no difference and I am a bit confused by the
value range of 0-16383.
Default is a generic parameter, i.e. it applies to any ‘standard’ or ‘custom’ output message definition,
so its wide range of 0-16383 is necessary to support even those output message types that use
0-16383. In fact, as far as the ‘standard’ output definitions are concerned, this wide range is only used
by a few encoder and fader parameters (i.e. CC and NRPN in the 14-bit modes), not by any button
parameters. So you should only ever set Default to the range currently indicated for Value 1 and
Value 2 on the ‘Standard output’ tab, i.e. usually 0-127.
[17] When I set the encoder’s LEDs to a fancy setting like ‘Bar’ or ‘Spread’ on my BCR2000, only
the eight push encoders are affected. Is this normal?
Yes. Although the BCR allows you to program the ‘fancy’ LED settings for any encoder, these fancy
settings only work for the eight push encoders, not for the BCR’s twenty-four ‘simple’ encoders. (As
Royce Craven has pointed out, this limitation is probably built into the BCR because the power
consumption by the LEDs would be too big if they could all be lit simultaneously.)
So this is why BC Manager’s encoder dialog box says ‘Warning: this setting only works for push
133
encoders’ if you select a fancy setting for a simple encoder, and why the LEDs column in the encoder
list window says ‘INVALID ...’.
[18] Is it possible to enter values with the numeric buttons on the keyboard instead of using the
mouse?
When you’re on a knob, press Alt+Enter. See §30 for further applicable keyboard shortcuts. (Note:
Kip’s BC Manager video erroneously talks about Ctrl+Enter: that doesn’t work.)
[19] I’m curious why BC Manager uses knobs in some of the dialog boxes. Some of the ranges
kind of threw me off, but then again I’m not a big fan of dialing with a mouse in general. It
just doesn’t feel natural or intuitive to me to drag up to have a knob turn right...
In my experience, knobs on computer screens are almost exclusively seen in music software:
apparently the idea is that musicians are used to working with knobs on actual musical hardware.
Personally I wasn’t a mouse user at first either (this may be a generation issue — I started using
computers in the 1980s!), and accordingly had my doubts about knobs: instead, my programs used to
have ‘spin edit boxes’, i.e. text edit boxes containing up and down arrows. However, around 2003 I
finally decided to develop a rotational knob: that took me about a full month, but I was very satisfied
with the result. So since then I have used both knobs and spin edit boxes in my programs. It’s always
a dilemma which to use where: there are arguments for and against either type of control:
E.g. BC Manager uses a spin edit box for the number of encoder groups (1-4), because the range
is small and would look a bit weird on a knob.
On the other hand, knobs have the advantage that you can set any ‘remote’ value almost
immediately. This is especially useful if the range is large, e.g. the typical MIDI range of 0-127. This
would be much harder to do with a spin edit box (well, you could type the value, of course).
When you say that some of the ranges threw you off, I suppose you mean those ranges that go up
to 16383. I agree that these are a bit difficult to manipulate (since we typically only want to set a
value in the 0-127 subrange). However, I can think of several reasons (some more convincing than
others) for keeping things like they are now:
1. The fact is that these ranges are that large, and at least the user now sees that potential
immediately.
2. You can always change a knob’s value directly by means of the arrow keys (cf. §30).
3. For most knobs it is possible to open a dialog box containing a spin edit box by pressing
Alt+Enter; so in that sense the user has that alternative available anyway whenever mouse
operation is difficult.
4. Via the main window’s ‘Mouse options’ dialog box, you can set the direction in which you have
to move the mouse to affect the knob value, and (if you select ‘horizontal’ or ‘vertical’) the
resolution at which this happens. Also note that the mouse becomes more accurate when you
widen its circle of movement.
5. There is perhaps an issue of consistency (for what it’s worth): why use spin edit boxes for
certain parameters and knobs for others (in the same dialog box)? Things might start looking a
bit messy.
So all in all I think the current setup is reasonable, combining the ‘best of both worlds’. Still, I must
admit that I do share your basic instinct, so if and when I get a clever idea, I may change things after
all.
(One thing that might work would be to narrow the range of the ‘0-16383’ knobs to ‘0-127’
unless the wide range is actually valid (e.g. if Mode has been set to a 14-bit value) and/or if the user
specifically requests the wide range via an additional ‘14-bit range’ checkbox or so. But again, in a
sense that would also complicate things, so I don’t know... It’s just one of those headache-causing
user interface dilemmas...)
[20] How do I ‘search and replace’ a particular byte in custom output messages? I need to do this
134
for a series of almost identical SysEx messages, only differing in the byte(s) specifying the
parameter addresses of my synth.
Select the elements you wish to change, then from the element window’s Parameter pull-down menu,
execute Custom output º Item, and fill in the appropriate values in the dialog box that appears.
[21] Can you implement an undo feature in BC Manager? I have had to restart BC Manager
several times, when I cut a line, then paste, but do something in the wrong order. This is the
case, say when I am revising a layout, moving things around to better suit me. I get stuck, I
copy something, then paste, or paste the last thing before I cut... I really need an undo feature.
Otherwise I have to stop, close, not save, start over since last save, and I don’t save after every
single move, although I could.
From a programmer’s point of view, an undo feature (in particular an application-wide one) is
absolutely one of the most horribly difficult and time-consuming things to implement: I don’t think
I’ve ever seen a professional word processor or programming environment whose undo feature was
not buggy in some way... The problem is this: the more editing operations a program has, the more
difficult it is to keep track of all the interacting effects of these operations, hence the more difficult it
is to reverse all these operations. So I don’t think that it is on the cards in the near future, but I have
added it to the wish list...
Instead of closing, can’t you just reopen the current file? One thing that might also help in this
respect: you can open as many ‘B-Controls’ as you wish; note that you don’t have to link each of
these to a real BCF/BCR (or even to a file). So instead of saving your intermediate presets (or even
buttons etc.) to file, you could copy them to another ‘B-Control’ now and then.
[22] Is there a place in BC Manager where the underlying BCL script is visible/editable?
You can open a BCL editor window (one for each B-Control) from the View pull-down menu of the
B-Controls window.
A note to clear up a potential incomprehensibility you may run into: when you execute ‘Receive
global setup’ or ‘Receive preset 0’ from the BCL editor window’s MIDI pull-down menu, you can
only see the B-Control’s response in the (global) ‘MIDI input messages: BCL’ window. You can
open this window via the main window’s View º MIDI submenu; you must also press the Record
button in that window before any response is actually recorded/displayed.
[23] I loaded selected presets into the BCL editor. When I select e.g. presets 11-16, they all load,
but so does preset 0, which is tacked on the end. Was that your intention?
Yes:
When sending presets to the B-Control, BC Manager first sends (to use your example) memory
presets 11-16, then preset 0 (the temporary preset). The latter is necessary for restoring preset 0 to the
current values maintained by BC Manager, because preset 0 on the B-Control is used as a gateway for
presets 11-16. So it seems natural to copy this behavior in the BCL editor window — which is why
preset 0 is appended. The idea is that the user can edit the BCL text, then send it directly to the B-
Control with the same ‘automatic’ restoration facility of preset 0.
However, I admit that in other situations (such as yours) it might be easier to leave out preset 0
at the end. I could include an on/off-switch in the BCL editor window’s menu, or simply add another
menu item that leaves out preset 0.
Note that if you simply want to export a single preset at a time, you can simply use preset 0 itself
for this — then you obviously don’t get an extra, appended preset.
However, you can also export presets directly from the preset list window — in that case you
don’t get the extra preset 0!
135
Files
[24] How do I import one or more individual presets (stored in a bcf/bcr/syx/txt/bc2 file) in the
Presets window?
You have to go to the B-Controls window: from its File pull-down menu you can execute either Open
or Import. Neither of these operations initializes the whole data area before loading the data from the
input file. So the input file can contain any BCL data you like: presets or even individual buttons etc.
The only difference between Open and Import is that the Open operation renames the ‘current file
name’ (as shown in the B-Controls table) to your imported file.
[25] I have the Presets window open and I load my presets using the Import operation. They
automatically go into preset 0, and I then copy and paste them into their appropriate slots. Is
it normal for the syx file to automatically go into preset 0? If so, great! If not, what should I
do to fix that, and is my ‘workaround’ all right?
By nature any preset definition as such is a definition for the temporary preset. The syx file may or
may not contain a $store 1-32 command after the preset definition as such. So if a preset file doesn’t
contain a $store command at the end, BC Manager can only load that preset into preset 0.
Syx files saved via BC Manager’s ‘Export selected preset(s)’ operation (from the Presets
window via the File pull-down menu) do append the $store command, but other preset files people
have made may not, in which case you indeed have to copy them to the intended locations manually.
In accordance with the BCF and BCR themselves, BC Manager’s Import operation (from the
B-Controls window) always first loads the preset into preset 0, then if the file contains an appended
$store N command, BC Manager copies that preset 0 to memory preset N.
By the way: if you wish to find out whether a preset syx file contains a $store command, you
could convert the syx file to a txt file (in BC Manager’s main window via File º Convert), then open
the txt file in any text editor (e.g. Notepad), and look for ‘$store’ at the bottom of the file.
[26] How should I save my presets to make them available to other people?
In the Presets window, select (highlight) the preset(s) you want to save, and choose ‘Export selected
preset(s)’ from the File pull-down menu. In the dialog box you can then select the output file type
(bcf, bcr, syx, txt or bc2) via the ‘Save as type’ box; as of BC Manager 3.0.0 bcf and bcr are
recommended.
An important decision you have to make is whether the file contains the temporary preset (i.e.
‘preset 0’) and/or one or more memory presets.
The saved file will contain all the presets’ respective ‘$store’ commands. However, if preset 0
(the temporary preset) is among the selected presets, preset 0 will be saved last, and will not be
followed by a $store command. This protocol is similar to what happens when you send a bunch of
presets to an actual B-Control: the B-Control uses the temporary preset as a gateway to any memory
presets: formally any preset definition concerns the temporary preset, and is only copied to a memory
preset the moment a $store command is encountered.
An obvious advantage of saving memory presets is that a single file can contain up to 32 memory
presets, whereas there can be only one temporary preset in a single file. Since files containing
memory presets are no problem to users of BC Manager, a file containing memory presets is probably
easier to use than a collection of files each containing only one preset. If the user wants, he/she can
create an additional ‘B-Control’, open the file containing the memory presets into that B-Control, and
then copy and paste the presets to the desired locations in the B-Control linked to the actual B-
Control.
However, for greatest flexibility, you should save all your presets to separate files, each
containing the temporary preset (i.e. a preset definition without a $store N command). If you export
memory presets (e.g. 11 to 16) to a single file, the output file contains $store (11/12 etc.) statements,
136
which is potentially dangerous to an unsuspecting user, because uploading such a file to a B-Control
immediately overwrites those memory presets on the B-Control.
[27] I have looked at a txt output file created by BC Manager. There is a lot of stuff at the end that
will set a lot of presets to a blank preset. For instance:
$preset
.name ' '
.snapshot off
.request off
.egroups 4
.fkeys on
.lock off
.init
$store 24
$preset
.name ' '
.snapshot off
.request off
.egroups 4
.fkeys on
.lock off
.init
$store 25
The File º Save operation from the B-Controls pull-down menu saves the complete sequence of
memory presets (1-32) to a file. This is done to avoid any confusion that might occur when you open
a preset file lacking certain presets: you could then end up with a very confusing mix of the presets
that you were already editing and the newly loaded ones.
See the description of the File asterisk column in §10 for an explanation of this point in relation
to Behringer’s own syx preset files.
If you want to mix presets from different files manually, you can simply create one B-Control
for each file, then copy and paste.
137
MIDI communication
[28] Since BC Manager is largely useless when the BCF is in an emulation mode, how do I find
out what is controlling what in emulation modes?
First of all, you should be prepared for ‘a few’ quirks, caused by the way the BCF behaves in its
emulation modes or by the expectations made by the hardware or software at the other end of the
MIDI connection.
For finding out which MIDI messages a particular knob on the BCF sends in any emulation
mode, you can always use a ‘MIDI pipe’ (e.g. MIDI Yoke) to insert a MIDI monitoring program like
BC Manager or MIDI-OX. (If you wish to use BC Manager in this way, you have to set up a ‘MIDI
Thru’ connection via BC Manager’s MIDI devices dialog box.)
In general, a little perseverance is called for here: making a controller like the BCF and a
receiving device understand each other is often a struggle, even if you have worked with MIDI and
indeed the BCF/BCR for a long time.
[29] Why won’t BC Manager 1.5.1 receive data from my BCF even though it recognizes it and can
send data?
BC Manager is primarily meant for working with the BCF in standard ‘B-Control’ mode. When a
BCF is indeed in B-Control mode, BC Manager should in principle be able to communicate with it
fully. However, when a BCF is in any emulation mode, communication is quite limited; for instance,
no presets are available.
All BC Manager versions prior to 2.0.0 simply expected the BCF to be in B-Control mode, so
confusingly you could still send presets to the BCF in an emulation mode — but of course the BCF
wouldn’t actually accept these presets. As of version 2.0.0, BC Manager autodetects the BCF’s mode
(as reported in the Personality column of the B-Controls window) and automatically disables any
operations that don’t apply to emulation modes; for instance, you can’t even send presets if the BCF
is in an emulation mode.
[31] I want my BCF/BCR to control my synthesizer via the BCF/BCR’s standard MIDI
input/output sockets. When I’m programming the BCF/BCR via BC Manager, I use a U-
mode, but then I can’t simultaneously access my synthesizer for testing. So I keep switching
between U-mode (for programming) and S-mode (for testing), which causes BC Manager to
report a lost connection, so I have to restart BC Manager all the time. Isn’t there an easier
way?
For many years I thought that it was simply a feature of Windows that a program could not respond to
a USB-related MIDI port change while the program was running: all the MIDI applications I knew
suffered from this problem. However, around 2010 I noticed that some DAWs had become able to
update their configuration immediately, and I have since figured out how this works too. However, in
practice this is quite tricky to implement. A big question is what should happen when a port change
138
occurs during a complicated upload or download operation. So until I’m totally sure I can make live
updating work flawlessly, I’m keeping the current system in place, where the user has to restart the
program to pick up the port change: at least this precludes any bugs...
But to answer your question in a practical way: on Windows you don’t have to switch between U and
S operating modes for programming and testing. Instead, you can route the B-Control’s signals to
your synth via BC Manager:
1. On the BCF/BCR, select U-3, or possibly U-2. (U-3 supports both MIDI OUT A and B; U-2 only
MIDI OUT A.)
2. Connect your synth (bidirectionally) to the BCF/BCR’s MIDI input socket and to the MIDI
output socket of your choice (cf. the U-mode chosen above).
3. Start BC Manager. From the main window’s menu, open Options º MIDI devices:
(a) On the Input tab, select (highlight) the B-Control’s input control device; then enable it (via
the checkbox) and set its ‘Thru output device’ to the B-Control’s MIDI output socket of
your choice.
Also select and enable the B-Control’s MIDI input socket, and set its ‘Thru output
device’ to the B-Control’s output control device.
(b) On the Output tab, enable the B-Control’s output control device and the MIDI output socket
of your choice. (Their ‘Thru input device’ settings should already have been taken care of
by point (a) above.)
Note: in the above procedure, I haven’t specified MIDI device names, since these vary,
depending on the installed USB MIDI driver. But e.g. if you’re using a BCR2000 and the
Behringer driver vs. 1.2.1.3, you should typically connect ‘BCR2000[1]’ ø ‘BCR2000[1]-A’.
Now the BCF/BCR should be able to talk to BC Manager and the synth simultaneously. You can test
the connection from the BCF/BCR to the synth by checking whether BC Manager’s MIDI input and
output meters respond when you generate MIDI output on the B-Control or the synth: in the input and
output meter windows, the ‘LEDs’ of the connected input and output devices should light up
simultaneously.
One warning though: you cannot pass MIDI System Exclusive messages from your B-Control to
your synthesizer this way. This is a limitation of BC Manager’s MIDI Thru facility. See §32 for
explanation.
[32] How do I upload presets (for instance Behringer’s original factory presets) to my B-Control?
I could have sworn I was doing it correctly by uploading, pressing the STORE button, using
the preset arrows to find the bank of choice, and then pressing STORE again, but it appears to
not have worked.
It’s easier to do this from BC Manager’s Presets window: once you have put a preset in its place (e.g.
by opening its bcf/bcr/syx/txt/bc2 file), you select (highlight) the preset, then go to the MIDI pull-
down menu and execute Send. In principle it should be unnecessary to press any buttons on the B-
Control itself.
If you wish to restore the BCF or BCR’s original presets: these are in the files
Factory_Presets_BCF.zip and Factory_Presets_BCR.zip respectively, available from the Behringer
web site.
[33] Do I have to press any buttons on my B-Control to receive data from BC Manager?
No, you don’t have to do anything on your B-Control, except that you have to make sure that your B-
Control is not in Global Setup mode (the display showing ‘EG’; in this case it doesn’t accept
139
anything) or in Edit mode for a button, encoder or fader. And of course a BCF must be in standard
‘B-Control’ mode, not in an emulation mode. However, in all these cases BC Manager warns you that
things aren’t working when you send a preset or element definition to the B-Control.
[34] When I try to send a preset to my B-Control, BC Manager’s dialog box stops in the middle.
Why?
Several things can go wrong. For instance, the very connection may be lost (this happens more often
with USB connections than standard MIDI ones). Whatever the source of the problem, one thing to
realize is that BC Manager’s ‘send preset’ routine uses a handshaking protocol: BC Manager sends a
message, then waits for the B-Control to confirm reception of that message before sending the next
message. (But of course this doesn’t tell you what exactly is wrong.)
One thing you can do after a failed transmission is to execute ‘Refresh connection status’ (either
via the button or the item in the MIDI menu). If this doesn’t work either (as reported in the
Personality and Firmware columns), the problem is indeed a sudden loss of connection, due to
switching off the B-Control, entering Global Setup or Edit mode, etc. On the other hand, if ‘Refresh
connection status’ reports nothing unusual, the problem may be more specifically connected with the
data you’re trying to send. You should also watch out for feedback loops and duplications in the
MIDI paths to and from the B-Control: these may mess up the MIDI SysEx message ‘chains’ of
which preset and element dumps consist.
[35] I tried to send a preset to my B-Control via BC Manager, but BC Manager hung in the middle
of the transfer process, so then I sent the syx file via MIDI-OX. What could have caused the
transfer to fail in BC Manager but succeed in MIDI-OX?
When BC Manager sends a preset to the B-Control, it uses a bidirectional, handshake protocol. That
is: it sends one SysEx message, then waits for the B-Control to reply with a SysEx acknowledgment
message before sending the next message. So this may be the reason for your problem with uploading
your data from BC Manager: maybe somehow the B-Control didn’t return the correct
acknowledgment message, or BC Manager received an unexpected message back via a feedback loop,
upon which it decided to stop transmitting.
By contrast, MIDI-OX simply sends all the SysEx messages to the B-Control with fixed delays
between them, without waiting for any acknowledgments from the B-Control. MIDI-OX’s method
has two drawbacks:
1. If the B-Control doesn’t actually accept the data (for whatever reason), MIDI-OX doesn’t inform
you, let alone halt the transfer.
2. Perhaps surprisingly, in practice MIDI-OX’s method is usually slower than BC Manager’s,
because of MIDI-OX’s fixed delays between messages (by default 60 msec, I think): BC
Manager continues immediately upon reception of an acknowledgment from the B-Control.
Note: BC Manager version 2.0.0 and later allow you to use one-way, generic SysEx transfers as well
(via the ‘MIDI System Exclusive messages’ window), but it is inadvisable to use this method for B-
Control SysEx data such as presets — unless you don’t have a bidirectional connection, perhaps.
[36] Does BC Manager overwrite all 32 presets each time it sends a preset to the BCF/BCR?
No. When you send one or more individual presets to the BCF/BCR, only those presets are sent (plus
the ‘temporary’ preset, but that’s a different matter). Only when you execute ‘Send all data’ does BC
Manager send all 32 (possibly ‘empty’) presets to the BCF/BCR.
By contrast, BC Manager’s Save operation (in the B-Controls window) does save all 32 presets
to any bcf/bcr/syx/txt/bc2 file it creates (even if some of these presets are ‘empty’). However, the
‘Export selected preset(s)’ operation (in the Presets window) saves only the preset(s) you have
selected.
[37] How can I save a particular parameter setup made on my B-Control for my synthesizer? (I.e.
140
the current values (positions) of the various buttons, encoders and faders in a preset.)
Execute the B-Control’s snapshot function, by pressing EDIT + ‘= PRESET’ on the B-Control, or
pressing the ‘Snapshot’ button in BC Manager. This sends all the current positions of the B-Control’s
elements (at least those defining Control Change messages etc.) to BC Manager.
BC Manager can capture such a sequence of CC messages in various ways, and you can then do
various things with this sequence. For instance:
1. You can save it as a MIDI file. (Go to the ‘MIDI input messages’ window for this.)
2. Even better: you can put such a sequence of CC messages in the definition of one B-Control
button, so that you only have to press this button to send all those settings to your synthesizer. In
this way you can create whole banks of favorite parameter setups. You could put them under free
buttons in the same preset as the one containing the individual parameters, or dedicate separate
presets to them.
To do this via BC Manager, in the button dialog box (of a free B-Control button), go to the
‘Custom output’ tab and press the ‘Record MIDI messages’ button (i.e. the round red button on
the toolbar). This opens a dialog box saying ‘Record MIDI messages’. Then press the ‘Snapshot’
button, wait for the B-Control to send the data, and press OK. The CC messages are then
assigned to the B-Control button of your choice — all you have to do is send this button
definition to the B-Control.
Beware: the total number of bytes of the recorded messages should be 125 or less. This
limit is imposed by the B-Control. Also see the next question.
[38] I pressed Record under the ‘LEARN output’ tab and executed Snapshot. This came back with
‘Messages recorded: 114’ and ‘Bytes recorded: 229’. After this I click OK, but then I cannot
exit the Preset’s ‘LEARN output’ tab. It gives me the option to cancel but not to accept the
new line it created from the snapshot. What am I doing wrong here?
The B-Control has a limit of 125 bytes for the LEARN output sequence. However, as a courtesy BC
Manager allows you to record up to 999 bytes: you can edit all these bytes (copy, paste etc.), but you
cannot ‘save’ them as the actual LEARN output sequence, which is why OK is disabled until the
number drops to 125 or lower.
[39] Sometimes BC Manager produces a sequence of error messages saying things like ‘Error:
Error preparing MIDI input header. There is no driver installed on your system.’ What does
this indicate?
This error message indicates that the USB connection (as maintained by Windows) between the B-
Control and the computer has been lost, i.e. behind BC Manager’s back while it has been running.
(The reason why you sometimes get the same message repeated many times is that these messages
can be triggered by each of BC Manager’s 32 MIDI input buffers it tries to set up.)
There are several potential causes for this:
1. You have switched off a B-Control connected via USB manually while running BC Manager.
Any attempt at communication between BC Manager and this B-Control will then produce this
type of error. Beware: once you have switched a USB-connected B-Control off while BC
Manager is running, it doesn’t work to just switch the B-Control back on: you must also exit and
restart BC Manager.
2. A sudden connection loss (e.g. in the middle of a preset dump) might be due to a problem in
Windows, but this isn’t very likely. (At least I think I have never actually experienced this.)
3. Your B-Control’s USB controller (actually a part of the B-Control’s CPU) is defective.
This is not very likely, but definitely possible: about six people in the BC2000 Yahoo group
reported this problem over a period of about three years (around 2007-2010). In fact I myself
141
was one of these people: my first BCR kept shutting down the connection in mid-operation.
(Mind you: this happened regularly while I was writing BCMI and developing BC Manager!) It
took me almost a year to conclude that it really was the USB controller on the BCR itself. Then I
finally went back to the shop; they soon gave me a new BCR — luckily it was still within the
two-year warranty period. My new BCR has never given me any problems — I didn’t even have
to reinstall any Windows USB drivers or whatever.
One way to find out if you really have a faulty USB controller is to try and send the same
data via a standard MIDI connection: even my BCR with the defective USB controller never had
any problems in the S-modes. So switch off both the B-Control and the computer, disconnect the
USB cable between them, and connect the B-Control to the computer via e.g. the MIDI ports of
the computer’s sound card. Put the B-Control in an appropriate S-mode (i.e. S-3 or S-4) and in
BC Manager send your presets to the B-Control via that connection. If this does work, you may
indeed have a faulty USB controller, hence need a new B-Control; if this doesn’t work either,
you should probably check your preset settings and the B-Control’s Global Setup parameters.
[40] I have tried dumping several presets to my B-Control using BC Manager. Everything I
transfer appears to go smoothly, but when I turn the encoders they all have a minimum of 0
and a maximum of 1. I have experimented with changing the default value in the scripts. This
seems to work but turning the associated encoder will only change its value by 1 or 2. Any
suggestions?
Are you by any chance sending memory presets to the B-Control? Basically the problem with this is
that the B-Control’s actual behavior is determined by the temporary preset (a.k.a. ‘preset 0’ in BC
Manager). For more explanation, see under ‘Editing’ in this FAQ section.
[41] When I transfer a preset from BC Manager, it doesn’t matter what MIDI channel I have set,
it always ends up being channel 16 after transferring to the B-Control. Why is this so? I know
that I can change the channel manually on the B-Control, but that kind of defeats the purpose
of BC Manager.
See the previous question.
[42] When I send a preset from BC Manager to my B-Control, the B-Control doesn’t appear to
accept the new values, and some of the button and encoder lights go on, then off again. My
preset settings are only set correctly when I press the left PRESET button followed by the
right PRESET button. What’s going on here?
When BC Manager sends memory preset N to the B-Control, the following sequence of events take
place:
1. BC Manager sends memory preset N as such to the B-Control’s temporary preset.
2. BC Manager sends a ‘store N’ command to the B-Control, ordering the B-Control to copy its
temporary preset (containing your memory preset data) to memory preset N.
3. BC Manager sends the temporary preset as it occurs in BC Manager to the B-Control. This aims
to restore the temporary preset you were (supposedly!) working on, undoing the effect of step 1
above (which overwrote the temporary preset on the B-Control with your memory preset data).
So if the current temporary preset defined in BC Manager is ‘empty’, all the lights indeed go off.
After this procedure you can indeed select your memory preset by pressing the B-Control’s two
PRESET buttons in sequence, since pressing a PRESET button copies a memory preset’s data to the
temporary preset.
This reflects how the B-Control works: the display innocently shows ‘P-..’ all the time, but in
fact the temporary preset is the only preset that you can edit on the B-Control itself and the only one
that ever outputs MIDI data when you move the buttons, encoders and faders. The memory presets
can only be accessed by copying them to the temporary preset. And of course, when you select a
memory preset, the current temporary preset (including any changes you have made) is lost.
142
The distinction between temporary and memory presets is a common one on synths etc., but
always liable to give rise to confusion of the did-I-save-my-changes type. That BC Manager allows
you to (seemingly) bypass the temporary preset by sending memory presets directly, is probably a
good thing, but I admit that it can be confusing.
But of course the B-Control does respond automatically when you send it the temporary preset
(‘preset 0’) from BC Manager (you can even send individual buttons/encoders/faders of the
temporary preset, which is great when you’re developing a preset). But then of course if you like
these temporary settings, you ultimately have to copy them to a memory preset (either via the STORE
button on the B-Control itself or by means of BC Manager). However, this method is still not ideal;
see §7 for the intended way of manipulating presets via BC Manager.
[43] If the B-Control requires a preset change to actually select a memory preset you have just
sent, wouldn’t it be easier if BC Manager sent a MIDI Program Change message after the
SysEx send was finished?
There would be several problems with this:
Curiously, the B-Control has no (SysEx) command for finding out which memory preset is
currently selected on the B-Control. So BC Manager would have to guess the desired memory preset
number from the number of the memory preset that you have just sent to the B-Control. However, BC
Manager’s ‘Send preset’ operation allows you to send a range of presets, so how would BC Manager
know which of these presets you want to select on the B-Control (i.e. copy to the B-Control’s
temporary preset)?
Another problem: how would BC Manager know that you don’t care about any pre-existing data
in the temporary preset? (This data would get lost after a MIDI Program Change message selecting a
memory preset on the B-Control.) So in a sense this would involve a totally different scheme of
working with the temporary preset: ‘implicitly’ rather than ‘explicitly’. The advantage of the BC
Manager’s current, explicit scheme is (as mentioned above) that you can work directly with the
temporary preset (and its individual elements) as a separate entity.
[44] Say I record an arbitrary MIDI message (under 125 bytes) from a device (not necessarily a
BCF/BCR) to the MIDI clipboard in BC Manager. Can I then go to a particular element, edit
the custom output field and paste the recorded MIDI bytes via Shift+Ctrl+Ins?
Yes.
143
Printing
[45] Is there a way to save the print output to a file, e.g. in prn or bmp format?
Creating graphical file formats is a very complicated business concerning scaling, fonts etc.
I have no idea how to create prn files.
The main problem with bmp files containing high-resolution images (e.g. 600 dpi) is that they
have huge sizes, even in black and white. And lower resolutions, e.g. 150 dpi, provide far less
satisfying results: one of the main strengths of the ‘print overlays’ operation is exactly the high font
resolution; by contrast, the ‘print window image’ operation yields a pretty awful resolution in
printing terms.
I have experimented with Windows metafiles (wmf/emf), but haven’t been able to get things
right for those formats. They should be able to provide a very compact representation of the drawn
objects (i.e. lines + text, in case of B-Control element strips), but it has turned out to be very hard to
get them right (in terms of scaling etc.), in relationship with the image and word processors that can
read metafiles. And besides, a metafile doesn’t constitute a one-to-one representation of what you get
when you print to the printer directly, so it’s a bit dangerous in that sense.
[46] If I am working on a computer without a printer or one with several attached, the ‘print
overlays’ operation sends the print data to the default printer, but is there a way to have the
print overlays operation actually bring up the printer dialog?
You can deviate from the default printer via BC Manager’s main menu: Options º Printer. However,
anything you set in that dialog box only holds for the current run of BC Manager: once you restart
BC Manager, you get the default settings again.
[47] In what format does the ‘print overlays’ operation output the print data?
BC Manager first defines a printer object (as defined by a linked programming library), then draws a
number of lines and characters on that printer’s ‘canvas’. I don’t know how these data are processed
further, but presumably they are ultimately converted to the native printing language of the printer
being used.
144