This utility is able to convert the configuration of the B-Control series MIDI controllers between native SysEx format and a text file, which can be edited by any editor to change the configuration without having to fiddle around with the cumbersome built in user interface.
The current version of BC-Convert can be found here.
For a small documentation of the usage, read the following.
aphrodite:~/Documents/SysEx Librarian michael$ ./bc-convert -h BC-Convert Version 0.3 (C) 2006 Michael Kukat Usage: ./bc-convert [options] Error: Help requested Options: -i <input file> Input file (default stdin) -o <output file> Output file (default stdout) -d <device id> Device ID (used on SysEx output only) -m <model id> Model ID (used on SysEx output only) -s Force SysEx output (default autodetect) -t Force text output (default autodetect) -s and -t can't be used together for obvious reasons. aphrodite:~/Documents/SysEx Librarian michael$
This is a command line tool, which has been compiled for MacOS X and Win32. No Drag&Drop or other funny stuff, just the command line. The following options can be used:
-i <input file> - gives the file to read for conversion.
-o <output file> - gives the file to write to. WARNING! This file will be overwritten!
-d <device id> - used on text to SysEx conversion only, sets the device ID of the device to configure. This is the configured ID less one. So if you configured ID 1 on your B-Control, use -d 0 for the converter. This argument is optional, by default, 127 is assumed, which talks to all B-Control devices on the MIDI interface you are sending the SysEx file on.
-m <model id> - very similar to the -d option, but sets the model ID. Usually, this is 20 for BCF2000 and 21 for BCR2000. Set to 127 by default, which in conjunction with the default device ID of 127 talks to all B-Control devices on the MIDI interface you are sending the SysEx file on.
-s - This forces conversion from text to SysEx, usually, the auto detection mechanism is able to recognize the conversion direction.
-t - The opposite of -s, this forces SysEx to text conversion.
The text format is quite simple, it contains the data encapsulated in the SysEx messages of the B-Control. As an addition, the converter has some features to simplify your life, it ignores blank lines and is able to strip off comments from your text, which the B-Control might not understand, but which help you to keep your files readable. By first converting a preset to text, you get somthing like this in your text file:
# Generated by BC-Convert. Input was DeviceID 0, ModelID 21 $rev R1 ...
The first line is a comment and will not be sent with the SysEx data. The second line is blank and will also net get sent. In detail, the parser works the following way:
First, isolate the complete line. Next, scan from the start of the line for a character starting a comment. This is the hash (#) and the semicolon (;). The semicolon should no longer be used, as it might disappear somewhen, so please only use the hash to start a comment. If one of those characters is found, the line is scanned backwards skipping all white spaces (blanks and TABs). The comment including all leading white spaces is stripped off.
If after this something is left over, it is written to the SysEx file.
So comments can be used like in the following example:
# This is my test configuration $rev R1 # Start BCR configuration $preset # Start preset configuration .init # Clear current edit buffer #------------------------- # Encoder 1 - MIDI volume #------------------------- $encoder 1 # Start encoder configuration .easypar CC 1 7 0 127 absolute .showvalue on .mode 12dot/off .resolution 96 96 96 96 .default 100 $end # End of BCR configuration
As you can see, everything can be well-formatted and commented this way. For a list of possible tokens which can be used in the configuration file, see B-Control-Tokenreferenz.