Forgive me if we have already been over this, but I keep getting asked about multiple parameters in one data byte of a sysex message.
This occurs in both early synths and in some Novation synths and perhaps in other places.
This is a rehash of an answer I gave on Mark's forum.
I need to use BCL (Behringer Control Language - Mark's BC manual explains all) so those who don't want to partake in this sort of nonsense feel free to move on to the next subject. My feelings won't be hurt.
The BC responds to value feedback, but only if you program the control with the easy method, that is easypar
$encoder 1
.easypar CC 01 117 0 127 absolute
If a 117 CC on channel 1 comes into the BC, encoder 1's value will change to that value comming in
If you also have
$button 1
.easypar CC 01 117 127 0 increment 1 ;Note max and min bytes are swapped for increment
encoder 1 and button 1 will be in lock step ie turn encoder 1 and button 1's value will change as well. And vice versa.
You are able to add a .tx statement to an easypar and the BC will transmit both the easypar value and the tx
$encoder 1
.easypar CC 01 117 0 127 absolute
.tx $F0 $42 $10 00 00 val $F7 ; made up sysex message
$button 1
.easypar CC 01 117 127 0 increment 1
.tx $F0 $42 $10 00 00 val $F7 ; made up sysex message
Turning encoder 1 or pressing button 1 will output a CC117 on channel 1 and a sysex message.
Example... you have a packed parameter byte of bit5 and 6 for Osc 1 Octave and bits 0 to 4 are Osc 1 coarse tuning
value = 0oot tttt
$encoder 1 ; Coarse tuning
.easypar CC 01 117 0 127 absolute
.tx $F0 $42 $10 00 00 val $F7 ; made up sysex message
$button 1 ; Octave
.easypar CC 01 117 127 0 increment $20 ; steping by $20 counts through the top bits
.tx $F0 $42 $10 00 00 val $F7 ; made up sysex message
The big problem is range.
Although the Coarse tuning wil always be OK, as you go past it's max you will increment the Octave.
Similarly when you go below 0 the Octave will be decremented.
Also there are problems if the range of the value is less than the bits allowed.
For example if the Coarse tuning control had a range of 0 to 24, you still need 5 bits, but 5 bits has the range 0 to 31
The result is not predictable. I just give it a shot and see what happens.
All the best
Royce