MinimServer Forum
Gapless (groan) with RoPieee and BubbleUpnp - Printable Version

+- MinimServer Forum (https://forum.minimserver.com)
+-- Forum: MinimServer (/forumdisplay.php?fid=1)
+--- Forum: Digital Audio (/forumdisplay.php?fid=10)
+--- Thread: Gapless (groan) with RoPieee and BubbleUpnp (/showthread.php?tid=7027)

Pages: 1 2 3 4


RE: Gapless (groan) with RoPieee and BubbleUpnp - simbun - 04-10-2023 10:56

(04-10-2023 10:01)dartmoor Wrote:  I've now removed the transcoding and installed a wired connection - and on the same Ethernet switch as the music server.

The result is now gapless BubbleUpnp playback!
Glad that you got it sorted. It was definitely the transcoding that was causing the problem as there's no way BubbleUPnP would be the only one having the issue.
That doesn't explain why OpenHome on Ropieee wasn't gapless though, that makes no sense whatsoever! You should enable that by the way and make sure you're playing to the correct one in BubbleUPnP by hiding the non-OpenHome interface.

(04-10-2023 10:01)dartmoor Wrote:  Incidentally I believe SImbum uses a HAT DAC on the Pi. I've another Pi to install and I'm wondering what's the 'best' HAT DAC to use - and what case?
I bought a Allo DigiOne HAT for the RPi 3 but it was years ago now, and this one isn't a DAC. I haven't looked into these for years so I'm afraid I have no recommendations.

It sounds like you already have Pi's available so this may be a relatively expensive alternative, but my more recent purchase with a similar price was a WiiM Pro. Admittedly I use it's digital out into a DAC, but it's a very competent endpoint, which now works perfectly with MinimServer. There is a WiiM Pro Plus with a better analog output stage if you wanted a one box solution.


RE: Gapless (groan) with RoPieee and BubbleUpnp - simoncn - 04-10-2023 12:32

(04-10-2023 10:56)simbun Wrote:  Glad that you got it sorted. It was definitely the transcoding that was causing the problem as there's no way BubbleUPnP would be the only one having the issue.
That doesn't explain why OpenHome on Ropieee wasn't gapless though, that makes no sense whatsoever! You should enable that by the way and make sure you're playing to the correct one in BubbleUPnP by hiding the non-OpenHome interface.

BubbleUPnP transcoding could cause a gap even with OpenHome because of a delay in Ropieee receiving audio data for the next track before the current track had finished playing.


RE: Gapless (groan) with RoPieee and BubbleUpnp - dartmoor - 04-10-2023 13:51

(04-10-2023 10:01)dartmoor Wrote:  Incidentally I believe SImbum uses a HAT DAC on the Pi. I've another Pi to install and I'm wondering what's the 'best' HAT DAC to use - and what case?
I bought a Allo DigiOne HAT for the RPi 3 but it was years ago now, and this one isn't a DAC. I haven't looked into these for years so I'm afraid I have no recommendations.

It sounds like you already have Pi's available so this may be a relatively expensive alternative, but my more recent purchase with a similar price was a WiiM Pro. Admittedly I use it's digital out into a DAC, but it's a very competent endpoint, which now works perfectly with MinimServer. There is a WiiM Pro Plus with a better analog output stage if you wanted a one box solution.
[/quote]

I've heard some good things about the Wiim Pro plus so that's a possibility. I have a now old QED streamer that used to wind me up because it wasn't gapless - it got banished to one of the childrens rooms - I'm looking for a replacement. Hence using a spare Pi4 - or perhaps an external DAC. I'll think on. Now I know that Minimserver, BubbleuPnp and RoPieee work well together it opens up a lot of possibilities.


RE: Gapless (groan) with RoPieee and BubbleUpnp - simbun - 04-10-2023 16:40

(04-10-2023 12:32)simoncn Wrote:  BubbleUPnP transcoding could cause a gap even with OpenHome because of a delay in Ropieee receiving audio data for the next track before the current track had finished playing.
You're right of course. Given BubbleUPnP thought the track needed transcoding the playlist that sat on Ropieee would have contained stream links to BubbleUPnP, so whilst there were fewer hops (to get the next playing track URL), it still had to go to BubbleUPnP, which had to go to MinimServer, which ...

This is the one thing I don't like about BubbleUPnP, all (or the majority at least) of its capabilities are turned on by default (although I do understand why), so you really need to lock things down otherwise you'll find it doing unexpected things, including draining the battery. Having said that, there's really nothing else to match it.


RE: Gapless (groan) with RoPieee and BubbleUpnp - simoncn - 04-10-2023 20:42

It is a fine judgment call for how many optional settings to enable by default.

For many years, MinimServer didn't enable any optional settings by default but this meant that people didn't see any benefit when they upgraded from the starter version to the full version (or took the free 30-day trial). In MinimServer 2.2, this was changed so that a few settings that should be beneficial to nearly all users are enabled by default in the full version. The effects of these settings are clearly visible (unlike FFmpeg transcoding in BubbleUPnP) and this enables the user to remove any settings that are not desired.

Despite this, BubbleUPnP is still the best control point that I have used.


RE: Gapless (groan) with RoPieee and BubbleUpnp - bubbleguuum - 05-10-2023 12:01

Thanks for the appreciation for BubbleUPnP.

A bit of clarification about BubbleUPnP and 'BubbleUPnP Server' transcoding to PCM with FFmpeg.

Android BubbleUPnP and BubbleUPnP Server do not transcode with FFmpeg blindly:
if it is transcoding, there is a reason for it caused by a mix of settings and renderer reported capabilities.
Sometimes it may be unwanted or done without, hence the option to entirely disable transcoding unconditionally.

When playing to UPnP AV renderer with Android BubbleUPnP, the default is to transcode audio formats the renderer does not claim to support in its protocolInfo (that list can sometimes be bogus with formats missing). For example if you play an ALAC track to a renderer not supporting ALAC, it will be transcoded to either WAV or LPCM if the renderer support these (99% of renderers support one or the other or both).

Moreover, transcoding can also be triggered to enforce some setting in 'More > Settings > Renderer settings (Pick renderer)' such as 'Max supported sample rate', 'Convert 24-bit to 16-bit' and 'Downmix multi-channel to stereo' (all of them being disabled by default). Enabling ReplayGain in the 'Now Playing' tab will also force PCM decoding for tracks that have ReplayGain metadata.

For playing to OpenHome renderers managed by 'BubbleUPnP Server', the same than all the above apply but with settings taken from the BubbleUPnP Server web configuration page for the renderer.

Finally, if you play to an OpenHome renderer not managed by BubbleUPnP Server (such as upmpdcli), all of the above do not apply and Android BubbleUPnP never transcode.

If you notice Android BubbleUPnP or 'BubbleUPnP Server' is transcoding when it shouldn't (taking into account all of the above) let me know and send me a log file.


RE: Gapless (groan) with RoPieee and BubbleUpnp - simbun - 05-10-2023 14:46

Firstly, just wanted to thank you both for outstanding products and support!

(05-10-2023 12:01)bubbleguuum Wrote:  Finally, if you play to an OpenHome renderer not managed by BubbleUPnP Server (such as upmpdcli), all of the above do not apply and Android BubbleUPnP never transcode.
I accepted @simoncn's supposition that the Ropieee OpenHome playlist would also require BubbleUPnP transcoding blindly, mainly because he's always bloody right Smile but also because it fit the bill, however, I did test it last night and BubbleUPnP doesn't modify the playlist at all, it still points to MinimServer so thanks for that confirmation. I was going to update the thread this morning but time got away from me.

I reset all the BubbleUPnP settings and captured a log, and it didn't transcode!
Fortunately I kept the log I captured a couple of days ago and when comparing it to today's I saw:
Code:
INFO     - 0:00:12.814    - converting mono to stereo
I was playing a set of 5 second tracks that consisted of a tone I'd created in Audacity (obviously mono), which I used for testing gapless playback. I assume this is by design?

At this point then I'm no clearer as to why BubbleUPnP wasn't playing gapless but mconnect and Hi-Fi Cast were! If @dartmoor is still around and has his original setup would it be worth looking at a log (assuming it's still not gapless)?


RE: Gapless (groan) with RoPieee and BubbleUpnp - bubbleguuum - 05-10-2023 15:22

(05-10-2023 14:46)simbun Wrote:  Firstly, just wanted to thank you both for outstanding products and support!

(05-10-2023 12:01)bubbleguuum Wrote:  Finally, if you play to an OpenHome renderer not managed by BubbleUPnP Server (such as upmpdcli), all of the above do not apply and Android BubbleUPnP never transcode.
I accepted @simoncn's supposition that the Ropieee OpenHome playlist would also require BubbleUPnP transcoding blindly, mainly because he's always bloody right Smile but also because it fit the bill, however, I did test it last night and BubbleUPnP doesn't modify the playlist at all, it still points to MinimServer so thanks for that confirmation. I was going to update the thread this morning but time got away from me.

I reset all the BubbleUPnP settings and captured a log, and it didn't transcode!
Fortunately I kept the log I captured a couple of days ago and when comparing it to today's I saw:
Code:
INFO     - 0:00:12.814    - converting mono to stereo
I was playing a set of 5 second tracks that consisted of a tone I'd created in Audacity (obviously mono), which I used for testing gapless playback. I assume this is by design?

At this point then I'm no clearer as to why BubbleUPnP wasn't playing gapless but mconnect and Hi-Fi Cast were! If @dartmoor is still around and has his original setup would it be worth looking at a log (assuming it's still not gapless)?


Yes a mono input file always forces a silent transcoding to stereo (which I forgot to mention). There is no setting for it.
I do not remember why exactly I did this long ago, but I think it was because mono files fail to play on many renderers and stereo is just more compatible.
And mono files are not super frequent.


As for gapless, assuming it is enabled in settings and the underlying renderer supports it properly, it only works when playing consecutive tracks of the same gapless album (for example Pink Floyd - Dark Side of The Moon). It does not trigger when playing unrelated consecutive tracks and will do nothing on a non-gapless album (it is not a generic gap remover). Transcoding to PCM should work with gapless if the original media format is gapless (mp3 notoriously is not) and assuming BubbleUPnP can get a sample accurate duration from FFmpeg (should never be a problem for FLAC).


RE: Gapless (groan) with RoPieee and BubbleUpnp - simoncn - 05-10-2023 17:33

(05-10-2023 14:46)simbun Wrote:  I accepted @simoncn's supposition that the Ropieee OpenHome playlist would also require BubbleUPnP transcoding blindly, mainly because he's always bloody right Smile but also because it fit the bill, however, I did test it last night and BubbleUPnP doesn't modify the playlist at all, it still points to MinimServer so thanks for that confirmation.

I suspect there is some misunderstanding here.

If BubbleUPnP is doing FFmpeg transcoding of a stream that is provided by MinimServer, BubbleUPnP must be giving the Ropieee a URL that points to BubbleUPnP rather than a URL that points to MinimServer. If the Ropieee is reading the stream directly from MinimServer, it would not be possible for BubbleUPnP to perform FFmpeg transcoding on the stream.


RE: Gapless (groan) with RoPieee and BubbleUpnp - simbun - 05-10-2023 18:14

(05-10-2023 17:33)simoncn Wrote:  
(05-10-2023 14:46)simbun Wrote:  I accepted @simoncn's supposition that the Ropieee OpenHome playlist would also require BubbleUPnP transcoding blindly, mainly because he's always bloody right Smile but also because it fit the bill, however, I did test it last night and BubbleUPnP doesn't modify the playlist at all, it still points to MinimServer so thanks for that confirmation.

I suspect there is some misunderstanding here.

If BubbleUPnP is doing FFmpeg transcoding of a stream that is provided by MinimServer, BubbleUPnP must be giving the Ropieee a URL that points to BubbleUPnP rather than a URL that points to MinimServer. If the Ropieee is reading the stream directly from MinimServer, it would not be possible for BubbleUPnP to perform FFmpeg transcoding on the stream.
I had determined that BubbleUPnP was transcoding when it was the control point but I couldn't understand why it wasn't working when the playlist was on Ropieee, as I assumed BubbleUPnP wouldn't be involved. I interpreted your reply below to suggest that BubbleUPnP would still need to perform transcoding given Ropieee couldn't play the track, which does makes sense.

(04-10-2023 12:32)simoncn Wrote:  
(04-10-2023 10:56)simbun Wrote:  Glad that you got it sorted. It was definitely the transcoding that was causing the problem as there's no way BubbleUPnP would be the only one having the issue.
That doesn't explain why OpenHome on Ropieee wasn't gapless though, that makes no sense whatsoever! You should enable that by the way and make sure you're playing to the correct one in BubbleUPnP by hiding the non-OpenHome interface.

BubbleUPnP transcoding could cause a gap even with OpenHome because of a delay in Ropieee receiving audio data for the next track before the current track had finished playing.

Sounds like I might have read too much into it?