Message
Re: Roland mc-909 SysEx
2014-04-16 by <rpcfender@...>
$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
- No local attachments were found for this message.