This is an old revision of the document!
Click here to return to the Filters page
The IdxSelectable Indp. Multiple Band filter has two variants
Name | Format [int/dec] - [control/audio] | Function Description |
Pin 0: Index Input | int - control | The Index input selects the row of filters to use. The value of this index must be between 0 and the number of rows - 1 |
Pin 1: Audio Input 1 | decimal - audio | Left Channel audio |
Pin 1: Audio Input 2 | decimal - audio | Right Channel audio |
Name | Format [int/dec] - [control/audio] | Function Description |
Pin 0: Audio Output 1 | decimal - audio | Filtered output left channel |
Pin 0: Audio Output 2 | decimal - audio | Filtered output right channel |
GUI Control Name | Default Value | Range | Function Description |
Radio Button Select | Unselected | [Unselected, Selected] | Selects the row of filters to be displayed in the Probe/Stimulus Transfer Function window. Note: this has no DSP function, only for display. |
Number of Biquads | 1 | [1, 30] | Sets the number of biquads in the filter row. This number can be different for each row. |
Filter Editor Button | n/a | n/a | Clicking this button opens a new window for editing the filter values. |
GUI Control Name | Default Value | Range | Function Description |
Filter Type (Icon) | Parametric Low Shelf Hi Shelf Low Pass Hi Pass] | [Parametric | Clicking on the filter icon in the editor window scrolls through the possible filter structures available. |
Boost | 0 | [-20, 20] dB | Cut or Boost of the Center Frequency |
Frequency | 1000 | [20, 20000] Hz | Sets the Center or Cutoff Frequency |
Q/Slope | 1.41 | [0.1, 15] | Sets the Q or Slope |
Gain | 0 | [-15, 15] dB | Overall gain of the filter |
GUI Control Name | Compiler Name | Function Description |
Filter Type (Icon) Boost Frequency Q/Slope Gain | IdxSelIndpBandAlg100b2 IdxSelIndpBandAlg100b1 IdxSelIndpBandAlg100b0 IdxSelIndpBandAlg100a2 IdxSelIndpBandAlg100a1 | Changing any one of the 5 filter GUI controls, will write 5 DSP parameters to the DSP. These are the filter coefficients (b2, b1, b0, -a2, -a1) and they are determined by the formulas found in the algorithm section for General 2nd Order Filters |
The filter algorithm used is a 2nd Order General Filter (Double Precision) based on a Direct Form I structure. Growth of the algorithm allows for multiple rows or EQ banks. The index input pin to the algorithm allows a data control signal to choose which row of filters is used for processing the input signal. The data index must be within the range of 0 to number of filter rows - 1. Independent control is given to each filter row, being able to have different number of biquads per row, and different filter settings. The number of biquads per row is determined by the numeric text box. The image below shows the Top Level Control and corresponding Filter Editor Window:
The IdxSelectable Indp. Multiple Band Filter makes use of the GEN3 SigamDSP core features in order to save program and parameter RAM. The filter structure code is part of a subroutine and is called multiple times for the number of biquads in the selected row. A loop structure also repeats the subroutine code for multiple biquads. This leads to a great savings in program RAM compared to the traditional filters in the library.
The following image shows a comparison of the IdxSelectable Indp Multiple Band Filter, with traditional General 2nd order filters set-up in a similar manner. The main difference between the two methods, is that for the IdxSelectable filter, a data input index selects which filters are used for processing. In the traditional case, a coefficient parameter from the mux switch, selects the filters to be used. Also, because of the loop and subroutine structures within the algorithm code, the program and parameter savings are much greater for the IdxSelectable filter, than the combination of the traditional filters.
The DC-Input entry is in integer format (28.0), in order to select the row of filters to be used. Since the value is “2” the last set of filters (with 2 biquads) will be used for the processing. The radio-button selection is on row “0” so that when the Probe/Stimulus window is used, the transfer function for the first row of filters with 3 biquads will be displayed. A mux switch allows for comparison between the filter processing between the General 2nd Order and the Index Selectable Band Filter.
Toolbox Path | Filters - Second Order - Lookup - Double Precision - 2 Ch - IdxSelectable Indp. Multiple Band Filter |
Cores Supported | ADAU144x ADAU176x ADAU178x |
“Grow Algorithm” Supported | yes - See Algorithm Growth for more information |
“Add Algorithm” Supported | no |
Subroutine/Loop Based | yes |
Program RAM | 22* (+16 subroutine code) - See Subroutine/Loop Information |
Data RAM | 20* - Based on 1 Row 1 Biquad |
Parameter RAM | 11* - Based on 1 Row 1 Biquad |
*Numbers are based on one instance of the algorithm with no additional “add” or “grow” Depending on the number filters within a given row, more Data RAM and Parameter RAM will be used. For the most accurate count of RAM being used for your instance of this algorithm, check the Output window within SigmaStudio for a full report. Each additional biquad in a given row, will add 12 Data RAM and 5 Parameter RAM.
This algorithm makes use of GEN3 core features for both subroutines and loops. There is a savings on Program RAM because of the use of these features; however it is important to note the MIPS/cycles usage in order to not exceed the core's limit. The subroutine used for this algorithm is called “BiquadLoopingDP” and has 16 instructions. The number of MIPS is dependant on the max number of biquads in a given filter row. The Output window within SigmaStudio reports the both the number of instructions used and the MIPS for the subroutine.
Outputs of the current and previously selected filter indexes are slewed to prevent audio pops/clicks during the transition.
GUI Control Name | Compiler Name | Function Description |
---|---|---|
Filter Type (Icon) Boost Frequency Q/Slope Gain | IdxSelIndpBandAlg100b2 IdxSelIndpBandAlg100b1 IdxSelIndpBandAlg100b0 IdxSelIndpBandAlg100a2 IdxSelIndpBandAlg100a1 | Changing any one of the 5 filter GUI controls, will write 5 DSP parameters to the DSP. These are the filter coefficients (b2, b1, b0, -a2, -a1) and they are determined by the formulas found in the algorithm section for General 2nd Order Filters |
NA | IdxSelIndpBandsAlgMDPSlewAlg1alpha | Slew Vlaue |