FC2ブログ

ホーム > 2011年02月

2011年02月月度記事一覧

WAVEファイルの再生 第1部



WAVEファイルはWindowsのマルチメディアアプリケーションを収めたRIFF形式Resource Interchange File Format)という形式をとっております。
WAVEファイルの読み込み手順は以下の通りです。

  1. マルチメディアファイル入出力関数を使って、WAVEファイルを開きます。
  2. RIFFチャンクに進入して、WAVEチャンクを探します。
  3. fmtチャンクに進入して、fmtチャンクを読み込み、その内容を元にしてWAVEFORMATEX構造体を作成します。
  4. fmtチャンクから退出して、dataチャンクに進入します。
  5. dataチャンクの先頭データ位置を音源データの先頭位置として保存し、ファイル末尾に移動して、実際のファイルサイズを取得します。
  6. 先に作成したWAVEFORMATEX構造体を元にWAVE出力デバイスを開きます。
  7. WAVE出力デバイスからのコールバックイベントをトリガにして、ダブルバッファに音源データを読み込みながら演奏していきます。
  8. ファイル末尾まで読み込むか、演奏停止イベントがあればWAVE出力デバイスを停止してから閉じます。
  9. RIFFチャンクから退出してファイルを閉じます。


...続きを読む

WAVEファイルの再生 第2部

WAVE再生時の音量調節



WAVE再生時の音量調節については、WAVE出力関数waveOutSetVolume関数がありますが、この関数を使うとシステム全体のボリューム調節をすることにもなり、ウィンドウズビスタ以降OSとも相性が良くないようです。そこで今回は読み込んだ音源データを直接加工して音量調節する方法を解説します。


...続きを読む

モノラル音源の擬似ステレオ再生



モノラル音源を一定時間遅延させ、元の音源と合わせて再生する擬似ステレオ再生について解説します。手順は以下の通りです。


  1. 音源データWAVEファイルから読み込みます。
  2. 前回の残りの音源データがあれば、遅延バッファの先頭に遅延時間分書き込みます。
  3. 元の音源データを一定時間分ずらしてバッファに書き込みます。
  4. ずらして書いたために書ききれずに残った音源データを、次回分として保存します。
  5. 元の音源データ右チャンネル遅延バッファの音源データ左チャンネルに書き込んで再生します。


...続きを読む

WAVEファイルの書き込み



WAVEファイルはWindowsのマルチメディアアプリケーションを収めたRIFF形式Resource Interchange File Format)という形式をとっております。

WAVEファイルの書き込み手順は以下の通りです。

  1. マルチメディアファイル入出力関数を使って、WAVEファイルを開きます。
  2. RIFF/WAVEチャンクを作成して、その中に進入します。
  3. fmtチャンクを作成してその中に進入し、WAVEFORMATEX構造体を書き込んだ後、fmtチャンクから退出します。
  4. dataチャンクを作成してその中に進入します。
  5. 音源データを格納するバッファを作成します。
  6. 現在の演奏条件での音源データをバッファに読み込み、ファイルに書き込みます。この作業を音源データが読み込めなくなるまで繰り返します。
  7. RIFFチャンクから退出してファイルを閉じます。



...続きを読む

すべての記事一覧

ホームへ戻る > 2011年02月

タグクラウド
ブロとも申請フォーム

この人とブロともになる

ブロとも一覧

このページの先頭へ戻る