If you haven't already I would try the following
1. Make sure your firewall is not blocking anything.
2. check "Do not use raw PCM" and see how that goes, you should see L16 or L24 as the extension in the log instead of .WAV
3. If option 2 doesn't work, try and get it to play a native stream. Remove DSP/replaygain settings and adjust the profile to make sure it won't encode the file and see if that will stream ok.
1. isn't an issue.
2. led to a single song almost playing through (though the initialisation did throw a few errors:
Upmpdcli:
Mär 03 14:00:57 pi3B upmpdcli[6282]: :2:../libupnpp/control/cdircontent.cxx:253::UPnPDirContent::parse: parser failed: duplicate attribute at line 1 column 1474 for:
Mär 03 14:00:57 pi3B upmpdcli[6282]: <DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:pv="http://www.pv.com/pvns/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/">>
Mär 03 14:00:57 pi3B upmpdcli[6282]: :2:../src/upmpd.cxx:300::checkContentFormat: didl parse failed
Mär 03 14:00:57 pi3B upmpdcli[6282]: :2:../src/mpdcli.cxx:336::mpd_run_clear(m_conn) failed: Connection closed by the server
Mär 03 14:00:57 pi3B upmpdcli[6282]: :3:../src/mpdcli.cxx:148::MPDCli::startEventLoop: already started
Mär 03 14:01:01 pi3B upmpdcli[6282]: :3:../src/upmpd.cxx:312::checkContentFormat: format check disabled
However shortly before the first song ended, the audio output stopped and by checking the logs, MPD is stuck (constantly repeating) with:
MPD:
Mär 03 14:04:08 pi3B mpd[6518]: alsa_output: Decoder is too slow; playing silence to avoid xrun
Restarting mpd with
sudo systemctl restart mpd
takes almost a minute but then the pi starts playing the second song (after I had already switched the output in MusicBee from the pi to a local sound device and stopped playback).
This is the plugin log:
82988; 11 Profile - Generic Device, useragent=|Linux/6.1.21-v8+ UPnP/1.1 Portable SDK for UPnP devices/6.2.0
82994; 12 Profile - Generic Device, useragent=|Linux/6.1.21-v8+ UPnP/1.1 Portable SDK for UPnP devices/6.2.0
83012; 13 Activate - MaltePi3B-UPnP/AV:http-get:*:audio/L16:DLNA.ORG_PN=LPCM,http-get:*:application/flac:*,http-get:*:application/x-flac:*,http-get:*:application/ogg:*,http-get:*:application/vnd.apple.mpegurl:*,http-get:*:application/x-mpegurl:*,http-get:*:audio/flac:*,http-get:*:audio/x-flac:*,http-get:*:audio/aac:*,http-get:*:audio/x-aiff:*,http-get:*:audio/aif:*,http-get:*:audio/aiff:*,http-get:*:audio/dff:*,http-get:*:audio/x-dff:*,http-get:*:audio/dsd:*,http-get:*:audio/x-dsd:*,http-get:*:audio/dsf:*,http-get:*:audio/x-dsf:*,http-get:*:audio/m4a:*,http-get:*:audio/x-m4a:*,http-get:*:audio/matroska:*,http-get:*:audio/x-matroska:*,http-get:*:audio/mp1:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/mpeg:*,http-get:*:audio/x-mpeg:*,http-get:*:audio/ogg:*,http-get:*:audio/vorbis:*,http-get:*:audio/x-ape:*,http-get:*:audio/ape:*,http-get:*:audio/x-monkeys-audio:*,http-get:*:audio/wav:*,http-get:*:audio/x-wav:*,http-get:*:audio/wave:*,http-get:*:audio/x-ms-wma:*,http-get:*:audio/x-ogg:*,http-get:*:audio/x-scpls:*,http-get:*:audio/x-vorbis+ogg:*,http-get:*:audio/x-vorbis:*,http-get:*:audio/x-wavpack:*,http-get:*:video/mp4:*
98037; 14 ForcedEncode - Stream is being encoded to apply Replaygain/DSP settings.
98052; 15 Play - Z:\M4\Laswell, Greg\Take a Bow\01 Take Everything.flac (http://192.168.1.5:49382/encode/DE3ED7364A42F6B8-2147483638.L16)
98110; 16 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
98113; 17 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
98190; 18 StateTimer - Playing,old=Stopped
102183; 19 ForcedEncode - Stream is being encoded to apply Replaygain/DSP settings.
102186; 20 GetEncodedFile[1] 192.168.1.5 - GET Z:\M4\Laswell, Greg\Take a Bow\01 Take Everything.flac to 192.168.1.13; mime=audio/L16;rate=44100;channels=2,rate=44100,channels=2
102230; 21 SetNextAVTransportURI - Success - http://192.168.1.5:49382/encode/05EF0936D53A40780.L16
105183; 22 GetEncodedFile[1] - exit=0, playtime=2991
168796; 23 StateTimer - Playing,old=Paused
287282; 24 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
287287; 25 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
287584; 26 GetEncodedFile[2] 192.168.1.5 - GET Z:\M4\Laswell, Greg\Take a Bow\02 My Fight (For You).flac to 192.168.1.13; mime=audio/L16;rate=44100;channels=2,rate=44100,channels=2
287656; 27 GetEncodedFile[2] - exit=0, playtime=67
349408; 28 PostSoapRequest - 500,send=POST /uuid-677a63db-6686-01d7-34a0-b827eb0b7fae/ctl-urn-schemas-upnp-org-service-AVTransport-1 HTTP/1.1
Host: 192.168.1.13:49152
User-Agent: MusicBee UPnP Plugin
Content-Type: text/xml; charset="utf-8"
SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Pause"
Content-Length: 290
<?xml version="1.0" encoding="UTF-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Pause xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Pause></s:Body></s:Envelope>
349413; 29 SoapRequest:Pause:urn:schemas-upnp-org:service:AVTransport:1:InstanceID=0 - <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>501</errorCode>
<errorDescription>Action Failed</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
349416; 30 Pause - status=500
3. works. I've tested it with 16/44.1 and 24/192 files without playback issues.
I had tried all of these before but it was pointless because I had not realized that mpd was stuck after the first test haha.
Note:
You should add an option to clear/update the nexturi when the playback queue is changed in MusicBee tho.
I was a bit surprised when the 2nd song I had removed from the playing queue in MB started playing on the pi anyhow.
So my guess is that mpd errors out because of the transcoded wav/pcm streams. Which is odd since mpd is very robust and usually swallows anything you throw at it, format-wise.
I can also confirm that it's not a device/hardware issue since the proxmox lxc debian container gets stuck in the same manner. And there MPD simply writes the incoming audio to a FIFO PIPE which snapserver then uses as the source for the 2 snapclients on the pis.
Edit:
I just noticed that MusicBee does not switch the song alongside the pi.
While the pi is already playing the 2nd song, MusicBee still displays the first one as playing.2126746; 121 Play - Z:\M2\Coldplay\X&Y 24-192\01 Square One.flac (http://192.168.1.5:49382/files/2F7E7C0ED794A867p.x-flac)
2126772; 122 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
2126775; 123 GetFile[18] 192.168.1.5 - GET Z:\M2\Coldplay\X&Y 24-192\01 Square One.flac to 192.168.1.13
2126789; 124 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
2127048; 125 SetNextAVTransportURI - Success - http://192.168.1.5:49382/files/F5145CED5FF56764p.x-flac
2407048; 126 GetFile[18] - exit=0, playtime=280255
2411139; 127 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
2411144; 128 GetFile[19] 192.168.1.5 - GET Z:\M2\Coldplay\X&Y 24-192\02 What If.flac to 192.168.1.13
2411477; 129 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
Update:
This seems to have been a problem specific to these files (just my luck).
When other albums worked correctly, I
recompressed this one with the latest encoder (it was encoded with an encoder from 2019) and now it switches songs in MB correctly. I suspect seeking was the problem since the cursor in the wavebar of MusicBee jumped instead of scrolling smoothly. Now it scrolls smoothly. And seeking was also missing from the plugin log.
Log of it working with the same songs after recompression:
5803061; 249 Play - Z:\M2\Coldplay\X&Y [24-192]\01 Square One.flac (http://192.168.1.5:49382/files/71B91248D794A867p.x-flac)
5803076; 250 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
5803080; 251 GetFile[36] 192.168.1.5 - GET Z:\M2\Coldplay\X&Y [24-192]\01 Square One.flac to 192.168.1.13
5803094; 252 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
5803219; 253 StateTimer - Playing,old=Stopped
5803236; 254 SetNextAVTransportURI - Success - http://192.168.1.5:49382/files/52D30B6B5FF56764p.x-flac
6080710; 255 GetFile[36] - exit=0, playtime=277611
6087325; 256 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
6087330; 257 GetFile[37] 192.168.1.5 - GET Z:\M2\Coldplay\X&Y [24-192]\02 What If.flac to 192.168.1.13
6087346; 258 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
6090710; 259 Seek - goto=0
6090725; 260 GetFile[37] - exit=10054, playtime=3374
6090726; 261 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
6090735; 262 GetFile[38] 192.168.1.5 - GET Z:\M2\Coldplay\X&Y [24-192]\02 What If.flac to 192.168.1.13
6090748; 263 GetFile - range=bytes 5954-200303874/200303875
6090752; 264 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
6090760; 265 Seek - pos=0
6090797; 266 SetNextAVTransportURI - No track to queue
6379259; 267 GetFile[38] - exit=0, playtime=288503
6388223; 268 StateTimer - Stopped,old=Playing
6388247; 269 SyncNewPlayState - Stopped,mb=Playing
Update 2:
I think the song switching/seeking problem is bound to older encoders:
8164701; 410 Play - Z:\M1\Blunt, James\Back to Bedlam-The Bedlam Sessions - Live In Ireland\10 Tears And Rain.flac (http://192.168.1.5:49382/files/BC0A6E819EF7ED0Cp.x-flac)
8164727; 411 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
8164730; 412 GetFile[60] 192.168.1.5 - GET Z:\M1\Blunt, James\Back to Bedlam-The Bedlam Sessions - Live In Ireland\10 Tears And Rain.flac to 192.168.1.13
8164746; 413 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
8165976; 414 SetNextAVTransportURI - Success - http://192.168.1.5:49382/files/162D90A631C611ABp.x-flac
8166823; 415 GetFile[60] - exit=0, playtime=2051
8400654; 416 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
8400659; 417 GetFile[61] 192.168.1.5 - GET Z:\M1\Blunt, James\Back to Bedlam-The Bedlam Sessions - Live In Ireland\11 No Bravery.flac to 192.168.1.13
8400671; 418 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
8402367; 419 GetFile[61] - exit=0, playtime=1693
No track change in MusicBee, choppy cursor in wave bar.
Encoder:
reference libFLAC 1.3.1 20141125
Casting the same songs to the same pi via Symfonium works flawlessly.