MIDI文件中Delta Time是如何表示的,与16进制数之间是如何转换的?如何设置一个MIDI通道为打击乐?MIDI使用什么码来控制通道主音量,用什么码来控制系统主音量
时间: 2024-06-02 20:14:13 浏览: 96
Delta Time是指相邻MIDI事件之间的时间间隔,以ticks为单位表示。在MIDI文件中,Delta Time通常使用变长整数编码(VLQ)表示。VLQ使用7位二进制数表示一个值的一部分,其中最高位是0表示这是该值的最后一个字节,最高位是1表示后面还有一个字节。将这些字节组合起来,再转换成10进制数即可得到Delta Time的值。
16进制数与10进制数之间可以通过简单的转换实现。16进制数中每一位的权值是16的幂,最低位的权值是16^0=1,从右向左依次递增。将每一位的值乘以对应权值,再将它们相加即可得到10进制数的值。
要设置一个MIDI通道为打击乐,需要将该通道的Program Change消息发送到一个打击乐器的程序号(Program Number)。这可以通过发送Control Change消息(Controller 0)和值为9的数据来实现。其中,值为9表示选择打击乐器的程序号。
MIDI使用Control Change消息(Controller 7)来控制通道主音量,值的范围是0-127,其中0表示静音,127表示最大音量。系统主音量可以通过发送System Exclusive消息来控制。System Exclusive是一种特殊的MIDI消息类型,用于向MIDI设备发送厂商自定义的控制信息。不同的厂商可能使用不同的System Exclusive消息格式来控制系统主音量。
阅读全文