diff --git a/chipamp-player/src/main/java/com/github/thething/chipamp/mod/Sampler.java b/chipamp-player/src/main/java/com/github/thething/chipamp/mod/Sampler.java index 9c80677..af000df 100644 --- a/chipamp-player/src/main/java/com/github/thething/chipamp/mod/Sampler.java +++ b/chipamp-player/src/main/java/com/github/thething/chipamp/mod/Sampler.java @@ -51,6 +51,8 @@ public final class Sampler { private Mod mod; private int sampleCount; + private long modLengthMicros; + private int sequenceIndex; private int rowIndex; private int tickIndex; @@ -631,8 +633,7 @@ private void applyMidRowEffects() { * @return the module's total playback duration in the requested unit */ public long getModLength(TimeUnit unit) { - long milliseconds = sampleCount * 1_000L / config.samplingRate * 1_000L; - return unit.convert(milliseconds, TimeUnit.MICROSECONDS); + return unit.convert(modLengthMicros, TimeUnit.MICROSECONDS); } /** @@ -918,6 +919,7 @@ private void rebuildIndex() { } this.sampleCount = sampleCount; + this.modLengthMicros = sampleCount * 1_000L / config.samplingRate * 1_000L; } finally { config.loopDetectionEnabled = loopDetectionEnabled; config.loggingEnabled = loggingEnabled;