2016-04-06 9 views
0

Я открыл миди файл:как я могу читать миди-файл и получить предустановленную информацию трека в OS X

MusicSequence sequence; 
NewMusicSequence(&sequence); 
MusicSequenceFileLoad(sequence, (__bridge CFURLRef _Nonnull)(midiFile), kMusicSequenceFile_MIDIType, 0); 

и читать миди нотное сообщение с помощью MusicTrack & MusicEventIterator. как я могу получить инструмент предустановленные информации? Такие как piano(id:0) или кто-то еще ..

+0

Эти настройки сделаны событиями. И они не обязательно пресеты; они могут быть изменены в любое время. –

ответ

0

трека запрограммированную Информация или Instrument запрограммированной Информация не понятие, относящееся к стандарту MIDI, AFAIK. Для того, чтобы выяснить, есть ли номер программы установлен или номер программы изменился внутри вашей MIDI чтения обратного вызова, вы должны, вероятно, обнаружить двоичные сообщения типа:

1100nnnn 0ppppppp 

где [nnnn = 0-15 (MIDI channel number 1-16)] и [ppppppp = program number].

Все же это всего лишь номера, генерируемые событием, которые могут ссылаться на любой звук. В оригинальной спецификации MIDI отсутствует сопоставление «звук-набор-изменение-изменение номера», которое указано в General MIDI System. Итак, где-то в вашем коде должен быть поиск системных сообщений GeneralMIDI, таких как:

General MIDI System ON (шестнадцатеричный):

F0 7E <device-ID> 09 01 F7 

General MIDI System OFF (шестнадцатеричный):

F0 7E <device-ID> 09 02 F7 

Полные спецификации могут быть считаны: MIDI Manufacturers Association.

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

  • Нет связанных вопросов^_^