2个版本
0.1.1 | 2022年12月20日 |
---|---|
0.1.0 | 2022年12月20日 |
#630 in 音频
52 个月下载量
18KB
187 行
Aych-Delay
Aych-Delay是一个基于Waves的H-Delay模型的效果器。它将延迟效果应用于音频数据,并包括反馈、ping-pong、宽度控制和低通/高通滤波等功能。
免责声明
这个项目是我为了满足个人需求而开始的。我一直想用Rust编写音频软件,重新创建H-Delay似乎是一个有趣的挑战。我并非DSP专家,我相信代码中还有很多可以改进的地方。如果您有任何建议,请随时提出问题或提交拉取请求。
安装
要在您的Rust项目中使用Aych-Delay,请将以下内容添加到您的Cargo.toml
文件中
[dependencies]
aych_delay = "0.1.1"
用法
要使用Aych-Delay,请创建一个具有所需设置的Delay
结构体实例,并在您的音频数据上调用process
方法
use aych_delay::{Delay, Settings};
let mut delay = Delay::new(Settings {
delay_time: 166.66,
feedback: 0.75,
width: 0.5,
lowpass_filter: 22000.0,
highpass_filter: 300.0,
dry_wet_mix: 0.5,
output_level: 0.75,
..Settings::default()
});
let mut delay = Delay::new(settings);
let input: &[f32] = &[...];
let mut output: &mut [f32] = &mut [...];
delay.process(input, output);
您还可以使用Settings
结构体的default()
方法来获取一组默认值
let settings = Settings::default();
let mut delay = Delay::new(settings);
示例
examples
目录包含使用rodio
库和Aych-Delay的基本示例,以播放带有插件的应用程序的声音文件。要运行示例,请使用以下命令
cargo run --example basic <audio_file>
过滤器
Aych-Delay包括使用TPTOnePoleStereo
结构体实现的低通和高通滤波器。这是一个“拓扑保留变换”单极滤波器,源自Zavalishin和Pirkle的工作,并是SOUL项目中滤波器的实现(ISC许可证)。
许可证
Aych-Delay遵循MIT许可证。有关更多信息,请参阅LICENSE
文件。