This version is outdated by a newer approved version.DiffThis version (23 Jan 2023 11:19) was approved by ananthakalyani Sankar.The Previously approved version (16 May 2017 05:55) is available.Diff

This is an old revision of the document!

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 C# file IO.

// 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) 
System.Reflection.MethodInfo methodInfo = ss.ObjectGetMethod(obj, "settingswindowopen");
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");
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);
System.Reflection.MethodInfo methodInfo2 = ss.ObjectGetMethod(obj, "settingswindowclose");
methodInfo2.Invoke(obj, new object[]{});
resources/tools-software/sigmastudio/toolbox/mixerssplitters/audiosignalrouter.1672404352.txt.gz · Last modified: 30 Dec 2022 13:45 by ananthakalyani Sankar