Message
Re: Creating Alesis Quadrasynth patch with bcman: Need Help.
2008-11-18 by rpcfender
> 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
- No local attachments were found for this message.