2个版本
0.1.1 | 2024年1月8日 |
---|---|
0.1.0 | 2024年1月7日 |
#299 in 音频
105KB
1K SLoC
muslib
Rust音乐合成与处理库,灵感来源于Essentia。
它提供了一些简单的算法和实用工具
- (WIP) 和谐音级谱分析 -- HPCP
- (WIP) 反快速傅里叶变换 -- IFFT
- (WIP) 短时傅里叶变换 -- STFT
- 简单的 混音器 用于创建单声道曲目
- 合成器 用于简单的波形
安装
您可以从版本页面下载预构建的二进制文件。否则请参阅构建说明以获取更多详细信息。
Rust crate可以通过crates.io获取。您可以使用简单的命令添加它
$ cargo add muslib
还有可在pypi.org上获得的Python包。您可以使用简单的命令安装它
$ pip install muslib
使用
该项目提供了一个Rust库,可用于其他Rust项目或通过我们的PyO3绑定从Python代码中。
请参阅文档以获取更详细的文档和示例,了解您如何在自己的代码中使用此项目。
开发
构建
您可以使用简单的cargo
命令编译发布版二进制文件。输出将位于target/release
目录中。
$ cargo build --release
要编译Python wheel,请使用maturin
。
$ maturin build
项目所有依赖项均列在Cargo.toml
文件中。
文档
您可以使用简单的cargo
命令生成文档。输出将位于target/doc
目录中。
$ cargo doc
文档还应通过docs.rs提供。
测试
$ cargo test
待办:创建构建CI并将其链接到此处
示例
您可以使用以下命令从 examples
目录运行Rust示例:
$ cargo run --example [name] [args]
在那里,您还会找到Python示例,包括比较muslib和Essentia在简单任务中的使用的示例。
一些在开发过程中经常手动运行的测试脚本和助手也包含在内。
替代方案
其他有趣的音频DSP Rust项目
许可协议
与Essentia相同的精神,本项目采用AGPL-3.0许可协议。
Copyright (C) 2023 wykwit
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
依赖项
~7–13MB
~205K SLoC