4.4.4 Beware cheap, resampling, soundcards
Most cheap game oriented soundcards often include a sample rate converter in their design, so that input streams running at different sample rates can be played together by resampling them at the maximum sample rate supported by the soundcard DAC. Usually this is 48 KHz as defined by the AC97 standard. These sample rate converters often are of abysmal quality, causing all sort of aliasing artifacts.
Most deconvolution based impulse response measurement methods, including the log sweep method, are quite robust and noise insensitive, but cause all sorts of artifacts when non harmonic but signal related distortion is introduced, even at quite low levels. The aliasing artifacts introduced by low quality sample rate converters are exactly of this kind and are one of the most common cause of poor quality impulse response measurements and consequently of correction artifacts.
4.4.5 How to work around your cheap, resampling, soundcard
Despite this, most of the times good measurements are possible even out of cheap soundcards if the maximum sample rate supported by the DAC is used, usually 48 KHz, so that the soundcard internal sample rate converter isn’t used at all. You can change the impulse response sample rate after the measurement using high quality software sample rate conversion algorithms (see section 4.5), thus preserving the impulse response quality.
To check the quality of the impulse response measurement perform a loopback measurement, without using a reference channel else any measurement problem will be washed out by the reference channel compensation. The impulse response you get must be a single clean spike much similar to that of a CD Player (see for example the upper graph of picture 88, labeled “Dirac delta”). A bit of ringing before and/or after the main spike is normal, but anything else is just an artifact. Only when you are sure that the measurement chain is working as expected open the loopback and do the real measurement, eventually adding also a reference channel to compensate for any remaining soundcard anomaly.
4.5 Sample rate conversion
If you have the impulse response sampled at a different rate than the one needed for the final filter, you need to convert the sample rate before creating or applying the filters. For example you might have a 48 KHz impulse response but you may need to filter standard CD output at 44.1 KHz. In this situation you can either convert the impulse response to 44.1 KHz before feeding it to DRC or you can convert the resulting filters to 44.1 KHz after DRC has created them. I generally prefer the first procedure, which leads to exact filter lengths in the DRC final windowing stage, but in both cases you need a good quality sample rate converter, which uses, for example, band limited interpolation. A reasonable choice, free both under Linux and Win32, is SoX, which may be downloaded at:
http://sox.sourceforge.net/Recent versions of SoX include some top quality sample rate conversion routines. SoX also provides a lot of other features for sound files manipulation. For a reference on band limited interpolation take a look at:
http://ccrma-www.stanford.edu/~jos/resample/Another free good sample rate converter comes from the shibatch audio tools suite. This sample rate converter provides a quality which is adequate for the task of converting the impulse response file before feeding it to DRC. You can find the shibatch audio tools at it at:
http://shibatch.sourceforge.net/