File format for VOCALOID3
vsqxとか呼ばれているファイル形式に関するメモ。
以下は生成したファイルから類推した情報。DTDとかrelaxNGとか書いたことないのでかなりテキトウな表記法になってる点に注意。そのうちきっと誰かがナントカするだろう。
| entity名 | 親ノード | 子ノード | メモ |
| vsq3 | なし。 これがroot | vender/version vVoiceTable/mixer/masterTrack vsTrack+/seTrack/karaokeTrack/aux | |
| 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要素が作られているようだ。 |
| 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固定? (ディレクトリ名と一致?) 例:右は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 | 歌手のパラメータ 「歌声パラメーター」に相当すると思われるがUIにはopeがない。 |
| bre | vVoiceParam | 数値 | デフォルト'0' |
| bri | vVoiceParam | 数値 | デフォルト'0' |
| cle | vVoiceParam | 数値 | デフォルト'0' |
| gen | vVoiceParam | 数値 | デフォルト'0' |
| ope | vVoiceParam | 数値 | デフォルト'0' |
| mixer | vsq3 | masterUnit/vsUnit+/seUnit/karaokeUnit | ミキサ全体 |
| masterUnit | mixer | outDev/retLevel/vol | 詳細は未調査。 |
| vsUnit | mixer | vsTrackNo/inGain/sendLevel/sendEnable/mute/solo/pan/vol | 1歌手トラック分のミキサ設定 詳細は未調査。 |
| seUnit | mixer | inGain/sendLevel/sendEnabele/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' |
| 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 | 数値 | |
| playTime | musicalPart | 数値 | |
| partName | musicalPart | CDATA | トラックエディタ画面上のパート名 |
| comment | musicalPart | CDATA | コメント |
| stylePlugin | musicalPart | stylePluginID/stylePluginName/version | ??? |
| 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でさらに細かく指定 |
| singer | musicalPart | posTick/vBS/vPC | パートを歌う歌手 |
| posTick | singer | 数値 | 開始タイミング?? |
| vBS | singer | 数値 | 歌手の言語 |
| vPC | singer | 数値 | 歌手の番号(このファイル内での通し番号) |
| note | musicalPart | posTick/durTick/noteNum/velocity lyric/phnms noteStyle | ピアノロール上の1音 |
| posTick | note | 数値 | 演奏開始から音が出る(≒note on)までのtick数 |
| durTick | note | 数値 | 音を出してから音を切る(≒note off)までのtick数? |
| velocity | note | 数値 | このノートのvelocityだが、velかdynか要確認 |
| lyric | note | CDATA | このノートの、ピアノロール上の歌詞表記 |
| phnms | note | CDATA | このノートの、ピアノロール上の音素表記 (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 | 未調査。どう見てもWAVトラック関係。 ブレス付けるならここだけど埋め込み可能かは不明。 Editor3.0.4.0でコピーした場合「./filename/wavparts/」を作って そこに*.wavをコピーしてそこにリンクする仕様みたい。 | |
| karaokeTrack | vsq3 | 未調査。どう見てもWAVトラック関係。 | |
| aux | vsq3 | auxID/content | 未調査 |
| auxID | aux | CDATA | AUX_VST_HOST_CHUNK_INFO |
| content | aux | CDATA | VlNDSwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= |