こんにちは、私はオーディオ関連のコーディングの初心者で、ピッチ トラッキング DLL に取り組んでいます。この DLL を使用して、ビデオ ゲーム ロックスミスの一種のオープン ソース バージョンを学習体験として作成しようとしています。
これまでのところ、FFT を機能させることができたので、ピッチ周波数 (Hz) を検出できます。次に、アルゴリズムと下の表を使用して、オクターブ (2 番目から 6 番目) とノート (C から B) を決定できます。ノートを再生しました。
次のステップは、フレットを特定できるように弦を検出することです。
私はそれについて考えてきましたが、理論的にはこれで作業できます。ユーザーが正しい音符を演奏しているときはわかりますが、Hz を使用するだけではゲームが検出できないため、ゲームは「ハック」になる可能性があります。ノートは右の弦で演奏されます。たとえば、5 弦 + 1 フレット = C4 261.63Hzは、6 弦 + 5 フレット = C4 261.63Hzに等しくなります。
ユーザーが間違った弦で音符を弾いて正しく弾く可能性は低いですが、ユーザーが間違った弦を弾いたときにエラー フィードバックをユーザーに提供できるように、弦を知ることは本当に良いことだと思います (弦を上下に移動する必要があります)。
文字列を検出するために何ができるか知っていますか? 前もって感謝します :)
[編集]
使用しているギターと弦は音色に影響を与えるため、音色を分析することは弦を検出する簡単な方法ではないようです。
「ギターの音色のバリエーションは、ピックアップのデザインと位置、使用される木材 (木材の種類が異なります!) によるギターの自然な共鳴とダンピング、およびその構造と形状、弦のゲージと使用年数、演奏テクニック、弦をどこでフレットして弾くかなどです。」