使用十六进制

时间:2017-05-23 18:32:37

标签: encoding format hex sublimetext midi

我正在尝试从头开始编写midi文件。它将演奏3个四分音符的C大调琶音。我一直在使用sublime文本来保存使用十六进制编码。然后我将结果导入逻辑(将扩展名更改为.mid后)。到目前为止,这是不成功的,逻辑根本没有做任何事情。

我从here获得了大部分信息,并写了以下内容:

  

4d 54 68 64 00 00 00 06 00 00 00 01 00 18 4d 54 72 6b 00 00 00 1e 80   18 81 3c 7f 80 00 91 3c 00 80 18 81 40 7f 80 00 91 40 00 80 18 81 43   7f 80 00 91 43 00

以下是每个字节的细分,它是笔记形式,但总结了我对文件格式的理解: Byte breakdown for MIDI file

有人能指出为什么没有将正确的结果加载到Logic中。我是否误解了文件格式本身,或者是编码方面的问题 更新:这是最终的,更正后的十六进制......

  

4d 54 68 64 00 00 00 06 00 00 00 01 00 18 4d 54 72 6b 00 00 00 22 80   18 91 3c 7f 80 00 81 3c 00 80 18 91 40 7f 80 00 81 40 00 80 18 91 43   7f 80 00 81 43 00 00 ff 2f 00

1 个答案:

答案 0 :(得分:1)

该曲目缺少曲目结束元事件(类型2F,长度0)。因此,请添加字节00 FF 2F 00,并相应地调整轨道大小。

该曲目包含六条MIDI信息。所有六个都是注释消息,所以没有任何实际的注释。

8x是留言信息 9x是一条音符开启消息,但速度为0实际上指定了音符关闭。 (这是一种在使用运行状态时很有用的优化。)