Rust - Augmented Audio Libraries
Experiments trying to use Rust for audio programming.
Consider anything in this repository a draft.
Most of this repository is published under the MIT LICENSE.
Some directories which contain full applications are licensed under the AGPLv3 license. Check the LICENSE
and README.md
files.
See docs/misc/WEB_GUI.md
.
The project is set-up with a cargo workspace. Running cargo
commands at the root directory should compile all crates
sharing caches.
To build the whole project run:
git submodule update --init
cargo build
To run tests:
cargo test
On OSX you might want to run ./scripts/test.sh
instead of that command.
Build outputs should be on target/debug
or target/release
.
Package VSTs using ./scripts/dev.sh build
. This will build all the packages, build specific crates’ outputs with./scripts/dev.sh build <path>
.
See instructions on their READMEs under crates/apps
.
Since this is bringing in all the possible rust crates, you’ll need to install quite a few dependencies.
See .github/workflows/default.yml
for a list of what’s needed on Ubuntu.
cargo clippy
Benchmarks using criterion
will be slowly added. In order to run benchmarks use:
cargo bench
cd ./crates/oscillator
cargo instruments -t time --bench sine_oscillator_benchmark -- --bench
NOTE I couldn’t get this to work on macOS
Flamegraphs can be generated using cargo-flamegraph
:
cargo install flamegraph
The tool can then be used to run a criterion benchmark and generate a flamegraph:
cargo flamegraph --bench sine_oscillator_benchmark -- --bench
See docs/monorepo-tooling/SNAPSHOT_TESTING.md
.