2个版本
0.1.1 | 2024年4月16日 |
---|---|
0.1.0 | 2024年4月11日 |
#205 in 音频
19KB
225 行
🎹 music-math-rs 🎹
此crate包含处理音乐/音频/DSP在Rust中的常用函数和辅助工具。
几乎所有DSP、音频或音乐软件都使用了这些函数的变体,这里的目的是提供一套经过良好测试、基准测试和可靠的函数集,可以在不同的项目中重复使用。
其中一些函数灵感来自计算机音乐环境,如SuperCollider、Max/MSP、PureData等,但其他一些只是处理音频、音乐或DSP时非常通用或有用的代码片段。
它包含以下模块和函数
midi
:用于在MIDI音符编号和频率之间转换、转调等的函数。get_midi_note_name
:获取MIDI音符编号的名称。get_midinote_from_name
:获取音符名称的MIDI音符编号。note_name_to_octave_position
:获取音符名称的八度位置,例如"D" = 2。octave_position_to_note_name
:获取八度位置的音符名称,例如2 = "D"。to_frequency
:将MIDI音符编号转换为频率。transpose
:安全地转调MIDI音符编号,确保它在范围内。
scaling
:用于在不同范围之间缩放值的函数,其中包括db和振幅、linlin和linexp之间的转换等。linlin
:线性地将值从一个范围缩放到另一个范围。linexp
:线性地将值从一个范围缩放到另一个范围,但具有指数曲线。dbamp
:将分贝值转换为振幅值。ampdb
:将振幅值转换为分贝值。
binaryops
:clip
:将值夹在最小和最大值之间。fold
:将值夹在最小和最大值之间。wrap
:将值夹在最小和最大值之间。
interpolation
:linear
:在两个值之间进行线性插值。hermite
:在两个值之间进行三次Hermite插值。
有关更多信息,请参阅文档。
开发
只需要just
来启动所有工具和配置。
通过安装此工具,您将设置一个提交前钩子,在提交工作之前运行所有测试和检查,它会自动格式化代码,并且通常不允许您提交未文档化或不安全的代码,以及其他事项。
cargo install just
just init # setup repo, install hooks and all required tools
运行:
just run
测试:
just test
基准测试:
just benchmark
在提交工作之前:
just pre-commit
查看所有可用命令:
just list
贡献代码:
所有贡献都受欢迎——这可能是代码的修复、错误报告、文档改进等。
Clippy 将强制执行大多数代码风格规则,但您也可以运行 cargo fmt
来格式化您的代码。
请注意,如果您添加或修改代码,您还应该为该代码添加或修改测试,并运行基准测试(在代码更改前后)以检查性能影响。
许可证:
本项目许可协议为以下之一:
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
贡献:
除非您明确声明,否则您提交给本项目并由 Apache-2.0 许可证定义的工作,将按照上述协议双重许可,没有任何额外条款或条件。
依赖项:
~155KB