Param Smoothing?

AudioLemon's icon

Hello,

Just wondering what others do for smoothing param values going into Gen~. I hear a lot of grit when I change values with param messages. As an example I am controlling various amps [*] with param messages but it is gritty so instead I have to create more inlets and use the pack/line~ combo outside. Is there a better way - apologies for the basic question.

Peter McCulloch's icon
Max Patch
Copy patch and select New From Clipboard in Max.

I use history and mix to build something that's essentially slide~:

Peter McCulloch's icon

Note that the timing is going to get off for long values because it's an exponential decay. Somewhere around here I've got a correction formula...

AudioLemon's icon

Animal Peter - timing is not so important for this - a Haas Effect and a Phase Panner. Simple enough but should introduce to some of basic stumbling blocks :)

Cheers

AudioLemon's icon
Max Patch
Copy patch and select New From Clipboard in Max.

So I had a little time and I finished the Haas Panner. Even though it is not much I thought I would share it. I am never fully confident when sharing but it is a nice effect and works well for me. I made it for Live and there is simple presentation.

Tim Canfer's icon

Dear AudioLemon, thanks for sharing this. I was about to build a haas panner, but then found this! The patch is great and means that I have no choice but to get learning how to use gen~!

I hope that you don't mind if I use this to simplify into a single pot type panner to use the 0-0.7ms range to pan (for a mono track of course).

If so I will post if and when I complete and it works!

Christopher Dobrian's icon
Max Patch
Copy patch and select New From Clipboard in Max.

Re the original question, you can
a) instead of using a param, send your value to a line~ object outside of the gen~ and send that signal into gen~ via an in object, or
b) ramp to the new value over some number of samples within gen~.
Here's an example of the latter method, although it's probably more efficient to use the former method, because line~ is smart enough to stop calculating once it has arrived at its target value, unlike the gen~ method shown here.