Jump to content
IGNORED

Stream to HQPlayer Desktop from foobar2000


Recommended Posts

I found easy to setup and easy to use network solution based on foo_upnp.

It allows to use foobar2000 GUI with HQPlayer sound engine.

 

Streaming sample rate is fixed by configuration. Can be changed, but not automatically based on source content. That's from my point of view the biggest drawback. Another drawback is impossibility to stream DSD content without conversion to PCM.

On the other side, simplicity of setup and use is advantage.

Another advantage is possibility to perform DSP on PCM content in foobar2000 prior to streaming the content to HQPlayer. foobar2000 compatible DSP plugins and standard VST plugins can be used.

And ... all PCM audio formats which play in foobar2000 are supported.

 

If you are interested read my guide: https://docs.google.com/document/d/1gkUNvSlgV_n82izd4vggyPQRhVB4tkB4vF0kx6YUZTg/pub

 

I tried the solution on my notebook and described how to setup it, but I didn't use it yet for listening sessions. If you tried it, please share your experiences and ideas. We can discuss here usability, compare it to other solutions. Based on feedback I can improve or adapt the description.

Link to post
Share on other sites
  • 2 weeks later...

tranfa, thanks for feedback!

 

Feedback is important for me to know if my effort to write and publish setup instructions had any sense.

Link to post
Share on other sites

foo_upnp is free to use but it isn't open source. Author is the same as author of BubbleUPnP Server. I sent him PM via hydrogenaudio and asked him if it would be possible to modify 'Playback stream capture' to adapt to source content bitrate and bit depth. I pointed him to this topic and to Miska's suggestion from http://www.computeraudiophile.com/f11-software/hq-player-20293/index254.html#post576776 . Let's see what happens. :)

Link to post
Share on other sites

Miska, I got this answer from the author:

Hi,

 

It is not possible to dynamically change the bitrate of PSC based on input audio. By definition it is a PCM (WAV) stream with fixed samplerate/bitdepth that you configure. To send audio stream unmodified to hqplayer, it would have to be an UPnP renderer in which case each track would be sent one by one (and hqplayer would handle the decoding) instead of a long infinite stream.

Link to post
Share on other sites
Have you tried this with VLC?

 

No. Can VLC export what's currently playing as http stream?

HQPlayer Desktop doesn't contain UPnP renderer functioinality, but it is able to play http streams like those from radio stations, if http URL is part of a playlist.

Link to post
Share on other sites
This is incorrect. Just simply change the output mode in SACD -> Preferences from PCM to DSD.

I am familiar with both foobar2000 and DSD topics. But this thread is about streaming to HQPlayer Desktop via foo_upnp, outputting http stream.

Link to post
Share on other sites
No. Can VLC export what's currently playing as http stream?

HQPlayer Desktop doesn't contain UPnP renderer functioinality, but it is able to play http streams like those from radio stations, if http URL is part of a playlist.

 

Yes, it can.

Link to post
Share on other sites
Yes, it can.

 

I found that there is such possibility. But I was unsuccessful to make it functional with HQPlayer.

 

I went through wizard in File | Stream, set a FLAC file as input and set up http stream as output. I set no transcoding. In Firefox, I tried then to open the stream, http://192.168.8.100:8080/stream.flac in my case. Firefox opened File Open/Save As dialog with that URL, so the stream was really live. But I was unable to open that stream in HQPlayer Desktop. Reason unknown ...

 

I don't want to use VLC instead of Foobar2000. But VLC could be used between foobar2000 and HQPlayer. VLC could act as DLNA renderer for content played from foobar2000 - in that case foo_upnp could be able to stream audio content without transcoding. If VLC could be able to output http stream without transcoding to HQPlayer, it could bring improvement over the solution I described in the OP.

Link to post
Share on other sites

Aren't you always going to have an issue with a fixed sample rate & bit depth, if all you are doing is providing HQPlayer with just one pcm stream to 'funnel' the whole of the music file playlist?

 

May be you should be concentrate instead on providing HQPlayer with a 'proper' UPnP renderer front end, which can trap separate track stream URLs from the instructions from UPnP control points and forward those streams to HQPlayer.

We will win because our NHS is the beating heart of this country. It is the best of this country. It is unconquerable. It is powered by love.

-- Boris Johnson

 

We are far more united and have far more in common with each other than things that divide us.

-- Jo Cox

Link to post
Share on other sites
Aren't you always going to have an issue with a fixed sample rate & bit depth, if all you are doing is providing HQPlayer with just one pcm stream to 'funnel' the whole of the music file playlist?

 

May be you should be concentrate instead on providing HQPlayer with a 'proper' UPnP renderer front end, which can trap separate track stream URLs from the instructions from UPnP control points and forward those streams to HQPlayer.

 

May be.

My original intention was to point to an easy to setup solution. I'm not experienced in streaming, I just tried and described an easy to setup solution, which has some limitations.

More concrete suggestions could help to improve the solution from OP.

Link to post
Share on other sites
Is it possible to do this with JRiver? It has more internal bits for volume control which may or may not be audible...

 

If JRiver si able to output http stream then probably yes. I didn't try that.

Link to post
Share on other sites
If JRiver si able to output http stream then probably yes. I didn't try that.

 

Well I got it to stream to Foobar via UPnP, which could theoretically be streamed to HQPlayer. Somehow I doubt that 64 bit volume control (for Replaygain) is worth the trouble.

 

If there is another way, I would love to hear it :)

Link to post
Share on other sites
Miska, I got this answer from the author:

 

He didn't seem to understand the proposal. foobar could cut the stream when input sampling rate changes and replace it with a new one at the same URL but with different parameters. This only needs to happen when format changes, as long as format doesn't change, there's no need to do anything and it can be "infinitely" long stream....

 

Doing such should be relatively easy to implement.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to post
Share on other sites

Thanks Miska, I sent bubbleguuum your proposal via PM on hydrogenaudio.

If he would agree to implement it, the benefit would be retained simplicity of this solution. The foo_upnp plugin installation and configuration is for this purpose very simple and no other SW is needed.

 

I will let you know his answer.

Link to post
Share on other sites
He didn't seem to understand the proposal. foobar could cut the stream when input sampling rate changes and replace it with a new one at the same URL but with different parameters. This only needs to happen when format changes, as long as format doesn't change, there's no need to do anything and it can be "infinitely" long stream....

 

Doing such should be relatively easy to implement.

Perhaps the priority is to serve the 'dumbest' of UPnP/DLNA renderers. I can imagine cutting the stream, even temporarily, could permanently interrupt some (if not all) UPnP renderers, requiring manual/user intervention.

 

The other foobar2000 UPnP supporting plugin component, foo_out_upnp, does change the stream settings to follow a new sample rate change, but it also changes the URL for the new stream. However, it can only do this because it also employs a (user hidden) UPnP control point to instruct the UPnP renderer as necessary.

We will win because our NHS is the beating heart of this country. It is the best of this country. It is unconquerable. It is powered by love.

-- Boris Johnson

 

We are far more united and have far more in common with each other than things that divide us.

-- Jo Cox

Link to post
Share on other sites
Thanks Miska, I sent bubbleguuum your proposal via PM on hydrogenaudio.

If he would agree to implement it, the benefit would be retained simplicity of this solution. The foo_upnp plugin installation and configuration is for this purpose very simple and no other SW is needed.

 

I will let you know his answer.

Bubbleguuum has been known to use these forums, even converse with Miska! May be you could get him to respond here?

We will win because our NHS is the beating heart of this country. It is the best of this country. It is unconquerable. It is powered by love.

-- Boris Johnson

 

We are far more united and have far more in common with each other than things that divide us.

-- Jo Cox

Link to post
Share on other sites

I did so. Thanks for letting me know he is registered here.

Link to post
Share on other sites
Perhaps the priority is to serve the 'dumbest' of UPnP/DLNA renderers. I can imagine cutting the stream, even temporarily, could permanently interrupt some (if not all) UPnP renderers, requiring manual/user intervention.

 

No it doesn't it just means end of the track for UPnP Renderer. There's no other way for server to tell the client that the track has ended... It is completely normal for HTTP which UPnP is based on. For example when a web server sends a picture, it just cuts the TCP connection after sending the last byte to indicate end of the file. Sometimes the server can tell the size as part of the headers, but it is optional and not always known (dynamically generated HTML content, internet radio, etc).

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to post
Share on other sites
No it doesn't it just means end of the track for UPnP Renderer. There's no other way for server to tell the client that the track has ended... It is completely normal for HTTP which UPnP is based on.
Well quite, it's what I meant by the UPnP renderer being 'interrupted'. It just assumes the 'track' has ended and stops playing. The user then has to get involved by reselecting the stream via the renderer's controller app to get it the process going again. Not very user friendly and hence why I imagine the developer fixed the stream's audio resolution to prevent that scenario. Don't forget the 'foobar play capture' stream 'track' is provided by a (public) UPnP media server, so is available to any UPnP control point on the network.

 

Which is why I also mentioned the other foobar2000 UPnP plugin (not Bubbleguuum's) whose http server (not exposed as a UPnP media server) does send varying sample rate streams, but also directs the UPnP renderer to the appropriate stream with its built-in UPnP control point.

We will win because our NHS is the beating heart of this country. It is the best of this country. It is unconquerable. It is powered by love.

-- Boris Johnson

 

We are far more united and have far more in common with each other than things that divide us.

-- Jo Cox

Link to post
Share on other sites

Now 'Playback stream capture' in foo_upnp contains bitrate combo box, where user can select desired fixed bitrate. I could imagine a solution, which would retain the current fixed bitrate functionality, but one special entry would be added into the combobox, it could be called 'adaptive' or 'variable' ...

 

The user then has to get involved by reselecting the stream via the renderer's controller app to get it the process going again.

 

That could be done automatically based on currently played source content, when that 'adaptive' bitrate choice would be selected.

 

What I suggested would be in effect only if 'Playback stream capture' is used (that's already a special case how to use foo_upnp) with 'adaptive' bitrate mode set. Otherwise the adaptive bitrate behavior wouldn't be in function and all would function as till now.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...