0% found this document useful (0 votes)
201 views60 pages

Hqplayer5desktop Manual

Uploaded by

123qobuz123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
201 views60 pages

Hqplayer5desktop Manual

Uploaded by

123qobuz123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 60

1 / 60

HQPlayer™ Desktop

User Manual
Version 5.7.3

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


2 / 60

Streaming partners

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


3 / 60

Table of Contents
1. Introduction........................................................................................................................5
1.1. DSDIFF and DSF playback, DSD sources and playback..........................................5
1.2. Architecture and components.....................................................................................5
1.3. Starting up the application..........................................................................................6
1.4. Network Audio.............................................................................................................6
2. Main screen........................................................................................................................7
2.1. Album / track art..........................................................................................................7
2.2. Track display...............................................................................................................7
2.3. Song display...............................................................................................................8
2.4. Time display................................................................................................................8
2.5. Limiting........................................................................................................................8
2.6. Apodization.................................................................................................................8
2.7. Mode display...............................................................................................................8
2.8. 20 kHz filter.................................................................................................................8
2.9. Adaptive gain mode....................................................................................................8
2.10. Control buttons.........................................................................................................9
2.11. Convolution...............................................................................................................9
2.12. Phase inversion........................................................................................................9
2.13. Repeat and Random playback.................................................................................9
2.14. Playlist management................................................................................................9
2.15. Volume control..........................................................................................................9
2.16. Position/seek bar....................................................................................................10
2.17. Source content entry...............................................................................................10
2.18. Playback content table...........................................................................................10
3. Library management........................................................................................................11
4. Settings............................................................................................................................13
4.1. Inputs........................................................................................................................14
4.2. Outputs.....................................................................................................................14
4.3. PCM..........................................................................................................................16
4.4. SDM..........................................................................................................................21
4.5. Filter / Oversampling selection.................................................................................25
4.6. Advanced..................................................................................................................34
5. Channel balance..............................................................................................................37
6. Convolution engine..........................................................................................................39
7. Matrix processing.............................................................................................................41
7.1. Plugins......................................................................................................................44
7.2. “delay” plugin............................................................................................................44
7.3. “iir” plugin..................................................................................................................44
7.4. “riaa” plugin...............................................................................................................45
8. HQPlayer Client...............................................................................................................46
8.1. Switching views........................................................................................................49
8.2. Album selection view................................................................................................50
8.3. Playlist edit view.......................................................................................................51
9. Registering your copy......................................................................................................53
10. Troubleshooting..............................................................................................................54
10.1. Reporting bugs.......................................................................................................54

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


4 / 60

10.2. Sound problems with USB audio device................................................................54


10.3. Generic...................................................................................................................54
10.4. No rates available...................................................................................................55
11. Component licenses and trademarks............................................................................56
11.1. HQPlayer.................................................................................................................56
11.2. FLAC.......................................................................................................................57
11.3. WavPack.................................................................................................................58
11.4. mpg123...................................................................................................................58
11.5. ASIO........................................................................................................................59
11.6. Qt.............................................................................................................................59
11.7. libmicrohttpd............................................................................................................59
11.8. bs2b........................................................................................................................59
11.9. Botan.......................................................................................................................60
11.10. Trademarks...........................................................................................................60

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


5 / 60

1. Introduction
HQPlayer is a high quality audio player for 64-bit Windows, Linux and macOS.
HQPlayer also features several user selectable high quality resamplers as well as user
selectable dither/noise shaping algorithms and delta-sigma modulators.
Some of the more affordable sound cards and D/A converters have suboptimal digital
and analog filters, while still having support for higher sampling rates. Effect of this can
reduced by applying high quality upsampling in software before feeding the signal to
the audio hardware at higher rate. This moves some of the artifacts of the suboptimal
hardware to higher frequencies, away from the audible band. Many of the home-
theater amplifiers and digital (room correction) processors also re-sample internally to
48, 96 or 192 kHz, with the HQPlayer, these can be fed at the native rate avoiding
lesser quality resampling in the device.
Most modern D/A converters are delta-sigma type. Built-in delta-sigma modulator of
HQPlayer allows using DSD-capable converters with this native data format, in many
cases bypassing lot of DSP processing in these converters and allowing more direct
data path to the conversion stage. For select set of DACs, also correction profiles are
available to improve correctness of the output signal.
Resampling also allows playback for high resolution audio files on hardware capable
of only lower sampling rates or bit depths. For lower bit depth playback, high quality
dither or noise shaping can be employed.
HQPlayer also includes a convolution engine for applying digital room correction filters
or other kinds of equalization.
These features ensure the best possible audio quality with the available audio
hardware.

1.1. DSDIFF and DSF playback, DSD sources and playback


Playback of DSDIFF and DSF files is supported. In addition, playback from other DSD
sources such as ADCs and network streams is supported. In case hardware and
drivers support ASIO or ALSA DSD -mode, or one of the “PCM packed” modes, these
files can be played back in native format.
For devices capable of only PCM input, PDM (pulse density modulation) content of
these files is converted to 176.4 (64fs), 352.8 (128fs) or 705.6 kHz (256fs) PCM (pulse
code modulation) format for playback through PCM audio hardware. The playback rate
of DSD sources can be further altered by using resampling to chosen rate. Thus,
playback rates from 32 to 1536 kHz are possible. Used bit depth is either maximum
supported by the playback hardware or lower in case such is requested.
Also multichannel loudspeaker delay- and level-processing is supported in both
converted and native modes.

1.2. Architecture and components


HQPlayer Desktop consists of client-server architecture. Both components have some
GUI elements, but the server side – the actual HQPlayer Desktop -application contains
mostly elements for maintaining configuration and basic playback functionality based
on drag-and-drop or simple source folders and audio inputs. Client implements actual

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


6 / 60

player GUI, but not any standalone playback functionality.

1.3. Starting up the application


First the HQPlayer Desktop main application (server) needs to be started and running
somewhere in the network. Then HQPlayer Client can be started either in the same
machine, or in some other machine in the network. Available HQPlayer servers
(HQPlayer Desktop or HQPlayer Embedded) are shown in the client. Or in case
automatic discovery fails, or is not supported, hostname or IP address of the server
can be entered in order to connect to the server.

1.4. Network Audio


Network Audio is a way to have remote audio adapters and DACs integrated
seamlessly with the player application. All the audio processing is performed at the
player application side, and then streamed asynchronously over the network for
reproduction.

Network Audio system

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


7 / 60

2. Main screen
When the application is first started up, main screen is displayed.

Main screen

User interface also supports standard multimedia keys and equivalent remote controls.
Tracks, directory trees and playlist files can be added to the current playlist by drag-
and-drop from outside of the application.
Note! In case you experience clicks/pops between DSDIFF/DSF tracks, creating a
playlist for the tracks enables special code to reset the modulation state. Playback
won't be gapless in this mode.

2.1. Album / track art


When content includes album or track artwork, it is shown when a track is being
played.

2.2. Track display


Current track number and total number of tracks on a transport is shown on this
display. For CD, this is the normal track number. For files, track numbering is
constructed per directory basis based on embedded track number or file name sorting
order. For preferred order, file names should begin with correct zero-prefixed track
number.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


8 / 60

2.3. Song display


For CD, this field is used only to display track numbers.
When playing back files, metadata is shown. If metadata is not available a file name is
shown.

2.4. Time display


This display shows the selected time information. By default, it is the time from
beginning of the track. Other possible values are time from end of the track and total
time from end of the album (transport).

2.5. Limiting
HQPlayer contains automatic soft-knee limiter that will reduce volume on respective
channels when output exceeds 0 dB level. When limiting is triggered, the “Limited”
counter is incremented and volume knob color changes to red. When such happens, it
is best to reduce output level and keep the lowered volume level to avoid further
triggers of limiting. Note! Limiting sensitivity depends on selected filter and
upsampling ratio.

2.6. Apodization
For PCM source content, HQPlayer can detect need for an apodizing filter. This is
based on detected errors that originate from the recording ADC or mastering tools.
Every time such occasion is detected in source content, the counter is incremented.
When such content is detected, especially with higher counts, use of apodizing filter is
recommended. This detection is not absolute, but can be used as guidance to decide
when non-apodizing filter shouldn’t be used. There is no harm in using apodizing filter
for content that doesn’t need one. But there is harm using non-apodizing filter for
content that would need one.

2.7. Mode display


Selected time display mode is indicated here. Shown values are “time” for the time
from beginning of the track, “remain” for the time from end of the track and “total
remain” for the time from end of the album. Display mode can be changed by clicking
this box.

2.8. 20 kHz filter


20 kHz low-pass filter can be used to clean up ultrasonic noise and distortion from
PCM sources. For example from previously upsampled content, such as fake HiRes.
This filter is functional only for 2x and higher source rates. Filter used for the purpose
is very high performance one, optimized for time-frequency performance while
providing fast and steep attenuation for frequencies above 20 kHz.

2.9. Adaptive gain mode


Apply adaptive gain settings during playback based on metadata, such as ReplayGain
2.0 specification. Note that in case metadata includes positive gain values, you may
need to provide extra headroom using volume control setting.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


9 / 60

2.10. Control buttons


Control buttons can be used to control playback. Clicking “Play” begins the process
and “Stop” will stop the process. For normal file playback other buttons can be used as
well.

2.11. Convolution
When this button is depressed, convolution processing is completely bypassed. When
this button is pressed, convolution engine is active and the configured impulse
responses will be used to process the signal before resampling. Convolution can be
enabled and disabled during the playback. This applies only when simple convolution
engine is used. Matrix processor settings can be changed on the fly using matrix
profiles.
Note! When source material sampling rate differs from the impulse sampling rate,
impulse responses will be scaled to the source material's sampling rate. This can have
a huge impact on CPU/GPU load, and with large impulse responses will require
significant amount of CPU/GPU processing power.

2.12. Phase inversion


Absolute phase can be inverted in cases where volume control is available.

2.13. Repeat and Random playback


Current tracklist/playlist can be repeated and played back in random order. It is also
possible to repeat a single track. When output is to a file, resulting output matches the
playback.

2.14. Playlist management


Clicking the “Clear playlist” -button clears the internal playlist transport. If some other
transport (such as album) is active, this doesn't have visible effect until new playlist is
created. Playlist can be also loaded and saved using corresponding buttons.
When other transport than playlist is selected, playlist is still in memory. Transport can
be switched back to the playlist by clicking the “Activate playlist” button.

2.15. Volume control


Processing volume can be controlled through volume multimedia keys or remote
control, or by operating this adjustment wheel. Selected dither/noise-shaping algorithm
has significant impact on quality of this adjustment.
When using any resampling, maximum recommended volume level is -3 dBFS to
avoid inter-sample overloads, and in case material contains digital clipping/limiting.
Note! High oversampling ratios can generate high inter-sample overs. Overloading the
delta-sigma modulator in SDM mode will also cause audible noises. It is therefore
recommended to keep software volume at max -3 dB setting or lower when using
PCM to SDM conversion to avoid overloads, especially if the source material contains
digital clipping. Maximum modulation depth is monitored and when necessary limited
to 50% to retain best possible output fidelity.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


10 / 60

2.16. Position/seek bar


Shows relative playback position of a currently playing song while also allowing seeks
to arbitrary position within the song.

2.17. Source content entry


Source content edit / drop-list contains reference to the source location. References
are URI’s, just like web browser address bar. When source is a “transport” like a folder
or audio device, all content is assumed to belong together and is processed gapless.
When source is not a folder, but instead individual files for example dropped on
HQPlayer window, pop-prevention processing is employed between DSD tracks,
assuming the tracks are independent.
To source audio from a device, “audio:” and “input:” URI schemas are used.
To read content from a CD, “cd:” URI schema is used.
Browse button next to the edit box can be used to browser for a source folder.
Note! On macOS, in order to enable audio input to HQPlayer, permission to access
“Microphone” needs to be granted to HQPlayer in System Preferences → Security &
Privacy. On Windows, similarly Desktop applications must be granted access to
“Microphone” in order to use input feature.

2.18. Playback content table


Table shows content loaded in transport for playback.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


11 / 60

3. Library management
To edit library, open the “File” menu and select “Library...”. Following dialog will be
shown.

Library editing dialog

List shown on the left is the list of album locations available on the transport selector.
Each path is intended to represent an album consisting of files of same number of
channels.
To remove an album from the listing, select the album path and click “Remove” button.
Once you are done with the editing, select either “OK” to save your changes or
“Cancel” to discard the changes.
It is also possible to edit album metadata by double-clicking a cell.
To (re-)scan an entire directory tree or part of it, click “Scan...” to browse and select
base directory of the tree you wish to add and click “OK”. All the nodes of the directory
tree with recognized content will be added to the list of available albums and
new/changed cover art is recognized. Already known entries are automatically ignored
(except for adding missing metadata). If you wish to refresh all the library information,
select “Clean scan...” instead. Select “Structure only” to extract metadata solely from
the directory tree structure instead of metadata embedded in files. If detached cover
art is missing, but embedded cover art exists, “Extract covers” will extract embedded
cover art to a detached one making it available in the cover flow view. Cover art cannot
be extracted if “Structure only” is selected, as this omits looking into embedded
metadata information.
Metadata for each path is loaded when available. If metadata is not available within
the file, it is constructed from the full file path, assumed of being in format
Artist/Album/Song.
Note! Each directory is assumed to contain only one type of supported playback files,
the first recognized type will be used and other types of files within the directory will be
ignored.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


12 / 60

To clear the list, select “Remove all”, confirmation dialog will appear before the list is
cleared.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


13 / 60

4. Settings
To change program's device settings, open the “File” menu and select “Settings...” (on
macOS “Preferences...” from the application menu).

Content of the device selection depends on the selected back-end.


For WASAPI and CoreAudio driver types, used audio endpoint (device) can be
selected by using the “Device” selection which lists all the available audio endpoints in
addition to the default endpoint, which is the one selected in Windows Control Panel or
macOS Audio MIDI Setup for the default audio output.
For ASIO driver type, used audio device can be selected by using the “Device”
selection which lists all the available ASIO devices. “Ch. offset” can be used to select
the channel which is considered to be the first in channel mapping (0-based).
For Network Audio driver type, list of remote audio devices is shown on the “Device”
selection. This always combination of the NAA device plus the hardware device ID.
On Linux, ALSA audio endpoint (device) can be selected by using the “Device”
selection which lists all the available hardware audio endpoints.

DSD content can be transferred to/from the audio device by packing it into suitable
PCM container, select “DoP” to use the DoP v1.1 standard. The “2wire” setting
enables dual-wire channel bonding to achieve 2x higher sampling rates for both PCM
and DoP-based DSD on those DACs that support this feature.
Short buffer setting reduces size of audio FIFO buffer to half. This reduces amount of
delay for example for volume control. But it also increases likelihood of audio drop-
outs.
Channel mapping is following (regardless of driver type):
0. Front Left
1. Front Right
2. Front Center
3. Low Frequency (LFE)
4. Back Left
5. Back Right
6. Side Left
7. Side Right

Length of the hardware audio buffer (in milliseconds) can be changed by using “Buffer
time” selection. It is recommended to use “Driver default”, unless audio drop-outs are
experienced. When “Driver default” is used, the audio driver defines length of the
buffer. In case of WASAPI, this is more or less fixed value of 10 ms. In case of ASIO,
this can be usually controlled through ASIO control panel. With ASIO backend it is
recommended to leave the value to “Default” and adjust buffer size from the driver
Control Panel instead, if available. When ASIO Control Panel is not available, the
HQPlayer setting can be used, but it will be capped to the range supported by the
driver, and in some cases this means the setting not having any effect if the driver

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


14 / 60

doesn't allow adjustments at all. Values between 10 and 100 ms are most
recommended.

Note! Due to limitations of ASIO API, ASIO drivers cannot be used for both input and
output. Combination of ASIO and WASAPI or ASIO and NAA can be used instead.

4.1. Inputs
On Inputs tab, different input device related settings can be changed.

Settings dialog, Inputs tab

If you don’t have any input device, select “[none]” as the input backend.

On Windows, drive letter for the CD drive can be changed from the “CD drive”
selection. On Linux, device node for the CD drive can be entered, this can be typically
a symlink such as “/dev/cdrom”. On macOS, device node can be discovered using
terminal command “drutil status”, where for example if Name is “/dev/disk5” the device
node to be entered is “/dev/rdisk5”.

4.2. Outputs
On Outputs tab, audio output device related settings can be changed.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


15 / 60

Settings dialog, Output tab

Number of output channels can be chosen from “Channels” selection, possible


choices range from “2” for stereo to 128 output channels, primarily for complex matrix
processing cases.

Default output mode


Selects default output mode. When set to “PCM”, all content is played as PCM output.
When “SDM (DSD)” is selected, all content is played as SDM output. When “[source]”
is selected, PCM content is played as PCM and DSD content is played as SDM.
However, using “[source]” usually leads to sub-optimal result with either format since
only very few DACs have separate true PCM (R2R) and SDM conversion sections
inside. In most cases only either one of the options is optimal for the DAC.

Quick pause
Quick pause changes pause operation to play only basic silence pattern. In some
cases this reduces delay when pressing pause. But can cause audible glitches
especially when DAC is directly connected to a power amp without intermediate
analog volume control.

Adaptive rate
Adaptive output rate makes automatic output rate selection pick sampling rates based
on two different rules; grayed selects default or lower rate based on filter and DAC
capabilities, while checked selects rate that is multiple of the same base sampling rate
as the source. When the setting is not checked, specified output sampling rate is fixed.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


16 / 60

Volume control
It is also possible to configure adjustment range of the volume control. When both
values are set to zero (0), volume control is bypassed completely (see note below).
Fixed volume setting can be achieved by setting both min and max to the same value.

PCM gain compensation


Due to nature of DSD, many DACs have different output levels for 0 dBFS PCM vs 0
dB DSD. PCM gain compensation can be used to compensate for this level difference.

DAC type Compensation (dB)


Asahi Kasei Micro (AKM), AK4490 -3.5
Asahi Kasei Micro (AKM), AK4493 -1 to -3.5 depending on
reference level settings
Asahi Kasei Micro (AKM), AK4499 -4.1
Asahi Kasei Micro (AKM), AK4499EX -3 depending on
settings
Cirrus Logic -3
ESS Sabre 0
Texas Instruments / Burr-Brown Depends on selected
AFIR, refer to the
datasheet for details
Holo Audio -6
Denafrips -3.2
Merging Hapi -0.6

4.3. PCM
On PCM tab, settings for PCM output mode can be controlled.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


17 / 60

Settings dialog, PCM tab

For filter settings, please see a separate section below.

Sample rate / Limit


Output sample rate request, or limit can be set in “Sample rate”. This is the maximum
output rate HQPlayer will use.
This selection can be used to switch between supported hardware sample rates.
Available choices depend on selected transport and resampling filter type. When
default output mode is set to “[source]”, or “Adaptive output rate” is enabled, this is
only a default and upper limit for output rate, specific rate is selected by the playback
engine during playback time depending on available rates and filter conversion
capabilities. When default output mode is PCM, and “Adaptive output rate” is not
enabled, the selected rate is static output rate.
Note! When “none” is selected as resampling algorithm, output sampling rate is
adjusted based on source file's sampling rate. For DSD sources, this is 1/16th of the
DSD rate.

Noise-shaping / dither
This selection can be used to switch between different word-length reduction
algorithms. It is always recommended to use at least TPDF dither.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


18 / 60

NS/Dither Description
none No noise-shaping or dithering, only rounding. Mostly suitable for
testing cases together with none filter selection, where bit-perfect
output is needed. Not recommended.
NS1 Simple first order noise-shaping. Sample values are rounded and the
quantization error is shaped such way that the error energy is pushed
to the higher frequencies. Suitable mostly for 176.4/192 kHz
upsampling.
NS4 Fourth order noise-shaping. Similar in shape as “shaped” dither.
Suitable for all rates equal or higher than 88.2 kHz.
NS5 Fifth order noise-shaping. Fairly aggressive noise-shaping designed
for 8x and 16x rates (352.8/384/705.6/768 kHz). Not recommended for
rates below 192 kHz. (Especially good for PCM1704 at those highest
rates.)
NS9 Ninth order noise-shaping. Very aggressive noise-shaping designed
especially for 4x rates (176.4/192 kHz) and recommended for these
rates. (Especially good for older 16-bit 4x rate capable multibit-DACs
like TDA154x etc.)
LNS15 15th order linear noise shaping. Smooth noise-shaping slope designed
especially for 16x rates (705.6/768 kHz) and recommended for these
higher PCM rates. Can be also used at 8x rates (352.8/384 kHz), but
not recommended for rates below.
RPDF Rectangular Probability Density Function. White noise dither.
Computationally light weight, but only suitable for 24-bit or higher
output hardware.
TPDF Triangular Probability Density Function. This is the industry standard
simple dither mechanism. Suitable for any rate and recommended if
playback rate is 44.1/48 kHz. Recommended for general purpose use.
Gauss1 Gaussian Probability Density Function. High quality flat frequency
dither recommended for rates at or below 96 kHz where noise-shaping
is not suitable.
shaped Shaped dither. Noise used in this dither has shaped frequency
distribution to lower audibility of the dither noise. Suitable for playback
rates of 88.2/96 kHz, or higher.

Note! Use of “NS1” with equipment sensitive to ultrasonic noise is not recommended.

Bits
When DAC is connected to a unidirectional interface like S/PDIF, AES/EBU or I2S it is
important to select correct number of bits from the “DAC bits” selection. In addition,
when a DAC is connected to USB and has something else than 32-bit input resolution,
it is recommend to set the actual value here.

For Holo Audio and Denafrips R2R DACs, setting Bits to 20 is recommended. Also

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


19 / 60

when a suitable noise-shaper, such as LNS15, NS9 or NS5 is used in combination


with high output rates, linearity errors inherent to all R2R DACs can be corrected. This
will lower distortion of especially low level signals and reduce zero-crossing disortions.

DSD sources
These settings control DSD to PCM conversion algorithms.

Different types of noise filters for PCM are provided. These reduce amount of
ultrasonic noise present in the source data. Standard filtering leaves low level of
ultrasonic noise. Some loudspeakers with tweeters of low power handling capability
can be sensitive to this noise, especially when higher listening volumes are used. Also
some poorly designed, or class-D, amplifiers can misbehave in presence of such
ultrasonic content. Therefore more aggressive noise filters can be selected by using
“Noise filter” drop list. These filters will also limit bandwidth available for the audio
content. Following filters are supported.
When processing output rate of DSD source (assuming DSD64) is 88.2/96 kHz PCM,
use of extra noise filtering in addition to “standard” is less important, since most of the
noise will be cut out. When processing output rate of DSDIFF or DSF source is
44.1/48 kHz, extra noise filtering in addition to “standard” is not needed and will
actually just reduce playback quality.

PCM Noise filter Description


standard Standard noise filter will be applied.
Recommended.
low Similar to standard, but has lower corner
frequency and results in almost flat noise
profile in ultrasonic range. Recommended.
high-order High order noise filter designed for material
created with high order modulators.
Recommended.
sac Sliding average converter.
wec Weighted element converter.
wec2 Weighted element converter. Optimized to
closely match DSD/SACD specification.
Non-ringing linear-phase. Recommended.
slow-lp Slow roll-off linear-phase filter.
slow-mp Slow roll-off minimum-phase filter.
medium Medium roll-off linear-phase filter designed
to be as gentle as possible while passing
minimal amount of out-of-band noise.
Recommended.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


20 / 60

medium-high Medium roll-off high reate linear-phase filter


designed to be as gentle as possible while
passing minimal amount of out-of-band
noise. Use this instead of “medium” when
“none” is selected as PCM Conversion.
Recommended.
fast-lp Fast roll-off linear-phase filter.
fast-mp Fast roll-off minimum-phase filter.
brickwall Brickwall filter that doesn’t pass any out-of-
band noise. Very steep linear phase filter.
Cut-off at 25 kHz for DSD64, 50 kHz for
DSD128, 100 kHz for DSD256, 200 kHz for
DSD512 and 400 kHz for DSD1024.

Type of SDM → PCM conversion can be selected from the “Conversion” drop list.
Following conversion types are supported.

PCM Conversion Description


traditional Traditional recursive conversion algorithm.
Minimizes amount of ringing by using slow
roll-off filters.
single-steep Single-pass conversion algorithm with steep
roll-off.
single-short Single-pass conversion algorithm with
normal roll-off. Optimized tradeoff between
ringing and wide frequency response.
sinc-S Linear-phase adaptive length sharp roll-off
and high attenuation single pass conversion
algorithm. Number of taps is 65536.
sinc-M Linear-phase million-tap sharp roll-off and
high attenuation single pass conversion
algorithm.
poly-lp Linear-phase single-pass conversion
algorithm.
poly-mp Minimum-phase single-pass conversion
algorithm.
poly-short-lp Linear-phase slow roll-off single-pass
conversion algorithm. Recommended.
poly-short-mp Minimum-phase slow roll-off single-pass
conversion algorithm.
poly-xtr Linear-phase extreme roll-off and
attenuation single-pass conversion
algorithm.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


21 / 60

PCM Conversion Description


poly-xtr-short Linear-phase extreme roll-off and
attenuation single-pass conversion
algorithm.
poly-ext2 Linear-phase extended frequency response
sharp roll-off and high attenuation single-
pass conversion algorithm.
poly-gauss-long Linear-phase Gaussian extremely high
attenuation single-pass conversion
algorithm. Optimal time-frequency
response.
none No decimation, intermediate output rate is
equal to source DSD rate.

DSDIFF or DSF file should typically have 6 dB of headroom on the signal level. By
selecting “6 dB gain” check box, 6 decibels of gain is applied, removing this headroom
from the converted signal. This way the normal playback level reaches that of normal
PCM. However, this may cause overloads with some source material and may require
extra attenuation using volume control.

4.4. SDM
On SDM tab, settings for SDM output mode can be controlled.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


22 / 60

Settings dialog, SDM tab

For oversampling settings, see separate section below.

Modulator
Allows selection of the delta-sigma modulator used to produce SDM output.

Modulator Description
DSD5 Rate adaptive fifth order one-bit delta-sigma modulator.
DSD5v2 Revised fifth order one-bit delta-sigma modulator.
DSD5v2 Revised fifth order one-bit delta-sigma modulator optimized for rates
256+fs >= 10.24 MHz.
DSD5EC Rate adaptive fifth order one-bit delta-sigma modulator with extended
compensation.
ASDM5 Adaptive fifth order one-bit delta-sigma modulator.
ASDM5EC Adaptive fifth order one-bit delta-sigma modulator with extended
compensation.
ASDM5ECv2 Second generation of ASDM5EC with minor improvements.
ASDM5ECv3 Third generation of ASDM5EC with minor improvements.
ASDM5EC- Adaptive fifth order one-bit delta-sigma modulator with extended
ul compensation. Ultralight version.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


23 / 60

Modulator Description
ASDM5EC- Adaptive fifth order one-bit delta-sigma modulator with extended
light compensation. Light version.
ASDM5EC- Adaptive fifth order one-bit delta-sigma modulator with extended
super compensation. Super version.
ASDM5EC- Adaptive fifth order one-bit delta-sigma modulator with extended
ul 512+fs compensation. Optimized for 512x and higher rates. Ultralight version.
ASDM5EC- Adaptive fifth order one-bit delta-sigma modulator with extended
light 512+fs compensation. Optimized for 512x and higher rates. Light version.
ASDM5EC- Adaptive fifth order one-bit delta-sigma modulatro with extended
super 512+fs compensation. Optimized for 512x and higher rates. Super version.
DSD7 Seventh order one-bit delta-sigma modulator.
DSD7 Seventh order one-bit delta-sigma modulator optimized for rates >=
256+fs 10.24 MHz.
ASDM7 Adaptive seventh order one-bit delta-sigma modulator.
ASDM7EC Adaptive seventh order one-bit delta-sigma modulator with extended
compensation.
ASDM7ECv2 Second generation of ASDM7EC with minor improvements.
ASDM7ECv3 Third generation of ASDM7EC with minor improvements.
ASDM7EC- Adaptive seventh order one-bit delta-sigma modulator with extended
ul compensation. Ultralight version.
ASDM7EC- Adaptive seventh order one-bit delta-sigma modulator with extended
light compensation. Light version.
ASDM7EC- Adaptive seventh order one-bit delta-sigma modulator with extended
super compensation. Super version.
ASDM7EC- Adaptive seventh order one-bit delta-sigma modulator with extended
ul 512+fs compensation. Optimized for 512x and higher rates. Ultralight version.
ASDM7EC- Adaptive seventh order one-bit delta-sigma modulator with extended
light 512+fs compensation. Optimized for 512x and higher rates. Light version.
ASDM7EC- Adaptive seventh order one-bit delta-sigma modulatro with extended
super 512+fs compensation. Optimized for 512x and higher rates. Super version.
AMSDM7 Special adaptive seventh order “pseudo-multi-bit” modulator optimized
512+fs for rates above >= 20.48 MHz.
AMSDM7EC Special adaptive seventh order “pseudo-multi-bit” modulator with
512+fs extended compensation for rates >= 20.48 MHz.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


24 / 60

Modulator Description
AHM5EC5L Experimental fifth order five level hybrid modulator with extended
compensation. Optimized for rates >= 40.96 MHz.
Note! Limited SNR compared to other modulators, best suited for
loudspeaker system and/or when digital volume control is not needed.
Not recommended when HQPlayer’s volume control is the primary
volume control method.
AHM7EC5L Experimental seventh order five level hybrid modulator with extended
compensation. Optimized for rates >= 40.96 MHz.
Note! Limited SNR compared to other modulators, best suited for
loudspeaker system and/or when digital volume control is not needed.
Not recommended when HQPlayer’s volume control is the primary
volume control method.

Fifth order modulators are more suitable for DACs that have simple analog
reconstruction filters. Seventh order modulators provide better technical performance,
but also put more demands on the DAC's analog reconstruction filter. Typically this
means that fifth order modulators suit DACs that have one switching element while
seventh order modulators have potential for better performance on DACs that have
multi-element switching arrays. DSD* modulators are fixed configuration ones while
ASDM* modulators are adaptive in various ways based on source signal. For ESS
Sabre based DACs, fifth order modulators are recommended. For most other DACs,
seventh order modulators are optimal.

Integrator
There are three types of delta-sigma integrators available for different SDM → SDM
remodulation schemes. These affect mostly frequency and phase response at highest
frequencies. Stated frequencies apply for DSD64 source rate, these frequencies scale
as function of source sampling rate.

SDM Integrator Description


IIR Normal IIR type integrator structure. 50 kHz
audio bandwidth re DSD64.
IIR2 IIR type integrator structure designed to
minimize residual noise. 25 kHz audio
bandwidth re DSD64.
IIR3 High order IIR type integrator structure. 30
kHz audio bandwidth re DSD64.
FIR Weighted FIR type integrator structure.
FIR2 Weighted FIR type integrator structure. 50
kHz audio bandwidth re DSD64.
FIR-bl FIR type integrator structure with band-
limiting. 24 kHz audio bandwidth re DSD64
with complete cut by 45 kHz.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


25 / 60

FIR-bw FIR type integrator structure with brickwall


band-limiting. 21.5 kHz audio bandwidth re
DSD64 with complete cut by 30 kHz.
CIC Cascade comb type integrator structure.

Conversion
There are different options for SDM → SDM rate conversions. These affect frequency
aperture that is assumed to contain useful signal in addition to increasing noise
shaping noise. For example piano doesn’t contain high frequency harmonics and for
such case “narrow” is suitable, while close miked percussions usually contain high
level high frequency content and there “wide” may be more suitable. While “XFi” is
suitable for all cases. Default is “XFi”.

SDM Conversion Description


wide Wide bandwidth signal
narrow Narrow bandwidth signal
XFi Extreme fidelity medium bandwidth

DirectSDM
DirectSDM setting disables all processing when source is DSD content and output
format is SDM to a DSD-device or file.

Note! Enabling DirectSDM will disable volume control and set PCM volume to fixed -3
dBFS value.

4.5. Filter / Oversampling selection


This selection can be used to switch between PCM resampling / oversampling filters.
This selection has an impact on available hardware sampling rates. Different variants
of “poly-sinc” are the most recommended by the author. Filter/oversampling selection
for “1x” rates covers source sampling rates below 50 kHz, so called base rates. Filter
selection for “Nx” rates covers everything else above the 1x rates. Apodizing filter
should be used at least when “Apod” counter increments to higher than 10 during any
single track.

Filter Description Special Genre Ratio Ap


focus od
none No sample rate conversion 1:1
happens. Only sample depth is
changed as needed.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


26 / 60

IIR This is analog-sounding filter, Pop, rock, Integer X


especially suitable for recordings jazz, blues
containing strong transients, long
post-echo is a side effect (not
usually audible due to masking). A
really steep IIR filter is used. This
filter type is similar to analog filters
and has no pre-echo, but has a
long post-echo. Small amount of
pass-band ripple is also present.
Medium attenuation. IIR filter is
applied in time domain.
IIR2 This is analog-sounding filter, Pop, rock, Integer X
especially suitable for recordings jazz, blues
containing strong transients, long
post-echo is a side effect (not
usually audible due to masking). A
steep IIR filter is used. This filter
type is similar to analog filters and
has no pre-echo, but has a long
post-echo. Medium attenuation.
No passband ripple. IIR filter is
applied in time domain.
FIR Typical “oversampling” digital filter, Classical Integer X
generally suitable for most uses
(slight pre- and post-echo), but
best on classical music recorded
in a real world acoustic
environment such as concert hall.
This is the most ordinary filter
type, usually present in hardware.
This filter is applied in time-
domain. It has average amount of
pre- and post-echo.
asymFIR Asymmetric FIR, good for Jazz, Integer X
jazz/blues, and other music blues
containing transients recorded in
real world acoustic environment.
Otherwise same as FIR, but with a
shorter pre-echo and longer post-
echo. Modifies phase response,
but not as much as minimum
phase FIR.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


27 / 60

minphaseFIR Minimum phase FIR, good for Pop, rock, Integer X


pop/rock/electronic music electronic
containing strong transients such
as drums and percussion and
where recording is made in a
studio using multi-track
equipment. No pre-echo, but
somewhat long post-echo.
FFT Technically good steep “brickwall” Any 2x X
filter, but might have some side depending
effects (pre-echo) on material on length
containing strong transients. This
filter is similar to FIR, but it is
applied in frequency-domain and
is quite efficient from performance
point of view while having rather
long impulse response.
Length of this filter can be
configured separately in Settings
dialog.
poly-sinc-lp Linear phase polyphase sinc filter. Space Classical Any X
Very high quality linear phase
resampling filter, can perform
most of the typical conversion
ratios. Good phase response, but
has some amount of pre-echo.
See “FIR” for further details.
poly-sinc-mp Minimum phase polyphase sinc Transie Jazz, Any X
filter, otherwise similar to poly- nts blues
sinc. Altered phase response, but
no pre-echo. See “minphaseFIR”
for further details.
poly-sinc-shrt- Otherwise similar as poly-sinc, but Space, Jazz, Any X
lp shorter pre- and post-echos at the transien blues,
expense of filtering quality (not as ts electronic
sharp roll-off).
poly-sinc-shrt- Minimum phase variant of poly- Transie Pop, rock Any X
mp sinc-shrt. Otherwise similar to nts
poly-sinc-mp, but shorter post-
echo. Most optimal transient
reproduction.
poly-sinc-long- Otherwise similar as poly-sinc, but Space Classical Any X
lp longer pre- and post-echos with
improved filtering quality (faster
roll-off).

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


28 / 60

poly-sinc-long- Intermediate phase version of Space, Jazz, Any X


ip poly-sinc-long, with small pre- transien blues,
echo and longer post-echo with ts electronic
improved filtering quality (faster
roll-off).
poly-sinc-long- Minimum phase variant of poly- Transie Pop, rock Any X
mp sinc-long. Otherwise similar to nts
poly-sinc-mp, but longer post-
echo with improved filtering quality
(faster roll-off).
poly-sinc-hb Linear-phase polyphase half-band Any Any
filter with steep roll-off and high
attenuation. Only suitable for
highest technical quality source
materials.
poly-sinc-hb- Extremely short linear-phase Pop, rock Any
xs polyphase half-band filter with
slow roll-off and low attenuation.
Only suitable for highest technical
quality source materials.
poly-sinc-hb-s Short linear-phase polyphase half- Pop, rock Any
band filter with slow roll-off and
average attenuation. Only suitable
for highest technical quality
source materials.
poly-sinc-hb-m Medium linear-phase polyphase Any Any
half-band filter with average roll-
off and medium attenuation. Only
suitable for highest technical
quality source materials.
poly-sinc-hb-l Long linear-phase polyphase half- Classical, Any
band filter with fast roll-off and jazz, blues
high attenuation. Only suitable for
highest technical quality source
materials.
poly-sinc-ext Linear phase polyphase sinc filter Integer X
with sharper roll-off and somewhat
lower stop-band attenuation, while
being roughly equal length to poly-
sinc.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


29 / 60

poly-sinc-ext2 Linear phase polyphase sinc filter Timbre Any Any X


with sharp roll-off and high stop-
band attenuation for extended
frequency response while
completely cutting off by Nyquist
frequency. Optimal frequency
response and harmonic structure.
For SDM outputs, processing is
two stages with 16x intermediate
rate.
poly-sinc-ext3 Very steep 8 times longer version Timbre Classical Any X
of poly-sinc-ext2. Optimal
frequency response and harmonic
structure.
poly-sinc- Linear phase polyphase sinc filter Transie Classical, PCM: X
mqa/mp3-lp optimized for playing back MQA or nts jazz, blues Integer
MP3 encoded content in order to up
clean up high frequency noise
added by the MQA or MP3 SDM:
encoding. Also suitable for Any
upsampling PCM sources of 88.2
kHz or higher sampling rate,
especially for hires PCM
recordings of 176.4 kHz or higher
sampling rate. Very short ringing.
Early slow roll-off.
poly-sinc- Minimum phase variant of poly- Transie Pop, rock PCM: X
mqa/mp3-mp sinc-mqa. nts Integer
up

SDM:
Any
poly-sinc-xtr-lp Linear phase polyphase sinc filter Timbre Classical Any
with extreme roll-off and
attenuation.
poly-sinc-xtr- Minimum phase polyphase sinc Timbre Jazz, Any
mp filter with extreme roll-off and blues
attenuation.
poly-sinc-xtr- Short linear phase polyphase sinc Timbre Electronic, Any X
short-lp filter with extreme roll-off and jazz,
attenuation. blues,
pop, rock
poly-sinc-xtr- Short minimum phase polyphase Timbre Pop, rock Any X
short-mp sinc filter with extreme roll-off and
attenuation.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


30 / 60

poly-sinc- Short Gaussian polyphase sinc Transie Electronic, Integer


gauss-short filter. Optimal time-frequency nts jazz, up
response. For SDM outputs, blues,
processing is two stages with 16x pop, rock
intermediate rate.
poly-sinc- Gaussian polyphase sinc filter. Transie Any Any X
gauss Optimal time-frequency response. nts,
For SDM outputs, processing is timbre
two stages with 16x intermediate
rate.
poly-sinc- Long Gaussian polyphase sinc Transie Any Any X
gauss-long filter with extremely high nts,
attenuation. Optimal time- timbre,
frequency response. For SDM space
outputs, processing is two stages
with 16x intermediate rate.
poly-sinc- Extra long Gaussian polyphase Transie Classical, Any
gauss-xl sinc filter with extremely high nts, jazz, blues
attenuation. Optimal time- timbre,
frequency response. For SDM space
outputs, processing is two stages
with 16x intermediate rate.
poly-sinc- Apodizing extra long Gaussian Transie Classical, Any X
gauss-xla polyphase sinc filter with nts, jazz, blues
extremely high attenuation. timbre,
Optimal time-frequency response. space
For SDM outputs, processing is
two stages with 16x intermediate
rate.
poly-sinc- Linear-phase Gaussian filter for Transie Any Any X
gauss-hires-lp HiRes content with extremely high nts,
attenuation. Optimal time- timbre,
frequency response. Also suitable space
for playback of lossy compression
such as MP3 or MQA.
poly-sinc- Intermediate-phase Gaussian filter Transie Any Any X
gauss-hires-ip for HiRes content with extremely nts,
high attenuation. Optimal time- timbre,
frequency response. Also suitable space
for playback of lossy compression
such as MP3 or MQA.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


31 / 60

poly-sinc- Minimum-phase Gaussian filter for Transie Any Any X


gauss-hires- HiRes content with extremely high nts,
mp attenuation. Optimal time- timbre,
frequency response. Also suitable space
for playback of lossy compression
such as MP3 or MQA.
poly-sinc- Linear-phase halfband Gaussian Transie Any Any
gauss- filter. Slightly leaky around nts,
halfband Nyquist, but extremely high timbre,
attenuation. Only suitable for space
highest technical quality source
materials.
poly-sinc- Short linear-phase halfband Transie Any Any
gauss- Gaussian filter. Leaky around nts,
halfband-s Nyquist, but high attenuation. Only timbre,
suitable for highest technical space
quality source materials.
ASRC This is a special type of filter, Any
slightly similar to FIR, but with a
possibility of asynchronous
operation for conversions from
any rate to any other rate.
Computationally heavy and not
recommended.
polynomial-1 Polynomial interpolation. No Integer
apparent pre- or post-ringing. up
Frequency response rolls off
slowly in the top octave. Poor
stop-band rejection and will thus
leak fairly high amount of
ultrasonic distortion. These type of
filters are sometimes referred to
as “non-ringing” by some
manufacturers. Not
recommended.
polynomial-2 Similar to polynomial-1, but higher Integer
stop-band rejection and only one up
cycle of pre- and post-ringing. Not
recommended.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


32 / 60

minringFIR-lp Minimum ringing FIR. Uses Transie Integer


special algorithm to create a nts up
linear-phase filter that minimizes
amount of ringing while providing
better frequency-response and
attenuation than polynomial
interpolators. Performance and
ringing is between polynomial and
poly-sinc-short.
minringFIR-mp Minimum phase variant of Transie Integer
minringFIR. nts up
closed-form Closed form interpolation with 2x up
high number of taps.
closed-form- Closed form interpolation with 2x up
fast lower CPU load, but also lower
precision. Output precision tuned
to match about 24-bit PCM.
closed-form-M Closed form interpolation with one 2x up
million taps.
closed-form- Closed form interpolation with 16 2x up
16M million taps.
sinc-S sinc-filter with adaptive number of Space, Any Integer X
taps. Number of taps is 4096 x timbre
conversion ratio. Very sharp roll-
off and high attenuation. Variant of
poly-sinc-ext3.
sinc-M sinc-filter with one million taps. Space, Classical, Integer X
Very sharp roll-off and high timbre jazz, blues
attenuation. Variant of poly-sinc-
ext3.
sinc-Mx Constant time version of sinc-M. Space, Classical, Integer X
Filter length is constant in time, timbre jazz, blues
with million taps at 16x PCM
output rates. Variant of poly-sinc-
ext3. (65536 x conversion ratio)
sinc-MG Gaussian constant time filter with Transie Classical, Integer
million taps at 16x PCM output nts, jazz, blues
rates. Extremely high attenuation. timbre,
Variant of poly-sinc-gauss-xl. space
(65536 x conversion ratio)

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


33 / 60

sinc-MGa Apodizing Gaussian constant time Transie Classical, Integer X


filter with million taps at 16x PCM nts, jazz, blues
output rates. Extremely high timbre,
attenuation. Variant of poly-sinc- space
gauss-xla. (65536 x conversion
ratio)
sinc-L sinc-filter with adaptive number of Classical Integer
taps. Number of taps is 131070 x
conversion ratio. Extremely sharp
roll-off and average attenuation.
sinc-Ls Average attenuation sinc-filter with Any Integer
adaptive number of taps (4096 x
conversion ratio).
sinc-Lm Average attenuation sinc-filter with Classical, Integer
adaptive number of taps (16384 x jazz, blues
conversion ratio).
sinc-Ll Average attenuation sinc-filter with Classical Integer
adaptive number of taps (65536 x
conversion ratio).
sinc-short Short average attenuation sinc- Any Any
filter with adaptive number of taps.
For SDM outputs, processing is
two stages with 16x intermediate
rate.
sinc-medium Average attenuation sinc-filter with Classical, Any
adaptive number of taps. For SDM jazz, blues
outputs, processing is two stages
with 16x intermediate rate.
sinc-long Long average attenuation sinc- Classical Any
filter with adaptive number of taps.
For SDM outputs, processing is
two stages with 16x intermediate
rate.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


34 / 60

*-2s Two stage oversampling. First Same O


stage rate conversion is as the
performed by at least by factor of base
8 using the selected algorithm. filter
And further converted to the final
rate using algorithm optimized for
conversion of content that has
already been processed to at least
8x rate. This lowers the overall
CPU load, while preserving the
same conversion quality.
Especially useful for highest
output rates.

4.6. Advanced
In the Advanced tab, various advanced settings such as hardware related
optimizations can be adjusted.

Settings dialog, Advanced tab

Multicore DSP
Multicore DSP increases parallelization of various DSP operations.
When the selection box is grayed, automatic detection and configuration is active and
can utilize any number of cores. For best performance it is recommended to use the

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


35 / 60

auto-detection.
When the box is cleared, processing is optimized for cases where number of cores is
equal or less than number of output channels. Such as dual-core CPUs when output is
stereo.
When the box is checked, processing is optimized for modern multi-core CPUs with
much higher core count than number of output channels. Since this parallelization
increases processing overhead, it will increase total CPU time consumption. If there
are performance problems with “auto” setting, it is typically useful to try this option.

E-core allocation
On newer CPUs that have both performance and efficiency cores, efficiency cores can
be allocated as offload processors instead of normal (default) use. These e-cores can
be allocated either for processing resampling filters, or for a generic DSP pool for
performing other tasks such as convolution.

CUDA offload
“CUDA offload” can utilize nVidia GPU to partially offload the processing from CPU to
GPU. CUDA offload requires nVidia GPU with minimum Compute Capability level 5.2,
2 GB of graphics RAM and latest official nVidia drivers. When offload is enabled and
suitable GPU is available, message about the offload is briefly shown at the beginning
of playback of each track. When CUDA offload is enabled, also Multicore DSP should
be enabled, or left at automatic setting to achieve best performance.
When CUDA offload checkbox is grayed, only convolution algorithms are offloaded to
GPU.
Same or different GPU can be selected separately for performing filters and other DSP
tasks, and convolution and other large operations. This allows to split the workload
across two separate GPUs.

DSP pipelines
Specify number of DSP pipelines available. This is both number of matrix pipelines,
and total number of possible input or output channels. Using suitably low value
reduces resource consumption, such as RAM usage to some extent.

Blocks per cycle


Number of blocks to process at once. This setting can be used to fine tune CPU/GPU
load to lowest possible figure. When set to “Default” the value is auto-configured
based on detected amount of CPU cache etc. Processing more blocks at once
reduces overhead, especially when GPU is used. While processing fewer blocks at
once helps keeping most of the data in CPU cache. Higher values are better suited for
processors with large cache, such as AMD 3D-series and some Intel Xeon models, or
systems with high speed RAM. While smaller values are better suited for CPUs with
small cache, or systems with slower RAM.

Idle time
Defines amount of time the engine is left idling after playback of current content has
ended. This allows faster playback restart within the idle period.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


36 / 60

FFT filter length


This option specified length of the FFT filter. Default value is 512. Length affects
steepness of the filter, shorter lengths result in slower (gentler) roll-off, while higher
lengths result in faster (steeper) roll-off. This setting is per each 2x cascade filter, thus
it is not conversion ration dependent.

Pre-process before metering


When enabled, pre-processing, such as 20 kHz filter, is run before metering. This
allows one to see effect of the pre-process. But it may make it harder to detect when to
disable 20 kHz filter again.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


37 / 60

5. Channel balance
For multichannel processing, speaker/microphone levels and distances can be
configured using Channel balance dialog. This dialog can be reached by opening
“Tools” menu and selecting “Channel balance...”.

Speaker setup dialog

In this dialog, distance to each individual speaker can be set in centimeters. Level of
the channel can be set using the volume slider and unit shown in upper right corner is
in dB. Allowed adjustment range using spinbox input is wider than range of the slider.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


38 / 60

For adjusting speakers, pink noise test tone can be played by selecting the “Test tone”
box. When the box is checked, tone will be played in all channels, thus making it easy
to adjust all levels in such way that the they sound equal. When the box is grayed,
tone will be played one channel at the time in rotating manner, making it easy to adjust
all levels using an SPL meter.
Multichannel delay processing is done in target sampling rate. This increases
processing accuracy as the output sampling rate is increased.
This method is suitable for simplest per-channel level adjustment and is processed in
simpler and lighter way than full pipeline matrix.

Note! Distance processing is available also for bit-perfect pass-through of DSD when
Direct SDM is enabled!

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


39 / 60

6. Convolution engine
Convolution engine can be configured through the “Convolution” menu and selecting
“Engine setup...”.
Following dialog will be shown.

Convolution engine setup dialog

When “Enabled” option is checked, convolution engine is enabled at the application


level and enabled by default at the startup time. Enable this selection only after
selecting suitable impulse response files and if you are certain that your files contain
intended impulse response data.
Convolution algorithm can be changed from the “Convolution engine” selection. There
are two possibilities, “overlap-add” consumes less CPU power and is recommended.
Another alternative is “overlap-save” which consumes more CPU power.
To select impulse response files, “Browse...” button can be used. A normal file
selection dialog will be shown. After a file is selected, some preliminary checks for the
suitability is done and an error message is displayed in case of incorrect file details.
Left and right channels can have independent files.
When an impulse response file is selected through “Browse...”, it's estimated gain
function is calculated and displayed in “IR gain” box. This can help choosing suitable
value for “Gain compensation”. Also the default convolution engine can be selected.
When positive gain compensation is chosen, it is applied as negative gain when
convolution is disabled from the main screen. This makes it easier to compare impact
of the particular convolution setup.
When provided impulse response is lower sampling rate than source material, it's high
frequency response can be expanded to cover the new bandwidth by selecting
“Expand HF” setting.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


40 / 60

Clicking “OK” will save the setting to the configuration file and the settings are ready
for use.
Convolution engine requires impulse responses to be mono RIFF (WAV) format files.
If some of the channels don't need processing, or are not used, clearing the filename
will disable convolution engine for those channels.
For most optimal case for all kinds of source material, use extended frequency
response convolution filters with 352.8 kHz sampling rate. When such are used,
Expand HF can be left disabled for all cases.
For example popular Room EQ Wizard can export suitable impulse responses after
designing for “Generic” equalizer by selecting File → Export → Filters Impulse
Response as WAV. Or more advanced tools like rePhase that can utilize Room EQ
Wizard measurements. Expert users can also use open source DRC tool for designing
even suitable full-band correction filters.
Note! Use of long convolution filters for all eight channels of audio for hires audio files
will need substantial amount of CPU/GPU processing power!
Note! It is not recommended to use convolution engine together with matrix
processor. When matrix processor is enabled, it is recommended to do convolution
there instead.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


41 / 60

7. Matrix processing
Matrix processing offers a way to copy, route, filter and mix down channels with
specified gains. Matrix processing consists of maximum 128 virtual channels –
pipelines, number of active pipelines can be configured through advanced settings.

Note! It is not recommended have both simple convolution engine (section 6) and
matrix processor active simultaneously. If convolution is needed with matrix
processing, it is recommended to configure convolution here.

Matrix configuration dialog

For example the configuration shown above can be used to mix down 5.0/5.1 channel
material to stereo. As an example it also contains additional parametric equalizer
giving -3 dB attenuation of main channels above 200 Hz (not needed for multichannel
mix down use).

Combo box at the top is used to specify and select saved matrix configuration profiles.
These profiles can be also selected remotely. Currently shown values are saved as
default profile when OK is clicked.

Convolution engine applicable to filter(s) defined in Process, can be selected from two
choices, Overlap-add which is the default and recommended and Overlap-save which
is alternative method. For filters using low sampling rate, frequency response of the
filter can be extended beyond Nyquist frequency of the filter’s sampling rate by
selecting Expand HF. In addition, various plugin instances with parameters can be

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


42 / 60

specified in the Process item, as a comma-separated list.

Using the IIR to FIR it is possible to choose whether parametric EQs are converted to
a convolution EQ. When the box is grayed, the conversion is a direct conversion and
retains original minimum phase response. When the box is checked, the EQ filter is
converted to a linear phase one.
In some cases, like GPU offloading, it may be more efficient to compute set of
parametric EQs as a convolution filter instead.
Note! Conversion to linear phase will introduce some amount of unnatural pre-ringing
in the audio band. This is why EQ filters are typically minimum-phase. Higher the
parametric filter's Q and dB values are, more pre-ringing it will also introduce for linear-
phase. So the linear phase conversion works best with rather gentle EQ setups.

The “Source Ch” specifies the channel which is used as a source for the virtual
channel. “Gain” is overall gain applied for the virtual channel. And “Mix Ch” is the
logical output channel. When multiple virtual channels have the same target channel,
outputs of the virtual channels are mixed together to the target output channel.
“Process” can define external filter impulse response(s) WAV file for convolution,
parametric equalizer specification in RoomEqWizard text output format, and
parametric filter specifications (see Plugins section later). “Browse” button can be used
to select WAV and TXT files.
Gain can be applied in both dB scale or linear scale, as selected in the corresponding
column. Linear scale factors can be also negative to perform phase inversion, this
allows for example M/S processing.
When choosing format for convolution filters, for most optimal case for all kinds of
source material, use extended frequency response convolution filters with 352.8 kHz
sampling rate. When such are used, Expand HF can be left disabled for all cases.

Various headphone equalization files can be found from AutoEq. Choose the
ParametricEQ txt file. This can be directly used in HQPlayer matrix processor without
modifications and also includes gain compensation data.

Post-processing algorithms can be enabled and configured in the table below the
pipeline routing matrix. These are applied to the output mix bus, meaning output
channels after the matrix processing.
Bauer cross-feed is processing for headphones that is intended to make the listening
experience more natural and spacious. This is very simple model, with three presets.
When custom preset is selected, cross-feed filter frequency (Parameter 1) and level
(Parameter 2) can be entered respectively.
Loudness is a volume-adaptive loudness control with adjustable parameters. For bass
and treble controls, the corner frequency, slope factor (see IIR plugin) and level can be
adjusted (Parameter 1 to Parameter 6 respectively). Lower bound (Parameter 7) is
volume setting where at or below, set maximum loudness value is reached. Higher
bound (Parameter 8) is volume setting where at and above, loudness value reaches 0
dB.
Correction performs corrections for the output signal of selected DAC. These
corrections are specific to a DAC model and output rate.

Clicking “Plot” button opens magnitude- and phase response plots for the

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


43 / 60

corresponding pipeline. Multiple plots can be added by clicking the buttons as long as
the graph dialog is open. To reset the view, close the graph dialog.

Magnitude and phase response plot

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


44 / 60

7.1. Plugins
Each plugin description begins with plugin name, followed by colon. After the color,
semicolon separated list of parameters can be specified.

Syntax is as follows:
<plugin>:[arg1[=val]];[arg2[=val]];...;[argn[=val]]

7.2. “delay” plugin


Delay plugin provides specified amount of delay.
Argument Description
s Delay in number of samples at source rate
t Delay in time, number of seconds
d Delay in distance, number of meters
v Velocity of sound, in m/s, default 343.956

7.3. “iir” plugin


IIR plugin provides parametric EQ based on IIR biquad filters.

Type Description Arguments


lp Low-pass filter f=frequency
q=Q OR s=slope
lp1 1st order low-pass filter f=frequency
hp High-pass filter f=frequency
q=Q OR s=slope
hp1 1st order high-pass filter f=frequency
bp Band-pass filter f=frequency
q=Q OR bw=bandwidth
ap All-pass filter f=frequency
q=Q OR bw=bandwidth
notch Notch filter f=frequency
q=Q OR bw=bandwidth
peak Peaking filter f=frequency
q=Q OR bw=bandwidth
g=gain
lshelf Low-shelf filter f=frequency
q=Q OR s=slope
g=gain
hshelf High-shelf filter f=frequency
q=Q OR s=slope
g=gain

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


45 / 60

biquad Raw biquad filter b0=b0


b1=b1
b2=b2
a0=a0
a1=a1
a2=a2

Where f is in Hz, BW is factor, s is factor (1 maximum steepness) and g is in dB.


Note! Syntax is case sensitive!

7.4. “riaa” plugin


RIAA plugin provides RIAA EQ curve correction for vinyl playback. Currently plugin
provides only one adjustable parameter “subsonic” which is additional 20 Hz subsonic
filter pole, with values of “1” (enabled) and “0” (disabled). For best performance an
accuracy, use input sampling rate of 192 kHz or higher. Minimum recommended input
sampling rate is 96 kHz.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


46 / 60

8. HQPlayer Client
When HQPlayer Client is started, following kind of screen is shown.

Play view

This display is optimized for touch-screens, but can be also used with a mouse or
other suitable pointing device.
On top left corner is server name/address entry and list, to connect to a server, either
select a server shown on the list or type in either hostname or IP address of the server.
On top right corner is list of inputs available on the server, such as CD transport and
possible ADC’s or digital inputs. This input field can be also used to send URLs for
playback, such as internet radio playlist or stream URLs.
Cover art of the current track is shown as a background image, when available. If track
doesn't have embedded cover art, album/folder cover image is used instead. If no
cover image is available, default background image is shown. Information about
current server, input and output buffer levels and current track is shown in the top left
corner of the screen.
Track-listing is shown in top-right corner of the screen with high-light of current track
and possibility to directly select a track. Volume adjustment is in the lower right corner
and can be adjusted by dragging from the the adjustment either up or down, or
alternatively by through slider control that can be opened by double-clicking the
volume control. Volume can be also operated using a mouse wheel when mouse
pointer is within the control.
Star-button can be used to control favorite status of the currently playing track.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


47 / 60

Hotkeys
Client also supports various hotkeys for controlling playback and operation.

Key Description
Play Play/pause
PlayPause
Space
F8
Stop Stop
F6
Previous Previous track
Left
F7
Next Next track
Right
F9
Rewind Jump back 10 seconds
Forward Jump forward 10 seconds
RandomPlay Toggle random
Repeat Toggle repeat
VolumeUp Volume up +1
Up
F12
VolumeDown Volume down -1
Down
F11
1 Album view
F1
2 Play view
F2
3 Transport view (playlist editor)
F3

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


48 / 60

Metering
Metering can be enabled using the M switch in the bottom toolbar. This will replace the
cover image view with meter display.

Play view, metering

Left channel meters are shown on the left side, right channel meters on the right side.
In top left corner of each channel is shown output level meters, where yellow line
indicates peak hold level, dark green peak-to-peak level and light green RMS level.
Numerical values are also shown.
Underneath is spectrogram display with time on horizontal axis and frequency on
vertical access. Color coding is used to display signal level (in dB) in the time-
frequency space. Highest level in yellow and lowest in black. Red marker in frequency
scale shows base rate’s Nyquist frequency (highest possible), while yellow markers
show subsequent sub-band Nyquist frequencies.

20 kHz filter can also be switched on/off at any time, it is useful for cleaning up fake
high-res content when such is observed through metering. It will place a sharp roll-off
filter at 20 kHz.

Spectrogram color scheme can be changed from the control panel (see below).

Control panel
Additional settings can be accessed through menu-button (three horizontal lines) to
see following kind of popup.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


49 / 60

Settings view

Currently active mode, filter, dither/noise-shaper and sampling rate settings can be
viewed and changed using the settings popup dialog. These can be changed at any
time. Matrix profile can be switched at any time during playback as well.
In addition, phase inversion, adaptive gain, repeat (checked = current track, grayed =
all tracks), random playback order and currently active matrix profile can be changed.

Verbose metadata replaces some of the output format information with more elaborate
metadata display of current track. Elide left (default) allows track names to be
shortened from left instead of right when they don’t completely fit in the view. Album
view can be sorted in ascending (grayed) or descending (checked) release year order.
In addition, transparency of album and transport views can be controlled. Background
option generates color themed background image based on the current cover picture.

Prefetch (default) begins streaming next track before currently playing track finishes to
ensure gapless playback. Freewheel (default) will fetch entire track at full speed. It is
not always optimal on slower network links because it causes sharp network traffic
floods that may interfere with other things.

Auto play is used on Qobuz service to continue playing similar content automatically,
after the currently queued items have been played.
Login credentials of currently active service can be cleared using the button at the
bottom of the view.

8.1. Switching views


HQPlayer Client has three parallel views in horizontal direction. The view described

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


50 / 60

above is the middle one. Views can be switched by flick gestures to left or right,
clicking the title bars on left or right with a mouse cursor, or by keyboard shortcut keys
1, 2, 3.

8.2. Album selection view


On the left, there is an album selection view with cover flow. On top of the album view
there’s library selection, search / category selection, and genre selection.

Album selection view

Library selection allows selection of backing music library. You can also select one of
the supported streaming services to browse and play music from a streaming service.
Currently supported streaming services are Qobuz and HRA Streaming by
highresaudio.com. Default view is My Albums, or new releases / top 50 in case My
Albums is empty. Search allows searching for content. On HRA Streaming service,
prefixing search string with character ‘?’ performs quick search action.

For local library, search strings of three characters or less are considered “begins with”
matches. Search strings longer than three are considered “contains” matches. Default
matching logic is logical “OR” operation, where match on any of the terms results in
positive match. By prefixing a word with a ‘+’ character, logic is changed to logical
“AND” operation for that item.

It is also possible to search for a specific type of item. Search string can be prefixed
with “album:”, “artist:”, “playlist:” or “track:”.

Genre selection works on local library, and on some selected streaming service

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


51 / 60

categories depending on service’s functionality.

Clicking or tapping an album will select it for playback and return the view back to the
normal middle-view.
Double-click of an album will both load the album in transport and start playback.
Long-press on an album opens up following kind of popup window on album details.

Album details view

From the album details view, album can be played immediately or queued for later
playback. Individual tracks can be also played immediately or queued for later
playback.
Album or track favorite status can be seen on, and changed, using the star button.
Clicking or tapping outside of the popup closes the popup window. Also Esc button on
keyboard closes the popup.

Qobuz dynamic content


To trigger playback of similar content based on entire album, long press of album play
button can be used. Long press of the album queue button will queue similar content
for later playback. Similarly, long press of a track play button will trigger playback of
similar content. And long press of a track queue button will queue similar content.

8.3. Playlist edit view


On the right, there is a playlist edit view shown below.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


52 / 60

Playlist edit view

Going from left to right, there's an artist selection column, album selection column and
track selection column. The right-most column is the current playlist. Tracks can be
added or removed using the + and – keys below. Tracks can be also reordered by
using the up/down arrow buttons. Or the playlist can be cleared using the C button.
On top of the artist list, there’s a search entry for performing searches same way as
with the one in the album selection view.
Double-clicking an album, song or playlist entry will initiate immediate playback of the
item.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


53 / 60

9. Registering your copy


After purchasing a license key file will be provided. Store this file in a safe place. This
file can be installed by selecting “Register...” from the “Help” menu. Standard file open
dialog will appear asking to locate and select the license key file. Once the license key
file has been successfully installed, restart HQPlayer for the license to fully take effect.
Note! Remember to back-up the license key file!

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


54 / 60

10. Troubleshooting
This chapter explains some known workarounds and things which you can try, in case
of problems.

10.1. Reporting bugs


In case you discover bugs, please enable log file functionality from the settings dialog,
try to reproduce the bug and send the log file together with a screen shot (PrtScn
button) to our support email address [email protected] . On Windows the log file
can be found from %LOCALAPPDATA%\HQPlayer directory of the system drive. You
need to enter this path on the address bar of the Windows File Explorer as these are
not shown by default. On Linux and macOS, log file can be found from the hidden
~/.hqplayer directory, where “~” denotes user's home directory. The log file is called
HQPlayer4Desktop.log.

10.2. Sound problems with USB audio device


Default buffer size for USB audio devices is fairly small (10 ms) in Windows. This
sometimes causes various audio issues when some other process is loading the
system. If you experience such problems, increase size of the audio buffer by
changing the “Buffer time” setting in Settings-dialog. Good starting point is 100 ms.

10.3. Generic
You might want to check that your selected sound device has exclusive mode enabled
in endpoint properties.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


55 / 60

Endpoint properties dialog

With some buggy drivers it might also be necessary to change default format to match
the sample rate you are trying to use with HQPlayer.

10.4. No rates available


In some cases, rate selection may stay empty. This means that there are no suitable
hardware sampling rates available for selected source material and resampling filter
combination. In this case, try selecting different resampling filter, such as “sinc”,
“minphase-sinc” or “none”.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


56 / 60

11. Component licenses and trademarks


Following licenses apply for specified components.

11.1. HQPlayer
HQPlayer End User License Agreement

CAREFULLY READ THE FOLLOWING LICENSE AGREEMENT. BY INSTALLING THE SOFTWARE


OR CLICKING ON THE "I AGREE" BUTTON, YOU ARE CONSENTING TO BE BOUND BY AND ARE
BECOMING A PARTY TO THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF
THIS AGREEMENT, CLICK THE "CANCEL" BUTTON, AND, IF APPLICABLE, UNINSTALL THE
SOFTWARE.

License Grant
The package contains software ("Software") and related explanatory written materials
("Documentation"). "Software" includes any upgrades, modified versions, updates, additions and copies
of the Software. "You" means the person or company who is being licensed to use the Software or
Documentation. "We" and "us" means Jussi Laako, Signalyst.
This Software is licensed, not sold. We hereby grant you a nonexclusive license to use one copy of the
Software on any single computer, provided the Software is in use on only one computer at any time.
The Software is "in use" on a computer when it is loaded into temporary memory (RAM) or being
executed in other ways.

Title
We remain the owner of all right, title and interest in the Software and Documentation.

Archival or Backup Copies


You may either:
· make one copy of the Software solely for backup or archival purposes;
or
· transfer the Software to a single hard disk, provided you keep the
original solely for backup or archival purposes.

Things You May Not Do


The Software and Documentation are protected by Finnish copyright laws and international treaties. You
must treat the Software and Documentation like any other copyrighted material--for example a book.
You may not:
· copy the Documentation;
· copy the Software except to make archival or backup copies as
provided above;
· modify or adapt the Software or merge it into another program;
· reverse engineer, disassemble, decompile or make any attempt to
discover the source code of the Software, except solely for the
purpose of using modified versions of the Qt library or other LGPL libraries,
only to the extent required for this purpose;
· place the Software onto a server so that it is accessible via a
public network such as the Internet; or
· sublicense, rent, lease or lend any portion of the Software or
Documentation.

Trial Version
Limited time trial license is provided solely for the purpose of verifying that the Software and
Documentation is suitable for You and performs as expected, before purchasing a license. As the trial
license is provided for verification purposes, there is NO WARRANTY or REMEDY. After the limited trial
time, You agree to either stop using the Software and Documentation or purchase a license if You want
to continue using the Software and Documentation.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


57 / 60

Transfers
License is personal and You may NOT transfer any of your rights to use the Software or Documentation
to any another person or legal entity.

No Warranty
THIS SOFTWARE IS PROVIDED BY JUSSI LAAKO / SIGNALYST ''AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL JUSSI LAAKO / SIGNALYST BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR THE INABILITY TO USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
No employee, agent, dealer or distributor of ours is authorized to modify these terms, nor to make any
additional warranties.

Term and Termination


This license agreement takes effect upon your use of the software and remains effective until
terminated. You may terminate it at any time by destroying all copies of the Software and
Documentation in your possession. It will also automatically terminate if you fail to comply with any term
or condition of this license agreement. You agree on termination of this license to destroy all copies of
the Software and Documentation in your possession.

Confidentiality
The Software contains trade secrets and proprietary know-how that belong to us and it is being made
available to you in strict confidence. ANY USE OR DISCLOSURE OF THE SOFTWARE, OR OF ITS
ALGORITHMS, PROTOCOLS OR INTERFACES, OTHER THAN IN STRICT ACCORDANCE WITH
THIS LICENSE AGREEMENT, MAY BE ACTIONABLE AS A VIOLATION OF OUR TRADE SECRET
RIGHTS.

General Provisions
1. This written license agreement is the exclusive agreement between you and us concerning the
Software and Documentation and supersedes any and all prior oral or written agreements, negotiations
or other dealings between us concerning the Software.
2. This license agreement may be modified only by a writing signed by you and us.
3. In the event of litigation between you and us concerning the Software or Documentation, the litigation
will be held in District Court of Länsi-Uusimaa, Finland.
4. This license agreement is governed by the laws of Finland and international treaties.
5. You agree that the Software will not be shipped, transferred or exported into any country or used in
any manner prohibited by the laws of Finland or European Union or any other export laws, restrictions
or regulations.

11.2. FLAC
Copyright (C) 2000-2009 Josh Coalson
Copyright (C) 2011-2023 Xiph.Org Foundation

Redistribution and use in source and binary forms, with or without


modification, are permitted provided that the following conditions
are met:

- Redistributions of source code must retain the above copyright


notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


58 / 60

notice, this list of conditions and the following disclaimer in the


documentation and/or other materials provided with the distribution.

- Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS


``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

11.3. WavPack
Copyright (c) 1998 - 2023 David Bryant
All rights reserved.

Redistribution and use in source and binary forms, with or without


modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice,


this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Conifer Software nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

11.4. mpg123
HQPlayer Desktop uses unmodified version of libnpg123 library. mpg123 can be downloaded from
https://mpg123.de. Or alternatively from https://www.signalyst.com/src/mpg123-1.32.3.tar.bz2.
mpg123 is Copyright (c) 1995-2023 by Michael Hipp and others, free software under the terms of the
LGPL v2.1.
mpg123 is licensed under GNU Lesser General Public License version 2.1

There is an attempt to cover the actual list of authors in the AUTHORS file.
Project maintainer since 2006 is Thomas Orgis and many people have contributed
since the Michael Hipp era, but he stays the initial source and it would

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


59 / 60

be impractical to count them all individually, so it's "and others".


Source files contain the phrase "the mpg123 project" to the same effect
in their license boilerplate; especially those that were added after
maintainership changed. The person mainly responsible for the first version
is usually named in the phrase "initially written by ...".

All files in the distribution that don't carry a license note on their own are
licensed under the terms of the LGPL 2.1; exceptions may apply, especially to
files not in the official distribution but in the revision control repository.

11.5. ASIO

ASIO is a trademark and software of Steinberg Media Technologies GmbH.

11.6. Qt
HQPlayer Desktop uses unmodified version of Qt library under commercial license. Qt can be
downloaded from http://www.qt.io/ .
Qt is Copyright © 2024 The Qt Company Ltd.
On some platforms Qt may be licensed under GNU Lesser General Public License version 3 with The
Qt Company GPL Exception 1.0.
Qt is a trademark of The Qt Company Ltd.

11.7. libmicrohttpd
HQPlayer Desktop uses unmodified version of libmicrohttpd library. libmicrohttpd can be downloaded
from https://www.gnu.org/software/libmicrohttpd/. Or alternatively from
https://www.signalyst.com/src/libmicrohttpd-0.9.77.tar.gz.
libmicrohttpd is Copyright (C) 2006-2023 Christian Grothoff (and other contributing authors)
libmicrohttpd is licensed under GNU Lesser General Public License version 2.1 or eCos License.

11.8. bs2b
Copyright (c) 2005 Boris Mikhaylov

Permission is hereby granted, free of charge, to any person obtaining


a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be


included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,


EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.


60 / 60

CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,


TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

11.9. Botan
Botan (http://botan.randombit.net/) is distributed under these terms:

Copyright (C) 1999-2023 The Botan Authors


All rights reserved.

Redistribution and use in source and binary forms, with or without


modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,


this list of conditions, and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright


notice, this list of conditions, and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

11.10. Trademarks
Signalyst is a registered trademark of Jussi Laako.
HQPlayer is a trademark of Jussi Laako.
All other trademarks are property of their respective owners.

Copyright © 2008-2024 Jussi Laako / Signalyst. All rights reserved.

You might also like