我正在研究微控制器合成器,但我遇到了音量包络生成问题。我现在有这个代码:
to_dac =(SinTable[lut_pos] * (volume))>>8;
它工作正常,但分辨率真的很差,我不知道如何改进它以使其仍然可以足够快地运行(因为必须为每个样本执行此操作)
这些是我现在得到的结果:
这是一个 MP3 现在的声音:(注意:DAC 在面包板上,输出端没有低通滤波器,所以有一些多余的噪音)
我正在使用 MSP430 设备(目前是 MSP430G2553,但如果真的有必要,我可以使用 MSP430F5510(更多内存,更快的速度)我也尝试寻找示例,但它们都使用浮点变量,sin() ; 函数和 math.h 中的其他函数,但我没有这些的奢侈......
编辑:我是个彻头彻尾的白痴,另一段代码导致幅度包络的分辨率较低,但我对幅度调制的其他解决方案持开放态度。