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: Controlling the Marion Prosynth

2014-03-28 by <rpcfender@...>

The problem is that you can use 14 bits to represent numbers from 0 to 16,383 or -8192 to 8191
Midi doesn't care what you thinking the number means, but being continuous range on steps is the problem
Lets look at the binary numbers as we are talking about bits. 14 bits is 00 0000 0000 0000

This is what you need the BC to do (counting down)
00 0000 0000 0011 = 3
00 0000 0000 0010 = 2
00 0000 0000 0001 = 1
00 0000 0000 0000 = 0
11 1111 1111 1111 = -1 is really taking 1 away from 0 and so we loop back to all '1's
11 1111 1111 1110 = -2 ... continue counting down
11 1111 1111 1101 = -3

This is what it does (counting up)
00 0000 0000 0000 = 0
00 0000 0000 0001 = 1
00 0000 0000 0010 = 2
..
01 1111 1111 1110 = 8190
01 1111 1111 1111 = 8191
10 0000 0000 0000 = -8192 a big jump right in the middle of the range
10 0000 0000 0001 = -8191 , but only because we think of it as negative number
..
11 1111 1111 1110 = -2
11 1111 1111 1111 = -1

We fool the BC into being continious by using an extra bit that won't appear in our final outputted value
1 000 0011 = 131 but we think of it as 3
1 000 0010 = 130 but we think of it as 2
1 000 0001 = 129 but we think of it as 1
1 000 0000 = 128 but we think of it as 0
0 111 1111 = 127 but we think of it as -1
0 111 1110 = 126 but we think of it as -2
0 111 1101 = 125 but we think of it as -3

This works for any number as long as you have that extra bit.
Although we are thinking the range is -3 to 3, we make the range of numbers the BC counts from 125 to 131.
Then we ask the BC only to output the lower 7 bits with the command val0.6 - (the value but only use bits 0 to 6 of the 14bit value)
Suddenly we have continuous positive and negative numbers with 0 at the center.

Unfortunately the biggest range the BC can cope with is 14 bits, but we need 15bits to make the 0 appear in the middle of the range.

So wether is it sysex or NRPN the problem remains.
You can, however, either have it jump from 8191 to -8192 in the middle of the range, (but that won't work for -99 to 99 range) or you can use two encoders.
Enc1 range 0 to 99
Enc2 range 16284 to 16383 (-99 to -1) or you reverse it .to go from -1 to -99

Sorry.
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.