Files
led-sync-studio/.planning/phases/02-app-core-audio/02-DISCUSSION-LOG.md
2026-04-03 13:53:54 +02:00

2.0 KiB

Phase 2: App Core + Audio - Discussion Log

Audit trail only. Do not use as input to planning, research, or execution agents. Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.

Date: 2026-04-03 Phase: 02-app-core-audio Areas discussed: Choreography format, Audio pipeline, Playback clock, CLI interface Mode: auto (all areas auto-selected, recommended defaults chosen)


Choreography File Format

Option Description Selected
Pydantic JSON with event list Structured, validated, sorted events [auto]
YAML with event list More human-readable but slower parsing
SQLite database Overkill for file-based storage

User's choice: [auto] Pydantic-validated JSON (recommended default)


Audio Pipeline

Option Description Selected
Separate threads (miniaudio + sounddevice) Clean isolation, no device contention [auto]
Single thread with multiplexing Complex, potential blocking
Subprocess for audio Over-engineered for this use case

User's choice: [auto] Separate threads with call_from_thread bridge (recommended default)


Playback Clock

Option Description Selected
Absolute monotonic timestamps No drift, correct after pause/resume [auto]
Relative sleep chains Simple but drifts 100-200ms/minute
Hardware timer Overkill for Pi

User's choice: [auto] Absolute monotonic timestamps (recommended default)


CLI Interface

Option Description Selected
Simple asyncio REPL Lightweight, disposable [auto]
Click/Typer CLI Over-engineered for testing
No CLI (scripts only) Less interactive

User's choice: [auto] Simple asyncio REPL (recommended default)


Claude's Discretion

  • Python package structure, asyncio task organization, Pydantic details, aubio config

Deferred Ideas

None