As a programmer who develops open source audio plugins, I suppose it was only a matter of time…

Let’s say that you’re an audio plugin developer, and one day you decide that you would like your plugins to support Linux. These days, that decision makes a lot of sense, given the growing number of music producers using Linux, and the high-quality DAWs that the Linux users of today can choose from, including Reaper, Bitwig, and Ardour.

Popular plugin formats like Apple’s Audio Unit (AU) and Avid’s Audio Extensions (AAX) are obviously out of the question, as the former is restricted to Apple devices, and the latter only work with other Avid software (namely Pro Tools). The next logical…


A couple months ago, I was doing some research into emulating bucket-brigade devices for creating analog-style delay-lines, when I ran into a rather interesting paper, written by Martin Holters and Julian Parker.

Although bucket-brigade devices (BBDs) are made up of analog circuits, in concept they behave like a fixed-length digital delay-line with a variable sample rate which determines the length of the delay created by the device. One of the primary challenges of emulating BBDs is performing fast sample rate conversion (SRC) to match the effective sample rate of the BBD.

A simple bucket-brigade device circuit

Holters and Parker found a rather brilliant solution to…


Over the past few years, the world of audio effects has seen an increasing interest in the use of neural networks to process audio in real-time. As a brief introduction here are a handful of academic papers, commercial products, and open-source projects that employ neural networks to create interesting audio effects:


For the past two years, I have been actively developing ChowTape, an audio plugin designed to emulate the sound of reel-to-reel analog tape. One of the reasons I’ve enjoyed working on this project is that it provides me an opportunity to implement advanced, cutting-edge signal processing techiques, in service of user-friendly, musically interesting software. In this article, I’d like to talk about a new feature that was recently added to the plugin: a specific type of neural network known as a State Transition Network (STN). …


In audio signal processing, it is often useful to use nonlinear functions for things like saturation, wavefolding, and more. While nonlinear functions can create interesting sounds, they often create difficulty in the world of signal processing, particularly by invalidating many of the handy mathematical theorems that hold up in the world of linear signal processing. One particularly nasty issue that arises when using nonlinear functions on digital audio is aliasing.

In this article, we’ll give a brief discussion of what aliasing is, and how it is typically dealt with. Then, we’ll introduce a relatively new anti-aliasing technique called Antiderivative Anti-Aliasing…


In audio signal processing, it is often neccesary to process an audio stream with an impulse response (IR), using a technique known as FIR filtering. For long IRs, it is typical to use an FFT-based convolution algorithm to implement the filter in the frequency domain, however for shorter IRs these filters are often implemented in the time domain. As with all real-time audio processing, it is desirable to make these filtering algorithms as fast and efficient as possible. With that in mind I’ve decided to develop a small framework to compare the performance of different FIR filtering algorithms.

Since I…


Recently, I released the ChowPhaser audio plugin, an open-source phaser effect based loosely on the Schulte Compact Phasing ‘A’. I thought it might be cool to take a look under the hood of ChowPhaser and show what sets it apart from the average digital phaser effect.

As usual, this blog can also be read as a Jupyter Notebook.


As an audio programmer, I’ve been using the JUCE framework for professional, personal, and academic projects, for about four years now. Over the past couple years, I’ve heard plenty of negative comments about JUCE from the community and from my colleagues. While many of these complaints are valid, I wanted to take some time to outline some of the reasons why I use JUCE.

Building a project with the Projucer

Portability

When I started out as an audio programmer, my first framework that I tried was the VST SDK. As a relatively inexperienced C++ programmer, I had a lot of difficulty getting started, and ended up spending…


Previously on this blog, we’ve looked a creating digital models of several interesting nonlinear systems. One of the most sophisticated nonlinear systems that we’ve looked at is hysteresis.

This hysteresis model is also the engine for an analog tape machine plugin that I develop and maintain. Recently, some users asked me for a mode of the plugin that could run without oversampling, in order to reduce CPU footprint. This request led me to an interesting discretization concept known as the “alpha transform”, which I thought could be a good teaching moment as well.

As always, this article can also be…


In this article, we will briefly discuss modal signal processing, and show how we can use ideas from the modal approach to “fix” drum sounds.

This article can also be read as a Juypter Notebook.

Modal Signal Processing

In signal processing, it is often useful to describe a system by looking at the “modes” or resonant frequencies of the system. Modes are well known in the field of room acoustics, where any set of parallel walls will create a mode at the frequency corresponding to the distance between the walls. …

Jatin Chowdhury

Jatin Chowdhury is a student.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store