編集:あなたのコメントの後、あなたが何を求めているのかがより明確になったと思います。
をインスタンス化するコードを取得しますNVPeakingEQFilter
。
NVPeakingEQFilter* PEQ = [[NVPeakingEQFilter alloc] initWithSamplingRate:self.samplingRate];
PEQ.Q = QFactor;
PEQ.G = gain;
PEQ.centerFrequency = centerFrequencies;
Q、G、centerFrequency の 3 つのパラメーターを定義する必要があります。通常、Q と centerFrequency はどちらも固定されています (私の場合、QFactor は 2.0 に等しい定数です)。
したがって、10 個のスライダーがあり、それぞれが固定に対応していcenterFrequency
ます。iTunes の値として、32Hz、64Hz、125Hz、250Hz、500Hz、1KHz、2KHz、4KHz、8KHz、16KHz を提案しました。スライダーの値が変更されたときに、これらの値を変更したくない場合。
スライダーの値が変化したときに変えたいのはゲイン(G)です。初期化時に、G は 0.0 に設定できます。これは「増幅/減衰なし」を意味します。
スライダーが動くと G が変わるので、実際には次のようにします。
PEQ[sender.tag - 1].G = sender.value * kNominalGainRange;
ここで、kNominalGainRange は 12.0 であるため、sender.value
-1.0 から +1.0 になると、G は -12 から +12 になります。
お役に立てれば。
私が知りたいのは、これを正しい方法で行っているかどうかです。
あなたは多くのコードを示していませんが、HPFSliderChanged
正しいようです。特定の問題がある場合は、それについて説明し、さらにコードを投稿する必要があります。
スライダーの範囲はどうなりますか?
実際、イコライザーに関しては厳格なルールはありません。iTunes は -12db から +12db まで変化しますが、異なる範囲を使用することもできます (唯一の注意点は歪みです)。
HPF の例のように、スライダーの範囲は 2k から 8k です。ここでいくつかのガイダンスが必要です。
繰り返しになりますが、iTunes イコライザー (32Hz、64Hz、125Hz、250Hz、500Hz、1KHz、2KHz、4KHz、8KHz、16KHz) を例に取るか、Google で実際のイコライザーの画像を探して、それらが使用する帯域を確認できます。