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

Creating Alesis Quadrasynth patch with bcman: Need Help.

Creating Alesis Quadrasynth patch with bcman: Need Help.

2008-11-17 by Josh

So I'm in the process of creating a pretty fully implemented patch
(set of them actually... ) for alesis quadrasynths (i'm using a QSR)
and ran into a few issues with offsets in sysex messages. 

I've been using the alesis sysex doc (which is very comprehensive, but
wrong about a few things... go figure...) from their website. I've
been figuring out the commands by watching the output from a software
qsr editor that i know works.

A basic program parameter changenlooks like this:

<header 6bytes><mode/function><sound/page><channel/pot><val><F7>

So for a filter freq change i've got this on a rotary controller:

$F0 $00 $00 $0E $0E $10 $44 $00 $07 val $F7

and it works like a charm.

Now, when I read the output of another parameter change (Vel>Filt)
from the software editor I get <06> in the 9th byte but then it
changes to <07> mid-way through a revolution of the slider in the
software. I know this has something to do with an offset b/c in the
sysex doc from alesis this parameter shows up as having an offset of
-99 (the filt freq example above showed an offset of 0). My problem is
I have no clue what the offset means, or how to use it to program a
single rotary controller in bcman to adjust this parameter fully.

I'd love some help. This is taking a lot of work and when its done
I'll post the whole thing here for everyone. No more quadrasynth
menus! I just gotta get over this hump.

Re: Creating Alesis Quadrasynth patch with bcman: Need Help.

2008-11-17 by rpcfender

Hi Josh

> A basic program parameter changenlooks like this:
>
> <channel/pot>
>
> So for a filter freq change i've got this on a rotary controller:
>
> $F0 $00 $00 $0E $0E $10 $44 $00 $07 val $F7
>
> and it works like a charm.
>
> Now, when I read the output of another parameter change (Vel>Filt)
> from the software editor I get <06> in the 9th byte but then it
> changes to <07> mid-way through a revolution of the slider in the
> software.
so...
$F0 $00 $00 $0E $0E $10 $ $ $06 val $F7
goes to...
$F0 $00 $00 $0E $0E $10 $ $ $07 val $F7
yes?

What is the range of the val ? 0 to 127?

If it is you can use the 14bit numbers in the BC.
Now here is the confusing bit, to get $06 $00 (a 14 bit number) you need the 16 bit number $0300
x000 0000 x000 0000 2 bytes (x is not a bit)
x000 0110
x000 0000 $06 $00
xx00 0011 0000 0000 to get a 16 bit number the high byte rolls right one into the lower byte = $03 00
(There is a Hex to 14bit Midi converter in the files section.)

To finish at the 14 bit $07 $7F you need the hex $03 $FF

.minmax $0300 $03FF
.tx $F0 $00 $00 $0E $0E $10 $ $ val7.13 val0.6 $F7


Post the real min max values and I'll try to get closer for you

All the best
Royce

Re: Creating Alesis Quadrasynth patch with bcman: Need Help.

2008-11-18 by Josh

I appreciate you giving this a look Royce

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
bit address:13:0-12:1

Hopefully that'll help. I don't know what half of it means...

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

Re: Creating Alesis Quadrasynth patch with bcman: Need Help.

2008-11-18 by Josh

Thanks again, Royce. I figured that was the deal but thought that some
of those other variables in the "custom output" menu in bcmanager
might be able to help me out. 

Looks like this'll be going to way of my micron template, then (hhehe
and don't even get me started on that.)

Re: Creating Alesis Quadrasynth patch with bcman: Need Help.

2008-11-27 by Nibardo

--- In bc2000@yahoogroups.com, "Josh" <joshgaines@...> wrote:
>
> So I'm in the process of creating a pretty fully implemented patch
> (set of them actually... ) for alesis quadrasynths (i'm using a 
QSR)
> and ran into a few issues with offsets in sysex messages. 
> 
> I've been using the alesis sysex doc (which is very comprehensive, 
but
> wrong about a few things... go figure...) from their website. I've
> been figuring out the commands by watching the output from a 
software
> qsr editor that i know works.
> 
> A basic program parameter changenlooks like this:
> 
> <header 6bytes><mode/function><sound/page><channel/pot><val><F7>
> 
> So for a filter freq change i've got this on a rotary controller:
> 
> $F0 $00 $00 $0E $0E $10 $44 $00 $07 val $F7
> 
> and it works like a charm.
> 
> Now, when I read the output of another parameter change (Vel>Filt)
> from the software editor I get <06> in the 9th byte but then it
> changes to <07> mid-way through a revolution of the slider in the
> software. I know this has something to do with an offset b/c in the
> sysex doc from alesis this parameter shows up as having an offset 
of
> -99 (the filt freq example above showed an offset of 0). My 
problem is
> I have no clue what the offset means, or how to use it to program a
> single rotary controller in bcman to adjust this parameter fully.
> 
> I'd love some help. This is taking a lot of work and when its done
> I'll post the whole thing here for everyone. No more quadrasynth
> menus! I just gotta get over this hump.
>

Josh, you are doing a great job. I'm waiting this template, cause i 
have a QSR too. Don't know nothing about Syxex commands, so just my 
moral support for you.
Thanks for this
Cheers

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.