![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
音程とテンポを独立して変化させるアルゴリズム
SoundEngineの機能なのですが
http://soundengine.jp/wordpress/tips/tutorial/539/
テンポを変えずに音程(ピッチ)の変更(キー調整)
http://soundengine.jp/wordpress/tips/tutorial/543/
音程を変えずに時間伸縮(速度変更)
これってどういう原理で変換しているのでしょうか?
単に周波数を変えると音程も変わるはずですが
どちらかだけを変換するアルゴリズムを教えてください。
No.2ベストアンサー
- 回答日時:
たとえばwikipediaにも簡単な説明があります。
http://ja.wikipedia.org/wiki/%E3%82%BF%E3%82%A4% …
大きく分けて、周波数領域で処理する方法と、時間領域で処理する方法があります。
最近は時間領域での処理を採用するソフトが多いか。(計算量は多くなりがちだけと、質が良い波形を作りやすいので)
時間領域での処理は、単純にいえば、例えば、音程を変えずに時間を長くしたければ、元の波形を適当に細かく切り刻んで、コピペしたものを間に挿入して、無理やり時間を伸ばします。
このときに、波形をどのように切り刻むか、とか、元の波形とコピペしたものとの繋ぎ目をいかに自然にするか、とかがノウハウということになります。
まあ、人間の耳ってけっこういい加減なんで、波形で見るとタイムストレッチ処理したことが一目瞭然みたいな変な波形でも、人間の耳ではそれなりに聞こえたりはします。とはいっても自然な波形ができれはやはりそれに越したことはありませんが。
No.1
- 回答日時:
確かに波形そのものを記録している磁気テープやレコードのような媒体であれば音程(周波数)の変更は再生速度の伸縮しかありません。
すなわちこの場合は音程の変更とテンポの変更は不可分です。しかし、デジタル処理により演奏を「○○の音程の音が△△のタイミングで××ミリ秒流れる」というデータの集合に変換することが可能です。
上記の処理が終わったならば「○○の音程の音」(周波数)と「△△のタイミングで××ミリ秒」(演奏速度)を個別に編集することが可能になり、その編集後のデータをもとの波形に戻すことでどちらかを変えずにもう一方を変更した音声データが得られます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 物理学 波動方程式のようなもの 1 2023/05/13 07:23
- 物理学 風力発電での音 1 2023/04/16 08:55
- ビデオカード・サウンドカード windows11のパソコンへ適切な音量でマイクを接続する方法を教えてください 5 2023/02/08 20:29
- オーケストラ・合唱 チコちゃんに叱られる。 2 2022/03/25 20:50
- スピーカー・コンポ・ステレオ オンキョーアンプA819RSのバイアス電圧が信号入力時に大きく変動する。(Rチャンネルのみ) 2 2022/10/21 13:31
- モニター・ディスプレイ プラズマディスプレイ (PDP-507CMX-JP)に2in1PCの映像と音声を表示させたいです。 1 2023/08/18 12:04
- HTML・CSS ホームページをちょっと加工する程度の無料または古くて安く購入できる作成ソフトを教えてください 5 2022/12/16 12:17
- 工学 音声合成を追加 3 2023/01/30 11:52
- 工学 CR発振回路 C1=C2=C=0.001【uF】 R1=R2=R3=16【kΩ】 R4は出力電圧が正 2 2023/05/10 19:13
- 戸籍・住民票・身分証明書 苗字の読みを変えること 私は、吃音症がありどうしても自分の名前が言えません。 健康診断、病院の予約、 4 2023/08/15 17:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
Excel VBA での処理時間計測結...
-
絶対パスの取得について
-
clispの実行方法
-
小数点を含む数値かどうか判断...
-
Excel VBA データ削除の高速化
-
DoEvents関数って何?
-
ポインターの横に輪が回ってる。
-
C言語で、文字とか入力されなく...
-
プログラミングの授業でPython...
-
VB 電卓 メモリー機能
-
C言語 時刻差分の算出方法
-
プログラム上のCPU稼働率低減に...
-
ファミリーベーシックのDATAの...
-
簡単に同時アクセスをコントロ...
-
VBAでリアルタイムで計算結果を...
-
膨大データ処理を高速化したい
-
C言語について
-
再帰について(C言語)
-
非同期プログラミングは必ずマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
DoEvents関数って何?
-
win10で、正確な待ち時間の作り方
-
小数点を含む数値かどうか判断...
-
Excel VBAにて、2GB超の点群デ...
-
SQLの速度をあげるには・・・
-
絶対パスの取得について
-
WebBrowserの読み込み待ちの処...
-
プログラム上のCPU稼働率低減に...
-
C言語 再帰処理のメリットとデ...
-
テキストファイルの空行をスキ...
-
実行時のCPU使用率を増やしたい
-
C言語 時刻差分の算出方法
-
Excel VBA データ削除の高速化
-
VBでの簡易電卓の作成(減算方...
-
Excel(VBA)でSetTimer関数を使...
-
プログラミングの授業でPython...
-
If Not c Is Nothing Then ~延...
-
C言語で、文字とか入力されなく...
-
C言語:関数を使うメリットとデ...
おすすめ情報