I guess the icing would be to perform the upper riaa pole in the analog first stage simply through capacitivly loading it with a good audio grade cap, but I'm not able to perform to calculate the then needed biquad coefficients for it. The overload margin would profit a lot.
Rüdiger
Yes, the hybrid approach I left the details out of my article because I thought the audience would be limited. A Python savvy friend could provide help using the extra code files Jan has on his Linear Audio site. You only need the two lower time constants if you don't use the 50kHz cutter head pole and simply put the other time constants out at infinity. At 96k and above the optimizing tweaks won't give a useful improvement.
Your post brings up another point. If SoX can be compiled on an RPi that would be good cheap way to implement the whole thing. I have, under Windows, used Sox with Unix style filters that I wrote in C via a simple pipeline. Then by simply rewriting the Gnome Wave Cleaner to read from stdin and write to stdout you are done. Something like, Sox some.wav || ourclean || Sox riaa || Sox play or In the beginning Sox can read from the current audio device. So now we're down to a $35 solution. 🙂
Last edited:
SoX runs on the rpi, the moode audio player haa it implemented. Personally i would use gentoo as this is the distro i'm familiar with. What i did not come across is a decent hat compliant audio grade adc board for the raspi.
With the upper pole i meant the 2120 Hz pole. So our 20KHz Signal is 20db down compared to my current solution when entering the ADC.
I just purchased your linear audio article and see if i understand anything.
At the moment, i perform the digital riaa on my everyday linux desktop. Its as simple as invoking SoX with a single line command where I pass the biquad numbers.
Rüdiger
With the upper pole i meant the 2120 Hz pole. So our 20KHz Signal is 20db down compared to my current solution when entering the ADC.
I just purchased your linear audio article and see if i understand anything.
At the moment, i perform the digital riaa on my everyday linux desktop. Its as simple as invoking SoX with a single line command where I pass the biquad numbers.
Rüdiger
Hi Rüdiger, thanks for posting.
What is the gain of this flat pre? And your cart is MM /MI or MC?
In the end 🙂 what is the level of the signal at the input of your ADC?
Well, intuitively this seems a very good solution. The paper that Scott has linked to doesn’t support this but I guess they do not take into account the clicks and pops.
http://www.channld.com/aes123.pdf
If Scott can provide the biquad for the (7950us?) 3180us and 318us only digital filter (for 96kHz), I would like to test it too.
George
For some years my vinyl-listening goes like this:
- diy analog linear first stage (rewired tonearm to balenced, john curl style double symmetric j-fets input stage with quite some gain and some lametta)
What is the gain of this flat pre? And your cart is MM /MI or MC?
In the end 🙂 what is the level of the signal at the input of your ADC?
I guess the icing would be to perform the upper riaa pole in the analog first stage simply through capacitively loading it with a good audio grade cap, but I'm not able to perform to calculate the then needed biquad coefficients for it. The overload margin would profit a lot.
Well, intuitively this seems a very good solution. The paper that Scott has linked to doesn’t support this but I guess they do not take into account the clicks and pops.
http://www.channld.com/aes123.pdf
If Scott can provide the biquad for the (7950us?) 3180us and 318us only digital filter (for 96kHz), I would like to test it too.
George
One trick worth looking at in a dedicated system would be to move that 2.2 KHz pole to the input of the ADC. There is a low pass filter there anyway so move it down from 300 (or 600) KHz (depending) to 2.2KHz. May help everything in the chain. Might still want another filter closer to the input at 100 KHz.
Hi George,
thanks for your interest. I have posted the circuit hehttp://www.diyaudio.com/forums/analogue-source/154210-mpp-206.html#post2429800re
I can't remember but it must be around 40db. The gain depends on the output resistors and the input impedance of the adc as well, i think. It happens to feed the RME properly (it has a led-vu-meter).
I use a transfiguration MC cart around 0.2-03.mV
Rüdiger
thanks for your interest. I have posted the circuit hehttp://www.diyaudio.com/forums/analogue-source/154210-mpp-206.html#post2429800re
I can't remember but it must be around 40db. The gain depends on the output resistors and the input impedance of the adc as well, i think. It happens to feed the RME properly (it has a led-vu-meter).
I use a transfiguration MC cart around 0.2-03.mV
Rüdiger
If Scott can provide the biquad for the (7950us?) 3180us and 318us only digital filter (for 96kHz), I would like to test it too.
George
Can do, need to dig in my archives a little so I don't make any mistakes.
BTW Demians idea probably makes the pop removal easier. I've meant to get an RPi for a long time, I still have my third order spline code which is actually a working "dialog-less" plug-in for CoolEdit/Audition. I say dialog-less because you select a pop by hand and you get some totally random dialog and have to just click OK to fix the pop. The SDK had little or no info on programming dialogs in Windows and I only was interested in making a one at a time pop remover, once it worked I left it.
Being not sure if the RPi can handle the full forensic restoration code without undo latency, it would be easier to just do what I know has very little overhead. It's a straight text book third order spline where you cut the signal at two points and estimate the two slopes to match. The result is a simple third order equation to compute the points in between. You could probably even reduce it to a 32 bit integer Cordic algorithm.
Have read this through a couple of times now and realise I have to go back to school on some signal processing stuff, but the section on distortion correction was fascinating. Need to trawl around and find out if they have done much more on this in the intervening 20 years. I suspect most of the staff at Cedar passed through these labs at some point!
Regarding the PI, you know the PI zero is only £4? You don't need lan or wifi. The shame is that it has loads of DSP grunt, but you can't get at it easily.
Here's the biquad for just the 50.05 Hz pole and 500.5 zero at 96K. Gain is 0db @ 1k
a = [ 1. , 0.00327033, -0.99672967]
b = [ 0.90862745, 0.02928162, -0.87934583]
George if you want to play with the miniDSP I could do the 48k ones. Don't forget to get the signs right the above is normal (SoX) signs. I forgot the different conventions for a vs b, numerator vs denominator. Only one will work for each application. Easiest visual test is in Audacity (using Nyquist prompt and LISP syntax) it's in their manual.
a = [ 1. , 0.00327033, -0.99672967]
b = [ 0.90862745, 0.02928162, -0.87934583]
George if you want to play with the miniDSP I could do the 48k ones. Don't forget to get the signs right the above is normal (SoX) signs. I forgot the different conventions for a vs b, numerator vs denominator. Only one will work for each application. Easiest visual test is in Audacity (using Nyquist prompt and LISP syntax) it's in their manual.
Last edited:
Onvinyl,
do you know which ADC and DAC ADI-2 Is using
RME released ADI-2 Pro audio Interface - looks very audiophile
RME: ADI-2 Pro
do you know which ADC and DAC ADI-2 Is using
RME released ADI-2 Pro audio Interface - looks very audiophile
RME: ADI-2 Pro
I do not see it in the datasheet. The ADI 2Pro seems to be a diiferen an more modern device than my ADI 2. My remark regarding being not transparent the way i use it could be credited to a lot factors independently from the adi. i use it in conjecture with an even older rme pci-card which has 96k max. via the digital aes/adat plugs. I would guess the pro would work very well, i just hope their usb connection is fully uac2 compliant so one can use it in linux. It is epxensive and probaobly overkill, though.
Edit: usb class 2 compliance is garanteed in the datasheet
Edit: usb class 2 compliance is garanteed in the datasheet
Here's the biquad for just the 50.05 Hz pole and 500.5 zero at 96K. Gain is 0db @ 1k
a = [ 1. , 0.00327033, -0.99672967]
b = [ 0.90862745, 0.02928162, -0.87934583]
Thanks, I will try it soon!
Here's the biquad for just the 50.05 Hz pole and 500.5 zero at 96K. Gain is 0db @ 1k
Great, Scott thanks!
George if you want to play with the miniDSP I could do the 48k ones.
Yes please!
I think in the end I’ll settle for a dedicated 2x4MiniDSP (48k) both for experimenting and as the final setup.
I’ll do the initial checks in Audacity as you suggest.
I've meant to get an RPi for a long time
Inform us if you go this route.
BTW Demians idea probably makes the pop removal easier.
This is to be checked.
As you remember the Digital Restoration pdf mentions that the music is RIAA pre equalized while the clicks-pops aren’t.
Therefore the playback reverse RIAA will distort the footprint of the clicks and pops.
Then, this 2122Hz hardware LP is the one that has the strongest effect on the scratches-pops from the rest steps of the RIAA equalisation.
We’ll see.
George
This is to be checked.
As you remember the Digital Restoration pdf mentions that the music is RIAA pre equalized while the clicks-pops aren’t.
Therefore the playback reverse RIAA will distort the footprint of the clicks and pops.
Then, this 2122Hz hardware LP is the one that has the strongest effect on the scratches-pops from the rest steps of the RIAA equalisation.
We’ll see.
George
Yes I forgot the low frequency time constants probably contribute more of that. I just realized that all my tick and pop removal code is on an old desktop with Visual C++. When Microsoft went to the .net framework even simple stuff became too much like work not much like a hobby.
This desktop already stood un-booted for years until even the coin cell died and there was no time reference. It took 150 updates to get its mind back.
Yes please!
I think in the end I’ll settle for a dedicated 2x4MiniDSP (48k) both for experimenting and as the final setup.
a = [ 1. , 0.00653001, -0.99346999]
b = [ 0.92199156, 0.05846937, -0.86352219]
I now understand how it must feel when people here are discussing things that are way over your head....😱
Jan
Jan
Obligeda =
b =
that are way over your head....😱
Jan
Everything is over my head right now (standing on my head) but things may change in a while
George
Attachments
I now understand how it must feel when people here are discussing things that are way over your head....😱
Jan
If you missed it, they want to try doing the high pole of the RIAA in analog to increase overload margin so they needed the IIR filters for only the two lower time constants
If you missed it, they want to try doing the high pole of the RIAA in analog to increase overload margin so they needed the IIR filters for only the two lower time constants
No I got that, it's the math implementation that's abacadabra for me. But no worries, I'll get over it.
Jan
a = [ 1. , 0.00653001, -0.99346999]
b = [ 0.92199156, 0.05846937, -0.86352219]
Scott
Here is what comes out when plugging these coefficients into the spreadsheet simulator (yes a1, a2 need to be sign inverted)
https://www.minidsp.com/images/fbfiles/files/All_digital_coefs_v1-20101026.zip
Tomorrow I will plug them into the real 2x4 miniDSP and take a frequency sweep measurement. I'll report back.
George
Attachments
- Status
- Not open for further replies.
- Home
- Source & Line
- Analogue Source
- Digitizing vinyl