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

BC Manager gurus

2013-12-13 by Brent Busby

This is long and unwieldly to explain:

If I program a knob on the BCR to adjust a NRPN, it sends the NRPN every 
single darn time the value changes, rather than just sending the NRPN 
and stepping the value up and down with Midi CC#6 messages thereafter 
(which the Midi spec lets you do and save lots of bytes).  That means 
that when I twist the knob, this gets emitted (synth is on Midi channel 
9, which is 8 in hex numbered from zero):

B8 63 00
B8 62 6E
B8 06 0C

B8 63 00
B8 62 6E
B8 06 0D

B8 63 00
B8 62 6E
B8 06 0E

B8 63 00
B8 62 6E
B8 06 0F

B8 63 00
B8 62 6E
B8 06 10

...etc, on and on.

Basically, looking at this, it sends B8 (Midi CC to channel 9)...
then 63 (Midi NRPN LSB)...
then zero because the LSB is not used here...

Then B8 again (Midi CC to channel 9)...
then 62 (Midi NRPN MSB)...
then 6E (the actual NRPN we're selecting, 6E hex, 110 decimal)...

Then B8 again (Midi CC to channel 9)...
then 06 (common vanilla data entry slider CC)...
then whatever the current data entry slider value is as the knob turns.

That's what we're seeing above.

Here's the dilemma:

I do understand the intention of Behringer in doing it this way.  It 
makes it so you can turn more than one knob at once, and the receiving 
synth can still understand all of the data coming into it even though 
it's having more than one of its parameters adjusted at the same time.

To explain, NRPN's allow you to just send the first two lines:

B8 63 00
B8 62 6E

only once, and then continuously adjust with a stream of the third line 
by itself.  So you would use the six bytes you see above to select a 
parameter on the synth (such as filter cutoff), and then from there on 
any incoming data entry slider messages will adjust that parameter 
without you having to send the six NRPN bytes again.  In other words, it 
remembers the parameter you last selected, and from there, Midi CC#6 can 
do all the work.

But a knob controller wants to be able to let you twist knobs freely and 
adjust more than one parameter at a time, which would lead to things 
getting blended to together in the data stream, and it's probably just 
easier for Behringer to make a NRPN identify itself in full every time a 
parameter is adjusted just to keep confusion down for the receiving 
synth, and to encourage better realtime tweaking.

However, I'm trying to do this on an Ensoniq ESQ-1, a synthesizer from 
the late 80's.  It was actually one of the very first synthesizers to 
even support remote editing with NRPN's.  As with any bleeding edge 
feature in anything, its implementation barely works.

In the ESQ-1, all of this excessive selecting and reselecting the 
parameter is just making the data stream thicker and confusing the CPU. 
Ensoniq probably never imagined that people would someday want to be 
able to blend streams of multiple NRPN's on the same transmission. 
After all, that's why the Midi spec says you can just select once and 
edit with data entry slider CC's afterward -- because they figure you'll 
do that, rather than sending the full NRPN parameter select for every 
single byte-step of the parameter's value.  We today in our world of 
knob controllers see the value of doing it, but they probably didn't.

This causes the ESQ-1 to behave erratically and sometimes soft-reset 
itself.  The data stream is just too thick, and it can't keep up with 
it, especially with all the parameter selecting and reselecting and 
re-re-selecting it's telling the ESQ-1 to do every six bytes or so.

So the real question is, is there any way I can use the BC Manager 
software to program the BCR2000 to send a NRPN once, and then adjust 
with bare data entry CC#6 messages thereafter, even if this means I lose 
the ability to twist multiple knobs simultaneously?  I realize that the 
ESQ-1 is one of those synths that won't realtime respond to patch 
editing anyway (you have to replay the key to hear the changes), but 
that's fine.  I just want remote editing.

Sorry about the length of the post.  I tried to phrase all of this in a 
way that conveyed the information more briefly a couple of different 
times, and generally failed, so at least here you've got all the facts.

Basically, I want to setup a knob on the BCR to act like the originally 
intended use of Midi NRPN's:

Send NRPN LSB and MSB.

Then send stream of data entry slider (CC#6) messages to adjust until 
finished with that parameter.

Only send another NRPN when I want to twist another dial.


Is there any way to do all that (phew!) on the BCR2000?

-- 
+ Brent A. Busby	 + "We've all heard that a million monkeys
+ Sr. UNIX Systems Admin +  banging on a million typewriters will
+ University of Chicago	 +  eventually reproduce the entire works of
+ James Franck Institute +  Shakespeare.  Now, thanks to the Internet,
+ Materials Research Ctr +  we know this is not true." -Robert Wilensky

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.