FC2ブログ

ホーム > 2011年03月

2011年03月月度記事一覧

CD-DAの再生 第1部



コンパクトディスク(CD)音源データは、音楽等の音声を収めるCD-DA (Compact Disc Digital Audio)という規格で書かれています。
CD-DAのデータ構造は、開始トラックから終了トラックまで、音源データセクタ単位で連続して書かれており、実際に曲と曲との区切りというものは存在しません。
そのため曲単位毎に再生する場合には、その曲に相当するトラックの開始時間(MSF単位)からセクタ番号を割り出し、そこに書かれた音源データDeviceIoControl関数を使って直読みしながら、WAVEデータとして再生します。

...続きを読む

CD-DAの再生 第2部



CD-DAの読み込み/再生手順は以下の通りです。

  1. CreateFile関数を使ってCDROMのドライブを開いて、CDROMのデバイスハンドルを取得します。
  2. CDROMのトラック数や各トラックの情報を格納したCDROM_TOC構造体を取得し、目的の曲の開始セクタ終了セクタを算出します。
  3. WAVE出力デバイスを開きます。
  4. WAVE出力デバイスからのコールバックイベントトリガにして、CD-DAの各セクタから音源データDeviceIoControl関数を使って読み出します。
  5. 終了セクタまで読み込むか、演奏停止イベントがあればWAVE出力デバイスを停止してから閉じます。



...続きを読む

CDDBの読み込み



CDDB(Compact Disc DataBase)とは、音楽CDの演奏者やアルバム名、曲名などの情報が格納されたデータベースのことで、本章では数あるCDDBサイトのなかでもフリーCDDBであるfreeDBに接続して、その情報を取得する方法を解説します。

読み込み手順は以下の通りです。

  1. CDDAの各トラックの開始位置時間(秒)と総演奏時間、総トラック数からdiscidを算出します。

  2. 算出したdiscidと各トラックの開始セクタ位置、CDDAの終了時間(秒)をパラメータにして「QueryコマンドURL」を作成し、freeDBに問い合わせて目的のCDに該当するジャンルとdiscidを取得します。

  3. 取得したdiscidとジャンルを元に「ReadコマンドURL」を作成し、freeDBに接続して目的のCDの演奏者やアルバム名、曲名などの情報を取得します。




...続きを読む

すべての記事一覧

ホームへ戻る > 2011年03月

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

この人とブロともになる

ブロとも一覧

このページの先頭へ戻る