[1] 授業単元: C言語プログラミング
[2] 問題文:
WAVEファイルへのビット編集を行う。
WAVEの形式は44.1kHzの16bitステレオ、リニアPCMとする。

課題1
WAVEファイルの音声データの末尾のビットの書き換えを行う。
0と1の乱数で構成された数列を格納したテキストファイルがある。
このファイルの中身をWAVEファイルの音声データ(波形データ)の末尾ビットに書き込め。
テキストの数列のあとには同じ手法で「11111111」を書き込め。
書き込み後にWAVEの音声を視聴し音質に異常な劣化がないことを確認せよ。
再生できない、音質が異常などであれば音声データの末尾以外やヘッダを編集している。

課題2
課題1で書き込んだ0と1の数列を抜き出し、テキストファイルに書き出せ。
「11111111」を読み込んだ場合、抜き出しを停止しその時点のデータをテキストに書き出せ。
書き出されたテキストファイルの内容が課題1で格納したテキスト+末尾に「11111111」であることを確認せよ。
同じ内容でない場合は書き込みか抜き出しのどちらか、あるいは両方のプログラムに誤りがある。

補足
書き込んだテキスト以上の範囲を抜き出し続けてしまうのを防ぐため、「11111111」を付加し、
その「11111111」を読み込むことで停止させ範囲以上の抜き出しを防いでいる。

[3] 環境
 [3.1] OS:MACOSX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限: [2013年02月13日20:00まで]

音声データは16ビットで一塊、その連続になっているようで、その連続する16ビットの末尾を書き換えて埋め込め、とのことです。
ヘッダは編集しないように気をつけろ、ということでした。難しい課題だと思うのですが、何卒お力添えください。