Commit Graph
22 Commits
Author SHA1 Message Date
lucianoandClaude Fable 5 c1b3f9c311 Onda 3D family: silk-ribbon wireframe of the live waveform
Two bands of fine strands (iso-lines of the band coordinate) flow across
the screen, compressing into moire at the folds like a 3D wireframe
surface. Hue ramps across each band through magenta (warm crest, cool
belly). The centre curve mixes drifting sines with the live waveform;
bass swells the band, beat brightens. Shader family index 57; in the
Auto VJ quiet/groove pools. wamp() now interpolates between waveform
samples to avoid stair-step artifacts (also smooths Onda Luminosa).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 10:24:45 +02:00
lucianoandClaude Fable 5 c40f804740 Cinematic audio-light families: Onda Luminosa and Spettro Neon
The live waveform (uWave) drawn as a horizontal beam of light with a
white-hot crest, lens flare, vertical light pillars on loud columns,
twinkling cross sparkles, rays converging on the vanishing point and two
bokeh layers; Spettro Neon puts the 32-band spectrum on the same stage as
mirrored neon bars with hot tips. Shader family indices 55-56 (44-54 are
the interactive families, which never reach the shader). Both added to the
Auto VJ pools.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 10:16:36 +02:00
lucianoandClaude Fable 5 ea31d68350 Interactive camera family: webcam motion pushes physical balls on screen
New 'Interattivo Palle' family (interactive.js): frame-differencing motion map
from the webcam, ball physics (push-away forces, collisions, beat kicks),
palette-tinted rendering with motion mist. Camera is requested lazily and
released when switching preset; mouse/touch fallback when unavailable.
Excluded from Auto VJ so the camera never turns on by itself.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 21:35:38 +02:00
b26b07e37f Two cinematic RGB families: Tunnel Neon (square neon fly-through) and Tempesta Plasma (erupting plasma column) (#1)
Co-authored-by: luciano <info@zappacosta.eu>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 14:31:10 +02:00
lucianoandClaude Fable 5 19aab4e61e Reels: timed recording with auto-stop
recStart now carries the format and an optional maxMs; the output stops
itself when the time is up (15/30/60/90s picker in the control UI), so a
reel doesn't depend on a manual stop.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 15:51:51 +02:00
lucianoandClaude Fable 5 48ac3dfa85 Auto VJ: selectable family pool (smart / all / custom checklist)
Three modes for where the director draws presets from: 'smart' keeps the
curated per-mood pools, 'all' removes the family restriction, 'custom'
limits picks to a user checklist (mood still shapes the speed variant,
with a fallback when the checklist exhausts it). Config persists in
localStorage and is re-pushed live while the director runs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 15:37:25 +02:00
lucianoandClaude Fable 5 46afd5d318 Auto VJ: a director that adapts the visuals to the playing track in real time
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>
2026-07-17 15:32:18 +02:00
lucianoandClaude Opus 4.8 26a5000b04 Playlist: scrub/seek playback by clicking-dragging the waveform
Pointer on the waveform now seeks: scrub the playhead on the playing track
(new 'seek' output message setting currentTime) or start a stopped track from
the clicked point (playIndex(i, fromTime)). Grabbing within ~10px of the green/
red handles still adjusts the trim in/out instead of seeking.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 16:45:00 +02:00
lucianoandClaude Opus 4.8 882dd4643a Playlist: per-track start/end trim, total/elapsed/remaining times, waveform cards
- 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>
2026-06-22 16:36:54 +02:00
lucianoandClaude Opus 4.8 4afaac08dd Playlist: visual-only 'Intermezzo' items (effects/text/image between tracks)
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>
2026-06-22 15:16:32 +02:00
lucianoandClaude Opus 4.8 dc37e4ab3f Playlist: fix video track restart; per-cue full effect picker (family + preset dropdowns)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 14:42:29 +02:00
lucianoandClaude Opus 4.8 35f7addb03 Scrolling text: 'side edges' mode with characters stacked vertically on both borders
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 17:18:19 +02:00
lucianoandClaude Opus 4.8 8db2578eba Richer scene cues: full text styling (direction/effect/font/size/color) and
image size/position, plus a redesigned scene editor UI

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 17:11:05 +02:00
lucianoandClaude Opus 4.8 4604b42f8f Scrolling text: vertical direction option (up / down) in addition to horizontal
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 17:01:40 +02:00
lucianoandClaude Opus 4.8 50b4223100 Playlist-video blend/opacity/fit controls + export/import playlist to file
- Blend mode, opacity and fit for videos played from the playlist (mix with visuals).
- Save/Load buttons to export/import a playlist (with scenes/cues) to a JSON file
  via native dialogs; the playlist already auto-persists between sessions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 16:52:55 +02:00
lucianoandClaude Opus 4.8 0f0accc67d 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) <noreply@anthropic.com>
2026-06-19 16:46:44 +02:00
lucianoandClaude Opus 4.8 1ae8fa81a7 Add video layer: load VJ video loops that blend with the visuals
Loads a muted looping video as a layer above the WebGL canvas with opacity,
blend mode and fit controls; included in MP4 recordings and droppable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 16:37:59 +02:00
lucianoandClaude Opus 4.8 8925fa50f9 Per-track scenes: auto-apply effect + text + image when a playlist track starts
Each playlist track gets an optional scene (🎬) bound to it: pick the current
effect, a ticker text and an overlay image. When the track plays, the scene is
applied automatically — a cue/queue per song. Scene image is a dedicated output
layer (also captured in recordings).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 16:08:50 +02:00
lucianoandClaude Opus 4.8 67a4a32dea Waveform: scrolling amplitude envelope (song-style) tied to the speed slider
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>
2026-06-19 15:58:46 +02:00
lucianoandClaude Opus 4.8 9653306a68 Text effects, pad crossfade, playback progress + per-track durations
- 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>
2026-06-19 15:44:28 +02:00
lucianoandClaude Opus 4.8 47728d0d2a Effects engine, SVG/VU/silhouette categories, pad bank, MP4 recording, dual-window UI
- Parametric effect engine: 23 shader families × palettes × variants (~2300 presets)
  with a filterable library and an effect sequence (auto-cycle by time or beat).
- Effect categories: fractals/abstract, dancing silhouettes, SVG/Image source
  (loads any SVG/image as a recolourable audio-reactive effect; 50+ bundled CC0 SVGs),
  and VU-Meter (32-band spectrum bars, analogue needle, stereo LEDs).
- Dual-window architecture: control panel + fullscreen output on an external display
  (reliable via simple-fullscreen); tabbed control UI (Audio, Effetti, Pad, Immagini,
  Testo, Registra, Schermo).
- Audio: file playback + live input + output device selection, per-band visual EQ,
  audio playlist (reorder, hotkeys, per-track play/pause, repeat).
- Pad bank: 5×4 launchpad with persistent assignments; pressing a pad stops the current.
- Overlays: slideshow images (resizable), two freely positioned/resizable logos,
  scrolling ticker text.
- MP4 recording of the composited output (visual + overlays + audio) via MediaRecorder
  + ffmpeg, with selectable aspect ratios (16:9, 9:16, 1:1, 4:3, 3:4, 21:9).
- App icon (.icns) and dock icon; author Dj LuZa.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 15:25:39 +02:00
lucianoandClaude Opus 4.8 b32ea47ae5 Initial commit: DJ Visualizer
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>
2026-06-19 12:44:17 +02:00