This repository contains an example audio plugin built using JUCE and Rust.
To build the plugin, you must have Rust abd CMake installed. You
also need cbindgen
, which
can be installed with the command:
$ cargo install --force cbindgen
Next, clone the repository and initialize submodules:
$ git clone https://github.com/jatinchowdhury18/distortion-rs.git
$ cd distortion-rs
$ git submodule update --init --recursive
Finally, build the project using CMake:
$ cmake -Bbuild
$ cmake --build build --config Release
I was inspired by Ian Hobson's freeverb-rs project to start learning Rust for audio signal processing. The wonderful Rust audio community has developed the vst-rs crate to build audio plugins entirely in Rust, but unfortunately plugin GUI support in Rust is limited.
The distortionlib
folder is a Rust crate which builds to a static
library containing all necessary DSP functionality. The src/
folder
contains JUCE/C++ code that builds the plugin GUI, manages the plugin
parameters, and connects to the Rust library. Since JUCE6 supports
building with CMake, this project uses Devolution's
CMakeRust tool to integrate
the Rust toolchain into the CMake build process.
@TODO