For the past while we’ve been working on a new filter plugin called Pan Filter Tool (PFT). The goal of the project is to create a tool that lets you modulate filters differently depending on which ear’s audio is being processed. It has four modulators and four macros that can be applied to nearly every parameter in the plugin. Each modulator can be swapped out dynamically for any other type of modulator.
Generally I try to have a couple technical goals when I start working on a new project. Here’s the big ones for PFT:
Create a flexible and powerful modulation system
This was the main one. I picked up NI Massive around 2014 and was immediately blown away. The control and complexity Massive’s modulators add to the sound design process is incredible. I’ve wanted to implement something similar ever since I started writing plugins. Coercion had a basic modulation system but PFT needed something bigger and more powerful.
Dynamic modules
General wisdom on using dynamic memory in your audio callback is don’t. There are a lot ways you can mess it up if you’re not careful. The filters and the modulators in PFT are all dynamically allocated and can be changed seamlessly during audio processing. Its a cool challenge and super useful feature for a tool like PFT.
Model Driven User Interactions
Each plugin since Fumigate has used some kind of a model/view/controller architecture going on in its UI. They’re all pretty basic and mostly just communicate parameter value changes. I wanted to go bigger this time and drive the entire plugin with a handful of models that give the user precise control over the plugin’s parameters and modulation system.
PFT really got started around September 2024. Its come a long way since the first UI mockups.
The next couple posts are gonna be a collection of random discussions about some of the cooler parts of PFT and its development.
