Available Audio Modules

This page provides a quick overview of all the current available audio algorithms, or modules, on AudioReach. These have been validated on Raspberry Pi 4.

More information about the configurable parameters and capabilities of these modules can be found in AudioReach Creator. To view this, clone the reference ACDB files in the audioreach-conf repository, and then open it in ARC. On the top bar, find View -> Module List. The list of modules will appear on the left. (Please note that not all modules available in the Module List have been added to the opensource project).

../_images/module_list.png

Module Name

Description

Source code path

Dependencies

Binary/Source

PCM Converter

The PCM converter is used to convert the properites of a PCM stream,
such as the endianness, interleaving, bit width, number of channels,
data format converter, etc. The PCM converter, MFC, PCM deocder,
and PCM encoder are compiled together. However, they can be used as
separate modules in AudioReach Creator.

modules/cmn/pcm_mf_cnv

IIR & dynamic resamplers, channel mixer

Source

Accumulator & Limiter

The Accumulator & Limiter is also known as SAL
(simple accumulator limiter). It can be used to mix concurrent PCM
streams. When using SAL, you must ensure that all of the input
streams are of the same data format.

modules/cmn/simple_accumulator_limiter

Limiter

Binary
32-bit ARM

PCM Decoder

The PCM decoder and encoder modules are under the “modules/audio”
folder, but they are compiled in the PCM converter build file.
However, they are separate modules in ARC.

modules/audio/pcm_decoder

None

Source

PCM Encoder

Encodes PCM streams.

modules/audio/pcm_encoder

None

Source

MFC

MFC stands for Media Format Converter. It is compiled as a part of
PCM converter, but the source code for MFC is not available.
You can, however, use MFC as a standalone module in ARC.
MFC has many configurable properties in ARC. It allows you to
resample streams, change channel mixer coefficients, and set the
output media format (sample rate, bit_width, and number of channels).
MFC has all the functionality of the channel_mixer, iir resampler,
and dynamic resampler modules.

modules/cmn/pcm_mf_cnv

IIR & dynamic resamplers, channel mixer

None

Bass Boost

The bass boost module is used to increase the bass for audio
playback.

modules/processing/bassboost

Limiter, DRC, MS-IIR Filter

Source

Channel Mixer

Channel mixer will upmix or downmix channels based on the
configured coefficients.

modules/processing/channel_mixer

None

Source

FIR Filter

FIR stands for “Finite Impulse Response” tuning filter module.
It supports multi-channel filtering.

modules/processing/filters/fir

None

Source

MS-IIR Filter

MS-IIR stands for multi-stage IIR Filter.
This is a multiple channel tuning filter module.

modules/processing/filters/multi_stage_iir

None

Source

Dynamic Range Control

Used to compress the range of an audio signal, reducing the range
between the lowest and highest signals. It is not a standalone
module in ARC, because all of its functionality is included in the
IIR_MBDRC module.

modules/processing/gain_control/drc

None

Binary
32-bit ARM

IIR_MBDRC

MBDRC stands for multiband dynamic range control. It has several
capabilities in real time calibration mode, such as setting the
gain, compressing/expanding, and configuring the limiter.
It also contains all the functionality of the DRC module.

modules/processing/gain_control/iir_mbdrc

DRC, Limiter

Binary
32-bit ARM

Limiter

Limiter cannot be used as a standalone module in ARC. However, it is
a dependency for other modules, such as SAL and IIR_MBDRC.

modules/processing/gain_control/limiter

None

Source

Popless Equalizer

A basic tuning and equalizing module.

modules/processing/PoplessEqualizer

MS-IIR Filter

Source

Dynamic Resampler

The dynamic resampler can be used to convert PCM stream to any
arbitrary sample rate. Dynamic resampler does not have a standalone
module in ARC, but it can be used through the MFC module.

modules/processing/resamplers/dynamic_resampler

None

Binary
32-bit ARM

IIR Resampler

IIR resampler is a basic SW resampler that uses an efficient
implementation based on IIR filters. It also does not have a
standalone module in ARC, but it can be used through the MFC module.

modules/processing/resamplers/iir_resampler

None

Binary
32-bit ARM

Shoebox

The shoebox module reduces reverb effects in a cubical room. Shoebox
and reverb are two different modules in ARC; however, they share the
same source code. Several variables can be set to optimize the
shoebox module, such as the room size, the material that the room is
made out of, and more.

modules/processing/shoebox_reverb

None

Binary
32-bit ARM

Reverb

The reverb module is similar to shoebox, but it has presets for
the type of environment (such as arena, city, hallway, etc.).

modules/processing/shoebox_reverb

None

Binary
32-bit ARM

Virtualizer

Virtualizer can be used to configure surround sound.

modules/processing/Virtualizer

MS-IIR Filter, Limiter

Binary
32-bit ARM

Gain

The Gain module is used to increase and decrease the volume of
streams. The layout for both gain and volume control is a little bit
different. The build file for gain can be found under
“processing/volume_control/capi/gain/build.” However, the source code
for both gain and soft volume modules is under “volume_control/lib”.

modules/processing/volume_control/capi/gain

None

Source

Volume Control

Volume Control includes basic volume controls, such as gain and mute.
It can also be used to change the volume for each individual channel,
or there is an option for “master gain” that will set the gain for
all channels at once.

modules/processing/volume_control/capi/soft_vol

None

Source