To Audio Device

Запишите аудиоданные в аудио устройство компьютера

Совместимость

Примечание

Блок To Audio Device будет удален в будущем релизе. Существующие экземпляры блока продолжают запускаться. Для новых моделей используйте блок Audio Device Writer вместо этого.

  • To Audio Device block

Библиотека

Приемники

dspsnks4

Описание

Блок To Audio Device отправляет аудиоданные в аудио устройство вашего компьютера. Этот блок не поддерживается для использования с блоком Model Simulink®.

Используйте параметр Device, чтобы задать устройство, в которое вы хотите отправить аудиоданные. Этот параметр автоматически заполняется на основе аудио устройств, установленных в вашей системе.

Установите флажок Inherit sample rate from input, если вы хотите, чтобы блок наследовал частоту дискретизации звукового сигнала от входа до блока. Если вы снимаете этот флажок, параметр Sample rate (Hz) появляется на блоке. Используйте этот параметр, чтобы задать количество выборок в секунду в сигнале.

Область значений поддерживаемых частот дискретизации аудио устройства и форматов типа данных, зависьте и от звуковой карты и от API, который выбран для звуковой карты.

Используйте Device data type, чтобы задать тип данных аудиоданных, которые отправляются в устройство. Можно выбрать:

  • 8-bit integer

  • 16-bit integer

  • 24-bit integer

  • 32-bit float

  • Determine from input data type

Если вы выбираете Determine from input data type, следующая таблица обобщает поведение блока.

Тип входных данныхТип данных устройства
Плавающая точка двойной точности или плавающая точка с одинарной точностью32-битная плавающая точка
32-битное целое число24-битное целое число
16-битное целое число16-битное целое число
8-битное целое число8-битное целое число

Если вы выбираете Determine from input data type и устройство не поддерживает тип входных данных, блок использует следующий тип данных самой низкой точности, поддержанный устройством.

Сгенерированный код для этого блока использует предварительно созданные .dll файлы. Можно запустить этот код вне среды MATLAB®, или повторно развернуть его, но быть уверены с учетом этих дополнительных .dll файлов при выполнении так. Функция packNGo создает один zip-файл, содержащий все части, требуемые запустить или восстановить этот код. Смотрите packNGo (Simulink Coder) для получения дополнительной информации.

Буферизация

К буферам блоков Аудио устройства данные из Сигнала Simulink с помощью процесса проиллюстрированы следующей фигурой.

  1. В начале симуляции очередь переполнена тишиной. Задайте размер этой очереди, использующей параметр Queue duration (seconds). Когда Simulink запускается, блок добавляет системы координат Simulink к нижней части очереди.

  2. На каждом временном шаге блоки отправляют буфер выборок от верхней части очереди к аудио устройству. Установите флажок Automatically determine buffer size, чтобы позволить блоку использовать консервативный buffer size. Смотрите страницу с описанием блока From Audio Device для уравнения использование блока, чтобы вычислить этот buffer size. Если вы снимаете этот флажок, параметр Buffer size (samples) появляется на блоке. Используйте этот параметр, чтобы задать размер буфера в выборках.

  3. Блок пишет буфер аудиоданных к устройству. Если очередь не содержала достаточно данных, чтобы полностью заполнить буфер, блок заполняет остающийся фрагмент буфера с нулями. Эти данные имеют тип данных, заданный параметром Device data type.

Когда уровень пропускной способности симуляции ниже, чем аппаратный уровень пропускной способности, очередь, которая первоначально полна, становится пустой. Если очередь пуста, блок отправляет нули (тишина) в аудио устройство. Можно контролировать вставленный, обнуляет использование дополнительного Underrun выходной порт. Когда уровень пропускной способности симуляции выше, чем аппаратный уровень пропускной способности, блок To Audio Device ожидает, чтобы записать данные очереди.

Чтобы свести к минимуму вероятность уволенных, проверки блока, чтобы убедиться, длительность очереди является, по крайней мере, столь же большой как максимум buffer size и формата кадра. Если это не, длительность очереди автоматически установлена в это максимальное значение.

Отображение канала

Термин Channel Mapping относится к 1 к 1 отображению, которое сопоставляет каналы на выбранном аудио устройстве к каналам данных. Когда вы проигрываете аудио, отображение канала позволяет вам задавать, какой канал аудио устройства направляет вход к определенному каналу аудиоданных. Можно задать канал, сопоставляющий как вектор из выходных индексов канала, соответствующих каждому выходному каналу записанных данных. Значение по умолчанию в параметре Device Output Channels 1:MAXOUTPUTCHANNELS. Если вы не выбираете отображение по умолчанию, необходимо задать параметр Device Output Channels в диалоговом окне.

Пример: выбранное выходное аудио устройство содержит 8 каналов. Выводимые данные имеют размерности N×3 (данные с 3 каналами). Вы хотите, чтобы выход был перенаправлен можно следующим образом:

  • First Data образовывают канал к каналу Аудио устройства 3

  • Вторые данные образовывают канал к каналу Аудио устройства 1

  • Третьи данные образовывают канал к каналу Аудио устройства 8

Таким образом вы задали бы Device Output Channels как [3 1 8].

Поиск и устранение проблем

Не поддержание на высоком уровне в режиме реального времени

Когда Simulink не может не отставать от аудио устройства, которое действует в режиме реального времени, очередь становится пустой, и разрывы происходят в аудиоданных, которые блок отправляет в устройство. Установите флажок Output number of samples by which the queue was underrun, чтобы добавить выходной порт, указывающий, когда очередь была пуста. Вот несколько способов справиться с этой ситуацией:

  • Увеличьте длительность очереди.

    Параметр Queue duration (seconds) задает длительность сигнала в секундах, которые могут быть буферизованы во время симуляции. Это - максимальный отрезок времени, что предоставление данных блока может изолировать требование данных оборудования.

  • Увеличьте buffer size.

    Размер буфера, обработанного в каждом прерывании от аудио устройства, влияет на эффективность вашей модели. Если буфер слишком мал, значительная часть аппаратных ресурсов используются, чтобы записать данные к устройству. Если буфер является слишком большим, Simulink должен ожидать устройства, чтобы опорожнить буфер, прежде чем это сможет записать данные в очередь, которая вводит задержку.

  • Увеличьте уровень пропускной способности симуляции.

    Два полезных метода для улучшения уровней пропускной способности симуляции увеличивают формат кадра сигнала и компилируют симуляцию в собственный код:

    • Увеличьте форматы кадра и используйте основанную на системе координат обработку в модели, чтобы уменьшать объем коммуникации от блока к блоку наверху. Это может увеличить уровни пропускной способности во многих случаях. Однако большие форматы кадра обычно приводят к большей задержке модели из-за начальных операций буферизации.

    • Сгенерируйте исполняемый код с программным обеспечением генерации кода Simulink Coder™. Собственный код запускается намного быстрее, чем Simulink и должен предоставить уровни, достаточные для обработки аудиоданных в реальном времени.

Другие способы улучшить уровни пропускной способности включают упрощение модели и выполнение симуляции на более быстром процессоре PC. Для других идей улучшать производительность симуляции, смотрите Задержку и Задержку и Оптимизируйте Эффективность (Simulink).

Выполнение исполняемого файла вне MATLAB

Чтобы запустить ваше сгенерированное приложение независимого исполняемого файла в Shell, необходимо установить среду на следующее:

ПлатформаКоманда
Mac

setenv DYLD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/maci64 (csh/tcsh)

export DYLD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/maci64 (Bash)

Linux

setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/glnxa64 (csh/tcsh)

export LD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/glnxa64 (Bash)

Windows

set PATH = $MATLABROOT\bin\win64;%PATH%

Отображение канала динамику на операционных системах Windows

К Аудио устройству и От блоков Аудио устройства может поддержать несколько каналов. На операционных системах Windows® отображение канала динамику задано, как описано ниже. Это отображение только применяется, когда ваша звуковая карта правильно сконфигурирована и способна к получению аудиоданных, вы отправляете. Если количество каналов на карте не совпадает с количеством каналов на блоке, или если вы задаете тип данных для параметра Device data type, который не поддерживается вашим устройством, микшер Windows вмешивается, чтобы перевести от одного формата до другого. Если микшер Windows действительно вмешивается, отображение канала динамику может отличаться от того, что задано здесь.

  • Один вход канала — Передняя сторона сосредотачивает динамик

    В системах с двумя динамиками передний центральный канал разделен между правыми и левыми динамиками.

  • Многоканальный вход — Каналы присвоены динамикам можно следующим образом:

    • Один канал — Передний центр
    • Два канала — оставленная Передняя сторона, переднее право
    • Четыре канала — оставленная Передняя сторона, переднее право, покинутая задняя часть, заднее право
    • Шесть каналов — оставленная Передняя сторона, переднее право, передний центр, низкая частота, покинутая задняя часть, заднее право
    • Восемь каналов — оставленная Передняя сторона, переднее право, передний центр, низкая частота, покинутая задняя часть, заднее право, передняя сторона, оставленная центр, передний правильный центр
    • Для всех других комбинаций канала присвоение канала диктует звуковая карта.

Аудио аппаратный API

К Аудио устройству и От блоков Аудио устройства пользуются библиотекой PortAudio с открытым исходным кодом для того, чтобы связаться с аудио оборудованием на данном компьютере. Поддержки библиотеки PortAudio область значений API спроектировали, чтобы связаться с аудио оборудованием на данной платформе. Следующий выбор API был сделан при создании библиотеки PortAudio для продукта DSP System Toolbox™:

  • Windows: DirectSound, WDM-KS, ASIO™

  • Linux®: ALSA, OSS

  • Mac: CoreAudio

Для Windows значением по умолчанию является DirectSound для Linux, значением по умолчанию является ALSA, и для Mac существует только один выбор.

Чтобы определить аудио аппаратный API, в настоящее время выбранный, введите следующую команду в командной строке MATLAB.

getpref('dsp','portaudioHostApi')   
Выход является скаляром, указывающим на выбор API.

  • 1 — DirectSound

  • 3 — ASIO

  • 7 — OSS

  • 8 — ALSA

  • 11 — WDM-KS

Чтобы выбрать конкретный API, введите следующую команду в командной строке MATLAB.

setpref('dsp','portaudioHostApi',N)   
где N является скаляром. Выберите N на основе выбора API выше.

Параметры

Device

Задайте который устройство отправить аудиоданные в.

Inherit sample rate from input

Установите этот флажок, если вы хотите, чтобы блок наследовал частоту дискретизации звукового сигнала от входа до блока.

Sample rate (Hz)

Задайте количество выборок в секунду в сигнале. Этот параметр отображается, когда флажок Inherit sample rate from input снимается.

Device data type

Задайте тип данных аудиоданных, отправленных в устройство.

Automatically determine buffer size

Установите этот флажок, чтобы позволить блоку вычислять консервативный buffer size.

Buffer size (samples)

Задайте размер буфера. Этот параметр отображается, когда флажок Automatically determine buffer size снимается.

Queue duration (seconds)

Задайте размер очереди в секундах.

Use default mapping between Data and Device Output Channels

Установите этот флажок, чтобы иметь отображение по умолчанию, куда данные из первого канала аудио устройства отправляются в первый канал входных данных, данные из второго канала аудио устройства отправляются во второй канал данных и так далее. Максимальное количество каналов во входных данных определяется свойством Number of channels.

Device Output Channels

Задайте отображение канала. Этот параметр отображается, когда флажок Use default mapping between Device Input Channels and Data отключен.

Output number of samples by which the queue was underrun

Установите этот флажок, чтобы вывести количество нулевых выборок, вставленных в аудиопоток из-за недогрузки очереди начиная с последней передачи системы координат к аудио устройству. Можно использовать это значение, чтобы отладить проблемы пропускной способности и настроить очереди и буферы в модели. Чтобы изучить, как улучшить пропускную способность, смотрите Поиск и устранение проблем.

Поддерживаемые типы данных

ПортПоддерживаемые типы данных

Входной параметр

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • 32-битные целые числа со знаком

  • 16-битные целые числа со знаком

  • 8-битное беззнаковое целое

Недогрузка

32-битное беззнаковое целое

Смотрите также

From Audio DeviceDSP System Toolbox
To Multimedia FileDSP System Toolbox
audioplayerMATLAB
soundMATLAB
Представленный в R2007b