【Open-Source】 Reverb da Echo Control for Mix Console Makiriphone Bisa T5L
——Daga Dandalin Masu Haɓaka DWIN
Mun yi farin cikin gabatar da karar buɗaɗɗen buɗaɗɗen lambar yabo daga Dandalin Masu Haɓaka DWIN a yau: reverb da sarrafa amsawa don haɗa makirufo na wasan bidiyo dangane da guntuwar T5L. Injiniyan mu yana amfani da nunin ƙuduri na 800x480 don yin hulɗa tare da hukumar haɓaka reverb ta hanyar UART 4 na T5L, yana ba da damar daidaita daidaitattun sigogin sauti masu mahimmanci kamar reverb, echo, rigar sauti, bushewar sauti, ƙararrawa, lalata da jinkiri don ingantaccen tasirin sauti.
[Materials UI]
[GUI Project Design]
【C51 Aikin】
(1) Babban shirin allo shine kamar haka:
banza main(){
INIT_CPU();// Ƙaddamar da tsarin
PORT_Init();// Fara tashar IO
T0_Init();// Fara mai ƙidayar lokaci 0
T2_Init();// Fara mai ƙidayar lokaci 2
my_UART4_Init(115200);
uart_init();// Fara tashar tashar jiragen ruwa
ws2812_writ_byte(8);// Fara hasken LED
RetMicSet();
jinkiri_ms(1000);
Canja Shafi (1);
yayin (1){
Uart_Handle_all();
OneMsHandle ();//1Ms kowane lokaci
TenMsHandle ();
Read_0xF00();//Data ta atomatik loda
}
}
fanko TenMsHandle(void)
{
idan (!TenmsFlag)
dawowa;
TenmsFlag=0;
HunX_Law();
HunX_Dry();
HunX_WeiYing();
HunX_ShuaiJian();
HunX_Switch ();
Echo_Wet();
Echo_Dry();
Echo_Delay();
Echo_ShuaiJian();
Echo_Switch();
}
fanko HunX_Wet(void)
{
u16readst=0;
karantawa = Karanta_Dgus (0x1200);
idan (karanta==Mic_Set.MicWetNum)
dawowa;
Mic_Set.MicWetNum= karanta;
MicEffectSend(Mic_Set.MicWetNum*10,
Mic_Set.MicDryNum*10,
Mic_Set.MicDiffNum*5,
Mic_Set.MicDecayNum*5,
Mic_Set.HunXiangSW);
(2) Ma'auni masu alaƙa da maimaitawa sune kamar haka
#idan 1
intreverb_parameter_val(u16 rigar,u16 bushe,u8 yadawa,u8 lalatacce,
u8 is_bypass, u8 idmode)
{
#idan an ayyana(TCFG_MIC_EFFECT_ENABLE)&&TCFG_MIC_EFFECT_ENABLE
#idan 1
u8 yanayin_id = idmode+5;
Plate_reverb_TOOL_SET *parmt = &eff_mode[mode_id - mic_mode_seq0].plate_reverb_parm;
parmt->parm.wet=rigar;
parmt->parm.dry= bushe;
parmt->parm.diffusion= yaduwa;
parmt->parm.decayfactor=mai lalata;
parmt->is_bypass=is_bypass;
plate_reverb_update_parm(&parmt->parm, parmt->is_bypass);
#alif 1
u8 mode_id = idmode+5;
// memcpy (&eff_mode [mode_id - mic_mode_seq0].echo_parm, & fakiti-> bayanai [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("jinkiri%d, lalata %d, filt_enable %d, lpf_cutoff %d, wetgain %d, bushewa %d\n",
parm-> jinkirta, parm-> lalata, parm-> filt_enable, parm-> lpf_cutoff, parm-> wetgain, parm-> bushewa);
#duk
#duk
dawo 0;
}
(3) Ma'auni masu alaƙa da echo sune kamar haka:
int Echo_parameter_val (u16 rigar, u16 bushe, u16 jinkiri, u16 lalata,
u16 is_bypass, u16 idmode)
{
#ifdefined(TCFG_MIC_EFFECT_ENABLE) &&TCFG_MIC_EFFECT_ENABLE
#ifTCFG_MIC_EFFECT_SEL==MIC_TASIRIN_SAKIYAR_ECHO
u8 mode_id = idmode+5;
EF_ECHO_TOOL_SET*parmt = &eff_mode[mode_id - mic_mode_seq0].echo_parm;
parmt->parm.wetgain=rigar;
parmt->parm.sittin=bushe;
parmt->parm.delay= jinkiri;
parmt->parm.decayval=decayfactor;
parmt->is_bypass=is_bypass;
echo_updata_parm (&parmt->parm, parmt->is_bypass);
#duk
dawo 0;
#duk
}