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: SysEx String Programming / Syntax Help for BCR2000

2013-08-21 by Mark v.d. Berg

--- In bc2000@yahoogroups.com, "evanlong@..." <evanlong@...> wrote:
> The copy of BC Manager that I just downloaded has a max parameter address length of 4, but I need 5 for the RM50. I can work around that by putting an extra byte in the model ID field after the 30, but it means I have to break up the device definition files by parameter group.

Ah, yes; I hadn't realized 4 is the current maximum; sorry about that.

Another (probably slightly better) workaround would be to set AddressLength to 3 and put the RM50's two parameter address bytes ("Parameter 1" and "Parameter 2") at the front of the "Data"/"value" group; this wouldn't force you to use multiple files.

However, it's best to avoid all these workarounds altogether:
you can now download a beta version of BC Manager that allows addresses of up to 8(!) bytes from my website:
http://home.kpn.nl/f2hmjvandenberg281/download/BC/BCMan242b1.zip
Just extract the exe and copy it to your existing BC Manager program folder. (For safety, you may like to rename the old BCMan.exe first.)

> it seems like the full range granted by that setup is not necessarily desired for every string -- correct?  If not, do you just limit that in the MinValue and MaxValue areas of the parameter definitions?

Indeed: if both MinValue and MaxValue are smaller than 128, you only need to write the LSB in a BC Manager SysEx model definition file.

> in a two byte variable, will the "val" portion always be written as "val7.13 val0.6," or are there other possibilities/requirements for other circumstances?  If there are others, which is used when -- and how does one know how to tell the difference?

The BCR maintains a 14-bit value for every encoder/button, and it can output certain portions of that value (see "BC MIDI Implementation.pdf", section 14.6.1), in any order you like. You can even mix these "val..." identifiers with fixed values.
What is appropiate totally depends on the receiving device.

> While we're talking multi-byte variable formats, here is another example from the manual that I don't know how to read nor to set up.  This one is for selecting the first of two waveforms/samples (out of 133 options) that make up a drum voice.  I copied this verbatim from one of the data charts on page 127 of the RM50 manual.
> 
> Value (high)            | Value (low)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> bit 6-5 mem
> 00 = preset
> 01 = wave card
> 10 = internal
> bit 4-3 card num
> 00 = 1, 01 = 1, 10 = 2
> bit 0 num high            bit7-0 num low 7bit
> 
> What do I do with that in terms of setting up a string in BC Manager?

First of all, I think the RM50 manual is incorrect in specifying "bit7-0 num low 7bit": it should say "bit6-0".

Secondly, unfortunately the BCR can't apply maths to items like "val7.13" or "val8.11": it can only send them as they are.
Obviously this is very inconvenient in complicated cases like this.
In this case, bit 0 of the high byte (=bit 7 of the encoder/button's value) is particularly problematic.
It may be easiest to send the high parameter byte as a fixed value (representing fixed choices for all that's in this parameter); of course this would only give the user a choice of 128 values (as defined by the low byte), but at least that's something.
So the definition in the BC Manager ini file would then look like:
<5-byte address> | 00 - 7F | <high byte: fixed value> val0.6 ;<description>
(Actually you could use "val" instead of "val0.6", since these are equivalent.)

Mark.

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.