Jump to content
IGNORED

HQ Player


Recommended Posts

Hey Miska

 

Question for you. I have an audio interface (ADC / DAC) that I would like to run my turntable into and also use as my output device. ASIO input and output. RIAA correction is applied via convolution.

 

I'm doing this now with jriver. Possible to do with HQPlayer?

 

Thanks,

Jim

Link to comment
  • 6 months later...
On 7/6/2017 at 4:37 PM, jdubs said:

Hey Guys

 

What horsepower is needed to upsample 16/44.1 to DSD (128 or 256)?  Can a new Apollo Lake NUC do it?

 

Thanks,

Jim

 

Like maybe a minimum PassMark score or something like that?  

 

-Jim

Link to comment
  • 2 months later...

Hey guys, what does the purchase of a license get you in terms of updates?  I'm probably just not seeing it...so a link is totally cool...but if I buy it now...which is on version 3.17...how many more updates does my $ get me?  

 

How many more 3.x versions are expected?

 

Thanks

Jim

Link to comment
  • 1 month later...
  • 3 years later...
18 hours ago, Miska said:

 

So you'd want to just provide raw biquad coefficients? Tricky part is that those are sample rate specific. Which is of course not so much of an issue for RIAA since you can known the ADC sample rate in advance.

 

But I think the existing IIR EQ components could be useful for the same purpose without being sample rate specific.

 

 

Yes, I  want to use raw biquad coefficients.  You're correct re: them being sample rate specific but, yes, I know the ADC sample rate in advance.

 

I'm digitizing at 192khz which will remain for the forseeable future so no real issues for me on needing to switch biquads.  

 

The biquads provide a REALLY accurate way to do the riaa correction (significantly more accurate than what can be achieved with the existing IIR EQ components).  So, just really about going for the best result possible!  :)

 

-Jim

Link to comment
On 7/18/2021 at 2:39 PM, Miska said:

 

I'm curious why do you think so? Because the IIR EQ components calculate biquad coefficients for the rate in question and preserve full accuracy of calculated coefficients. There is always some potential for precision loss (not much though) when passing decimal numbers for biquads.

 

The deviation from the true RIAA curve of the IRR EQ methodology is significantly (orders of magnitude) higher than using biquads.  There are some threads on diyaudio that speak to it and this fellow Scott Wurcer published an article in Linear Audio which really details it.  Conceptually this whole thing goes back to comp.dsp days and Robert Orban's posts on the subject. 

 

A more recent discussion is here:

 

https://www.diyaudio.com/forums/pc-based/353387-phono-preamp-riaa-eq-using-iir-digital-filters.html

 

The dialog transgresses kind of quickly but a conclusion that can be drawn is that not using biquads can get you "good" results but its not the most accurate approach.

 

I think we should be striving for the best!!

 

-Jim

Link to comment

Miska, I've set up my system such that the output is through a Gustard X16 via ASIO and the input is the analog line inputs of a Motu M4.  I see the input sample rate go from 192khz to 48khz and am not sure why.  This is an excerpt from the log:

 

  2021/07/20 18:45:36 Initialization complete, starting audio engine
  2021/07/20 18:45:36 Teams: 1
  2021/07/20 18:45:36 Places: 1
  2021/07/20 18:45:36 Parallel threads: 12
  2021/07/20 18:45:36 Nested parallelism: 4
  2021/07/20 18:45:36 Parallel pipelines: 4
  2021/07/20 18:45:37 ASIO output channels: 0 in / 2 out
  2021/07/20 18:45:37 ASIO output channel map:
  2021/07/20 18:45:37     0: Analogue 1
  2021/07/20 18:45:37     1: Analogue 2
  2021/07/20 18:45:37 ASIO output buffer sizes: 4096/262144/1048576 granularity: -1
  2021/07/20 18:45:37 ASIO output using ASIO default buffer size
  2021/07/20 18:45:37 ASIO output using ASIO buffer size: 262144
  2021/07/20 18:45:37 ASIO output latencies: 286720/331776
  2021/07/20 18:45:37 ASIO output not using ASIO output ready notifications
  2021/07/20 18:45:37 ASIO output engine started at 24576 kHz, 2 channels, 262144 sample buffer (2 channels)
+ 2021/07/20 18:45:37 ASIO output engine running at: 24576000
+ 2021/07/20 18:45:37 WASAPI input engine running...
  2021/07/20 18:45:37 WASAPI input period time set
  2021/07/20 18:45:37 WASAPI input open audio endpoint GUID: {0.0.1.00000000}.{5945ba1a-e30b-4a48-992a-e93d090574ad}
  2021/07/20 18:45:37 WASAPI input currently using: 'In 3-4 (MOTU M Series)'
  2021/07/20 18:45:37 WASAPI input type: Default
  2021/07/20 18:45:37 WASAPI input engine initialized
  2021/07/20 18:45:37 WASAPI input device period (default/min, ms): 10/3
  2021/07/20 18:45:37 WASAPI input using device default WASAPI period size
  2021/07/20 18:45:37 WASAPI input trying to use 10 ms for WASAPI period size.
  2021/07/20 18:45:37 WASAPI input initialize audio device using 96000/24 (32), 2 channels
# 2021/07/20 18:45:37 WASAPI input failed, trying another format (if available)
? 2021/07/20 18:45:37 WASAPI input no formats available - trying shared mode
  2021/07/20 18:45:37 WASAPI input mix format: 48000/32/2
  2021/07/20 18:45:37 WASAPI input sampling rate: 48000 (48000)
  2021/07/20 18:45:37 WASAPI input buffer size 1056
  2021/07/20 18:45:37 WASAPI input engine started at 96 kHz / 24 bits / 2 channels, 960 frames buffer (2/2 channels)
  2021/07/20 18:45:37 WASAPI input engine starting at: 48000
  2021/07/20 18:45:38 Rate or blocksize change triggered
  2021/07/20 18:45:38 Rate: 48000, block size: 5120, frame size: 640
  2021/07/20 18:45:38 Block size: 5120 (sample: 4)
  2021/07/20 18:45:38 Oversampling: short min phase poly (light)
  2021/07/20 18:45:38 Modulator: adaptive fifth order 1-bit
  2021/07/20 18:45:38 Integrator: IIR
  2021/07/20 18:45:38 Playback engine ratio: 512
  2021/07/20 18:45:38 Set volume: -35 +
  2021/07/20 18:45:38 Convolution engine: overlap-add
  2021/07/20 18:45:38 Convolution gain compensation: 0

 

Any thoughts?

 

Thanks!

Jim 

Link to comment

Miska, I'm still trying to get my input / output setup working reliably in HQPlayer.  I've switched the input side (Motu M4) to use ASIO and the output side (Gustard X16) to use Wasapi.

 

It plays for a few seconds and then stops.  This is the last part of the log:

 

  2021/07/26 19:43:39 Set convolution: overlap-add
  2021/07/26 19:43:39 Set volume: -5 +
& 2021/07/26 19:43:39 Play
+ 2021/07/26 19:43:39 Playback engine running
  2021/07/26 19:43:39 Rate or blocksize change triggered
  2021/07/26 19:43:39 Rate: 192000, block size: 20480, frame size: 2560
  2021/07/26 19:43:39 Block size: 20480 (sample: 4)
  2021/07/26 19:43:39 Oversampling: short min phase poly (light)
  2021/07/26 19:43:39 Modulator: adaptive fifth order 1-bit
  2021/07/26 19:43:39 Integrator: IIR
  2021/07/26 19:43:39 Playback engine ratio: 64
  2021/07/26 19:43:39 Set volume: -5 +
  2021/07/26 19:43:39 Convolution engine: overlap-add
  2021/07/26 19:43:39 Convolution gain compensation: 0
  2021/07/26 19:43:39 Initializing processing for matrix pipeline 0
  2021/07/26 19:43:39 Initializing processing for matrix pipeline 1
  2021/07/26 19:43:39 Initializing processing for matrix pipeline 2
  2021/07/26 19:43:39 Initializing processing for matrix pipeline 3
  2021/07/26 19:43:39 Initializing processing for matrix pipeline 4
  2021/07/26 19:43:39 Initializing processing for matrix pipeline 5
  2021/07/26 19:43:39 Initializing processing for matrix pipeline 6
  2021/07/26 19:43:39 Initializing processing for matrix pipeline 7
  2021/07/26 19:43:39 Longest IR: 131067
# 2021/07/26 19:43:39 No impulse response for channel 3
# 2021/07/26 19:43:39 No impulse response for channel 2
# 2021/07/26 19:43:39 No impulse response for channel 4
# 2021/07/26 19:43:39 No impulse response for channel 5
# 2021/07/26 19:43:39 No impulse response for channel 6
# 2021/07/26 19:43:39 No impulse response for channel 8
# 2021/07/26 19:43:39 No impulse response for channel 7
# 2021/07/26 19:43:39 No impulse response for channel 11
# 2021/07/26 19:43:39 No impulse response for channel 10
# 2021/07/26 19:43:39 No impulse response for channel 9
# 2021/07/26 19:43:39 No impulse response for channel 12
# 2021/07/26 19:43:39 No impulse response for channel 13
# 2021/07/26 19:43:39 No impulse response for channel 14
# 2021/07/26 19:43:39 No impulse response for channel 15
# 2021/07/26 19:43:39 No impulse response for channel 17
# 2021/07/26 19:43:39 No impulse response for channel 16
# 2021/07/26 19:43:39 No impulse response for channel 19
# 2021/07/26 19:43:39 No impulse response for channel 18
# 2021/07/26 19:43:39 No impulse response for channel 20
# 2021/07/26 19:43:39 No impulse response for channel 21
# 2021/07/26 19:43:39 No impulse response for channel 22
# 2021/07/26 19:43:39 No impulse response for channel 23
# 2021/07/26 19:43:39 No impulse response for channel 24
# 2021/07/26 19:43:39 No impulse response for channel 26
# 2021/07/26 19:43:39 No impulse response for channel 25
# 2021/07/26 19:43:39 No impulse response for channel 27
# 2021/07/26 19:43:39 No impulse response for channel 28
# 2021/07/26 19:43:39 No impulse response for channel 29
# 2021/07/26 19:43:39 No impulse response for channel 31
# 2021/07/26 19:43:39 No impulse response for channel 30
  2021/07/26 19:43:39 Impulse response read from file C:/Users/Jim/Desktop/RIAA Correction - 384Khz 64Bit.wav for channel 0 = 19.9854 dB
  2021/07/26 19:43:39 Impulse response read from file C:/Users/Jim/Desktop/RIAA Correction - 384Khz 64Bit.wav for channel 1 = 19.9854 dB
  2021/07/26 19:43:39 Impulse response resampled with ratio: 0.5
  2021/07/26 19:43:39 Impulse response resampled with ratio: 0.5
  2021/07/26 19:43:39 Convolution filter of length 66556 initialized for channel 1 = 19.9854 dB (-0.0044527 - 0.0704944)
  2021/07/26 19:43:39 Convolution filter of length 66556 initialized for channel 0 = 19.9854 dB (-0.0044527 - 0.0704944)
  2021/07/26 19:43:39 Convolution engine ready and enabled
  2021/07/26 19:43:39 Offload: resampler=disabled convolution=disabled
  2021/07/26 19:43:39 Initialization complete, starting audio engine
  2021/07/26 19:43:39 Teams: 1
  2021/07/26 19:43:39 Places: 1
  2021/07/26 19:43:39 Parallel threads: 12
  2021/07/26 19:43:39 Nested parallelism: 4
  2021/07/26 19:43:39 Parallel pipelines: 4
  2021/07/26 19:43:39 Offload: resampler=disabled convolution=disabled
+ 2021/07/26 19:43:39 WASAPI output engine running...
  2021/07/26 19:43:39 WASAPI output period time set
  2021/07/26 19:43:39 WASAPI output open audio endpoint GUID: {0.0.0.00000000}.{4d6d3e2d-4089-4bc8-a30b-ce0d300b08dc}
  2021/07/26 19:43:39 WASAPI output currently using: 'Speakers (Gustard USB Audio 2.0)'
  2021/07/26 19:43:39 WASAPI output type: Speakers
  2021/07/26 19:43:39 WASAPI output engine initialized
  2021/07/26 19:43:39 WASAPI output device period (default/min, ms): 10/3
  2021/07/26 19:43:39 WASAPI output using device default WASAPI period size
  2021/07/26 19:43:39 WASAPI output trying to use 10 ms for WASAPI period size.
  2021/07/26 19:43:39 WASAPI output initialize audio device using 768000/32 (32), 2 channels
  2021/07/26 19:43:39 WASAPI output buffer size 7680
  2021/07/26 19:43:39 WASAPI output engine started at 12288 kHz / 1 bits / 2 channels, 122880 frames buffer (2/2 channels)
  2021/07/26 19:43:39 WASAPI output engine starting at: 12288000
  2021/07/26 19:43:40 ASIO input channels: 8 in / 4 out
  2021/07/26 19:43:40 ASIO input channel map:
  2021/07/26 19:43:40     0: In 1
  2021/07/26 19:43:40     1: In 2
  2021/07/26 19:43:40     2: In 3
  2021/07/26 19:43:40     3: In 4
  2021/07/26 19:43:40     4: Loopback 1
  2021/07/26 19:43:40     5: Loopback 2
  2021/07/26 19:43:40     6: Loopback Mix 1
  2021/07/26 19:43:40     7: Loopback Mix 2
  2021/07/26 19:43:40 ASIO input buffer sizes: 1024/1024/1024 granularity: 0
  2021/07/26 19:43:40 ASIO input using ASIO default buffer size
  2021/07/26 19:43:40 ASIO input using ASIO buffer size: 1024
  2021/07/26 19:43:40 ASIO input latencies: 1075/1847
  2021/07/26 19:43:40 ASIO input not using ASIO output ready notifications
  2021/07/26 19:43:40 ASIO input engine started at 192 kHz, 2 channels, 1024 sample buffer (2 channels)
+ 2021/07/26 19:43:40 ASIO input engine running at: 192000
# 2021/07/26 19:45:04 WASAPI output clWinEngine::Execute: IAudioRenderClient::GetBuffer(): Reached the end of the file.

! 2021/07/26 19:45:05 WASAPI output IAudioClient::Stop()
  2021/07/26 19:45:05 WASAPI output engine uninitialized
- 2021/07/26 19:45:05 WASAPI output engine stopped
! 2021/07/26 19:45:14 clHQPlayerEngine::Execute(): push to FIFO failed
  2021/07/26 19:45:14 Stop request (reset)
& 2021/07/26 19:45:14 Stop...
- 2021/07/26 19:45:14 Playback engine stopped
& 2021/07/26 19:45:14 ...stopped
  2021/07/26 19:45:14 Set volume: -5 +
- 2021/07/26 19:45:15 ASIO input engine stopped
  2021/07/26 19:45:15 Audio transport: rate=192000 channels=2 format=auto buffer=0 (normal)
  2021/07/26 19:45:15 ASIO input set sampling rate: 192000 (192000)
  2021/07/26 19:45:15 ASIO input channels: 8 in / 4 out
  2021/07/26 19:45:15 ASIO input channel map:
  2021/07/26 19:45:15     0: In 1
  2021/07/26 19:45:15 ASIO input SampleFormat 18, 32-bit
  2021/07/26 19:45:15     1: In 2
  2021/07/26 19:45:15     2: In 3
  2021/07/26 19:45:15     3: In 4
  2021/07/26 19:45:15     4: Loopback 1
  2021/07/26 19:45:15     5: Loopback 2
  2021/07/26 19:45:15     6: Loopback Mix 1
  2021/07/26 19:45:15     7: Loopback Mix 2

 

Any thoughts?  Do I need to play with the buffer settings within HQplayer and / or the hardware directly?  

 

Thanks!

Jim

Link to comment
  • 4 weeks later...

Miska, what is the format for entering IIR biquads?  I'm working with this:

 

Coefficients for H(z):

 

num[0] = 6.758358e-003, [1] = -6.648568e-003
-------------------------------------------------------------------
den[0] = 1.000000e+000, [1] = -1.931275e+000, [2] = 9.313852e-001

 

 

Audacity Nyquist biquad equations (LISP format):

 

(biquad s b0 b1 b2 a0 a1 a2)
(biquad s 6.758358e-003 -6.648568e-003 0.000000e+000 1.0 1.931275e+000 -9.313852e-001)

 

(biquad-m s b0 b1 b2 a0 a1 a2)
(biquad-m s 6.758358e-003 -6.648568e-003 0.000000e+000 1.000000e+000 -1.931275e+000 9.313852e-001)

 

 

 

Thanks!

Jim

Link to comment
  • 3 weeks later...
5 hours ago, scintilla said:

Does anyone have coefficients for RIAA correction biquads for rates greater than 192kHz sampling rates?  

 

I finally gave up on the TASCAM UH-7000 for phono preamp and A/D and bought an ADI-2 pro fsr which can sample up to 768k or DSD, both of which I think can be piped into HQP for RIAA correction and then convolution of RC filters. I still haven't quite figured out how to implement parametric eq parameters in the HQP interface though.

 

I would recommend creating a convolution filter using rephase.  I was heading down the biquad route and Miska showed me the way to even better accuracy :)

 

-Jim

Link to comment
  • 1 month later...
  • 2 weeks later...
54 minutes ago, Miska said:

 

You put "riaa" as one item on the matrix pipeline process for the channels where you want that. You can use Plot button to see the response too.

 

Awesome - thank you!  Any commentary on how this plug-in was constructed, specifically as it relates to accuracy?

 

-Jim

Link to comment

I do vinyl playback with HQPlayer and it works GREAT!!   I run balanced out from my turntable into the mic inputs of my Focusrite Clarett 2Pre USB.  Conversion is at 24bit / 192khz.  Then RIAA correction and upsampling / conversion to DSD256 prior to output from my Gustard X16.

 

Btw, Miska, the new RIAA plugin does not start at +20db and end in -20db.  It starts at 0db and ends at something higher than -40db.

 

Any specific rationale behind that?  The overall output is very low because of this (and the fact that there is not a 40db differential between 20hz and 20khz is curious).

 

-Jim

Link to comment

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...