### RIAA correction curves

Vinyl has become trendy again, and as such, I’ve been asked to add some new filters in Audio ToolKit. Here is a small dive in RIAA land.

#### More than meets the eye

The RIAA filter compensates for lower bass frequencies and louder high frequencies on a vinyl (of course, this pre mastering filter for vinyl is also available now in Audio ToolKit on the develop branch). The filter is quite simple, it’s an order 2 low-pass filter, with known knees. There are three time constants: $t_1 = 75*10^{-6}s$, $t_2 = 318*10^{-6}$ and $t_3 = 3180*10^{-6}s$. This then used in the following continuous transfer function:

$H(s) = \dfrac{t_2}{t_1}\dfrac{(1+st_2)}{(1+st_1)(1+st_3)}$

The trick now to convert this into discrete time is to first wrap these times with the following equation: $t_d = \dfrac{1}{f_s * tan(\pi / (t_a * f_s))}$, with $f_s$ the sampling frequency. Only then can you get a matching curve:

If you compare this with Wikipedia’s curve, you will see that it doesn’t match mine. The gain for lower frequencies is not correct, and at 1kHz, the gain is not 0dB. And if you try to make 0dB at 1kHz, you have even a lower gain! Why? Good question. These are the constant given by the association and the gain that should used.

RIAA is not simple. It’s not even consistent! But at least it given a good first curve for vinyl correction that can be enhanced by adding additional EQ filters.

Series Navigation<< Create a FIR Filter from a Template (EQ module)Performance on the IIR SIMD filters >>

This site uses Akismet to reduce spam. Learn how your comment data is processed.