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).

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 |