chikuchikugonzalezの雑記帳

趣味とか日記とかメモとか(∩゚д゚)

sndファイルフォーマットについて

ちょいと調べたら偉い単純だった件

フォーマット概要

基本的にSFFと一緒だった

+------------------------------------------+
| SND Header (512bytes)                    |
+------------------------------------------+
| SND Node   (16bytes + N bytes (wav file) |
|      × n                                |
+------------------------------------------+
SND File Header

SFFのと同様、シグネチャ・バージョンマジックナンバー・サウンド数・ヘッダーサイズ (もしくは先頭ファイルへのオフセット) で構成されてる模様

+--------+-------+--------+----------------------------+
| Offset | Bytes |   Type | Contents                   |
+--------+-------+--------+----------------------------+
|      0 |    12 | char[] | b'ElecbyteSnd\x00          |
|     12 |     4 | char[] | b'\x01\x00\x01\x00         |
|     16 |     4 |    int | WAVノード数 (サウンド数)   |
|     20 |     4 |    int | Header Size / First Offset |
|     24 |   488 |  void* | 不明 (0詰め?)             |
+--------+-------+--------+----------------------------+
SND Node

SNDファイルヘッダの直後からSNDノード (適当命名) が連続で入っておりまする。この辺SFFと一緒

+--------+-------+--------+----------------------------+
| Offset | Bytes |   Type | Contents                   |
+--------+-------+--------+----------------------------+
|      0 |     4 |    int | 次SNDノードオフセット      |
|      4 |     4 |    int | WAVデータサイズ (N)        |
|      8 |     4 |    int | SNDグループ番号            |
|     12 |     4 |    int | SND番号 (グループ内番号)   |
|     16 |     N |  void* | WAVデータ                  |
+--------+-------+--------+----------------------------+

SAEで入力できたコメント欄はどうやらWAVのINFOチャンクに入れてるらしい

ダレカ正しいフォーマット教えてください(´・ω・`)