[linux-audio-user] Behringer BCA 2000 - has anyone tried it ?

Mario Lang mlang at delysid.org
Tue Mar 1 12:04:20 EST 2005


Mario Lang <mlang at delysid.org> writes:

> Spencer Russell <Spencer.Russell at oberlin.edu> writes:
>
>> On Tue, Mar 01, 2005 at 09:04:02AM -0500, Joe Hartley wrote:
>>> On Tue, 01 Mar 2005 11:02:31 +0100
>>> Mario Lang <mlang at delysid.org> wrote:
>>> > 
>>> > Yes, it is, and I consider this behaviour the only sensible.
>>> > For me, the other dials (those that wrap) are broken, and
>>> > they are a serious accessibility hassle.
>>> 
>>> I'm with Mario on this.  The last thing I'd want to have happen is to
>>> have a parameter wrap from full off to full on because the controller
>>> sent out a value of 3..2..1..0..127.
>>> 
>> I think I would prefer the dial to send relative information as
>> to what direction it's turning, so that you can have more than
>> 127 different values controlled by one knob. It's not exceedingly
>> difficult to take a wrapping controller and make it functionally
>> the same, but if the encoder just stops at 0 and 127, it makes
>> that impossible.
>
> Er, no, thats actually very easy, just reset its value to 1 whenever it hits
> 0.  You can write to any controller of the BC{R,F}2000 to set its current
> value.

And here is real code to illustrate what I ment, tested, and works:

(
var value, oldValue;
value=0; oldValue=64;
c=BCF(\r1, 1, [0,127,\lin,1,64], {|val|
	value = value + (val-oldValue);
	oldValue = val;
	if (val == 0) {
		c.value=(oldValue=2);
	} {
		if (val == 127) {
			c.value=(oldValue=125);
		}
	};
	value.postln;
})
)

And there you go, a software-based inifinite rotary.

-- 
CYa,
  Mario



More information about the Linux-audio-user mailing list