.. _完整的浮点EQ: 完整的浮点EQ ========================================= AD16N内置硬件EQ,最大可以配置10段EQ参数。 OTP方案因存储空间限制,只支持单个简单EQ音效; Flash方案可支持完整的浮点EQ音效,支持多路EQ同时工作; 本章简要介绍完整的浮点EQ音效及在最后小节简要说明新版本EQ使用流程。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _浮点EQ配置(Flash工程): 浮点EQ配置(Flash工程) ########################################### 一个浮点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_type_tab[]数组管理,不同EQ之间可以任意切换。 .. image:: cmp-1-1-float-eq-EQ_parm.png :alt: "图1 EQ系数表对应关系" :align: center .. centered:: 图1 EQ系数表对应关系 浮点EQ可同时运行多路运算,运算多路EQ比运算单路EQ RAM资源开销大; const变量config_hw_single_eq = 1时,仅运行单路EQ时,只消耗344字节RAM空间; const变量config_hw_single_eq = 0时,可运行多路EQ,每一路EQ消耗984字节RAM空间; .. image:: cmp-1-2-float-eq-multipath.png :alt: "图2 多路浮点EQ配置" :align: center .. centered:: 图2 多路浮点EQ配置 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (注意:浮点EQ在ad16n_flash-release_v1.3.0版本以及之后后管理模式发生改动,下面简单说明新旧版本EQ模式管理区别。) .. _旧版本EQ模式管理: 旧版本EQ模式管理 ******************************************************************************************************************* ad16n_flash-release_v1.2.1版本及往前版本,所有EQ模式统一由eq_type_tab[]数组管理,不同EQ之间可以任意切换。 .. image:: cmp-1-3-float-eq-config.png :alt: "图3 旧版本EQ模式由eq_type_tab[]数组管理" :align: center .. centered:: 图3 旧版本EQ模式由eq_type_tab[]数组管理 .. _新版本EQ模式管理: 新版本EQ模式管理 ******************************************************************************************************************* ad16n_flash-release_v1.3.0版本更新后,EQ模式管理方式发生改动,具体改动原理如下: :: 1、旧版本EQ模式切换是由SDK里的eq_type_tab[]数组管理; 2、新版本EQ模式切换是采用PC工具的在线EQ调试助手生成的eq_cfg.bin文件进行管理,方便客户调试EQ参数时听取效果; 新版本EQ使用时,需要将工具生成的bin文件放置到下载目录里,并重命名为eq_cfg.bin,打包成dir_eq文件下载到小机当中。 (注意:SDK中默认识别EQ文件路径名为dir_eq/eq_cfg.bin,如果需要更改bin文件名可以修改CFG_EQ_FILE定义的路径。) .. image:: cmp-1-1-float-eq-path.png :alt: "图4 小机识别bin文件路径" :align: center .. centered:: 图4 小机识别bin文件路径 目前公版SDK里的eq_cfg.bin文件已内含6中EQ模式,分别为normal、country、jazz、rock、pop、classic模式。 具体使用示例可以阅读本章最后章节。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _浮点EQ相关接口(Flash工程): 浮点EQ相关接口(Flash工程) ################################################## 函数 void \*link_eq_sound(void \*p_sound_out, void \*p_dac_cbuf, void \**pp_effect, u32 sr, u8 ch) ******************************************************************************************************************* 此函数只适用于v1.3.0版本及往后版本更新的EQ初始化。 函数 void \*link_eq_sound(void \*p_sound_out, void \*p_dac_cbuf, void \**pp_effect, u32 sr, u8 ch) ******************************************************************************************************************* 此函数实现EQ模块的初始化。此函数主要实现移频啸叫抑制算法的启动,将抑制器链接到音频链路中: :: 1、p_sound_out:当前算法前级的音频通道句柄; 2、p_dac_cbuf:输出到DAC的OBUF; 3、pp_effect:存放当前音效算法的控制句柄指针的指针; 4、sr:当前输入音频的采样率; 5、ch:声道数; 6、返回值:启动之后最新的音频通道句柄; 函数 int eq_mode_sw(void \*parm) **************************************************************************************************** 此函数实现切换下一个EQ模式,可在EQ运行中调用,其中参数: :: 1、parm:已启动的eq音效句柄; 2、返回值: -1, 切换失败,EQ未启动; 0, 切换成功; 函数 u8 get_eq_mode_total_num(void \*parm) **************************************************************************************************** 此函数只适用于获取v1.3.0版本及往后版本更新的eq_cfg.bin文件里的EQ模式总数: :: 1、返回值:eq_cfg.bin文件中保存的EQ模式总数 函数 u8 get_eq_mode_total_num(void \*parm) **************************************************************************************************** 此函数只适用于获取v1.3.0版本及往后版本更新的eq_cfg.bin文件里的EQ模式名字: :: 1、eq_mode:获取第几组EQ模式名字对应的序号; 2、返回值:对应序号的EQ模式名字指针; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _在线EQ调试助手使用一般流程: 在线EQ调试助手使用一般流程 ################################################## 下面介绍新版本EQ使用在线EQ调试助手调试出目标效果后搭配小机使用一般流程。 SDK里开启PC模式和使用在线EQ调试工具宏定义 **************************************************************************************************** 在app_config.h里使能TCFG_PC_ENABLE和TCFG_CFG_TOOL_ENABLE。 (注意:开启在线EQ调试助手后,PC模式下需要搭配CDC协议(CDC_CLASS)使用,此时与读卡器功能(MASSSTORAGE_CLASS)冲突) .. image:: cmp-1-4-float-eq-app_config.h.png :alt: "图5 使用在线EQ调试助手前app_config.h配置" :align: center .. centered:: 图5 使用在线EQ调试助手前app_config.h配置 小机进入PC模式后打开使用AD16N在线EQ调试助手 **************************************************************************************************** AD16N在线EQ调试助手工具放在了下载目录里的eq_tool文件夹里。 小机进入PC模式后,打开在线EQ调试工具,在设置界面中的端口选项找到并选中串行设备,打开后会自动跳入到音效调节界面。 常见问题和解决办法: :: 1、无法找到串行设备:检查是否打开上一小节图5中的TCFG_EQ_TOOL_ENABLE宏; .. image:: cmp-1-5-float-eq-open_tool.png :alt: "图6 打开AD16N在线EQ调试助手工具" :align: center .. centered:: 图6 打开AD16N在线EQ调试助手工具 .. image:: cmp-1-6-float-eq-connect_tool.png :alt: "图7 小机与工具进行连接" :align: center .. centered:: 图7 小机与工具进行连接 .. image:: cmp-1-6-float-eq-effect_part.png :alt: "图8 小机与工具成功连接后自动进入音效调节界面" :align: center .. centered:: 图8 小机与工具成功连接后自动进入音效调节界面 在音效调节界面双击点击musicEQ进入在线调节EQ曲线界面 **************************************************************************************************** 在音效调节界面左上角有帮助文档选项,有具体文档方便用户理解使用该工具。 双击点击进入musicEQ后,可以通过拉曲线的方式实时听取小机EQ效果;当调试好具体效果后可以点击保存样例,保存当前曲线。 退出musicEQ后,在音效调节界面选中保存文件,会生成一个.bin,里面包含了在musicEQ里保存样例的各组EQ模式。 (注意:SDK固定最大支持10段EQ(即工具中的10个序号)!!!) .. image:: cmp-1-7-float-eq-effect_line.png :alt: "图9 工具在线调试EQ曲线并保存该EQ曲线参数" :align: center .. centered:: 图9 工具在线调试EQ曲线并保存该EQ曲线参数 把生成的.bin文件下载到小机上 **************************************************************************************************** 把上一小节生成的.bin文件打包成dir_eq放在下载目录(即与download_bat.c同一目录下)当中,并把dir_eq加入到download_bat.c的资源文件下载当中,此时重新下载编译即可。 (注意:下载进入小机的.bin文件需要命名为eq_cfg.bin,打包文件需要命名为dir_eq) .. image:: cmp-1-8-float-eq-packet_way.png :alt: "图10 打包流程" :align: center .. centered:: 图10 打包流程 .. image:: cmp-1-9-float-eq-download_bat.png :alt: "图11 将dir_eq文件夹添加进下载目录中" :align: center .. centered:: 图11 将dir_eq文件夹添加进下载目录中 SDK具体使用EQ样例 **************************************************************************************************** 不再使用调试工具后,SDK里可以失能TCFG_CFG_TOOL_ENABLE,以免PC模式下无法使用读卡器功能(MASSSTORAGE_CLASS)。 在公版SDK里,音乐模式和PC模式都默认开启了EQ;如在音乐模式下,只需要调用eq_mode_sw()函数即可自动切换在图9里调试好的EQ模式,并打印出切换后EQ模式的序号和其名字。 .. image:: cmp-1-10-float-eq-music_mode_linkeq.png :alt: "图12 音乐模式下解码器添加BIT_EQ选项后解码会连接EQ" :align: center .. centered:: 图12 音乐模式下解码器添加BIT_EQ选项后解码会连接EQ .. image:: cmp-1-11-float-eq-music_mode_switcheq.png :alt: "图13 音乐模式下切换EQ模式" :align: center .. centered:: 图13 音乐模式下切换EQ模式 .. image:: cmp-1-12-float-eq-music_mode_printf_eq.png :alt: "图14 音乐模式下切换EQ模式打印" :align: center .. centered:: 图14 音乐模式下切换EQ模式打印