Author Topic: UPnP 2025 - Continuation of the original UPnP/DLNA plugin  (Read 35056 times)

BoringName

  • Sr. Member
  • ****
  • Posts: 916
“Force little endian for PCM streams” works for 16bit files but not 24bit (slow track). It seems that the plug'in blocks ‘sample rate’ at 48khz.
The title and author appear but not the format (only PCM).
It's not blocking the sample rate. You can see in the log it's set to 96000
GetEncodedFile[1] 192.168.1.11 - GET E:\Musique\Chanson Française\Blondino\Blondino - Un paradis pour moi\01 - Faire.flac to 192.168.1.12; mime=audio/L24;rate=96000;channels=2,rate=96000,channels=2

flac and 24-bit output formats don't work.

What happens. It seems to be playing so does it just produce white noise? If it is white noise does it sound different with "force little endian" checked?

24-bit files work with “output as a continuous stream” but are limited to a 48Khz “sample rate”.
Continuous stream are set to 16 bit.

I can play 192k/24bit 5.1 flac natively and encoded to foobar and it seems to work fine so it's looking like this is another Marantz quirk.

Although I did notice it downmixed it to stereo even though It's not set to do that so that's an issue I need to fix. If set to PCM 24 it keeps the 6 channels. With output set to flac it's downmixing.
Last Edit: March 08, 2025, 03:50:09 PM by BoringName

Casual Tea

  • Jr. Member
  • **
  • Posts: 23
I'm going to send you a PM for a test version.
Sent you the results, at this point I think mpds curl implementation is just fickle.

Does UPnP Eventing provide track progress (for renderers that support it)? I don't know how often you're polling, or the latency of replies, but I'm sure with a few carefully timed requests you'd be able to work out when the second is ticking over. That or add half a second to every update :)
Alternatively you could add a configurable offset in the plugin settings +-xxx ms (assuming the delay is at least consistent). If the upnp renderer only reports seconds precision, you could first ping the upnp device 5 times, average the result, add 20ms to that (or use a minimum of 50ms, that's more than precise enough) and use it as a polling rate. Then poll over more than 1s to narrow down the moment the second value changes.
I just pinged 3 of the pis and the usual ping was 1ms with a single ping of 9ms as an outlier.
I would've liked to propose the solution to upnp delay with synced lyrics (which are most sensitive to this problem) that Symfonium uses here as well, but you probably have no way to influence the lyrics panel.

With the + and - you can adjust the lyrics offset in Symfonium to compensate for upnp/bluetooth delays (or poorly synced lyrics) during playback.
I tried to use Symfonium on android but it wouldn't detect my plugin at all. Neither the Mediaserver or Renderer devices. Foobar showed up but nothing I did could get it to show Musicbee. Not sure what the issue is there.
If you open a support ticket on the Symfonium forum with debug logs, Tolriq (the dev) will most likely be able to tell you why your plugin does not show up. I've used Symfonium to cast to the pis, an onkyo receiver, Kodi (running on my HTPC) and a couple smart TVs. It's upnp implementation is pretty mature and the sync usually pretty good too.

"- NextURI will now be cleared if the associated track is removed from the now playing list and there is nothing to replace it."
This does not work for me.
I select 2 songs, start playback and the 2nd song is set as nexturi:
Code
1756610; 109 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:*
1761238; 110 Play - Z:\M4\bôa\Race Of A Thousand Camels\03 Duvet.flac (http://192.168.1.5:49382/files/BB9D29AE1267C776p.flac)
1761271; 111 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
1761275; 112 GetFile[17] 192.168.1.5 - GET Z:\M4\bôa\Race Of A Thousand Camels\03 Duvet.flac to 192.168.1.13
1761280; 113 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
1761397; 114 StateTimer - Playing,old=Stopped
1761415; 115 SetNextAVTransportURI - Success - http://192.168.1.5:49382/files/46F076508A85353Fp.flac
1763493; 116 GetFile[17] - exit=0, playtime=2209
Upon removing the second song from "Upcoming Tracks" in MusicBee, nothing new is logged by the plugin and when the first song ends, the second one starts playing with MB stuck on displaying the first one.
Code
1941531; 117 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
1941537; 118 GetFile[18] 192.168.1.5 - GET Z:\M2\Lola Marsh\Someday Tomorrow Maybe\02 Only For A Moment.flac to 192.168.1.13
1941625; 119 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
1943255; 120 GetFile[18] - exit=0, playtime=1626
1964952; 121 SetNextAVTransportURI - Success - http://192.168.1.5:49382/files/46F076508A85353Fp.flac
The 2nd song is even repeated once before playback stops.
Code
2380779; 122 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
2380784; 123 GetFile[19] 192.168.1.5 - GET Z:\M2\Lola Marsh\Someday Tomorrow Maybe\02 Only For A Moment.flac to 192.168.1.13
2380798; 124 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
2382461; 125 GetFile[19] - exit=0, playtime=1660
2572578; 126 StateTimer - Stopped,old=Playing
2572583; 127 SyncNewPlayState - Stopped,mb=Playing
Even more interesting is that upon adding another song to the Upcoming Tracks and then switching to the next song, the 2nd song is set as the nexturi once again.
Code
2606134; 128 Play - Z:\M4\Razorlight\Slipway Fires\01 Wire to Wire.flac (http://192.168.1.5:49382/files/1140C30883183379p.flac)
2606167; 129 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
2606182; 130 GetFile[20] 192.168.1.5 - GET Z:\M4\Razorlight\Slipway Fires\01 Wire to Wire.flac to 192.168.1.13
2606211; 131 Profile - Generic Device, useragent=Music Player Daemon 0.23.12
2606306; 132 StateTimer - Playing,old=Stopped
2606336; 133 SetNextAVTransportURI - Success - http://192.168.1.5:49382/files/46F076508A85353Fp.flac
2607943; 134 GetFile[20] - exit=0, playtime=1727
And when I start playback with only a single song and that song ends, the plugin probably goes into an infinite loop of attempting to set the nexturi. I had 12.000 lines of log after a couple seconds with:
Code
3074663; 1694 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#SetNextAVTransportURI"
Content-Length: 352

<?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:SetNextAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><NextURI /><NextURIMetaData /></u:SetNextAVTransportURI></s:Body></s:Envelope>
3074667; 1695 SoapRequest:SetNextAVTransportURI:urn:schemas-upnp-org:service:AVTransport:1:InstanceID=0,NextURI=,NextURIMetaData= - <?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>

3074671; 1696 SetNextAVTransportURI - Failed -
Last Edit: March 08, 2025, 06:52:44 PM by Casual Tea

jean.valjean

  • Jr. Member
  • **
  • Posts: 29
Good evening,

I listen to my files on the Marantz with the media player on the Jellyfin server.
It works fine, it recognizes the Marantz and the Marantz displays the right information (title, artist, format).
There's a plug-in for DLNA, with foobar and other profiles.

I'm not a computer scientist so I don't know if this would help you, but if you want to have a look, it's open source. https://github.com/jellyfin/jellyfin-plugin-dlna.

Many thanks for all your effort.


Translated with DeepL.com (free version)

Moodymann

  • Jr. Member
  • **
  • Posts: 29
Foobar (foo_upnp) has a great Playback Stream Capture feature that works almost perfectly (synchronization of rewinding by the track's graphic wave, availability of crossfade and other player settings). In MB streaming of files via the plugin does not work. Who can help me understand how to set this up? First of all, I am interested in streaming a file to a device without precoding

Plugin settings https://imgur.com/W7V288N




Code
2327297; 464 GetEncodedFile[58] 192.168.1.101 - GET G:\_labels\T\The Bunker New York\[BK039] Wata Igarashi - Kioku - 2019\01 - Wata Igarashi - Body.mp3 to 192.168.1.100; mime=audio/wav,rate=44100,channels=2
2327471; 465 GetEncodedFile[58] - exit=10054, playtime=174
2327601; 466 SetNextAVTransportURI - Success - http://192.168.1.101:49382/encode/A8E4B128D9470A790.wav
2327615; 467 Profile - Generic Device, useragent=stagefright/1.2 (Linux;Android 13)
2327616; 468 Profile - Generic Device, useragent=stagefright/1.2 (Linux;Android 13)
2327616; 469 GetEncodedFile[59] 192.168.1.101 - GET G:\_labels\T\The Bunker New York\[BK039] Wata Igarashi - Kioku - 2019\01 - Wata Igarashi - Body.mp3 to 192.168.1.100; mime=audio/wav,rate=44100,channels=2
2332752; 470 GetEncodedFile[59] - exit=0, playtime=5135
2340277; 471 Profile - foobar2000, useragent=foobar2000/1.x
2340487; 472 Profile - foobar2000, useragent=foobar2000/1.x
2460488; 473 Profile - BubbleUPnP, useragent=Windows7/6.1 UPnP/1.0 BubbleUPnPServer/0.9-update50
2460494; 474 Profile - BubbleUPnP, useragent=Windows7/6.1 UPnP/1.0 BubbleUPnPServer/0.9-update50
2614392; 475 SyncNewPlayState - Stopped,mb=Playing
2616638; 476 Profile - BubbleUPnP, useragent=Windows7/6.1 UPnP/1.0 BubbleUPnPServer/0.9-update50
2616682; 477 Profile - BubbleUPnP, useragent=Android/13 UPnP/1.0 BubbleUPnP/4.4.8
2617231; 478 Profile - BubbleUPnP, useragent=Windows7/6.1 UPnP/1.0 BubbleUPnPServer/0.9-update50
2617258; 479 Profile - BubbleUPnP, useragent=Android/13 UPnP/1.0 BubbleUPnP/4.4.8
2617259; 480 Profile - BubbleUPnP, useragent=Android/13 UPnP/1.0 BubbleUPnP/4.4.8
2620542; 481 Play - stream (http://192.168.1.101:49382/encode/continuousstream-2147483214.L16)
2621296; 482 Profile - BubbleUPnP, useragent=BubbleUPnP UPnP/1.1
2621296; 483 Profile - BubbleUPnP, useragent=BubbleUPnP UPnP/1.1
2621296; 484 GetEncodedFile[60] 192.168.1.101 - GET  to 192.168.1.100; mime=audio/L16;rate=44100;channels=2,rate=44100,channels=2
2621314; 485 GetEncodedFile[60] - exit=10053, playtime=17
2621593; 486 StateTimer - Loading,old=Stopped
2622917; 487 Profile - Generic Device, useragent=Lavf/61.9.101
2622917; 488 Profile - Generic Device, useragent=Lavf/61.9.101
2622917; 489 GetEncodedFile - Stream zero=/encode/continuousstream-2147483214.l16
2622917; 490 httpresponse - Code 404
2623098; 492 StateTimer - Stopped,old=Loading
2623098; 493 SyncNewPlayState - Stopped,mb=Playing
Last Edit: March 09, 2025, 06:16:59 AM by Moodymann

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Sent you the results, at this point I think mpds curl implementation is just fickle.

Thanks for testing that out, yeah that was my last hurrah on that issue. I don't think there is anything else I can do from my end.

Alternatively you could add

I've got an idea on how to improve the sync, pretty sure it will work ok.

This does not work for me.
I select 2 songs, start playback and the 2nd song is set as nexturi:

I think I know the cause of this, I need to do some changes to accommodate some notification changes Steven has made. Hopefully that should get it to work for everyone.

And when I start playback with only a single song and that song ends, the plugin probably goes into an infinite loop of attempting to set the nexturi. I had 12.000 lines of log after a couple seconds with:

That's definitely odd. If 3 NextURI calls fail in a row it set to stop trying. In any case, I think it's all linked to the same issue which I should be able to fix for the next version.

BoringName

  • Sr. Member
  • ****
  • Posts: 916
I listen to my files on the Marantz with the media player on the Jellyfin server.
It works fine, it recognizes the Marantz and the Marantz displays the right information (title, artist, format).
There's a plug-in for DLNA, with foobar and other profiles.
I'm not a computer scientist so I don't know if this would help you, but if you want to have a look, it's open source. https://github.com/jellyfin/jellyfin-plugin-dlna.

I'll check it out to see if there is anything they specifically do for Marantz devices.

Edit: They don't do anything special. The marantz profile is set to direct play for flac so no transcoding. Which is what "force native streams" should do for you. I noticed this on one of your previous logs
Code
2538270; 485 GetFile[24] 192.168.1.11 - GET E:\Musique\Chanson Française\Blondino\Blondino - Hauteurs\01. En Sagittaire.flac to 192.168.1.12
2538270; 486 Profile - Marantz ND8006, useragent=AvegaMediaServer/2.0 Linux/2.6
2723968; 487 GetFile[24] - exit=0, playtime=185697

That's a flac file that natively streamed for over 3 minutes. What happened here? Did it play noise, silence? Seems odd you would let it go for 3 minutes if it wasn't working.
Last Edit: March 09, 2025, 01:03:39 PM by BoringName

BoringName

  • Sr. Member
  • ****
  • Posts: 916
I am interested in streaming a file to a device without precoding

Ok, you started off as if you were wanting to stream to foobar, but the log says you are using bubbleUPnP to play the file and finally you state you are trying to stream to a device.

What exactly are you wanting to do?

Note - you are using an old version of the plugin. If you update to the latest version you will also need to update musicbee to the latest version. If you're happy to do that there is a "force native stream" option that will most likely get it to work for you without having to mess around with profile settings.

RRoyce

  • Newbie
  • *
  • Posts: 9
Code
Still having no luck with getting native stream to Marantz PM7000n. This is the upnp log when "force native stream" is checked:

[code0; 1 Initialise - 09/03/2025 15:58:32
10; 2 GetNetworkAddresses - 192.168.0.11,dns=True,name=Ethernet,speed=1000000000
10; 3 GetNetworkAddresses - 127.0.0.1,dns=False,name=Loopback Pseudo-Interface 1,speed=1073741824
10; 4 GetNetworkAddresses - http://192.168.0.11:49382
31; 5 ProcessMessage 192.168.0.13 - device 'uuid:a528d32c-1f50-1e51-0080-000678ad6d92:Marantz PM7000N',valid=True
34; 6 Profile - Marantz PM7000N, useragent=|LINUX UPnP/1.0 Denon-Heos/fc67c7b91c9f70d6c175610bb51c54463b1e5afa
34; 7 Profile - Marantz PM7000N, useragent=|LINUX UPnP/1.0 Denon-Heos/fc67c7b91c9f70d6c175610bb51c54463b1e5afa
60; 8 Activate - Marantz PM7000N:
28756; 9 Play - G:\StevieB\Music\Kamasi Washington\Fearless Movement\10 Interstellar Peace (The Last Stance).flac (G:\StevieB\Music\Kamasi Washington\Fearless Movement\10 Interstellar Peace (The Last Stance).flac)
28757; 10 Play - startIndex cannot be larger than length of string.
Parameter name: startIndex]

It does play as 16 bit PCM with "force little endian" checked. This is the upnp log in that case:

[code0; 1 Initialise - 09/03/2025 15:52:05
10; 2 GetNetworkAddresses - 192.168.0.11,dns=True,name=Ethernet,speed=1000000000
10; 3 GetNetworkAddresses - 127.0.0.1,dns=False,name=Loopback Pseudo-Interface 1,speed=1073741824
10; 4 GetNetworkAddresses - http://192.168.0.11:49382
48; 5 ProcessMessage 192.168.0.13 - device 'uuid:a528d32c-1f50-1e51-0080-000678ad6d92:Marantz PM7000N',valid=True
50; 6 Profile - Marantz PM7000N, useragent=|LINUX UPnP/1.0 Denon-Heos/fc67c7b91c9f70d6c175610bb51c54463b1e5afa
51; 7 Profile - Marantz PM7000N, useragent=|LINUX UPnP/1.0 Denon-Heos/fc67c7b91c9f70d6c175610bb51c54463b1e5afa
75; 8 Activate - Marantz PM7000N:
152768; 9 Play - G:\StevieB\Music\Kamasi Washington\Fearless Movement\10 Interstellar Peace (The Last Stance).flac (http://192.168.0.11:49382/encode/0A39967DBFB6CA19-2147483643.L16)
152992; 10 Profile - Generic Device, useragent=AvegaMediaServer/2.0 Linux/2.6
152992; 11 Profile - Generic Device, useragent=AvegaMediaServer/2.0 Linux/2.6
153041; 12 StateTimer - Loading,old=Stopped
153084; 13 GetEncodedFile[1] 192.168.0.11 - GET G:\StevieB\Music\Kamasi Washington\Fearless Movement\10 Interstellar Peace (The Last Stance).flac to 192.168.0.13; mime=audio/L16;rate=48000;channels=2,rate=48000,channels=2
154041; 14 StateTimer - Playing,old=Loading
154327; 15 SetNextAVTransportURI - Cleared
158118; 16 GetEncodedFile[1] - exit=10054, playtime=5033][/code]
Last Edit: March 09, 2025, 05:27:20 PM by RRoyce

Moodymann

  • Jr. Member
  • **
  • Posts: 29
I am interested in streaming a file to a device without precoding

Ok, you started off as if you were wanting to stream to foobar, but the log says you are using bubbleUPnP to play the file and finally you state you are trying to stream to a device.

What exactly are you wanting to do?

Note - you are using an old version of the plugin. If you update to the latest version you will also need to update musicbee to the latest version. If you're happy to do that there is a "force native stream" option that will most likely get it to work for you without having to mess around with profile settings.

Oh, thanks. From my first experience, the new version of the plugin works better - I'll need to configure it. Force native stream is exactly what I expected from the plugin. I want to output sound to the upnp device, while controlling it from MB (including rewinding, smooth transitions between tracks, etc.). That is, I need streaming without decoding, that is, for the file to be played in the same format and quality as the original.
Now it works with some failures (for example, the next track in the MB list plays on the upnp device, but does not go to the next one in the MB shell)
When the "output as continuous stream" option is enabled, playback does not work for me.
For me, this is critical, since I use the desktop version for navigation and viewing the library

Sorry, I hope you understand what is written here))

Plugin settings https://imgur.com/IhhrzRM
Last Edit: March 09, 2025, 05:36:13 PM by Moodymann

BoringName

  • Sr. Member
  • ****
  • Posts: 916
28756; 9 Play - G:\StevieB\Music\Kamasi Washington\Fearless Movement\10 Interstellar Peace (The Last Stance).flac (G:\StevieB\Music\Kamasi Washington\Fearless Movement\10 Interstellar Peace (The Last Stance).flac)
28757; 10 Play - startIndex cannot be larger than length of string.
Parameter name: startIndex]

Looks like there is an issue processing the URI for a native stream. I'll check it out.

edit: It's had an issue processing the metadata for that track. If you could PM me a link to that specific track that would be very helpful. I'll change the next version so it provides more info when this occurs. The startindex error is due to other parts of the program receiving
Code
G:\StevieB\Music\Kamasi Washington\Fearless Movement\10 Interstellar Peace (The Last Stance).flac
when it's expecting something like this.
Code
http://192.168.0.11:49382/files/0A39967DBFB6CA19p.flac

I'll fix that as well.
Last Edit: March 10, 2025, 12:45:42 AM by BoringName

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Now it works with some failures (for example, the next track in the MB list plays on the upnp device, but does not go to the next one in the MB shell)

Did you upgrade to the latest version of musicbee? There is an issue with some layout configurations that I should be able to fix in the next version.

You should uncheck the "enable remote control of musicbee" option as you won't need that.

What device are you sending it to? If you want the "continuous stream" option to work you probably need to untick the "force little endian" option.

From what you have said I don't think you should use the continuous stream option anyway.

RRoyce

  • Newbie
  • *
  • Posts: 9
Re. Marantz PM7000n it's not just that specific track that causes the issue but all tracks, flac or mp3. This only happens with "force native stream" enabled. If not enabled, and "little endian" not checked either, then you get white noise. With "little endian" enabled it plays as 16 bit PCM. I did test casting to BubbleUPnP Android, and all play as expected, "force native stream" enabled or not. I can still send you that track if you wish, but not sure how helpful that will be.

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Re. Marantz PM7000n it's not just that specific track that causes the issue but all tracks, flac or mp3. This only happens with "force native stream" enabled. If not enabled, and "little endian" not checked either, then you get white noise. With "little endian" enabled it plays as 16 bit PCM. I did test casting to BubbleUPnP Android, and all play as expected, "force native stream" enabled or not. I can still send you that track if you wish, but not sure how helpful that will be.

It would be helpful. The error that is occurring when you have "force native stream" ticked is not actually related to the marantz device. Something is going wrong with the plugin trying to create the metadata for the track. This is before it attempts to send anything to the device. From your response it's happening to all your tracks but it would just help if I had an example track to use with my system to see if I can get the error to trigger. It will make it a hell of a lot easier to fix.

It is odd that it works for BubbleUPnP though. On the bubbleupnp UI does it state it's playing a flac file or a different format?

edit: if it's too much hassle sending files you can wait for the next version, it should give more info in the error log for me to work with.
Last Edit: March 10, 2025, 10:10:46 AM by BoringName

RRoyce

  • Newbie
  • *
  • Posts: 9
Sent you a link to the track.

With BubbleUPnP the UI shows flac if I'm sending flac, mp3 if the track is mp3.

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Sent you a link to the track.

With BubbleUPnP the UI shows flac if I'm sending flac, mp3 if the track is mp3.

Thanks. Of course the file works fine for me >.<

This line in the logs is the issue
Code
28756; 9 Play - G:\StevieB\Music\Kamasi Washington\Fearless Movement\10 Interstellar Peace (The Last Stance).flac (G:\StevieB\Music\Kamasi Washington\Fearless Movement\10 Interstellar Peace (The Last Stance).flac)

it should look like something like this this
Code
28756; 9 Play - G:\StevieB\Music\Kamasi Washington\Fearless Movement\10 Interstellar Peace (The Last Stance).flac (http://192.168.0.11:49382/files/0A39967DBFB6CA19p.flac)

Looking at the code, the only way that can possibly happen is if creating the metadata fails which is independent of the device. So it's bizarre it works for bubbleupnp if the profile settings are the same.

I'll check if I've missed something but probably not much I can do until the next version which should give me a better indication of the cause. It should be out tomorrow.