如何给filter添加接口

如何给filter添加接口,第1张

1、建立一个声明接口的头文件“Interface.h” ,内容包括指定接口的GUID(使用GuidGen.exe)以及接口函数的声明。

记得加 initguid.h 的include,不然使用时会出现"无法解析的外部符号_IID_"错误

2、在Cfilter类的头文件filter.h开头添加 #include “Interface.h” 。

3、在Cfilter类的声明中继承这个接口 CFilter:public Interface。

4、在Cfilter类的声明中增加Interface接口的函数的声明:

//--------Interface methods----------

STDMETHODIMPSetServerAddr(char* inIP, int inPort)

5、在Cfilter类的定义中实现Interface接口的函数的定义:

//-----------------------Interface methods-----------------------------

STDMETHODIMP CFilter::SetServerAddr(char* inIP, int inPort)

{

……

return S_OK

}

6、最后别忘了,在CFilter::NonDelegatingQueryInterface函数中添加两行代码,用来向外界暴露该接口:

// Basic COM - used here to reveal our own interfaces

STDMETHODIMP CFilter::NonDelegatingQueryInterface(REFIID riid, void ** ppv)

{

……

if (riid == IID_Interface)

return GetInterface((Interface *) this, ppv)

……

}

至此,filter的接口添加完毕。如果其它应用程序想要用这个接口,那么就像使用其它com组件一样。1、把Interface.h添加到工程里。2、使用前添加 #include “Interface.h”。3、在成功添加filter之后,使用QueryInterface函数获得接口指针即可使用。

首先,打开FL

其次,加载一个Sylenth1(废话)

注:Sylenth1打开可能会加载一个预置,我们要把它还原成一个初始音色,即Init音色

还原方法

将目光转向OSC1,确保振荡器内的是锯齿波,关掉RETRIG,把VOICES顶到头(如果你的CPU好的话),同时拉高DETUNE,拉低STERO。

就是这样

接着把OSC A1复制到OSC A2

OSC A2拉高一个OCTAVE拉低VOLUME点亮INV

来到Filter功能组,FilterType选低通(Low Pass),INPUT Select选AB,Cutoff拉到头,同时拉高Resonance和Drive来增加硬度

把OSC A1复制到OSC B1,也把OSC A2复制到OSC B2,然后来到Part B

拉高Detune到0.5,接着拉高ENV的Release再稍微调整一下FINE来增加音符的宽度

FILTER B的Type要选择none,不然会冲突

接着进入ENV包络器

ENV 1

ENV 2 用Pitch包络增加头音

然后进入主控制界面调整效果

Reverb

Delay

压缩

EQ处理

最后,进行音量混合,这样一个简单的Saw Lead就做好啦


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11494255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存