From aa57d5d8eb50a445ae1034ab00d2abedd3149e85 Mon Sep 17 00:00:00 2001 From: Marcin Date: Sat, 25 Jul 2026 09:32:34 +0200 Subject: [PATCH] buffering mod length --- .../main/java/com/github/thething/chipamp/mod/Sampler.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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;