[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