#UTAUの音をUnityで出してみたい
と、ふと思った。
#動画
#ダウンロード (Unityパッケージ)はこちら
utau2adx2le.unitypackage
https://github.com/tatmos/UTAU2ADX2LE
使い方は上の動画を参考に。
#参考にしたもの
歌声合成ツールUTAU @ ウィキ
重音テト・オフィシャルサイト
ぱむぱみゅ配布サイト
#いろいろ
波形ファイルのままだと
音程がおかしい→frqファイルの基本周波数で補正する
ループじゃないoto.iniファイルでループにしてみる
音程はPitchで変えてもらえばいいかなぁといった感じ。
UTAUのfrqファイルには周波数が時間分入っているみたい。
周波数っぽいので、音程に変換するには・・・
'''
static public float Ftom(float freq)
{
return (69f + (1f/.057762265f) * Mathf.Log(freq/440f));
}
'''
これで、近いMIDINoteNoが得られる
これをベースのキーとして
ずれてる分をcent値として
1200cent * 端数を引けばいい感じかな。
##oto.iniファイルには
UTAUのoto.iniはテキストで
_あ.wav=あ,24,56,73,5,20
_あ.wav=- あ,24,56,73,5,20
_あ.wav=* あ,78,100,73,50,100
みたいに、一つの波形で複数の設定があるみたい。
とりあえず無印だけとりだす。
24 左ブランク
56 オーバーラップ
73 先行発声
5 固定範囲 ループ開始位置
20 右ブランク ループ終了位置
と5msec~20msecをループにすればよさそう
#ループがとれているわけではない
msecという単位での範囲指定なので、おそらくきっちりループではない。
ので、簡易でクロスフェードループする波形を生成する。
本来のループ区間の後ろを次のループ開始の部分とオーバーラップさせて少しクロスフェードするとかかなぁ。
#残った課題
- とりあえず音程を正しくして読み込めた。
- 歌わせるにはどうするか・・・
- ループをなんとかしたい