解码MIDI通道事件中的RPN

时间:2012-10-04 00:15:12

标签: events format midi channel

我正在使用midi文件格式,我遇到了文件问题。

以下是我的midi示例文件中显示频道事件的内容。

[“00”,“b1”,“64”,“00”,“00”,“65”,“00”,“00”,“06”,“0c” ,“00”,“e1”,“00”,“40”,“00”,“b1”]

我认为这是一个RPN事件(我突出的部分)

但我没有设法解码这个RPN。为什么控制器64后跟2个字节和65个字符 如何知道是否只有一个或两个字节要解码?

我找到了这个资源,但找不到答案:
http://www.sonicspot.com/guide/midifiles.html
http://www.somascape.org/midi/tech/spec.html#rpns

编辑:
后来在同一个midi文件中:
[“00”,“b1”,“65”,“00”,“00”,“64”,“01”,“00”,“06”,“40”,“00”,“26”,“ 00“,”00“,”65“,”7f“,”00“,”64“,”7f“,”00“,”b0“,”64“,”00“,”00“,”65“ ,“00”]

1 个答案:

答案 0 :(得分:2)

64 0065 00之后的第二个零值是以下消息的增量时间。每条消息都有三倍的时间。以下是解释您的第一个样本的方法:

time  status  data
 00     B1     64 00
 00            65 00 (running status B1)
 00            06 0C (running status B1)
 00     E1     00 40
 00     B1

以下是解释第二个样本的方法:

time  status  data
 00     B1     65 00
 00            64 01 (running status B1)
 00            06 40 (running status B1)
 00            26 00 (running status B1)
 00            65 7F (running status B1)
 00            64 7F (running status B1)
 00     B0     64 00
 00            65 00 (running status B0)