#dsp #graph #modular #io #graph-node

dsp-chain

提供Node特质和Graph类型,用于在dsp图中串联音频发生器/处理器

29个版本 (11个重大变更)

使用旧版Rust 2015

0.13.1 2016年6月8日
0.12.0 2016年2月26日
0.10.0 2015年12月28日
0.9.0 2015年10月31日
0.4.5 2015年3月26日

#57 in #modular

Download history 40/week @ 2024-04-15 30/week @ 2024-04-22 40/week @ 2024-04-29 33/week @ 2024-05-06 39/week @ 2024-05-13 35/week @ 2024-05-20 27/week @ 2024-05-27 30/week @ 2024-06-03 23/week @ 2024-06-10 30/week @ 2024-06-17 37/week @ 2024-06-24 13/week @ 2024-07-08 32/week @ 2024-07-15 30/week @ 2024-07-22 27/week @ 2024-07-29

每月102次下载
7个crate使用(其中6个直接使用)

MIT许可

36KB
442

dsp-chain 构建状态 Crates.io Crates.io

一个用于串联多个音频dsp处理器/发生器的库,用Rust编写!

dsp-chain的应用场景包括

  • 设计效果。
  • 创建音频混音器。
  • 制作采样器。
  • 为DAW编写dsp后端。
  • 任何类型的模块化音频合成/处理。

文档

API文档在此!

用法

以下是它的样子

// Construct our dsp graph.
let mut graph = Graph::new();

// Construct our fancy Synth and add it to the graph!
let synth = graph.add_node(DspNode::Synth);

// Add a few oscillators as inputs to the synth.
graph.add_input(DspNode::Oscillator(0.0, A5_HZ, 0.2), synth);
graph.add_input(DspNode::Oscillator(0.0, D5_HZ, 0.1), synth);
graph.add_input(DspNode::Oscillator(0.0, F5_HZ, 0.15), synth);

// Set the synth as the master node for the graph.
// This can be inferred by the graph so calling this is optional, but it's nice to be explicit.
graph.set_master(Some(synth));

// Request audio from our Graph.
graph.audio_requested(&mut buffer, settings);

这里有两个使用dsp-chain创建基本合成器和振荡音量的工作示例

将dsp-chain添加到Cargo.toml依赖项中,如下所示

[dependencies]
dsp-chain = "*"

依赖项

~2MB
~22K SLoC