iTunes is the useragent LMS uses. It's probably for compatibility reasons somewhere.
Marantz and denon do seem to show up as HEOS from the logs I've seen. Are you sure it's turned off? LMS could be using it too I suppose I can't remember.
Some devices use multiple useragents to communicate. You can see how many individual devices there are at the start of the log. Devices are listed after a "ProcessMessage" entry. It will show the IP address, uuid and name of the device.
The Marantz receiver is in standby actually. (no actual on/off button) It's probably advertising itself on the network in that mode.
The useragent field just has to be a partial match of the useragent. If LMS is also using heos you can separate multiple useragents with a pipe symbol. So Logitech Media Server|Denon
I have changed the 'match useragent' to
Logitech|iTunesDo you think that is good?
(I won't be using the Marantz for this)Ape? that's a new one. The plugin doesn't recognise those mimetypes currently. I should be able to sort that out.
I assume LMS supports Opus and Ape?
Yes it does.
When Ape came out, I think it was the first lossless audio compression algorithm, and that gained it a lot of popularity.
I also used it a lot:

But later on Flac became more and more popular and pretty much won the battle.
(Flac being open source and Ape not, being one of the reasons for that)
After a couple of years I converted all my Ape files to Flac and stuck with that.
But, these days I have a dedicated purpose for Ape again, so I would like to be able to play them using UPnP2025.
(I'll post a request to have APE added to the API)
I think the issue you are going to have is you will want to use DSP/relaygain settings which will always trigger an encode. There is no way around that.
I won't be using DSP or EQ, but I do want to use ReplayGain.
Making sure that I understand correctly:
So as soon as you play a song that has ReplayGain tags, and you have ReplayGain activated in MusicBee, the plugin will re-encode the file to PCM?
But if a song does not have ReplayGain tags, and/or ReplayGain is deactivated in MusicBee, it should be possible to stream the song in its original format, and preserving its RG tags?
Hm, I would prefer not to re-encode the files, and I want to use the ReplayGain information present in the tags.
Because same as MusicBee, LMS can also use ReplayGain. (album-, track-, smart- etc.)
So if the track would not be re-encoded, I am guessing LMS should be able to use the RG tag values?
If that is the case, I would need to turn off RG in MB when using UPnP2025, and then turn it on again after that.
Would it be possible for the plugin to have an option that can disable RG in MusicBee when the plugin is being used?
LMS will then take care of the correct loudness by using the RG tags, and re-encoding can be avoided?
(but hold on before doing anything. I'll first need to confirm that LMS will indeed use the RG tags information when rendering from UPnP2025, and for now that seems to fail)
- - -
A new test, using UPnP2025 v1.9.3.0 and MB v3.6.9208, no DSP, EQ or ReplayGain
using these settings:

I played a couple of tracks for some 10 seconds:
play an mp3 file
plays fine
stop
play a Flac file
no sound
stop
play an Opus file
no sound
stop
play a Wav file
no sound
stop
play an mp3 file again
plays fine
stop
the logfile:
23080; 10 Play - Input - K:\_MusicBee test library\UPnP test\Walter Becker - 01 - Door Number Two - MP3.mp3 Output - (http://192.168.2.1:49382/files/709A3B8A1FA4405Fp.mpeg)
23131; 11 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
23139; 12 GetFile[1] 192.168.2.1 - GET K:\_MusicBee test library\UPnP test\Walter Becker - 01 - Door Number Two - MP3.mp3 to 192.168.2.1
23139; 13 GetFile - range=bytes 0-8256988/8256989
23140; 14 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
23235; 15 StateTimer - Loading,old=Stopped
23458; 16 PostSoapRequest - 500,send=POST /plugins/UPnP/MediaRenderer/AVTransport/control?player=d8%3Abb%3Ac1%3A89%3A80%3A77 HTTP/1.1
Host: 192.168.2.1:9000
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>
23458; 17 SoapRequest:SetNextAVTransportURI:urn:schemas-upnp-org:service:AVTransport:1:InstanceID=0,NextURI=,NextURIMetaData= - <?xml version="1.0" encoding="UTF-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError><errorCode xsi:type="xsd:int">714</errorCode><errorDescription xsi:type="xsd:string">Illegal MIME-type</errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope>
23461; 18 SetNextAVTransportURI - Failed - Ignored as a blank URI is probable cause.
36813; 19 GetFile[1] - exit=10054, playtime=13672
39418; 20 Play - Input - K:\_MusicBee test library\UPnP test\Walter Becker - 02 - Door Number Two - FLAC.flac Output - (http://192.168.2.1:49382/files/939522C965308B1Cp.x-flac)
39430; 21 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
39431; 22 GetFile[2] 192.168.2.1 - GET K:\_MusicBee test library\UPnP test\Walter Becker - 02 - Door Number Two - FLAC.flac to 192.168.2.1
39431; 23 GetFile - range=bytes 0-26558156/26558157
39431; 24 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
39557; 25 StateTimer - Loading,old=Stopped
50722; 26 GetFile[2] - exit=10054, playtime=11290
53881; 27 Play - Input - K:\_MusicBee test library\UPnP test\Walter Becker - 03 - Door Number Two - OPUS.opus Output - (http://192.168.2.1:49382/encode/BECBE4282A21C9BD-2147483633.L16)
54009; 28 StateTimer - Loading,old=Stopped
54252; 29 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
54253; 30 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
54254; 31 GetEncodedFile[3] - range=bytes 0-52468415/52468416
54254; 32 GetEncodedFile[3] 192.168.2.1 - GET K:\_MusicBee test library\UPnP test\Walter Becker - 03 - Door Number Two - OPUS.opus to 192.168.2.1; mime=audio/L16;rate=48000;channels=2,rate=48000,channels=2
64643; 33 GetEncodedFile[3] - exit=10054, playtime=10387
66959; 34 Play - Input - K:\_MusicBee test library\UPnP test\Walter Becker - 05 - Door Number Two - PCM.wav Output - (http://192.168.2.1:49382/encode/472DD050DD4B6785-2147483622.L16)
67095; 35 StateTimer - Loading,old=Stopped
67311; 36 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
67312; 37 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
67312; 38 GetEncodedFile[4] - range=bytes 0-48204119/48204120
67312; 39 GetEncodedFile[4] 192.168.2.1 - GET K:\_MusicBee test library\UPnP test\Walter Becker - 05 - Door Number Two - PCM.wav to 192.168.2.1; mime=audio/L16;rate=44100;channels=2,rate=44100,channels=2
77482; 40 GetEncodedFile[4] - exit=10054, playtime=10169
79575; 41 Play - Input - K:\_MusicBee test library\UPnP test\Walter Becker - 01 - Door Number Two - MP3.mp3 Output - (http://192.168.2.1:49382/files/709A3B8A1FA4405Fp.mpeg)
79586; 42 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
79586; 43 GetFile[5] 192.168.2.1 - GET K:\_MusicBee test library\UPnP test\Walter Becker - 01 - Door Number Two - MP3.mp3 to 192.168.2.1
79586; 44 GetFile - range=bytes 0-8256988/8256989
79586; 45 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
79698; 46 StateTimer - Loading,old=Stopped
79909; 47 PostSoapRequest - 500,send=POST /plugins/UPnP/MediaRenderer/AVTransport/control?player=d8%3Abb%3Ac1%3A89%3A80%3A77 HTTP/1.1
Host: 192.168.2.1:9000
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>
79909; 48 SoapRequest:SetNextAVTransportURI:urn:schemas-upnp-org:service:AVTransport:1:InstanceID=0,NextURI=,NextURIMetaData= - <?xml version="1.0" encoding="UTF-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError><errorCode xsi:type="xsd:int">714</errorCode><errorDescription xsi:type="xsd:string">Illegal MIME-type</errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope>
79912; 49 SetNextAVTransportURI - Failed - Ignored as a blank URI is probable cause.
90182; 50 GetFile[5] - exit=10054, playtime=10596
- - -
edit:OK, this is weird.
Trying it again less than an hour later, Flac will now also play.
Without me having changed any setting at all.
(Opus and Wav still fail)
0; 1 Initialise - 3/19/2025 18:14:26
30; 2 GetNetworkAddresses - 192.168.2.1,dns=True,name=Ethernet 2,speed=1000000000
30; 3 GetNetworkAddresses - 127.0.0.1,dns=False,name=Loopback Pseudo-Interface 1,speed=1073741824
30; 4 GetNetworkAddresses - http://192.168.2.1:49382
50; 5 ProcessMessage 192.168.2.111 - device 'uuid:6e52c5d4-d3c1-1894-0080-0005cdf71792:Marantz NR1509',valid=True
963; 6 ProcessMessage 127.0.0.1 - device 'uuid:AB9A065F-27CA-0727-FA47-55F54D527FA3:SqueezePlay',valid=True
965; 7 Profile - LMS (Lyrion/Logitech Media Server), useragent=|Logitech Media Server (8.5.2 - 1716215514)
966; 8 Profile - LMS (Lyrion/Logitech Media Server), useragent=|Logitech Media Server (8.5.2 - 1716215514)
981; 9 Activate - SqueezePlay:http-get:*:audio/mpeg:*,http-get:*:audio/L16;rate=8000;channels=1:*,http-get:*:audio/L16;rate=8000;channels=2:*,http-get:*:audio/L16;rate=11025;channels=1:*,http-get:*:audio/L16;rate=11025;channels=2:*,http-get:*:audio/L16;rate=12000;channels=1:*,http-get:*:audio/L16;rate=12000;channels=2:*,http-get:*:audio/L16;rate=16000;channels=1:*,http-get:*:audio/L16;rate=16000;channels=2:*,http-get:*:audio/L16;rate=22050;channels=1:*,http-get:*:audio/L16;rate=22050;channels=2:*,http-get:*:audio/L16;rate=24000;channels=1:*,http-get:*:audio/L16;rate=24000;channels=2:*,http-get:*:audio/L16;rate=32000;channels=1:*,http-get:*:audio/L16;rate=32000;channels=2:*,http-get:*:audio/L16;rate=44100;channels=1:*,http-get:*:audio/L16;rate=44100;channels=2:*,http-get:*:audio/L16;rate=48000;channels=1:*,http-get:*:audio/L16;rate=48000;channels=2:*,http-get:*:audio/vnd.dlna.adts:*,http-get:*:audio/vnd.dlna.adts:*,http-get:*:audio/mp4:*,http-get:*:audio/mp4:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma:*,http-get:*:audio/x-ms-wma:*,http-get:*:audio/x-ms-wma:*,http-get:*:application/ogg:*,http-get:*:audio/x-flac:*
1865; 10 Play - Input - K:\_MusicBee test library\UPnP test\Walter Becker - 01 - Door Number Two - MP3.mp3 Output - (http://192.168.2.1:49382/files/709A3B8A1FA4405Fp.mpeg)
1879; 11 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
1886; 12 GetFile[1] 192.168.2.1 - GET K:\_MusicBee test library\UPnP test\Walter Becker - 01 - Door Number Two - MP3.mp3 to 192.168.2.1
1886; 13 GetFile - range=bytes 0-8256988/8256989
1886; 14 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
2204; 15 PostSoapRequest - 500,send=POST /plugins/UPnP/MediaRenderer/AVTransport/control?player=d8%3Abb%3Ac1%3A89%3A80%3A77 HTTP/1.1
Host: 192.168.2.1:9000
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>
2205; 16 SoapRequest:SetNextAVTransportURI:urn:schemas-upnp-org:service:AVTransport:1:InstanceID=0,NextURI=,NextURIMetaData= - <?xml version="1.0" encoding="UTF-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError><errorCode xsi:type="xsd:int">714</errorCode><errorDescription xsi:type="xsd:string">Illegal MIME-type</errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope>
2207; 17 SetNextAVTransportURI - Failed - Ignored as a blank URI is probable cause.
12478; 18 GetFile[1] - exit=10054, playtime=10587
15268; 19 Play - Input - K:\_MusicBee test library\UPnP test\Walter Becker - 02 - Door Number Two - FLAC.flac Output - (http://192.168.2.1:49382/files/939522C965308B1Cp.x-flac)
15278; 20 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
15278; 21 GetFile[2] 192.168.2.1 - GET K:\_MusicBee test library\UPnP test\Walter Becker - 02 - Door Number Two - FLAC.flac to 192.168.2.1
15278; 22 GetFile - range=bytes 0-26558156/26558157
15279; 23 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
15390; 24 StateTimer - Loading,old=Stopped
15613; 25 PostSoapRequest - 500,send=POST /plugins/UPnP/MediaRenderer/AVTransport/control?player=d8%3Abb%3Ac1%3A89%3A80%3A77 HTTP/1.1
Host: 192.168.2.1:9000
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>
15613; 26 SoapRequest:SetNextAVTransportURI:urn:schemas-upnp-org:service:AVTransport:1:InstanceID=0,NextURI=,NextURIMetaData= - <?xml version="1.0" encoding="UTF-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError><errorCode xsi:type="xsd:int">714</errorCode><errorDescription xsi:type="xsd:string">Illegal MIME-type</errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope>
15616; 27 SetNextAVTransportURI - Failed - Ignored as a blank URI is probable cause.
25736; 28 GetFile[2] - exit=10054, playtime=10456
28196; 29 Play - Input - K:\_MusicBee test library\UPnP test\Walter Becker - 03 - Door Number Two - OPUS.opus Output - (http://192.168.2.1:49382/encode/BECBE4282A21C9BD-2147483632.L16)
28211; 30 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
28211; 31 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
28213; 32 GetEncodedFile[3] - range=bytes 0-52468415/52468416
28213; 33 GetEncodedFile[3] 192.168.2.1 - GET K:\_MusicBee test library\UPnP test\Walter Becker - 03 - Door Number Two - OPUS.opus to 192.168.2.1; mime=audio/L16;rate=48000;channels=2,rate=48000,channels=2
28327; 34 StateTimer - Loading,old=Stopped
38960; 35 GetEncodedFile[3] - exit=10054, playtime=10746
40924; 36 Play - Input - K:\_MusicBee test library\UPnP test\Walter Becker - 05 - Door Number Two - PCM.wav Output - (http://192.168.2.1:49382/encode/472DD050DD4B6785-2147483621.L16)
40935; 37 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
40935; 38 Profile - LMS (Lyrion/Logitech Media Server), useragent=iTunes/4.7.1 (Windows; N; Windows 10; 8664; EN; cp1252) SqueezeCenter, Squeezebox Server, Logitech Media Server/8.5.2/1716215514
40935; 39 GetEncodedFile[4] - range=bytes 0-48204119/48204120
40935; 40 GetEncodedFile[4] 192.168.2.1 - GET K:\_MusicBee test library\UPnP test\Walter Becker - 05 - Door Number Two - PCM.wav to 192.168.2.1; mime=audio/L16;rate=44100;channels=2,rate=44100,channels=2
41051; 41 StateTimer - Loading,old=Stopped
51777; 42 GetEncodedFile[4] - exit=10054, playtime=10840