#fft #music #processing #transform #synthesis #class #pitch

muslib

Rust音乐合成与处理库,灵感来源于Essentia

2个版本

0.1.1 2024年1月8日
0.1.0 2024年1月7日

#299 in 音频

AGPL-3.0-or-later

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