久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: Tremolo效果 [打印本頁(yè)]

作者: zzh199110    時(shí)間: 2017-9-1 22:51
標(biāo)題: Tremolo效果
long Tremolo(long TremIn, long RateTp, long ShapeTp,long DepthTp,int ModeValue)   //in 32bit, out 24bit
{
        //-------------------------parameter--------------------------------
        RateTp=RateTp*10>>4;
        if(Rate>RateTp)
                Rate--;
        if(Rate<RateTp)
                Rate++;
        if(Shape>ShapeTp)
                Shape--;
        if(Shape<ShapeTp)
                Shape++;
        if(Depth>DepthTp)
                Depth--;
        if(Depth<DepthTp)
                Depth++;
        //-------------------------fade in and out--------------------------
        DryIn=TremIn;
        if(ModeValue!=ModeValue_1)
        {
                 FlgFade=1;
        }
        ModeValue_1=ModeValue;
       
        if(FlgFade==1)
        {
                FdGn-=2;
                if(FdGn<=0)
                {
                        ModeValueFd=ModeValue;
                        FlgFade=2;
                }       
        }

        if(FlgFade==2)
        {
                FdGn+=2;
                if(FdGn>=16384)
                {
                        FlgFade=0;
                        FdGn=16384;
                }       
        }       
       
       
        //-----------------Mod signal----------------
        //ModeValue=2;
        if(ModeValueFd==0)
        {
                TremI+=(Rate>>6)+1;
        }
        if(ModeValueFd==1)
        {
                TremI+=(Rate>>6)+1;
        }
        if(ModeValueFd==2)
        {
                TrmCnt++;
                if(TrmCnt>12)
                        TrmCnt=12;

                switch (CntGhge)
                {
                        case 0:
                                VarStep=0;break;
                        case 1:
                                VarStep=(Rate>>6);break;
                        case 2:
                                VarStep=(Rate>>6);break;
                }
                if(TremGn1>31101 && TremGn1_1<=31101)
                {
                        CntGhge++;       
                }       
                TremGn1_1=TremGn1;               
                if(CntGhge>2)
                        CntGhge=0;
       
                TremI+=((Rate>>7)+(VarStep))+1;
        }
       
        if(TremI>131071)
                TremI-=131071;
        TremI1=TremI-32767;
        if(TremI1<0)
                TremI1+=131071;
        TremGn1=TriCurve((TremI1>>1));
        if(TremI>16384 && TremI<49152)
                TremGn2Tp=0;
        else
                TremGn2Tp=32767;

       
        if(TremGn2<TremGn2Tp)
        {
                TremGn2+=100;
                if(TremGn2>TremGn2Tp)
                        TremGn2=TremGn2Tp;
        }
        if(TremGn2>TremGn2Tp)
        {
                TremGn2-=100;
                if(TremGn2<0)
                        TremGn2=0;
        }
        TremGn=(TremGn2*Shape+TremGn1*(4095-Shape))>>12;
               
        //---------------------high pass-------------------------
        //{16743445,-33486891,16743445,33486823,-16709743,},
        fout2=((long long)TremIn*16743445-in2_1*33486891+in2_2*16743445+fout2_1*33486823-fout2_2*16709743)>>24;
        in2_2=in2_1;
        in2_1=TremIn;
        fout2_2=fout2_1;
        fout2_1=fout2;
        TremIn=fout2;
       
        if(ModeValueFd!=1)
        { //{14293233,-25310113,11143280,31637641,-15018425,}
                fout=((long long)TremIn*14293233-in_1*25310113\
                                        +in_2*11143280+fout_1*31637641-fout_2*15018425)>>24;
                in_2=in_1;
                in_1=TremIn;
                fout_2=fout_1;
                fout_1=fout;       
                //TremIn=fout;
        }               
        if(ModeValueFd==1)
        {
                fout=((long long)TremIn*FilterParm[(TremGn1>>9)][0]+in_1*FilterParm[(TremGn1>>9)][1]\
                                        +in_2*FilterParm[(TremGn1>>9)][2]+fout_1*FilterParm[(TremGn1>>9)][3]\
                                        +fout_2*FilterParm[(TremGn1>>9)][4])>>24;
                in_2=in_1;
                in_1=TremIn;
                fout_2=fout_1;
                fout_1=fout;       
                //TremIn=fout;
        }               
       
        //--------------------tremolo------------------------
        TremOut=fout*8192>>14;
        TremOut=(long long)TremOut*TremGn>>14;
        //TremIn=((long long)TremIn*14000>>13);
        TremOut=((long long)TremOut*Depth+(long long)DryIn*(4096-Depth))>>12;
        TremOut=TremOut*FdGn>>14;
        if(TremOut>8388607)       
                TremOut=8388607;
        if(TremOut<-8388607)
                TremOut=-8388607;
       
        return (TremOut);

}






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 伦理片97 | 999精品视频| 免费成年网站 | 免费人成在线观看网站 | 久久九精品 | 亚洲综合久久精品 | 国产精品99久久久久久动医院 | www.国产精品 | 欧美视频在线播放 | 日韩一区二区三区av | 黄色精品 | 日韩视频中文字幕 | 91偷拍精品一区二区三区 | 午夜免费观看体验区 | 亚洲综合二区 | 一区二区av在线 | 国产精品国产三级国产a | 国产日韩欧美91 | 欧美高清视频一区 | 91精品国产91久久久久久 | 亚洲iv一区二区三区 | 狠狠操电影| av免费观看在线 | 自拍偷拍亚洲欧美 | 玖玖玖av| 亚洲国产免费 | 古典武侠第一页久久777 | 国产日韩精品在线 | 欧美一区二区 | 新91视频网 | .国产精品成人自产拍在线观看6 | 日本不卡一区二区三区在线观看 | 黄色一级毛片 | 久久久成人免费视频 | 一级aaaaaa毛片免费同男同女 | 久久免费香蕉视频 | 久久人操 | 久久久久国产一区二区三区四区 | 中文字幕一区二区三区四区不卡 | 又黄又爽的网站 | 国产精品99久久久久久动医院 |