2011-02-08 2 views
2

Я пытаюсь написать функцию для динамического создания midi-файлов на Android. Поскольку нет библиотеки javax.sound.midi, я просто пишу байты для файла. Я нашел несколько отличных руководств (см. Ниже), поэтому мне удалось создать несколько дорожек. Однако я не смог понять, как переключать инструменты на любую из треков, поэтому каждый пользователь просто использует инструмент по умолчанию. Я думаю, что из документов я прочитал код, который мне нужен, это «смена программы», за которым следует номер программы.Изменяемые инструменты в midi кодировании?

То, что я пытался до сих пор пишет следующее к массиву byteoutputstream:

track.write((byte) 192); // 128 + 64 
track.write((byte) x); // x is the instrument number between 1-128. 

Я поставил это перед началом записки на внимание от информации/дорожки, но это Безразлично» t, похоже, ничего не делает, заставляя midi занять много времени. Я здесь, на правильном пути, или я чего-то не хватает? Любая помощь приветствуется.

http://faydoc.tripod.com/formats/mid.htm https://ccrma.stanford.edu/~craig/articles/linuxmidi/misc/essenmidi.html

ответ

0

Наконец понял. Это была простая вещь, но я забыл включить время трека перед сменой программы. Как только я добавил 0 байт, он сработал.

Смежные вопросы