It uses a pretty simple transient detection using peak detection, and a simple tanh soft clipper at the end in case the boosted transients get too high. Take it out for a spin. It's definitely worth more than the plethora of free delay and chorus plugins out there that pretty much do nothing.
Yeah, it's that bad bro, it's actually called "My First Plugin". I've attached the dll in case anyone wants to give it a go. Again, it's Win 64bit VST2. Knobs are from left to right:
1. amp signal in. This can be turned all the way down to just hear the transient boosts.
2. thresh (to detect attack)
3. slope (of release) It's like the "curve" param for an ADSR env, gives it an exponential curve. So higher = pointy attacks, rapid release.
4. release (release time)
5. amp of the attack transient boosts
Upon loading the VST, I'd suggest turning knob 1 all the way down (as labeled above), turn 5 to about 12 o'clock, and mess with knob 2 'till it starts picking up some attacks. Then tune knob 3 and 4 so the transient bursts are to your liking. (you want just clicks? or maybe a bit longer release) Then tweak knob 1 and 5 to do a dry/wet balance. Knob 1 and 5 aren't mixing dry and wet signals, it's actually blending the amp control signals.
It's a strange set of params I know, and the layout is all like "whatever", but anyway, this is the "test code" world I guess. Let me know what you think.
Disclaimers:
1. I don't do any oversampling, so it will introduce some aliasing.
2. The peaks are meant to shoot through the roof, and tanh soft clipper is only there to tame it just a bit. (this WILL cause some distortion and aliasing)
3. This is unreleased, pre-alpha, experimental stage software. Please use at own risk. I can't be held responsible for:
- Unplanned babies
- Broken monitor speakers
- Any broken components within the audio signal route due to fantasticaly sharp transients
- Fried PC/mac components
- Frustration or decrement in general wellness
- Loss of confidence in past mixes due realizing that transients can be much clearer
- Any bodily harm, or any physical insult leading to death
- Any monetary loss due to projects using this effect. I mean, if you throw in an effect this early in dev stage in a commercial project, that's your call man, and your fault man.
You can have this dll "as is". Obviously, I'm not distributing the source, since it's like just 20 lines long. But anyway, you can have this dll, do whatever you please with it. Commercial, nonprofit, out of sheer curiosity, or for self pleasure, erotic or otherwise. You cannot redistribute the DLL on its own or as a part of a collection of any kind other than through a link to this page.
The DSP code is like this long.. I mean, it's so short and insignificant right...
Code: Select all
double in1abs = (*in1 < 0 ? -*in1 : *in1);
double in2abs = (*in2 < 0 ? -*in2 : *in2);
delta = (in1abs+in2abs)/2. - prevval;
//delta = (delta < 0 ? -delta : delta);
smooth = delta - prevdelta;
if (delta > mThresh) {
// rise side
smooth = prevsmooth + (delta-prevsmooth)*upease;
}
else {
// drop side
smooth = prevsmooth * mRelease;
}
prevdelta = delta;
prevsmooth = smooth;
prevval = (in1abs + in2abs) / 2.;
*out1 = tanh(*in1 * (mGain + pow(smooth, mSpike) * mSnapgain));
*out2 = tanh(*in2 * (mGain + pow(smooth, mSpike) * mSnapgain));;
I'll also have to see if there's a convenient state variable filter that I can use so I can do a dual band pass filter to do a simple speaker emulation. I already have one implemented in synthedit. Just need 2 bands, one tweeter band and one bass band, and apply different dynamics on them and it creates lovely "drums through the cabinet" type sound.