From 0f0accc67d6517ab97e90ec3144044de6616cde9 Mon Sep 17 00:00:00 2001 From: luciano Date: Fri, 19 Jun 2026 16:46:44 +0200 Subject: [PATCH] Playlist supports video tracks (full-screen video + audio through the analyser) Audio and video files can both be added to the playlist; video tracks play full-screen with their audio routed through the analyser (visuals/waveform react), have duration/progress, and are included in recordings. Persisted. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/audio.js | 25 +++++++++++++++++++++++++ src/control.html | 4 ++-- src/control.js | 22 ++++++++++------------ src/output.html | 3 +++ src/output.js | 22 +++++++++++++++++++++- src/style.css | 13 +++++++++++++ 6 files changed, 74 insertions(+), 15 deletions(-) diff --git a/src/audio.js b/src/audio.js index b6fc058..814ef27 100644 --- a/src/audio.js +++ b/src/audio.js @@ -34,6 +34,9 @@ class AudioEngine { this.stream = null; // MediaStream when using live input this.mode = 'none'; this.onEnded = null; // callback fired when a (non-looping) track ends + this._videoSrc = null; // persistent source for the playlist video element + this._videoGain = null; + this._videoSrcEl = null; // Smoothed band values and beat state. this.gain = 1.0; // master reactivity multiplier @@ -145,6 +148,28 @@ class AudioEngine { this.mode = 'input'; } + // Play a playlist video track: route the given