porres / pd-else

ELSE - EL Locus Solus' Externals for Pure Data
Do What The F*ck You Want To Public License
296 stars 35 forks source link

else/knob needs a +1 / -1 actual rotary limitless encoder that whenever you turn right, sends out +1, whenever you turn left, sends out -1. #1933

Open esaruoho opened 1 year ago

esaruoho commented 1 year ago

there was an original claim that there's a limitless rotary encoder in knob and all i gotta do is click on the help and it's there.

there is no mention of Rotary or Endless in the documentation, and after bunches of back'n'forth in comments, it turns out there is no such thing available.

https://www.facebook.com/groups/puredata/posts/10160354837214495/

porres commented 1 year ago

so, is that really it? whenever you turn the knob, no matter how fast you turn it, like no matter what the delta is, you always get either "1" or "-1"? Or if you turn it really fast/wider you end up having a faster increment or decremet?

I had to stop and think where have I seen such a thing, and maybe the phone gain knob of my sound card is like that. Do you have any other examples? What exactly are you trying to implement in Pd with this?

esaruoho commented 1 year ago

Rotary encoders would tend to send +1 on every turn to the right and -1 on every turn to the left. So if u turn "Five steps" to the right you would be sending +1 Five times. Not +5. Instead Five separate instances of +1. I hope that helps somewhat as info

esaruoho commented 1 year ago

I have had multiple devices midicontrollers with Rotary endless knobs and basically they send 63 and 64 out incessantly as many times as you turn it. This is for having incremental control over pitch parameters, like a radio tuning knob.

esaruoho commented 1 year ago

One device that i used to have is the Faderfox UC4 which has Rotary endless encoders and those r awesome

porres commented 1 year ago

and what do you need this in a patch for? you expect it to behave like a rotary knob by allowing the user to click and drag it around for that, right? Like, it would be the same or similar to using knob with its 'circular' mode, huh?

esaruoho commented 1 year ago

and what do you need this in a patch for? you expect it to behave like a rotary knob by allowing the user to click and drag it around for that, right? Like, it would be the same or similar to using knob with its 'circular' mode, huh?

For Extremely slow pitch changes kind of like tuning a radio. I sold the uc4 and dont have a single Rotary encoder anymore in my setup so being able to have one or more within PD would be amazing. The problem with current circular is that it does not send +1 -1 it instead sends decimals all over the place, which i cannot use for anything.

ben-wes commented 1 year ago

@esaruoho : I use the rotary knobs of the Akai Mini Mk3 quite a lot and when I made patches for them, I realized that they not only send -1 and +1 (which are then encoded as 127 and 1), but also bigger values if you rotate faster. Decoding is easily done with a moses 64 where the left output is the inc values and the right output with a - 128 is the dec values.

With a little trick and an underlying vsl, you can also create the endless rotary behavior with the current else/knob. I'm pasting a little patch with this kind of abstraction below (didn't try with the Akai since I don't have it here right now).

@porres : Maybe this kind of vertical or horizontal interaction might be relevant. The relative values might also be an option. But on the other hand, this works quite simply - so not sure if additional features are necessary?

EDIT: replaced pd syntax with zip link and picture

See experiment_hidden_vsl.pd in knob_experiments.zip

image

ben-wes commented 1 year ago

... and this simpler version outputs relative and absolute values with the circular else/knob and its regular interaction:

EDIT: added change after i to actually imitate midi behaviour (where 0 isn't sent in my case here). EDIT2: to cover the integer range of 0..127, I changed the knob range to 0..128. This avoids +2 and -2 steps when stepping from 0 to 126 or the other way. EDIT3: replaced pd syntax with zip link and picture

See experiment_else_circular.pd in knob_experiments.zip

image

porres commented 1 year ago

not sure if additional features are necessary?

I was wondering the same

porres commented 1 year ago

(sorry for the pd syntax spam - don't know how to properly share patches here)

please upload it as a zipped file!

ben-wes commented 1 year ago

Ah, .zip makes sense - sorry, I didn't see that. Only tried .pd and .txt.

Both patches compressed here now:

porres commented 1 year ago

yup, there you go, kind of what I had in mind