I’m happy to announce that Convergence is receiving an update that has been long overdue! This update includes performance improvements as well as a couple of new features/improvements.
Higher order Frequency crossovers!
This has been a major improvement in the usability of Convergence and it is the one I’m most excited about. You may have noticed when soloing bands that there is quite a lot of cross-talk between adjacent bands. This is because convergence was utilizing 2nd order filters to create the crossovers. 2nd order filters only create a -6db/octave roll-off on the center frequency. These filters have been updated to 16th order filters! This means that the roll-off is now -48db/octave which will make a huge difference when trying to deal with a specific range of frequencies. Using higher order filters is more CPU intensive, however I think with the gains listed below, this will not be an issue at all.
An internal soft-bypass has been added to Convergence which you will find at the upper left corner. This has been added since some audio hosts can cause popping or clicks when bypassing plug-ins. There isn’t much else to say about this!
You may have noticed that Convergence can be very greedy with resources. This made it somewhat difficult to run several instances of it simultaneously. Addressing this issue was one of my primary goals this year.
I’ve made changes to both the UI layer and the audio processing layer to improve performance. These are the following changes.
Dplug Canvas API
The Dplug Canvas API is a new addition to the plugin framework that powers most of Cut Through Recordings’ plugins. Utilizing this has given me an opportunity to simplify several of the 2D controls used in Convergence and also improve their performance.
Frequency Analyzer Changes
Some of the biggest gains have come from this. Simplifying how this display is calculated and drawn on to the screen saves numerous cycles and you should see some major improvements in this regard. There were a lot of wasted CPU cycles spent calculating data that could be simplified in this display. It also takes advantage of the Dplug Canvas API as mentioned above.
Gain Reduction History Display
This turned out to be where the biggest gains were to be had in performance. This was something I didn’t expect. It turned out that this control was forcing the entire UI to updated on every audio processing call. Refreshing the entire UI is a very processor heavy task. Removing this single update call has reduced CPU usage of the UI thread by as much as 40% when testing on my own system. This is a huge gain!
So what next?
A version 2.0 of Convergence is in the works. In fact this updated began as a v2.0, but I decided that these changes were too important to hold back until I can finish v2.0. In the next major version I plan to address some issues that cant be fixed or changed without breaking user sessions. These include adjusting attack/release times to make them more adaptive to the frequency bands, as well as tackling how frequency bands are managed. I’m planning to add an interface to easily add and remove bands at any position rather than only being able to add them or remove them using the arrow buttons.
Thanks for taking time to read this! I hope you will try out the new changes and please feel free to email with any questions or suggestions at firstname.lastname@example.org!