MPEG4IP

久米さんのコメントに「なぜエンディアンを疑ったのか」というものがありました。結論から言えば、まずエンディアンを疑う事例でしょうね。

音声はしばしば16bit符号付き整数の列として表されていることが多いのでエンディアンが問題になりやすい、ということ、データをダンプしてみると0ベースで見たときの奇数バイト目に0xFFと0x00が多くて、Little Endianの音声データのように見える(最初は違う予想も一瞬立てましたが)ということ、そしてコードを追うとそれをそのままSDLサウンドドライバーに(format 0x8010の音声データとして)渡していたので、きっと素直なPCM音声に違いないのに、Squeakから鳴らすとならないので、些細な間違いのはずであろうということを思うと、やっぱりエンディアンが臭かったわけです。

で、Squeakにバイト列として読み込んで、バイトスワップをしてSoundPlayerクラスに食わせたらそれっぽく聞こえたので、めでたしめでたしということでした。