Files
led-sync-studio/.planning/REQUIREMENTS.md
Claude 273015a6eb docs(01-02): complete UDP protocol plan — LedCommand struct, AsyncUDP two-queue pattern
- SUMMARY.md with protocol schema documentation for Phase 2 Pi-side reference
- STATE.md: advanced to plan 4/4, progress 50%, decisions logged
- ROADMAP.md: phase 1 updated (2/4 summaries complete)
- REQUIREMENTS.md: FW-02 and FW-05 marked complete
2026-04-03 13:27:33 +02:00

4.5 KiB

Requirements: LED Sync Studio

Defined: 2026-04-03 Core Value: Songs mit LED-Animationen choreografieren und abspielen — der Nutzer baut Timeline-basierte Lichtshows zu seiner Musik.

v1 Requirements

Firmware

  • FW-01: ESP32-C3 treibt WS2801 (160 LEDs, SPI) und SK6812 (300 LEDs, RMT/RGBW) gleichzeitig an
  • FW-02: ESP32-C3 empfaengt JSON-Kommandos ueber UDP und fuehrt benannte Animationen aus
  • FW-03: Mindestens 8 Built-in-Animationen (Chase, Pulse, Rainbow, Strobe, Color Wash, Breathe, Sparkle, Gradient Sweep)
  • FW-04: Jede Animation akzeptiert konfigurierbare Parameter (Farbe/RGBW, Speed, Intensitaet)
  • FW-05: Beide LED-Zonen (Schrank/Wand) sind unabhaengig steuerbar ueber das JSON-Protokoll

Audio

  • AUD-01: User kann lokale Songdateien laden und abspielen (MP3, FLAC, WAV)
  • AUD-02: User kann Songs pausieren, fortsetzen und an beliebige Stelle springen (Seek)
  • AUD-03: System-Audio wird ueber PipeWire/PulseAudio fuer Beat-Detection erfasst
  • AUD-04: Beat/Onset-Detection erkennt Schlaege aus dem Audio-Stream in Echtzeit

Choreografie

  • CHR-01: User kann an einer Stelle im Song stoppen und eine Animation mit Parametern zuweisen
  • CHR-02: User kann Timing-Marks setzen durch Tastendruck waehrend der Wiedergabe (Tapper)
  • CHR-03: User kann Animationsloops definieren (N-mal wiederholen oder bis zum naechsten Event)
  • CHR-04: Choreografien koennen als JSON-Dateien gespeichert und geladen werden
  • CHR-05: Choreografie-Playback sendet Animationskommandos zeitgenau an den ESP32

Live Reaktiv

  • LIVE-01: User kann in den Live-Reaktiv-Modus wechseln (Beat-Detection -> Animation-Trigger)
  • LIVE-02: User kann Empfindlichkeit der Beat-Detection kalibrieren

Terminal UI

  • UI-01: Textual TUI mit Cyberpunk/Neon-Aesthetic (leuchtende Farben, dunkler Hintergrund)
  • UI-02: Timeline-Ansicht mit horizontaler Zeitachse und Animationsbloecken pro Zone
  • UI-03: Event-Liste-Ansicht (tabellarisch: Zeitpunkt, Animation, Parameter, Zone)
  • UI-04: Transport-Controls (Play, Pause, Stop, Seek) in der UI
  • UI-05: Animations-Panel zum Auswaehlen und Konfigurieren von Animationen
  • UI-06: App funktioniert vollstaendig ueber SSH

Spotify

  • SPT-01: User kann Spotify als Audio-Quelle nutzen (via System-Audio-Loopback oder Spotify Connect)

v2 Requirements

Editor Polish

  • EDIT-01: Undo / Redo fuer alle Editor-Aktionen
  • EDIT-02: Per-Block Transition-Effekte (Crossfade, Dissolve zwischen Animationen)
  • EDIT-03: Auto-Beat-Detection Timing Marks (aubio analysiert Song, setzt Marks automatisch)
  • EDIT-04: Audio-Waveform-Anzeige auf der Timeline

Reactive Advanced

  • REACT-01: Zone-aware Beat-Routing (Bass -> Schrank, Treble -> Wand)
  • REACT-02: Animation-Preview im Terminal (ASCII LED-Simulation)

Out of Scope

Feature Reason
Frame-Streaming vom Pi zum ESP ESP fuehrt Animationen lokal aus; WiFi-Jitter macht Frame-Streaming unzuverlaessig
Web-UI / Browser-Interface Terminal-SSH ist das Alleinstellungsmerkmal
Mehrere ESP32s Ein ESP32-C3 steuert beide Strips; kein zusaetzlicher Controller
Cloud-Sync / Multi-User Lokales Tool, keine Netzwerk-Abhaengigkeit
DMX / E1.31 / sACN Protokoll Out of hardware scope; xLights deckt das ab
2D-Matrix-Effekte Hardware ist 1D (Strips), keine Matrix
xLights .xsq Import/Export Komplexes Format, unklarer Bedarf
Scripted Effect DSL Power-User-Feature, nicht fuer v1

Traceability

Requirement Phase Status
FW-01 Phase 1 Complete
FW-02 Phase 1 Complete
FW-03 Phase 1 Pending
FW-04 Phase 1 Pending
FW-05 Phase 1 Complete
AUD-01 Phase 2 Pending
AUD-02 Phase 2 Pending
AUD-03 Phase 2 Pending
AUD-04 Phase 2 Pending
CHR-04 Phase 2 Pending
CHR-05 Phase 2 Pending
CHR-01 Phase 3 Pending
CHR-02 Phase 3 Pending
CHR-03 Phase 3 Pending
UI-01 Phase 3 Pending
UI-02 Phase 3 Pending
UI-03 Phase 3 Pending
UI-04 Phase 3 Pending
UI-05 Phase 3 Pending
UI-06 Phase 3 Pending
LIVE-01 Phase 4 Pending
LIVE-02 Phase 4 Pending
SPT-01 Phase 4 Pending

Coverage:

  • v1 requirements: 23 total
  • Mapped to phases: 23
  • Unmapped: 0

Requirements defined: 2026-04-03 Last updated: 2026-04-03 after roadmap creation