Can you say more, fine sir?
'Cause I was just about to 'upgrade' from my miniDSP (ADAU1701) .
Thanks and cheers,
Jeff
I think Gary Galo was referring (like the basic example from miniDSP) to the "phase-less" FIR filter. When I tested it with a 10th octave multitone signal with RIAA preemphasis the one in Audacity (FIR) was very much off.
The basic miniDSP is limited in either case to just the IIR at 48K, I would recommend finding the 48K filter with more poles and zeros and doing a two biquad in series solution which it will handle. I posted those yesterday, they were originally from Bob Orban. It is surprising how good only 8 or so multiply accumulates per sample can get. I have only tested these filters at full 64bit double precision so I don't know how close the 56? bit miniDSP (FP?) math is to this. The numerical noise at 64bit is around -300dB.
The numerical resolution issue has two sides, the Channel D guys are trying to show that you don't lose the whole 40dB that the RIAA pre-emphasis would indicate. I personally think that the SNR is set at the LP surface. Think about it an analog pre-amp can not improve the SNR at the medium. MHO is that the amount that you need to turn down the un-deemphsized signal at the A/D input is all you lose in practice. The white paper considered the quantization noise of an ideal unditered A/D and showed I think -104dB net SNR at 24bits at 20Hz. I don't think I have any LP's that good.
The other numerical resolution issue is related to old integer DSP's where numbers could overflow and all the answers would have to be carefully shifted to maintain resolution, as well as the problem of having filter coefficients that are orders of magnitude apart. I don't think this is a problem anymore.
If you can find someone to compute the FIR with minimum phase correction please post it. I find precious little on this approach re:RIAA openly available. BruteFIR would certainly handle this if one wants a free software solution.
EDIT - go for it, this stuff makes my head hurt! 😀 http://www.dspguru.com/dsp/howtos/how-to-design-minimum-phase-fir-filters
Last edited:
Can you say more, fine sir?
'Cause I was just about to 'upgrade' from my miniDSP (ADAU1701):
miniDSP (ADAU1701)
View attachment 461083
http://www.analog.com/static/imported-files/data_sheets/ADAU1701.pdf
to my miniSHARC (ADSP21369)
miniSHARC (ADSP21369)
View attachment 461081
http://www.analog.com/static/imported-files/data_sheets/ADSP-21367_21368_21369.pdf
miniDSP (ADAU1701)
View attachment 461083
vs miniSHARC (ADSP21369)
View attachment 461081
... and go alll ... FIRy on my ***! 😉
"Finite impulse response (FIR) filters
An FIR filter requires more computation time on the DSP and more memory. The DSP chip therefore needs to be more powerful. miniDSP products that support FIR filtering include the OpenDRC and the miniSHARC kit.
FIR filters are specified using a large array of numbers. In the case of the OpenDRC, there are 6144 coefficients (or "taps") per channel. In the case of the miniSHARC, there are a total of 10240 taps assignable to all input and output channels. Generation of this large array of numbers must be done in a separate program, such as rephase, Acourate, and others.
FIR filtering has these advantages over IIR filtering:
- It can implement linear-phase filtering. This means that the filter has no phase shift across the frequency band. Alternately, the phase can be corrected independently of the amplitude. See examples below.
- It can be used to correct frequency-response errors in a loudspeaker to a finer degree of precision than using IIRs.
However, FIRs can be limited in resolution at low frequencies, and the success of applying FIR filters depends greatly on the program that is used to generate the filter coefficients. Usage is generally more complicated and time-consuming than IIR filters.
from miniDSP's :FIR vs IIR filtering
Thanks and cheers,
Jeff
It might not be so hard after all to code an FIR with correct phase for so few poles and zeros, the literature goes right to the difficult problems. I have not looked into this before just trusted Gary's comments.
This seems to be a unique mod done to the box for MM cart inout. Is it just this one guy, or are other people using the Metric Halo box for RIAA?
This is officially supported by MH. You'll see the card in the first of my links already comes with the "modded" input boards.
Furthermore, their software includes RIAA equalization presets (deviation independently measured at < 0.1dB).
Pano, Audio Lap dance, I don't know where my head was at this afternoon. Of course capturing the actual real time impulse response at sufficient resolution will yield a convolutional filter that gives the right answer. I have been looking at solutions where the compute bandwidth can not support big FIR filters. Things have changed a lot. With this in mind I don't know where Gary Galo's comments are coming from. Time for a reset to see if one of the miniDSP products can do this to sufficient accuracy.
(deviation independently measured at < 0.1dB).
The typical DSP results are .000X dB, is this really an analog RIAA followed by an A/D?
Time for a reset to see if one of the miniDSP products can do this to sufficient accuracy.
Looking forward to seeing your results. BTW whenever I see your avatar my brain dredges up things like "Scratch glass! Turn blue! Oberday! Remember, Parma spelled backward is Amrap." and I see the UHF dial of my parents' old TV.
Looking forward to seeing your results. BTW whenever I see your avatar my brain dredges up things like "Scratch glass! Turn blue! Oberday! Remember, Parma spelled backward is Amrap." and I see the UHF dial of my parents' old TV.
Ghoul power!
Snowed in today so maybe I will work on this a little. Plot below shows a single IIR biquad at 192K, somewhere around +-.0003dB. Since this requires only 4 multiply/accumulates per sample just about any modern processor can do this real time in line without any latency.
Attachments
Thanks Scott. We need to get this plugged into some DSP. I don't know enough about the IIR filters to implement it, but am willing to learn.
The typical DSP results are .000X dB, is this really an analog RIAA followed by an A/D?
It's implemented in the digital domain, and all quoted numbers include the full AD/DA chain.

You can read more about these tests here (with the help of Google translate).
I've done a lot digital RIAA since 2007. Here's one comparison between digital and couple analog stages: RIAA EQ comparation between Audacity EQ (FIR) w/ RIAA preset and 2nd o - Hydrogenaudio Forums
My digital RIAA pages are at - RIAA
(A vst plug-in already mentioned here but if that's not a choice then maybe Cycling74 Max/MSP implementation). You can also use coefficients listed there on my site even with MiniDSP and maybe with other DSP's too (load as a custom filter). I have not tried those in any DSP device but, in case of MiniDSP, someone informed me earlier this:
If you don't have flat pre-amplifier in your input chain then levels are usually low ... you can add extra gain in digital domain (try change those filter gain coefficients) up to say +50dB (harmonic distortion still stays below ~-100dB).
My digital RIAA pages are at - RIAA
(A vst plug-in already mentioned here but if that's not a choice then maybe Cycling74 Max/MSP implementation). You can also use coefficients listed there on my site even with MiniDSP and maybe with other DSP's too (load as a custom filter). I have not tried those in any DSP device but, in case of MiniDSP, someone informed me earlier this:
I actually found a spreadsheet in the minidsp-forum, which included riaa-filters, attached. The funny thing is, they are very very similar to yours, but ... see for yourself:
b0=1,
b1=-0.7555521,
b2=-0.1646257113,
a1=1.7327655,
a2=-0.7345534436
Somehow a and b coeffs are switched and one set has a turned sign.
Looks weird to me but works!
If you don't have flat pre-amplifier in your input chain then levels are usually low ... you can add extra gain in digital domain (try change those filter gain coefficients) up to say +50dB (harmonic distortion still stays below ~-100dB).
It's implemented in the digital domain, and all quoted numbers include the full AD/DA chain.
I see, but at 96K and up the numerical errors should be << .1dB. And don't forget I'm the champion of piggy bank budget DIY, if you want to spend $5,000 or even as much as $80,000 to archive your LP's no problem. I view it as a mission to narrow the performance gap.
I've done a lot digital RIAA since 2007. Here's one comparison between digital and couple analog stages: RIAA EQ comparation between Audacity EQ (FIR) w/ RIAA preset and 2nd o - Hydrogenaudio Forums
My digital RIAA pages are at - RIAA
(A vst plug-in already mentioned here but if that's not a choice then maybe Cycling74 Max/MSP implementation). You can also use coefficients listed there on my site even with MiniDSP and maybe with other DSP's too (load as a custom filter). I have not tried those in any DSP device but, in case of MiniDSP, someone informed me earlier this:
If you don't have flat pre-amplifier in your input chain then levels are usually low ... you can add extra gain in digital domain (try change those filter gain coefficients) up to say +50dB (harmonic distortion still stays below ~-100dB).
Hi jiitteepee, yes miniDSP uses exactly the numbers from Bob Orban's post, the differences are trivial, if you read their guide they invert the sign on two of the numbers that the user enters which seems unnecessarily confusing.
Even the basic miniDSP can do multiple biquads so someone should try the higher order IIR filters from Bob.
I've been playing today with SoX, looks like it can do large FIR's no problem, the RIAA impulse response drops below 24 bits at about 4500 taps at 96k. Hope to have some files for the miniSHARK in a few days.
Last edited:
I view it as a mission to narrow the performance gap.
I'm with you; a noble goal.
In any case, spending $3000 for the above MH interface, just to archive your vinyls, is, well, crazy overkill (to put it mildly), if not a waste of a high performance, swiss army knife of digital audio gear.
Then again, people spend three or four times as much on a cartridge, so "crazy overkill" is already on the menu. 😛
If you also consider the cost of many vinyl collections, it might even make sense. The hard part is to get the audiophool to realize the value and performance of this approach. 😎
Last edited:
Thanks for the info Scott.
There's this EqualizerAPO project for Windows (Vista/7/8.x/...) at SourceForge (system wide parametric EQ system). Latest versions 0.9.x has support for custom filters so it's another alternative for digital RIAA ... Future versions of my EqAPO GUI's supports RIAA EQ filter through this config file (not tested (a's and b's could be vice versa) but there's the idea) :
# RIAA filters (generated by PEQGUI-10MC)
# Configure/Add device related commands/parameters if you need this filter in input
Channel: All
Preamp: 0.0 dB
If: sampleRate == 44100
Filter: ON IIR Order 2 Coefficients 1.0 -1.700724 0.7029382 1.0 -0.7218922 -0.1860521
ElseIf : sampleRate == 48000
Filter: ON IIR Order 2 Coefficients 1.0 -1.732766 0.7345534 1.0 -0.7555521 -0.1646257
ElseIf : sampleRate == 88000
Filter: ON IIR Order 2 Coefficients 1.0 -1.855465 0.8559721 1.0 -0.8479577 -0.1127632
ElseIf : sampleRate == 96000
Filter: ON IIR Order 2 Coefficients 1.0 -1.866634 0.8670602 1.0 -0.8535323 -0.1104603
Else :
Filter: ON IIR Order 2 Coefficients 1.0 -1.931263 0.9313725 1.0 -0.8796912 -0.1023703
EndIf :
There's this EqualizerAPO project for Windows (Vista/7/8.x/...) at SourceForge (system wide parametric EQ system). Latest versions 0.9.x has support for custom filters so it's another alternative for digital RIAA ... Future versions of my EqAPO GUI's supports RIAA EQ filter through this config file (not tested (a's and b's could be vice versa) but there's the idea) :
# RIAA filters (generated by PEQGUI-10MC)
# Configure/Add device related commands/parameters if you need this filter in input
Channel: All
Preamp: 0.0 dB
If: sampleRate == 44100
Filter: ON IIR Order 2 Coefficients 1.0 -1.700724 0.7029382 1.0 -0.7218922 -0.1860521
ElseIf : sampleRate == 48000
Filter: ON IIR Order 2 Coefficients 1.0 -1.732766 0.7345534 1.0 -0.7555521 -0.1646257
ElseIf : sampleRate == 88000
Filter: ON IIR Order 2 Coefficients 1.0 -1.855465 0.8559721 1.0 -0.8479577 -0.1127632
ElseIf : sampleRate == 96000
Filter: ON IIR Order 2 Coefficients 1.0 -1.866634 0.8670602 1.0 -0.8535323 -0.1104603
Else :
Filter: ON IIR Order 2 Coefficients 1.0 -1.931263 0.9313725 1.0 -0.8796912 -0.1023703
EndIf :
I'm with you; a noble goal.
In any case, spending $3000 for the above MH interface, just to archive your vinyls, is, well, crazy overkill (to put it mildly), if not a waste of a high performance, swiss army knife of digital audio gear.
Then again, people spend three or four times as much on a cartridge, so "crazy overkill" is already on the menu. 😛
If you also consider the cost of many vinyl collections, it might even make sense. The hard part is to get the audiophool to realize the value and performance of this approach. 😎
I worry that I resemble the above...
More good posts! 
I did some playing around with PEQ in JRiver. Almost got it, but not quite. The 2122Hz low pass worked great, but I could not get the 500Hz shelf right. No matter what I tried, still not flat. Not sure what the problem was.
Finally gave up and used a VST plugin. Worked great. Here it is on the bottom of this page. (( vacuumsound ))
jiiteepee - I will look at what you are doing.

I did some playing around with PEQ in JRiver. Almost got it, but not quite. The 2122Hz low pass worked great, but I could not get the 500Hz shelf right. No matter what I tried, still not flat. Not sure what the problem was.
Finally gave up and used a VST plugin. Worked great. Here it is on the bottom of this page. (( vacuumsound ))
jiiteepee - I will look at what you are doing.
Hope to have some files for the miniSHARK in a few days.
Yes, please. 😉
I worry that I resemble the above...
You're not alone. 🙂
People don't (want to) realize how many things they can achieve by embracing the "dark" (digital) side for their analogue front-end.
I have an old-school audiophile friend; the type who spend $$$ to get copies of master tapes and direct-to-master recordings. He was finally persuaded to buy the MH interface I linked above.
He's now archiving, de-noising and even re-editing his vinyl records, transferring the end result to his favorite analogue tapes (guess he likes seeing those things go round and round during playback).
Not exactly the approach I would recommend, but he's never had so much fun with his system and music collection. And the end result doesn't sound bad at all, I might add.
I have a similar friend. Despite working in an area where he should know better (v.senior in the analog arena in a large american semiconductor firm) he was horrified when I told him he should consider a miniDSP. Confession time. I only bought a miniDSP to make it easier to work out the curves on the crossover before building an analog one, but I am starting to think that it will have a permanent place in my system.
- Home
- Source & Line
- Digital Line Level
- What about digital RIAA?