id: NL-SPEC-FEE98E07
type: spec
title: Event-driven audio state
Event-driven audio state
Outcome
The shell reports audio, playback, and privacy facts without continuously capturing audio samples.
Idle audio devices remain free to suspend.
Requirements
Output and input activity reflect active audio-graph links and mute state.
Playback activity reflects the active media player's playback state.
Volume and mute remain live, controllable properties.
Microphone and camera privacy indication retains its behavior.
The shell owns no continuous amplitude capture stream and performs no periodic level smoothing.
No state contract exposes amplitude levels or describes nonexistent peak capture.
Link presence is an acceptable activity proxy even when device suspension follows later.
Acceptance
An idle shell creates no peak-monitor capture node and causes no audio-level polling wakeup.
Media energy is 1 while playing and 0 while paused or stopped.
Audio controls, default-device selection, and mute controls work.
Microphone and camera indicators follow live use.
Audio and media state serialize without missing-property or load errors.
With no playback, the sink can become idle or suspended and sustained shell CPU remains below the former baseline.
Out of scope
Amplitude meters, waveforms, and VU displays.
Resource polling unrelated to audio.
---
id: NL-SPEC-FEE98E07
type: spec
title: Event-driven audio state
---
# Event-driven audio state
## Outcome
The shell reports audio, playback, and privacy facts without continuously capturing audio samples.
Idle audio devices remain free to suspend.
## Requirements
- Output and input activity reflect active audio-graph links and mute state.
- Playback activity reflects the active media player's playback state.
- Volume and mute remain live, controllable properties.
- Microphone and camera privacy indication retains its behavior.
- The shell owns no continuous amplitude capture stream and performs no periodic level smoothing.
- No state contract exposes amplitude levels or describes nonexistent peak capture.
- Link presence is an acceptable activity proxy even when device suspension follows later.
## Acceptance
- An idle shell creates no peak-monitor capture node and causes no audio-level polling wakeup.
- Media energy is `1` while playing and `0` while paused or stopped.
- Audio controls, default-device selection, and mute controls work.
- Microphone and camera indicators follow live use.
- Audio and media state serialize without missing-property or load errors.
- With no playback, the sink can become idle or suspended and sustained shell CPU remains below the former baseline.
## Out of scope
- Amplitude meters, waveforms, and VU displays.
- Resource polling unrelated to audio.