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-20 by evanlong@ymail.com

I did read Section 16 of the manual, but it's difficult for me to pick all this up on the first few passes, as I haven't worked extensively with MIDI at the hex level before.  I will be happy to share the RM50 files* when I've finished them if you continue to help me through it though.

I think I understand what you both are saying about this being a 0-255 variable.  If so, the first byte can act as a multiplier of sorts on the second.  In other words, to get the total range of a multi-byte variable, one multiplies the range of the high variable -- in this example, 2 -- by the low variable -- in this case, 128 -- in the device manual's Midi Data Format tables.  Though 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?  On a similar note, 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?

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?

*The copy of BC Manager that I just downloaded has a max parameter address length of 4, but I need 5 for the RM50 (as Mark noted).  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.

--- In bc2000@yahoogroups.com, "Mark v.d. Berg" <markwinvdb@...> wrote:
>
> --- In bc2000@yahoogroups.com, "evanlong@" <evanlong@> wrote:
> > Now that I've started working with BC Manager and have found it to work, I'm looking for a format I can use that can be inserted into one of its device definition files.  Can you show me how to rewrite what you did in that format?
> > 
> > --- In bc2000@yahoogroups.com, "Royce" <rpcfender@> wrote:
> > > This really just an 8 bit variable 0 to 255
> > > .minmax  0  255
> > > .tx F0 43 10 30 03 06 00 00 02 val7.13 val0.6 F7
> 
> Have you looked at section 16 of the BC Manager manual?
> This describes the SysEx model definition file format in detail - there's even a section on Yamaha.
> You might also look at AN200.ini (included in the BC Manager package, extracted to the Models subfolder), which looks rather similar to what you'd have to write for your RM50.
> 
> I think the header has to look something like this:
> 
> [MODEL]
> ProgramName=BC Manager
> ProgramVersion=2.3.0
> ManufacturerName=Yamaha
> ManufacturerID=43
> ModelName=RM50
> ModelID=30
> DevicePosition=WithCommand
> MinDevice=0
> MaxDevice=F
> DefaultDevice=0
> Command=1
> AddressLength=5
> ChecksumMethod=
> ChecksumStart=
> FileVersion=1.0.0
> FileAuthor=[Your name]
> Comment=[Bla bla...]
> 
> (ModelID and AddressLength are crucial here. The other items are mostly the standard Yamaha values.)
> 
> Then for each parameter you need to include a line specifying the address (5 bytes), the range, the "val..." and the description.
> 
> E.g. the parameter you've been discussing needs a line like:
> 
> 03 06 00 00 02 | 00 00 - 01 7F | val7.13 val0.6 ;user voice bank: voice 1: pitch
> 
> Hope this helps,
> 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.