I am currently working on a plugin and I need to be able to edit transients. I studied the theory behind transient shaping, and to implement that I would need to be able to code an envelope follower
Here is an extract of my researches around the topic:
Basically, once you have two envelopes (same release times but different attack times), you can substract them and then use the difference to boost/reduce the original signal.
I coded a basic implementation with Cabbage and it works very well on plain drums, but when you use it with more complex audio files it sounds horrible: the resulting waveform over-saturates & become really messy.
I have two questions regarding the algorithm behind:
- Do you know how I could edit the envelope so it has more logarithmic/exponential/linear slopes? I am not sure about how to do it… maybe by simply computing the exponential/logarithm of the follow2 result? Or I can multiply the envelope by the signal and then apply filters (I saw plugin makers using RC filters to smooth the result)
- Do you know why the song saturates? I tried to balance the signal after & before the multiplication without success…
Here are the steps involved:
Here are the top 2 resources I found about this subject:
- discussion around transient shaping algorithms: https://www.kvraudio.com/forum/viewtopic.php?t=360049
- the theory behind SPL transient shapers: https://spl.audio/en/spl-produkt/transient-designer-4-mk2/
Thanks for your help and have a nice day