4. 软件浮点EQ(pcm_eq_float)

AD23N支持软件浮点EQ,支持的段数仅受CPU算力和可申请到的RAM资源限制,段数越多,运算量越大。

本章简要介绍软件浮点EQ音效(pcm_eq_float)及在最后小节简要说明新版本EQ使用流程。


4.1. 浮点EQ配置

一个浮点EQ音效由EQ系数表和总增益组成,其中:

1、EQ系数表默认使用10段EQ参数,每一段可以单独配置滤波器(LOW_PASS、HIGH_PASS、BAND_PASS等)、中心频点(20~20kHz)、增益(-18~18dB)以及Q值(0.3~30.0);

2、总增益默认配置范围为-90~20dB,影响每一段EQ系数。

所有EQ模式统一由eq_param_tab[]数组管理,不同EQ参数之间可以任意切换。

注:如果用户的EQ参数段数有出现改动,除了修改参数以外,还需要修改头文件pcm_eq_float.h的EQ_SECTION_MAX的宏,宏配置的段数需要和实际EQ参数的段数一致。


4.1.1. EQ参数管理

目前所有EQ参数统一由eq_param_tab[]数组管理,不同EQ参数之间可以任意切换。

"图3 EQ参数由eq_param_tab[]数组管理"

图3 EQ参数由eq_param_tab[]数组管理

4.2. 浮点EQ相关接口

4.2.2. 函数 void eq_release(void **ppeffect)

该函数用于释放音效申请的资源。适用于带有MMU的芯片(如AD23N)

1、ppeffect:存放当前音效算法控制句柄指针的指针,即link时传入的指针;

4.2.3. 函数 void update_pcm_eq_float_param(void *peffect)

此函数实现切换下一个EQ参数,可在EQ运行中调用,其中参数:

1、peffect:存放当前音效算法的控制句柄指针;

仅支持切换段数相同的EQ参数,不同段数的EQ参数对ram消耗不一致