Leave Your Message
बातम्यांचे प्रकार
ठळक बातम्या

【ओपन-सोर्स】T5L वर आधारित मिक्सिंग कन्सोल मायक्रोफोनसाठी रिव्हर्ब आणि इको नियंत्रण

२०२५-०१-०८

पासून ड्विन डेव्हलपर फोरम

आज आम्ही DWIN डेव्हलपर फोरममधील एक पुरस्कार-विजेते ओपन-सोर्स केस सादर करत आहोत: T5L चिपवर आधारित मिक्सिंग कन्सोल मायक्रोफोनसाठी रिव्हर्ब आणि इको नियंत्रण. आमचे इंजिनिअर T5L च्या UART 4 ​​द्वारे रिव्हर्ब डेव्हलपमेंट बोर्डशी संवाद साधण्यासाठी 800x480 रिझोल्यूशन डिस्प्लेचा वापर करतात, ज्यामुळे उत्कृष्ट ऑडिओ इफेक्ट्ससाठी रिव्हर्ब, इको, वेट साउंड, ड्राय साउंड, अकूस्टिक, डिके आणि डिले यांसारख्या महत्त्वाच्या ऑडिओ पॅरामीटर्सचे अचूक समायोजन करणे शक्य होते.

[यूआय साहित्य]

१०.png

११.png

१३.png

[GUI प्रकल्प रचना]

१२.png

सी५१ प्रकल्प

(1) स्क्रीनसाठीचा मुख्य प्रोग्राम खालीलप्रमाणे आहे:

void main(){

INIT_CPU(); //सिस्टम आरंभीकरण

PORT_Init(); // IO पोर्ट सुरू करा

T0_Init(); // टायमर 0 सुरू करा

T2_Init(); // टायमर २ सुरू करा

my_UART4_Init(115200);

uart_init(); // सिरीयल पोर्ट सुरू करा

ws2812_writ_byte(8); // एलईडी दिवा सुरू करा

RetMicSet();

विलंब_मिलीसेकंद(1000);

बदल पृष्ठ (1);

while(1){

Uart_Handle_all();

OneMsHandle(); // प्रत्येक वेळी १ मिलिसेकंद

TenMsHandle();

Read_0xF00(); // डेटा स्वयंचलित अपलोड

}

}

void TenMsHandle(void)

{

जर (!TenmsFlag)

परत जा;

TenmsFlag=0;

हुनएक्स_लॉ();

HunX_Dry();

HunX_WeiYing();

HunX_ShuaiJian();

HunX_Switch();

इको_वेट();

इको_ड्राय();

इको_डिले();

Echo_ShuaiJian();

इको_स्विच();

}

void HunX_Wet(void)

{

u16readst=0;

readst=Read_Dgus(0x1200);

if(readst==Mic_Set.MicWetNum)

परत जा;

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) रिव्हर्बशी संबंधित पॅरामीटर्स खालीलप्रमाणे आहेत

#जर १

intreverb_parameter_val(u16 wet,u16 dry,u8 diffusion,u8 decayfactor,

u8 is_bypass,u8 idmode)

{

#if defined(TCFG_MIC_EFFECT_ENABLE)&& TCFG_MIC_EFFECT_ENABLE

#जर १

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;

पॅरामीटर->पॅरामीटर.विलंब=विलंब_मिलीसेकंद;

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

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.sixty=dry;

parmt->parm.delay=delay;

parmt->parm.decayval=decayfactor;

parmt->is_bypass=is_bypass;

echo_updata_parm(&parmt->parm, parmt->is_bypass);

#endif

0 परत करा;

#endif

}