1、和声(Chorus)特技,参数设置的界面如下:
合声特技的参数通过下面的结构来调整:
typedef struct _DSFXChorus { FLOAT fWetDryMix;//压缩信号和未压缩信号的比率,缺省值50 FLOAT fDepth; //低频率振荡器调制信号的延迟时间的百分比,缺省是10% FLOAT fFeedback;//输出信号对特技输入信号的反馈百分比,缺省25% FLOAT fFrequency;//LFO的频率,缺省是1.1 LONG lWaveform;//LFO的波形类型,缺省是正弦波 FLOAT fDelay;//音频播放时的延迟时间,缺省是16ms LONG lPhase; //左右声道声波的相位差别,取值为-180,-90,0,90,180 度 } DSFXChorus, *LPDSFXChorus; |
我们在程序中可以定义这个结构的对象,如下:
DSFXChorus g_paramsChorus; LPDIRECTSOUNDFXCHORUS8 g_pChorus = NULL; |
然后通过通过滑动条来设置g_paramsChorus对象的值,设置后可以调用:
DSEFFECTDESC effectdesc; ZeroMemory( &effectdesc, sizeof( DSEFFECTDESC ) ); effectdesc.dwSize = sizeof(DSEFFECTDESC); effectdesc.dwFlags = 0; effectdesc.guidDSFXClass = GUID_DSFX_STANDARD_CHORUS; DWORD dwResult; if(g_pDSBuffer8) { hr = g_pDSBuffer8->SetFX(1,&effectdesc,&dwResult); if( SUCCEED( hr = g_pDSBuffer8->GetObjectInPath( GUID_DSFX_STANDARD_CHORUS, 0, IID_IDirectSoundFXChorus8,(LPVOID*) &g_pChorus ) ) ) return ; g_pChorus->SetAllParameters (&g_paramsChorus); } |
2、压限特技(Compressor )
压限特技的参数通过下面的结构来调整,参数调整界面如上:
typedef struct _DSFXCompressor { FLOAT fGain; //压限后输出信号的强度,缺省值是0db FLOAT fAttack;//压限达到最大值的时间,缺省是10ms FLOAT fRelease;//输入小于fThreshold后,压缩停止的时间,缺省是200ms FLOAT fThreshold;//压缩开始的临界点的db值,缺省是-20db FLOAT fRatio;//压缩的比率,缺省是3,即3:1 FLOAT fPredelay;//lThreshold 达到临界点,attack phase开始前的延迟时间 } DSFXCompressor, *LPDSFXCompressor; |
我们在程序中可以定义这个结构的对象,如下:
LPDIRECTSOUNDFXCOMPRESSOR8 g_pCompressor = NULL; DSFXCompressor g_paramsCompressor; |
通过拖动滑动条,我们可以用下面的代码调整参数:
DSEFFECTDESC effectdesc; ZeroMemory( &effectdesc, sizeof( DSEFFECTDESC ) ); effectdesc.dwSize = sizeof(DSEFFECTDESC); effectdesc.dwFlags = 0; effectdesc.guidDSFXClass = GUID_DSFX_STANDARD_COMPRESSOR; DWORD dwResult; if(g_pDSBuffer8) { hr = g_pDSBuffer8->SetFX(1,&effectdesc,&dwResult); if(FAILED(hr= _pDSBuffer8->GetObjectInPath( GUID_DSFX_STANDARD_COMPRESSOR, 0, IID_IDirectSoundFXCompressor8,(LPVOID*) &g_pCompressor ) ) ) return ; g_pCompressor->SetAllParameters (&g_paramsCompressor); } |
 
说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
2/2 首页 上一页 1 2 |