0

我一直在研究 Midi 文件有一段时间了,我一直坚持某种状态字节。根据标准的 Midi 文件格式没有这样的东西。那么,有人能说出这 3 个字节的信息“ 00 a040 ”是什么吗?我知道“ 00 ”是代表增量时间的字节,而 0xa0 应该是状态字节,如果我理解正确的话。位于第 18 行的最后 3 个字节是我目前唯一不明白的部分。在这 3 个字节之后,是由“ 00 ff01 ”引导的文本元事件字节。

Midi 文件第 18 至 19 行:

ff 51 03 09 cc 90 00 c0 00 00 b0 07 64 00 0a 40  
00 ff 01 20 62 64 63 61 34 32 36 64 31 30 34 61
4

1 回答 1

2

SMF 规范说:

使用运行状态:如果前面的事件是具有相同状态的 MIDI 通道消息,则可以省略 MIDI 通道消息的状态字节。

所以这些字节可以解码如下:

ff 51 03 09 cc 90:元事件:设置速度,每四分音符 9CC90h = 642192 µs
00:增量时间
c0 00:在通道 0 上设置程序 0(钢琴)
00:增量时间
b0 07 64:将控制器 7(音量)设置为值 100
00:增量时间
  0a 40:运行状态(重复 B0h) ; 将控制器 10(表达式)设置为值 64
00:增量时间
ff 01 20 ...:元事件:文本:“bdca426d104a ...”

于 2017-03-09T08:27:24.177 回答