标题块中的MIDI分区

时间:2014-03-15 18:54:28

标签: midi division bits

MIDI标题块的最后一个单词指定除法。它包含有关delta时间是否应解释为每四分音符的刻度或每帧的刻度(其中帧是一秒的细分)的信息。如果设置了该字的第15位,则信息以每帧的滴答为单位。接下来的7位(位14到位8)指定每秒的帧数,并且可以包含四个值中的一个:-24,-25,-29或-30。 (他们是否定的)

有人知道第15位是否计入此负值?所以问题是,指定fps的值实际上是8位长(15到8)还是7位长(14到8)。我正在阅读的文档对此非常不清楚,我无法在其他任何地方找到信息。

由于

1 个答案:

答案 0 :(得分:2)

MMA的标准MIDI文件格式规范说:

  

第三个单词< division>指定delta时间的含义。   它有两种格式,一种用于测量时间,一种用于基于时间码的格式   时间:

+---+-----------------------------------------+
| 0 |        ticks per quarter-note           |
==============================================|
| 1 | negative SMPTE format | ticks per frame |
+---+-----------------------+-----------------+
|15 |14                   8 |7              0 |
     

[...]   如果< division>的第15位是一个文件中的delta时间对应   以与SMPTE和MIDI一致的方式进行一秒的细分   时间码。第14至第8位包含四个值中的一个-24,-25,-29,   或-30,对应于四个标准SMPTE和MIDI时间码   格式(-29对应于30 drop frome),并代表   每秒帧数。这些负数存储在   两种补充形式。第二个字节(存储为正)是   框架内的分辨率[...]

Two's complement表示允许通过添加值为1的MSB位来对值进行符号扩展而不更改其值。 所以你是拿7位还是8位并不重要。

实际上,此值旨在被解释为带符号的8位值,否则它将被存储为正值。