You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a hi-fi system by Naim Audio which supports multi-room audio and will play synchronised audio in separate rooms (to another Naim box). I have created a program that pretends to be another Naim box and can playback the audio but have been struggling with getting the sync working (not helped by using a mix of Mac OS, Windows 10 and an RPi3). I seems that snapcast has the sync part sorted so was hoping to leverage that but am not sure how best to do so.
The Naim gear creates an icecast MP3 stream which has timestamp info, e.g. stream sample Y should play at time X (where X is time since source device boot). The source device output is interrupted when multi-room is started so that the local playback also matches. Remote time is available via NTP / PTP. I can demux / decode the stream and translate to local time, so I know what is meant to play locally at which local time... just not sure how to ask snapcast client or server to use this.
I had a few ideas:
Use the player code directly. Not sure how decoupled the code is, and seemed to need more of the code the deeper I looked.
Pretend to be a snapserver. Certainly decoupled and there are some docs around the binary protocol, although not bottomed out how to tell the client to play when I want.
Somehow use the snapserver fifo / input to feed timestamped PCM. But presume the time-stamping part is not (currently) possible... is that a useful / wanted change?
I figured I should ask the experts after my 3rd bright idea before spending more time on it. I was also wondering how I might make a pretend Naim server... e,g, a snapcast client that serves audio to a Naim box.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hi,
I have a hi-fi system by Naim Audio which supports multi-room audio and will play synchronised audio in separate rooms (to another Naim box). I have created a program that pretends to be another Naim box and can playback the audio but have been struggling with getting the sync working (not helped by using a mix of Mac OS, Windows 10 and an RPi3). I seems that snapcast has the sync part sorted so was hoping to leverage that but am not sure how best to do so.
The Naim gear creates an icecast MP3 stream which has timestamp info, e.g. stream sample Y should play at time X (where X is time since source device boot). The source device output is interrupted when multi-room is started so that the local playback also matches. Remote time is available via NTP / PTP. I can demux / decode the stream and translate to local time, so I know what is meant to play locally at which local time... just not sure how to ask snapcast client or server to use this.
I had a few ideas:
I figured I should ask the experts after my 3rd bright idea before spending more time on it. I was also wondering how I might make a pretend Naim server... e,g, a snapcast client that serves audio to a Naim box.
Any thoughts on the best approach? Thanks,
Steve.
Beta Was this translation helpful? Give feedback.
All reactions