Compression - Is there a way to compress UP, away from the noise floor?
All compressors that I have seen always compress down toward the noise floor, resulting in the decrease of SNR and raising of the noise floor when gain compensating. Is there a way to mathematically and cleanly compress up, away from the noise floor? i.e., only affecting signals at a level above the noise floor, thereby increasing the Signal to Noise ratio?
By definition, dynamic compression makes the loud parts quieter and/or the quiet parts louder.
As you know, normal compression "pushes down" the loud parts.
There are "automatic volume controls" that push-up the quiet parts. That's a kind of compression and of course it's bringing-up the noise floor during the quiet parts.
Expansion makes the loud parts louder and/or quiet parts quieter. A noise gate is the most common kind of expansion.
It would be interesting if there was software that could capture a noise print of the noise floor and then use dynamic Digital Noise Reduction in tandem with the compressor, so that the more the compressor compresses the stronger the Noise Reduction...
That's basically what Upward Expansion does, and you can set it so that it only raises signal above a threshold and doesn't touch below it, as in the noise floor.
__________________
The reason rain dances work is because they don't stop dancing until it rains.
It would be interesting if there was software that could capture a noise print of the noise floor and then use dynamic Digital Noise Reduction in tandem with the compressor, so that the more the compressor compresses the stronger the Noise Reduction...
It would be interesting if there was software that could capture a noise print of the noise floor and then use dynamic Digital Noise Reduction in tandem with the compressor, so that the more the compressor compresses the stronger the Noise Reduction...
I think it would end up being the same as just removing the noise and then compression. In fact, the question points to I think a fundamental misunderstanding here. The S/N ratio actually stays the same when the compressor clamps down. It does turn the noise down exactly the same amount as the wanted signal. In fact, during the time that the compressor is applying gain reduction, the S/N ratio itself is better than when it’s not simply because the signal is louder, which is why it (and the noise underneath it) gets turned down by the compressor. The issue is precisely that when there is no gain reduction, it is during the times when the S/N ratio is worse, so the noise is loud, then you turn down the louder parts of the signal and make them closer to the noise in between. I may be explaining it terribly, but it’s true.
All of this assumes that the noise itself is relatively even in level through the whole thing, and if you’re trying to remove the noise, it’s usually a lot easier to do when it just stays there rather than getting pushed around via a compressor. Remove the noise, then compress. Whether you use something like ReaFir or just a gate or expander, it’s always better to do that before any compression or other dynamic smashing.
... as does ReaXComp with ratio set to less than 1.
That’s upward expansion. I don’t believe upward compression is actually a thing. It’s not different from regular “downward” compression with makeup gain.
The S/N ratio actually stays the same when the compressor clamps down. It does turn the noise down exactly the same amount as the wanted signal. In fact, during the time that the compressor is applying gain reduction, the S/N ratio itself is better than when it’s not simply because the signal is louder, which is why it (and the noise underneath it) gets turned down by the compressor.
I could see that happening if you were using a leveler, but compression wouldn't touch anything under the threshold set, correct? So if someone set the threshold to, say -60dB with a compression ratio of 3, and the noise floor goes up to -35dB (extreme example), then yes the noise floor would certainly be pushed down. That would really be a super-low threshold though and the only reason I could see for doing that is if you wanted a really transparent compression with a ratio of something like 1.18.
However, if the threshold is set above the noise floor as is common, say, at -15dB, then the compressor should not touch anything below that threshold, from what I understand. Unless I am mistaken, and in that case, I missed something in the basics!
That’s upward expansion. I don’t believe upward compression is actually a thing. It’s not different from regular “downward” compression with makeup gain.
We (me and the poster before me) were talking about upward expansion, yes
__________________
// MVHMF
I never always did the right thing, but all I did wasn't wrong...
That’s upward expansion. I don’t believe upward compression is actually a thing. It’s not different from regular “downward” compression with makeup gain.
Looks like it is! I looked at Red Phatt Pro posted by @todd_r, (free here: https://plugins4free.com/plugin/2066/) and saw the weird inverse threshold. Then I found this:
OK, so yes, upward compression will still raise the noise floor since it impacts all parts of the signal below the threshold...
....Hmmm....
So theoretically, would it be possible to build a multiband compressor based on FFT (so, an FFT size of 1024 would be 1024 bands, FFT of 4096 would be 4096 bands, etc) that you could use to capture the threshold of the noise at each frequency bin based on your FFT size, use downward expansion on each of those ranges (maybe even with a "whitening" slider than pushes higher values down lower), then compression on the rest of the signal? It might result in a cleaner option than simply subtracting the frequencies of the noise from the entire signal... Possible to work on the spectral part of the signal vs the frequency portion?
Up compression is usually done by mixing in the dry original signal with the compressed copy. As mentioned, there's no way to separate the signal from the noise floor with this technique. The noise would always get boosted.
If you have a nasty noise issue and it's poking out when you try to compress the program into the dynamic profile you want, look up iZotopeRX. This has the most comprehensive broadband noise reduction. You can get away with a lot with no artifacts.
If you REALLY have a noise problem and you hear the different noise reduction profiles in different sections, maybe it's time to split the track between multiple tracks. Then go after the really really bad sections with noise reduction more aggressively.
You could try to tie a compressor triggering to the noise reduction threshold in an iZotopeRX plugin with parameter modulation. I suspect just going after the noise first might be less screwing around though.
However, if the threshold is set above the noise floor as is common, say, at -15dB, then the compressor should not touch anything below that threshold...
I’m not sure I made my point very well. The noise is not separate from the signal in any meaningful way. Let’s just assume an infinite ratio that somehow doesn’t just distort everything. -15 threshold and no knee. The noise sits at -70. When our source is right at -15, no compression is really happening, and the S/N ratio is 55. The source gets 5db louder. Before the compression, the S/N is now 60. The compressor turns the whole thing (signal and noise) down 5db. The S/N ratio at this given moment is still 60, and better than before the compressor kicked in. The noise floor itself is pushed down to -75. BUT the signal itself doesn’t get as much louder than the noise from before and after, which is the problem, and why we do our noise reduction first. Imagine if you put an instantaneous gate (crossover distortion) at -70db. When the compressor is doing 5db gain reduction, the gate would be taking out 5db more than it needs to.
All that FFT stuff is being done, but IMNSHO even the best are barely passable for any real critical applications. Even if you can live with the artifacts, though, I don’t see a good reason to combine it with a compressor except to “save” plugin slots.
I see things like this, and I start to get confused. What happens when the input is actually really low? If we figure the gain by (threshold_db - input_db) * ratio, well what happens when the input approaches -inf dB?!? Gain approaches infinity, and I promise we don’t want that. So is there some maximum gain it can achieve? In that case it’s a lot like parallel compression and/or feedback style compression, though possibly (???) with a different transfer curve. I’ll have to check out some of the plugins that purport to do this, but for me it’s mostly just academic. A lot of people point to guitar pedal compressors as “upward compression”, but most of them aren’t actually.
I visualise a compressor in very simple terms as a ridden fader.
When a signal gets too high for your liking (threshold sort of) you reduce the signal with the fader. You therefore 'turn down' the whole signal - the wanted signal and the noise.
When it's too low you bring it back up again. Your reaction speed affects attack and release. Your fader movement is the ratio.
A bit too simplistic maybe especially in the digital world but maybe not a bad analogy (if you'll excuse the unintended punny bit!) but I think say the same as Ashcat.
@ashcat_lt I suspect the compressors that do true upward compression do have a limit on the gain, or simply do not have an auto-gain function. Of course, anything multiplied by zero is still zero, so pure digital silence will stay that way. Yes, from what I read you get pretty much the same effect from parallel compression.
@Allybye - From what I understand, the biggest difference between a compressor and a fader is that a compressor is visually "squashing" the signal in the time domain vs simply turning it down. So for example, if you have a 20Hz sine wave that goes to 0dBFS, and you set a compressor with an attack time of 100ms (or 50ms, but to capture the whole cycle you need 100ms from what I remember), a threshold of -15dB, and a ratio of 3, then at the -15dBFS mark you will see that for every 1dB the compressor will "squash" it by 2/3, so the result would be a 20Hz sine wave that looks "squashed" in the time domain and tops out at -10dBFS
However, I really do need to test this on iZotope RX using their signal generator since I tend to be a visual learner and I might have this explanation totally screwed up :P
There are the vintage units everyone likes for the unintended distortion/saturation character they have. Pretty sure they were in fact trying not to do that intentionally.
Now nobody knows what the hell they're after!
Peak audio levels are matter of fact.
The lowest levels fade into the noise floor (or digitally degrade into less and less bit resolution) into infinity. Trying to put a mirror on compression and call it "up compression" requires defining infinity.
So... we mash the program with compression leaving the low levels stuff intact and nuking the peaks. Then mix it back with the original and now we have the dynamic profile of the peaks with the low level program boosted and mixed in. Get the balance right to not hear artifacts and it's pretty much "up compression" in effect.
The visual display of time vs amplitude may be misleading. It sort of looks like you could draw a line and just slice off the noise. That would be a gate. There isn't a hard divide like that between signal and noise. They're mushed together down there.
Well of course they didn’t intend those compressors to distort. People seem to choose these things nowadays for the distinctive ways that they fail. But I mean, there are limits even in digital. You just can’t get clean compression with extremely short time constants because then it will start to change the shape of the waves on a cycle by cycle basis. I personally use ReaComp with all times at 0 as my go-to saturator.
I actually do use ReaGate as crossover distortion, too. It can be pretty harsh, but it works surprisingly well more often than you’d imagine. Really wish we had a ReaExpand, but we all know that’s never going to happen. A Delta mode in ReaComp would be cool, though, too.
The visual display of time vs amplitude may be misleading. It sort of looks like you could draw a line and just slice off the noise. That would be a gate. There isn't a hard divide like that between signal and noise. They're mushed together down there.
Yea I suspect that this is really the true limitation. We (as far as I know) have no way to completely separate noise from the same-level of signal without some sort of trade-off. I guess that if we did, noise wouldn’t even be a thing
But we DO have digital 24 bit recording format now! This has no self noise at the gross levels that tape did. The "noise floor" is the resolution floor now. 24 bit lets you call the first 8 bits your "noise floor" and you still have 96db of functionally full resolution on top of that.
You'd have to screw up SO badly to even approach any system noise now! I call this happiness and light.
I think most people are now dealing with noise from the environment since they don't record in professional studios anymore.
This: I would agree. There also seems to be a noise floor that the mics themselves are limited to, but yea the biggest issue has to be the lack of professional recording studio recordings, and so there’s now a ton of environmental noise. Plus with the amount of compression that is required sometimes, the noise floors on all tracks tend to get turned up to an audible level if one isn’t careful.
UPDATE: Brusfri by Klevgrand denoises without introducing artifacts
UPDATE: I came across this plugin:
Brusfri by Klevgrand. It truly does denoise without introducing phase artifacts. From the manual: "Brusfri uses several expanders targeted at different frequencies. By automatically tweaking each expander setting, from an inputted sample of isolated noise, Brusfri achieves extremely good noise reduction."
I can confirm: I tried it on an old Decca recording of Mozart by Karajan as the noise profile is loud and such that even iZotope RX has issues reducing noise without introducing artifacts. I ran a couple of passes on Brusfri and it sounds perfectly natural with no artifacts whatsoever. Definitely worth checking out!
Brusfri by Klevgrand. It truly does denoise without introducing phase artifacts. From the manual: "Brusfri uses several expanders targeted at different frequencies. By automatically tweaking each expander setting, from an inputted sample of isolated noise, Brusfri achieves extremely good noise reduction."
I can confirm: I tried it on an old Decca recording of Mozart by Karajan as the noise profile is loud and such that even iZotope RX has issues reducing noise without introducing artifacts. I ran a couple of passes on Brusfri and it sounds perfectly natural with no artifacts whatsoever. Definitely worth checking out!
The interface looks very simple in the pictures. Is there more? It looks like pre spectral processing. Can you really roll up your sleeves with this like iZotopeRX and select specific areas of your source spectrally to train the noise reduction?
It just looks like one of the cruder "one button" style nr. iZotopeRX is absolutely NOT a 'one button' app. Clicking the process button without dialing it in specifically would get randomly disastrous results. Kind of like a manual camera vs point and click (if anyone understands that analogy anymore).
The interface looks very simple in the pictures. Is there more? It looks like pre spectral processing. Can you really roll up your sleeves with this like iZotopeRX and select specific areas of your source spectrally to train the noise reduction?
Yes, you select a section with just the noise (if it's a short section just tell Reaper to playback the selection as a loop) then with just the noise playing hit the Learn button (Ear symbol) give it a couple of seconds to learn how to set up the bands for the noise and set itself up, then release and it's all set.
If you wanted to process only certain frequencies, Klevgrand has another plugin called Gaffel which is an adjustable synced band splitter so you can have any plugin only affect specific frequencies. This is something I actually requested as a feature in Reaper (just a highpass and lowpass knob for each plugin next to the wet/dry mix knob) some time ago as it would be just one more thing that sets the DAW apart from others and you wouldn't have to use different channels.
"Gaffel is a tool that splits audio into different frequency bands. Using it on multiple channels lets the user create multiband effect(s) out of any other plugin installed. Frequency parameters are globally synchronized between different instances of the plug in if they’re set to the same group, which makes it really convenient to work with in any DAW."
And no, it's not a one-button setup like the Accusonus stuff. While that plugin might work well for speech, it has way too many phase artifacts for any serious music work IMHO
All compressors that I have seen always compress down toward the noise floor, resulting in the decrease of SNR and raising of the noise floor when gain compensating. Is there a way to mathematically and cleanly compress up, away from the noise floor? i.e., only affecting signals at a level above the noise floor, thereby increasing the Signal to Noise ratio?
General Dynamics plugin. Technically, this is downward expansion. Draw a line steeper than 45 deg for low levels, then taper it back to 45 deg (no comprssion) for high levels, or less than 45 deg (compressing high levels).