Этот пример показывает, как использовать MATLAB Compiler™, чтобы создать автономное приложение от функции MATLAB. Функция реализует алгоритм обработки аудиоданных и проигрывает результат через ваше устройство аудиовыхода.
В этом примере вы генерируете и запускаете исполняемое приложение, которое применяет искусственную реверберацию к звуковому сигналу и проигрывает ее через ваше выбранное аудио устройство. Преимущество таких приложений - то, что они могут быть запущены на машине, которой нельзя было устанавливать MATLAB. Вам только была бы нужна установка MATLAB Runtime, чтобы развернуть приложение, созданное в этом примере.
Алгоритм реверберации реализован с помощью отражателя Системного объекта. Это позволяет вам добавлять эффект реверберации в аудиовход моноканала или стереоканала. Объект обеспечивает шесть свойств, которые управляют природой реверберации. Каждый из них может быть настроен, в то время как симуляция запускается.
Функциональный 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 Compiler, чтобы скомпилировать audioReverberationCompilerExampleApp
в автономное приложение. Это будет сохранено в текущем каталоге. Задайте '-m' опция, чтобы сгенерировать автономное приложение, '-N' опция, чтобы включать только директории в путь, заданный с помощью '-p' опция.
mcc('-mN', 'audioReverberationCompilerExampleApp', ... '-p', fullfile(matlabroot,'toolbox','dsp'), ... '-p', fullfile(matlabroot,'toolbox','audio'));
Этот шаг занимает несколько минут, чтобы завершиться.
Используйте команду system
, чтобы запустить сгенерированное автономное приложение. Обратите внимание на то, что выполнение автономного приложения с помощью системной команды использует текущую среду MATLAB и любые файлы библиотеки, необходимые от этой установки MATLAB. Чтобы развернуть это приложение на машине, которой не установили MATLAB, обратитесь к разделу 'Distribute with MATLAB Runtime' в документации для продукта MATLAB Compiler.
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');