質問

私は今日、興味深い質問があります。

私はをいくつかのポケモンオーディオファイルは、8ビットのサンプルの(0-255値)のリストに変換する必要があります。私が再生されるようにこれらの音が必要になりますMC6800チップセット上のアセンブリルーチンを書いています。私は、プログラムがループ関数が呼び出される介して8ビットのサンプルとアレイを含むことを計画します。

誰でもコンマのリストにオーディオファイル(WAV / MP3)に変換する方法を知っていた8ビットのテキストサンプル値を分離?のそれとも、この相対的な方法の何?

事前にどうもありがとうございます!

役に立ちましたか?

解決

あなたは、生の、符号なし8ビットのモノラルオーディオファイルにファイルを変換するには、コマンドライン「SOX」ツールまたはAudacityのオーディオエディタを使用することができます。

Audacityは1.3以上で、オーディオを開き、[エクスポート]を選択し、[オプション]をクリックし、フォーマットとして「ウェーブ、AIFF、および他の非圧縮の種類」を選択してください... - その後、選択した「その他...」フォーマットのために、ヘッダの「RAW」、及び符号化などの符号付き8ビットのPCM。 (申し訳ありませんが、符号なしは使用できません。)

コマンドラインから、符号なしリニアため、無ヘッダーのため、1つのチャネルに対して-C 1とSOX -uを-t生を試し、そしてサンプルあたり1つのバイトは-1

次に、あなたが数字としてファイルのバイトをダンプするために、「hexdumpに対して」などのツールを使用して、あなたのコードに貼り付けることができます。

他のヒント

SOX にはそれがない場合は、生の(ヘッダ無し)を生成するためにそれを使用する必要がありますファイルやカンマで区切った自分にRAWファイルを変換してます。

EDIT:SOX Webページからそのフォーマットの一つとして、「生のテキストデータを」持っています。あなたはそれはあなたが出力のために、このオプションを使用して希望通りの出力が得られ、おそらく、最初のパスで符号なし8ビット線形サンプルにサウンドファイルを変換して作ることができます。

.WAVにとっては、非常に単純なプロセスです。あなたは、Google検索で簡単にwavファイルの仕様を見つけることができます。これは、単に生のサンプルをヘッダを含みます。あなたはすべてのサンプルを介して第1ヘッダ、その後、ループをお読みください。通常、彼らは、16ビットのサンプルですので、あなたの0-255の範囲に32767の範囲-32768からそれらを正常化したいです。私は最初は簡単なスケーリングを示唆しています。それが成功しない場合は、多分サンプルの中で、実際の最小値と最大値を見つけて、それに応じてスケールを調整します。

まあ多くは、あなたのオーディオフォーマットに依存します。波の形式は、例えば、非圧縮インターリーブPCMデータで構成されます。

次のように

8ビット・ステレオ・ファイルのすなわち、各サンプルが配置されます。

[左サンプル1] [右例1] [左サンプル2] [右サンプル2] ... [左サンプルn] [右サンプルn]。

すなわち、各8ビットのステレオサンプルは2バイトに格納されます。左チャンネルと右のための1のための1。これは、データ形式、サウンドハードウェアが最も可能性が高い必要がありますされます。

16または24ビットのオーディオファイルは、それぞれの方法で動作するが、左と右のサンプルは、それぞれ、2つのまたは3バイト毎になります。

もちろんWaveファイルは、それにextyra情報の負荷を持っています。これは、RIFF形式に従います。あなたはそれに情報を見つけることができますし、「チャンク」WAVEファイルは、www.wotsit.orgような場所で使用します。

MP3を解凍するには、より複雑です。あなたは、デコンプレッサのホールドを取得し、MP3エンコードされたオーディオの上にそれを実行しているオフ最適です。 ITは反対側から上記のようにPCMデータを吐き出すだろう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top