【问题标题】:Changing instruments in midi encoding?在 midi 编码中更改乐器?
【发布时间】: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

【问题讨论】:

    标签: java android midi


    【解决方案1】:

    终于明白了。这只是一件简单的事情,但我忘记在程序更改之前包括跟踪时间。一旦我添加了 0 字节,它就起作用了。

    【讨论】:

      猜你喜欢
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      相关资源
      最近更新 更多