前回に引き続き、音声をMIDIに変換する方法を紹介します。今回は、例えば鼻歌などを録音してそれをMIDI化するようなものに使える、波形のピッチ検出を利用した方法です。


ピッチ検出を使ってMIDIに変換

歌などの音声ファイルを用意

RecVox01

今回はピッチ検出を行うため、ある程度音程感のある音声ファイルを用意します。自分で歌を録音したりしてもいいですし、とりあえず試してみる分にはVOCALOIDなどの歌声シンセ系のソフトで作ったりしたものでも良いかと思います。


音声ファイルの前処理

ピッチ検出の精度を上げるために、ある程度波形を整えたり無駄な情報を削除しておくと(自分の欲しいMIDIを得るという意味で)良い結果を得られるかもしれません。参考までですが、以下に前処理の例を書いておきます。

  • 不要な周波数帯(ノイズ・低域等)の信号除去
    人間の歌声なら出る音域は限られていますし、検出したいピッチ範囲が分かっているといった場合もあるかと思いますので、それ以外の範囲の周波数帯はEQ等で削ってしまってもよさそうです。ノイズ等もReaFIRやお好みのプラグイン等で除去しておきます。
  • 音量を整える
    音量感があちこちバラバラなようであれば、コンプなどで整えておくと良さそう。他にもGateでバッサリ切り落としたりするのが有効な場合もあるかも?
  • ピッチ補正ソフトでピッチを整える
    歌声のピッチを安定させた方が、ピッチ検出には有効です。このへんは有名なプラグインを所持している人も多いでしょうし、REAPERにはReaTuneというチューナー兼ピッチ補正FXが付属していますので、それを使ってもよいでしょう。

・・・とかいろいろ書きましたが、これらはとりあえずスルーしてまず後述のピッチ検出&MIDI生成をやってみて、うまくいかなかったら元の波形を整えてみるという感じで構わないかと思います。どういう結果が得たいかによって何をどう整えた方がいいかということは変わってきますので、上記の手法はあくまでそういう方法の例にすぎません。

実際、ItemのFX Chainの最後にReaTuneを入れて結果を確認しながら調整していくと、求める結果に近づいていってるか分かりやすいです。


ReaTuneでピッチ検出&MIDI化

では用意した音声ItemのFX Chainの最後にReaTuneを追加しましょう。これの一番左のタブ[ReaTune - Tuner]がチューナーになっていて、ここで半音単位のピッチ検出を行えます。

ReaTune02

下の方に検出したピッチのMIDI Noteを送信するオプション [Send MIDI events when pitch changes] がありますので、これをONにします。[Detector input] はピッチ検出を行う音声のチャンネル(モノラル)の指定です(通常はChannel 1でOK)。

これで再生すると検出したピッチが変わるたびにMIDI Noteが発行されます。
ReaTune03

ちなみにデフォルトのままだと結構ピッチが頻繁にゆれたりしてしまうので、まずは[Window size]を100~200msなど大きい値でザックリ検出してやると比較的検出が安定した感じになります。ここを調整のスタート地点にして[Overlap]を変えたりして試してみるとよさそうです。しかし、そもそも早くピッチが上下するような歌などを扱う場合はこれではザックリしすぎなので、設定を追い込んでいく必要がありますが。


MIDIをバウンスしてMIDI Item化

こちらは前回説明したので詳しくはそちらを見て下さい。Item右クリックで [Apply track/take FX to items as new take (MIDI output)] を実行すればOK。必要に応じてMIDI Noteのクォンタイズ等も行います。
MIDI_Bounce01

これでMIDIへの変換が完了。


ついでに音も鳴らしてみる

前回はReaSamplomatic5000を使いましたが、今回はもっと簡単にReaSynthをTrack FXに挿入してみましょう。これだけで音がすぐ鳴りますので、音程確認するだけなら十分です。

ReaSynth01

あとは気になるNoteを修正したり、お好きなように。