File format for VOCALOID3
vsqxとか呼ばれているファイル形式に関するメモ。
以下は生成したファイルから類推した情報。DTDとかrelaxNGとか書いたことないのでかなりテキトウな表記法になってる点に注意。そのうちきっと誰かがナントカするだろう。
| entity名 | 親ノード | 子ノード | メモ |
| vsq3 | なし。 これがroot | vender/version vVoiceTable/mixer/masterTrack vsTrack+/seTrack/karaokeTrack/aux | xmlns="http://www.yamaha.co.jp/vocaloid/schema/vsq3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.yamaha.co.jp/vocaloid/schema/vsq3/ vsq3.xsd" |
| vender | vsq3 | CDATA | 固定'Yamaha corporation'。 vendorじゃないので注意。 |
| version | vsq3 | CDATA | '3.0.0.11' 多分ファイルフォーマットの更新時に変化する。 (とはいえVocaloid3 Editorは現在3.0.4.0でupdateは都合4回のはず)。 |
| vVoiceTable | vsq3 | vVoice+ | 歌手テーブル。 そのファイルで利用するかに関わらず生成環境で設定されている全歌手に対応する vVoice要素が作られるようだ。だから雑誌付録DVDの「ボカロPのvsqx」を読むとエラーがでやすいの…。 |
| vVoice | vVoiceTable | vBS/vPC/compID/vVoiceName/vVoiceParam | 歌手データ |
| vBS | vVoice | 数値 | Luka_ENG(V2)のみ1なので「日本語=0, 英語=1」と思われる。 シユがいればもう少し確証が得られる。 BankSelect? |
| vPC | vVoice | 数値 | このファイル中で歌手データを識別する、0から始まるvVoiceTable中の連番。 vsTrack/musicalPart/singer/vPCで(のみ)使ってるっぽい。 ProgramChange?微妙な違和感 |
| compID | vVoice | CDATA | 歌手ライブラリの識別文字列。16bytes固定? (voicedbdir/以下のディレクトリ名と一致) 例:右は初期状態のvVoiceNameの値。 BHHN4EF9BRWTNHAB:Miku(V2) BEKF6B63DMXLRECA:Rin_ACT2(V2) BMLBDHXXMWYF2MBE:Len_ACT2(V2) BCMDC9MZLKZHZCB4:Luka_JPN(V2) BMKN7HT9EWTTSMCL:Iroha(V2) BDRE87E2FTTKTDBA:VY1V3 BMGK9EC6G4RPWMB3:Yukari BLRGDDR4M3WM2LC6:IA BCBG86S4FSYMTCBK:CUL BHLNEE62NRYK3HD2:Luka_ENG(V2) |
| vVoiceName | vVoice | CDATA | 'Yukari' 歌手名 通常は上の対応表の':'以降だが、「マイシンガー」で設定した 名称も使えるものと思われる(というか勝手に名前付けてよさげ?)。 |
| vVoiceParam | vVoice | bre/bri/cle/gen/ope | 歌手のパラメータ Vocaloid Editorでいう「歌声パラメーター」に 相当すると思われるがUIにはopeがない。 |
| bre | vVoiceParam | 数値 | デフォルト'0' |
| bri | vVoiceParam | 数値 | デフォルト'0' |
| cle | vVoiceParam | 数値 | デフォルト'0' |
| gen | vVoiceParam | 数値 | デフォルト'0' |
| ope | vVoiceParam | 数値 | デフォルト'0' |
| mixer | vsq3 | masterUnit/vsUnit+/seUnit/karaokeUnit | ミキサ全体。 vstPluginをつかうと該当*Unit要素にvstPlugin要素が追加されるみたい (だけど表がデカくなるので調査まとめ保留)。 設定値はaux/content以下のCDATAに書き出されてる ようだけどこれの解読はかなり気力と時間が要りそう。 |
| masterUnit | mixer | outDev/retLevel/vol | 詳細は未調査。 |
| vsUnit | mixer | vsTrackNo/ inGain/sendLevel/sendEnable/mute/solo/pan/vol | 1歌手トラック分のミキサ設定 詳細は未調査(だけどMixerUIとほぼ1vs1対応してる)。 |
| seUnit | mixer | inGain/sendLevel/sendEnable/mute/solo/pan/vol | SE(WavMonoral)トラックのミキサ設定。 詳細は未調査。 |
| karaokeUnit | mixer | inGain/mute/solo/vol | Karaoke(WavStereo)トラックのミキサ設定。 詳細は未調査。 |
| masterTrack | vsq3 | seqName/comment/resolution/preMeasure/timeSig/tempo | マスタートラック。ミキサの'Master'と 「Track Editorの一番上あたり」の設定。 |
| seqName | masterTrack | CDATA | 'Untitled1' 場所的に楽曲名に相当する物と思う けどVocaloid Editorではどこでいじるのか未確認。 |
| comment | masterTrack | CDATA | 'New VSQ File' コメント。これもどこでいじるのか未確認。 |
| resolution | masterTrack | 数値 | 480 多分MIDIとかのと同じ時間解像度。四分音符=480Tickとか。 |
| preMeasure | masterTrack | 数値 | 4 未調査。 |
| timeSig | masterTrack | posMes/nume/denomi | Track Editor上の0小節目の位置とか 拍子とか表してるんじゃないかと思うけど未調査。 |
| posMes | timeSig | 数値 | 0 |
| nume | timeSig | 数値 | 4 |
| denomi | timeSig | 数値 | 4 |
| tempo | masterTrack | posTick/bpm | テンポ。多分途中で再設定するために複数設定可。 |
| posTick | tempo | 数値 | デフォルト'0' 演奏開始からこのテンポを設定するまでのtick数 |
| bpm | tempo | 数値 | デフォルト'12000' 多分「12000=120BPM」。 |
| vsTrack | vsq3 | vsTrackNo/trackName/comment/musicalPart+ | トラックデータ |
| vsTrackNo | vsTrack | 数値 | トラック番号 Track1=0 |
| trackName | vsTrack | CDATA | トラックエディタ画面上のトラック名 |
| comment | vsTrack | CDATA | コメント |
| musicalPart | vsTrack | posTick/playTime/partName/comment/stylePlugin/partStyle/singer/note+ | パートのデータ |
| posTick | musicalPart | 数値 | 多分このパートの開始タイミング。in Tick。 |
| playTime | musicalPart | 数値 | 多分このパートの再生時間。in Tick。 |
| partName | musicalPart | CDATA | トラックエディタ画面上のパート名 |
| comment | musicalPart | CDATA | コメント。Vocaloid Editorではパートのプロパティダイアログで書ける。 |
| stylePlugin | musicalPart | stylePluginID/stylePluginName/version | 不明。 Vocaloid3 Editorの操作で変化させる方法があるかも未確認。 |
| stylePluginID | stylePlugin | CDATA | デフォルト'ACA9C502-A04B-42b5-B2EB-5CEA36D16FCE' |
| stylePluginName | stylePlugin | CDATA | デフォルト'VOCALOID2 Compatible Style' |
| version | stylePlugin | CDATA | デフォルト'3.0.0.1' |
| partStyle | musicalPart | attr+ | |
| attr | partStyle | 数値 | 要素のアトリビュート'id'でさらに細かく指定。 idの取りうる値: accent/bendDep/bendLen/decay/fallPort/opening/risePort |
| singer | musicalPart | posTick/vBS/vPC | パートを歌う歌手 |
| posTick | singer | 数値 | この歌手での歌唱の開始タイミング? in Tick。 |
| vBS | singer | 数値 | 歌手の言語 |
| vPC | singer | 数値 | 歌手の番号(このファイル内での通し番号) |
| note | musicalPart | posTick/durTick/noteNum/velocity lyric/phnms noteStyle | ピアノロール上の1音 |
| posTick | note | 数値 | 多分「このパートの演奏開始」から音を出す(≒note on)までの相対時間。in Tick。 |
| durTick | note | 数値 | 音を出してから音を切る(≒note off)までの時間? in Tick。 |
| velocity | note | 数値 | このノートのvelocityだと思うけど、vel?dyn?vol?要確認 |
| lyric | note | CDATA | このノートの、ピアノロール上の歌詞表記。 |
| phnms | note | CDATA | このノートの、ピアノロール上の音素表記 (pnms=PHoneticナントカ?)。 |
| noteStyle | note | attr+/seqAttr+ | このノートの「音の出し方」。 note onしてからの音量音程変化の設定と、 発話的なVocaloid用固有の発音情報みたい。 |
| attr | noteStyle | 数値 | noteStyleのパラメータに相当するもの。 idアトリビュート必須でパラメータ名が入るみたい。 差し当たって確認できるのは: accent/bendDep/bendLen/decay/ fallPort/opening/risePort vibLen/vibType |
| seqAttr | noteStyle | elem+ | noteStyleのパラメータに相当するもの。 多分数値一つで済まないタイプのパラメータのための汎用要素で、 idアトリビュートでパラメータ名を示す。 とりあえずid=vibDep/id=vibRateがある。 |
| posNrm | elem | 数値 | デフォルト'22391' 名前からするとnote発音開始から音色補正までの時間 (<ややあてずっぽう)。 |
| elv | elem | 数値 | 名前からするとnote発音開始後にから音色補正する際の「度合い」と思われる(ビブラート幅とか) 文脈によって意味が違いそう。 |
| seTrack | vsq3 | wavPart* | 効果音WAVトラック関係っぽい。 画面上では「Track(Mono)」に相当して主にブレスで使われる。 |
| wavPart | seTrack | posTick/playTime/partName/comment/ sampleRate/sampleReso/channels/filePath | 効果音WAVトラックにある「パート」。 Editor3.0.4.0でWAVコピーした場合「./filename.wavparts/」を作って そこに*.wavをコピーしてそこにリンクする仕様みたい。 |
| posTick | wavPart | 数値 | 未調査。多分このパートの再生開始タイミングを表すTick数。 |
| playTime | wavPart | 数値 | 未調査。多分wavの再生時間に相当するTick数。 |
| partName | wavPart | CDATA | デフォルト'NewPart' Track Editor上の表記。 |
| comment | wavPart | CDATA | デフォルト'New WAV Part' コメント |
| sampleRate | wavPart | 数値 | サンプリング周波数。 44100Hz等。 |
| sampleReso | wavPart | 数値 | 量子化ビット数。 16bit等。 |
| channels | wavPart | 数値 | 1=Mono seTrackの文脈では1固定なのか、元データのことかは不明。 |
| filePath | wavPart | CDATA | WAVデータのパス。 相対パスで書いてある場合は./filename.wavparts/をカレントとして見るみたい。 CDATAにデータ丸ごと埋め込んだりするワザがあるかは不明だけど 少なくともVocaloid EditorのUIからは不可能でサポート外な気がする。 やるとしたらxmlとかディレクトリごとアーカイブしちゃうとかの方が楽? |
| karaokeTrack | vsq3 | 未調査。どう見ても伴奏WAVトラック関係。 | |
| aux | vsq3 | auxID/content | 未調査。多分VST(e)プラグインの設定値とか。 |
| auxID | aux | CDATA | デフォルト'AUX_VST_HOST_CHUNK_INFO' |
| content | aux | CDATA | デフォルト'VlNDSwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=' VSTプラグインを使うとこの値が変化する。 ドキュメントないと解析は文字通りhack作業になる(けど、VST開発者だった楽勝ですね!)。 ミキサのVSTe以外で使ってるかは不明。 |