Audio ToolKit started with only C++11 a long time ago, and now with version 3.1, it’s going to be full C++17.
I started taking a heavier interest in clang-tidy a few months ago, as I was looking at static analyzers. I found at the time that it was quite complicated to work on clang internal AST. It is a wonderful tool, but it is also a very complex one. Thankfully, the cfe-dev mailing list is full of nice people.
I also started my journey in the LLVM/clang land with the help of this blog post.
ATK is updated to 2.3.0 with major fixes and code coverage improvement (see here). Lots of bugs were fixed during that effort and native build on embedded platforms was also fixed.
CMake builds on Linux don’t have to be installed before Python tests have to be ran. SIMD filters are now also easier to implement.
ATK is updated to 2.2.0 with the major introduction of vectorized filters. This means that some filters (EQ for now) can use vectorization for maximum performance. More filters will be introduced later as well as the Python support. Vector lanes of size 4 and 8 are supported as well as instruction sets from SSE2 to AVX512.
This is also the first major release that officially supports the JUCE framework. This means that ATK can be added as modules (directly source code without requiring any binaries) in the Projucer. The caveat is that SIMD filters are not available in this configuration due to the requirement for CMake support to build the SIMD filters.
As some may know, I’ve switched from wdl-ol to JUCE 5 for my free plugins. In the past, I had to modify by hand all the projects created by the Projucer. And each time JUCE is updated, I need to add these changes to the generated project.
On the develop branch, and in the next minor release ATK 2.1.2, modules for the Projucer will be available. This will enable an easier integration of ATK in your project, as you will “just” need to add these modules to the Projucer (and some additional include files to make ATK compliant with JUCE hierarchy).
There are currently 11 new modules (shameless comparison, that’s far more than the new DSP module, even if there are some filters than I’m missing, but feel free to propose a pull request with new features!).
See the explanation on the release branch and let me know what you think: https://github.com/mbrucher/AudioTK/tree/develop/modules/JUCE
ATK is updated to 2.1.0 with a major refactoring of the Python wrappers and extensive testing of them. New filters were also added to support more complex pipelines (mute/solo and circular buffers for real-time spectrum displays) and Audio ToolKit provies now a CMake configuration file for easier integration in CMake projects.
Vinyl has become trendy again, and as such, I’ve been asked to add some new filters in Audio ToolKit. Here is a small dive in RIAA land.
Recently, I’ve struggled with releasing perfect plugins. There were some glitches in the last 2 plugins that could have been avoided easily with more testing.
So this is a call for people who are interested in my plugins. You can join the mailing list, share your ideas of the current plugins, and the future ones, about what can be made better, how it can be better…