multiband compressor / expander
mb dynamics is a multiband compressor / expander. It works on band levels relative to broadband level. A mode is available for setting thresholds to the average levels of the input. An auto gain function lets recover the input broadband level on the output.
Working with relative levels is useful for controlling narrow band dynamics independently of broadband level -say, a harshness / muddiness / etc that is not constant but happens both in loud and soft passages, so a fixed threshold doesn't work well. I made this not to replace other multibands, but to avoid resorting to complex sidechaining setups when they fall short. I also use it for broadband processing (on a mix, a submix, a piano take) to make the general tone more uniform, bringing dissimilar parts closer to an average. For that use, the "get" mode makes a guess of that average and sets thresholds to it. Sometimes I use this function alone to get some insight and then set a fixed eq, especially when the material is dinamically all over the place so the average spectrum over-represents loud parts.
v1.8.2: Improvements in the gain displays. In gain x freq, range is now zeroed for get mode. In gain x time, switching dynamic only now affects the whole display including the past.
v1.8.1: Revised the names of code elements to make some obscure parts a little more readable. Small code simplifications.
v1.8: Output detectors now use second order attack filters. BLEP macros are discarded. Small performance improvement (and better quality).
v1.7.2: Fixed a small redundancy in the implementation of link thresholds. Fixed a wrong behavior of link thresholds when A/Bing. It still should be disabled before loading presets/snapshots if they or the current setting have different thresholds for each side.
v1.7.1: Added a control to link the movement of left and right thresholds in the stereo version.
v1.7: All static gains (in, out and band) are now smoothed linearly by 20 ms. Mutes and solos now don't affect the computation of auto out gain. Other minor tweaks.
v1.6.3: Solved an issue where presets saved in daw files were broken after using the A/B mechanism and reopening the daw file. Expanded the band attack/release info hints.
v1.6.2: Added info hints to everything, they include most of the manual. Also added a short explanation (in the manual and the info hints) of why thresholds can be positive. No functional changes.
v1.6.1: Small tweak in the BLEP macros.
v1.6: Added a BLEP-like correction to output detectors to smooth the edges between attack and release. The effect is very subtle, but I think it's worth the slight overhead (~5% relative, ~0.5% on my CPU for the stereo version with all bands active).
v1.5: Buttons are now flat, boxes are borderless, all curves are antialiased, other minor adjustments.
v1.4.2: Offset (an internal parameter recalculated on each crossover control change) is now driven by an iteration instead of an audio rate timer, so its effect is not delayed (this caused a gap in dynamic gain when a crossover was turned on).
v1.4.1: Moved the A/B snapshots to a separate bank, so they don't cause a "no free snapshot" when trying to add to the main bank.
v1.4: Added a display for transition (between threshold and group delay). Changed the behavior of global threshold when get mode is active (now it does nothing). Added GUI references to the manual. Other minor adjustments.
v1.3: Added an A/B mechanism to switch between two sets of parameter values.
v1.2: Out gain section restructured. Static out gain is now smoothed, out gain lookahead works whether auto is active or not. Out gain is set to zero when get mode is active. Added an overview diagram to the manual.
v1.1: Added controls ("x") for excluding individual bands from the computation of broadband level. This allows, for example, to control a high band independently of a low end that comes and goes, by taking a broadband level without the low end.