# Dreamcast Sound Library FAQ

サウンドシステムの初期化や初めにしなければならない手順についてよくある質問をまとめています．

## まずはじめに何をすれば良いのか分からない．

Dreamcastでサウンド開発をするには基本的に下記のファイルが必要です．

- ARM7（サウンドCPU）用サウンドドライバ．
- 各種サウンドデータ．
- 忍ライブラリ（バージョンによってはサウンドライブラリ単体として存在します）

最低この２種類のファイルを用意しなければなりません．これらのファイルを簡単に説明すると

サウンドドライバ
  サウンドドライバは一言で言うと音を発音する処理を行います．また，サウンドライブラリはサウンドドライバに通信パケット（Dreamcastではホストコマンドを呼ぶ）を送ることによりさまざまな音声を再生します．

サウンドデータ．
  サウンドデータはサウンドクリエイタが実際に作成した音声が収録されています．サウンドデータは大きく分けると
  1. 発音するためのファイル．
  2. 発音している音声を加工するためのファイル．
  3. サウンドメモリマップ情報を含むさまざまな種類のデータが含まれるファイル．
  があります．この中で3.のファイル（マルチユニットファイルと呼ばれる）を使用するのが一番簡単なサウンドの利用方法です．

上記のデータを入手できればサウンドのコーディングが可能になります．

## 何をサウンドクリエイタにもらえばいいのか分からない．

サウンドクリエイタからは最低下記のファイルを入手する必要があります．

- サウンドドライバ
  通常`manatee.drv`というファイル名になっています．
- マルチユニットファイル
  拡張子が.mltのファイルです．サウンドメモリのマッピング情報．各種サウンドデータが収録されています．

また，必要に応じたて下記のファイルを入手する必要があります．

- MIDIシーケンスバンク
  現在のサウンドメモリ上のデータから一部のMIDIシーケンスのみを差し替えたいときに必要です．
- MIDIプログラムバンク
  現在のサウンドメモリ上のデータから一部のMIDIプログラムのみを差し替えたいときに必要です．
- ワンショットバンク
  現在のサウンドメモリ上のデータから一部のワンショットのみを差し替えたいときに必要です．
- FXプログラムバンク
  現在のサウンドメモリ上のデータから一部のFXプログラムを差し替えたいときに必要です．
- FXアウトプットバンク
  現在のサウンドメモリ上のデータから一部のFXアウトプットを差し替えたいときに必要です．

## 初期化の手順が分からない．

サウンドシステムの初期化としてはおおまかには下記の二段階を実行しなければなりません．

- サウンドライブラリの初期化（`sdLibInit`）
- ARM7サウンドドライバのダウンロード・実行（`sdDrvInit`）

以上の手順でサウンドシステムの初期化は完了します．実際にプログラムを組んだ例は別紙を参照ください．
実際には当然はサウンドデータのダウンロードも行う必要があります．実際にプログラムを組んだ例は別紙を参照ください．

## サウンドデータをどうやって使用するのか分からない．

サウンドデータは大きく分けると二種類あり，それぞれサウンドメモリに転送するためのAPIが準備されています．

マルチユニットファイルをダウンロード．
  APIはサウンドデータユーティリティAPIの`sdMultiUnitDownload`を使用します．実際のコーディングはマルチユニットの転送サンプルを参考にしてください．
各種ファイルをダウンロード．
  APIはサウンドデータユーティリティAPIの`sdBankDownload`を使用します．バンクファイルの種類は拡張子で識別することが可能です．サウンドクリエイタからは予めファイルをダウンロードするバンク番号の情報を入手して起きてください．

これらで注意することはダウンロードするファイルと同じ容量のサウンドメモリを必要とすることです．