gpt4 book ai didi

c - Assembly音频合成的数据结构

转载 作者:太空狗 更新时间:2023-10-29 15:39:05 28 4
gpt4 key购买 nike

作为一个学习项目,我正在用汇编编写一个简单的合成器,我想实现现代合成器上的一些更高级的功能,即 ADSR 包络和使用正弦波的脉冲宽度调制。目前,我基本上是手动生成样本并将它们推送到音频输出,它有一个样本缓冲区和一个在缓冲区接近空时产生的中断。

我坚持的是如何生成“连续”波形。目前,我为波的单个实例(锯齿波或脉冲波)生成样本,然后简单地循环一个波以生成连续输出。您可以想象,这不能很好地扩展到 PWM 和 ADSR 包络。因此,我需要按需生成波形,并对其进行动态调整,例如脉冲宽度或音高的调制(例如连奏),但我不知道如何在内存中有效地表示它,以及如何在缓冲区已满时“暂停”波形生成并在出现中断时“恢复”波形生成。

我不是在寻求解决方案,而是在正确的思考方向上插入 :-)

谢谢!

最佳答案

按需生成 wave 将适用于简单的 wave,但如果您以后想要添加额外的功能/dsps,您仍然需要某种缓冲区。

幅度的 ADSR 相当简单,因为您只需缩放波形,对于频率调制则有点复杂,这里有一篇文章对此进行解释 link

你也可以查看farbraush github,应该有一些不错的灵感给你。

关于c - Assembly音频合成的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13212251/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com