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

68 lines
2.0 KiB
Markdown

# 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