【ओपन-सोर्स】T5L पर आधारित मिक्सिंग कंसोल माइक्रोफोन के लिए रीवरब और इको कंट्रोल
--से ड्विन डेवलपर फोरम
आज हम DWIN डेवलपर फोरम से एक पुरस्कार विजेता ओपन-सोर्स केस प्रस्तुत करते हुए प्रसन्न हैं: T5L चिप पर आधारित मिक्सिंग कंसोल माइक्रोफोन के लिए रीवरब और इको कंट्रोल। हमारे इंजीनियर 800x480 रेज़ोल्यूशन वाले डिस्प्ले का उपयोग करके T5L के UART 4 के माध्यम से रीवरब डेवलपमेंट बोर्ड के साथ इंटरैक्ट करते हैं, जिससे रीवरब, इको, वेट साउंड, ड्राई साउंड, एकॉस्टिक, डीके और डिले जैसे महत्वपूर्ण ऑडियो पैरामीटर्स को सटीक रूप से समायोजित किया जा सकता है, जिससे बेहतर ऑडियो इफेक्ट्स प्राप्त होते हैं।
[यूआई सामग्री]



[जीयूआई प्रोजेक्ट डिजाइन]

【सी51 परियोजना】
(1) स्क्रीन के लिए मुख्य प्रोग्राम इस प्रकार है:
शून्य मुख्य(){
INIT_CPU(); // सिस्टम आरंभीकरण
PORT_Init();//IO पोर्ट को आरंभ करें
T0_Init();//टाइमर 0 को प्रारंभ करें
T2_Init();//टाइमर 2 को प्रारंभ करें
my_UART4_Init(115200);
uart_init();// सीरियल पोर्ट को प्रारंभ करें
ws2812_writ_byte(8);//एलईडी लाइट को प्रारंभ करें
रेटमिकसेट();
विलंब_एमएस(1000);
पेज बदलें(1);
जबकि(1){
यूआर्ट_हैंडल_ऑल();
OneMsHandle();//प्रत्येक बार 1Ms
TenMsHandle();
Read_0xF00();//डेटा स्वचालित अपलोड
}
}
शून्य TenMsHandle(शून्य)
{
यदि(!TenmsFlag)
वापस करना;
TenmsFlag=0;
HunX_Law();
HunX_Dry();
HunX_WeiYing();
HunX_ShuaiJian();
HunX_Switch();
इको_वेट();
इको_ड्राई();
इको_डिले();
Echo_ShuaiJian();
इको_स्विच();
}
शून्य HunX_Wet(शून्य)
{
u16readst=0;
readst=Read_Dgus(0x1200);
यदि(readst==Mic_Set.MicWetNum)
वापस करना;
Mic_Set.MicWetNum=readst;
MicEffectSend(Mic_Set.MicWetNum*10,
माइक_सेट.माइकड्राईनम*10,
माइक_सेट.माइकडिफ़नम*5,
माइक_सेट.माइकडेकेनम*5,
Mic_Set.HunXiangSW);
(2) प्रतिध्वनि से संबंधित पैरामीटर निम्नलिखित हैं
#अगर 1
intreverb_parameter_val(u16 गीला,u16 सूखा,u8 प्रसार,u8 क्षयकारक,
u8 is_bypass,u8 idmode)
{
#यदि परिभाषित(TCFG_MIC_EFFECT_ENABLE)&& TCFG_MIC_EFFECT_ENABLE
#अगर 1
u8 मोड_आईडी = आईडीमोड+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;
पैरामीटर->is_bypass=is_bypass;
plate_reverb_update_parm(&parmt->parm, parmt->is_bypass);
#elif 1
u8 मोड_आईडी = आईडीमोड+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 गीला,u16 सूखा,u16 विलंब,u16 क्षय कारक,
u16 is_bypass,u16 idmode)
{
#ifdefined(TCFG_MIC_EFFECT_ENABLE) &&TCFG_MIC_EFFECT_ENABLE
#ifTCFG_MIC_EFFECT_SEL==MIC_EFFECT_REVERB_ECHO
u8 मोड_आईडी = आईडीमोड+5;
EF_ECHO_TOOL_SET*parmt = &eff_mode[mode_id - mic_mode_seq0].echo_parm;
parmt->parm.wetgain=wet;
parmt->parm.sixty=सूखा;
पैरामीटर->पैरामीटर.विलंब=विलंब;
parmt->parm.decayval=decayfactor;
पैरामीटर->is_bypass=is_bypass;
echo_updata_parm(&parmt->parm, parmt->is_bypass);
#endif
0 लौटाएँ;
#endif
}







