#delay #effect #dsp

aych-delay

基于Waves的H-Delay模型的效果器

2个版本

0.1.1 2022年12月20日
0.1.0 2022年12月20日

#630 in 音频

Download history 17/week @ 2024-07-01 52/week @ 2024-07-29

52 个月下载量

MIT 许可证

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文件。

无运行时依赖项