Replies: 2 comments
-
|
Oh no, WebSocket! That means wrapping the thing in HTTP and switching protocols to WebSocket is mandatory, just to have something that a raw TCP connection can do as well. "ensures it can travel across firewalls" .... but how does mDNS travel across these firewalls? No, thanks. |
Beta Was this translation helpful? Give feedback.
-
By the way, I have previously tried (and so far failed) to encurage developers from Music Assistant. Home Assistant, and other similar projects to at least look at help improving the the new "Matter Casting" (a.k.a. MatterCast) specification, which also is in early development, so see if could try make it fit both commercial and fully open-source implementations. For reference you can see related requests as my attempt to convince other to do with that what I do not have the skills or capacity to do myself: Personally think that an open-source “Matter Casting” server/client project would have a greater chance of succeeding with wide adoption. For the record, yes I am Home Assistant enthusiast but I am also a fan of open technical standards being adopted as industry standards, meaning the combined situation where an open protocol/specification standard that is openly accessible and usable by anyone is widely accepted by established companies to ensure better interoperability and cohesivity in this specific area between both big tech products and open-source software projects. Without a larger open standard for open-source project to unite behind they get even more fractured which will make most average users continue to just buy products that uses propriatory protocols like AirPlay, Google Cast or Sonos. |
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.
-
Just a heads up to other media player developers; not sure if this information will be usable to other music player projects, but FYI and for reference; several developers from Open Home Foundation, Music Assistant, ESPHome, and Home Assistant projects have started early development 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 100% open-source code, though initially targeting streaming synchronized audio playback to multiple embedded media player appliances (i.e. music streamers), voice assistants, and smart speakers:
While the "Resonate specification is design from scratch it shared similarities to Snapcast and Squeezelite at a high-level concept, Resonate is not a stand-alone player, but an extension that can turn other existing audio players into a Sonos-like multiroom solutions 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 (with current testing showing 50 microseconds between two ESP32-S3 devices running ESPHome and connected over WiFi within a local LAN).
"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".
The ESPHome firmware project is getting a new experimental audio client component (now a draft pull reuest so other developers can test) 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:
For a WIP reference implementation of a server using their aioresonate (Async Python library see how it is implemented in Music Assistant:
Implementation Details:
Time Synchronization:
Architecture:
mDNS:
External Dependencies:
Testing:
Currently compatible with:
Example entry for config.yaml:
Current Status:
resonatebranchFuture Work:
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"
Beta Was this translation helpful? Give feedback.
All reactions