В этом примере показано, как использовать MATLAB Compiler™ для создания автономного приложения из функции MATLAB. Функция реализует алгоритм обработки звука и воспроизводит результат через устройство вывода звука.
В этом примере создается и запускается исполняемое приложение, которое применяет искусственную реверберацию к аудиосигналу и воспроизводит его через выбранное аудиоустройство. Преимущество таких приложений заключается в том, что они могут быть запущены на компьютере, на котором не требуется установка MATLAB. Для развертывания приложения, созданного в этом примере, требуется только установка среды выполнения MATLAB.
Алгоритм реверберации реализуется с помощью объекта System reverberator. Он позволяет добавить эффект реверберации к звуковому входу моно- или стереоканала. Объект имеет шесть свойств, управляющих характером реверберации. Каждый из них можно настроить во время выполнения моделирования.
Функция audioReverberationCompilerExampleApp является оберткой вокруг reverberator. Проверка поведения audioReverberationCompilerExampleApp, запустите функцию в MATLAB. Для воспроизведения звука требуется дополнительный ввод в секундах. Значение по умолчанию - 60.
audioReverberationCompilerExampleApp
Функция audioReverberationCompilerExampleApp использует getAudioDevices способ audioDeviceWriter список устройств вывода звука, доступных на текущем компьютере, чтобы вы могли воспроизводить реверберный звук через звуковую карту по своему выбору. Это особенно полезно в развернутых приложениях, поскольку авторы функций редко знают, какое устройство будет подключено к целевой машине.
audioReverberationCompilerExampleApp также отображает настраиваемые свойства reverberator к пользовательскому интерфейсу, чтобы их можно было легко настроить во время выполнения моделирования и мгновенно наблюдать за его эффектом. Например, переместите ползунок «Диффузия» вправо во время моделирования. Вы услышите эффект увеличения плотности отражений. Для приостановки или остановки моделирования можно использовать кнопки пользовательского интерфейса.

После проверки моделирования MATLAB можно выполнить компиляцию функции. Перед компиляцией создайте временный каталог с разрешениями на запись. Скопируйте основную функцию MATLAB и связанные вспомогательные файлы в этот временный каталог.
compilerDir = fullfile(tempdir,'compilerDir'); %Name of temporary directory if ~exist(compilerDir,'dir') mkdir(compilerDir); % Create temporary directory end curDir = cd(compilerDir); copyfile(which('audioReverberationCompilerExampleApp')); copyfile(which('HelperAudioReverberation')); copyfile(which('FunkyDrums-44p1-stereo-25secs.mp3')) copyfile(which('HelperCreateParamTuningUI')); copyfile(which('HelperUnpackUIData'));
Используйте mcc (Компилятор MATLAB) функция из компилятора MATLAB для компиляции audioReverberationCompilerExampleApp в автономное приложение. Он будет сохранен в текущем каталоге. Укажите параметр «» -m «» для создания автономного приложения, параметр «» -N «» для включения только каталогов в путь, указанный с помощью параметра «» -p «».
mcc('-mN','audioReverberationCompilerExampleApp', ... '-p',fullfile(matlabroot,'toolbox','dsp'), ... '-p',fullfile(matlabroot,'toolbox','audio'));
Выполнение этого шага занимает несколько минут.
Используйте system для запуска созданного автономного приложения. Обратите внимание, что при запуске автономного приложения с помощью системной команды используется текущая среда MATLAB и все файлы библиотеки, необходимые для данной установки MATLAB. Сведения о развертывании этого приложения на компьютере, на котором не установлен MATLAB, см. в разделе Сведения о среде выполнения MATLAB (компилятор MATLAB).
if ismac status = system(fullfile('audioReverberationCompilerExampleApp.app', ... 'Contents','MacOS','audioReverberationCompilerExampleApp')); else status = system(fullfile(pwd,'audioReverberationCompilerExampleApp')); end
Как и при моделировании MATLAB, при запуске этого развернутого приложения сначала будет предложено выбрать звуковое устройство, которое необходимо использовать для воспроизведения звука. Затем запускается пользовательский интерфейс (UI) для взаимодействия с алгоритмом реверберации во время выполнения моделирования.

После создания и развертывания исполняемого файла можно очистить временный каталог, выполнив следующие действия в командной строке MATLAB:
cd(curDir);
rmdir(compilerDir,'s');