docs(02): capture phase context
This commit is contained in:
67
.planning/phases/02-app-core-audio/02-DISCUSSION-LOG.md
Normal file
67
.planning/phases/02-app-core-audio/02-DISCUSSION-LOG.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user