Positional mix and orbiting TTS
September 2, 2026 · release
@voicethere/agent
Voice+Data sessions can route each client through a shared stereo mix. Mix groups decide who hears whom. setClientPose moves listeners in space. setTtsPose places each client's TTS speaker relative to their ears.
APIs
Mix group APIs: createMixGroup, addClientToMix, removeClientFromMix.
Live poses: setPositionalMixing, setClientPose, named setDefaultMixPlacement.
Per-client TTS: setTtsPose(sessionId, pose) pairs with speak(sessionId, text). Use clearTtsPose and setTtsMixPlacement for fallbacks.
The dashboard starter Orbiting TTS (positional-tts) circles TTS around each listener on a 50 ms timer.
Equal-power stereo panning with inverse-square distance (Y-up, look −Z). No HRTF.
Try it
- Docs: Positional mix & orbiting TTS
- Template catalog: Agent templates
- Dashboard: create a project → Template → Orbiting TTS, deploy with Voice+Data runner mode
npx @voicethere/agent build --entry templates/positional-tts/agent.ts