Ok people, don't start fighting ok
Now after reading all this I think I'll add what I *think* (and please correct me if I'm wrong, as I have no experience with these other devices).
The current Stereo Tool Multiband filter, with 10 bands
1 Positive: Brings out details in the sound
2 Positive: In cases of extremely compressed input material, can somewhat restore dynamics in the audio
3 Positive: Does not easily cause pumping due to the large number of bands.
4 Negative: Output signal still contains big spikes (problematic for Loudness)
5 Negative: Probably does not do the best job at keeping the total audio at a constant level (since its working on 10 separate bands).
6 Negative: Certain sounds get reduced too much (loud women voices)
The same Multiband filter, reduced to - say - 3 bands
1 would be more or less lost
2 too
3 will cause far more pumping than currently
4 would be better
5 would be better
6 would be better, but may also cause other sounds to be reduced more which would sound annoying.
Clipping is not possible with this setup!
The current AGC filter, expected behavior with 3 bands
(Note: This is not the current AGC set to '3 bands', because the bands are locked such that it behaves as a single band AGC unless the input gets very extreme. I'm talking about 3 completely separate bands here - which by the way CAN be configured using the current AGC... I will do some tests to see if I can confirm what I'm writing here...)
1 would be more or less lost
2 too
3 could contain a bit more pumping, but probably not that much (see current AGC behavior); might be worse though at more aggressive settings.
4 would be better (especially with low 'remove remaining peaks' levels, also note that for Loudness RMS levels are FAR more important than peak levels, and this would directly respond to those RMS levels)
5 would be better, especially for the 'apparent' (RMS) level - so also better than the Multiband-3 solution
6 would be better, and probably also better than for the Multiband-3 solution.
Also, due to the look-ahead, no clipping would be needed (although I'm not really sure if this is good or bad, for getting a sound with strong 'punch')
An alternative would be to have BOTH filters implemented, so Multiband + 3-band AGC or vice versa. That might be the solution to combine the positive things of both filters.
Note: I have not mentioned things like ratio, knee, hold times etc, yet, but adding those (in case of hold times, making them configurable) to Multiband might also make things a lot more powerful.
What will probably also help: The AGC responds identically at all input levels - so increase the volume by 10 dB and you'll still get the same output. For Multiband this is NOT the case - but it probably should be.
I have tried to improve that in the past but I failed at the time - actually that's BECAUSE Multiband doesn't use RMS values but only single sample values - I will have to look at it again. Changing this will also make the audio more constant in volume, and probably increase the audio quality.
--> Made this bold because after thinking about it again I think this might be the single biggest issue in the current Multiband implementation, even more important than knee, hold times and all kinds of stuff like that.
Short explanation of the issue to make things clearer:
- Say I have a loud spike, such that the volume is dropped to -6 dB.
- Then I get softer sounds. The volume rises back to 0 dB, say with 1 dB / 10 ms.
- Next, I have a much louder spike, and the volume is dropped to -60 dB.
- Then I get softer sounds. The volume rises back to 0 dB, with 10 dB / 10 ms. --> COMPLETELY DIFFERENT.
Now, this is good because quickly raising the level after a loud peak reduces pumping.
But it's also bad because for continuous loud sounds the output will be FAR more compressed and 'dense', which also makes it difficult to configure Multiband correctly for all types of sound.
The ideal solution would be to check the 'wanted' volume directly after the loud sound: If the volume immediately drops to 0, it's perfect that the volume is increased very rapidly to avoid pumping. But if it stays loud, the audio should come out as in the -6 dB example.
Now the issue in the current Multiband implementation is that I'm filtering based on single sample values, and each time when the waveform passes '0' it seems that the volume drops to 0... Some RMS like level would help a lot.
This is why I'm currently trying to keep the Multiband input level as low as possible (using AGC target output level) - if this issue would be solved, the AGC would be far less important for the output sound.