【Опен-Соурце】Реверб и контрола еха за микрофон микс конзоле заснован на Т5Л
——Са ДВИН форума за програмере
Са задовољством представљамо награђивано кућиште отвореног кода са ДВИН Девелопер Форума данас: реверб и ехо контрола за микрофон микс конзоле заснован на Т5Л чипу. Наш инжењер користи екран резолуције 800к480 за интеракцију са плочом за развој ревербирања преко УАРТ 4 од Т5Л, омогућавајући прецизно подешавање критичних аудио параметара као што су реверб, ехо, влажни звук, сув звук, акустика, распадање и кашњење за супериорне аудио ефекте.
[УИ материјали]



[ГУИ дизајн пројекта]

【Ц51 Пројецт】
(1) Главни програм за екран је следећи:
воид маин(){
ИНИТ_ЦПУ();//Иницијализација система
ПОРТ_Инит();//Иницијализација ИО порта
Т0_Инит();//Иницијализација тајмера 0
Т2_Инит();//Иницијализација тајмера 2
ми_УАРТ4_Инит(115200);
уарт_инит();//Иницијализујте серијски порт
вс2812_врит_бите(8);//Иницијализујте ЛЕД светло
РетМицСет();
делаи_мс(1000);
ЦхангеПаге(1);
док (1){
Уарт_Хандле_алл();
ОнеМсХандле();//1Мс сваки пут
ТенМсХандле();
Реад_0кФ00();//Аутоматско отпремање података
}
}
воид ТенМсХандле(воид)
{
иф(!ТенмсФлаг)
повратак;
ТенмсФлаг=0;
ХунКс_Лав();
ХунКс_Дри();
ХунКс_ВеиИинг();
ХунКс_СхуаиЈиан();
ХунКс_Свитцх();
Ецхо_Вет();
Ецхо_Дри();
Ецхо_Делаи();
Ецхо_СхуаиЈиан();
Ецхо_Свитцх();
}
воид ХунКс_Вет(воид)
{
у16реадст=0;
реадст=Прочитај_Дгус(0к1200);
иф(реадст==Миц_Сет.МицВетНум)
повратак;
Миц_Сет.МицВетНум=реадст;
МицЕффецтСенд(Миц_Сет.МицВетНум*10,
Миц_Сет.МицДриНум*10,
Миц_Сет.МицДиффНум*5,
Миц_Сет.МицДецаиНум*5,
Миц_Сет.ХунКсиангСВ);
(2) Параметри у вези са ревербом су следећи
#ако 1
интреверб_параметер_вал(у16 мокро,у16 суво,у8 дифузија,у8фактор распада,
у8 ис_бипасс,у8 идмоде)
{
#иф дефинисан(ТЦФГ_МИЦ_ЕФФЕЦТ_ЕНАБЛЕ)&& ТЦФГ_МИЦ_ЕФФЕЦТ_ЕНАБЛЕ
#ако 1
у8 моде_ид = идмоде+5;
Плате_реверб_ТООЛ_СЕТ *пармт = &ефф_моде[моде_ид - миц_моде_сек0].плате_реверб_парм;
пармт->парм.вет=вет;
пармт->парм.дри=дри;
пармт->парм.диффусион=дифузија;
пармт->парм.децаифацтор=децаифацтор;
пармт->ис_бипасс=ис_бипасс;
плате_реверб_упдате_парм(&пармт->парм, пармт->ис_бипасс);
#елиф 1
у8 моде_ид = идмоде+5;
//мемцпи(&ефф_моде[моде_ид - миц_моде_сек0].ецхо_парм,&пацкет->дата[1], сизеоф(ЕФ_ЕЦХО_ТООЛ_СЕТ));
ЕФ_ЕЦХО_ТООЛ_СЕТ *пармт = &ефф_моде[моде_ид -миц_моде_сек0].ецхо_парм;
пармт->парм.делаи=делаи_мс;
ецхо_упдата_парм(&пармт->парм, пармт->ис_бипасс);
#елиф 0//ПАРМ_ДЕБУГ
ЕЦХО_ПАРМ_СЕТ *парм = &пармт->парм;
лог_дебуг("делаи%д, опадање %д, филт_енабле %д, лпф_цутофф %д, ветгаин %д, дригаин %д\н",
парм->делаи, парм->децаивал,парм->филт_енабле, парм->лпф_цутофф, парм->ветгаин, парм->дригаин);
#ендиф
#ендиф
ретурн 0;
}
(3) Параметри који се односе на ехо су следећи:
инт Ецхо_параметер_вал(у16 вет,у16 дри,у16 кашњење,у16 деифацтор,
у16 ис_бипасс,у16 идмоде)
{
#ифдефинед(ТЦФГ_МИЦ_ЕФФЕЦТ_ЕНАБЛЕ) &&ТЦФГ_МИЦ_ЕФФЕЦТ_ЕНАБЛЕ
#ифТЦФГ_МИЦ_ЕФФЕЦТ_СЕЛ==МИЦ_ЕФФЕЦТ_РЕВЕРБ_ЕЦХО
у8 моде_ид = идмоде+5;
ЕФ_ЕЦХО_ТООЛ_СЕТ*пармт = &ефф_моде[моде_ид - миц_моде_сек0].ецхо_парм;
пармт->парм.ветгаин=вет;
пармт->парм.сикти=суво;
пармт->парм.делаи=кашњење;
пармт->парм.децаивал=децаифацтор;
пармт->ис_бипасс=ис_бипасс;
ецхо_упдата_парм(&пармт->парм, пармт->ис_бипасс);
#ендиф
ретурн 0;
#ендиф
}


