Announcement

Collapse
No announcement yet.

Does synchronized playback suck or is it just me?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • sle118
    replied
    Originally posted by dmozell View Post
    Maybe icecast shouldn't run on the same machine as LMS. I have icecast on one raspberry picking up sound from my turntable and CD player. Another raspberry with picore lms picks up the icecast stream and transports it to several raspberry squeezebox players in sync. Occassionally I have to restart the players but 95 % of the time it works great.
    Just my two cents here, but I noticed you have a wireless network config similar to mine, running Unifi antennas. One of the biggest thing that helped in my case was to disable band steering which was systematically causing sync dropouts when the access point was trying to push either player into the 5ghz band. Unless you've already figured out the root cause, you should probably give that a shot.

    Leave a comment:


  • dmozell
    replied
    Maybe icecast shouldn't run on the same machine as LMS. I have icecast on one raspberry picking up sound from my turntable and CD player. Another raspberry with picore lms picks up the icecast stream and transports it to several raspberry squeezebox players in sync. Occassionally I have to restart the players but 95 % of the time it works great.

    Leave a comment:


  • snubber
    replied
    Originally posted by Paul Webster View Post
    Not really ... but I suspect it is not a common situation.
    Note, though, LMS is single threaded so perhaps it might occasionally be starved by something manager the VMs.
    I didn't know that, but honestly that does explain a lot. Having exclusive real-time control of the hardware is probably critical with larger numbers of devices being kept in sync. VMs can have CPU I/O delays that wouldn't be experienced on bare metal.

    Leave a comment:


  • Paul Webster
    replied
    Originally posted by snubber View Post
    Are there any known issues with trying to keep a large number of players synchronized from a virtual machine host?
    Not really ... but I suspect it is not a common situation.
    Note, though, LMS is single threaded so perhaps it might occasionally be starved by something managing the VMs.
    Last edited by Paul Webster; 2022-10-27, 04:29. Reason: Edited missed auto-correct

    Leave a comment:


  • snubber
    replied
    Originally posted by Paul Webster View Post
    In that case - I suggest going back to 8.3 and generate logs again.
    I say this because “Persistent” plugin is removed for 8.3 and equivalent code is now in the 8.3 base.

    Philippe (who wrote the persistent stuff) appears to have freed up some time for some more LMS work so he might be able to have a go at this.
    He will have no issue finding enough players given his other plugins and SqueezeAMP.
    Because I can't seem to stop debugging this issue, I've spun up another LMS node (8.2, piCorePlayer) on a wifi-only Pi4+DAC2HD node.
    It turns out that my synchronization is much more reliable with this host, and I get sync events much less often. It's also yet to have any online streams disconnect.

    Previously I was on a hardwired host as a proxmox VM. I've even migrated the VM between 2 different servers to test if one was at fault without improvement. This same server stack hosts a considerable number of other VMs without any issues, including the firewall/gateway itself.
    Are there any known issues with trying to keep a large number of players synchronized from a virtual machine host?

    Leave a comment:


  • Paul Webster
    replied
    In that case - I suggest going back to 8.3 and generate logs again.
    I say this because “Persistent” plugin is removed for 8.3 and equivalent code is now in the 8.3 base.

    Philippe (who wrote the persistent stuff) appears to have freed up some time for some more LMS work so he might be able to have a go at this.
    He will have no issue finding enough players given his other plugins and SqueezeAMP.

    Leave a comment:


  • snubber
    replied
    Originally posted by Paul Webster View Post
    Have you tried external sources other than Spotify (etc).
    e.g. a simple internet radio station using Shoutcast/Icecast ?
    That's exactly what I did, set up a local icecast server for it to stream from and yet it continues to buffer underrun. I am suspecting the synchronization logic to skip ahead 10+ms to stay in sync eventually eats up the streaming buffer and causes underruns.

    Leave a comment:


  • Paul Webster
    replied
    Have you tried external sources other than Spotify (etc).
    e.g. a simple internet radio station using Shoutcast/Icecast ?

    Leave a comment:


  • snubber
    replied
    Originally posted by d6jg View Post
    Good point but it’s not a Qobuz setting it’s general.

    Settings / Advanced / Networking / Streaming Mode - choose Cache or Persistent rather than Normal
    So, after a considerable amount of debugging, I can conclusively determine it's not any of my players ever dropping off the network. As far as I can tell LMS is seemingly incapable of streaming content reliably from a HTTP feed. I've cranked my caching up and even tried the "reliable http" plugin.

    I set up a docker container spitting out an icecast stream on the same box as LMS and yet it keeps needing to rebuffer the stream. My laptop streaming the same feed using VLC (delayed by the same amount) never skips at all.

    Leave a comment:


  • snubber
    replied
    Originally posted by d6jg View Post
    Good point but it’s not a Qobuz setting it’s general.

    Settings / Advanced / Networking / Streaming Mode - choose Cache or Persistent rather than Normal
    I've had the setting "Cache HTTP(S) streams on disk" and a buffer of 6 seconds. Trying a 10 second buffer today to see if that helps.

    Leave a comment:


  • d6jg
    replied
    Originally posted by threshold350 View Post
    Not sure about Spotty but Qobuz has a cache setting that I set to prevent any buffering. Maybe it will help Spotty with transcoding and syncing to all the players


    Sent from my iPhone using Tapatalk
    Good point but it’s not a Qobuz setting it’s general.

    Settings / Advanced / Networking / Streaming Mode - choose Cache or Persistent rather than Normal

    Leave a comment:


  • threshold350
    replied
    Not sure about Spotty but Qobuz has a cache setting that I set to prevent any buffering. Maybe it will help Spotty with transcoding and syncing to all the players


    Sent from my iPhone using Tapatalk

    Leave a comment:


  • snubber
    replied
    Originally posted by d6jg View Post
    That log says that there is transcoding going on presumably because one or some of the players require it. That can cause issues but probably isn’t the problem if your server has done grunt.

    You imply that your players are on WiFi. Interference can cause issues such as this and is very difficult to diagnose.

    Take a player at a time out of the sync group to try to determine if there is a particular player that is causing the issue.
    I can rotate thru the players and see if that causes it. My unifi controller does show them all as having excellent signal quality as they all have a nearby hotspot.

    To give another point of data, using Roon with multi-room output to the exact same set of six squeezelite clients has not yet had any playback problems. The lack of spotify however is really a dealbreaker for that server.

    I really never had any playback issues before with mopidy/snapcast either on my network, I may have to roll back to it for my halloween party.

    Leave a comment:


  • d6jg
    replied
    That log says that there is transcoding going on presumably because one or some of the players require it. That can cause issues but probably isn’t the problem if your server has done grunt.

    You imply that your players are on WiFi. Interference can cause issues such as this and is very difficult to diagnose.

    Take a player at a time out of the sync group to try to determine if there is a particular player that is causing the issue.

    Leave a comment:


  • snubber
    replied
    Code:
    [22-10-19 10:03:20.1677] Slim::Player::Song::open (362) youtube://www.youtube.com/v/hiY6g0cAsi8
    [22-10-19 10:03:20.1679] Slim::Player::Song::open (386) seek=false time=0 canSeek=1
    [22-10-19 10:03:20.1686] Slim::Player::TranscodingHelper::getConvertCommand2 (493) Matched: ops->ops via: -
    [22-10-19 10:03:20.1688] Slim::Player::Song::open (416) Transcoder: streamMode=I, streamformat=ops
    [22-10-19 10:03:20.1689] Slim::Player::Song::open (472) Opening stream (no direct streaming) using Plugins::YouTube::ProtocolHandler [youtube://www.youtube.com/v/hiY6g0cAsi8]
    [22-10-19 10:03:20.1691] Slim::Player::Song::open (502) URL is a song (audio): youtube://www.youtube.com/v/hiY6g0cAsi8, type=ops
    [22-10-19 10:03:20.1699] Slim::Player::StreamingController::_Stream (1282) 02:00:80:26:52:07: stream
    [22-10-19 10:03:20.1702] Slim::Player::StreamingController::_Stream (1282) b8:27:eb:83:fe:f3: stream
    [22-10-19 10:03:20.1716] Slim::Player::StreamingController::_Stream (1282) b8:27:eb:a1:5e:53: stream
    [22-10-19 10:03:20.1727] Slim::Player::StreamingController::_Stream (1282) b8:27:eb:93:64:93: stream
    [22-10-19 10:03:20.1743] Slim::Player::StreamingController::_Stream (1282) dc:a6:32:a7:49:c2: stream
    [22-10-19 10:03:20.1757] Slim::Player::StreamingController::_Stream (1282) 0c:b8:15:e8:08:a8: stream
    [22-10-19 10:03:20.1767] Slim::Player::StreamingController::_Stream (1319) Song queue is now 4,1
    [22-10-19 10:03:20.1769] Slim::Player::StreamingController::_setStreamingState (2386) new streaming state STREAMING
    [22-10-19 10:03:29.0040] Slim::Player::StreamingController::playerTrackStarted (2200) dc:a6:32:a7:49:c2
    [22-10-19 10:03:29.0043] Slim::Player::StreamingController::playerTrackStarted (2200) b8:27:eb:a1:5e:53
    [22-10-19 10:03:29.0110] Slim::Player::StreamingController::playerTrackStarted (2200) b8:27:eb:93:64:93
    [22-10-19 10:03:29.0322] Slim::Player::StreamingController::playerTrackStarted (2200) 02:00:80:26:52:07
    [22-10-19 10:03:29.0324] Slim::Player::StreamingController::_setPlayingState (2377) new playing state PLAYING
    [22-10-19 10:03:29.0325] Slim::Player::StreamingController::_Playing (362) Song 1 is not longer in the queue
    [22-10-19 10:03:29.0326] Slim::Player::StreamingController::_Playing (368) Song 4 has now started playing
    [22-10-19 10:03:29.0333] Slim::Player::StreamingController::_Playing (397) Song queue is now 4
    [22-10-19 10:03:29.0334] Slim::Player::StreamingController::playerTrackStarted (2200) b8:27:eb:83:fe:f3
    [22-10-19 10:03:29.0866] Slim::Player::StreamingController::playerTrackStarted (2200) 0c:b8:15:e8:08:a8
    [COLOR="#FF0000"][22-10-19 10:05:38.3449] Slim::Player::Source::_readNextChunk (378) end of file or error on socket, song pos: 188253494
    [/COLOR][22-10-19 10:05:38.3451] Slim::Player::Source::_readNextChunk (383) 02:00:80:26:52:07 mark end of stream
    [22-10-19 10:05:38.3452] Slim::Player::Source::_readNextChunk (383) b8:27:eb:83:fe:f3 mark end of stream
    [22-10-19 10:05:38.3453] Slim::Player::Source::_readNextChunk (383) b8:27:eb:a1:5e:53 mark end of stream
    [22-10-19 10:05:38.3454] Slim::Player::Source::_readNextChunk (383) b8:27:eb:93:64:93 mark end of stream
    [22-10-19 10:05:38.3455] Slim::Player::Source::_readNextChunk (383) dc:a6:32:a7:49:c2 mark end of stream
    [22-10-19 10:05:38.3456] Slim::Player::Source::_readNextChunk (383) 0c:b8:15:e8:08:a8 mark end of stream
    [22-10-19 10:05:38.3463] Slim::Player::StreamingController::_setStreamingState (2386) new streaming state STREAMOUT
    [22-10-19 10:05:38.3487] Slim::Player::StreamingController::playerEndOfStream (2286) dc:a6:32:a7:49:c2
    [22-10-19 10:05:38.3528] Slim::Player::StreamingController::playerEndOfStream (2286) b8:27:eb:93:64:93
    [22-10-19 10:05:38.3759] Slim::Player::StreamingController::playerEndOfStream (2286) b8:27:eb:83:fe:f3
    [22-10-19 10:05:38.7502] Slim::Player::StreamingController::playerEndOfStream (2286) b8:27:eb:a1:5e:53
    [22-10-19 10:06:04.1371] Slim::Player::StreamingController::playerEndOfStream (2286) 0c:b8:15:e8:08:a8
    [22-10-19 10:06:18.0081] Slim::Player::StreamingController::_CheckSync (566) b8:27:eb:93:64:93 resync: skipAhead 10ms
    Here is the same issue with youtube playback.

    Leave a comment:

Working...
X