as some of you may know, a few years ago (before BeSweet was made as a bridge between Azid and LAME) I dreamed of a good sounding and cheap dynamic compressor, because I didn't like the kind of DRC the usual AC3 decoders applied to their output. Mainly, I didn't like the "pumping": Amplifying the quiet parts is fine, but not if the loud parts loose so much power. I don't know if some of you remember the days when we recorded radio songs using a cassette recorder with "Automatic Gain Control"...
I listened to the results of several dynamic compressor filters at PC musicians (mainly using different kinds of VST plugins in Cubase & Co.), but they all had some attack and release times. Therefore I guess they all work linear and ... well, let's call it "block based".
I know that it is impossible to linearly raise the volume of a quite normalised audio with high dynamic range. I have to treat quiet and loud parts differently or I would risk clipping. From what I learned in school about amplificating electronic components, semiconductor triodes clip hard when leaving their working area, tubes instead rather saturate. So I simply tried to find a kind of sinusoidal function which would allow to raise the volume of quiet parts, and avoid clipping due to the saturating behaviour towards infinity. These are:
(1) tangens hyperbolicus: Nicely linear around 0, rather sharp saturation;
(2) arcus tangens (scaled): A bit softer saturation;
(3) x / (|x|+1): Very soft saturation, probably hardly useful.
Of course, this is no "Tube Amp Simulation", not at all. But: In my tests with at first only function (1) on stereo audio, I was amazed by the powerful yet clear sound; I don't own many classical audio samples, but e.g. "Yello: Flag" was almost dynamically uncompressed on CD, hardly normalized - the difference was remarkable. Later I decided that function (2) was more suitable for compressing downmixed multi-channel audio streams of DVD movies (not everyone has an own home cinema in his own house, instead we have to care about our neighbors).
In my opinion, my "sample based" algorithms sound well, compared to "block based" compressors there is no pumping; well, of course, the waveform gest distorted remarkably (from sine towards square) - but I must say, that I enjoy the effect of emphasizing the "upper harmonics" (is that correctly translated? In german, I'd call it "Obertöne").
Now, I'd like to hear from sound engineers who know more about sound theory: Was my attempt useful, horrible, perfect ...?! Whatever: After releasing my WaveBooster (standalone version, processes WAV files - hopefully - with almost any usual sample resolution and channel count) as step between Azid's 24-bit output and LAME's 24-bit input (producing huge intermediate files), it is already quite widely used in other software (in BeSweet, in HeadAC3he, and for a short time also in Vidomi now). Some prefer the DRC provided by Azid, some prefer my Booster, some only normalize.
But all the years moving on, I still wonder if I made a piece of cake or a piece of sh...
(For downloads, please visit: the doom9 website; RareWares; for HeadAC3he: the german doom9/Gleitz forum searching for "Spielzeug"; or any other archive where you may have seen a copy of the mentioned tools.)


