The audio engine now tracks musical features: fast/slow energy EMAs, BPM
(median of beat intervals), a quiet/groove/peak mood with hysteresis, and
drop detection (fast energy diverging from slow right after a lull). An
output-side director, toggled from the control UI, switches presets every
16 beats (or ~14s without beats) and immediately on a drop, drawing from
mood-matched family pools (scenic for quiet, fluid/geometry for groove,
fractals/tunnels/fire for peak) while avoiding recent repeats. A manual
effect pick takes over and turns the director off.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Per-track start/end points (mm:ss inputs, 'set to current' buttons, draggable
handles on the waveform). Trim applied via audio.setTrim (seek to start, stop
at end) and pushed live to the playing track.
- Wider cards showing elapsed / total / remaining for the trimmed range.
- Waveform rendered per track: peaks computed in main via ffmpeg (mono 8kHz PCM
-> 400 normalized buckets, cached), drawn on a canvas with trim region +
playhead. New audio:peaks IPC + djv.peaks preload binding.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add interlude playlist entries with no audio that run their own scene for a set
duration, then auto-advance. Shares a unified timed-segment runner with the
inter-track gap (pause/resume via the Play button). New 'playSilence' output
message + audio.silence() to stop audio while keeping meters/recording alive.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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) <noreply@anthropic.com>
Replaces the fast instantaneous oscilloscope with a mirrored filled waveform
that scrolls over time like DJ-software waveforms; scroll rate follows the
visual speed control.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Scrolling text: font, size, weight, colour and movement effects (up/down, wave,
zoom, flash, rotate) rendered per-letter (and captured in recordings).
- Larger multiline text input.
- Pad bank: crossfade between pads (per-source gain ramps in the audio engine).
- Duration + remaining-time and progress bars for the playlist and the active pad,
via metadata probing and live progress reports from the output window.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Electron app with audio-reactive fractal/abstract visuals on an external
display. Dual-window setup (control panel + fullscreen output), 8 WebGL
scenes, audio from file/live input/system audio, image and scrolling-text
overlays.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>