Bc2000 (for the BCF2000 & BCR2000) group photo

Yahoo Groups archive

Bc2000 (for the BCF2000 & BCR2000)

Index last updated: 2026-04-28 23:16 UTC

Thread

display negative numbers

display negative numbers

2014-11-14 by benni@...

hei folks,


looking for a way to send (or at least display) negative numbers within a range of -400 to +400 on my bcr.

is there any way? i'd love to have an encoder set to it's center for a value of 0.


thanks a ton!

benni

Re: [bc2000] display negative numbers

2014-11-15 by sghookings

Sorry cannot be done without man-in-the-middle to do the processing OR some hacking to make values signed rather than unsigned.

Some folks bias values then subtract the bias.
I prefer to use 8192 as the bias. Why? Well then you can use an embedded processor to let non-signbit pass thru and transform biased.

Regards
Steve H


Sent from Samsung Mobile



-------- Original message --------
From: "benni@fnfnfnfn.de [bc2000]" <bc2000@yahoogroups.com>
Date: 14/11/2014 19:57 (GMT+00:00)
To: bc2000@yahoogroups.com
Subject: [bc2000] display negative numbers


hei folks,


looking for a way to send (or at least display) negative numbers within a range of -400 to +400 on my bcr.

is there any way? i'd love to have an encoder set to it's center for a value of 0.


thanks a ton!

benni

Re: display negative numbers

2014-11-15 by benni@...

hello steve,

thanks for your help. unfortunately i don't understand a thing :) – i'm pretty new to programming the BCR.

what would "a man in the middle" be? i am using max msp, so i guess i could (?) do some pre-processing.
what does "bias values" mean?

thanks again and sorry for my boldness

Re: [bc2000] Re: display negative numbers

2014-11-15 by sghookings

Kein problem. Ich bin mude ... ich fahre von Schwetzingen nach England heute und jetzt vielliecht dreimal bier spater ich nicht verstehen!

Ok the BCR only operates in unsigned mode. 0 until 16383.

To get negative you must translate (like my poor German above).

The act of adding on a constant value is called a bias.

So if you imaginge -8192 bis 8191 ... total range is 16384 ... ah same as 0 bis 16383

My synth, Akai Miniak, wants -ve, but really sends two ranges ... positives stay same 0 ... n-1 and -n to -1 is biased by 16384 to become 16384 - n bis 16383.

So I put an embedded processor in the middle of the midi and he does transforms. What I do is to make all values live biases by 8192 (the mid point) on the BCR.
Then I take away 8192 and add on 16384 ... in other words add on 8192. This then makes transformed values right for thr synth.

Much easier to show you with a whiteboard ... maybe next time I am in Deutschland.

Bis bald
Tschuss
Steve H


Sent from Samsung Mobile



-------- Original message --------
From: "benni@fnfnfnfn.de [bc2000]" <bc2000@yahoogroups.com>
Date: 15/11/2014 19:11 (GMT+00:00)
To: bc2000@yahoogroups.com
Subject: [bc2000] Re: display negative numbers


hello steve,


thanks for your help. unfortunately i don't understand a thing :) – i'm pretty new to programming the BCR.

what would "a man in the middle" be? i am using max msp, so i guess i could (?) do some pre-processing.
what does "bias values" mean?

thanks again and sorry for my boldness

Re: display negative numbers

2014-11-15 by benni@...

haha :) hi steve – thanks a ton, again!

ok. so... the thing is, i don't really need the bcr to *send* negative values, i guess...
i can do the "translation" (/ remapping) within max; it works well.

what i would like to achieve though is to display negative values; or even note-names
as a matter of fact. what the bcr "spits out" at the end doesn't really matter.

is there any way to do this? or am i not really understanding anything here :)

Re: [bc2000] Re: display negative numbers

2014-11-15 by sghookings

The BCR cannot display -ve.
It only knows +ve.

Sorry about that. If they offered unsigned type this would be simple. ARM has ability but just not coded.

Hence why I used an Arduinoto do this (and display on LCD under my control)

Regards
Steve H


Sent from Samsung Mobile



-------- Original message --------
From: "benni@fnfnfnfn.de [bc2000]" <bc2000@yahoogroups.com>
Date: 15/11/2014 19:38 (GMT+00:00)
To: bc2000@yahoogroups.com
Subject: [bc2000] Re: display negative numbers


haha :) hi steve – thanks a ton, again!


ok. so... the thing is, i don't really need the bcr to *send* negative values, i guess...
i can do the "translation" (/ remapping) within max; it works well.

what i would like to achieve though is to display negative values; or even note-names
as a matter of fact. what the bcr "spits out" at the end doesn't really matter.

is there any way to do this? or am i not really understanding anything here :)

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

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.