Equalizer

Provided in this API equalizer supports:

  • fixed number of ten (10) bands;

  • four sample rates: 11025 Hz, 22050 Hz, 44100 Hz and 48000 Hz.

The center frequencies of bands are shown in table below.

Band Index

0

1

2

3

4

5

6

7

8

9

Frequency

31 Hz

62 Hz

125 Hz

250 Hz

500 Hz

1 kHz

2 kHz

4 kHz

8 kHz

16 kHz

Default gain of each band is -13 dB. To set the gains of all bands use structure equalizer_cfg. To set the gain of individual band use function equalizer_set_gain_info().

Application Example

Implementation of this API is demonstrated in the audio_processing/pipeline_equalizer example.

API Reference

Header File

Functions

esp_err_t equalizer_set_info(audio_element_handle_t self, int rate, int ch)

Set the audio sample rate and the number of channels to be processed by the equalizer.

参数
  • self – Audio element handle

  • rate – Audio sample rate

  • ch – Audio channel

返回

  • ESP_OK on success

  • ESP_ERR_INVALID_ARG invalid arguments

esp_err_t equalizer_set_gain_info(audio_element_handle_t self, int index, int value_gain, bool is_channels_gain_equal)

Set the audio gain to be processed by the equalizer.

参数
  • self – Audio element handle

  • index – The position of center frequencies of equalizer. If channel is mono, the index range is [0, 9]; If channel is stereo and is_channels_gain_equal is true, the index range is [0, 9]; If channel is stereo and is_channels_gain_equal is false, the index range is [0, 19];

  • value_gain – The value of audio gain which in index

  • is_channels_gain_equal – If audio channel is stereo, the audio gain values of two channels are equal when is_channels_gain_equal is true, otherwise it means unequal.

返回

  • ESP_OK on success

  • ESP_ERR_INVALID_ARG invalid arguments

audio_element_handle_t equalizer_init(equalizer_cfg_t *config)

Create an Audio Element handle that equalizes incoming data.

参数

config – The configuration

返回

The audio element handler

Structures

struct equalizer_cfg

Equalizer Configuration.

+——————————————————–—+ | MONO | +——————————————————–—+ | Only Left channel/Only Right channel | +——————————————————–—+ |band0|band1|band2|band3|band4|band5|band6|band7|band8|band9| +——————————————————–—+ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +——————————————————–—+

+——————————————————–—+——————————————————–—+ | DUAL | +——————————————————–—+——————————————————–—+ | Left channel | Right channel | +——————————————————–—+——————————————————–—+ |band0|band1|band2|band3|band4|band5|band6|band7|band8|band9|band0|band1|band2|band3|band4|band5|band6|band7|band8|band9| +——————————————————–—+——————————————————–—+ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +——————————————————–—+——————————————————–—+

3) Different sample rates support different EQ frequency bands. 11025: {31, 62, 125, 250, 500, 1000, 2000, 3000, 4000, 5500} 22050: {31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, 11000} 44100/48000: {31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, 16000}

备注

1) This figure indicate the default eq gain of every band in current equalizer. 2) Every channel have 10 band to set.

Public Members

int samplerate

Audio sample rate. Supported samplerate: 11025, 22050, 44100, 48000, unit: Hz

int channel

Number of audio channels. Supported channel: mono, stereo

int *set_gain

Equalizer gain

int out_rb_size

Size of output ring buffer

int task_stack

Task stack size

int task_core

Task running in core…

int task_prio

Task priority

bool stack_in_ext

Try to allocate stack in external memory

Macros

EQUALIZER_TASK_STACK
EQUALIZER_TASK_CORE
EQUALIZER_TASK_PRIO
EQUALIZER_RINGBUFFER_SIZE
DEFAULT_EQUALIZER_CONFIG()

Type Definitions

typedef struct equalizer_cfg equalizer_cfg_t

Equalizer Configuration.

+——————————————————–—+ | MONO | +——————————————————–—+ | Only Left channel/Only Right channel | +——————————————————–—+ |band0|band1|band2|band3|band4|band5|band6|band7|band8|band9| +——————————————————–—+ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +——————————————————–—+

+——————————————————–—+——————————————————–—+ | DUAL | +——————————————————–—+——————————————————–—+ | Left channel | Right channel | +——————————————————–—+——————————————————–—+ |band0|band1|band2|band3|band4|band5|band6|band7|band8|band9|band0|band1|band2|band3|band4|band5|band6|band7|band8|band9| +——————————————————–—+——————————————————–—+ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +——————————————————–—+——————————————————–—+

3) Different sample rates support different EQ frequency bands. 11025: {31, 62, 125, 250, 500, 1000, 2000, 3000, 4000, 5500} 22050: {31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, 11000} 44100/48000: {31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, 16000}

备注

1) This figure indicate the default eq gain of every band in current equalizer. 2) Every channel have 10 band to set.