-
-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Problem statement
The "Don't stop the music" feature in Music Assistant is currently buried deep in the UI (Player → Playlist → ⠇ → Enable 'Don't stop the music'), making it nearly impossible for users to discover or use effectively. Users who want continuous music playback have to hunt through nested menus for each player, and the setting doesn't persist in intuitive ways.
Additionally, users without compatible music providers can still see and attempt to enable the feature, only to be met with a cryptic error message that provides no actionable guidance. This creates confusion and frustration, especially for new users who don't understand provider capabilities.
This impacts all MA users who expect modern music players to offer easy access to continuous playback features. Solving this matters because it directly affects the core listening experience, reduces friction in a feature that keeps users engaged with their music, and prevents dead-end user journeys.
Scope & Boundaries
In scope
- Create a global default setting for "Don't stop the music" in MA settings
- Add an infinity symbol (∞) toggle button in the playbar for quick access
- Per-zone/player-group control that inherits from global default on playback start
- Setting resets to global default when playlist is cleared/overwritten or player changes
- Feature visibility logic: Hide "Don't stop the music" UI elements (setting + playbar toggle) when no installed music providers support the feature
- Automatic unhiding when a compatible provider is added
- Basic UI implementation in both the settings panel and playbar
Not in scope
- Advanced queue management algorithms or recommendation engine improvements
- Historical playback data or "why did this play?" explanations
- Integration with external recommendation services
- Customization of what "don't stop the music" selects (radio, similar artists, etc.) - though this could be a feature in the future
- Provider capability discovery UI (list of which providers support the feature)
- Migration/notification system for existing users who had the feature but removed all compatible providers
Foreseen solution
Provider Capability Check: On MA startup and when providers are added/removed, check if any active music provider supports "don't stop the music". Store this as a boolean flag.
Conditional Visibility:
- If no compatible providers: Hide the global setting in MA settings and hide the ∞ icon in the playbar
- If at least one compatible provider exists: Show all UI elements
Global Setting: Add a toggle in MA's main settings: "Enable 'Don't stop the music' by default" (on/off). This becomes the default state for all players.
Playbar Control: Add an infinity icon (∞) button in the playbar alongside existing controls (shuffle, repeat, etc.). This toggles the feature on/off for the current zone/player group. The icon's state (active/inactive) reflects the current setting.
Behavior: When a zone starts playback, it inherits the global default. Users can then override per-zone using the playbar toggle. If the playlist is cleared or a different player is selected, the setting reverts to global default.
Visual mockup concept:
- Settings page: New toggle under playback settings (only visible with compatible providers)
- Playbar: ∞ icon positioned near repeat/shuffle controls, with visual state (highlighted when active, only visible with compatible providers)
Visuals showing the problem and a proposed solution mockup: LINK
Community signals
Internal UX review identified this as a pain point. The review included detailed user journey analysis and UI screenshots showing the current hidden location of the feature and the confusing error message when providers don't support it.
Risks & open questions
- UX Risk: Will users understand what the infinity icon means without additional onboarding? Should we include a tooltip or first-use explanation?
- Technical: How does this interact with existing queue management logic? Need to verify the inheritance/reset behavior doesn't conflict with other queue features.
- Design: Where exactly in the playbar should the ∞ icon sit? Need to ensure it doesn't clutter the interface on smaller screens.
- Edge case: What happens when "don't stop the music" is enabled but there's no content to continue with (e.g., local-only library with limited similar tracks)?
- Provider detection: How do we reliably detect provider capabilities? Is there already a capability flag system, or do we need to build one?
- State management: If a user has the feature enabled globally, then removes all compatible providers, then later adds one back—should the setting remain enabled or reset to off?
- Discoverability trade-off: By hiding the feature when unavailable, users won't know it exists until they add a compatible provider. Is this better than showing it disabled with a hint about which providers support it?
Appetite
Small - roughly 1 cycle of focused work across frontend and core.
This involves settings UI, playbar UI changes, state management for per-zone preferences, the inheritance/reset logic, plus the provider capability detection system and conditional visibility logic. The provider checking adds some complexity but shouldn't require fundamental architecture changes if a capability system already exists.
Execution issues
No response
Decision log
| Date | Decision | Outcome |
|---|---|---|
Metadata
Metadata
Assignees
Labels
Type
Projects
Status