1、中心频率两边功率衰减 3dB 时,对应的两个不同频率,分别为上、下截止频率,上、下截止频率之差为带宽。增益(G):均衡器对于各种音效的实现依靠的最重要指标为增益曲线,一般以分贝为单位表示。品质因子(Q):中心频率与带宽的比值,用来表征滤波器的锐度。音乐风格预设增益Default 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 Club 0, 0, 0, 1, 2, 3, 3, 2, 1, 0 Dance 9, 8, 5, 2, 1, 0, -3, -4, -3,0 Full Buss 8, 8, 8, 7, 4, 0, -3, -5,-7,-9 Full Treble -9, -8,
2、 -7, -6, -3, 1, 5, 8, 10, 12 Pope -2, -1, 0, 2, 3, 2, 0, -2, -2, -1 Rock 6, 5, 2, -2, -5, -2, 0, 3, 5, 6 Soft 2, 1, 0, 0, -1, 0, 1, 2, 3, 4 Large Hall 8, 7, 6, 3, 2, 0, -1, -2, -1, 0 Party 4, 4, 3, 2, 0, 0, 0, 0, 0, 4 四、 实验主要代码:/音乐风格的预设增益intPreEft1810=0,0,0,0,0,-1,-2,-4,-6,-9, 0,0,0,1,2,3,3,2,1,0, 9
3、,8,5,2,1,0,-3,-4,-3,0, 0,0,0,0,0,0,0,0,0,0, 8,8,8,7,4,0,-3,-5,-7,-9, 7,6,4,1,-3,-2,-1,2,6,9, -9,-8,-7,-6,-3,1,5,8,10,12, 1,5,7,3,-2,-1,0,3,6,10, 8,7,6,3,2,0,-1,-2,-1,0, -4,-3,-1,0,2,3,3,2,1,0, 4,4,3,2,0,0,0,0,0,4, -2,-1,0,2,3,2,0,-2,-2,-1, 0,0,0,-1,-3,0,2,2,1,0, 6,5,2,-2,-5,-2,0,3,5,6, -1,-2,-3,-2,0
4、,1,2,3,4,5, 2,1,0,0,-1,0,1,2,3,4, 1,1,1,1,0,-1,-2,-2,0,3, 3,2,1,0,-3,-2,-1,1,3,4;intCEqualizer:UseEQ(EQPARAM *param, unsigned char *Sig, unsigned char * OutSig, long ILen) unsigned long Hband=(unsigned long)(3*param-Fs/8); double * bandpow=(double*)malloc(param-wbandlen*sizeof(double); longi,k,len,l
5、evel=-1; for (i=9;i=0;i-) if (CenBandiHband) level=i;break; if (levelparam-wbandlen) return ERR_PARAMERR; if (level=1) return ERR_NOERR; InitFilterBank(level); for (i=0;iwbandi/20); double *tSig1=NULL; double *tSig2=NULL; if (param-bitpersmp=16) short * sig16=NULL; if(param-nchn=2) len=ILen2; if(NUL
6、L=(tSig1=(double*)malloc(sizeof(double)*len) return ERR_INSURMEM; if(NULL=(tSig2=(double*)malloc(sizeof(double)*len) sig16=(short*)Sig;k=0; for (i=0;len;i+) tSig1i=sig16k+/32768.;tSig2i=sig16k+/32768.; /channel1 WaveDec(tSig1,len);level+1;i+)/add weight k=Lbi; while (k1) sig16k+=32767; else if (tSig
7、1i else if (tSig2inchn=1)1; tSig1i=sig16i/32768.;1) sig16i=32767;-1) sig16i=-31768; else sig16i=(short)(tSig1i*32768); else return ERR_PARAMERR; else if (param-bitpersmp=8) k=0; tSig1i=(Sigk+-128)/128.;tSig2i=(Sigk+-128)/128.;1) OutSigk+=255;-1) OutSigk+=0; elseOutSigk+=(unsigned char)(tSig1i*128+12
8、8); elseOutSigk+=(unsigned char)(tSig2i*128+128);/ OutSigk+=(unsigned char)(tSig1i*128+128);/ OutSigk+=(unsigned char)(tSig2i*128+128); len=ILen; tSig1i=(Sigi-128)/128;1) OutSigi=255;-1) OutSigi=0; elseOutSigi=(unsigned char)(tSig1i*128+128);/ OutSigi=(unsigned char)(tSig1i*128+128); free(bandpow);
9、if(tSig1!=NULL) free(tSig1); if(tSig2!=NULL) free(tSig2); return ERR_NOERR;/启用均衡void CEQDlg:OnBtnset() /启用均衡 / TODO: Add your control notification handler code hereisset=true; CScrollBar* pSB=(CScrollBar*) GetDlgItem(IDC_SCR1);pSB-EnableScrollBar(ESB_ENABLE_BOTH ); pSB=(CScrollBar*) GetDlgItem(IDC_S
10、CR2); pSB- pSB=(CScrollBar*) GetDlgItem(IDC_SCR3); pSB=(CScrollBar*) GetDlgItem(IDC_SCR4); pSB=(CScrollBar*) GetDlgItem(IDC_SCR5); pSB=(CScrollBar*) GetDlgItem(IDC_SCR6); pSB=(CScrollBar*) GetDlgItem(IDC_SCR7); pSB=(CScrollBar*) GetDlgItem(IDC_SCR8); pSB=(CScrollBar*) GetDlgItem(IDC_SCR9); pSB=(CScr
11、ollBar*) GetDlgItem(IDC_SCR10); pSB=(CScrollBar*) GetDlgItem(IDC_SCRG); if(isset) for (inti=0;10;i+) bandpowi+=m_editg; mwavefile.SetEQ(bandpow,10);/禁用均衡OnBtnclose() /禁用均衡 isset=false;EnableScrollBar(ESB_DISABLE_BOTH); mwavefile.StopEQ();/归零OnBtnzero() /归零 if (isset) CScrollBar* pSB=(CScrollBar*) Ge
12、tDlgItem(IDC_SCR1); pSB-SetScrollPos(0); pSB=(CScrollBar*) GetDlgItem(IDC_SCR2); pSB=(CScrollBar*) GetDlgItem(IDC_SCR3); pSB=(CScrollBar*) GetDlgItem(IDC_SCR4); pSB=(CScrollBar*) GetDlgItem(IDC_SCR5); pSB=(CScrollBar*) GetDlgItem(IDC_SCR6); pSB=(CScrollBar*) GetDlgItem(IDC_SCR7); pSB=(CScrollBar*) G
13、etDlgItem(IDC_SCR8); pSB=(CScrollBar*) GetDlgItem(IDC_SCR9); pSB=(CScrollBar*) GetDlgItem(IDC_SCR10); UpdateData(); bandpow0=m_edit1=0; bandpow1=m_edit2=0; bandpow2=m_edit3=0; bandpow3=m_edit4=0; bandpow4=m_edit5=0; bandpow5=m_edit6=0; bandpow6=m_edit7=0; bandpow7=m_edit8=0; bandpow8=m_edit9=0; band
14、pow9=m_edit10=0; m_editg=0; UpdateData(FALSE); if(isset) mwavefile.SetEQ(bandpow,10); /选择下拉效果菜单OnSelchangePresent() /效果选择下拉框 isset=true; int ix=m_PresentEf.GetCurSel(); bandpow0=m_edit1=PreEftix0; bandpow1=m_edit2=PreEftix1; bandpow2=m_edit3=PreEftix2; bandpow3=m_edit4=PreEftix3; bandpow4=m_edit5=PreEftix4; bandpow5=m_edit6=PreEftix5; bandpow6=m_edit7=PreEftix6; bandpow7=m_edit8=PreEftix7; bandpow8=m_edit9=P
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1