[转]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;
}
};
{
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;
}
};
基本的源码就这个样子
不过有一个问题就是播放音效有少许杂音