来自MIDI的速度和时间签名

时间:2013-08-07 12:49:49

标签: midi tempo

我目前正在构建一个用于显示MIDI文件音乐笔记的软件。我可以从NoteOn和NoteOff事件中获取每个音调,但我不知道如何获得或如何计算音符类型(整个,一半,八个......)和其他时间签名。 我怎么能得到它?我找了一些例子但没有成功。

1 个答案:

答案 0 :(得分:8)

MIDI并不代表绝对数量的音符,就像古典音乐一样。相反,音符的长度一直持续到相应的音符关闭事件被解析(同样,MIDI文件使用关于0速度的事件的音符作为音符关闭非常普遍,请记住这一点)。因此,基本上您需要将两个事件之间的时间间隔转换为音乐时间,以了解是否使用整数,一半,四分音符等。

这种翻译显然取决于知道节奏和时间签名,这是MIDI元事件。有关解析这些内容的更多信息,请访问:

http://www.sonicspot.com/guide/midifiles.html

基本上你可以通过PPQ找到每个刻度的毫秒数,然后使用时间签名和速度来查找四分音符的长度(以毫秒为单位)。 StackOverflow上有一些关于此转换的答案,但是我在手机上写这篇文章并且现在无法查找它们。 :-)

希望这能指引你朝着正确的方向前进!