dポイントプレゼントキャンペーン実施中!

音程とテンポを独立して変化させるアルゴリズム

SoundEngineの機能なのですが

http://soundengine.jp/wordpress/tips/tutorial/539/
テンポを変えずに音程(ピッチ)の変更(キー調整)

http://soundengine.jp/wordpress/tips/tutorial/543/
音程を変えずに時間伸縮(速度変更)

これってどういう原理で変換しているのでしょうか?

単に周波数を変えると音程も変わるはずですが
どちらかだけを変換するアルゴリズムを教えてください。

A 回答 (2件)

たとえばwikipediaにも簡単な説明があります。



http://ja.wikipedia.org/wiki/%E3%82%BF%E3%82%A4% …

大きく分けて、周波数領域で処理する方法と、時間領域で処理する方法があります。
最近は時間領域での処理を採用するソフトが多いか。(計算量は多くなりがちだけと、質が良い波形を作りやすいので)

時間領域での処理は、単純にいえば、例えば、音程を変えずに時間を長くしたければ、元の波形を適当に細かく切り刻んで、コピペしたものを間に挿入して、無理やり時間を伸ばします。
このときに、波形をどのように切り刻むか、とか、元の波形とコピペしたものとの繋ぎ目をいかに自然にするか、とかがノウハウということになります。

まあ、人間の耳ってけっこういい加減なんで、波形で見るとタイムストレッチ処理したことが一目瞭然みたいな変な波形でも、人間の耳ではそれなりに聞こえたりはします。とはいっても自然な波形ができれはやはりそれに越したことはありませんが。
    • good
    • 0
この回答へのお礼

納得しました。ありがとうございます。

お礼日時:2015/02/20 12:50

確かに波形そのものを記録している磁気テープやレコードのような媒体であれば音程(周波数)の変更は再生速度の伸縮しかありません。

すなわちこの場合は音程の変更とテンポの変更は不可分です。

しかし、デジタル処理により演奏を「○○の音程の音が△△のタイミングで××ミリ秒流れる」というデータの集合に変換することが可能です。
上記の処理が終わったならば「○○の音程の音」(周波数)と「△△のタイミングで××ミリ秒」(演奏速度)を個別に編集することが可能になり、その編集後のデータをもとの波形に戻すことでどちらかを変えずにもう一方を変更した音声データが得られます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!