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: [bc2000] Re: How to make BC buttons send 14bit NRPN values?

2009-12-21 by Martin Klang

Hi there,

I'll try to answer some of your questions, but unfortunately i don't know how to put both ranges on the same controller.

CC's 6 and 38 represent the high and low bits of the NRPN value, respectively.

Each byte represents 7 bits of data, so if you have this:

> 6 127
> 38 126 <== 52% dry, 48% wet

then this is equal to: the high bits shifted 7 places to the left + the low bits,
or ( 127 << 7 ) | 126
which is 16382
On a calculator that doesn't do bit operations you can do
high bits * 2^7 + low bits, or 127*2^7+127

So your two ranges are
decimal			high bits		low bits
49-0			0			49-0
16383-16334	127			127-78

>  Seems to me the difference between "6
> 127" and "6 0" may be one bit flipped?

well that would make a lot of sense -
Usually you take the most significant (highest) bit for the sign, so that the values would be:

1 : 0<<13 | 1 = 1
-1 : 1<<13 | 1 = 8193
-49 : 1<<13 | 49 = 8241

This gives you a 14 bit range of 8191 positive and 8191 negative values.

Unfortunately that's not what Alesis have done!
Instead they seem to have opted for rolling the values around from 0 to max, giving you two distinct ranges.

As i said, I don't know how to put that on one controller. Maybe with some clever tx command it is possible.

Good luck!

/m

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.