本期為大家推送迪文開發者論壇獲獎開源案例——基于T5L芯片的調音臺麥克風混響回聲控制。工程師采用800×480分辨率屏幕,通過T5L串口4與混響開發板進行數據交互,精準控制音響的混響、回聲、濕聲、原聲、尾聲、衰減、延時等關鍵參數,實現高品質的音響效果。
UI素材展示
GUI工程設計
C51工程設計 (1)屏幕主程序如下:
void main(){ INIT_CPU();//系統初始化 PORT_Init();//IO口初始化 T0_Init();//定時器0初始化 T2_Init();//定時器2初始化 my_UART4_Init(115200); uart_init();//串口初始化 ws2812_writ_byte(8);//LED初始化 RetMicSet(); delay_ms(1000); ChangePage(1); while(1){ Uart_Handle_all(); OneMsHandle();//1Ms一次 TenMsHandle(); Read_0xF00();//數據自動上傳 }}void TenMsHandle(void){ if(!TenmsFlag) return; TenmsFlag=0; HunX_Wet(); HunX_Dry(); HunX_WeiYing(); HunX_ShuaiJian(); HunX_Switch(); Echo_Wet(); Echo_Dry(); Echo_Delay(); Echo_ShuaiJian();Echo_Switch();}void HunX_Wet(void){ u16readst=0; readst=Read_Dgus(0x1200); if(readst==Mic_Set.MicWetNum) return; Mic_Set.MicWetNum=readst; MicEffectSend(Mic_Set.MicWetNum*10, Mic_Set.MicDryNum*10, Mic_Set.MicDiffNum*5, Mic_Set.MicDecayNum*5, Mic_Set.HunXiangSW);}
(2)混響相關參數如下:
#if 1intreverb_parameter_val(u16 wet,u16 dry,u8 diffusion,u8 decayfactor, u8 is_bypass,u8 idmode){ #ifdefined(TCFG_MIC_EFFECT_ENABLE)&&TCFG_MIC_EFFECT_ENABLE #if1 u8 mode_id = idmode+5; Plate_reverb_TOOL_SET *parmt = &eff_mode[mode_id - mic_mode_seq0].plate_reverb_parm; parmt->parm.wet=wet; parmt->parm.dry=dry; parmt->parm.diffusion=diffusion; parmt->parm.decayfactor=decayfactor; parmt->is_bypass=is_bypass; plate_reverb_update_parm(&parmt->parm, parmt->is_bypass); #elif 1 u8 mode_id = idmode+5; //memcpy(&eff_mode[mode_id - mic_mode_seq0].echo_parm,&packet->data[1], sizeof(EF_ECHO_TOOL_SET)); EF_ECHO_TOOL_SET *parmt = &eff_mode[mode_id -mic_mode_seq0].echo_parm; parmt->parm.delay=delay_ms; echo_updata_parm(&parmt->parm, parmt->is_bypass); #elif 0//PARM_DEBUG ECHO_PARM_SET *parm = &parmt->parm; log_debug("delay%d, decayval %d, filt_enable %d, lpf_cutoff %d, wetgain %d, drygain %d\n", parm->delay, parm->decayval,parm->filt_enable, parm->lpf_cutoff, parm->wetgain, parm->drygain); #endif #endif return 0;}
(3)回聲相關參數如下:
int Echo_parameter_val(u16 wet,u16 dry,u16 delay,u16 decayfactor, u16 is_bypass,u16 idmode){ #ifdefined(TCFG_MIC_EFFECT_ENABLE) &&TCFG_MIC_EFFECT_ENABLE #ifTCFG_MIC_EFFECT_SEL==MIC_EFFECT_REVERB_ECHO u8 mode_id = idmode+5; EF_ECHO_TOOL_SET*parmt = &eff_mode[mode_id - mic_mode_seq0].echo_parm; parmt->parm.wetgain=wet; parmt->parm.drygain=dry; parmt->parm.delay=delay; parmt->parm.decayval=decayfactor; parmt->is_bypass=is_bypass; echo_updata_parm(&parmt->parm, parmt->is_bypass); #endif return 0; #endif}
-
芯片
+關注
關注
456文章
50935瀏覽量
424634 -
麥克風
+關注
關注
15文章
641瀏覽量
54850 -
開源
+關注
關注
3文章
3368瀏覽量
42567
發布評論請先 登錄
相關推薦
評論