迪文科技论坛

 找回密码
 立即注册
搜索
查看: 117|回复: 0

【2024.12.31获奖项目】调音台 麦克风混响回声

[复制链接]

580

主题

171

回帖

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12809
发表于 2025-1-3 09:49:26 | 显示全部楼层 |阅读模式
【开源】调音台 麦克风混响回声

一、方案介绍
该方案采用 800 X 480 分辨率的屏幕,屏幕通过T5L串口4与混响开发板进行数据交互,实现控制混响参数。视频效果如下:


二、开发界面









三、屏幕代码如下


void main(){
       INIT_CPU();  //系统初始化
       PORT_Init();//IO口初始化

       T0_Init();//定时器0初始化
       T2_Init();//定时器2初始化

       my_UART4_Init(115200);
       uart_init();//串口初始化

ws2812_writ_byte(8); //LED初始化
       RetMicSet();
       delay_ms(1000);
       ChangePage(1);

       while(1){
              Uart_Handle_all();
              OneMsHandle();//1Ms一次
              TenMsHandle();

Read_0xF00();//数据自动上传
       }
}

void TenMsHandle(void)
{
       if(!TenmsFlag)
              return;
       TenmsFlag=0;

       HunX_Wet();
       HunX_Dry();
       HunX_WeiYing();
       HunX_ShuaiJian();
       HunX_Switch();

       Echo_Wet();
       Echo_Dry();
       Echo_Delay();
       Echo_ShuaiJian();
       Echo_Switch();
}
}

void HunX_Wet(void)
{
       u16readst=0;

       readst=Read_Dgus(0x1200);
       if(readst==Mic_Set.MicWetNum)
              return;

       Mic_Set.MicWetNum=readst;
       MicEffectSend(Mic_Set.MicWetNum*10,
                                                        Mic_Set.MicDryNum*10,
                                                        Mic_Set.MicDiffNum*5,
                                                        Mic_Set.MicDecayNum*5,
                                                        Mic_Set.HunXiangSW);
}

细节自已去看下

混响板子代码主要目录如下:



混响相关参数如下:
#if 1
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
#if 1
    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;
    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("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
return 0;
}
#endif
回声相关参数控制代码如下:
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.drygain=dry;
   parmt->parm.delay=delay;
   parmt->parm.decayval=decayfactor;
   parmt->is_bypass=is_bypass;
   echo_updata_parm(&parmt->parm, parmt->is_bypass);
#endif
return 0;
#endif
}

简单讲到这里,有兴趣的,自已下载看看

备注说明:如需源码,请参考此链接:http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=11838&extra=page%3D1&_dsign=16381404


















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-3-31 16:10 , Processed in 0.038056 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表