/ADAA

Experiments with Antiderivative Antialiasing

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Anti-derivative Antialiasing

Build Status License

This repository contains an in-progress exploration of anti-derivative antialiasing (ADAA), a method for reducing aliasing artifacts in nonlinear audio processing without the use of oversampling. The goal is to be able to compare the effectiveness and computational cost of using different ADAA algorithms, in a practical context.

Currently, this repo contains an audio plugin (VST3/AU) that implements 3 effects:

  • Hard clip waveshaper
  • tanh waveshaper
  • Nonlinear waveguide

Each nonlinearity is implemented 6 ways:

  • standard implementation
  • 1st-order ADAA
  • 2nd-order ADAA
  • Lookup-table
  • Lookup-table w/ 1st-order ADAA
  • Lookup-table w/ 2nd-order ADAA

Using these implementations, in conjunction with 2x, 4x, or 8x oversampling, you can choose the optimal algorithm for your use case, in terms of computational cost, sound quality, etc.

There are still a few bugs in this code, so please bear with me, as I continue working on this code. In the future, I would like to also include examples of nonlinear Wave Digital Filters using ADAA. Any and all contributions are welcome!

Installing

To install the plugin, download the correct zip file from the bin/ folder. After extracting the zipped files, you may either run the standalone executable directly, or copy the plugin binary into the correct directory for your plugin format.

Building

To build from scratch, you must have CMake installed.

# Clone the repository
$ git clone https://github.com/jatinchowdhury18/ADAA.git
$ cd ADAA

# initialize and set up submodules
$ git submodule update --init --recursive

# build with CMake
$ cmake -Bbuild
$ cmake --build build --config Release

Literature

License

Antiderivative Antialiasing is open source, and is licensed under the BSD 3-clause license. Enjoy!