openAVproductions / openAV-Luppp

Luppp is a live performance tool, created by OpenAV productions.
http://openavproductions.com/luppp
GNU General Public License v3.0
258 stars 44 forks source link

Smoothing #226

Closed georgkrause closed 6 years ago

georgkrause commented 6 years ago

This PR introduces some working on the zipper noise issue #223.

Current state: All faders are smoothed pretty good. Please test this.

Target of this PR are all continuous controls. So knobs are missing yet. But we could apply this math pretty simple to all places.

Feedback of all kinds welcome.

harryhaaren commented 6 years ago

Hey @georgkrause, thanks for the PR. Looks fine to me - I'd like to test before merging. Is there a noticeable delay in the fader working? I like to be able to "chop" a continuous sound without hearing the smoothing (that's my lo-fi test for too much smoothing going on...)

We should probably break that parameter out to a global variable? That way we could easily adjust the smoothing factor and allow users the "chop" style faders if they wish, while providing a smoother value by default? Thoughts?

georgkrause commented 6 years ago

Thank you for the feedback. At first: Dont merge, i am not ready with this. I wont to implement the same method to all knobs, too.

I tried different values for about an hour and this is, in my opinion, the best choice. In fact its quite difficult for me to test because hearing different volumes that precicely is a hard task. At least it feels right for me. From my point of view its more important to have zero noise than zero "fader latency". But i am open for discussions on this. Anyway, moving the parameter to a global var sounds good for this, its noted!

georgkrause commented 6 years ago

Well, at this point all continous controls have the same smoothing algorithm implemented. I changed the SMOOTHING_CONST to 0.025 because it sounds better for me. If someone has time to test, i would be happy about some feedback.

Next step will be smoothing for discrete controls, eg all buttons. I still need to think about how to do this.

georgkrause commented 6 years ago

This should be done now, everything should be smoothed out. I did a lot of testing, but please verify its working as expected.

georgkrause commented 6 years ago

I did an rebase, hopefully this is still fine

georgkrause commented 6 years ago

I used this for a while now and from my point of view its ready to merge.

Smoothing of discrete values is still missing, but this would be based on these changes and i dont want to blow this up even more. So i remove "Needs testing", please merge ;)