HQPlayer has popped up in a few rather specific threads recently, and I've been doing quite a bit of work with it recently so I thought I'd start a dedicated general HQPlayer thread rather than start another specific one. For starters I'm going to provide a tutorial on how to integrate Jriver Media Center, Foobar2000 or basically any other player that can use a WASAPI interface on Windows with HQPlayer in a fairly seamless fashion for PCM-based streams (you can upsample the fuck out of it in HQPlayer to DSD if you want). I'll go over the software required, the configurations and their tradeoffs, and finally a set of batch commands to control HQPlayer using the command-line which makes it really easy to test out filters, shapers, and source URIs. Integrating WASAPI Players on Windows with HQPlayer for PCM The Software Any player supporting WASAPI on Windows, such as JRiver Media Center or Foobar2000. Virtual Audio Cable: https://vac.muzychenko.net/en/. I'm using Virtual Audio Cable because I got some popping with VB Audio early on and gave up on it. Also I'm a geek so I like the diagnostic ability that VAC gives you with its graceless but detailed UI. And one-man-band awesome Russian companies. To my mind it's worth the $30, especially since it liberates you from the tragic experience of playing audio through HQPlayer itself. NOTE the free Lite version maxxes out at 48k, so it's useless for our purposes if you have any Hi-Res content. You can try the VB Audio HiFiCable and ASIO Bridge - that should work as well in theory. HQPlayer, of course. Virtual Audio Cable Once installed you get a detailed control panel like so: Configuration You only need one virtual cable, as the cable can carry up to 8 channels. You can keep the Driver defaults. For the Cable config in the Format Range for SR (sample rate) you want to set the range to the full range (or more) of what you might expect as input. That is, whatever the sample rate of your stuff is. Note that the dropdown stops at 192k for the upper limit, you'll need to type a higher value in manually if you want a higher value. I'm using 384k just for shits and giggles. *Important Set the BPS (Bits per sample) to 32 or HQPlayer will try to use some janky 22-bit connection in certain cases. You can leave the 1 to 2 config for NC (Number of channels) or fix it at 2 for stereo like I have. ***Very Important Set the Stream fmt to "Cable range". What this does is give you some flexibility for HQPlayer to play at mismatched bitrates without freezing up. "Cable format" will lock the cable characteristics to the characteristics of the first connected device, which causes the freezing. "None" will allow VAC to do its own terrible, non-dithered format conversion which is garbage. Seeing what's what Double-click the blue-highlighted cable or click the "Cable info" button to bring up the cable details pane. Here it is with no connected devices: Here it is with JRiver and HQPlayer connected. Render is JRiver and Capture is HQPlayer. Note that the Format matches perfectly - this is what you want for a bit-perfect transfer. However you do want the flexibility to have rates mismatched or HQPlayer falls over if your source rate changes - more on this later. The Music Player Here's the config for JRiver. Select VAC as your output device via WASAPI and force the bit depth to 32 bit integer to match the VAC config. I'm choosing 32 bit somewhat arbitrarily, as this is the automatic default for JRiver. I imagine you could happily choose 24 bit as well - just make sure it matches VAC. Play something and you should see the VAC Render thread appear in the Cable 1 detail window. Note you can obviously run whatever DSP you want in the player. In my case I run a few VST plugins so I set JRiver's volume to -6dB to provide VST headroom, and headroom for HQPlayer upsampling later. We'll revisit this. HQPlayer Now we'll set HQPlayer up to receive the stream: Configure your DAC in the output device settings. In my case I am using WASAPI, as DAC2541's ASIO driver operates in shared mode and doesn't give an exclusive lock for some reason. So I use WASAPI. Configure the Input Device Settings to use WASAPI as well. Note HQPlayer will barf up an error message saying your input and output can't be the same, and it will do this a few times. Click OK until it goes away - this is because it's just checking the mechanism and not the specific device, and it will allow you to select VAC here as shown. HQPlayer is rough and tactless but it does work when you get it set up right. Set your preference for output modes, filters and shapers etc. I leave Vol Max at 0, but if you want to provide headroom for intersample overs in HQPlayer as opposed to your music player software as I do in JRiver, you may want to drop this 3 bits or more. Select "Adaptive output rate" as this provide flexibility for rate changes and adapts the upscaling rate to a correct multiple of the incoming rate. I am upsampling to PCM as I have a DAC2541 which doesn't do native DSD and converts it to PCM anyway so DSD shenanigans are pointless. I'll talk more about DAC2541 and upsampling in a subsequent post. These are my preferred settings if you want a decent place to start. Of course to can upsample to DSD if you wish (and have one of those lovely Holo dacs and a shit-hot CPU). Pulling it all together Save your config and you have HQPlayer's beautifully unintuitive interface confronting you: If you're lucky, you will have a list of entries in the "Content Source URI dropdown box: You want to select the entry corresponding to the sample rate you have incoming on the Virtual Audio Cable for a bit-perfect transfer. Often, however, you won't have entries in the dropdown. In that case you need to type it out. Don't worry, we will make this slightly less janky forthwith. Press Enter to activate the connection and it will appear in the playlist. Press Play or click the entry once to start playback. If all is well, you will see the Capture thread appear in the VAC Line 1 info screen and HQPlayer will play the stream. Voila! Now anything you play in your Media Player gets shunted to HQPlayer. Troubleshooting Sometimes HQPlayer just won't play. Or freeze. This is often if you have selected an upsample rate that is not a multiple of the base rate, omade some misconfiguration. Every now and then, however, it seems to become disconnected from VAC after a restart. Go into the Settings, select another input device and then reselect the Virtual Audio Cable you are using - this seems to fix it. It's not something that happens frequently, but with lots of messing around I have seen it more than once. Important sample Rate Conversion stuff Important to note, is that HQPlayer does NOT automatically adjust to the incoming stream's sample rate. If you do not have VAC configured to do sample rate conversion and you change the incoming rate (for example moving to a hi-res track in your playlist) HQPlayer will just freeze or barf up an error. Of course what this means is that if you have a mix of sample rates incoming you need to manually match these in HQPlayer or you will have the extra crappy VAC conversion forking up your Audiophile nervosa. But it's better than freezing and barfing up errors. OR you can resample in your player, say to 44.1 if the majority of your music is 44.1 and take the hit on downsampling the Hi-Res. The ultimate solution would be to have (in my case) JRiver switch the sample rate in HQPlayer for you, which looks like it may be possible using an Interface plugin, and I am playing with this but dusting off those decade old coding skills and navigating a just-as-old COM interface will take me some time. In the interim, there is a command line control application for HQPlayer which makes all this much easier. If you can find any documentation on the damn syntax, which I eventually figured out enough of by looking at the C ++ source code to get working. Here are a set of batch files which will help changing the Transport (Content Source URI) for different rates, and various other things. Just double-click to change to the named config element. MUCH easier than messing with the UI, and makes A/B testing easier. See attached files on this post for HQPBats.zip Feedback and help This is quite a bit of writing. I may well have left something out, or not been clear or screwed something up. Let me know via PM preferably rather than stinking the thread up and I'll update the post and see how I can help via PM.