首页> 音响技术 > MIDI的连续状态是什么意思

MIDI的连续状态是什么意思

  2007-11-29  

来源:音易网


连续状态(Running Status)


在典型的MIDI讯息流中有一定量的冗余。既定通道上的音符开(Note On)发送时,其后不久跟有对应的音符关(Note Off)讯息。而操作弯音轮会产生大量乃至上百的弯音讯息。因为每个字节都连续发送,而音乐人也会说,时间是非常本质的事情,而“压榨”出冗余数据这显然是有一定帮助的。幸运的是,MIDI协议提供了一种简单而又有效的方法来处理即:连续状态[running status]。


拿三个音符开(Note On)讯息的例子来说,跟有三个或更多的力度为0的音符——以此替代音符关(Note Off)讯息。为了简化起见,所有这些字节都以十六进制显示,均在通道1上。


请注意在通道1上的音符开的状态为0x90。这种简单的序列需要18个字节。


90 3C 40 90 3B 62 90 39 27 ... 90 3C 00 90 3B 00 90 39 00


因为每个事件的状态字节相同(均为通道1上的音符开),在本例中就有“冗余”的状态字节。而连续状态实际上则是一种压缩数据的形式,这样我们便可以忽略冗余状态字节。


而在状态字节改变,新讯息类型改变,或是相同类型但换了一个通道时,则必须发送新的状态字节。实际上周期性地更新状态直接是个不错的主意,即使这并不是非常严格地需要。如果接收设备丢失状态字节,则会拒绝产生任何声音,直到状态更新。因此每16或32个事件就更新一次是适当的。


通过对序列应用运行状态,我们可以将其缩短为13个字节:


90 3C 40 3B 62 39 27 ... 3C 00 3B 00 39 00


连续状态只能在通道讯息上使用,在状态字节改变时终止。请注意系统实时讯息对运行状态是视而不见的。

  相关联接
  发表评论
尊重网上道德,遵守中华人民共和国的各项有关法律法规。
承担一切因您的行为而直接或间接导致的民事或刑事法律责任。
本站管理人员有权保留或删除其管辖留言中的任意内容,本站有权在网站内转载或引用您的评论。
参与本评论即表明您已经阅读并接受上述条款。
主 题:
内 容: