#signal #oscillator #dsp #snythesizer

periodicsynth

适用于正弦、方波、三角波、锯齿波的简单周期函数合成器,具有任意频率

7个版本

0.1.6 2020年5月15日
0.1.5 2020年5月15日
0.1.2 2019年11月10日

531音频 中排名

每月 21 次下载

ISC 许可证

5KB

periodicsynth

一个周期波形发生器,它调用任意函数以生成任意采样率的波形,并将其转换为(0..1)之间的时间位置,提供给发生器。

默认提供一些函数(例如,正弦、余弦、方波、空值)。要实现一个,请遵循以下语法

struct YourData;  // v  you can use your own type.
fn gen(t: f64, dat: YourData) -> f64 { 1.0 }

使用默认函数打包(sin)

use periodicsynth::{synth, sin};

fn main()
{ let samp = synth(sin, &mut 440f64, 8000); }

使用我们自己的手动编写的函数

use periodicsynth::synth;

struct YourData;  // you can use any type at here.
fn gen(t: f64, dat: YourData) -> f64 { 1.0 }

fn main()
{ let samp = synth(gen, &mut YourData{}, 8000); }

动机

WebAudio API的OscillatorNode可以生成具有不同函数的周期波形。目前还没有这样的东西,因此创建了它来做到这一点,甚至更进一步,通过允许最终用户定义自定义函数来生成波形。

无运行时依赖