Wiki

This version (23 Jan 2023 11:21) was approved by ananthakalyani Sankar.The Previously approved version (30 Dec 2022 13:45) is available.Diff

Audio Signal Router

Click here to return to the Mixers/Splitters page


The Audio Signal Routers cell includes 2 different versions.

  1. Audio Signal Router
  2. Audio Signal Router External Index Selectable

Audio Signal Router

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
  1. Out0 = Og0 * ( G00 * Ig0 * In0 + G10 * Ig1 * In1)
  2. Out1 = Og1 * ( G01 * Ig0 * In0 + G11 * Ig1 * In1)

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.

Audio Signal Router External Index Selectable

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.

Audio Signal Router Script support

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[]{});
 
//
resources/tools-software/sigmastudio/toolbox/mixerssplitters/audiosignalrouter.txt · Last modified: 23 Jan 2023 11:21 by ananthakalyani Sankar