From baef179914688ae0dc87c55e12ec24f81b67a3c1 Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Mon, 18 May 2026 15:32:24 -0400 Subject: [PATCH] cover-engine: fixed 30s disc-rotation rate (was 1 turn / whole track) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit trackTheta now spins one full turn every ROT_PERIOD=30s instead of a single rotation clamped across the entire song — far too slow on the ~3min trancenwaltzi cut. No clamp; the disc/string/lanes keep turning. Co-Authored-By: Claude Opus 4.7 --- pop/lib/cover-engine.mjs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pop/lib/cover-engine.mjs b/pop/lib/cover-engine.mjs index 62db369f6b..5955a7b489 100644 --- a/pop/lib/cover-engine.mjs +++ b/pop/lib/cover-engine.mjs @@ -47,8 +47,12 @@ export function makeVerletString(ctx, { W, H, playheadX, duration, segments = 72 const nsCB = new Float32Array(NS_N); nsCR.fill(255); nsCG.fill(232); nsCB.fill(150); // default nylon cream + // Fixed rotation RATE — one full turn every ROT_PERIOD seconds (was + // one turn across the WHOLE track, far too slow on a 3-min cut). + // No clamp: the disc keeps spinning for the whole track. + const ROT_PERIOD = 30; // seconds per 360° function trackTheta(at) { - return Math.PI * 2 * Math.max(0, Math.min(1, at / Math.max(0.001, duration))); + return Math.PI * 2 * (Math.max(0, at) / ROT_PERIOD); } function withRotation(theta, fn) { ctx.save(); -- 2.51.2