晴れて情研非部員になってしまったryです。
まだ自分では主要部のコードを書いてみてないんですが、
The DSP Dimension:
Pitch Shifting Using The Fourier Transform
(フーリエ変換を使ったピッチシフト)
http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/
というすばらしそうなものを見つけたのでさっそくALに出力するテストコードを書いてみました。
まあやる気ないコードですが...
テストコードとexe
実行には
OpenALがいります。
コンパイルには
インクルードとかと
OpenALSDKとALUTと
boostがいります。
(むしろ上のところにソースコードあるから自分でテストコード書けば早い。)
(2008.05.13:
一般的に言われているピッチシフトには2種類あるみたいで
・波形を横方向に伸縮する、すなわちリサンプリングの方法(テンポが勝手に変わる)
・上のやつみたいに、テンポを変えずにピッチを変更する方法
があります。前者は前回のアーティクルでやったのとおなじ感じです。テンポを変えずにピッチシフトする場合は、さらに自己相関関数を使うやつとか、フーリエ変換のやつとかいろいろあってややこしいけど、きっとなんか勉強になるはずです(ちなみに上のやつはフーリエ変換を使う方法)。また、テンポを変えずにピッチシフトできるということは同じ原理でピッチを変えずにテンポチェンジできる、ということです。きっと楽しいと思うよ。
2008.05.13)
ついでに、上のやつを読んでみた感じを書いてみます。ryフィルターがかかっているのでやっぱりテキトーです。
上のやつと見比べながら読んでくださいね。