Semi-Customized DAC, Part IV: Photos and Filters
by, 06-24-2013 at 10:32 PM (3361 Views)
So first of all, some photos. Doesn't look like much of anything at this point - really needs a chassis. But it sure sounds nice, even before any rewiring, cap rolling, and vibration control.
As I mentioned in other blog posts and comments, this DAC allows input at 8x rates (352.8/384), allowing the user to bypass the DAC chip's internal interpolation filter by oversampling in software. To this point, I've been experimenting with Audirvana Plus's embedded iZotope for this purpose. Before I provide my settings, I want to talk about my "understanding" of what these settings do. (Quotes because a real understanding requires math, and I last looked at a math text 40 years ago.) After anyone who really understands this stuff is done laughing, please do us all a favor and correct any misinformation I've unintentionally put out in what follows.
iZotope allows continuous adjustment of several filter parameters:
- Steepness: This number, valued in decibels, is the filter "order." See Audio crossover - Wikipedia, the free encyclopedia .
- Filter max length: The number of samples used by the filter. To derive 8x rates from RedBook, higher is better if you have the CPU/memory.
- Cutoff frequency: From reading, I believe this *may* not be the point at which the filter starts working, but rather the sq rt of 2 over 2 point, i.e., where the filtered signal is .707 of the unfiltered value.
- Anti-aliasing: Alias suppression in the stop-band. Again, higher is better unless your CPU or memory can't handle it.
- Pre-ringing: Does *not* control the amount of ringing. Rather, it controls where in time the ringing energy is placed. I believe the number is probably the decimal (finest adjustment is hundredths) obtained from using the pre-ringing as numerator and post-ringing as denominator, so for instance a setting of .5 would have 1/3 of the total ringing as pre-ringing and 2/3 as post-ringing. 0.00 is "minimum phase," no pre-ringing, so all post-ringing; 1.00 is "linear phase," equal pre- and post-ringing.
So if the pre-ringing setting doesn't control the amount of ringing, but only moves the ringing energy around the event, what *does* control the total amount of ringing? I don't see the means to create an apodizing filter in iZotope, so the answer for me is pretty simple: steepness. The steeper the filter, the more total ringing. Note that this ringing is a filter artifact, so even if you've pushed it all to post-ringing (so you don't get the anomalous "effect" preceding "cause" of pre-ringing, though that is not actually what's happening - the music signal is not time-traveling), you're just adding artificial reverb. And it will be a fair amount of artificial reverb, because you've taken ringing energy that would ordinarily be spread out both before and after the event, and concentrated it all on the "after" side.
Another problem with moving all the energy to post-ringing is that the type of filter that does this, a "minimum phase" filter, has the property that it is a "dispersive" filter. This means time to get through the filter is frequency-dependent. So different frequencies from the same instrument played at the same time (guitar or piano chords, for example) come out of the speakers at very slightly different times. See Digital Filters | Resonessence . Now I have Vandersteen speakers, which make a big point of being "phase correct," and I think I must be fairly sensitive to this as part of making things sound realistic to me. Also, phase interference effects are responsible for a fair amount of what we think of as "soundstage" and localization. And minimum phase filters, at least to my ears, mess this up royally. I think I've said elsewhere the effect of having a filter that rings plus the effect of concentrating that energy after the event, plus the dispersive effects, combine in something that sounds to me a lot like what you hear around an indoor pool - everything's echoing, and you don't know exactly where any of it is coming from.
All right, one last thing: These settings may not come close to being the best for you. You may not like them even in their "pure" form. Or, if you're one of the vast majority whose DACs do the D/A conversion at 8x or higher rates, but have a max input resolution of 192kHz, then at best you will hear the effects of your DAC's internal oversampling layered on top of iZotope's. And that may not sound anything like iZotope's filtering alone.
OK, so finally, here are my current preferred settings. I sometimes play around a very little with some of these settings, but don't move very far at all off of them.
- Steepness: 3 (told you I don't like ringing; I'd like a little less, but 2 is just a touch too low in other audible respects)
- Max length: 2,000,000 (got the CPU and memory and upsampling to 8x rates, so why not?)
- Cutoff Frequency: 1.02 (sometimes play around with 1.03, but always come back to 1.02 as sounding better)
- Anti-aliasing: 200 (that's the max; again, if I've got the memory and CPU, why not?)
- Pre-ringing: 1.00 (I don't want to concentrate what little ringing there may be on one side of the event or the other; and I want to maintain the accurate localization and soundstaging that correct phase permits.)
I'd originally planned to get into some other things, but it's late and I've typed enough for one night! :-)