Click here to return to the Mixers/Splitters page
The Audio Signal Routers cell includes 2 different versions.
Audio Signal router mixes M different inputs to N different outputs with various gains. The number of input and output pins are configurable.
This module supports multiple mixer configurations. Each mixer configuration has gains for all the inputs and outputs. A separate gain is available for each of input output combination also. All the gains has a corresponding mute control to quickly mute the particular gain. The current Tab selected (Mix #) in the mixer window is downloaded to the target and used for mixing.
The following equations show the calculation of the output for given sample mixer table.
Out0 | Out1 | ||
---|---|---|---|
Og0 | Og1 | ||
In0 | Ig0 | G00 | G01 |
In1 | Ig1 | G10 | G11 |
If the input/output channels are more than 16, then the mixer window is split for 16 input/output channels to improve GUI performance.
Labels for each of the input/output channels can be edited. This updated channel name will pear on the each of the Pin's tooltip as show below.
This functionality of this module is same as audio signal router except that the current mixer (Mix #) is selected through an external input as shown below. The control pin expects the input in (32.0) format for ADAU145x processors and (28.0) format for other Sigma DSPs.
User can able to access this module from script.
The following sample code shows how to read parameters from a file using Sigma studio script.
// #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[]{}); //