Background Music virtual audio device prevents display wake, causes permanent black screen
Issue
Background Music's virtual audio device (Background Music Device.driver) prevents macOS display from waking after sleep. The display enters a permanent black screen state that cannot be recovered without a hard restart.
Impact
When Background Music is installed and another app (like IINA video player) also prevents display sleep, macOS power management enters a corrupted state. The display cannot wake up, forcing users to hold the power button for 10 seconds to restart.
Technical Details
What Background Music does
Background Music registers a virtual audio device at /Library/Audio/Plug-Ins/HAL/Background Music Device.driver. This device keeps coreaudiod running continuously, even when no audio is playing.
The conflict
When IINA (or similar apps) also requests PreventUserIdleDisplaySleep, the combination causes macOS power management to fail. The display sleep/wake cycle gets stuck, resulting in a black screen.
System log evidence
Display sleep not yet completed, defer ack of IOPM sleepThis message indicates the display sleep process cannot complete because Background Music's audio device is blocking it.
Power management state
pid 734(IINA): PreventUserIdleDisplaySleep "IINA playback is in progress"
pid 427(coreaudiod): PreventUserIdleSystemSleep "com.apple.audio.BuiltInSpeakerDevice.context.preventuseridlesleep"Reproduction
- Install Background Music 0.5.0 on macOS Tahoe 26
- Open IINA and play any video
- Lock screen (Ctrl+Cmd+Q) or wait for auto-lock
- Wait 1-2 minutes for display sleep to trigger
- Press any key or touch trackpad to wake
- Result: Display stays black, system is responsive but screen never recovers
Root Cause
Background Music's virtual audio device keeps coreaudiod running, which blocks macOS display power state transitions. When combined with IINA's sleep prevention, the display enters an unrecoverable black screen state.
Suggested Fix
Background Music should not prevent display sleep when it's not actively playing audio. The virtual audio device should release sleep assertions when no audio is being output.
Source: kyleneideck/BackgroundMusic