2
getSampleRate()ヘルパー関数を使用してナイキスト限界を計算し、それを一時的なローカル変数に代入しています。ナイキスト周波数制限 - ナイキスト限界以下の高調波を混合する方法
ナイキスト限度を下回る周波数の高調波のみがミックスに含まれるように、高調波をミックスするクラスの部分を更新する必要があります。おそらくgetFrequency()はどの周波数に設定されているのかを調べますが、それ以降はその周波数だけをどうやって組み込むのかまだ分かりません。おそらくifステートメント。事前に
おかげで、私は特にC++オーディオ
class SawWave
{
public:
void reset()
{
for(int i=0; i<MAX_HARMONICS; i++)
{
harmonic[i].reset();
}
}
void setFrequency(float frequency){
for(int i=0; i < MAX_HARMONICS; i++)
{
harmonic[i].setFrequency(frequency * (i + 1));
}
}
float tick()
{
float nyquist = getSampleRate() * 0.5;
float sum = 0;
int count;
for (count = 0; count < MAX_HARMONICS; count++)
{
sum += (harmonic[count].tick()) * 1/(count + 1);
}
return sum;
}
protected:
Sine harmonic[MAX_HARMONICS];
};
ローパスフィルタが必要ですか? – Brad