Jump to content
IGNORED

Roon / HQPlayer Integration


Recommended Posts

Yeah! Plays just fine and sounds great. But I've discovered that filter called poly-sinc-ext which I really liked during one song. And then I've tried to play another one and the HQPlayer was against. The Roon say that something wrong with the output application (HQP) so I've never been able to listen that filter again...just doesn't work. The others are fine on the other hand)

 

Whenever track changes, HQPlayer checks whether the requested settings are possible with the new track. If the requested combination of filter and output rate is not possible, playback stops or refuses to start. Other poly-sinc filters except poly-sinc-ext can do practically any conversion ratio. But poly-sinc-ext is on purpose limited to simple multiples of the source rate.

 

So in case for example you first have a track at 44.1k and select 5.6 MHz output rate and then later choose a 48k track, playback will stop until 6.1 MHz output rate is selected because poly-sinc-ext cannot do 48k to 5.6 MHz.

 

With the remote control API Roon is using, it could manage this situation by stopping the HQPlayer playback and switching output rate (if available) and then resume playback. But for example some DSD capable DAC drivers cannot do 48k-base DSD on Windows (while it may work on Linux like iFi products, or not work at all like Marantz due to DAC firmware limitations), so you may be out of luck with such combinations.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Although I understand your answer, it suggests that it would be desirable to have an HQP setting that basically says given the filter choices I have made, upsample to the maximum extent possible and if upsampling is not possible then apply my chosen filter settings to the existing sample rate.

 

Let's say you have a Marantz HD-DAC1 and have a 96/24 source file. There's no way you can use closed-form filter with that combination for upsampling to DSD, because the DAC (for no good technical reason) refuses to work with 48k-base rates for DSD (3.1/6.1 MHz). You would need to use some other filter.

 

Another way to approach it would be to allow us to set and save rules that would say "when I play a 24/48 file do this ... and when I play a 24/192 file do this and when I play a DSD64 do this. That way all of our files would play, even if there was a slight lag time whenever there was a format change to allow the player to adjust settings.

 

This is one possibility, although one would need to understand the rule set that applies for the particular DAC. Now the HQPlayer main window guides this through for the current source format, but naturally cannot do it exhaustively for all possible combinatios.

 

HQPlayer doesn't have bounded set of source and output formats. You can have source file that has 123456 Hz sampling rate, or any other arbitrary rate. That, combined with similar set of output formats makes the configuration space unbounded and have almost infinite number of possibilities.

 

Perhaps that is much much harder to do than to say, so forgve me if I am asking for the impossible.

 

With software, almost nothing is impossible. Some things may need more effort than others, and some things may be more practical than others though.

 

External control interfaces/sources like Roon can also implement something like what you are asking. If they like to.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Sorry if this has been asked, having trouble finding the info:

1- Is there a clear guide on how to set up HQP 3.12 (now in prod version) with Roon?

 

The procedure is fairly simple.

 

1) Install both software

2) Make sure playback in general (without Roon) works from HQPlayer with intended settings

3) Start both

4) In Roon Settings / Audio, click Add Network Device. Give the new output device a name and if HQPlayer is on same machine use "localhost" as address, otherwise specify host name or IP address of the remote machine where HQPlayer is located.

5) If HQPlayer is on a remote machine, click the right-most toolbar "Allow control from network" button down in HQPlayer

6) In Roon main window select the newly created network device as output

7) When you click play in Roon, it will contact HQPlayer and start playing

 

HQPlayer needs to be running before starting playback in Roon.

 

2- I assume that HQP's CUDA support would not work on the 2012 i7 mini, correct?

 

I believe there are no recent Mac Minis with nVidia GPU, but you can confirm from "About this Mac". It will likely say "Intel HD Graphics". So no CUDA. My little bit older 27" iMac has nVidia GPU, but the newest models are also Intel HD Graphics and Mac Pro is AMD GPU.

 

GPU offload is most practical in desktop PCs where one can plug in any suitable graphics adapter.

 

There are also some powerful gaming and engineering PC laptops with nVidia graphics. Starting price for such is around 800€ here.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
HQO Setting PCM: I can play PCM up-sampled to 352.8 or 384k, but DSD does not play.

 

 

If someone is having issues playing either DSD or PCM remember what Jussi (Miska) said: He suggests (which I plan to test this AM) is try HQP by itself without Roon to see if I have issues doing DSD -> PCM.

 

This is one of the things that doesn't work yet with Roon on 3.12 and is scheduled to be fixed in 3.13.

 

The cross-application stream used with Roon is a new type of transport that can change between PCM and DSD. HQPlayer cannot fully cope with such changes yet. Other transports are based on file formats and thus were not changing between PCM and DSD.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Is it possible to have an OpenCL implementation of this? If so something you would consider?

 

Does Apple even support OpenCL or just their own API? But no, OpenCL is generally not feasible. CUDA is better suited and much more advanced. I also investigated Cilk+ supported by Intel but it is also rather cumbersome and would need ugly hacks.

 

With Apple hardware the problem is pretty much that you don't have choice what hardware components go into your system. So I would recommend Linux or Windows PC for anybody seeking for offloading capabilities. Even with laptops you have choice of various GeForce/Quadro graphics and CPU combinations.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Just simply curious if system will be idiosyncratic of acceptance of one specific IP address type over the other, or if it would even care.

 

One difference is that when using "localhost" (IOW, 127.0.0.1 in IPv4 and ::1 in IPv6) you don't need to allow external connections to HQPlayer (the right-most button in toolbar). Any other address family is considered external.

 

"localhost" will also exist even if the machine doesn't have any physical network interfaces at all, or if those are disabled/not connected. Depending on the OS the local address doesn't go through the full network stack either, so it is simpler.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
I'm away so cannot try but have a question: How does HQP know to listen to localhost? Wouldn't you have to tell HQP to do this?

 

It is listening for connections from localhost by default when the toolbar button is up. When the button is down, it is listening for connections from "any" (IOW, 0.0.0.0 for IPv4 and :: for IPv6, which is magical address for "world", including localhost).

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Got it. I have a mac pro 2010 (essentially the last of the big boxes with pcie slots. Might get a cheap nvidia and try it out just for laughs. I would have to do NAA as my stereo's machine is a mini.

 

GeForce GTX 960 and Quadro K620 are fairly inexpensive while modern technology and have enough power so that it actually helps, so those are a good starting point.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
I tried again last night to get HQP to play DSD128 through my Mytek DAC.

 

Are you using USB to Mytek? Do you have latest Mytek firmware, or at least 1.7.6? I'm not sure if DSD128 works on Mac through the USB. But I have iMac -> Thunderbolt -> Firewire -> Mytek running at DSD128. I never got Mytek working correctly with the USB3 ports of iMac, and I've been very happy with the Firewire connectivity.

 

You could try with the same way as the Firewire works, by setting the "2wire" checkbox in HQPlayer settings. Note that PCM output mode doesn't function correctly in this mode and needs to be disabled for PCM output mode to function correctly.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
I am finding that often when I change from PCM material to DSD, or vice versa, I get not only a disconnect from Roon (although no Roon warning message) but also very often have my NAA networkaud close (HQP settings showing no driver in network audio pulldown is hint). I keep RDC available on ipad to watch both pcs, and sure enough the NAA pc's networkaud command window is closed. Even when NAA doesn't crash I often get no response via Roon until I restart HQP on Zuma. This seems to have been exacerbated since build 94, but don't quote me.

 

I could understand this a bit more, if you'd have DirectSDM enabled, but from your description it sounds like you don't. If you upsample everything to DSD256 then NAA shouldn't know anything about source content switches.

 

If networkaudiod closes then it is due to some crash/error there. For such case it would be good if you can open normal command prompt (cmd.exe) and then run networkaudiod from there. This way when such happens it just returns to the command prompt and you can still see the last messages it has printed out...

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
HQP plays fine on its own at all settings, SDM or PCM. I really want this to work but just have worked so hard to try to figure out a way but to no avail. Before I chuck HQP, any more ideas from anyone? Jussi?

 

Please enable HQPlayer log file, restart HQPlayer, do one standalone playback (no issues) and then one playback with Roon (issues). And then please email me that log file. I could then try to figure out what is going wrong.

 

The main difference between the two is that when HQPlayer is playing alone it is handling the file reading on it's own. When you play with Roon, Roon is handling the file reading and then streaming the data to HQPlayer.

 

Also make sure you use "localhost" in Roon settings as address to HQPlayer.

 

Other possible culprits:

- If you are using CUDA offload (shouldn't, I believe 2015 iMac doesn't have nVidia GPU anymore), Roon adds it's own GPU load on top

- Some network issues, some process (like sofware firewall) interfering with Roon-HQPlayer comms

- Roon having trouble keeping up with dataflow from a file to HQPlayer

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
I had a very unusual issue occur last night while listening to Roon->HQPlayer->Linux NAA. In the middle of a song, the guitar and singer shifted places in the soundstage, along with a little hiss and crackle. It then switched back 30 sec later...never heard that before on this album. Is it even possible to have L/R balance shifted in the digital domain with out the intention of doing so?

 

Sounds like data transfer problem (packet loss) on USB or some transfer error between USB interface and the D/A conversion stage inside the DAC...

 

Sometimes iFi iDSD Nano does similar tricks for me, or echo-effect. Seems to happen due to some electrical disturbance coming through the headphone socket.

 

Also make sure you don't turn volume too high in HQPlayer, I don't recommend exceeding -2 dBFS setting. Overload due to inter-sample overs doesn't sound nice... ("Limited" value in HQPlayer window should never change from 0)

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
How do the new "auto" settings function in Beta 3.13.0? What determines the output rates and choice between DSD and PCM?

 

It picks highest rate supported by the hardware that is equal or below the Default/Limit set in settings and that the filter is capable of producing given the source rate.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Same question here - I thought "Auto" would switch the DSD128 sampling rate to 5.6Mhz for 44.1k PCM rates (e.g., 44.1, 88.2, 176.4, etc.) and chose 6.1Mhz for 48k PCM rates (e.g., 48, 96, 192, etc.). Instead, it seems to just stick with whatever was last chosen :/

 

If the filter can do 6.1 output for 44.1 input, that is naturally what gets selected... Why would it do something else?

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Fine for what was intended, but surely it would also be really useful for lots of people to have an option to automatically relate output rate to multiple of 44.1 or 48, as for many people this is what will determine whether their computer will manage up sampling to DSD128 or DSD256. I suspect that is what a lot of people were hoping for.

 

Then there is option to use -2s family of filters where it doesn't really make practical difference. There is also benefit of using 500 kHz higher sampling rate for DSD128 or 1 MHz higher sampling rate for DSD256! That is not a small difference anymore.

 

Now the logic is straightforward, filter is asked "can you do X to Y" and that is used as basis for the selection.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Sometimes in the past I already asked Miska to implement something like a global checkbox in Settings

[x] Stay within sample rate family

and I would consider it to be useful. For example my PC has not enough resources with poly-sinc to upsample from 44.1k to 6.1MHz, but 44.1k to 5.6MHz plays yet well. But I like to use 6.1MHz for 48, 96 amd 192k recordings. Having such a check box I would not need to adapt bitrate in the HQPlayer main window so often.

 

The part I don't like in such setting is that it would apply to all filters. To some extent I can understand it for poly-sinc (load when in SDM output mode), but for -2s variants there is no practical benefit. And I really don't want to make such conditional to different filters so it is all or nothing.

 

OK, I could add it, but always adding one more configuration option that alters the internal logic and code paths means more possible setting combinations which means more possible corner cases and bugs. Having combinatorial settings also makes learning curve of the application steeper. Good thing with the auto-rate + auto-mode was that I was able to remove the earlier obscure PCM "none" filter logic and replace it with more clear approach. So the PCM "none" doesn't have magical meanings anymore. :)

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
1) What do you mean by no 'practical difference'? You mean no real difference in SQ between polysinc and polysinc-2s?

 

In terms of CPU load. So with -2s filter the load difference between 44.1 -> 5.6 and 44.1 -> 6.1 is small.

 

2) Are you saying that polysinc-2s at 12.3 is likely to have advantage over polysinc at 11.2?

 

At least technically, if you measure the DAC output, the difference between 5.6 and 6.1 is bigger than the difference between polysinc and polysinc-2s. The difference is also notable for DSD64 between 2.8 and 3.1. But depending on the DAC the absolute difference for 11.2 vs 12.3 is smaller because the analog filter has rolled off so much further at those rates.

 

The difference between the two sampling rates is easy to measure, the difference between polysinc and polysinc-2s filters is not.

 

3) Theoretically does difference between polysinc and polysinc-2s to DSD256 depend on the starting rate, ie whether source file is RedBook, 176/192, or 352.8?

 

Mathematically it depends on the ratio between source file rate and output rate.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
DSD files still stop on the second track after the 3:20 roon freeze, however.

 

This has been fixed in newer Roon builds...

 

All tests done using a naa on Linux with.either IFI Micro iDSD at DSD256 or Auralic Vega with DoP at DSD128.

 

Does it also happen if you play locally on Mac without NAA? I'm suspecting OS X applying App Nap or otherwise punishing HQPlayer because it doesn't understand that audio playback is going on.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
But, as I wrote (PM), it does it even when App Nap is disabled globally or specifically for HQPlayer, and when App Nap is showing no activity in System Monitor.

 

But does the problem appear without NAA, when HQPlayer is playing locally? I'm trying to reduce number of variables in the picture...

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

I've been trying to reproduce the problem between my MacMini and iMac without success. MacMini running Roon on either Win8.1 or OS X and HQPlayer running on iMac. Content on FW800 HDD on MacMini. With two DACs, iFi iDSD Micro and Mytek Stereo192-DSD DAC connected to Firewire (using Apple's Thunderbolt-to-Firewire adapter).

 

Network is wired CAT6 gigabit ethernet.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

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...