Compressor without techtalk?
Posted: Tue Feb 25, 2020 2:58 pm
As the one who's totally incapable of even the easiest forms of DSP, let alone ASM, I have a hard time, when I try to understand how a compressor works in the digital domain. That's why I will describe what I think might happen, and it would be nice if anything that's wrong would be corrected IN THE SAME EASY LANGUAGE
There's a bunch of numbers in the range [-1, +1]
A threshold (for example 0.5) will be used to check each number. If the number is positive and lower than threshold it passes untouched. If the number is negative, then the abs of number has to be lower than threshold in order to be passed untouched.
Any other number is processed, and the processing goes on for a certain amount of time, once threshold was triggered.
The time range is defined by attack and release. Attack describes the time it takes the compressor to affect the numbers fully. This is linear, starts at 0% and ends at 100%, covering the time that was set for attack (for example 0.1s). Basically something like "compress_ratio * percentage" (compress_ratio * 0.5 at 0.05s in this example)
The release time is a bit more mysterious for me. One would think it's just the opposite of attack, but when I listen to compressors it sounds much more like the fully compressed signal stays that way until release time is over, and then jumps immediately to uncompressed. I bet it is something in between.
The ratio tells us how to affect the numbers. "6:1" would mean a sixfold compression. A number of 1.0 and a threshold of 0.6 would leave 0.4 to compress. 0.4 sixfold compressed would be 0.00625 (0.4,0.2,0.1,0.05,0.025, 0.0125, 0.00625) and the number changes from 1.0 to 0.60625
Knee. Never understood that. What's a knee? Why can it be soft or hard? Why is there no elbow or hip?
Gain. Used to make the signal louder again after compression. The above example of 0.60625 could be raised to 1.0 again (but of course now with the new relationship to the other numbers)
Yep, that's how it looks in my brain. No "oh take tan(h) and make it the cosine of the third root of the second derivative". Just "erm, numbers?"
There's a bunch of numbers in the range [-1, +1]
A threshold (for example 0.5) will be used to check each number. If the number is positive and lower than threshold it passes untouched. If the number is negative, then the abs of number has to be lower than threshold in order to be passed untouched.
Any other number is processed, and the processing goes on for a certain amount of time, once threshold was triggered.
The time range is defined by attack and release. Attack describes the time it takes the compressor to affect the numbers fully. This is linear, starts at 0% and ends at 100%, covering the time that was set for attack (for example 0.1s). Basically something like "compress_ratio * percentage" (compress_ratio * 0.5 at 0.05s in this example)
The release time is a bit more mysterious for me. One would think it's just the opposite of attack, but when I listen to compressors it sounds much more like the fully compressed signal stays that way until release time is over, and then jumps immediately to uncompressed. I bet it is something in between.
The ratio tells us how to affect the numbers. "6:1" would mean a sixfold compression. A number of 1.0 and a threshold of 0.6 would leave 0.4 to compress. 0.4 sixfold compressed would be 0.00625 (0.4,0.2,0.1,0.05,0.025, 0.0125, 0.00625) and the number changes from 1.0 to 0.60625
Knee. Never understood that. What's a knee? Why can it be soft or hard? Why is there no elbow or hip?
Gain. Used to make the signal louder again after compression. The above example of 0.60625 could be raised to 1.0 again (but of course now with the new relationship to the other numbers)
Yep, that's how it looks in my brain. No "oh take tan(h) and make it the cosine of the third root of the second derivative". Just "erm, numbers?"