校正基于STM32的MIDI合成器的音符频率

2019-07-14 17:20发布

我最近在研究EasyMXPro for STM32 dev,正在尝试使用DAC创建一个简单的单声道波表合成器,可播放的通道。但是,我有一个MIDI键盘,我有以下问题:我有一个循环遍历波表值(以MCU时钟的速度)循环。程序在阵列中循环的速率显然使我的频率与波表中正弦波的基频不同。对于数组中的每个样本,延迟/加快程序执行的最佳方法是什么,因为我需要以不同的速率循环访问数组以获得键盘上的不同音符?我尝试过使用简单的延迟,但是对于音符频率的每次变化,延迟量必须特别改变。是否有一种更简单的方法可以做到这一点,我没想过(也许使用计时器)?在此先感谢任何有用的答案!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
doublelove
2019-07-15 10:07
我尝试使用以下链接中的代码作为模板来实现此方法:链接我遇到的问题是我在16Mhz使用MCU,但是,当我在链接中的等式中使用16Mhz时(为了确定步长,我获得了不到所需频率输出的一半。使用8Mhz我得到一个更接近的输出值,但仍然不是一个精确的输出值。这个等式是否存在问题,或者问题更可能与我使用的时钟值有关?

一周热门 更多>