2个不稳定版本
0.2.0 | 2024年1月27日 |
---|---|
0.1.0 | 2023年12月20日 |
#366 in 音频
195KB
4K SLoC
CulSynth库
此库包含CulSynth插件中使用的所有DSP逻辑。有关更多信息,请参阅主仓库的README。
功能
该库包含固定点和浮点实现的各种原始函数,用于合成器内部。这些包括振荡器、2极状态变量滤波器、包络和LFOs。此外,它还包括将这些原始函数结合在一起的基本减法合成器声部逻辑,并提供在声部内调节所有参数的能力。
默认情况下,它与#![no_std]
兼容,并且库中使用的所有内存都可以完全静态分配。这导致了一些设计权衡;请参阅文档以获取详细信息。
lib.rs
:
此crate包含合成器的所有DSP逻辑。它被设计为对no_std
友好(尽管尚未在此配置下构建/测试),并且所有API和算法都被设计为可以使用浮点逻辑和固定点逻辑实现。固定点逻辑还完全不使用除法,并在尽可能的情况下最小化使用32位扩展乘法(即64位结果)以在无原生硬件支持这些原始函数的嵌入式平台上提高速度。
用户的大部分相关代码可以在[devices]模块中找到。
此crate使用(有点遗憾的匈牙利风格)约定,所有固定点结构和特质都与它们的浮点对应物相同,并以FxP后缀表示固定点操作。这是作为在u16
上实现泛型实现的替代方案使用的,以保留有关类型系统内小数点位置的信息,但这需要在crate中复制一些代码。
依赖项
~3MB
~55K SLoC