2010-09-04

ざっとまとめ:DSF→DXDIFF(DFF)変換

色々とやったことのメモ残し。

・DSFとDSDIFF(DFF)では、数値系データのエンディアンが異なります。なので、エンディアン変換処理が必須。
・汎用性(2ch以外に対応とか 2822400kHz 以外のサンプルレートに対応とかやろうとすると、もうちょっとDSFデータをまじめに読み込む必要があるが、今回のデータに限ってしまえば、そこらはフレキシブルに対応する必要がないので、固定値化、今後気合が乗ったら作る方向へ…まぁ、どうせ、スクリプトなので都度直しても問題ないし…
・というわけで、全般に固定値を計算もせずにそのまま埋め込みで対処。
・固定値でないのは以下

FRM8チャンクのサイズ(DSFのdataチャンクのデータサイズ+DSDIFFで作ったヘッダサイズ(=固定値))を入れておく
ABSSチャンクの時、分、秒、残ったサンプルサイズ(適当に計算(DSFのサンプル数/サンプルレート、が再生時間になるので、それを分割して放り込む)していれておくが…2Lのデータのここ、おかしくないか?)
DSDチャンクのサイズ(DSFのdataチャンクのデータサイズ - 12(ヘッダ固定分)を入れておく…本当はDSFは末尾に0詰めされているから0詰め部分をパディングに関係ない部分は削除しておいてもいいんだが、面倒なのでパス(をい
DSDチャンクのデータ 別記事にあるように、ブロック化→バイト交互化と、ビット並びの反転をかけて格納。

これで、DSDIFF(DFF)で鳴るデータが作れたようです。USB-AUDIO基板から鳴らす事に成功!

DSDデータ提供の道が一つ増えました…

#まぁ、MR-1なりMR-2なり買えばいいぢゃん、って話はなくもないんですが…

次はWSDデータの変換、最後はPCMとの間の相互変換だなっ!

#面倒だからソフトは公開はしません。調査した技術情報はどんどん載せていくので、誰か公開できるレベルのを作ってけろ!

0 件のコメント: