What is the problem?
The current set of effects is seriously lacking a compressor, especially for beats and bass. However, a traditional compressor is just too heavy and complex for this machine, and running it on multiple tracks simultaneously would instantly kill the CPU.
What should this feature achieve?
I propose a very simple solution: use a pre-prepared LUT table for the Up/Down compression curve and just a single control parameter — Wet. The processor won’t have to calculate dynamic parameters like a traditional compressor does, which will keep the CPU load to an absolute minimum.
PUNCH — LUT Parallel Up/Down Compressor
I conceived it as a third insert effect in the sample processing chain, in addition to the already existing Overdrive and Bitcrusher. The idea is to give us a very simple and fast way to give the sound a fat and dense feel (especially on drums and basses), while not cluttering the screen with extra settings. There will be only one parameter that mixes the clean signal with the heavily compressed one.
Many people probably immediately thought: what the heck, a compressor with its bunch of parameters, attack, and release? It will just destroy the processor. And if all of this is calculated in real time, and on all 8 tracks at once, then it’s a disaster. I completely agree with you, this option does not suit us at all. We need to propose a fundamentally different approach — one that, in theory, shouldn’t especially load the CPU, or at least keep it to a minimum.
Now I will try to explain what the idea is:
To keep Polyend from going crazy from complex dynamic calculations of attack time, release, and so on in real time, this compressor must work through one pre-prepared table of LUT values.
Below is a description of the process taken from the internet:
A fixed array of data with a ready-made Up/Down compression curve is embedded into the device’s memory. The processor does not calculate formulas on the fly, it just instantly matches the incoming signal level with the ready-made numbers from the table. With this approach, the CPU load becomes minimal and fixed.
Dry / Wet: the device does not physically create a copy of the sample in memory and does not spawn extra parallel audio buses — this would instantly kill the processor. Mixing happens at the micro-math level of a single sample: the processor takes the current value of the original sound point (Dry channel), simultaneously takes the value from the LUT table for the same point (Wet channel), and simply adds them up in a single line of code depending on the knob position.
In this option, the effect can be easily turned on even on all 8 tracks at once. To control the effect, only one knob is needed — Wet.
To get a cool sound, the fixed LUT curve must rigidly compress loud peaks from above (Downward) and forcefully pull up quiet tails from below (Upward). Thanks to parallel mixing (Dry/Wet), we fully control the balance of the original and the crushed signal. This will give us the ability to keep the sharp punch of the drum attack and simultaneously fill all the free space with a dense tail from the sample.
Benefits of the effect:
• No need to set up a bunch of parameters (threshold, attack, release). Just one Wet parameter instantly gives the necessary dense sound.
• The effect is not on the master bus. You can heavily pump only the drums, and leave the other tracks untouched.
• Using a ready-made table instead of constant calculations gives us hope for the implementation of this compressor. Programmers are already fully using similar tables on Polyend devices — it’s nothing new for them.
Backward compatibility
When loading old projects, the effect will always be turned off in the 0 position, so the sound will not change in any way. The effect activates only when we start turning the Wet parameter of the effect.
