音频 – 带宽波形生成

前端之家收集整理的这篇文章主要介绍了音频 – 带宽波形生成前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个软件合成器,需要在44.1 kHz采样时实时生成带宽,别名的免费波形.锯齿波形现在可以做到,因为我可以通过将两个锯齿波混合在一起而产生脉冲波,一个反相和相移.

到目前为止,我已经尝试了以下方法

>在启动时,以不同的频带限制频率预先计算一个周期的完美带宽波形样本,然后播放混合在一起的两个最接近的波形样本.工作好,我猜,但不觉得很优雅.需要大量的样本,或者他们之间的“差距”将被听到.内插和混合也是cpu密集型.
>集成一串直流补偿的正弦脉冲以获得锯齿波.听起来很棒,除了波浪偏离零,如果你没有得到正确的直流补偿(我发现真的很棘手).通过向积分器增加一点泄漏可以减少直流问题,但是失去低频.

所以,我的问题是:通常的做法是什么?任何建议的解决方案必须在cpu方面效率高,因为它必须实时完成,对于许多语音一次.

解决方法

有很多方法可以接近带宽波形生成.你会像往常一样最终交易计算成本与质量.

我建议你在这里看看这个网站:

http://www.musicdsp.org/

查看档案!它充满了好材料.我刚刚搜索关键字“bandlimited”.你应该持续忙碌至少一周的时候弹出的材料.

Btw – 不知道这是你想要的,但是几年前我做了别名缩减(例如,不是真正的带限制)波形生成.我刚刚计算了最后一个和当前采样位置之间的积分.对于传统的合成波形,如果将积分间隔分割成奇异点(例如,当锯齿波的复位)时,您可以轻松实现. cpu负载低,质量可以满足我的需求.

我有相同的漂移问题,但是在积分上采用非常低的截止频率的高通消除了这种影响.真正的模拟合成器不要进入亚赫兹地区,所以你不会错过太多.

原文链接:https://www.f2er.com/java/123960.html

猜你在找的Java相关文章