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: display negative numbers

2014-11-15 by rpcfender@...

Hi benni
You can't display negative numbers on the BC
You can have continuous positive to negative numbers, but the max range is 63 to -64

First though you might like to give more details about what you are doing as many synths talk about negative numbers in the parameters but really only use a positive range.
Roland often have a positive and negative range, but Midi data value 64 is really the parameters 0 value.


You can read on if you want to find out how and why the BC and negative numbers go together.
In a computer negative numbers as such don't exist so we reduce our positive range to steal the highest bit and set that to mean negative. The sign bit.

Watch as we count down by 1


(0) 000 0010 = 2 (2)
(0) 000 0001 = 1 (1)
(0) 000 0000 = 0 (0)
(1) 111 1111 = -1 (255)
(1) 111 1110 = -2 (254)

As you go down a line we are subtracting 1.
Weird isn't it?

The number is the brackets at the end is the real computer number and it shows that we have a big jump between 0 and -1
We could make the sign bit 1 for positive instead
(1) 000 0010 = 2 (130)
(1) 000 0001 = 1 (129)
(1) 000 0000 = 0 (128)
(0) 111 1111 = -1 (127)
(0) 111 1110 = -2 (126)

both give similar results but this one is continuous.
The number is the brackets gives a range of 130 to 126 but if we only looked at the lower 7 bits then it would work for 2 to -2.
BCL val0.6 give us the lower 7 bits

On the other hand 400 = 11 001 0000 and -400 = (1) 00 111 0000
so we would need 14 bit Midi data (two 7 bit Midi data bytes)
xxx xxxx yyy yyyy, but we would only need to see
xx yyy yyyy for 400

We can use any value greater than 9bits but the result has to be 400 = 00 0011 001 0000 for the 2 midi bytes
We could try to do this by masking off the higher bits.

The first bit is bit 0, so in the lowest Midi data (only 7bits) we have bit 0 to bit 6
val0.6 give us the lower 7bits (yyy yyyy)

Now all we need is bits 7 and 8 and we are away.
val7.13 gives us the higher bits, but won't remove the top bit that we are going to use and the sign bit.
We really need val7.8

In fact val7.12 or val7.11 or val7.10 or val7.9 would do BUT these do not exist so you are out of luck.

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.