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: Button increment skip values? re:VFX and sysex control

2008-05-29 by rpcfender

> I need to do the postive/negative thing.
> I will start with the pitch octave button.
> They currently increment by 1 -4...0...4.
> I have two buttons how do it get the values to go negative on one of
> the buttons?
> Please forgive me if you already answered me.
>
> $button 36 ;Pitch_Oct+
> .showvalue on
> .default 0
> .mode incval 1
> .minmax 0 4
>
> $button 44 ;Pitch_Oct -
> .showvalue on
> .default 0
>; .mode incval 1
> .minmax 0 4
>

Ok, deep breath.... this will work for all negative values from -1 to -4096

You need a 16bit value.
BCR only puts out 14bit numbers, but that is OK because when the number is positive the missing top bits are 0 anyway
Your 16 bit number is broken into four 8bit bytes abcd efgh ijkl mnop (letters showing the position of 0 or 1 in a 16bit binary number)
You need to output 0000abcd 0000efgh 0000ijkl 0000mnop as that's the order your synth likes it (I think).
We get this with val12.13
val8.11 val4.7 val0.3 in the .tx statement

Our 16bit negative number has 1s in the top part ie 0000 1111
val12.13 will always have 0s in the top 2 bits 0000 00cd so this won't work
If the number is 12bits or smaller we can simply substitute $0F for the val12.13

.tx $F0 header parameter_offset val12.13 val8.11 val4.7 val0.3 $F7
becomes
.tx $F0 header parameter_offset $0F val8.11 val4.7 val0.3 $F7

The $0F in the top bits has made the value negative

Now we have to set the range
with minmax so that the 12bit numbers are correct
The max unsigned 14bit number is $3FFF
So we can use that as if it is -1
$3FFF = -1
$3FFE = -2
$3FFD = -3
$3FFC = -4
$3FFB = -5
$3FFA = -6
$3FF9 = -7

.minmax $3FFC $3FFF ; for our -1 to -4

So for your preset......

$button 36 ;Pitch_Oct+
.showvalue on
.default 0
.mode incval 1
.minmax 0 4
.tx $F0 header parameter_offset val12.13 val8.11 val4.7 val0.3 $F7

$button 44 ;Pitch_Oct -
.showvalue on
.default $3FFF
.mode incval -1 ; the only place you can use negative numbers
.minmax
$3FFC $3FFF ; Note for incval to work it must be in this order
.tx $F0 header parameter_offset $0F val8.11 val4.7 val0.3 $F7


I hope this helps.

All the best

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.