Despot - hard hitting ZDF compressor with antialiasing - development snapshots

VST, AU, AAX, CLAP, etc. Plugin Virtual Effects Discussion
RELATED
PRODUCTS

Post

Hello.

Some time ago I got an interest in DSP and did a simple compressor by request - it was named Despot, was fully antialiased (don't mistake with oversampling which is only one antialiasing technique) and was capable of ultra-fast attack (less than 0.02 ms). Was planned on releasing it for general public, but the requester was happy enough with unfinished version and I was a little swamped, so postponed this. Early version in the form of Reaper JSFX script was released on Reaper forums.

Recently I returned to development and improved the initial design - envelope follower is a Zero Delay Feedback filter now (phase response is matched with analog prototype). This is very rarely (if ever) done in compressors because of additional CPU hit and mathematical complexity. Liked the results in comparison with traditional envelope follower, so decided to share my work in progress snapshots.

Features:
- Zero Delay Feedback envelope follower
- Antialiasing
- HQ linear phase oversampling (r8brain-free by Voxengo)
- Ultra-fast attack
- Odd harmonics only (no artificial "warmth" and saturation)
- Infinite ratio
- Soft and hard knee
- No flashy GUI
- Stepped controls for exact dialing

UPD5:
1432884729
- linear phase oversampling (r8brain-free by Voxengo)
- extended release range (from 10 ms)

1432633924
- external sidechain support

1432341304
- temporary fix for Ableton Live

1432326119
- stepped nonlinear attack/release scale
- hard and soft knee

1431926336
- user adjustable attack and release
- sample rate scaling - literally any sample rates are supported
- proper low-aliasing ZERO attack

1431740109
- initial release


Notes: muted audio on ratio change is not a bug - most hosts handles latency changes improperly, so consider this an invitation for restarting playback until I work around this and test in a few hosts at least. The same with release lesser than attack.

http://stash.reaper.fm/v/24184/despot-1432884729.zip
Last edited by dekadenz on Sun May 31, 2015 2:15 am, edited 20 times in total.

Post

Why only 64 bit?
And... Working only with REAPER?

Post

Should work with any VST host (theoretically). Checked in Adobe Audition CC and Reaper. Do you have problems running it in something other?
I have x64 hosts only. I'll make x86 build ASAP if you're interested.

Post

I'd happily give a 64-bit AU version a try. :ud:

Post

An x86 version please!

Post

Sure. Did a quick x86 build. It's untested (updated the main post).

http://stash.reaper.fm/v/24102/despot-1 ... 09-x86.zip

Regarding Macs, I have no Mac in my disposition, so will have to set up the emulator and learn how to develop for Mac OS X. It's possible and planned, but in future.

Post

soubnds good thanks! (if in need of a GUI, PM me ;)

Post

Tried on a rock acoustic drums... Very good (reminds me the Abbey Road TG12413 Limiter!)... BRAVO! :clap: But... As Totolitoto said, probably need a GUI, with some meters...
Let us know and Good Luck! ;-)

Post

Thanks for the first feedback, guys, and for the offer.

I think I really should focus on sonics and not looks right now and finish the DSP part first. Even simple GUI coding can take up to 90% of project time. The first version will be GUIless, as planned. But I will consider making the separate GUI version ("non-analog" GUI with some meters and probably GR graph, think of old Waves, like C1 or TC Electronic).

And I will certainly consider the offer for future projects if they will involve something that requires GUI.

2Turello:
Yes, I was influenced by old peak limiters (not brickwall but compressors with high ratio), like Altec or 1176. But it does not emulate anything and has different topology, besides having analog style phase response. It's proudly digital.

BTW if anyone interested in comparison with previous non-ZDF version, JSFX script is on Reaper forums. Just search for Despot.

Post

About attack/release times, you are using the filter to generate the envelopes, correct? The problem is that when using such a high sample rate (like 192khz) the frequency range of the filter is wider than when at 48khz, the filters go from nyquist to 0. It's a matter of scaling the problem to some fixed range over all intended sample rates. You'll need to get the host's current sample rate, and somehow limit the highest tuning frequency to the least intended sample rate, like 44.1khz. If you do this, the results should be the same for low and high sample rates alike, with the exception of aliasing reduction.

Post

it's a neat idea :)

i'm releasing a ZDF delay in a moment.

i am positive no one has done this before ;)

Good Day,
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

Post

i hope the resonance in your envelope follower has the accordant snappy ZDF sound, untroubled by key track transitions or other step modulation.. i haven't heard one like that yet!
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

Post

Just gave it a go and I am impressed. Quite clean and aggressive, not at all dirty, and the pumping is interesting, not at all what I'd expect from a VCA.

Post

2camsr
I mentioned they're fixed because it's easier to solve for fixed coefficients (and will be sufficient for debugging and testing purposes). Of course release version (even next dev snapshots) will have user selectable attack and release and sample rate scaling. This test version also has simplified functions for the same purpose that causes more aliasing than real ones will.

2xoxos
No, it's a non-resonant filter. It does have a feedback (like y = y + k*(x-y) with naive non-ZDF filter), but not resonance of higher order filters. Wanted to try with basic for first. Thought the non-resonant filter won't be much different to non-ZDF, but was wrong so decided to share the results.

By the way, I consider the most "analog" properties of analog compressors the phase response, which makes attack feel nice and the absence of aliasing (harmonics and IMD only). Saturation is a side effect, not essential. So, my goals was as low aliasing as possible and as close as possible to the phase response of an idealized "mathematical" filter (not real one).
Last edited by dekadenz on Sat May 16, 2015 6:56 pm, edited 1 time in total.

Post

Congrats for the name "Despot".

Very good. :tu:

Post Reply

Return to “Effects”