Latency and GUI discussion

Yes, and tearing down entire DSP engine too (GPU tasks and such). There’s a slight delay before this happens.

But one reason the delay for pause (if you do it from HQPlayer) is that it actually keeps playing silence, and not just dummy silence pattern but a real thing. It used to play just silence pattern.

This change was because people complained about audible glitches with certain DACs when they have DAC connected directly to a power amp, without analog volume control between, and pausing/unpausing. This means that for example DAC engaging mute, due to detected silence pattern, and having even slightest DC offset in the output would cause glitch because of the high gain of power amp.

I can think about adding a “quick pause” setting that would cut the delay to the about 1.5 sec in all cases. That would switch between old and new behavior. If it doesn’t add too much code clutter (testing nightmare if there’s too many possible code path combinations).

1 Like

Cheers, an option (default unchecked to handle it like today) sounds like a good idea? If possible, some buffer settings for NAA as well for us who sit on a very small and fast dedicated HiFi network.

It is just more complicated than that. And I’d prefer to avoid having too many settings. I’m also getting complaints that HQPlayer is already complex with many settings… :wink:

You could hide all complicated settings in an “Advanced settings” window, and have good default values. In fact, the current window could be the advanced setting, and then a simpler main window with basic settings and some simplified presets.

1 Like

Here is one way the GUI could be redesigned (I got the urge to do some brainstorming :slight_smile: ):

  • Make 3 main modes, which determines how the rest of the main window looks (see picture below for when Roon is selected).
  • Display controls for output mode, filter, dither and sample rate in main window (or modulator, bit-rate for DSD). Leave those in setting as well but with the addition to 1x/Nx settings.
  • Make a new Audio input/output window with those parts taken from current settings window (this window could auto-open first time HQPlayer is run). Also put volume min/max here.
  • Rename Settings to Advanced settings, and keep low-level settings there (and remove input, output and volume groups). Since this window is no longer central to the usage of HQPlayer, and will contain less controls, its fine to put additional advanced settings here.

Here is how the main window could look like for Roon mode (other modes would look different, for example Standalone would display track info, track list etc).
image

I use mute then pause instead of pause alone as the total latency is about 5 seconds for my system too.

Roon (no DSP) > HQPe w/convol > NAA

1 Like

These were removed on purpose from HQPlayer Desktop server application main window in 4.x and moved to HQPlayer Client to allow remotely adjusting these. Especially because many people said they go to Settings dialog instead of using the controls offered by main window in v3 (which makes the entire player engine restart).

OK, thats before my time. An “Apply” button can fix the problems of restarting the engine when making changes. It just feels like those controls are very important and should be on main window.

No, Settings dialog needs to restart the engine due to device selections and other settings that affect how it is started. If you change the settings where they are supposed to be changed (HQPlayer Client or HQPDcontrol app), such engine restart doesn’t happen…

HQPlayer Desktop application itself is just a server process, with only bare bones playback controls, enough for drag-and-drop use. Whole point of HQPlayer v4 update was separation of user interface and the player itself. You can consider HQPlayer Desktop and HQPlayer Embedded similar to Roon Core. Idea is to have various possible user interfaces to the player. HQPlayer Client being the one supplied by me. Then there are others like Roon and HQPDcontrol. Because “one size doesn’t fit all”.

Ok, I use the HQPlayer Desktop as both GUI and server. One thing you might consider is to separate engine-restart needed controls with the filter settings, something like this:

  • Setting window for audio input/output and those settings that require engine restart (Cuda, multi-threading etc). This window would typically not be opened and used that much after initial settings has been done.
  • Filter window with filters selections (and sample rate, PCM/DSD etc), maybe this could be made non-modal to make it easier to listen to different filters.

That window exists and is called HQPlayer Client… :wink:

Nahh, if HQPlayer Desktop is both a server and client, than the client functionality matter as well. But making HQPlayer as a service without GUI and then putting in some more effort into the client is certainly one way to go (from an architecture viewpoint this would be the best way to do it).

Or convince Roon to add HQPlayer settings from Roon client, which would be the best choice for Roon users.

It is server, but has minimal GUI to make it easier to setup on systems that anyway have a graphical desktop.

That is called HQPlayer Embedded…

That is HQPlayer Client, shipped with HQPlayer Desktop with practical reasons, but can be installed separately and is covered by either Desktop or Embedded license.

What is the “more effort”? Have you used it? Many people seem to have opinion about it without ever trying it.

Other clients have such functionality, but Roon is pretty limited in what it can do.

You can run HQP under win10 without GUI as a service with a program like AlwaysUP.
But what advantage compared to a simple batch?
More process and service vs AO with a custom shell.
But it works … without loss of quality. I tested. No screenshot of “desktop” because AO without explorer and HQP as no gui ! :grin:

If somebody want help to do convolution filter for headphones I can help you with that. Just send pm.

Yea, I’ll do that as well, only problem is that I have to move like half a meter to do it :slight_smile:

It was developer talk, once you have double GUIs, or any kind of duplicated functionality spread over 2 or more programs, you get into problems of which to use and which to develop. And if both GUIs are used, both GUIs needs to be updated and maintained. Better to have a dedicated service (not necessarily as Windows NT service) and one multi-platform GUI, and use that architecture for all cases.

For HQPlayer that would be
Client OS1 \
Client OS2 |— Network or IPC — Service — Network/USB — HQPlayer endpoint or DAC.
Client OS3 /

I had read quickly … I understand better.
But it is true that for the option Roon > HQP … after installation ther is nor real interest of an interface, except to choose a configuration which can then be managed by HQPlayer Clent.
(and to run it as service “sexe64” used for MinorityClean is free and more simple than AlwaysUP)

Bummer, I just tell Alexa mute stereo.