/juce-rs

An example audio plugin built with JUCE6 and Rust

Primary LanguageCMake

Distortion-rs

Build Status

This repository contains an example audio plugin built using JUCE and Rust.

Building

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

About

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.

License

@TODO