Mario Lang <mlang@xxxxxxxxxxx> writes: > Spencer Russell <Spencer.Russell@xxxxxxxxxxx> 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@xxxxxxxxxxx> 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