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ブロック目の低音〜高音,…の順に格納されています。