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」を読むとエラーがでやすいの…。 |
| mixer | vsq3 | masterUnit/vsUnit+/seUnit/karaokeUnit | ミキサ全体に相当。 vstPluginをつかうと該当*Unit要素にvstPlugin要素が追加されるみたい (詳細調査は保留)。 設定値はaux/content以下のCDATAに「も」書き出されてる ようだけどそっちの解読はかなり気力と時間が要りそう。 |
| masterTrack | vsq3 | seqName/comment/ resolution/preMeasure/timeSig/tempo* | マスタートラック。ミキサの'Master'と 「Track Editorの一番上あたり」の設定。 |
| 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/mCtrl+/note+ | 「パート」のデータ |
| posTick | musicalPart | 数値 | 多分この「パート」の、Trackの中での開始タイミング。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 | 数値 | 歌手の言語?(多分vVoice要素で定義されたもの) |
| vPC | singer | 数値 | 歌手の番号(多分vVoice要素で定義された通し番号) |
| mCtrl | musicalPart | posTick/attr | ピアノロール上のパラメータエディタの曲線に相当 |
| posTick | mCtrl | 数値 | パート中の、コントロールパラメータ設定位置。in Tick。 (デフォルトで)生成されるのは最小10Tick単位? |
| attr | mCtrl | 数値 | パート中の、コントロールパラメータ設定値。 'id'アトリビュートでパラメータ種別指定。 idの取りうる値は未確認。とりあえず'DYN'はある。 |
| note | musicalPart | posTick/durTick/noteNum/velocity lyric/phnms noteStyle | ピアノロール上の1音 |
| posTick | note | 数値 | 音を出す(≒note on)までの、「このパートの演奏開始からの相対時間」。in Tick。 |
| durTick | note | 数値 | 音を出してから音を切る(≒note off)までの時間? in Tick。デフォルトで480=四分音符相当 |
| velocity | note | 数値 | このノートのvelocityだと思うけど、vel?dyn?vol? |
| lyric | note | CDATA | このノートの、ピアノロール上の歌詞表記。 |
| phnms | note | CDATA | このノートの、ピアノロール上の音素表記 (phnms=PHoneticナントカ?)。 |
| noteStyle | note | attr+/seqAttr+ | このノートの「音の出し方」。 note onしてからの音量(エンベロープ)音程(ビブラートやポルタメント)変化の設定と、 発話的なVocaloid用固有の発音情報みたい。 openingもあるけど…? |
| 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 | 数値 | サンプリング周波数。 '44100'Hz等。3.0.4.0のマニュアルによれば対応しているWAVファイルの サンプリングレートの種類は44.1、48、96KHzの3種類 |
| sampleReso | wavPart | 数値 | 量子化ビット数。 '16'bit等。3.0.4.0のマニュアルによれば対応しているWAVファイルの 量子化ビット数は16ビットのみ |
| 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プラグインを使うとこの値が変化する。 設定値はミキサの方にもあるので「プロジェクトファイル的な情報」かも。 ミキサのVSTe以外で使ってるかは不明。 ドキュメントないと解析は文字通りhack作業になるので大変。 |