Получите имя доступного выходного устройства 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, аналогичен несопоставленной версии.