[PD] Rotary controllers in PD?

Ken Restivo ken at restivo.org
Sun Sep 9 23:38:58 CEST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sun, Sep 09, 2007 at 12:52:54PM +0200, Frank Barknecht wrote:
> Hallo,
> Ken Restivo hat gesagt: // Ken Restivo wrote:
> 
> > 	2's complement from 64/Relative (Binary Offset)
> > 	2's Complement from 0 / relative (2's Complement)
> > 	Sign Magnitude / Relative (Signed Bit)
> > 	Sign Magnitude / Relative (Signed Bit 2)
> > 	Single Value Increment/Decrement
> 
> What does "Single Value Increment/Decrement" do? Sounds interesting as
> well and may save some work.

That one outputs one number for each step you turn it up, and a different number for each step that you turn it down. The faster you turn it, the faster those numbers come flying in to ctlin, but the numbers themselves do not change.

> 
> > 	RPN Increment/Decrement Message
> > 	NRPN Increment/Decrement Message
> > 
> > I tried each of these and peeked at the MIDI stream to see what they do, and also at the output of PD's ctlin to see what might emerge. The "sign magnitude" and "2's complement" ones look pretty promising: they indicate which direction (up/down) and how fast you spin the thing.
> 
> Assuming you get -1 and 1 for down and up and any positive number for
> speed, you can multiply both numbers to get a stream of single
> numbers. Then you just accumulate these numbers using the standard

What I actually get with the 2's complements and sign magnitude ones, is a single bit that tells me direction (up or down), and a 6-bit number that tells me basically the velocity at which I spun the knob.

> accumulator idiom: 
>  
>  |
>  [+ ]x[f ]
>  |
>  [0\
> 
> (See the counting.pd tutorial that I posted on this list several times
> for details.)

Thanks, will try. 


> 
> > Now, to turn those numbers into a float between -1 and 0 that I can
> > use for controlling various parameters in PD.
> 
> I don't think this makes sense: What should 0 and -1 indicate? The
> rotary controller doesn't have any left and right borders that could
> be mapped to be -1 and 0. And I also don't think, mapping -1 to min
> and 0 to max speed makes sense either.
> 

I wasn't being clear. Only some of the parameters I want to control have a range between -1 and 1. Others have different ranges (i.e. from 0 to Nyquist frequency, etc.). My point being, I'm eager to find a way to use these rotary controllers, to break out of the limitation of having to divide whatever range I am faced with, into 128 measly discrete steps.

- -ken
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFG5Gfye8HF+6xeOIcRAjX1AJ0b3aBjLpGiSrgFX61pgtoehSoA2ACeIkkx
HiNBIaY89SJY7CzXu/MZ8mI=
=0KcB
-----END PGP SIGNATURE-----




More information about the Pd-list mailing list