【发布时间】:2010-09-15 13:48:19
【问题描述】:
我正在编写一个软件合成器,需要以 44.1 kHz 采样率实时生成带限、无混叠波形。锯齿波现在就可以了,因为我可以通过将两个锯齿混合在一起产生脉冲波,一个倒相和相移。
到目前为止,我已经尝试了以下方法:
在启动时预计算不同带限频率的一个周期完美带限波形样本,然后播放混合在一起的两个最接近的波形样本。我猜可以工作,但感觉不是很优雅。需要大量样本,否则会听到它们之间的“间隙”。插值和混合也相当消耗 CPU。
集成一系列 DC 补偿 sinc 脉冲以获得锯齿波。听起来不错,除了如果您没有完全正确地获得直流补偿(我发现这真的很棘手),波会从零漂移。可以通过在积分器中增加一点泄漏来减少 DC 问题,但这样会丢失低频。
所以,我的问题是:通常的做法是什么?任何建议的解决方案都必须在 CPU 方面高效,因为它必须实时完成,同时针对多个声音。
【问题讨论】:
-
我知道这是在一年前被问到的,但是对于其他偶然发现这个问题的人,我建议在KVR 搜索友好且能干的DSP and Plug-in Development 论坛
标签: audio signal-processing synthesizer