找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2688|回复: 0
打印 上一主题 下一主题
收起左侧

reveb效果器

[复制链接]
跳转到指定楼层
楼主
ID:230485 发表于 2017-9-1 22:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
int Reverb_eye(int InData,int RvbLvl)
{
        long  PsDt;
        int RbLenTp1=2477;
        int RbLenTp2=2441;
        int RbLenTp3=2383;
        int RbLenTp4=2333;
        int RbLenTp5=2281;
        int RbLenTp6=2203;
        //int RbLenTp7=2099;
        //int RbLenTp8=1987;
        RvbLvl=RvbLvl>>5;
//        RvbDcy=(RvbLvl>>1)+46;
                 /////////////%%%%%%%%%parallel one%%%%%%%%%%%%%%%%%%%%%%%%%%%
        PsDt=(long)InData<<4;//21
FdBkDt=((ReOutf1<<4)*RvbDcy>>7)+PsDt;
        if(FdBkDt>524287) FdBkDt=524287;
        if(FdBkDt<-524287) FdBkDt=-524287;  
        RevbBuf1[RvI1]=(FdBkDt>>4);
        RvI1++;
        if(RvI1>=RbLenTp1)
                RvI1=0;
        ReOutf1=RevbBuf1[RvI1];
        /////////////%%%%%%%%%parallel two%%%%%%%%%%%%%%%%%%%%%%%%%%%
        //PsDt=(long)InData;//

        FdBkDt=((ReOutf2<<4)*RvbDcy>>7)+PsDt;
        if(FdBkDt>524287) FdBkDt=524287;
        if(FdBkDt<-524287) FdBkDt=-524287;  
        RevbBuf2[RvI2]=(FdBkDt>>4);
        RvI2++;
        if(RvI2>=RbLenTp2)
                RvI2=0;
        ReOutf2=RevbBuf2[RvI2];
        /////////////%%%%%%%%%parallel three%%%%%%%%%%%%%%%%%%%%%%%%%%%
        #if 1
        FdBkDt=((ReOutf3<<4)*RvbDcy>>7)+PsDt;
  if(FdBkDt>524287) FdBkDt=524287;
        if(FdBkDt<-524287) FdBkDt=-524287;  
        RevbBuf3[RvI3]=(FdBkDt>>4);
        RvI3++;
        if(RvI3>=RbLenTp3)
                RvI3=0;
        ReOutf3=RevbBuf3[RvI3];
        #endif
               
                /////////////%%%%%%%%%parallel four%%%%%%%%%%%%%%%%%%%%%%%%%%%
        #if 1
        FdBkDt=((ReOutf4<<4)*RvbDcy>>7)+PsDt;
  if(FdBkDt>524287) FdBkDt=524287;
        if(FdBkDt<-524287) FdBkDt=-524287;  
        RevbBuf4[RvI4]=(FdBkDt>>4);
        RvI4++;
        if(RvI4>=RbLenTp4)
                RvI4=0;
        ReOutf4=RevbBuf4[RvI4];
        #endif
       
        /////////////%%%%%%%%%parallel five%%%%%%%%%%%%%%%%%%%%%%%%%%%       
        #if 1
        FdBkDt=((ReOutf5<<4)*RvbDcy>>7)+PsDt;
if(FdBkDt>524287) FdBkDt=524287;
        if(FdBkDt<-524287) FdBkDt=-524287;  
        RevbBuf5[RvI5]=(FdBkDt>>4);
        RvI5++;
        if(RvI5>=RbLenTp5)
                RvI5=0;
        ReOutf5=RevbBuf5[RvI5];
        #endif
        #if 1
/////////////%%%%%%%%%parallel six%%%%%%%%%%%%%%%%%%%%%%%%%%%
                FdBkDt=((ReOutf6)*RvbDcy>>7)+PsDt;
if(FdBkDt>524287) FdBkDt=524287;
        if(FdBkDt<-524287) FdBkDt=-524287;  
        RevbBuf6[RvI6]=(FdBkDt>>4);
        RvI6++;
        if(RvI6>=RbLenTp6)
                RvI6=0;
        ReOutf6=RevbBuf6[RvI6];
        #endif
                /////////////%%%%%%%%%parallel seven%%%%%%%%%%%%%%%%%%%%%%%%%%%       
        #if 0
        FdBkDt=((ReOutf7)*RvbDcy>>7)+PsDt;
if(FdBkDt>524287) FdBkDt=524287;
        if(FdBkDt<-524287) FdBkDt=-524287;  
        RevbBuf7[RvI7]=(FdBkDt);
        RvI7++;
        if(RvI7>=RbLenTp7)
                RvI7=0;
        ReOutf7=RevbBuf7[RvI7];
        #endif
        #if 0
/////////////%%%%%%%%%parallel eight%%%%%%%%%%%%%%%%%%%%%%%%%%%
                FdBkDt=((ReOutf8)*RvbDcy>>7)+PsDt;
if(FdBkDt>524287) FdBkDt=524287;
        if(FdBkDt<-524287) FdBkDt=-524287;  
        RevbBuf8[RvI8]=(FdBkDt);
        RvI8++;
        if(RvI8>=RbLenTp8)
                RvI8=0;
        ReOutf8=RevbBuf8[RvI8];
        #endif
       
        //Prl_OutData=(long)RevboutSum;
        Prl_OutData=ReOutf1+ReOutf2+ReOutf3+ReOutf4+ReOutf5+ReOutf6;//+ReOutf7+ReOutf8;
        #if 0
/////////////%%%%%%%%%series one%%%%%%%%%%%%%%%%%%%%%%%%%%%
        FdBkDt=(ReOutf6*12>>6);
        //if(FdBkDt>32767) FdBkDt=32767;
        //if(FdBkDt<-32767) FdBkDt=-32767;
        RevbBuf6[RvI6]=FdBkDt;
        RvI6++;
        if(RvI6>=RbLenTp6)
                RvI6=0;
        ReOutf6=Prl_OutData+RevbBuf6[RvI6];
        //ReOutf6>>=1;
                //ReOutf6>>=4;
       
        //if(ReOutf6>32767) ReOutf6=32767;
        //if(ReOutf6<-32767) ReOutf6=-32767;
        #endif
        /////////////////////out///////////////////
        //OutData=ReOutf6;
        OutData=Prl_OutData>>3;
        if(OutData>32767) OutData=32767;
        if(OutData<-32767) OutData=-32767;
        //===============================RbTone==============================
        Rbfout=(long)((OutData<<4)*(RvbTone+0)+Rbfout_1*(1024-RvbTone))>>10;
        Rbfout_1=Rbfout;       
       
                //===============================RbLEVEL=========================
        PsDt=(long)(Rbfout>>4)*10000>>14;//
        PsDt=(((long)PsDt)*RvbLvl>>7)+InData;//*((127-RvbLvl)>>5);

        if(PsDt>32767) PsDt=32767;
        if(PsDt<-32767) PsDt=-32767;
        return PsDt;

}

Reverb_eye.zip

1.43 KB, 下载次数: 5, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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