-
Notifications
You must be signed in to change notification settings - Fork 1
ADR 0001 Audio Routing
Zlatko Lakisic edited this page Aug 3, 2026
·
1 revision
Status: Accepted
Date: 2026-08-02
Milestone: M0.6

CONTRACTS §6 asked whether TTS audio should play in:
- (a) the kiosk (Chromium), keeping lip-sync on one clock, or
- (b) the audio process via ALSA, lower latency but separate timing to the avatar.
The Pi has HDMI + headphones sinks and a working Chromium/labwc session. TalkingHead (when used) requires audio + visemes aligned in the browser for reliable lip-sync.
Choose (a) — kiosk is the audio sink.
- Bridge sends
speakwithaudioUrl(loopback HTTP) to the kiosk. - Kiosk plays audio and emits
speak.started/speak.ended. - Follow-up window opens on
speak.endedfrom the kiosk. - Bridge → audio
playmessage is not used in Phase 1.
- Accept ~100 ms extra latency vs raw ALSA for guaranteed sync.
- If Chromium audio on the Pi proves unreliable in M7 UAT, revisit and write a superseding ADR.
- CONTRACTS §2
playremains documented as unused/reserved.
COMSTAR AI — Not a mystical AI. A tool you engineered — transparent, hackable, fast.
Home · Architecture · Admin Console · Runbook · Contracts
Apache-2.0 · Pre-alpha · Raspberry Pi 4 terminal + local AI server
COMSTAR AI
Start here
Product
Build & configure
Interfaces
- Contracts Overview
- Bridge ↔ Kiosk
- Bridge ↔ Audio
- CodeProject.AI
- AO Reach
- MCP Tools
- Attention State Machine
Features
- Speech (STT/TTS)
- Vision & Face Enrollment
- Directory Identity
- Wake Word
- MCP Topology
- Terminal Control
- Google Workspace
Decisions (ADRs)
- ADR Index
- 0001 Audio Routing
- 0002 Render Path
- 0003 Speech on Ada
- 0004 Terminal Control
- 0005 LDAP Identity
- 0006 House Presence
- 0007 Full-Duplex AEC
- 0008 TTS Engine
- 0009 Proactivity
- 0010 Text Channel
- 0011 Road VPN
- 0012 Admin Network
- 0013 AO mTLS
- 0014 Fallback Hotspot
Operate
Plan
Meta