Replies: 14 comments 6 replies
-
|
Thanks! Very much appreciated. Like mentioned over at their discussion board. Will have a deeper look at it in the upcoming days. Keep you posted. Pinging @JarbasAl as he can have a look about if and how this might fit into our media play framework. |
Beta Was this translation helpful? Give feedback.
-
|
currently working on a jellyfin skill and planning into looking into navidrome next added music-assistant to my TODO list, i'll give it a shot and see if there's potential for integration |
Beta Was this translation helpful? Give feedback.
-
|
Great to hear! What is really awesome about the Music Assistant server is its ”Music Providers” and ”Player Providers” which acts like a middleware integration that could make it compatible with mosts popular audio source and most popular player ecosystems. Any media source as input and any media player as output, in theory. They already have native "Music Providers" integrations (in Python code) for Jellyfin, Subsonic (and as such Navidrome which also uses the Subsonic API and as such can use the Subsonic music provider in Music Assistant), as well as many, MANY more;
So maybe no need to reinvent the wheel? As for the client I think the Squeezelite client code (Slimproto protocol a.k.a Squeezebox clientl is currently the most compatible open-source audio streaming and control protocols on media player side: Music Assistant (partly) emulates a Logitech Media Server and has a full implementation of the Slim Protocol (aka slimproto) in the form of support for Squeezelite clients. This means you can use squeezelite software players, which run on almost any hardware, including your own desktop OS and even ESP32 boards, directly with Music Assistant. There is some support for the original Logitech branded Squeezebox hardware players like the Radio and the Duet. Squeezelite (a.k.a Squeezebox / Slimproto protocol) Player Features:
Note! The focus of this provider in MA is to support the use of software Squeezelite clients (e.g. piCorePlayer). Old Squeezebox hardware is reported to work although there are reported issues with grouping. The MA core team cannot afford to expend resources on making these devices work any better than they do now. PRs to enhance support, however, are welcomed to the aioslimproto library and/or the squeezelite provider in MA. |
Beta Was this translation helpful? Give feedback.
-
|
Note by the way, when it comes to media player for music playback recommend you consider going the same a architectural decision that the very latest ESPHome (which Home Assistant Voice PE now) uses has chosen with it new audio components and media players, which is to have totally separate media player (speaker components) for music from media player for announcements (voice repons) playback. ESPHome new speaker media player component adds several features, but perhaps most relevant for inspiration is that it now supports playing two different streams of audio: one for announcements and another for music, and their new mixer speaker component lets you combine the two streams, (their new mixer component even supports audio ducking, so it can lower the volume of the music while your announcement plays) when using their Voice Assistant functionality. My point here is not to suggest using code from ESPHome but instead to just separate your "music player" from your "announcement player" and use a mixer to combine the output. That way the code can be totally differance, which I think makes sense since most users would likely want very high-quality audio for music playback if they can get it but probably do not care as much about audio quality for announcements. |
Beta Was this translation helpful? Give feedback.
-
|
FYi, they have now released Music Assistant 2.4.0 so quoted release notes below joint to point out how reevativly fast they are progressing, which makes it more than worth following their development: https://community.home-assistant.io/t/music-assistant-2-0-your-music-your-players/727626/1374 The 2.4 release is packed with new features, new providers and loads a huge amount of bugfixes and all kind of improvements overall. Some highlights:
Bugfixes: There have been countless bugfixes and (performance) improvements. Most important being that the streaming is now more robust in all kinds of scenarios. For a complete overview of all fixes in this release, click here: |
Beta Was this translation helpful? Give feedback.
-
|
FYI, there is a new blog post about Music Assistant today on Home Assistant's website which better describe new and related features/functions: Noted that they specifically mention this latest release having some great advancements for (Assist) voice control devices and media playback. |
Beta Was this translation helpful? Give feedback.
-
|
FYI, Music Assistant 2.5.0 BETA (pre-release currently BETA 15) has already added several new big features, such as example these highlights:
Btw, while I suggest that the Open Home Foundation will eventually guide Music Assistant to a newer open standard protocol in the future I noted that it looks like Music Assistant developers are for now doubling down on improving support for Squeezelite and Snapcast players: PS: Squeezelite support is an implementation of the Slim Protocol (a.k.a. slimproto) in the form of support for Squeezelite clients, so in that solution Music Assistant (partly) emulates a Logitech Media Server while Squeezelite players emulate Squeezebox client. |
Beta Was this translation helpful? Give feedback.
-
|
I started looking into MA https://github.com/orgs/music-assistant/discussions/3802 |
Beta Was this translation helpful? Give feedback.
-
FYI, Music Assistant Server 2.5.0 GA was released yesterday, it contains loads of new features/functions as well as bug-fixes or enchancements: With the backing of the Open Home Foundation a tip is to keep and eye on release notes for beta releases and stable point releases here: |
Beta Was this translation helpful? Give feedback.
-
|
I havent yet worked into integration MA into OVOS, but OVOS/HiveMind devices can now be used as players in HA/MA https://github.com/JarbasHiveMind/hivemind-homeassistant
|
Beta Was this translation helpful? Give feedback.
-
|
By the way, FYI, I read that the Music Assistant team who are also Open Home Foundation developers have plans to create their own custom open-source multi-room audio streaming protocol for music casting that will be optimized for both smart speakers based on constraint MCUs (i.e. ESP32 running ESPHome fimware) and internet streaming. The protocol project codename is ” Resonate” and its specifications is still in early architecture design stage but you can read more about it and follow that sub-project here: PS: Further discussion about that is going on in discord here: |
Beta Was this translation helpful? Give feedback.
-
|
for future reference, AI generated docs + AI chat with devin, these seem very helpful for quick onboarding |
Beta Was this translation helpful? Give feedback.
-
|
Hi all! I'm experimenting with different media options in OVOS/Neon and have a skill available to manage all of that with Music Assistant (the Open Home Foundation's media player and speaker manager). If you're interested in giving it a try, here's the link: https://pypi.org/project/skill-musicassistant/ It's available on pypi as skill-musicassistant. Right now the intents are a little rough (no generic search so you have to say "play artist ___" or "play album ____", and the docs are very light. If you're looking for a comfortable out-of-the-box user experience it's not there yet. If you like playing on the edge, please give it a spin and give me some feedback to improve it! There are plenty of things to improve right now 😁 Note that you need to disable OCP for this skill to work properly. If you don't know how to do that and can't find it easily, you should probably wait until it's more readily available to give it a try. I'd love to see if we can take this functionality and get it rolled into OCP natively but I'm not sure it works that way, so for now this is the approach I'm taking. |
Beta Was this translation helpful? Give feedback.
-
New “Resonate protocol” for streaming synchronized audio playback to multiple media player appliances (music streamers), voice assistants, and smart speakersJust a roadmap heads up to media player developers; not sure if this will be usable on all voice software projects with media playback capability (i.e. voice assistants, media player, and smart speaker hardware), but FYI and for reference, I heard it sounds like (pun intended) several developers from Open Home Foundation, Music Assistant, ESPHome, and Home Assistant projects have started working on a new open-source audio streaming and control protocol with a goal to achieve the best possible multi-room music playback experience using only open-source:
Specification is design from scratch but is similar to Snapcast and Squeezelite in concept, Resonate is not a standalone player, but an extension that can turn an existing audio player into a Sonos-like multiroom solution with time synchronized with the server to play perfectly synced audio. In their own tests they claim to see that average time deviation is below 0.05ms for synced audio (50 microseconds between two ESP32-S3 devices running ESPHome and connected over WiFi). "Resonate is a multi-room music experience protocol. The goal of the protocol is to orchestrate all devices that make up the music listening experience. This includes outputting audio on multiple speakers simultaneously, screens and lights visualizing the audio or album art, and wall tablets providing media controls." "Definitions; Server, a Resonate server. Orchestrates all devices. Generates an audio stream, manages all the players, provides metadata etc.. Player, a Resonate client that can play audio, visualize audio or album art or provide music controls". For a WIP reference implementation of a server using their aioresonate (Async Python library see how it is implemented in Music Assistant: And the ESPHome firmware project will get a new experimental audio client component that adds support for the Resonate Protocol for synchronized music-playback across multiple ESPHome-based devices, i.e. audio synchronizer to enable sound-sync timing for DIY multi-room audio systems: Implementation Details:
There was some discussions + further explainations on its concept in a other thead that asked about this new multi-room streaming protocol: Originally posted by marcelveldt in music-assistant/support#3883 (comment)
If I understand correctly this new Resonate synchronized audio component will add a flexible hub architecture for audio time synchronization This could solve the problem that you normally need more expensive hardware solution if you want to add multi-room audio to existing speakers, as once this is implemented fully you could have almost perfect multi-room audio syncronization using something like the Home Assistant Voice Preview Edition connecte to external speakers using its stereo output jack: But a more relevant follow-up feature request for Music Assistant when this implemented would be if could add support for different types of multi-room audio, (to have options for single source-single zone, single source-multiple zone, or multiple source-multiple zone playback)? Ongoing discussion about this new experimental Resonate audio component is going on in this Discord channel here:
Btw, looking at the commit history it seems like "Resonate" used to previously be refered to as "improv-audio" internally by its developers: PS: Somewhat ironically the Open Home Foundation recenrly posted a newsletter blog post titiled "Why isn't there one standard?" and then they choose to use xkcd's "standards" classic XKCD comic strip on how standards proliferate as their tumbnail for the Resonate organization on GitHub, however with the Open Home Foundation, Home Assistant , Music Assistant, and Nabu Casa founder backing this they probably have the influence to at least convince many open-source based media layer implementations to also add support for this new protocol:
FYI, marcelveldt who is lead developer on this mentioned in this other thread that there is a wish to someday also see the Resonate protocol supported by third-party player clients (e.g. media player appliances like media streamers, open-source voice assistants and smart speakers): "I'm not sure if big tech will implement this new protocol, but we sure aim to convince the smaller/medium sized companies like WiiM to implement it and make it easy enough to do so." |
Beta Was this translation helpful? Give feedback.





Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Will the OpenVoiceOS Foundation / OVOS voice assistant operating-system plan to support "player provider" for "Music Assistant" or other Music Assistant server and client integrations?
https://www.music-assistant.io
https://github.com/music-assistant
Update: Music Assistant now belongs to the non-profit Open Home Foundation (which now also owns Home Assistant and ESPHome too):
Anyway, Music Assistant server can be used stand-alone or as an add-on in Home Assistant and is made to support external/remote players:
https://www.music-assistant.io/player-support/
"Music Assistant is what I’d like to call a music library manager – it gives you full control of playing YOUR music on your players. Just like Home Assistant centralizes all your devices and services to work together, Music Assistant does the same with your music sources and smart audio-playing devices."
"The Music Assistant server is a free, opensource Media library manager that connects to your streaming services and a wide range of connected speakers. The server is the beating heart, the core of Music Assistant and it keeps track of your music sources. It must run on an always-on device like a Raspberry Pi, a NAS or an Intel NUC or alike. The server can access multiple music providers and stream to multiple player types."
It was orginally built for Home Assistant integration in mind but its server software can also be used stand-alone and used with other players.
Highly recommend that you all read this whole (very long and detailed) blog article about Music Assistant 2.0 if you have not already:
Note! Audio quality is the principal reason why native Music Assistant Players (a.k.a MA player) are developed. Those native Player Providers provide the highest quality playback experience possible for Music Assistant. So while Home Assistant media players are also compatible and should techically work well, those may have been written with a basic objective such as just enabling text-to-speech and possibly only provide support for lower sample rate and bit depth. Therefore, if there is a native Music Assistant player available and a Home Assistant integration then the user is recommended to always choose the Music Assistant player.
PS: Also check out these Music Assistant integrations and Blueprints/scripts for Home Assistant if you are also interested in home automation:
Beta Was this translation helpful? Give feedback.
All reactions