F0 00 20 32 BCx-2000 Sysex header (numbers in Hex)
F0 00 20 32 00 - Device ID (00 to 0F)
F0 00 20 32 7F - All Devices
F0 00 20 32 00 15 - BCR-2000 Sysex header
F0 00 20 32 00 14 - BCF-2000 Sysex header (numbers in Hex)
F0 00 20 32 00 7F - Both BCF & BCR Sysex header (numbers in Hex)
If you use 7F instead of 15/14 the unit will answer with its type in this ident byte. So a software request F0 00 20 32 00 7F 01 F7 can give you what kind a unit you are dealing with.
Response from a BCR
F0 00 20 32 00 15 02 42 43 52 32 30 30 30 20 31 2E 31 30 F7 BCR2000 1.10.
You could have used the BCR2000 text but the 15 byte is in any answer from a BCR.
F0 00 20 32 7F 7F - Message to any BCR or BCF
Requests (you can use 7F instead of 15)
F0 00 20 32 7F 7F 22 00 F7 Select specific Preset on the BCR
.
F0 00 20 32 7F 7F 22 1F F7 00 to 1F
F0 00 20 32 7F 7F 40 00 F7 Get specific Preset
to
F0 00 20 32 7F 7F 40 1F F7 00 to 1F
F0 00 20 32 7F 7F 42 00 F7 Get specific Preset name
F0 00 20 32 7F 7F 42 1F F7 00 to 1F
(40 for patch - 42 for Name)
(00 to 1F for specific preset - 7E for All - 7F for Current)
F0 00 20 32 7F 7F 40 7F F7 Current Preset request
F0 00 20 32 7F 7F 40 7E F7 All Presets request
F0 00 20 32 7F 7F 42 7F F7 Current Preset Name request
F0 00 20 32 7F 7F 42 7E F7 All Preset Names request
F0 00 20 32 7F 7F 01 F7 Software version request
F0 00 20 32 7F 7F 41 F7 Request Global data
F0 00 20 32 7F 7F 43 F7 Send out current values of the encoders/faders/buttons
Patch Names
Each Patch Name is a single Sysex transmission.
The name is wrapped in the sysex header plus device id (00 to 0F or 7F for all) device type (15 for the BCR 14 for BCF or 7F for any) and 21 (hex)
F0 00 20 32 7F 7F 21
followed by a 2 byte patch number eg 00 00 then the name in ascii characters,23 characters wide
e.g. 50 61 74 63 68 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 33
“Patch 23”
Patch Script Lines
Each Patch is comprised of a script language. Each line of the script is sent in ASCII as single Sysex transmission.
Each line of the script is wrapped in the sysex header
Then 00 to 0F or 7F for any device id
Then 15 for the BCR 14 for BCF or 7f for any unit
Then 20 (hex) for script (patch) line
F0 00 20 32 7F 7F 20
followed by a 2 byte line counter starting at 00 00 then the line of script in ascii
e.g. 24 72 65 76 20 52 31
(which is “.$rev R1”)
And terminated by the normal sysex F7
F0 00 20 32 7F 7F 20 00 00 24 72 65 76 20 52 31 F7 which is “.$rev R1”the first line of the BCR dump
The editor wraps the script correctly, so all we need to talk about here is the content of the script which can be written with the inbuilt editor or one of your own – e.g Notepad or PSPad
The Script
The rest of the text here is a rip-off of the German web site Synthesizer Wiki
As I don't speak German here is the information as I understand it.
Feel free to write to me at rpcfender@yahoo.com.au to correct me or add something to the info.
The BCR2000 and the BCF2000 (I only have experience with the BCR2000) use a script language to program them.
The numbers can be written in decimal or in hex (start a hex number with “$”)
In this text the script commands will be in bold for easy reading
The BCR seems to ignore spaces and it includes 2 spaces to indent when it sends out its own sysex
$ starts a section eg $global or $preset
. (fullstop) starts a parameter eg .mode or .minmax
Here is an example.
$rev R1
$preset
.name “New Example “
.snapshot off
.request off
.egroups 4
.fkeys on
.lock off
.init
$button 3
.mode down
.minmax 0 0
.default 0
.tx $F0 $41 $10 $00 $6B $12 $10 $00 $04 $00 val cks-1 $05 $F7
.showvalue on
$encoder 56
.minmax 0 127
.default 1
.tx $F0 $41 $10 $00 $6B $12 $10 $00 $27 $07 val cks-1 6 $F7
.resolution 96 96 96 96
.mode bar
$end
Beginning and End
$rev R1 for BRC ($rev F1 for BFC)
is always the first line
always finishes the script off
The section commands are
$global
$recall <arg>
$store <arg>
$encoder <arg>
$fader <arg>
$button <arg>
You can change just 1 or or any number of controls
As you didn't use the .init in the $preset area, just encoder 56 will be changed.
Note that all the changes are in the edit buffer of the BCR2000. That is, you will need to save them, either manually or by using the editor that sends the $store command
$store 23
This will store the edit buffer into preset 23
NOTE: if you don’t set the parameter it will return to the default
$encoder 52 etc
No matter what the .resolution was set to it returns to .resolution 96 96 96 96
Curious behaviour
You can use both the .tx and .easypar and the unit will send out two MIDI messages for each change.
(If you try to get the preset back it only gives you the .easypar part)
If you have .minmax and use .easypar the max and min values in .minmax will take precedence.
If you have an incrementing button
.easypar cc 1 1 10 14 increment 1
and have a default value less than the start
.default 5
It will give values of
5 6 7 8 9 10 11 12 13 14 10 11 12 13 14 10 etc
From http://b-control.mik-music.org/bcr2000.txt
(no mention of .tx though)
$rev R1 # start transmission for BCR
Or $rev F1 # start transmission for BCF
$end # end transmission
$global...
Stefan_68