Been working on a project that required a bit of compression to some effects to help them sit better in the mix. I thought I'd post it up here in case it's of use to anyone.
[e_mcompressor] has adjustable threshold and ratio controls. Attack/release is currently set to 40ms (I'll probably add some controls for them in the future as it's nice to has a longer release time for some material).
It's currently piecewise linear (i.e. it starts compressing linearly over the threshold). I'm looking to change it to a polynomial function for a bit of a softer knee setting, and maybe some nice saturation near the top.
It's also currently only in mono - would be nice to have a stereo-linked version as well I guess.
[e_compressorgui] is an interface for the compressor to allow easy manipulation of the controls and to give some visual feedback. It's not needed for the compressor to work so usually I remove it after use.
Check the _example folder for a... uh example!
Let me know if some abstractions don't create as there are some dependancies on rjlib (which is also included).