3个版本 (1个稳定版)

1.3.0 2023年3月22日
0.3.0 2023年3月22日
0.2.0 2022年9月29日

#7#vst

每月下载量36次
4个crate中使用(通过audio-processor-standalone-gui

MIT许可证

53KB
164

增强型音频库

默认 Linux 基于Web的构建 覆盖率状态 关于测试覆盖率的说明


尝试使用Rust进行音频编程的实验。

请将此存储库中的所有内容视为草稿。

⚠️ 目标
  • 目标1: 学习并享受乐趣
    • 这是目标#1,如果你最终依赖于此存储库中的任何crate,请务必记住这一点
  • 目标2: 构建辅助开发的工具
  • 目标3: 在Rust中进行音频软件GUI的实验

许可证

此存储库的大部分内容在MIT许可证下发布。

包含完整应用程序的一些目录在AGPLv3许可证下发布。请检查LICENSEREADME.md文件。

📖 文档

⬇️ 二进制下载

💬 博客文章


📸 屏幕截图

Sequencer screenshot

Metronome screenshot Test plugin host screenshot Looper screenshot

👩 网页图形用户界面

请参阅docs/misc/WEB_GUI.md

🛠 Rust 库和工具

工作空间和构建

该项目使用 cargo 工作空间设置。在根目录下运行 cargo 命令应编译所有共享缓存的 crate。

要构建整个项目,请运行

git submodule update --init
cargo build

要运行测试

cargo test

在 OSX 上,你可能需要运行 ./scripts/test.sh 而不是该命令。

构建输出应在 target/debugtarget/release 上。

打包应用程序和 VST

使用 ./scripts/dev.sh build 打包 VST。这将构建所有包,并使用 ./scripts/dev.sh build <path> 构建特定 crate 的输出。

循环器、节拍器和其它(flutter / macOS 构建)

请参阅 crates/apps 目录下的 README 中的说明。

在 Linux 上构建

由于这引入了所有可能的 rust crate,你需要安装相当多的依赖项。

请参阅 .github/workflows/default.yml 了解 Ubuntu 上所需的列表。

代码风格检查

cargo clippy

基准测试

将使用 criterion 慢慢添加基准测试。要运行基准测试,请使用

cargo bench

在 macOS 上进行性能分析

https://crates.io/crates/cargo-instruments

cd ./crates/oscillator
cargo instruments -t time --bench sine_oscillator_benchmark -- --bench

从基准测试生成火焰图

注意 我无法在 macOS 上使这工作

可以使用 cargo-flamegraph 生成火焰图

cargo install flamegraph

该工具可以用来运行 criterion 基准测试并生成火焰图

cargo flamegraph --bench sine_oscillator_benchmark -- --bench

快照测试音频处理器

请参阅docs/monorepo-tooling/SNAPSHOT_TESTING.md

调试功能

依赖关系

~16–40MB
~647K SLoC