View RSS Feed


Semi-Customized DAC, Part IV: Photos and Filters

Rate this Entry
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! :-)


  1. barrows's Avatar
    Cool Jud. One critical thing which I would advise you pay attention to when putting this in a case, and figuring out your layout: I2S wiring is very sensitive, you want these wires to be as short as possible, defintely under 10 cm. The best wiring for I2S is u.fl cables, which are micro COAX. Next best is probably as twisted pair sets: data/ground, word clock/ground, bit clock/ground, and master clock/ground (if used). Another way is a ribbon cable, if the pins are arranged such that each data wire is surrounded by a ground return. So your ribbon would be arranged: G-master clock-G-bit clock-G-word clock-G-data-G. Probably the easiest good way for you to do it will be twisted pairs. These are high speed lines, so they can easily act as antenna, both broadcasting and receiving interference. Get them as short as possible, and each one as closely coupled with a ground line as possible.
    Ohh, one othe thing, as you plan your case layout, err on the side of a bigger case, in order to keep the transformer and power supply board as far away from the analog out area as possible. Nothing is better than some distance to avoid AC hum pick up in the analog path.
  2. Jud's Avatar
    Hi barrows. I'm actually putting this in two separate chassis, tranny and PSU in one, input and D/A boards in the other, with probably a meter of wires between to carry the power. Input and D/A boards will be next to each other in their chassis to keep the I2S wiring short. Thanks for your comment about the nature of that wiring; will talk about that some with the Omega Mikro people and will be sure to run what you said by them. (By mentioning them I definitely don't want to cut off any other good input you or anyone else reading this may have on the topic of wiring, or anything else for that matter.)
  3. barrows's Avatar
    cool. I know your dAC board likely has onboard local regulators to help with this, but beware that DC does not like to travel long cables, these will raise the power supply impedance, so try to keep your DC umbilical between chassis as short as is practical. Additional capacitors on the DAC side may help this, providing local energy storage: something to think about. Power supply impedance is the enemy of good dynamic performance, and fast digital circuits-hopefully the DAC board is well enough designed (with local capacitance and fast good regulators) that this will not be a real issue.
  4. Jud's Avatar
    Any thoughts, if you were doing this using Omega Mikro's mesh-insulated ribbons, of how long your semi-ideal balance would be between separating power from signal versus keeping impedance low?
  5. barrows's Avatar
    They cannot be too short so... Personally, I would use conventional (generally for this case I would use ~20-18 awg mil spec silver plated copper in teflon) wire so that I could twist the wires to avoid them acting as antenna for RF pickup. If you are planning to use Pierre's ribbons for a DC umbilical, I would suggest getting advice from him on that. AC-DC power supplies generally have two sources of potential airborne interference: the switching harmonics of the rectifier diodes, and the EM field of the transformer. Generally speaking, a full width single chassis offers enough internal room to separate a DAC board from the transformer(s) and diodes by enough distance for them not to be a problem. Certainly the strength of this interference falls off quickly with distance, so you will not have to have the chassis very far away. I have seen some companies do the two chassis approach, and then recommend stacking them, only to find that the transformer ends up being an inch and a half from sensitive analog circuits! Hahaha, that is usually too close, but 6 inches is usually plenty for the power supplies in source components. Amplifiers are another story of course, with their much larger, higher current supplies.
  6. Superdad's Avatar
    Hi Jud:
    Per Mr. Lukin at iZotope, the filter "order" is 4 times the "steepness" setting.

    If that is true, then your setting of 3 results in a 12th-order filter, and my setting of 7 results in a 28th-order filter. And I really wish for finer control. He said they used to have it back in 2005, and could add it back in if there was "demand." Wouldn't you like a 2.5 setting?

    Although he points out that dB/octave slope is not relevant when talking about digital filters, my analog pea-brain would like to translate those "orders" into a slope that I could recognize. Guess I should try playing with the resampler graphing of iZotope RX again.

    I'm with Barrows: put it all in one chassis! I envy that nice R-core tranny...
  7. Jud's Avatar
    Thanks - yes I would like a 2.5 setting, in fact I requested finer adjustment back in the thread you linked to.

    Re chassis, I think I may still go with two, but we'll see....

    BTW, in which plane does an R-core transformer have better shielding, horizontal or vertical?
  8. Jud's Avatar
    Alex (Superdad), thank you for pointing out my error in equating db with order in the iZotope settings, rather than order = db x 4. What's interesting about that is the Wikipedia link on audio crossovers in my post above appears to say there are some characteristics shared by odd-order filtering, and some by even-order. Currently, with order equalling the db number setting in iZotope times 4, that means we're hearing exclusively even-order filters.
  9. barrows's Avatar
    I am a little confused, need to gor ead the iZotope thread... Steepness of the filter cut off slope, and the cut off F should determine control the amount of ringing, so it is hard to understand how iZotope says it does not matter????
    What woudl be cool would be if iZotope could give an actual (GUI) curve for the settings, and an impulse response curve as well... Like a separate SW which allows one to put in differnet settings and see the results grahically represented. This is how I generally understand filters and their performance.
  10. Jud's Avatar
    barrows, my turn to be confused - who is saying steepness of the slope doesn't matter? If you got that from something I said, it was definitely not intended.

    You can see lots of GUI curves from iZotope here:
  11. Superdad's Avatar
    Quote Originally Posted by Jud
    BTW, in which plane does an R-core transformer have better shielding, horizontal or vertical?
    That's the beauty of R-cores--they radiate about 1/10 what an EI does, and what little mag flux radiation there is quite even all around. So just mount it flat--and even in close quarters with the boards. Will be fine.