Получите имя доступного выходного MIDI-устройства в вашей системе.
Disregard cmd.exe warnings about UNC directory pathnames.
Disregard cmd.exe warnings about UNC directory pathnames.
Создайте mididevice
объект.
Создайте массив сообщения MIDI.
Чтобы слушать сообщения MIDI, отправьте сообщения MIDI в свое устройство.
Чтобы скомпилировать предыдущие шаги, инкапсулируйте код в функции и затем вызовите mcc
.
function playMusic1()
mInfo = mididevinfo;
midiDeviceName = mInfo.output(1).Name;
device = mididevice(midiDeviceName);
msgs = [];
for ii = 1:8
msgs = [msgs;midimsg('Note',1,20+8*ii,64,1,ii)];
end
midisend(device,msgs)
end
Выполните скомпилированный код. Вы не услышите звука. Это вызвано тем, что открытый исполняемый файл, отправил сообщения MIDI очереди, и затем закрылся, прервав ее команды, прежде чем сообщения MIDI имели шанс вопроизвести.
Чтобы сохранить исполняемый файл открываются достаточно долго для сообщений MIDI, чтобы проигрывать, добавить паузу в исполняемый файл. Установите длительность паузы равняться длительности сообщений MIDI.
function playMusic2()
mInfo = mididevinfo;
midiDeviceName = mInfo.output(1).Name;
device = mididevice(midiDeviceName);
msgs = [];
for ii = 1:8
msgs = [msgs;midimsg('Note',1,20+8*ii,64,1,ii)];
end
midisend(device,msgs)
pause(msgs(end).Timestamp)
end
Проигрывайте скомпилированный исполняемый файл. Звук, который проигрывает ваше MIDI-устройство, совпадает с нескомпилированной версией.