我的目标是从标准MIDI文件中检索精确的音符开/关时序。 该文件是类型1(它有几个轨道)和定时模式是每季度滴答。将MIDI-deltatimes转换为秒
我的方法:
我搜索setTempo事件在每个轨道,并把它们全部放入一个列表。我还在我的列表中存储后续setTempo事件之间的滴答数量。
然后我将每个事件的所有deltaTime加起来,并获得相对于每个事件的零点滴答的绝对滴答数。
最后我计算时间以秒为蜱的绝对数量和包含拍子
那是从一个MIDI文件获得音符的声母一个正确的方法,或做名单我也必须考虑时间签名? - setTempo事件的数据是微秒/四分之一还是微秒/节拍?
另一个问题: 假设我有一个文件有两个轨道。跟踪二只在文件的最后有一个事件,可以说deltatime = 1000。跟踪一个有两个setTempo事件,一个deltatime = 0,另一个deltatime = 500。
哪个节奏用于等待第二轨中的1000个节拍 - 第一个节奏,第二个还是两个?