KT24-1110_65E-HA-651B/cpu/br25/audio_mic/effect_reg.c
2024-11-10 18:44:17 +08:00

128 lines
3.6 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "effect_reg.h"
#include "app_config.h"
#include "audio_enc.h"
/**********************混响功能选配*********************************/
#if (TCFG_MIC_EFFECT_ENABLE)
#ifdef CONFIG_BOARD_AC696X_MEGAPHONE//扩音器版级默认打开陷波啸叫抑制
#define MIC_EFFECT_CONFIG 0 \
| BIT(MIC_EFFECT_CONFIG_EQ0) \
| BIT(MIC_EFFECT_CONFIG_NOISEGATE) \
| BIT(MIC_EFFECT_CONFIG_HOWLING) \
| BIT(MIC_EFFECT_CONFIG_HOWLING_TRAP) \
/* | BIT(MIC_EFFECT_CONFIG_ENERGY_DETECT) \ */
/* | BIT(MIC_EFFECT_CONFIG_DVOL) \ */
#else
#define MIC_EFFECT_CONFIG 0 \
| BIT(MIC_EFFECT_CONFIG_EQ0) \
| BIT(MIC_EFFECT_CONFIG_NOISEGATE) \
| BIT(MIC_EFFECT_CONFIG_HOWLING) \
/* | BIT(MIC_EFFECT_CONFIG_HOWLING_TRAP) \ */
/* | BIT(MIC_EFFECT_CONFIG_ENERGY_DETECT) \ */
/* | BIT(MIC_EFFECT_CONFIG_DVOL) \ */
#endif
/*********************************************************************/
const struct __mic_effect_parm effect_parm_default = {
.effect_config = MIC_EFFECT_CONFIG,///混响通路支持哪些功能
.effect_run = MIC_EFFECT_CONFIG,///混响打开之时, 默认打开的功能
.sample_rate = MIC_EFFECT_SAMPLERATE,
};
const struct __mic_stream_parm effect_mic_stream_parm_default = {
#if (TCFG_MIC_EFFECT_SEL == MIC_EFFECT_REVERB)
.mic_gain = 0,
#else
.mic_gain = 5,
#endif
.sample_rate = MIC_EFFECT_SAMPLERATE,//采样率
#if (RECORDER_MIX_EN)
.point_unit = 160,//一次处理数据的数据单元, 单位点 4对齐(要配合mic起中断点数修改)
.dac_delay = 20,//dac硬件混响延时 单位ms 要大于 point_unit*2
#else
#if (TCFG_MIC_EFFECT_SEL == MIC_EFFECT_REVERB)
.point_unit = REVERB_LADC_IRQ_POINTS,//一次处理数据的数据单元, 单位点 4对齐(要配合mic起中断点数修改)
.dac_delay = (int)((REVERB_LADC_IRQ_POINTS * 2) / (TCFG_REVERB_SAMPLERATE_DEFUAL / 1000.0)), //6,//8,//8,//10,//dac硬件混响延时 单位ms 要大于 point_unit*2 // (REVERB_LADC_IRQ_POINTS*1.5)/(TCFG_REVERB_SAMPLERATE_DEFUAL/1000.0)
#else
.point_unit = 256,//((MIC_EFFECT_SAMPLERATE / 1000) * 4), //一次处理数据的数据单元, 单位点 4对齐(要配合mic起中断点数修改)
.dac_delay = 12,//dac硬件混响延时 单位ms 要大于 point_unit*2
#endif
#endif
};
const EF_REVERB_FIX_PARM effect_echo_fix_parm_default = {
.sr = MIC_EFFECT_SAMPLERATE, ////采样率
.max_ms = 200, ////所需要的最大延时,影响 need_buf 大小
};
static const u16 r_dvol_table[] = {
0 , //0
93 , //1
111 , //2
132 , //3
158 , //4
189 , //5
226 , //6
270 , //7
323 , //8
386 , //9
462 , //10
552 , //11
660 , //12
789 , //13
943 , //14
1127, //15
1347, //16
1610, //17
1925, //18
2301, //19
2751, //20
3288, //21
3930, //22
4698, //23
5616, //24
6713, //25
8025, //26
9592, //27
11466,//28
15200,//29
16000,//30
16384 //31
};
audio_dig_vol_param effect_dvol_default_parm = {
#if (SOUNDCARD_ENABLE)
.vol_start = 0,//30,
#else
.vol_start = 30,
#endif
.vol_max = ARRAY_SIZE(r_dvol_table) - 1,
.ch_total = 1,
.fade_en = 1,
.fade_points_step = 2,
.fade_gain_step = 2,
.vol_list = (void *)r_dvol_table,
};
const struct __effect_dodge_parm dodge_parm = {
.dodge_in_thread = 1000,//触发闪避的能量阈值
.dodge_in_time_ms = 1,//能量值持续大于dodge_in_thread 就触发闪避
.dodge_out_thread = 1000,//退出闪避的能量阈值
.dodge_out_time_ms = 500,//能量值持续小于dodge_out_thread 就退出闪避
};
#endif//TCFG_MIC_EFFECT_ENABLE