見出し画像

[DTM] 歌声のスピードを変えずにBPMを変えることができるのか

ツールでリアルタイム録音ができるようになって、調子に乗って”BPM設定関係ないや。”と思い、伴奏と同じにしなかったのではあるが、手直しの際に、どのタイミングで歌っているのか、ツール上でわからないという課題に直面した。

いや待てよ、理屈の上では、音素の時刻情報を同じ比率で細工すれば後で合わせることができるよな。

まず、確認のためBPMを変更してみる。

再生すると速度が変わるが、ツールのview上変化するのは、BPMの値だけ
ファイル(svp)の中を確認しても
"bpm": 120.0

という値が変わっているだけである。

音の位置


index 番目の noteの開始時刻情報としてonset(index)がある。

この値を下記のRateを掛け算すれば BPMの値を変えずに、音の位置が圧縮される。

BPM(current): 現在の値
BPM(exp):変更したい値

Onset(index) = Rate * Onset(index) 

Rate = BPM(exp)/BPM(current)

例えば、伴奏はBPM=180なのに、ボーカルを120で録音してしまった場合

記録されたsvpファイルの時刻をRate = 180/120 してやれば、遅く歌うファイルができる。
できたファイルのBPMを180に変えてやれば、元の歌の速さに戻るという計算。

音の長さ


duration(index)
こちらは、時刻を間延びさせたことによって、音の間が長くなるので
これも同じRateをかけてやると良い。


この記事が気に入ったらサポートをしてみませんか?