Control Signal smoothing/interpolation in gen~
flaviogaete
6月 03 2023 | 3:31 午後
Hi there,
I hope it's OK: I'm starting a new post afresh to tackle/study the topic of smoothing control signals in gen~. I'm picking up/consolidating from a couple of posts that have a lot of useful info on this:
https://cycling74.com/forums/parameter-smoothing-in-gen
https://cycling74.com/forums/translate-msp-line-into-gen-counter
If there are any other useful posts that I've missed please kindly let me know.
I've gone ahead and compiled the various examples into a patch for easy comparing:
In this patch, you'll find:
- Gen example "dynamic smoothing"
- 1Pole filtering signal (I think? Or some equivalent thereof)
- A couple of 3pole variations
- A "line" example
- A "slide" example
(Thank you everyone who has contributed to this BTW! Super useful stuff!)
I have a couple of observations/questions then:
1 - Are there other examples or techniques that I may be overseeing worth including in this study/discussion?
2 - My personal concerns (for finding "the ideal object to use", though I understand that these may be implemented in a plethora of applications) are for real-time, i.e. human-made, sweeps, etc. (I haven't yet delved into what the needs might be for generative applications) -- be it volume changes, filter sweeps, pitch bends, what have you. With that said, my priorities for choosing are:
- How "musical" are the changes in sound?
- How CPU-demanding is the object?
In that context (I hope this is helpful for others), I found the 3-pole to be the more "musical" one (e.g. doing slow, soft fades, thinking of phrasing, etc.); the "slide" example, the 'cheapest/simplest' implementation/compromise (though I wouldn't know how much of a difference there is with the other types, in terms of CPU requirements); the "1pole" and "dynamic" examples were still "zippery", but perhaps one could spend more time tweaking them (especially the "dynamic" one).
3 - Is there a way to test the CPU performance of a particular object/algorithm? I know of "adstatus cpu", but with a current Mac that's kind of a moot point as it just reads "0"; I'm more concerned about developing for other users who might not be able to afford the fastest computers, etc. I guess I should do my search on this topic in the forum, but if anyone has any pointers, it will be much appreciated!
I think that's it for now. If anything else comes up (questions or new discoveries), I'll see to edit this post. I hope this is helpful!