BC manager and RPN

By anonyme-x22, 21 May, 2019
Forums

Hi,

How can we do RPN parameter with BC manager ?

Thanks in advance,

Rgds,

Mark van den Berg

5 years 7 months ago

The BCF2000 and BCR2000 support NRPN via ".easypar", as detailed in BC MIDI Implementation.pdf, sections 15.4 and 16.4.

However, they don't support RPN via ".easypar".
So to assign an RPN parameter to an element (button/encoder/fader), all you can do is create one or more ".tx" statements, containing the exact sequence of RPN messages you wish to send, with "val..." placeholders for the appropriate portions of the element's current value (see BCMI section 14.6.1 for all options).
So for instance RPN Pitch Bend Sensitivity (MSB $00, LSB $00) on MIDI channel 1:
.tx $B0 $65 $00
.tx $B0 $64 $00
.tx $B0 $06 val7.13
.tx $B0 $26 val0.6
(Actually you could put all four messages in a single ".tx" statement:
.tx $B0 $65 $00 $B0 $64 $00 $B0 $06 val7.13 $B0 $26 val0.6
However, this is less transparent, thus more error-prone.)

In BC Manager ".tx" definitions can be created via the "Custom output" tab of an element's dialog box.
You should leave out ".tx" here: only specify "$B0 $65 $00" etc.
And don't forget to set the range parameters ("Value 1" and "Value 2") as desired.

Keep in mind that unlike ".easypar" definitions, ".tx" definitions don't support parameter feedback; that is, any incoming RPN messages from the connected MIDI device won't affect the value of the BCF/R's element.

Hope this helps,
   Mark.

Hi,

Thanks for the responce.

I'm already investigating this way.

I'm not sure but the with the B0 before each message i had an invalid midi message.

Actually i have set but not tested $B0 $65 $64 $00 $02 $07 $27 val $00 for the coarse tune in the custom output, the bc manager don't telling about any invalid message this time.

rgds,

Mark van den Berg

5 years 7 months ago

In reply to by anonyme-x22

I'm not sure but the with the B0 before each message i had an invalid midi message.

A full MIDI Control Change message consists of one status byte, $Bn (n = 0-F), followed by exactly two MIDI data bytes (each in the range $00-$7F): the first MIDI data byte indicates the Controller, the second MIDI data byte indicates the Value. (Any byte higher than $7F would be interpreted as a MIDI status byte, and would thus cancel any current incomplete message and start a new message.)
Optionally, according to the Running Status rule of the MIDI protocol, the status byte ($Bn here) can be left out if the status byte of the previous message was identical (so $Bn too here).

Perhaps you forgot one or more "$", e.g. before "B0"?
Or you had a Controller or Value byte higher than $7F?

i have set but not tested $B0 $65 $64 $00 $02 $07 $27 val $00 for the coarse tune in the custom output, the bc manager don't telling about any invalid message this time.

Presumably BC Manager doesn't complain about this because it results in a valid MIDI byte sequence.
However, under the Running Status rule of the MIDI protocol, this sequence will be interpreted as:
$B0 $65 $64
$B0 $00 $02
$B0 $07 $27
$B0 val $00
So this sequence won't constitute the RPN sequence you want to send.
For one thing, $64 must be the Controller of the second message, not the Value of the first message. Etc.

Hi,

Thanks for the responce.

You're rigth, but as i told you i just put a valid message not tested it.

As soon as i got some time i will check it.

Rgds,

 

anonyme-x22

5 years 7 months ago

Hi,

After testing:

I confirm the RPN can be done via custom output:

Here are the three universal RPN:

Pitch Bend : $B0 $65 $00 $B0 $64 $00 $B0 $06 val

Master Fine Tune :  $B0 $65 $00 $B0 $64 $01 $B0 $06 val7.13 $B0 $26 val 0.6

Master Coarse Tune :  $B0 $65 $00 $B0 $64 $02 $B0 $06 val

Rgds,