A collection of time-sensitive functions aimed at controlling raw data over-time, such as Envelope and LFO.
For more detailed information, read: An introduction to orx-time-operators
Use the TimeOperators extension to tick
the operators, making them advance in time.
extend(TimeOperators()) {
track(envelope, lfo)
}
An Attack/Decay based envelope which takes into account the elapsed time to change a given value over time. It runs through two phases, Attack
and Decay
which can be changed to shape the output values.
val size = Envelope(50.0, 400.0, 0.5, 0.5)
if (frameCount % 80 == 0) {
size.trigger() // also accepts a new target value
}
drawer.circle(0.0, 0.0, size.value)
Generates oscillating waves between [0.0, 1.0]
tied to the frame rate.
val size = LFO(LFOWave.Sine) // default LFOWave.Saw
val freq = 0.5
val phase = 0.5
drawer.circle(0.0, 0.0, size.sample(freq, phase))
// or
drawer.circle(0.0, 0.0, size.sine(freq, phase))