WFDファイルは以下のような構造になっています。
ヘッダ部 |
インデックス部 |
データ部 |
解析データに関する基本的な情報が格納されています。
int ファイルタイプ=0x03004657; (下位2バイト:"WF" 上位2バイト:データバージョン)
int 予約領域1=0;
int 予約領域2=0;
int 半音あたりのブロック数; (1,5,10のいずれか)
int 解析する最低音; (半音単位,C4=60とする)
int 解析する音階の範囲; (半音単位)
int 1秒あたりのブロック数;
int 予約領域3=0;
int 時間方向の全ブロック数;
int グラフデータのビット数=16;
int 拍単位で表示フラグ;
int テンポ(BPM);
int 第1小節1拍目の時間 (ミリ秒);
int 拍子;
データ部に格納されているデータの種類とサイズが格納されています。
int データの数;
{
int データのタイプ;
int データのサイズ(バイト);
}[データの数];
データタイプ | 内容 |
---|---|
0 | このデータは無視されます。 |
1 | 音声スペクトル[廃止] |
2 | テンポ解析結果 |
3 | ラベルリスト[廃止] |
4 | 拡張情報 |
5 | コード検出結果[廃止] |
6 | ラベルリスト |
7 | 音声スペクトル(stereo) *1 |
8 | 音声スペクトル(L-R) *1 |
9 | 音声スペクトル(L+R) *1 |
10 | 音声スペクトル(L) *1 |
11 | 音声スペクトル(R) *1 |
12 | テンポマップ |
13 | リズムマップ[廃止] |
14 | コード検出結果 |
15 | リズム,キーマップ |
16 | ノートリスト |
17 | テンポ解析用音量増加量 |
18 | 基本周波数解析結果 |
19 | トラックの設定 |
16bit符号なし整数値で時間方向1ブロック目の低音〜高音, 時間方向2ブロック目の低音〜高音,…の順に格納されています。