Bc2000 (for the BCF2000 & BCR2000) group photo

Yahoo Groups archive

Bc2000 (for the BCF2000 & BCR2000)

Index last updated: 2026-04-28 23:16 UTC

Message

Re: Roland mc-909 SysEx

2014-04-16 by <rpcfender@...>

So for a complete round up of the sysex message...
$F0 $41 $10 $00 $59 $12 $10 $00 $20 $01 $51 $20 PatchNumber Checksum $F7
$F0 $41 $10 $00 $59 $12 this is the header -
$41 is Roland
$10 is the device number (you can change this if you have more than one of these devices chained together)
$00 $59 is the Model Id
$12 is a command byte "Here is a value for you"

$10 $00 $20 $01 this is the START address and must point to the start of a parameter.
It is made up of adding offsets
10 00 00 00 = Part Info
- Midi manual page 7 Start Address: now go to the Part Info box page7
... 00 20 00 = Part Info Part (Part 1) add this offset Go to the Part Info Part box on page 10 bottom 1st column
... .... 00 01= Patch Bank Select MSB (most significant byte of a 14 bit number)

A bank select message needs 2 bytes MSB then LSB.
For Roland gear you can use sysex or normal Midi messages (see below)

If you send, to this address, a value and a checksum the MSB of the bank will be changed but nothing will happen.
If you send a 2 bytes in the value and a checksum the MSB and LSB of the bank will be changed but nothing will happen.
If you send a 3 bytes in the value and a checksum the MSB and LSB of the bank will be changed and the patch number will cause a new patch of the new bank to be loaded.

You could also just send the 2 bytes of the bank in sysex and then a Midi Patch Change message and that would work too.

Roland allows you to send one or a group of parameters in a single sysex message and sometime it is quicker, but not usually.
For instance to change bank at patch without sysex.
B0 00 51 ; Bank MSB 3 bytes
B0 20 20 ; Bank LSB 3 bytes
C0 val ; Patch change 2 bytes
8 bytes verses 15 in the sysex
But if you wanted to change the Volume, Pan, coarse and fine tuning of that Part that is only 4 extra bytes for the sysex but with the 2 NRPN messages for the tuning the difference is getting closer.

You just have to remember that you need to send a complete parameter data.
This is fairly simple as there are only a few cases of parameters that have more than 1 byte of data.

eg address 11 00 00 00 is the Patch in Part 1
add 00 20 00 the first Tone of four
add 00 0A is the Tone Delay time - you can use this to build a patch that does a 4 voice arpeggio or a drum pattern on every pad press.

This parameter needs 2 bytes, so if you sent
$F0 $41 $10 $00 $59 $12 $11 $00 $20 $0A $01 Checksum $F7
The machine would just ignore it . You need two value bytes
$F0 $41 $10 $00 $59 $12 $11 $00 $20 $0A $01 $0A Checksum $F7
Now the parameter is set to $1A - see page 12 up the top

If you wanted to change the parameter before it, Tone Delay Mode, as well
$F0 $41 $10 $00 $59 $12 $11 $00 $20 $09 $00 $01 Checksum $F7
Is short of data. It changes the Tone Delay Mode but not the Delay time. You need
$F0 $41 $10 $00 $59 $12 $11 $00 $20 $09 $00 $01 $0A Checksum $F7

So you can't use an address that is part way through the parameter ($11 $00 $20 $0B is no good) and you have to give enough value bytes to complete the parameter value.

All the best
Royce

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.