Smoothing knob input on the Daisy Field

Hello all,

I am trying to do something where if I press and hold Button A1 and then turn knob1 I will get a different output. What I am finding is that the knob always seems to be changing by some amount even if I am not rotating the knob. Is there a way to smooth this out so that I do not have constant change?

Thank you for your time and help.

Brett

https://www.norwegiancreations.com/2015/10/tutorial-potentiometers-with-arduino-and-filtering/

Scroll to the section ‘A Common Problem and Filtering’.

@tele_player

Thank you for the info.

I also created this function in Oopsy and it seems to work.

image

I ma need to tune the number after the delta and abs… but for now, that seems to work really well… Open to other thoughts as well to how best code this in oopsy.

Thanks again for the pointer.

Brett

1 Like

I had been going about this in a rather brute-force kind of way.
Started as an idea to easymode bit limiting: I was multiplying the audio stream by 1024, round, then divide by 1024. Instant bit depth spank.
SO, if I wanted to have a “stable” dial I would multiply the 0. to 1. float by 128 and round it.
This is far more CPU efficient but obviously doesn’t work for many situations.
Running a 5 millisecond history that ignores fluctuations is another option.

Have you tried the oopsy.ctrl.smooth2.gendsp ?

Hi @Manysounds,

No, I have not - I will check it out! Thank you for the idea… my “hack” seems to work but I’d rather have a more supported function. :slight_smile:

Thanks again for the idea.
Brett

@tele_player’s delta-latch filter is pretty good, and not really a hack. For your use case (to silence micro fluctuations) is better than using the oopsy smoothing filters (because the smoothing filters have exponential decay response). Though, you could route the param through the smoother first and then through the delta-latch in case that helps.

The @Manysounds method is a quantizer. You could also do it via [round 1/1024] or [round 0.001] etc. That might be more appropriate if actually quantized values are what you want.

(BTW if you’re working off the dev branch, there’s an addition for quantizing parameters to integer or boolean values by adding _int or _bool in the param name, e.g. [param knob1_int_foo @min 0 @max 10] will only ever output 0, 1, 2, … up to 10).

Graham

2 Likes