心胸决定格局,眼界决定境界...

[转]Tremolo音效

下面是Tremolo音效的几个参数:
1.深度控制:用来控制音量增减速度
2.阈值数据:说明控制音量的频率值
3.波形

 

其基本数学表达式为:

data = data * (1.0 + depth * sin(k* rate * index));
 
简易的c++代码如下:

class Tremolo : public AudioEffect
{
public:
    
static double def_depth;
    
static double def_rate;
    
double depth;
    
double rate;
    
double k;
    Tremole();
    std::vector
<float> Filter(const std::vector<float>& _data)
    {   
        data 
= _data;
        
for(int i = 0; i < data.size();i++)
           data[i] 
*= (1.0 + depth * sin(2.0 * PI * rate * i / k);
        
return data;   
    }    
};

基本的源码就这个样子
不过有一个问题就是播放音效有少许杂音
posted @ 2013-08-28 21:38  WELEN  阅读(182)  评论(0)    收藏  举报