Despot - hard hitting ZDF compressor with antialiasing - development snapshots
-
- KVRist
- Topic Starter
- 40 posts since 16 May, 2015
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
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.
- KVRAF
- 3303 posts since 6 Jul, 2012 from Sick-cily
Why only 64 bit?
And... Working only with REAPER?
And... Working only with REAPER?
-
- KVRist
- Topic Starter
- 40 posts since 16 May, 2015
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.
I have x64 hosts only. I'll make x86 build ASAP if you're interested.
-
- KVRist
- Topic Starter
- 40 posts since 16 May, 2015
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.
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.
- KVRAF
- 1908 posts since 7 Jan, 2004 from Earth
- KVRAF
- 3303 posts since 6 Jul, 2012 from Sick-cily
Tried on a rock acoustic drums... Very good (reminds me the Abbey Road TG12413 Limiter!)... BRAVO! But... As Totolitoto said, probably need a GUI, with some meters...
Let us know and Good Luck!
Let us know and Good Luck!
-
- KVRist
- Topic Starter
- 40 posts since 16 May, 2015
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.
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.
-
- KVRAF
- 7420 posts since 17 Feb, 2005
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.
-
- Banned
- 12368 posts since 30 Apr, 2002 from i might peeramid
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,
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.
-
- Banned
- 12368 posts since 30 Apr, 2002 from i might peeramid
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.
-
- KVRist
- Topic Starter
- 40 posts since 16 May, 2015
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).
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.