Binary Editor の設計

Text Editor で表示できないファイルを編集する Binary Editor を作成します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

Binary Editor の作成

2004/06/24 放送のトリビア(trivai) の泉でこんな興味深い放送をしていました。
一青ヨウの「もらいなき」の再生速度を遅くすると、平井堅が歌っているように聞こえる

インターネットでは以前から知られていた話題で、トリビアの泉に投稿された直後には多くのメッセージが駆け巡っていましたが、 これをパソコンで検証してみたいと思い調べた所、音楽のテンポを遅くするには WAVE ファイルのヘッダ部に記述されている サンプリングレートと転送速度を直接書き換えて演奏する方法が最も手っ取り早いことが解かりました。
DOS モードの Binary Editor は作成していましたが、Windows で開発した Program には表示機能だけで編集機能が無く、 これをきっかけに本格的な Binary Editor を作成することにしました。

完成したこのプログラムで「もらいなき」の WAVE ファイルのヘッダ部分を書き換えて下さい。
Media Player で演奏すると本当に平井堅が歌っているように聞こえます。
サンプリングレートとデータ速度は、80%に落とした値です。
演奏が終われば WAVE ファイルのヘッダ部を元の値に戻しておいて下さい。
修正する項目 バイト位置 元の値 変更する値
サンプリングレート 24~4 Byte 44AC0000 D08D0000
データ速度 28~4 Byte 10B10200 40270200


プログラムの設計

  1. Binary File を入力して、16進数と文字形式で画面に表示する。
  2. マルチメディアのような大容量のファイルにも対応する。
  3. 大容量に対応するため、バイトの挿入や削除は行わない。
  4. 入出力と表示はブロック(512バイト)を単位として行う。
  5. 編集は List Box の行単位(16バイト)ごとに16進数で直接編集する。
  6. 編集前と編集後のブロックを比べられるように、二個のウインドウを設ける。
  7. ブロックを修正してテストが終わったら、もう片方のウインドウ情報で直接元に戻せるようにする。
  8. 二個のウインドウに表示するファイルは、それぞれ別々に指定できるようにする。

[Next Chapter ↓] フレームワークの作成

超初心者のプログラム入門(Win32API C++)