Encoder rotary knob question for BCR2000

3 posts / 0 new
Last post
JeramyMT
JeramyMT's picture
Encoder rotary knob question for BCR2000

Hello!  I'm a n00b, but am reading through the BC Manager and MIDI implementation manual as I have time to try to better grasp programming the BCR2000 for use as a MIDI control surface for Cubase/Nuendo.

I've programmed a knob with a custom output that looks like the following:

ifp $99 $0C $64 ifn $99 $0D $64

This works great for something like select previous or next event inside of my DAW.  But -- I'm wondering if there could be a way to setup a knob to do different playback speeds.  So the knob defaults to a value and if you turn the knob to the right a little, it outputs $0C (triggers 1/8x playback forward), when you hit the next range to the right it ouputs $0D (triggers 2x playback forward), and when you turn the knob back to the default value (or within a range) it turns off.

When you turn the knob to the left from the default value it outputs $0E (triggers 1/3x playback reverse), when you hit the next range to the left it outputs $0F (tiggers 2x playback reverse).

Is something like this possible with an encoder?  If I understand correctly, this would require the encoder to send different 'note off' messages for different ranges of values depending on how far you turn the knob and having a default range in the middle that stops playback.

I'll keep looking in the manual as I realize that is where greater understanding will (hopefully) come from but I thought if someone knows whether or not this is even possible -- it may save me time in how I approach programming this unit and what it can do.  Thanks in advance.

Mark van den Berg
Mark van den Berg's picture

Tricky.

Of course, to assign $0C, $0D, $0E and $0F to an encoder sequentially is easy: all you have to do is set the arguments of the ".minmax" statement (Value1 and Value2) to $0C and $0F, and put "val" in the appropriate ".tx" statement. You can then associate the desired amount of rotation with this range via a ".resolution" statement (in this case you probably want a low value); see section 17.3 of BC MIDI Implementation.pdf.

However, I can't immediately see how you would set up an encoder to output these values in the order you're suggesting: $0F $0E ...(??) $0C $0D.

I've looked at the BCR's "rel..." and "ntimes" facilities (cf. BCMI sections 14.6.2/5), but if I understand things correctly, these can't do what you want, but you might want to look at those yourself anyway.

I don't know how many different playback speeds Cubase/Nuendo defines, but can't you simply hard-code each playback speed under a particular button? Yes, this will cost you quite a few buttons, but the BCR does have a lot of them: each preset has four encoder groups, each of which allows you to define eight separate "buttons" via the "push" functions of the BCR's push encoders.

Hope this helps,
   Mark.

JeramyMT
JeramyMT's picture

Thank you!  I appreciate the help.  That gives me some new ideas. smiley