From 3abe5301227e554321a6ea3145d26693864aa7f4 Mon Sep 17 00:00:00 2001 From: Christopher Johnson Date: Sun, 1 Feb 2026 13:56:28 -0500 Subject: [PATCH] DeNoise --- Airwindopedia.txt | 18 ++++++++- .../UserInterfaceState.xcuserstate | Bin 24676 -> 25554 bytes .../xcschemes/ContentHideD.xcscheme | 4 +- .../ContentHideD/source/ContentHideDProc.cpp | 36 +++++++++--------- what.txt | 1 + 5 files changed, 38 insertions(+), 21 deletions(-) diff --git a/Airwindopedia.txt b/Airwindopedia.txt index 66eefb677..22cdd6133 100644 --- a/Airwindopedia.txt +++ b/Airwindopedia.txt @@ -33,7 +33,7 @@ Filter: SmoothEQ3, PearEQ, SmoothEQ2, SmoothEQ, Parametric, Silken, Stonefire, A Lo-Fi: DeBez, HipCrush, Flutter2, DeRez3, Pockey2, CrunchyGrooveWear, GrooveWear, Pockey, Flutter, DeRez2, BitGlitter, DeRez, TapeBias, ChromeOxide, Cojones, Vibrato, Bite, Deckwrecka, DustBunny -Noise: Noise, Texturize, TexturizeMS, VoiceOfTheStarship, DarkNoise, ElectroHat, Silhouette, TapeDust +Noise: DeNoise, Noise, Texturize, TexturizeMS, VoiceOfTheStarship, DarkNoise, ElectroHat, Silhouette, TapeDust Reverb: kWoodRoom, kStation, kGuitarHall2, kCathedral5, VerbTiny, VerbThic, kAlienSpaceship, kCathedral4, kBeyond, VerbSixes, kCosmos, Galactic3, kCathedral3, kPlate140, kPlate240, CreamCoat, kGuitarHall, kPlateD, kPlateB, kPlateA, kPlateC, CrunchCoat, kCathedral2, Verbity2, Galactic, Galactic2, Verbity, Chamber2, Chamber, Infinity2, NonlinearSpace, kCathedral, Infinity, MatrixVerb, PocketVerbs, Reverb @@ -1705,6 +1705,22 @@ Then you use the ducking control and the treble rolloff to tailor the kind of es This acts like a filtery gate. It tries to apply a lowpass filter to suppress quiet background noise whenever loud bright treble isn’t happening. You can use it in creative ways, but it really was designed to suppress hiss from a cheap USB condenser mic. Sort of an experiment. It’s got a dry/wet now in case that comes in handy. I’m not sure how much else is out there specifically like this, but then I’m not sure how much call there is for it in the first place :) +############ DeNoise can work as a multiband gate and as a wild effect. + +So it starts as a multiband gate. That's pretty direct. You've got frequency ranges, and when they're set to zero there's no gating and full wet is the same as dry. Turn up a band, and you're increasing the threshold: when the sound at that band drops below the threshold it gates and there's silence. You can use the dry/wet control to moderate the effect a little, and you can dial in settings that neatly denoise a sound without interfering with the main audio too much. + +The speed control governs how rapidly it transitions, and increasing that slows the reaction time, so you can keep the gate from chattering, set it as quick as possible without an obvious click and you're good. On top of that there's a trick from DeCrackle that's part of the dry/wet: the same as DeCrackle, if you set it full dry rather than just bypassing it, what you get is the delta function with dry subtracted from the result. This isn't the same as an inv/wet control so I didn't label it that: it's a special case for 'monitor only what's being taken away' which is sometimes handy for stuff like this. + +And now, we get freaky with it :) + +When you raise the gating a lot farther than mere noise gating, you get into some aggressive sound sculpting very quickly. Since it's a gate, you're shortening everything, but since it's multiband it can wrench the tone around. Instead of cutting low mids on the sound, you can gate them out super aggressively and it'll shorten and tighten up a kick, but keep the low mids as part of the attack: you're basically handling the decay of every part differently. You can have the bands blend across different settings, or have adjacent bands very different from each other, and all these things twist and mutate the tone. + +And then once you're doing that, the speed control comes into play. It governs both how fast the gate can slam shut, and how quick it can open, and that's also relative to the frequency of the band, so exaggerate this and you get filter-sweepy effects. Adjusting this can lock in exact gatey tones really well, it should be obvious where Speed wants to be set. And of course if that's not enough for you, you can make a tone entirely out of the Delta, where it loses all the attacks and keeps only the decays being gated off… + +And, it's one of the more CPU-efficient Airwindows plugins so it does all that while barely touching your CPU. + +It should be fun, as well as useful in the normal way. Hope you like it :) + ############ Density is a Swiss Army Knife of saturation/antisaturation. This one started a lot! The algorithm used here has echoed through many other Airwindows plugins. It’s literally the smoothest saturation you can have in a plugin: the transfer function’s a sine. This is what’s in Channel, too: there are many ways to adapt such a simple mathematical function. diff --git a/plugins/MacSignedVST/ContentHideD/ContentHideD.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/ContentHideD/ContentHideD.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate index cdc3df04724c261589e0d1151d3f2703e0b9f4f4..13d527561c14e1fe74a4fcf56d2f6aaf40d1fa8b 100755 GIT binary patch literal 25554 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 @@ -51,7 +51,7 @@ diff --git a/plugins/MacSignedVST/ContentHideD/source/ContentHideDProc.cpp b/plugins/MacSignedVST/ContentHideD/source/ContentHideDProc.cpp index c8b5d194d..aae93b30a 100755 --- a/plugins/MacSignedVST/ContentHideD/source/ContentHideDProc.cpp +++ b/plugins/MacSignedVST/ContentHideD/source/ContentHideDProc.cpp @@ -26,15 +26,15 @@ void ContentHideD::processReplacing(float **inputs, float **outputs, VstInt32 sa double duck = 0.0; demotimer -= (1.0/overallscale); - if (demotimer < 441.0) duck = 1.0 - (demotimer/441.0); - if (demotimer > 44100.0) duck = ((demotimer-44100.0)/441.0); - if (duck > 1.0) duck = 1.0; duck = sin((1.0-duck)*1.57); - - if ((demotimer < 1) || (demotimer > 441000.0)) { - double randy = (double(fpd)/(double)UINT32_MAX); //0 to 1 the noise, may not be needed - demotimer = 100000.0*(randy+2.0); - } - + if (demotimer < 441.0) duck = 1.0 - (demotimer/441.0); + if (demotimer > 66600.0) duck = ((demotimer-66600.0)/441.0); + if (duck > 1.0) duck = 1.0; duck = sin((1.0-duck)*1.57); + + if ((demotimer < 1) || (demotimer > 441000.0)) { + double randy = (double(fpd)/(double)UINT32_MAX); //0 to 1 the noise, may not be needed + demotimer = 50000.0*(randy+3.0); + } + inputSampleL *= duck; inputSampleR *= duck; @@ -69,15 +69,15 @@ void ContentHideD::processDoubleReplacing(double **inputs, double **outputs, Vst double duck = 0.0; demotimer -= (1.0/overallscale); - if (demotimer < 441.0) duck = 1.0 - (demotimer/441.0); - if (demotimer > 44100.0) duck = ((demotimer-44100.0)/441.0); - if (duck > 1.0) duck = 1.0; duck = sin((1.0-duck)*1.57); - - if ((demotimer < 1) || (demotimer > 441000.0)) { - double randy = (double(fpd)/(double)UINT32_MAX); //0 to 1 the noise, may not be needed - demotimer = 100000.0*(randy+2.0); - } - + if (demotimer < 441.0) duck = 1.0 - (demotimer/441.0); + if (demotimer > 66600.0) duck = ((demotimer-66600.0)/441.0); + if (duck > 1.0) duck = 1.0; duck = sin((1.0-duck)*1.57); + + if ((demotimer < 1) || (demotimer > 441000.0)) { + double randy = (double(fpd)/(double)UINT32_MAX); //0 to 1 the noise, may not be needed + demotimer = 50000.0*(randy+3.0); + } + inputSampleL *= duck; inputSampleR *= duck; diff --git a/what.txt b/what.txt index aa0642e3f..4810ae74b 100644 --- a/what.txt +++ b/what.txt @@ -133,6 +133,7 @@ Deckwrecka fattens and dirties up beats.[coll=Latest] DeCrackle isolates clicks and vinyl crackles to remove them.[coll=Latest] DeEss is the best de-essing solution there is. A go-to utility plugin.[coll=] DeHiss tries to suppress background hiss, like a hiss gate.[coll=Latest] +DeNoise can work as a multiband gate and as a wild effect.[coll=Recommended,Latest] Density is a Swiss Army Knife of saturation/antisaturation.[coll=] Density2 is a different color for Density, some old code I had that people wanted.[coll=Latest] DeRez is an analog-style bit and sample rate crusher with continuous adjustments.[coll=]