【发布时间】:2011-02-08 04:29:12
【问题描述】:
我正在尝试编写一个函数来在 Android 上动态创建 midi 文件。由于没有 javax.sound.midi 库,我只是将字节写入文件自己。我找到了一些很棒的指南(见下文),所以我已经能够创建多个轨道 midis。但是,我无法弄清楚如何为任何轨道切换乐器,所以everythign 只是使用默认乐器。 我认为从我阅读的文件中我需要的代码是“程序更改”后跟程序编号。
到目前为止,我尝试将以下内容写入 byteoutputstream 数组:
track.write((byte) 192); // 128 + 64
track.write((byte) x); // x is the instrument number between 1-128.
我已经把它放在音符开/音符脱轨道信息的开始之前,但它似乎没有做任何事情,除了让 midi 需要很长时间才能启动。我是在正确的轨道上,还是我错过了什么?任何帮助表示赞赏。
http://faydoc.tripod.com/formats/mid.htm https://ccrma.stanford.edu/~craig/articles/linuxmidi/misc/essenmidi.html
【问题讨论】: