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 k5kip_1999

This is for a knob.
And actually, I should change the minmax order, right?
I will try it at any rate and get back, then go back under my rock.


--- In bc2000@yahoogroups.com, "k5kip_1999" <k5kip_1999@...> wrote:
>
> Ok,
> So range from -1 to -99 would be
> $3FFF $3F9d
> but I should write it as 
> .minmax $3F9d $3FFF
> Correct?
> 
> Thanks Royce.
> 
> 
> --- In bc2000@yahoogroups.com, "rpcfender" <rpcfender@> wrote:
> >
> > > 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.