WAV ファイルの読み書きについては、仕様を参照してください:
https://ccrma.stanford.edu/courses/422/projects/WaveFormat/
8 ビットと 16 ビットの間で変換するには、256 で除算または乗算するだけです
。たとえば (C で 16 ビットから 8 ビットに変換する場合):
- を使用して、16 ビット ファイルと (まだ存在しない) 8 ビット ファイルを開きます
fopen()。
- 仕様に従って、16 ビット ファイルの先頭を読み取り、8 ビット ファイルの先頭を書き込みます。
- 次に、サンプルごとに次の操作を行います。
int sample = 0;
// read 2 bytes (= 16 bits) from the 16 bit file into sample:
fread (&sample, 2, 1, wav_file_16bit);
sample /= 256; // divide sample by 256
// write 1 byte (= 8 bits) to the 8 bit file:
fwrite (&sample, 1, 1, wav_file_8bit);
より具体的な情報が必要な場合は、お問い合わせください。