Distortion for superbass no matter what ever I do
Hey everyone. I have a adau1701 board connected to a amplifier and everything is gain staged correctly (0db on the DSP is right before when the amp starts to clip). Everything works well except when I try to use superbass on the board. I am running at a sample rate of 48k and while superbass works well at low volumes, at medium volumes I get distortion from the bass even though I am not even clipping the DAC at all. I looked at a previous thread and Bob mentioned that reducing the gain by -12db would prevent it from distorting. I had to reduce the gain into superbass by -20db, and then boost by +20db in order to prevent the severe harmonic distortion I mentioned.
Doing this did solve the problem greatly, but since I am reducing the gain of a signal, then boosting it, I am loosing content. At low levels, the bass sounds extremely thin. When the block is disabled again, the bass sounds fuller. This is strange since the bass gain is set to 1.0 (no boost or reduction) and a harmonic content of 0.9 as well. Is there a bug with superbass? It's annoying that I have to resort to using another signal processor (like a BP1048 chip) to generate the bass harmonics instead on the chip itself. And given that others has failed to use 3rd party algorithm like maxxbass on the chip as it is only licensed for OEMS, I feel that I am forced to use the poor implementation of superbass.
Is there anything I am doing wrong that causes this distortion? Is there any way to generate missing fundamental bass without using superbass and using regular DSP logic and blocks to construct this? The issues I face here are my biggest gripe with using ADI processors for audio, but the rest of the functions work perfectly for me.
Audio Signal Processors
software
sigmastudio
SigmaDSP Audio Processors
adau1701
Hello,
You're not doing anything wrong. There's several threads suggesting that the SuperBass algorithm has some limitations. I don't know how well other implementations work -- yet, it seems to me that all of them would add distortion. After all, producing these extra bass harmonics is by definition, harmonic distortion. The algorithm needs to carefully control this distortion so it sounds good, much like a tube guitar amp can be made to gently distort for a pleasing sound.
It appears that ADI's SuperBass block works well over a limited input range, near -20 dB. Too much input and it audibly distorts, too little and it sounds thin as you said. My original idea of simply attenuating its input solves the excessive input problem but makes the low input operation even worse. So, what might we do? Below is a more sophisticated workaround to extend the sweet spot over a wider level range.
It uses two Peak Compressors to first compress the SuperBass block's input, then expand its output. Both compressors use a straight-line curve, much like dbx's decilinear companding method. The input compressor's slope is 2/3, the output slope is roughly 3/2, so they cancel out. Yet the SuperBass block sees a narrower range which never goes below -80 dB nor above -20 dB, hopefully where it works well. It sounds pretty good to me through headphones (I don't have any speakers handy).
1524.Compander-SuperBass.zip
Best regards,
Bob
Hey Bob,
After testing this for a while, it works really well! However, I noticed that the transient response of my speakers sound more smeared since the compandor compresses, then expands the signal. If I change the hold time to 0 ms and the decay to 8066 db/s (the maximum speed), The effect sounds weakened. Do you have any explanation for this and how to mitigate the smearing effect?
Please log in to reply.
