Message
Re: How to make BC buttons send 14bit NRPN values?
2009-12-21 by rpcfender
The one big problem in the BC, that and feedback to the BC when you are not using .easypar I guess that make 2 big problems.
Just think about adding when dealing with -ve numbers in a computer.
-3 + 3 = 0
8bit number
$FD + $03 = 0
14 bit number
$7F $7D + $00 $03 = 0
Grab my number converter from the files section to sort out 14 bit Midi numbers.
> I've just been going over your BC Secrets again. I can see once we figure out the numbers needed for the so-called 'negative NPRN' values, likely via .tx commands to send 14bit values via MIDI CC 6 MSB and LSB, then the major hurdle will be crossed.
>
> After that, using the .tx commands 'ifp' and 'ifn', it should be possible then to assign a single Encoder to respond with the 'positive' NRPN values for a parameter when turning clockwise, and to respond with the 'negative' NRPN values when turning counterclockwise.
(again mixing decimal and hex)
.minmax 0 7
.tx $B0 99 0
.tx $B0 98 43
.tx ifp $B0 6 val
.tx ifp $B0 38 val
.tx ifn $B0 6 $7F
.tx ifn $B0 38 val
but the values (CC6 and CC38) it would give are
clockwise
$00 0
$00 01
$00 02
$00 03
$00 04 - now anticlockwise
$7f 03 - woops this isn't -3 but -125
-1 = $7F $7F in 14 bit Midi , add 1 to it and you get 0 ( really you get $01 $00 $00, but we don't have the high byte to hold the $01)
>
> Likewise, it should also be possible to assign a Button a .tx command which sends out the necessary 14bit NRPN command, and using 'incval' to increment, so that for the Micron parameters which have only a few values (so-called 'switches'), you can have a Button dedicated to the parameter instead of an Encoder.
Here buttons often work better, but I often use the odd groups for positive values and group 2 and 4 for negative ones
positive - group 1
.minmax 0 7
.tx $B0 99 0
.tx $B0 98 43
.tx $B0 6 val
.tx $B0 38 val
negative - group 2
.minmax $7F79 $7F7F ; don't use 0 as the BC just thinks you want to go backwards
.tx $B0 99 0
.tx $B0 98 43
.tx $B0 6 val
.tx $B0 38 val7.13 ;
for our small range you could used instead
negative
.minmax $79 $7F ; don't use 0 as the BC just thinks you want to go backwards
.tx $B0 99 0
.tx $B0 98 43
.tx $B0 6 val
.tx $B0 38 $7F
>Question is, could you also use the 'push' function of the top row Encoders as assignable Buttons in the same fashion, thereby giving you 32 more Buttons with 14bit, incrementable switches? Hopefully so =)
Sure can!
>
> I had forgotten all about the 'push' functionality of the top Encoders when designing and trying to squeeze in as many Micron parameters onto one BCF preset as possible. If I'm understanding the principles so far, I'll likely be able to squeeze everything onto a single BC preset, correct?
I don't know the Micron, but possibly.
Even so, it is not a big deal to switch between a couple presets.
I do that for my FantomX 4 voices or the DX7's 6 operators
All the best
Royce
Attachments
- No local attachments were found for this message.