Files
orx/orx-time-operators
Edwin Jakobs b7ba6f6daa Feature variants (#376)
Migrate from buildSrc to build-logic. Setup feature variants.
2025-09-17 10:03:02 +02:00
..
2025-08-04 12:00:35 +02:00
2025-09-17 10:03:02 +02:00
2025-08-27 19:48:23 +00:00

orx-time-operators

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

Usage

Use the TimeOperators extension to tick the operators, making them advance in time.

extend(TimeOperators()) {
    track(envelope, lfo)
}

Envelope

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)

LFO

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))

Demos

DemoEnvelope

DemoEnvelopeKt

source code

DemoLFO

DemoLFOKt

source code