Mario Lang <mlang@email-addr-hidden> writes:
> Spencer Russell <Spencer.Russell@email-addr-hidden> 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@email-addr-hidden> 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, MarioReceived on Tue Mar 1 20:15:10 2005
This archive was generated by hypermail 2.1.8 : Tue Mar 01 2005 - 20:15:10 EET