Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Achieving gapless play regardless of renderer, and other requirements..
12-12-2013, 13:49
Post: #1
Achieving gapless play regardless of renderer, and other requirements..
I have spent many, many, hours trying to get an acceptable UPnP set-up working as an alternative to Squeezebox (Logitech Media Server). My main requirements are:

- a linux server that can handle flacs of varying quality up to 24/192, with support for non-standard tags for classical music
- gapless playback even on UPnP renderers that don't support it
- playback of the highest quality flacs on renderers that support that quality without any degradation, and on those that don't with some acceptable loss of quality
- a control point on linux and/or Android
- multi-room playing of the same tracks would be a bonus.

To cut a very long story short I finally achieved most this. If this is of interest, read on. If not, don't!

1. I use MinimServer as my server, running on my linux desktop. It provides the best library menu I have seen anywhere, by some margin, and is very flexible. The hierarchical menu structure, using the tags that I want to use, dynamically shows what is relevant at each level. This is exactly what I need. People reading further might wonder why I don't use foobar2000 as the server. The answer is that although the menu can be tailored somewhat, it is not a patch on MinimServer's.

2. I then use foobar2000 as the software that streams music to my UPnP Hi-Fi, in my case running under Wine on my linux desktop, with the foo_upnp plugin. The UPnP Server settings are:

Basic Settings - to achieve compatibility between different renderers (mine seem to have the same 'User-agent' string so cannot be differentiated by foobar2000 profiles):

- always use the default streaming profile
- add WAV and LPCM 44.1/16 compatibility stream

Streaming Profiles - Default profile (so always used for all devices)

Renderer Capabilities (probably unnecessary):
- samplerate range: 11025 to 192000
- Max bit depth: 24

Playback Stream Capture:
- codec: lpcm
- samplerate: 192000 (the best my best UPnP player will do)

This foobar2000 will then act as a renderer, playing what it is told to by my Control Point.

I have checked that if I turn off the 44.1/16 WAV/LPCM compatibility stream, files at 24/192 still play on by best renderer but don't play on others of lesser quality, proving that these settings work to a degree. However, it does seem that I only get 16 bit streams (i.e. 16/192) which is disappointing.

3. For the Control Point, either another instance of foobar2000 on my laptop acting as a control point, or BubbleUPnP on my smartphone, can be used as controllers of MinimServer, both with an option to play 'gapless'. (A Control Point with support for gapless playback is required - I tried KinskyDS but could not get it to work on linux). The Control Point is set to select foobar2000 on my desktop as the renderer. That in turn streams the music to my Hi-Fi device(s).

After all this, how does the sound get played on my Hi-Fi renderers?

A. Start MinimServer on my desktop (automatic at boot).
B. Start the foobar2000 server on my desktop, and the UPnP server within it (automatic on starting foobar2000).
C. Start a Control Point and set it to use MinimServer as the source, and the foobar2000 server as the renderer
D. On the Hi-Fi, select foobar2000 instance on my desktop as the server, playing the 'Playback Stream Capture' stream
E. Select music using the excellent MinimServer menu, and play on happily.

The music is now uninterrupted, with no gaps because foobar2000 can play flacs gapless, the Control Point is set to ask it to do so, and the players effectively only see 1 'track' so it doesn't matter if they aren't inherently gapless. Further, if it the device cannot cope with the data quality, it falls back to 44.1/16 (i.e. CD quality). It also transpires that I can play the same music in different rooms. The sync isn't adjustable, but seems reasonable.

At last. No gaps, a really usable music selection method, and decent sound. All that remains is to find those missing 8 bits for my best quality tracks Smile
Find all posts by this user
Quote this message in a reply
12-12-2013, 14:07
Post: #2
RE: Achieving gapless play regardless of renderer, and other requirements..
Hi, many thanks for sharing this, it sounds very interesting. As I've not much experience with foobar2000 I've got a few questions:
Does this mean that foobar2000 creates the gapless stream which is then played by your HiFi renderer? Which HiFi renderer do you use? Did you achieve multi-room playback with this setup?
Find all posts by this user
Quote this message in a reply
12-12-2013, 16:16
Post: #3
RE: Achieving gapless play regardless of renderer, and other requirements..
(12-12-2013 14:07)winxi Wrote:  Hi, many thanks for sharing this, it sounds very interesting. As I've not much experience with foobar2000 I've got a few questions:
Does this mean that foobar2000 creates the gapless stream which is then played by your HiFi renderer? Which HiFi renderer do you use? Did you achieve multi-room playback with this setup?
Yes, foobar2000 creates the gapless stream. I currently have 2 HiFi renderers, a Musical Fidelity M1 CLiC, and a Marantz CR603, in separate rooms. I can play them at the same time.

If there is a headless linux-based renderer that can create just an lpcm or wav playback capture stream from flacs, I'd use it in preference to foobar2000, which does a lot more than I need for this purpose. I haven't found one yet. I wonder if that could be a next project for Simon Nash?
Find all posts by this user
Quote this message in a reply
12-12-2013, 17:23
Post: #4
RE: Achieving gapless play regardless of renderer, and other requirements..
(12-12-2013 13:49)Pastim Wrote:  D. On the Hi-Fi, select foobar2000 instance on my desktop as the server, playing the 'Playback Stream Capture' stream
Excellent info. But could you elaborate a bit more on point D ? You select the Foobar instance from your HI-FI device ? Or do you mean you select your renderer *from* the foobar instance, and instruct foobar to play the 'Playback Stream Capture' ?
Regards,
Find all posts by this user
Quote this message in a reply
12-12-2013, 18:25
Post: #5
RE: Achieving gapless play regardless of renderer, and other requirements..
(12-12-2013 17:23)Andre Gosselin Wrote:  
(12-12-2013 13:49)Pastim Wrote:  D. On the Hi-Fi, select foobar2000 instance on my desktop as the server, playing the 'Playback Stream Capture' stream
Excellent info. But could you elaborate a bit more on point D ? You select the Foobar instance from your HI-FI device ? Or do you mean you select your renderer *from* the foobar instance, and instruct foobar to play the 'Playback Stream Capture' ?
Regards,
I go to my Hi-Fi device, select the foobar2000 server as my source. This gives 3 options - a Media List, a Playlist, or 'Playback Stream Capture'. I select the latter. This foobar2000 instance is acting both as a renderer for MinimServer, and as a server for the HiFi. I suppose one could use yet another control point to control the interaction between the foobar2000 server and the HiFi renderer, but there is little point, since it is just streaming continuously without need to track selection.
Find all posts by this user
Quote this message in a reply
12-12-2013, 20:43
Post: #6
RE: Achieving gapless play regardless of renderer, and other requirements..
(12-12-2013 18:25)Pastim Wrote:  
(12-12-2013 17:23)Andre Gosselin Wrote:  
(12-12-2013 13:49)Pastim Wrote:  D. On the Hi-Fi, select foobar2000 instance on my desktop as the server, playing the 'Playback Stream Capture' stream
Excellent info. But could you elaborate a bit more on point D ? You select the Foobar instance from your HI-FI device ? Or do you mean you select your renderer *from* the foobar instance, and instruct foobar to play the 'Playback Stream Capture' ?
Regards,
I go to my Hi-Fi device, select the foobar2000 server as my source. This gives 3 options - a Media List, a Playlist, or 'Playback Stream Capture'. I select the latter. This foobar2000 instance is acting both as a renderer for MinimServer, and as a server for the HiFi. I suppose one could use yet another control point to control the interaction between the foobar2000 server and the HiFi renderer, but there is little point, since it is just streaming continuously without need to track selection.
Sorry, maybe I am a little stupid, but I still miss something. When you say "I go to my Hi-Fi device, select the foobar2000 server as my source", do you mean you go to your *physical* HI-FI device (not to foobar or your control point) and that this HI-FI device has *local* controls (buttons, display, handset, ...) which let you select foobar as the source ? Those 3 options you talk about (Media List, Playlist, Playback Stream Capture) are seen and selected on the HI-FI device (local display or device custom control app), or on Foobar app, or on the control point ? What exact HI-FI device do you use ?

I do not see how to replicate your procedure on my own system.

Thanks for your patience.
Find all posts by this user
Quote this message in a reply
12-12-2013, 21:08
Post: #7
RE: Achieving gapless play regardless of renderer, and other requirements..
(12-12-2013 20:43)Andre Gosselin Wrote:  
(12-12-2013 18:25)Pastim Wrote:  
(12-12-2013 17:23)Andre Gosselin Wrote:  
(12-12-2013 13:49)Pastim Wrote:  D. On the Hi-Fi, select foobar2000 instance on my desktop as the server, playing the 'Playback Stream Capture' stream
Excellent info. But could you elaborate a bit more on point D ? You select the Foobar instance from your HI-FI device ? Or do you mean you select your renderer *from* the foobar instance, and instruct foobar to play the 'Playback Stream Capture' ?
Regards,
I go to my Hi-Fi device, select the foobar2000 server as my source. This gives 3 options - a Media List, a Playlist, or 'Playback Stream Capture'. I select the latter. This foobar2000 instance is acting both as a renderer for MinimServer, and as a server for the HiFi. I suppose one could use yet another control point to control the interaction between the foobar2000 server and the HiFi renderer, but there is little point, since it is just streaming continuously without need to track selection.
Sorry, maybe I am a little stupid, but I still miss something. When you say "I go to my Hi-Fi device, select the foobar2000 server as my source", do you mean you go to your *physical* HI-FI device (not to foobar or your control point) and that this HI-FI device has *local* controls (buttons, display, handset, ...) which let you select foobar as the source ? Those 3 options you talk about (Media List, Playlist, Playback Stream Capture) are seen and selected on the HI-FI device (local display or device custom control app), or on Foobar app, or on the control point ? What exact HI-FI device do you use ?

I do not see how to replicate your procedure on my own system.

Thanks for your patience.
Yes, that is what I mean, and is what I do, except that I can also use a remote control to tell the Hi-Fi what to do. I can see the 3 options on the Hi-Fi itself. My 2 devices are listed in a previous post. They both have small displays, and remote controls, but they are at the other end of the rooms from where I sit.

As I suggested you could also use a second Control Point to achieve the same thing, using it to tell the Foobar2000 server to send its 'Playback Capture Stream' to the Hi-Fi, but that seems an unnecessary complication.

It turned out to be quite hard to explain this clearly. If you have a system on which you can install foobar2000 (without necessarily setting up a local media library for it since that is not needed) I suggest you do so. Much will become clear (I hope!).
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)