diff --git a/orx-envelopes/src/commonMain/kotlin/Tracker.kt b/orx-envelopes/src/commonMain/kotlin/Tracker.kt index d117c50f..00719d06 100644 --- a/orx-envelopes/src/commonMain/kotlin/Tracker.kt +++ b/orx-envelopes/src/commonMain/kotlin/Tracker.kt @@ -2,14 +2,13 @@ package org.openrndr.extra.envelopes -import org.openrndr.Program -import org.openrndr.animatable.Clock +import org.openrndr.Clock import org.openrndr.extra.parameters.DoubleParameter class Trigger(val on: Double, var off: Double, val envelope: Envelope) class TrackerValue(val time: Double, val value: Double) -abstract class Tracker(val program: Program) { +abstract class Tracker(val clock: Clock) { val triggers = mutableListOf() @@ -17,21 +16,21 @@ abstract class Tracker(val program: Program) { protected abstract fun createEnvelope(): T fun triggerOn() { - val t = program.seconds + val t = clock.seconds triggers.removeAll { !it.envelope.isActive(t - it.on, it.off - it.on) } - triggers.add(Trigger(program.seconds, 1E30, createEnvelope())) + triggers.add(Trigger(clock.seconds, 1E30, createEnvelope())) } fun triggerOff() { - val t = program.seconds + val t = clock.seconds triggers.removeAll { !it.envelope.isActive(t - it.on, it.off - it.on) } triggers.lastOrNull()?.let { - it.off = program.seconds + it.off = clock.seconds } } fun values(): List { - val t = program.seconds + val t = clock.seconds return triggers.mapNotNull { val tOn = t - it.on val tOff = it.off - it.on @@ -52,7 +51,7 @@ abstract class Tracker(val program: Program) { } -class ADSRTracker(program: Program): Tracker(program) { +class ADSRTracker(clock: Clock): Tracker(clock) { @DoubleParameter("attack", 0.0, 20.0, order = 1) var attack: Double = 0.1