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: Script Editor - Appreciate your advice

2010-12-21 by gil.brand33

--- In bc2000@yahoogroups.com, "Mark" <markwinvdb@...> wrote:
>
> --- In bc2000@yahoogroups.com, "gil.brand33" <gil.brand33@> wrote:
> > I would like (if possible) to configure an _existing _BCR preset to send 
> > three SysEx messages in a _single press_ of button #4.
> > 
> > 
> > If (Button #4 = *Off*) then send:/The *default* state
> > 
> > F0 01 20 01 2A 33 02 00 F7/Set value of x02 to parameter x33
> > 
> > F0 01 20 01 2A 35 01 00 F7/Set value of x01 to parameter x35
> > 
> > F0 01 20 01 2A 38 01 00 F7/Set value of x01 to parameter x38
> > 
> > ------------------------------------------------------------------------------------- 
> > 
> > 
> > If (Button #4 = *On*) then send:
> > 
> > F0 01 20 01 2A 33 03 00 F7/Set value of x03 to parameter x33
> > 
> > F0 01 20 01 2A 35 00 00 F7/Set value of x00 to parameter x35
> > 
> > F0 01 20 01 2A 38 02 00 F7/Set value of x02 to parameter x38
> > 
> > Is it possible, or do I have to use extra buttons for such a task?
> 
> It can be done in one button, but it's very tricky, because of a bug in the BCR affecting SysEx messages in ".tx" statements.
> (See BCMI ("BC MIDI Implementation.pdf"), sections 14.6.3/4).
> 
> In any case the script below circumvents this bug:
> 
> $rev R1
> $button 4
>   .showvalue on
>   .default 2
>   .mode toggle
>   .minmax 2 3
>   .tx $F0 $01 $20 $01 $2A $33 val $00 $F7
>   .tx $F0 $01 $20 $01 $2A $35 ifn $01 $00 $F7 ifp $00 $00 $F7
>   .tx $F0 $01 $20 $01 $2A $38 ifn $01 $00 $F7 ifp $02 $00 $F7
> $end
> 
> > In any case,
> > - What "*.mode*" should I use for the button(s)?
> 
> I think you want "toggle", as used above.
> See BCMI section 15.9.
> 
> > - Can I, and should I omit the "*.minmax*" & "*.default*" macros for 
> > that purpose?
> 
> ".minmax" is essential.
> 
> I'm never sure myself about ".default".
> Maybe you can try to make sense of what BCMI section 14.3 says about it...
> 
> > After sending the above code (completed of course) to the BCR through 
> > the "Script Editor", should I just press "Store" twice in order to write 
> > the changes to my current preset?
> > 
> > Is there anything else I should do before/after sending the script?
> 
> Maybe Royce can answer these questions.
> 
> Hope this helps,
> Mark.
>

Thank you very much Mark! It helped a lot :)
I wasn't aware that it is possible to use more than one ".tx" in a single block.

Does "ifp/ifn" corresponds to "On/Off" respectively? (Couldn't find that in the BCMI…)

I reviewed section 14.3 in the BCMI, and I'm not quite sure how ".default" behaves under all possible scenarios…

Therefore, in order to `ignore' both ".default" & ".minmax" (to be on the safe side..), I was thinking of replacing only the first ".tx" line in your block, so that the whole block would look like this:
 
$rev R1
$button 4
.showvalue on
.default 2
.mode toggle
.minmax 2 3
.tx $F0 $01 $20 $01 $2A $33 ifn $02 $00 $F7 ifp $03 $00 $F7
.tx $F0 $01 $20 $01 $2A $35 ifn $01 $00 $F7 ifp $00 $00 $F7
.tx $F0 $01 $20 $01 $2A $38 ifn $01 $00 $F7 ifp $02 $00 $F7
$end


Would that be a valid block?
Would it do exactly the same as the block you suggested?

*Last but not least*
Shouldn't there be some delay time between the executions of the ".tx" lines, so that the receiving synth can process the incoming data?

Thanks again,
Gil.

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.