Inquiry
Form loading...
Категорије вести
Феатуред Невс

【Опен-Соурце】Реверб и контрола еха за микрофон микс конзоле заснован на Т5Л

2025-01-08

——Са ДВИН форума за програмере

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

[УИ материјали]

10.пнг

11.пнг

13.пнг

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

12.пнг

Ц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;

#ендиф

}