Feature request: Midi filter to smooth cc data

feature-request
Tags: #<Tag:0x00007f80dd75bf60>

#1

hi @brad
bit of a biggie, but it’d be a really nice feature to be able to smooth out jittery midi cc messages from our aging sliders, knobs and pedals.

just putting it out there.
does anyone else feel the need for something like this?

cheers,
Neil


#2

I need to be able to smooth out jittery midi cc messages from my aging fingers. Just saying…:laughing:

I don’t know if a filter would correct aging contacts and dirt, but if possible, I’m in.

Corky


#3

Servosol is great at curing such problems. :slight_smile:


#4

I built a ReaJS script some time ago that smoothes jumps in CC messages, but not sure if that will cure your “slider jitters” - can you describe how that manifests itself and what you want the output to be? Is it just small value changes that you want suppressed or do you want to smooth out larger jumps by creating “ramps” inbetween? If it is the latter, my script could help…

Cheers,

Torsten


#5

hi,
cheers for the offer of the code!
it generally stays where it’s put.
it’s the jumps i get when i move it slowly. at certain points it’ll leap forward 10 or 20 values or even jump behind!
i think your script can help, and it’ll certainly be a great starting point for me to tinker with.


#6

OK - here you go:

midi_CC_smoother.zip (1.6 KB)

when you load this script into ReaJS, it gives you three sliders:

  • one to select the CC number
  • next to set the milliseconds per step
  • next sets the step increment

So whenever it receives a change in the CC value, it looks at the current value and then creates a “stair” from current to new state with “increment” being the height of every step and “milliseconds” being the length of the step. Best smoothing is of course achieved setting increment to 1. With the “ms per Step” value, you essentially set the speed of the “slide” to the new value.

If you set “ms per Step” to 0, there will be no smoothing at all.

As far as I recall, it works on MIDI channel 1 only - you’ll have to use Cantabile route properties for any MIDI channel fiddling…

Cheers,

Torsten