音频应用   音频插件联盟,正版插件,欢迎大家选择!

 找回密码
 快速注册

QQ登录

只需一步,快速开始

阅读: 27094|回复: 1

[资讯] MIDI的连续状态是什么意思

[复制链接]

3万

积分

6

听众

-2029

音贝

音频应用初级会员

Rank: 6Rank: 6

积分
32293
发表于 2004-11-14 | |阅读模式
音频应用公众号资讯免费发布推广
连续状态(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

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

http://www.audioapp.cn

1002

积分

2

听众

330

音贝

音频应用新手发布

Rank: 3

积分
1002
发表于 2017-7-25 |
分享,谢谢楼主发布啊
欢迎厂家入驻,推文!免费!微信:yinpinyingyong
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

音频应用搜索

小黑屋|手机版|音频应用官网微博|音频招标|音频应用 (鄂ICP备16002437号)

Powered by Audio app

快速回复 返回顶部 返回列表