In almost all analog modeling algorithms, we solve a (non-)linear system they require at some point to solve , with given and . Depending on the size of the matrix and its characteristics, computing an inverse can be costly and may incur numerical problems. Let’s tackle cost in this discussion.
I create a model of the Boss SD1 and the Ibanez TS9 some time ago. Now it’s time to get on modelling another pedal, the famous Boss MT2 Metal Zone.
There are many pages online that also analyse this pedal, but I’d like to start from the schema, split in independent pieces and analyze them with my Modelling Lite tool. The end result will probably end up as a new plugin, but this is currently outside the scope of this new subserie.
ATK is updated to 3.1.0 with heavy code refactoring. Old C++ standards are now dropped and it requires now a full C++17 compliant compiler.
The main difference for filter support is that explicit SIMD filters using libsimdpp have been dropped while tr2::simd becomes standard and supported by gcc, clang and Visual Studio.
Last month, I presented my latest work on Audio ToolKit at ADC 2018, namely how I turned a SPICE netlist to a filter.
It is now time to present some of the results here.
Today, I’m presenting at the ADC my work on analog modelling for the past year.
I will make a more detailed post later this year, but I’d like to put some teasers here. SPICE net lists are an efficient way of representing electronics circuits and there are several very good free and paying simulators. Unfortunately, they are not easy to integrate in a VST plugin.
Audio ToolKit now has a sister project around this topic. The lite version is also licensed under the BSD and can generate a dynamic filter of a net list. The full project is now also capable of generating static filter, with a source file (and compiling it in memory) that can be manually tuned.
Future work on this project will include different solvers for the static filter, as well as a tuner that will be able to drop entries in the Jacobian (full entries or component contributions for a given pin) in the Newton Raphson solver.
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.
After my previous post on SPICE modelling in Python, I need to use a good support example to go up to on the fly compilation in C++. This schema will also require some changes to support more than simple nodal analysis, so this now becomes Modified Nodal Analysis with state equations.
I’m happy to announce the update of ATK Side-Chain Compressor based on the Audio Toolkit and JUCE. It is available on Windows (AVX compatible processors) and OS X (min. 10.9, SSE4.2) in different formats.
This update changes storage format and allows linked channels to be steered by a mix of power coming from each channel, each passing through its own attack-release filter. It enables more creative workflows with makeup gain specific to each channel. The rest of the plugin works as before, with an optional Middle/Side processing as well as side-chain working either on each channel separately or in middle/side.
This plugin requires the universal runtime on Windows, which is automatically deployed with Windows update (see tis discussion on the JUCE forum). If you don’t have it installed, please check Microsoft website.
More than a year ago, I started playing with the Bela board. At the time, I had issues compiling Audio ToolKit with clang. The issue was that the gcc shipped with the Debian image the BeagleBoard used was too old and didn’t fully support C++11. The one that ships now is GCC 6, which is even C++14 compliant. Meaning that everything is available to build Audio Toolkit with Python support.