#同步 #原子 #GUI #增强 #应用 #音频线程

augmented-playhead

在原子操作的基础上实现了一些额外的类型和工具,用于构建音频线程/ GUI同步

13个版本 (7个重大更新)

0.8.0 2024年1月17日
0.7.0 2023年5月22日
0.6.0 2023年4月19日
0.5.0 2023年3月22日
0.1.0-alpha.42022年3月25日

#269 in 音频


audio-processor-metronome中使用

MIT许可证

96KB
1.5K SLoC

增强音频库

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


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

将此存储库中的任何内容视为草稿。

⚠️ 目标
  • 目标1: 学习并享受乐趣
    • 这是目标#1,并且如果你最终依赖此存储库中的任何一个crate,那么牢记这一点非常重要。
  • 目标2: 构建辅助开发的工具
  • 目标3: 在Rust中实验音频软件GUI

许可证

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

某些包含完整应用的目录根据AGPLv3许可证发布。请参阅LICENSEREADME.md文件。

📖 文档

⬇️ 二进制下载

💬 博文


📸 屏幕截图

Sequencer screenshot

Metronome screenshot Test plugin host screenshot Looper screenshot

👩 网页GUI

请参阅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

调试功能

依赖项

~0.9–3MB
~61K SLoC