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: Creating Alesis Quadrasynth patch with bcman: Need Help.

2008-11-18 by rpcfender

Hi Josh
> The output I get coming out of my software editor shows at max value:
> F0 00 00 0E 0E 10 44 00 06 63 F7
> and at min: F0 00 00 0E 0E 10 44 00 07 1D F7
>
> also my sysex document has this to say about the parameter
>
> offset: -99
> limit (max value): 199
> bits: 8

It looks like it is -99 to +99

F0 00 00 0E 0E 10 44 00 06 63 F7 = 99
F0 00 00 0E 0E 10 44 00 06 62 F7 = 98
F0 00 00 0E 0E 10 44 00 06 61 F7 = 97
...
F0 00 00 0E 0E 10 44 00 06 01 F7 = 1
F0 00 00 0E 0E 10 44 00 06 00 F7 = 0
F0 00 00 0E 0E 10 44 00 07 7F F7 = -1
F0 00 00 0E 0E 10 44 00 07 7E F7 = -2
...
F0 00 00 0E 0E 10 44 00 07 1F F7 = -97
F0 00 00 0E 0E 10 44 00 07 1E F7 = -98
F0 00 00 0E 0E 10 44 00 07 1D F7 = -99

Negative numbers are not handled on the BCs, except in some special circumstances, but this is not one of them.
I believe this is a major failing of the BC firmware. Many hardware synths use negative numbers and the work around is always complicated and often not very usable.

; 14bit
x000 0110 x110 0011 = $06 $63
16bit
xx00 0011 0001 1101 = $03 $63

; 14bit
x000 0111 x001 1101 = $07 $1d
16bit
xx00 0011 1001 1101 = $03 $9d


Work around
Use 2 encoders
encoder 1 for positive values - clockwise increases
.minmax 0 99
.tx $F0 $00 $00 $0E $0E $10 $44 $00 $06 val $F7
encoder 2 for negative values - clockwise increases
.minmax $1d $80 -note val sees $80 as 0
.tx $F0 $00 $00 $0E $0E $10 $44 $00 $07 val $F7
not particularly good if you have a few of these controls


You can't use direction to give you the -ve number
ie encoder 1 for positive values - clockwise increases
.minmax 0 99
.tx $F0 $00 $00 $0E $0E $10 $44 $00 ifp $06 val $F7 ifn $07 val $F7
because the negative numbers are a bit wierd
-1 = $7f the ifn will give you the $07 but the val will be wrong

Normally you can use a number greater than the range to allow the -ve val to be correct
.minmax $1B $E3 (notice that the max value has bit 7 set)
.tx $F0 $00 $00 $0E $0E $10 $44 $00 val $F7

clockwise gives values
bit 7 val
0 $1b = -99
0 $1c
0 $1d
...
0 $7f last -ve
1 $00 note how the -ve becomes +ve here bit7 set from here on but it's not part of val
1 $01
...
1 $61
1 $62
1 $63 = +99

val never sees bit 7
We need a val7.9 for the 06 -07 value but there isn't one, so ....


> bit address:13:0-12:1
Not sure what this is


Sorry about the bad news

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.