Allows an audio parameter to be controlled over time with sample accurate curves.
The Param class enables expressive control over variables that control audio::Node 's with a Timeline-esque API. It supports appending 'ramps' (audio animations) and maintains these in an internal timeline that is evaluated from the audio thread. You can also set a Node as the 'processor' with Param::setProcessor() , enabling you to control it with an arbitrary signal.
A Param is owned by a parent Node , from which it gains access to the current Context . This is a necessary step in making it sample accurate yet still controllable in a thread-safe manager on the user thread.
Ramp Events should not overlap, or you may get discontinuities in the evaluated curve. This could potentially happen when using multiple
appendRamp()
calls. Instead, use
applyRamp()
and set
Options::beginTime()
accordingly, which will remove any Events that would otherwise be overlapping.