Содержание
Audio Signal Router
Ячейка Audio Signal Routers включает 2 различные версии.
- Audio Signal Router
- Audio Signal Router External Index Selectable
Audio Signal Router
Audio Signal Router смешивает M различных входов в N различных выходов с различными коэффициентами усиления. Количество входных и выходных пинов настраивается.
Этот модуль поддерживает несколько конфигураций микшера. Каждая конфигурация микшера имеет коэффициенты усиления для всех входов и выходов. Также доступен отдельный коэффициент усиления для каждой комбинации вход-выход. Все коэффициенты усиления имеют соответствующий элемент управления mute для быстрого отключения конкретного усиления. Текущая выбранная вкладка (Mix #) в окне микшера загружается в целевой процессор и используется для смешивания.
Следующие уравнения показывают расчет выходного сигнала для данного примера таблицы микшера.
| Out0 | Out1 | ||
|---|---|---|---|
| Og0 | Og1 | ||
| In0 | Ig0 | G00 | G01 |
| In1 | Ig1 | G10 | G11 |
- Out0 = Og0 * ( G00 * Ig0 * In0 + G10 * Ig1 * In1)
- Out1 = Og1 * ( G01 * Ig0 * In0 + G11 * Ig1 * In1)
Если количество входных/выходных каналов превышает 16, окно микшера разделяется на 16 входных/выходных каналов для улучшения производительности GUI.
Метки для каждого из входных/выходных каналов можно редактировать. Обновленное имя канала будет отображаться во всплывающей подсказке каждого пина, как показано ниже.
Audio Signal Router External Index Selectable
Функциональность этого модуля такая же, как у Audio Signal Router, за исключением того, что текущий микшер (Mix #) выбирается через внешний вход, как показано ниже. Управляющий пин ожидает входной сигнал в формате (32.0) для процессоров ADAU145x и в формате (28.0) для других Sigma DSP.
Поддержка скриптов Audio Signal Router
Пользователь может получить доступ к этому модулю из скрипта.
Следующий пример кода показывает, как читать параметры из файла с помощью скрипта SigmaStudio.
// #LANGUAGE# C# // Get Cell object object obj = ss.GetCellObject("Router1"); System.Collections.ArrayList arr = null; System.Reflection.MethodInfo[] memberInfos = ss.ObjectGetMethods(obj); /* foreach (System.Reflection.MethodInfo memberInfo in memberInfos) { ss.PrintLine(memberInfo.Name); } */ // OPEN the SETTINGWINDOW System.Reflection.MethodInfo methodInfo = ss.ObjectGetMethod(obj, "settingswindowopen"); ss.PrintLine(methodInfo.Name); methodInfo.Invoke(obj, new object[]{}); // CHANGE the Table INDEX // and set the values // chage the tabindex count based on need and will get the tabindex value.which is used here. // setTabIndex should be 0 to 3. for (int idx =0; idx <= 1; idx++) { System.Reflection.MethodInfo methodInfo1 = ss.ObjectGetMethod(obj, "setTabIndex"); ss.PrintLine(methodInfo1.Name); methodInfo1.Invoke(obj, new object[]{idx,2}); ss.ObjectSetProperties("setControlValue", "Router1", 0, 0, "InputGain_0" , 6.0); ss.ObjectSetProperties("setControlValue", "Router1", 0, 0, "InputGain_10" , 2); ss.ObjectSetProperties("setControlValue", "Router1", 0, 0, "InputGain_12" , 3); ss.ObjectSetProperties("setControlValue", "Router1", 0, 0, "OutputGain_10" , 0.3); ss.ObjectSetProperties("setControlValue", "Router1", 0, 0, "OutputGain_12" , 0.3); ss.ObjectSetProperties("setControlValue", "Router1", 0, 0, "OutputGain_9" , 0.3); ss.ObjectSetProperties("setControlValue", "Router1", 0, 0, "CrossGain_0_1" , 0.5); ss.ObjectSetProperties("setControlValue", "Router1", 0, 0, "CrossGain_0_0" ,0.6); } // CLOSE the SETTINGWINDOW System.Reflection.MethodInfo methodInfo2 = ss.ObjectGetMethod(obj, "settingswindowclose"); ss.PrintLine(methodInfo2.Name); methodInfo2.Invoke(obj, new object[]{}); //