Генерация плагина Ambisonic

Это, которое показывают примеры, как создать ambisonic плагины с помощью демонстрационных функций высшего порядка ambisonic (HOA) MATLAB®. Звукозапись с эффектом присутствия является пространственным аудио методом, который представляет 3D звуковое поле с помощью сферических гармоник. Этот пример содержит плагин энкодера, функция, чтобы сгенерировать пользовательские плагины энкодера, плагин декодера и функцию, чтобы сгенерировать пользовательские плагины декодера. Индивидуальная настройка сменной генерации позволяет пользователю задать различные порядки ambisonic и различные списки устройств для данной ambisonic настройки.

Фон

Кодирование Ambisonic является процессом разложения звукового поля в сферические гармоники. Матрица кодирования является суммой сферических гармоник, существующих в определенном положении устройства. В совпадающем с режимом декодировании матрица декодирования является псевдоинверсией матрицы кодирования. Декодирование Ambisonic является процессом восстановления сферических гармоник в звуковое поле.

Этот пример включает звукозапись с эффектом присутствия высшего порядка, которые включают традиционную звукозапись с эффектом присутствия первого порядка. В звукозаписи с эффектом присутствия существует отношение между количеством каналов ambisonic и порядком ambisonic:

       ambisonic_channels = (ambisonic_order + 1)^2 

Например: звукозапись с эффектом присутствия первого порядка требует четырех звуковых каналов, в то время как звукозапись с эффектом присутствия четвертого порядка требует 25 звуковых каналов.

Следующие соглашения поддерживаются

  • Секвенирование канала ACN

  • Нормализация SN3D

  • азимут от 0 до 360 градусов

  • вертикальное изменение от-90 до 90 градусов

ambisonic проектируют поддержку в качестве примера до звукозаписи с эффектом присутствия седьмого порядка с псевдообратным декодированием.

Устройства Ambisonic: элементы и динамики

Устройства Ambisonic разделены на две группы: элементы и динамики. Каждое устройство имеет звуковой сигнал и метаданные, описывающие его положение и операцию. Элементы соответствуют многоэлементным массивам микрофона, и динамики соответствуют массивам громкоговорителей для воспроизведения ambisonic.

ambisonic энкодер применяет ambisonic, кодирующий матрицу к необработанному аудио от элементов микрофона. Положение (азимут, вертикальное изменение) и deviceType элементов микрофона наряду с желаемым порядком ambisonic необходимо, чтобы создать ambisonic кодирование матрицы.

ambisonic декодер применяет ambisonic, декодирующий матрицу к ambisonic аудио для воспроизведения на динамиках. Положение (азимут, вертикальное изменение) и deviceType динамиков наряду с желаемым порядком ambisonic необходимо, чтобы создать ambisonic декодирование матрицы.

Представление звукового поля

Для получения, представляйте или воспроизведите звуковое поле со звукозаписью с эффектом присутствия, количество устройств (элементы или динамики) должно быть больше или быть равно количеству каналов ambisonic.

Для примера кодирования аудио, записанное со сферическим микрофоном массивов с 32 каналами, может быть закодировано до звукозаписи с эффектом присутствия четвертого порядка (25 каналов). Для примера декодирования массив громкоговорителей, содержащий 64 динамика, сконфигурирован для воспроизведения ambisonic до седьмого порядка. Если содержимое воспроизведения является четвертой звукозаписью с эффектом присутствия порядка, то даже при том, что массив настраивается для седьмого - порядок, только звукозапись с эффектом присутствия четвертого порядка понята через систему.

       number_devices >= number_ambisonic_channels

Для энкодера, если количество устройств (элементы) меньше количества каналов ambisonic, то аудио от устройства (элементы) положения может быть представлено в звукозаписи с эффектом присутствия, но звуковое поле не представлено. Один или несколько звуковых каналов могут быть закодированы в звукозапись с эффектом присутствия чтобы к источникам положения в ambisonic поле. Каждый энкодер представляет интенсивность звукового поля, которое будет закодировано в заданном устройстве (элемент) местоположение.

Для декодера, если количество устройств (динамики) меньше количества каналов ambisonic, устройства (динамики) не полностью воспроизводят звуковое поле в заданном порядке ambisonic. Звуковое поле может быть воспроизведено в более низком порядке ambisonic. Например, звукозапись с эффектом присутствия третьего порядка, проигрываемая на массиве динамика с 10 динамиками, может быть понята как второго порядка (9 каналов) система с дополнительным динамиком для воспроизведения. Каждый декодер представляет интенсивность ambisonic поля в заданном устройстве (динамик) положение.

псевдообратный метод декодирования

Существует много опций декодирования, этот пример использует псевдообратное декодирование, также известное как соответствие режима. Этот метод декодирования способствует размещениям устройства регулярной формы. Другие методы декодирования могут способствовать размещениям устройства неправильной формы.

DeviceType

deviceType для энкодеров включает или выключает устройство (элемент) кодирование для конкретного элемента. deviceType для декодеров включает или выключает устройство (динамик), декодирующий для конкретного динамика. Если deviceType вектор не использован, то deviceTypes установлены в 1 (на). Намерение позади deviceType состоит в том, чтобы обеспечить гибкость дополнения входных параметров энкодера или декодера выходные параметры с от каналов, чтобы вместить ambisonic плагин энкодера или декодера в среду с фиксированными количествами канала, такими как 8-, 16-или аудио шина с 32 каналами.

Например: ambisonic энкодер второго порядка с 14 элементами имеет 14 входных параметров и 9 выходных параметров. Если вы добавляете еще два устройства (элементы) с deviceType 0 (прочь) к энкодеру, то энкодер имеет 16 входных параметров и 9 выходных параметров. Четвертый порядок ambisonic декодер с 29 устройствами (динамики) имеет 25 входных параметров и 29 выходных параметров. Если вы добавляете еще три устройства (динамики) с deviceType 0 (прочь) к декодеру, то количество канала становится 25 входными параметрами и 32 выходными параметрами.

Когда deviceType установлен в 0 (прочь), азимут и вертикальное изменение для того канала проигнорированы; однако, значение все еще необходимо. Рекомендуется установить азимут и вертикальное изменение до 0 градусов, когда типы устройства установлены в 0 (прочь).

Плагин энкодера Ambisonic

audiopluginexample.AmbiEncoderPlugin создается вокруг audioexample.ambisonics.ambiencodemtrx и audioexample.ambisonics.ambiencode функции. Количество устройств (элементы, которые будут закодированы), является количеством входных каналов плагина энкодера. Порядок ambisonic определяет количество выходных каналов плагина энкодера.

audioexample.ambisonics.ambiencodemtrx генерирует ambisonic кодирующую матрицу от данного распоряжения ambisonic и данного списка устройств. audioexample.ambisonics.ambiencode применяется ambisonic кодирующая матрица к необработанному аудио, приводящему к ambisonic, закодировала аудио. Форматирование ambisonic аудио может быть задано с audioexample.ambisonics.ambiencode функция. Количество необработанных звуковых каналов должно равняться количеству устройств в ambisonic кодирующей матрице.

Плагин энкодера наследовался непосредственно audioPlugin базовому классу. Сменный конструктор вызывает audioexample.ambisonics.ambiencodemtrx создавать начальную кодирующую матрицу. Вызовы функции процесса audioexample.ambisonics.ambiencode применять кодирующую матрицу к аудиовходу. Выход плагина является закодированным аудио ambisonic. Кодирующая матрица повторно вычисляется только, когда сменное свойство изменяется, который минимизирует расчеты в цикле процесса.

Сменный интерфейс заполняет азимут и вертикальное изменение, но не тип устройства. Идея позади типа устройства состоит в том, чтобы добавить вне каналов к кодирующей матрице, чтобы вместить матрицу в систему координат 8x-канала. Например: второго порядка имеет 9 каналов, создайте 16 кодирующих матриц канала с первыми 9 каналами, имеющими тип устройства 1 (на) и остающимися 7 каналами, имеющими тип устройства 0 (прочь).

audioTestBench(audiopluginexample.AmbiEncoderPlugin)

audioTestBench('-close')

Смотрите код | Запустите плагин | Сгенерируйте плагин

Сгенерируйте пользовательский плагин энкодера Ambisonic

Генерация ambisonic плагины может быть включенным процессом. Функция ambiGenerateEncoderPlugin оптимизировала процесс генерации ambisonic плагины энкодера. Эта функция поддерживает до звукозаписи с эффектом присутствия седьмого порядка. Поддерживаемые форматы являются 'acn-sn3d', 'acn-n3d', 'acn-fuma', 'acn-maxn', 'fuma-sn3d', 'fuma-n3d', 'fuma-fuma', 'fuma-maxn'. Функция требует следующих входных параметров:

  1. имя audioPlugin класса

  2. список устройств положений энкодера

  3. порядок ambisonic

  4. формат ambisonic

% Provide a name for the audioPlugin class
name = 'myEncoderPlugin';

% Include a device list of element positions
device = [45 135 225 315 45 135 225 315; -45 -45 -45 -45 45 45 45 45];

% Specify the ambisonic order
order = 3;

% Specify the ambisonic format
format = 'acn-sn3d';

Запустите функцию.

audioexample.ambisonics.ambiGenerateEncoderPlugin(name, device, order, format)

После того, как спроектированный, аудио плагин может быть подтвержден, сгенерирован и развернут на сторонней цифровой звуковой рабочей станции (DAW).

Плагин декодера Ambisonic

audiopluginexample.AmbiDecoderPlugin создается вокруг audioexample.ambisonics.ambidecodemtrx и audioexample.ambisonics.ambidecode функции. Порядок ambisonic определяет количество входных каналов плагина декодера. Количество устройств (местоположения динамиков) является количеством выходных каналов плагина декодера.

audioexample.ambisonics.ambidecodemtrx генерирует ambisonic матрицу декодера от данного распоряжения ambisonic и данного списка устройств. audioexample.ambisonics.ambidecode применяет ambisonic матрицу декодера к ambisonic аудио, приводящему к декодируемому аудио. Форматирование ambisonic аудио может быть задано с audioexample.ambisonics.ambidecode функция. audioexample.ambisonics.ambidecode определяет порядок ambisonic от минимума ambisonic порядка входного аудио и ambisonic порядка матрицы декодера.

Плагин декодера наследовался непосредственно audioPlugin базовому классу. Сменный конструктор вызывает audioexample.ambisonics.ambidecodemtrx создавать начальную матрицу декодера. Вызовы функции процесса audioexample.ambisonics.ambidecode применять матрицу декодера к аудиовходу. Выход плагина декодируется аудио. Матрица декодера повторно вычисляется только, когда сменное свойство изменяется, который минимизирует расчеты в цикле процесса.

Сменный интерфейс заполняет азимут и вертикальное изменение, но не тип устройства. Идея позади типа устройства состоит в том, чтобы добавить вне каналов к кодирующей матрице, чтобы вместить матрицу в систему координат 8x-канала. Например: второго порядка имеет 9 каналов, создайте 16 кодирующих матриц канала с первыми 9 каналами, имеющими тип устройства 1 (на) и остающимися 7 каналами, имеющими тип устройства 0 (прочь).

audioTestBench(audiopluginexample.AmbiDecoderPlugin)

audioTestBench('-close')

Смотрите код | Запустите плагин | Сгенерируйте плагин

Сгенерируйте пользовательский плагин декодера Ambisonic

Генерация ambisonic плагины может быть включенным процессом. Функция ambiGenerateDecoderPlugin оптимизировала процесс генерации ambisonic плагины декодера. Эта функция поддерживает до звукозаписи с эффектом присутствия седьмого порядка. Поддерживаемые форматы являются 'acn-sn3d', 'acn-n3d', 'acn-fuma', 'acn-maxn', 'fuma-sn3d', 'fuma-n3d', 'fuma-fuma', 'fuma-maxn'. Функция требует следующих входных параметров:

  1. имя audioPlugin класс

  2. список устройств положений декодера

  3. порядок ambisonic

  4. формат ambisonic

% Provide a name for the audioPlugin class
name = 'myDecoderPlugin';

% Include a device list of speaker positions
device = [45 135 225 315 45 135 225 315; -45 -45 -45 -45 45 45 45 45];

% Specify the ambisonic order
order = 3;

% Specify the ambisonic format
format = 'acn-sn3d';

Запустите функцию.

audioexample.ambisonics.ambiGenerateDecoderPlugin(name,device,order,format)

После того, как спроектированный, аудио плагин может быть подтвержден, сгенерирован и развернут на сторонней цифровой звуковой рабочей станции (DAW).

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

Ambisonic бинауральное декодирование

Похожие темы

Ссылки

[1] Kronlachner, M. (2014). Пространственные Преобразования для Изменения Записей Ambisonic (Магистерская диссертация).

[2] https://en.wikipedia.org/wiki/Ambisonics

[3] https://en.wikipedia.org/wiki/Ambisonic_data_exchange_formats