Yes. My workflow is to manually de-click prior to applying RIAA. I'd like to find a good automated tool for the Mac though. Even on new vinyl, manual repair is very tedious.
Even on new vinyl, manual repair is very tedious.
You said it. As a gift for some friends I hand repaired both sides of a rare blues record. It took three or four all evening sessions, after 10yr. I can finally listen to it again. 😉
I've been using g a program called Magix Audio Cleaner for several years to convert my vinyl to digital. It is a great program and does an amazing job cleaning up surface noise, pops, crackle, hum, ect from records. Sometimes it's worth it to buy software rather than suffer through using freeware.
PJN
PJN
This is the performance I'm able to get through my current chain which is a S681 > Flat balanced I/O Preamp > 50 feet cable > RIAA EQ/Monitor Switcher > PCM4222 EVM.
The 5 cm/sec/rms/lateral/1kHz/5mV reference level (3.54@45) is approximately -24 dBFS.
Left-only modulation measures -23.35 dBFS; right-only, not shown, is -23.31 averaged.
Noise measurement with Line-level analog RIAA EQ applied (1 kHz unity gain) to the flat preamp output. No weighting. Cartridge source on tonearm rest.
A-weighted noise measurement with Line-level analog RIAA EQ applied (1 kHz unity gain) to the flat preamp output.
Looks like I'm getting an A-weighted S/N ratio of 76.8 dB relative to 5 mV RMS/1kHz with a real cartridge as a source. The turntable is 5 feet from a dimmer and 50 wire feet from the converter.
EDIT: Forgot to mention that I changed input op amps back to the NJM2068 "DD" which appears to be the quietest I've tried. My previous measurements were either with OP270s or OPA2134s.
The 5 cm/sec/rms/lateral/1kHz/5mV reference level (3.54@45) is approximately -24 dBFS.

Left-only modulation measures -23.35 dBFS; right-only, not shown, is -23.31 averaged.
Noise measurement with Line-level analog RIAA EQ applied (1 kHz unity gain) to the flat preamp output. No weighting. Cartridge source on tonearm rest.

A-weighted noise measurement with Line-level analog RIAA EQ applied (1 kHz unity gain) to the flat preamp output.

Looks like I'm getting an A-weighted S/N ratio of 76.8 dB relative to 5 mV RMS/1kHz with a real cartridge as a source. The turntable is 5 feet from a dimmer and 50 wire feet from the converter.
EDIT: Forgot to mention that I changed input op amps back to the NJM2068 "DD" which appears to be the quietest I've tried. My previous measurements were either with OP270s or OPA2134s.
Last edited:
You said it. As a gift for some friends I hand repaired both sides of a rare blues record. It took three or four all evening sessions, after 10yr. I can finally listen to it again. 😉
What, for all intents and purposes, would be considered a 'pristine' LP takes me on average nearly three hours to process.
What, for all intents and purposes, would be considered a 'pristine' LP takes me on average nearly three hours to process.
I would say I spent at least 30hr. and I did pay $100 for a less played copy. The only thing I did was listen, stop at audible pop, fix and move on.
I've been using g a program called Magix Audio Cleaner for several years to convert my vinyl to digital. It is a great program and does an amazing job cleaning up surface noise, pops, crackle, hum, ect from records. Sometimes it's worth it to buy software rather than suffer through using freeware.
PJN
At $35 pretty cheap, worth a free trial but you have to understand people's standards do vary i.e. things like linear phase RIAA would be show stoppers for some.
EDIT - Just noticed it doesn't say if pre and post RIAA processing is available.
Last edited:
I used (in Cool Edit) a DirectX de-clicker de-noiser plugin called Virtos. It doesn't seem to be supported any more and I was pleased to find it show up in Acoustica as an installed plugin. Virtos seems to work well with equalized files but was easier to setup its thresholds using flat material.
BTW Scott I had never zoomed that deep into the weeds in a 24B file using Cool Edit's "sample" vertical scale. I do see values below one 16B LSB in my non-ASIO 24B recordings.
BTW Scott I had never zoomed that deep into the weeds in a 24B file using Cool Edit's "sample" vertical scale. I do see values below one 16B LSB in my non-ASIO 24B recordings.
This is the performance I'm able to get through my current chain which is a S681 > Flat balanced I/O Preamp > 50 feet cable > RIAA EQ/Monitor Switcher > PCM4222 EVM.
...
I like to use steep enough (min. 24dB/oct) high pass filter as a rumble/subsonic filter. Everything below 20Hz can be removed.
Just be sure the HP VST plug-in works correctly at higher samplerates. Here's one plug-in I have used - https://www.kvraudio.com/product/rubberfilter_by_christian_budde
I like to use steep enough (min. 24dB/oct) high pass filter as a rumble/subsonic filter. Everything below 20Hz can be removed.
Just be sure the HP VST plug-in works correctly at higher sample rates. Here's one plug-in I have used - https://www.kvraudio.com/product/rub...hristian_budde
Thank you for that suggestion. That's one missing tool in the toolbox.
I only have analog single-pole rolloff in the flat path and post-RIAA DC removal. You can see the LF warp in the files.
ClickFix (free version) works pretty well BTW.
BTW Scott I had never zoomed that deep into the weeds in a 24B file using Cool Edit's "sample" vertical scale. I do see values below one 16B LSB in my non-ASIO 24B recordings.
Not 100% thing, just a warning, many software/hardware combos can do different things under Windows and don't warn you. Under XP I was happy for years with an Edirol UA-5 which died and then an MAudio USB DUO both of which worked flawlessly at 48/24 full duplex over USB 1.0. I could open two instances of CoolEdit and get perfectly synced simultaneous play/record completely glitch free. That was my lab instrument, IMHO in some ways things have gone backwards.
At $35 pretty cheap, worth a free trial but you have to understand people's standards do vary i.e. things like linear phase RIAA would be show stoppers for some.
EDIT - Just noticed it doesn't say if pre and post RIAA processing is available.
I'm not sure if it does pre RIAA, I'll take a look at the book. All I know is that I feed my PC the output from my phono preamp through the soundcard and it records the waveform is gets. It can record in 24 bit and 16 bit. It cleans the waveform easily and quickly with a variety of tools and can save the corrected/cleaned file as 24 bit, 16 bit, flac, or a variety of other compression codecs. It can also be used to rip CD's to the hard drive of make mp3, ect. I've compared the resultant corrected files to the originals and they always sound significantly better than the originals with pops, clicks and surface noise. I've use a Salas folded phono pre a Pass M2 amp and the only differences between a pristine record with no noise to the digital copy is maybe a slightly perceptible loss of detail probably due to my dac.
It looks like Magix Audio Cleaner doesn't know anything about RIAA. Import or record what you want into it and apply it's processes as desired. Up to the user to apply RIAA before or after using the program.
I'm not sure if it does pre RIAA, I'll take a look at the book.
The free demo would not run due to not finding the OpenGL library, maybe I'll try again if they can fix that.
There's also another way to do the digital RIAA in a Windows based setup ... EqualizerAPO with RIAA filter enabled either in recording or playback. I have plenty of flat RAW recordings and therefore use it in playback (no need for plug-ins and is avalable for any audio player other but those using ASIO or KS level drivers)).
https://sourceforge.net/projects/equalizerapo/files/1.1.2/
https://sourceforge.net/p/equalizerapo/wiki/Documentation/
Example for playback (this calculates RIAA filter in realtime operation, by using coefficient input it gets much lighter for CPU).
https://sourceforge.net/projects/equalizerapo/files/1.1.2/
https://sourceforge.net/p/equalizerapo/wiki/Documentation/
Example for playback (this calculates RIAA filter in realtime operation, by using coefficient input it gets much lighter for CPU).
Code:
# This preset creates phono playback equalization for active sampling frequency.
# Uses light optimized MZT transformation.
# Brought to you by [email]jiiteepee@yahoo.se[/email]
# constants and variables
# If you need filter for non-RIAA phono playback equalization just
# change the frequencies (fc1 - fc3) to match desired eq.
# Example: For NARTB fc1 = 60.0, fc2 = 500.0 and fc3 = 1590.0
Do: `sr = sampleRate`
Do: `fc1 = 50.05`
Do: `fc2 = 500.5`
Do: `fc3 = 2122.0`
# calculate poles/zeros
Do: `p1 = exp(-1.0/(sr * (1.0/(pi*2*fc1))))`
Do: `p2 = exp(-1.0/(sr * (1.0/(pi*2*fc3))))`
Do: `z1 = exp(-1.0/(sr * (1.0/(pi*2*fc2))))`
# optimization block =============================
# Optimization is done through z2 and by manually adjusting p2 and
# is most accurate for RIAA eq
If: fc3 == 0
Do: `p2 = 0.0`
Do: `z2 = 0.0`
Else:
If: sr == 44100
Do: `p2 = p2-0.012`
Do: `z2 = -exp(2 * pi * 0.25915927734375)`
ElseIf: sr == 48000
Do: `p2 = p2-0.0045`
Do: `z2 = -exp(2 * pi * 0.27948193359375)`
ElseIf: sr == 88200
Do: `p2 = p2-0.0015`
Do: `z2 = -exp(2 * pi * 0.34709384765625)`
ElseIf: sr == 96000
Do: `p2 = p2-0.0012`
Do: `z2 = -exp(2 * pi * 0.34943876953125)`
ElseIf: sr == 176400
Do: `p2 = p2-0.0003`
Do: `z2 = -exp(2 * pi * 0.35999091796875)`
ElseIf: sr == 192000
Do: `p2 = p2-0.0002`
Do: `z2 = -exp(2 * pi * 0.3605771484375)`
ElseIf: sr == 352800
# not tested
Do: `p2 = p2-0.000025`
Do: `z2 = -exp(2 * pi * 0.3637037109375)`
ElseIf: sr == 384000
# not tested
Do: `p2 = p2-0.000016`
Do: `z2 = -exp(2 * pi * 0.36409453125)`
Else:
# simple optimization which can be improved by finding
# suitable value for Fc
Do: `Fc = 18000`
Do: `z2 = -exp(2.0 * pi * (Fc/sr))`
EndIf:
EndIf:
# ================================================
# calculate final coefficients
Do: `a0 = 1`
Do: `a1 = -(p1 + p2)`
Do: `a2 = p1 * p2`
Do: `b0 = 1`
Do: `b1 = -(z1 + z2)`
Do: `b2 = z1 * z2`
# normalize to 0dB @ 1kHz
Do: `w = 2.0*pi*(1000/sr)`
Do: `num = b0*b0+b1*b1+b2*b2+2.0*(b0*b1+b1*b2)*cos(w)+2.0*b0*b2*cos(2.0*w)`
Do: `den = 1.0+a1*a1+a2*a2+2.0*(a1+a1*a2)*cos(w)+2.0*a2*cos(2.0*w)`
Do: `G = sqrt(num/den)`
Do: `b0 = b0/G`
Do: `b1 = b1/G`
Do: `b2 = b2/G`
Filter: ON IIR Order 2 Coefficients `b0` `b1` `b2` `a0` `a1` `a2`
There's also another way to do the digital RIAA in a Windows based setup ...
I don't understand jiiteepee, I thought it was clear Bob Orban's solution is the global minimum. That is a mathematical concept meaning there is no better solution, you just compute them and put them in a table no CPU load at all. In any case use two bi-quads and the results at 44.1k and 48k are better than .001dB.
44.1 kHz:
SUPPLY # POLES IN Z-PLANE (<=10):4
Zero # Real Imag.
1 -0.6929308 0.000000
2 -0.3386390 0.000000
3 -0.5961402E-01 0.000000
4 0.9311520 0.000000
Pole # Real Imag.
1 -0.6658348 0.000000
2 -0.2488928 0.000000
3 0.7389606 0.000000
4 0.9928295 0.000000
MAXIMUM ERROR FROM 0.00 Hz TO 20000.00 Hz IS 0.0005780dB
MAXIMUM PHASE ERROR FROM 0.00 Hz TO 20000.00 Hz IS ~+/- 21 degrees
You need to know how to use this information (and correct for his 50.5 Hz mistake, trivial BTW), he is a way smart guy and assumes a lot of knowledge of his audience.
Last edited:
I don't understand jiiteepee, I thought it was clear Bob Orban's solution is the global minimum. That is a mathematical concept meaning there is no better solution, you just compute them and put them in a table no CPU load at all. In any case use two bi-quads and the results at 44.1k and 48k are better than .001dB.
Nothing prevents using them with EqualizerAPO ... also, you can even use those Orban's higher order filters as well ... -> abandon everything else from that script shown above and use
Filter: ON IIR Order 4 Coefficients `b0` `b1` `b2` `b3` `b4` `a0` `a1` `a2` `a3` `a4` where a's and b's are the z-plane coefficients from orbans calculations.
Also as my EqualizerAPO script can be used for to produce non-RIAA EQ as well ...
Last edited:
We certainly have some options for click and noise supression. We should have a shoot outt sometime...
I think I will still be trying clickrepair as my first option. It's relatively cheap, works using statistical methods so should be good and comes with some nice features, like being able to process the file backwards to reduce false positives. But you guys are going to cost me money over time, but in a good way 🙂
I think I will still be trying clickrepair as my first option. It's relatively cheap, works using statistical methods so should be good and comes with some nice features, like being able to process the file backwards to reduce false positives. But you guys are going to cost me money over time, but in a good way 🙂
I don't understand jiiteepee, I thought it was clear Bob Orban's solution is the global minimum. That is a mathematical concept meaning there is no better solution, you just compute them and put them in a table no CPU load at all. In any case use two bi-quads and the results at 44.1k and 48k are better than .001dB.
You need to know how to use this information (and correct for his 50.5 Hz mistake, trivial BTW), he is a way smart guy and assumes a lot of knowledge of his audience.
IIRC, biquad coefficients for 44.1kHz RIAA EQ filter my EqualizerAPO script spits out has magnitude error of around +-0.3dB ... just try ABX the filter against Orban's or your's coefficients (i.e. do you really hear the 0.05dB-0.07dB difference between biquad implementations there?).
One nice matter with my script for EqualizerAPO is that it calculates coefficients for 'any' samperate.
Yes, that 0.45Hz error doesn't produce much difference in filter output ... I actually did measure it once but can't find the results anymore.
Attached comparison between Orban's and my MZT based RIAA filter against analog model (notice that error in my filter is quite small at below 10kHz area).
Attachments
- Status
- Not open for further replies.
- Home
- Source & Line
- Analogue Source
- Digitizing vinyl