わかりました、C で karplus の強力なアルゴリズムを実装しました。これは、弦をはじいた音をシミュレートする単純なアルゴリズムです。長さ n (n = 必要なサンプリング周波数/周波数) のリング バッファーから始めて、単純な 2 点平均フィルター y[n] = (x[n] + x[n-1])/2 に渡します。それを出力してから、遅延線にフィードバックします。すすいで繰り返します。これにより、時間の経過とともにノイズが滑らかになり、自然な弦の弾き音が生まれます。
しかし、整数の遅延線の長さを使用すると、いくつかの高いピッチが同じ遅延の長さに一致する可能性があることに気付きました。また、整数遅延の長さではピッチを滑らかに変化させることはできません (ビブラートやグリッサンドなど)オールパスフィルター
http://quod.lib.umich.edu/cgi/p/pod/dod-idx?c=icmc;idno=bbp2372.1997.068
http://www.jaffe.com/Jaffe-Smith-Extensions-CMJ-1983 .pdf
http://www.music.mcgill.ca/~gary/courses/projects/618_2009/NickDonaldson/index.html
以前に補間遅延線を実装したことがありますが、波形バッファが変更されないウェーブ テーブルでのみ実装しました。さまざまな速度で遅延をステップスルーするだけです。しかし、私を混乱させているのは、KS アルゴリズムに関して言えば、論文では、ステップ スルーするレートだけでなく、遅延の長さを実際に変更することについて話しているように見えることです。ks アルゴリズムは物事を複雑にします。なぜなら、遅延線に値を常にフィードバックすることになっているからです。
では、これを実装するにはどうすればよいでしょうか。補間された値をフィードバックするのですか、それとも何ですか? 2 点平均ローパス フィルターを完全に削除する必要がありますか?
そして、オールパスフィルターはどのように機能しますか? 2 点平均フィルターをオールパス フィルターに置き換えたほうがよいのでしょうか? 線形補間法またはオールパス フィルター法を使用して、グリッサンドで離れたピッチ間を滑空するにはどうすればよいですか?