BCR2000/MoTet Sysex/NRPN/Tetra

5 posts / 0 new
Last post
Jeeves
Jeeves's picture
BCR2000/MoTet Sysex/NRPN/Tetra

Hello Mark and hello all...

Newer and proud owner of BCR2000 talking to a DSI Tetra.  Have been using BC Manager to develope a library of presets for myself, and also using the SynthGraphics Tetra sysex files for BCR2000 available here:

http://www.synthgraphics.com/sysex/index.html

 

Issue I'm having is related to the BCR talking to Tetra via NRPN.  Simple example of trying to change filter cutoff with a rotary encoder and getting the right "mode" to work.

 

The BCR with the MoTet templates use NRPN and a "Data Button" +1 -1 approach so as to pickup the Tetra control where it is, but the Tetra does not seem to accept this same type of encoding as it does not react to the +1 or -1 BCR is sending.  In hex it looks like this:  $63 $00   $62 $0F   $61 $01.

 

If I change the BCR to use ABS14 mode, the Tetra reacts, BUT, using the filter example, the value the Tetra takes is immediately what was sent from the BCR, and this causes an audible "jump".

 

If I use MIDI Monitor to trace the Tetra's NRPN activity when I move it's encoders, in an effort to diagnose what it might need, it uses a the same NRPN header but sends "Data Entry" coarse and fine values.  So I'm guessing the Tetra is tracking the encoder position internally, since it's not using the Inc/Dec function.  In hex it looks like this:  $63 $00    $62 $0F   $06 00    $26 $22

 

Any ideas as to how to make this work?

MANY thanks!

Jeeves

Mark van den Berg
Mark van den Berg's picture

If I change the BCR to use ABS14 mode, the Tetra reacts, BUT, using the filter example, the value the Tetra takes is immediately what was sent from the BCR

Isn't this exactly what you want?

and this causes an audible "jump".

If the difference between the encoder's Value1 and Value2 parameters is big, the BCR by default increases the Resolution parameters for fast rotation. This might explain the audible jumps you're getting.
So have you tried lowering these Resolution parameters? (In BC Manager, they're on the General tab of the encoder dialog box.)
See section 17.3 of BC MIDI Implementation.pdf.
(And section 16.4 deals with NRPN messages for encoders.)

Hope this helps,
   Mark.

Jeeves
Jeeves's picture

Thanks for your reply!!  I'll take a look at the PDF/Chapter you recommended.  Not sure how I missed it, but I didn't realize there was such a thorough manual on BC Manager, THANK YOU!!!

Thinking this through...  I THINK the jump I'm getting is because of the delta between the Tetra's preset filter position, and the position of the BCR encoder.  

The MIDI Monitor trace of the BCR, when I'm in Abs14 mode, shows Value1 at 0 (and stays there), and Value 2 incrementing a single digit at a time as one might expect.

As example, say I select a Lead preset on the Tetra, play it for a while with the BCR, and have the filter wide open (127) and a medium level of resonance (60).  Then, without moving the BCR filt/res encoders, I select a bass preset on the Tetra that has the filter mostly closed (20) and reso way down (10), when I then turn the BCR filter encoder counterclockwise, won't it's starting transmitted position be 127 and cause the Tetra filter to "jump" to that value?

Thanks!

J

Mark van den Berg
Mark van den Berg's picture

The MIDI Monitor trace of the BCR, when I'm in Abs14 mode, shows Value1 at 0 (and stays there), and Value 2 incrementing a single digit at a time as one might expect.

The terminology is becoming confusing here, so let's clear that up first:
In BC MIDI Implementation.pdf and BC Manager I use Value1 and Value2 for the (fixed) limits of an encoder's value; usually Value1 is the minimum and Value2 the maximum, but this can be reversed.
However, what you're talking about here are DataMSB (the data byte in the Data Entry MSB ($06) Control Change message) and DataLSB (the data byte in the Data Entry LSB ($26) CC message). Together DataMSB and DataLSB constitute the 14-bit NRPN value.
The BCR's behavior you're describing is indeed as expected.

say I select a Lead preset on the Tetra, play it for a while with the BCR, and have the filter wide open (127)

A side-remark: if 127 is the max. value of a parameter, you don't need absolute/14 mode: absolute suffices.

when I then turn the BCR filter encoder counterclockwise, won't it's starting transmitted position be 127 and cause the Tetra filter to "jump" to that value?

Yes, this will always happen if the Tetra doesn't automatically output all the parameters of a newly selected preset.
This is one of those infamous, very common bidirectionality problems.

When you send a Program Change message to the Tetra, does it switch to that preset?
If so, you can match individual BCR presets to individual Tetra presets. (But of course this is very 'expensive' in terms of BCR presets.)
You can then make the Tetra respond to a preset change on the BCR by enabling the BCR preset's Request setting and putting the correct Program Change message in the 'LEARN output'. (In BC Manager, see the Settings and LEARN output tabs of the preset dialog box.)
The BCR remembers the latest values of all buttons and encoders in all of its 32 presets, so these are restored upon a preset switch.
Furthermore, the BCR outputs all button/encoder values in a preset upon selection of that preset, provided that the Snapshot setting of that preset is on. (In BC Manager, Snapshot is also on the Settings tab of the preset dialog box.)

You may even be able to make things work in the other direction if the Tetra outputs a Program Change when you switch to a preset on the Tetra. Helpfully, the BCR also outputs a preset's snapshot when the switch to that preset has been triggered by an incoming Program Change message.

Hope this helps,
   Mark.

Anonymous (not verified)
Anonymous's picture

Thanks, Mark, you've given me a wealth of good info to digest.  I appreciate your thoughtful, detailed response!  Have to think some more about what I'm doing and how to approach it.

Regards,

J