diff --git a/src/main/java/heronarts/lx/modulator/LXPeriodicModulator.java b/src/main/java/heronarts/lx/modulator/LXPeriodicModulator.java index 0c4d365f..a5a606a1 100644 --- a/src/main/java/heronarts/lx/modulator/LXPeriodicModulator.java +++ b/src/main/java/heronarts/lx/modulator/LXPeriodicModulator.java @@ -264,10 +264,15 @@ protected final double computeValue(double deltaMs) { this.basis = rawBasis % 1.; if (this.restarted) { this.restarted = false; - } else if ((measure != this.lastMeasure) && !this.looping.isOn()) { - this.basis = 1; - this.finished = true; - this.stop(); + } else if (measure != this.lastMeasure) { + if (this.looping.isOn()) { + this.looped = true; + this.numLoops = (measure > this.lastMeasure) ? (measure - this.lastMeasure) : 1; + } else { + this.basis = 1; + this.finished = true; + this.stop(); + } } this.lastMeasure = measure; } else {