MIDI标题块的最后一个单词指定除法。它包含有关delta时间是否应解释为每四分音符的刻度或每帧的刻度(其中帧是一秒的细分)的信息。如果设置了该字的第15位,则信息以每帧的滴答为单位。接下来的7位(位14到位8)指定每秒的帧数,并且可以包含四个值中的一个:-24,-25,-29或-30。 (他们是否定的)
有人知道第15位是否计入此负值?所以问题是,指定fps的值实际上是8位长(15到8)还是7位长(14到8)。我正在阅读的文档对此非常不清楚,我无法在其他任何地方找到信息。
由于
答案 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位值,否则它将被存储为正值。