Well this time I have it solved... No! Really!
All that the BBE processing is... is a parallel combination of a
LowPass? filter (2-pole), a High Pass Filter (also 2-pole), mixed with some negated fraction of the input signal. Useful values for the low and high processing levels range roughly from 0 dB to -12 dB. At -12 dB in both the LPF and the HPF the system becomes an All-Pass response with only phase shaping. At higher values for either the LPF and/or the HPF we have some amplitude shaping as well. Both filters have identical corner frequencies of approximately 725 Hz and Q's of 0.2.
The amplitude response is typically a bathtub curve, high at both low and high frequencies, with the mid-range attenuated. Leaving one or the other of the filters set to -12 dB makes it act somewhat like a shelving filter with boost in the other frequency range.
Now Cakewalk sells a plug-in for $99 to registered Sonar users that performs just this job with a pretty GUI. I guess the cost is entirely to support marketing and to pay for the pain caused by programming that nice looking GUI. (Those are always tough! Really!).
The corner frequency of 725 Hz was found using a spectrum analyzer. Even though the actual frequency appears closer to 750 Hz. I guess the difference here has to do with small failures in the Small Angle Approximation -- DSP corner frequencies only closely align with their analog counterparts when the frequency of interest is a very small fraction of the sample rate. Here we have a 3% deviation between the analog world and the required digital specification.
--
DavidMcClain - 03 Mar 2004
Okay, that was a fun quest, reverse engineering the BBE. But now after having done so, I have been thinking about what it claims to do... namely delay the bass frequencies relative to the treble so that speaker systems can more faithfully reproduce sharp transients. The other amplitude shaping is ostensibly for helping out weak speaker performance in the bass and high end... So much for the claims...
No question the amplitude shaping has some attractiveness when you first hear it. But you could do that much simply by cutting some of the midrange frequenceis.
Now what I really find here, amplitude shaping aside, is that the phase shifts imparted are such as to form group delays in the bass frequencies below 50 Hz of around 2 msec relative to the very highest frequencies. Hence frequencies above 200 Hz ought to show some snapping up at the leading edge of transients.
Furthermore, this all assumes that all subsequent audio processing, analog audio amplification, etc., are phase neutral. That is to say that these subsequent processing steps take care to preserve the phase of the incoming signals. And we know that simply isn't true. Any non-flat phase EQ processing following the BBE processing will upset this condition. The analog audio amplifier also exhibits its own phase bending unless you are lucky enough to have phase linear amplifiers.
So some of that initial 2 ms skew is likely to become eroded with subsequent processing. The best you can do is to place the BBE box as the final element in an audio processing chain, after all EQ's, compressors, etc., and hope for the best with your audio amplifier.
I see a competition reigning between the makers of BBE style enhancers and those with Aural Exciter type enhancers. One side claims superiority for various reasons over the other side. The truth seems to be that neither side is entirely correct. Certainly, hanging a bunch of BBE's all over your Cakewalk project tracks and hoping that the end result through external processing boxes, reverbs, etc., is anywhere near the intent of the BBE phase shifing is pure dreaming.
--
DavidMcClain - 04 Mar 2004
... actually... I just created an amplitude flat phase shifter along the lines of the BBE processing, and I do notice just subtle differences when playing pink noise through the system. And who knows, we are so susceptible to suggestion, but playing drums through this system, situated at the very tail of the audio chain, just ahead of the headphone amplifier, does seem to have a bit of sparkle in the impulses... I'm not using any amplitude shaping at all. And when I do need amplitude shaping, I can just use some EQ cut at 750 on my mixing console.
Maybe there is something to this after all?
--
DavidMcClain - 04 Mar 2004
... well, as it turns out, the cascaded multiband filterbank described elsewhere with 4th order Butterworth sections already produces this kind of phase shifting and group delays. For a 10-band EQ I measure about 20ms of group delay at 30Hz, dropping to 10ms at 100Hz, and then down to 2 ms at 1 KHz, and continuing down from there onward.
These group delays are more extreme than BBE-style phase shifting, but should accomplish about the same thing as far as overcoming speaker inductance. This also indicates that one might be able to tune the amount of group delay achieved by varying the number of filters in the filterbank.
Indeed, numerical models show this to be the case, and it appears to vary almost linearly. For example, dropping to 5 2-octave wide bands in the EQ lowers the maximum group delay to around 6.5ms at 100Hz, 1 ms at 1 KHz, and downward from there. This is now about twice what the BBE algorithm provides.
This all just goes to show that you are probably already getting a BBE-style phase shift in your audio if you are running it through any kind of IIR based EQ. Additional BBE processing only adds at most 2ms additional group delay at the lowest frequencies.
At some point we may get too much group delay skew among the various spectral components. At that point, we need the opposite kind of correction to what BBE processing provides. Just guessing, but I imagine it requires some kind of differentiation, or high-pass filtering to undo the effects of too much bass group delay skew.
--
DavidMcClain - 04 Mar 2004