---
title: My Doorbell Can't Interrupt Spotify, So It Asks Who Owns the Music
description: "How I put a doorbell chime over the music without killing it: Music Assistant streams resumed, live inputs switched back, phone casts got a 5-second dip."
image: https://willcurran.com/hubfs/will-curran-brand/my-doorbell-asks-who-owns-the-music-featured.png
---

[Skip to content](https://willcurran.com/blog/my-doorbell-asks-who-owns-the-music#main)

[Will Curran](https://willcurran.com/)

[Home](https://willcurran.com/) [Portfolio](https://willcurran.com/portfolio) [Press](https://willcurran.com/media) [Blog](https://willcurran.com/blog) [Favorites](https://willcurran.com/favorites) [Speaking](https://willcurran.com/speaking) [Consulting](https://willcurran.com/consult) 

[Hire Will](https://willcurran.com/hire)

[Writing](https://willcurran.com/blog) Home — My Doorbell Can't Interrupt Spotify, So It Asks Who Owns the Music [Subscribe](https://willcurran.com/blog/subscribe)

Home

# My Doorbell Can't Interrupt Spotify, So It Asks Who Owns the Music

My amps' built-in chime stopped Spotify and line inputs for good, so on every ring each room was sorted by who owned the stream. Music Assistant streams resumed, live inputs cut and switched back in about 7 seconds, and phone casts got a 5-second dip.

![](https://willcurran.com/hs-fs/hubfs/will-curran-brand/will-curran-avatar.jpg?width=44&height=44&name=will-curran-avatar.jpg)

Will Curran Oct 24, 2026 · 5 min read

<https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwillcurran.com%2Fblog%2Fmy-doorbell-asks-who-owns-the-music>

On this page

![An abstract dark design: a single orange ring pulse spreading out and splitting into three paths, one looping back, one jumping across and returning, one dipping and rising, next to the title My doorbell can't interrupt Spotify, so it asks who owns the music.](https://willcurran.com/hs-fs/hubfs/will-curran-brand/my-doorbell-asks-who-owns-the-music-featured.png?width=1600&height=900&name=my-doorbell-asks-who-owns-the-music-featured.png)

In October I wanted the doorbell chime to play over the music on my amps, then get out of the way: "super clean and not annoying." The amps had a built-in way to dip the music, play a sound and pick back up, but only for music the amp was playing itself. On Spotify, a line input or AirPlay, the sound stopped the music, and it stayed stopped. The fix was to ask one question per room on every ring: who owns this stream?

## Music Assistant gave me a stream I owned

The house has WiiM amps, one per room, plus a WiiM streamer on the turntable. Day to day I play Spotify, Plexamp and a DJ line input into them. Each of those streams belongs to something else, a phone or a mixer. Home Assistant can turn them down, but it can't pause one and bring it back.

[Music Assistant](https://www.music-assistant.io/) is an open-source music server that runs alongside Home Assistant. It keeps its own queue and sends the audio to the speakers itself, so it knows the track and the position. It can reach the same amp through the amp's native protocol or over AirPlay, and it can group rooms to play as one. That made it the piece that could pause and resume.

The two outputs trade off. Over the native output, an announcement stops the music, then restarts the track at the saved position, at full resolution. Over AirPlay, by Music Assistant's own documentation, the sound mixes in over ducked music, but AirPlay tops out at 16-bit/44.1 kHz. I wanted the music as high quality as possible, so I went native.

## The built-in chime only works on what the amp owns

The amps' firmware can dip, play a prompt and resume, but only on network and USB playback. On any other source the Home Assistant integration falls back to plain playback of the file, which stops the music and doesn't bring it back. I confirmed that in the integration's source. The first plan only dipped the volume and let the real chime ring. I pushed back: the chime belonged on the speakers.

## Three cases on every ring

On each ring, one script sorted every room into one of three cases and drove it through exactly one integration. Idle rooms, and rooms at 2% volume or less, were skipped.

![Flow diagram titled Who owns the stream. A ring leads to a check on each room: idle or nearly silent rooms are skipped. Music Assistant owns it: the chime plays as an announcement and the track resumes at the same position, about 11 seconds of quiet on a bench test. A live input owns it: the chime cuts the input and the amp switches back after a fixed 6.8 seconds, about 7 seconds on a real press. A phone owns it: the volume ramps to 25 percent for 5 seconds and back, measured 16 to 4 to 16.](https://willcurran.com/hs-fs/hubfs/will-curran-brand/my-doorbell-asks-who-owns-the-music-who-owns-the-stream.png?width=1440&height=1000&name=my-doorbell-asks-who-owns-the-music-who-owns-the-stream.png)

- **Music Assistant owns it: chime and resume.** Music Assistant played the chime as an announcement, then picked the track back up. On a one-amp bench test the song resumed at 0:28, exactly where it stopped, by Music Assistant's position counter (I haven't confirmed that by ear). It cost about 11 seconds of quiet: the chime plus the stop and restart. The chime also came in louder than the music, 16 to 29 on that amp, because announcement volume is a per-player setting.
- **A live input owns it: cut and switch back.** The amp played the chime directly, which cuts the input, then switched back after a fixed 6.8 seconds. The delay was fixed because Home Assistant's view of the amp lags the amp.
- **A phone owns it: a 5-second dip.** The room ramped to 25% of its own volume, held 5 seconds and ramped back. Polling the amp's own status every half second: volume 16, down to 4, back to 16.

## The press that counted

The first real press came while DJ audio was playing, when live inputs still only got the dip. The music dipped, but the chime never came through the speakers. I chose to try a six-to-eight-second cut instead and see how it felt.

On the next real press, on October 24, the automation fired straight away. Every room on the DJ input cut to the chime and was back on the DJ input at the same volume about 7 seconds later. That press came before another Music Assistant change later that evening.

## The parts that were not magic

**Grouped speakers report no source.** Rooms in a Music Assistant group showed no source in Home Assistant, so a grouped room looked like a phone cast and would only have dipped. The fix was to check whether Music Assistant was the app driving the speaker, and send one announcement to the group leader. On a re-test with a large group, the chime played everywhere.

**The mute flag lied.** The integration reported the amps as muted while they were plainly audible, so the script doesn't gate on it. A quiet DJ input also read as stopped, so an unmuted live input counts as playing.

## A short welcome

The voice was rendered once with a text-to-speech service and kept as local files under two seconds long, so nothing calls a cloud voice service when it plays. Music Assistant puts a soft chime in front of the voice, and I kept it. The volume was set to follow the music's level, about 15% below Music Assistant's default, and in tests the volume went back to its level afterwards.

## Build it yourself

You need network amps or speakers that Home Assistant controls, Music Assistant for the music you want to resume, a trigger for the event, and a short local sound file. Write one script per event. It builds three lists from each speaker's state, sends each speaker one kind of command, snapshots volumes before the dip, and restores only the speakers still at the dipped value, so a person who turned a knob mid-dip wins. Run one copy at a time so a second ring is ignored.

Give this to your AIHelp me make \[event\] play a short sound over the music on my \[speakers\] in Home Assistant without killing it. My sources are \[apps, line inputs, phone casts\]. Sort each speaker into one of three cases at the moment of the event: music Music Assistant is playing gets an announcement and resumes; a live input plays the sound directly, then switches back after a fixed delay I measure; anything else dips to a fraction of its volume for a few seconds and comes back. Skip idle and near-silent speakers, snapshot volumes once, restore only speakers still at the dipped value, run one copy at a time, and handle grouped speakers that report no source. Include a test plan for an idle room, a muted room, two events seconds apart, a knob turned mid-dip and a grouped room.

If your house has a stream you can't interrupt cleanly, I would like to hear what owns it.

Filed under [Home](https://willcurran.com/blog/tag/home)

![](https://willcurran.com/hs-fs/hubfs/will-curran-brand/will-curran-avatar.jpg?width=64&height=64&name=will-curran-avatar.jpg)

Will Curran

I spent sixteen years building one company, and I have been in the event industry since 2007. These days I write about the technology I actually use — trucks, radios, home infrastructure, and the tools that survive past the first invoice.

[All posts by Will →](https://willcurran.com/blog/author/will-curran)

Get the next one by email

One email per post. No digest, no sponsors.

[← Previous My Chat Bot Called a House Set Drum and Bass](https://willcurran.com/blog/chat-bot-called-a-house-set-drum-and-bass)

## Related reading

[Home The Heat Rating That Decides a Desert Garage Mini-Split 4 min read](https://willcurran.com/blog/desert-garage-mini-split-heat-rating) [Home Movie Mode Means the Robot Vacuum Waits 6 min read](https://willcurran.com/blog/movie-mode-vacuum) [Home A Holiday Color Engine with a Calendar Computed to 2099 7 min read](https://willcurran.com/blog/holiday-color-engine)

[Will Curran](https://willcurran.com/)

[LinkedIn — 29,339+ followers](https://www.linkedin.com/in/willcurran) [GitHub](https://github.com/rancur) [YouTube](https://www.youtube.com/channel/UCJgscc27l4fpkWx1SeK05xg/) [Spotify](https://open.spotify.com/user/rancur) [SoundCloud DJ mixes](https://www.soundcloud.com/thewillsee) [Twitch](https://www.twitch.tv/thewillsee) [Last.fm](https://www.last.fm/user/default) [Trakt — movies & TV](https://trakt.tv/users/willcurran) [Goodreads](https://www.goodreads.com/user/show/55302838-will-curran) [Will See Music](https://www.thewillsee.com) [Arizona Meshtastic](https://azmsh.net) [Electric Forest Meshtastic](https://efmesh.com)

© 2026 Will Curran — All rights reserved. [RSS](https://willcurran.com/blog/rss.xml) [Back to top](https://willcurran.com/blog/my-doorbell-asks-who-owns-the-music#main)

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Will Curran",
    "url" : "https://willcurran.com/blog/author/will-curran"
  },
  "dateModified" : "2026-10-25T04:42:57.702Z",
  "datePublished" : "2026-10-24T16:00:00.000Z",
  "headline" : "My Doorbell Can't Interrupt Spotify, So It Asks Who Owns the Music",
  "image" : [ "https://willcurran.com/hubfs/will-curran-brand/my-doorbell-asks-who-owns-the-music-featured.png" ],
  "mainEntityOfPage" : {
    "@id" : "https://willcurran.com/blog/my-doorbell-asks-who-owns-the-music",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://willcurran.com/hubfs/image-1.png"
    },
    "name" : "Will Curran LLC"
  }
}
```