VSQフォーマット勉強メモ

勉強日誌(下方)へ|プロジェクトhome|ZHUOWARE BACKYARD TOP|ZHUOWARE表ページ
最新まとめ

vsqのフォーマットの勉強

2007.10.27

この一週間気になっていたのは「text metaeventで書かれている内容と,MIDIeventのControl Changeで書かれている内容は,同一なのか,相補的なものなのか」ということであった.もし相補的であるなら,MIDI eventのControl Changeの方も読み取る必要がある.もちろんそのようなプログラミングはきわめて楽しい作業だが,時間のロスは避けたい.

vsqをテキストに変換し,そのcontrol changeの並んでいる部分と,metaevent部分を抽出整形したものとを見比べて検討した結果,「ほとんど同一内容」という結論に達した. 一部,対応しない情報がある.control changeのv1mean,d1meanなどである.ただ,これらは,リップシンクをする上で今すぐどうしても必要という情報ではなさそうだ. これ以外のcontrol changeは,時間変化曲線的なものもふくめ,metaevent側にある情報の反復,あるいはチェックサム的なものであった.

よって,当面,text metaeventから抽出した情報のみを利用することにする.

検討にあたり,初心者になるための耳コピMIDI講座の情報を大いに参考にさせていただいた.心より感謝申し上げます.

2007.10.20

昨日はPerlをインストールしたあたりで眠り込んでしまった. 今日はさっそく,「vsqをmf2tでテキスト化したものから,text metaeventを選び,つなぎあわせて,\nで改行したテキストを出力する」Perlスクリプトを書いた.これを次のようにコマンドラインで動かしてみると:
perl vsqtxt2lipsync_01.pl < miku_vsq.txt > miku_vsq_01.txt
miku_vsq_01.txtは,それらしいテキストになっている.やはりこれが,vocaloid editorの内部情報のようだ.細かい意味まではわからないが,時刻と音素とを拾うことはなんとかできそうだ.

2007.10.19

掲示板などの情報によるとVocaloidのファイルフォーマットはSMFとのこと.
ならばと,SMFとテキストを相互変換してくれるツールmf2tをvector.co.jpでとってきた(ここ).
mf2tが出力するテキストの意味は,readme.txtに書いてあるが,たとえばここにも書いてある.
さて,DTMマガジン2007年11月号のDVDの中にある Miku.vsq を題材として,DOS窓で
mf2t.exe Miku.vsq miku_vsq.txt
としてみると,おお,ちゃんと変換された.ほんとにSMFなのだ.

さてその中身をながめると,たしかにSMFだがずいぶんかわったつくりだ.

とりあえず,text meta eventをつなぎあわせて,"\n"で改行して書き出してみることにした.
こういう用途にはawkやperlがぴったりだ.そこでまたvector.co.jpから,perl5 for Win32をもらってきた.これを走らせるとPCにperlをインストールしてくれる. このツールを試すだけにインストールは嫌だという人も多いと思うので,将来キットをリリースするときは,実行に最低限必要なPerl.exeとPerl300.dllだけパッケージに同梱することにしようと思う.