Получите имя доступного устройства вывода MIDI в вашей системе.
Disregard cmd.exe warnings about UNC directory pathnames.
Disregard cmd.exe warnings about UNC directory pathnames.
Создать mididevice объект.
Создайте массив сообщений 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, совпадает с некомпилированной версией.