Friday, July 17, 2020

miniDSP clipping issue solved

It seems the best thing I can do, is turn down the input level controls in the miniDSP plugins which are performing my crossover functions.  Though -5dB would be adequate for my test music, I'm choosing -6dB as a probable "worst case" value fitting my theory of what causes this problem.



On Thursday night, after ruling out a few other possibilities, and repeating a previous test than had been erroneous, I determined that the crossover functions in the miniDSP plugins that I am using can add 4.8dB or possibly more to the output level, above the peak level in the input signal.  This does not occur with sine waves, only with very dense and compressed music.  (My test recording was the first track of Supertramp Crime of the Century.)  So if you feed in a recording that peaks near 0dB, as most albums do, the miniDSP will then will clip at the digital output, unless you apply attenuation somewhere in the miniDSP.  It seems to me that the safest place to do this is at the input level control, and there would be little advantage (given the 32 bit operation of the miniDSP chips) in doing it at the output level control instead of the input, even if that worked (which I have not bothered to test).

Leaving the 6dB attenuation in the miniDSP plugin, the output level peaked at -1.2 dB, as read by the Behringer DEQ plugged into the digital output of the miniDSP, while playing the first track of Crime of the Century.





When I disabled the crossover function by clicking the bypass buttons in PlugIn running on my Mac Laptop which was "synchronized" to the midrange miniDSP OpenDRC-DI, the clipping problem went away completely.  Since I had set the level controls to -6dB, the peak level at the output was then exactly -6.0dB reading from the display of the Behringer DEQ 2496 plugged into the output of the miniDSP.  This proved that it is not the digital input receiver, the ASRC I criticized in the previous post, that was causing the clipping problem.  Instead, the problem appears only when you are applying some crossover functions, and goes away when you turn the crossover function off.  (But turning the crossover and attenuation functions off DOES NOT turn off the ASRC, as the output is always 48kHz regardless of settings.)



Now it seems the subwoofer and supertweeter ways have never shown this problem.  On Thursday night I dialed in the subwoofer crossover frequencies to the miniDSP I was testing, and then the max level was -10dB or less, not even close to clipping.

I tried a few other crossover functions to see what aspects of the crossover caused the output level to rise above the input level.  It seemed to occur in all the cases I've tested other than the actual subwoofer and supertweeter crossovers.  Specifically it is unrelated to using solely 24dB/octave LR4 or 48dB/octave LR8 crossovers.  Both of those types cause the problem when utilized across a wide bandwidth.  I tested my now standard 125Hz to 20kHz bandwidth for the midrange, as well as 10Hz to 20kHz.  I tried only having the lowpass and only having the highpass. and they also reproduced the problem.

My current idea is that you may need a crossover output of considerable spectral width to evoke the problem.  It might not ever be an issue for my subwoofer and supertweeter responses, which are relatively narrow band.  It doesn't appear to be a problem with my test music (Supertramp, Crime of the Century) on the subwoofer and supertweeter crossovers.  But I haven't ruled out that some other music or test might evoke the problem in the subwoofer and/or supertweeter.  So I believe it's best to apply the 6dB input attenuation to all of them to be safe, and until I have a definitive test which proves they are never affected by the issue.

My theory of what is happening is this:  A bandpass function having a highpass frequency and/or a lowpass frequency cannot "add" energy to the signal, only reduce energy.  So you might think such a problem as I am describing would never happen.  But the crossover also adds phase shift, different amounts of phase shift at different frequencies.  It could possibly move a peak at one frequency into alignment with a peak at a different frequency that actually slightly occurred later.  This could double the peak voltage, or +6dB, in the worst case.

Why is it that I never saw this problem before???  It's possible the Behringer units I've used before hide this issue somehow, possibly by using slightly different IIR (or even FIR) crossover functions, or possibly by using some independent "attenuation" system that is automatically applied when you use a crossover (on the DCX units) or a high pass or low pass filter (on the DEQ units).

I have often observed a bug that when you try to turn a highpass or lowpass EQ function "off" on the DEQ units, it often doesn't just go off.  It seems you may have to power cycle the unit to get a highpass or lowpass function to turn off.  This might be consistent with some "behind-the-scenes" attenuation function that is applied when you use those highpass or lowpass functions which "doesn't want to let go."

Perhaps this issue even explains why Behringer did not make a DCX unit with digital outputs.

I am not totally happy with the solution described at top, but I have worked it into my system by compensating for the -6dB level adjustment.  I turned up the level on the Emotiva DAC feeding my Hafler 9300 from -7.5dB (set there to maximize resolution at the loudest level I used to listen at) to -1.5dB.  On the DAC for the Aragon 8008 BB, I turned up the level to +6dB (I didn't even know it had such a level, but it does, and I think it has enough output voltage to support this level, though I'm not sure--it's not in the specifications or any reviews online--so I should test it sometime).  The supertweeter and subwoofer DACS have been reset to -1dB and 0dB respectively (previous values were -7dB and -6dB).

In doing this, there is a loss, though it's somewhat hard to explain.   Since the entire 24 bit dynamic range is no longer being as well used, the resolution and the apparent dynamic range in the DAC is reduced.  I was thinking it might fall from about 115dB to about 110dB.  Now it turns out the S/N of the DAC chip in the Emotiva Stealth DC-1's is about as good as the Volume Control chip in dynamic range.  So substituting one for the other in achieving an approximate 6dB of attenuation would likely make little or no measureable difference at all.  But then there is still no getting around the loss of attempted resolution from 24 bits to 23 bits, but likely that has little or no measureable difference at the DAC outputs either, and all of this is entirely swamped by the distortion levels in my amplifiers themselves, which is around -92dB and might as well be buried in noise which is generally less bothersome than distortion.

It only hurts my feelings, a little, as I've spent the last 2 years trying to do the opposite: to increase the digital dynamic range by adjusting the gain structure of my system so it reaches the peak digital value right at my peak listening level, thereby getting all 24 out of 24 bits of resolution available, even at the cost of suffering some loss from the attenuators in the DACs themselves.

Now I have to give that up, to get the steeper crossovers which sound vastly better, and ultimately the linear phase steeper crossovers.

I'll get over it, and/or eventually figure out a better solution.

Actually, the first test I did on Thursday was to connect the coax from my Oppo UDP 205 directly to the input of the midrange openDRC-DI.  I was worried the aging Tact might have some issue that was causing the clipping problem--something I had not tested on Wednesday night.  I was relieved to reproduce the exact same problem with a direct connection from the Oppo as from an AES connection from the Tact (through a Henry Engineering AES splitter too).  There is no evidence of any problem with the Tact or the Henry Engineering.




No comments:

Post a Comment