# Audio Router This daemon owns the physical PipeWire/JACK links for sanctuary audio. MQTT topic names and payloads remain under the existing `audio/player` base topic. YTPlayer audio follows one path: ```text MPV -> ytplayer_bus -> Audio Router -> HDMI, analog, or disconnected ``` The virtual sink definition lives at `pipewire/20-ytplayer-bus.conf`. Install it as `~/.config/pipewire/pipewire-pulse.conf.d/20-ytplayer-bus.conf`; PipeWire Pulse will recreate the bus after restarts. Preset policy: - `service`: mixer to HDMI only; YTPlayer disconnected - `video`: YTPlayer to HDMI - `announcements` and `aux_only`: YTPlayer to analog - `mute_all`: YTPlayer disconnected The router starts muted, restores the retained `audio/player/mode/state` once, and periodically reconciles missing links. YTPlayer is configured as an exclusive source, so a preset that enables both HDMI and analog is rejected.