English
SOUND Manualサウンドドライバプログラマーズガイド
戻る進む
サウンドドライバプログラマーズガイド

2.サウンドコントロール


必要なデータファイル

 サウンドドライバの起動に必要なものは、基本的にはサウンドドライバのプログラム本体だけです。ここでサウンドエリアマップも転送しているのは、サウンドエリアマップは最初に一度転送すると以後転送の必要がないからです。ゲーム中の全てのエリアマップを、ここでサウンドエリアマップ領域に格納してしまいます。本手順でサウンドドライバを起動する場合には、下記の2つのデータファイルを用意してください。
  1. サウンドドライバ(SDDRVS.TSK)
    サウンドドライバは「sddrvs.tsk」というバイナリファイルで提供されます。ただし、Saturn Target Model M で開発するときのみ「sddrv.tsk」というファイルを使用します。これらのファイル名は変更してはなりません。

  2. サウンドエリアマップ(名称は任意)
    ゲーム中の全てのエリアマップを結合したバイナリデータファイルです。ゲームによって違いますので、サウンドクリエータに作成してもらいます。


サウンドエリアマップ

 サウンドエリアマップはゲーム中の全てのエリアマップをひとつに結合したもので、サウンド開発ツールのサウンドシミュレータで作成(出力)したものです。
 各エリアマップの終わりには1バイトのエンドコード(FFh)が入っており、サウンドエリアマップの一番最後にもオールエンドコード(FFh)が入っています。サウンドエリアマップのサイズは可変長で、そのサイズはエリアマップの数で決まりますが最大でも4096バイトまでです。

サウンドエリアマップの構成


エリアマップとは

 ゲームにはいくつかの場面がありますが、場面が変わると通常は音楽も変わります。音楽が変わるとサウンドデータの置き方(512KBのサウンドメモリをどう使うか)も変わってきますので、その場面でどういうデータの置き方をするかを決めたものがエリアマップです。置かれるデータは「音色データ」「シーケンスデータ」「DSPプログラム」の3種類しかありませんので、この3種類のデータをサウンドメモリ上のどこに、どれだけの大きさで配置するかを決めたものがエリアマップです。また、DSPを使用する場合には「DSPワークRAM」が必要になりますので、DSPワークRAMの場所とサイズも同様に指定します。
 通常は1つのエリアマップ内に、音色データとシーケンスデータの2つのマップ情報があればシーケンス再生が可能ですが、よく使う曲やSE等を別々の配置に分割にしておけばメモリ効率・開発効率の良いシステムを構築することができます。
 ゲームの場面が変わればサウンドも変わるという前提であれば、エリアマップはゲームの場面の数だけ必要になります。しかしここで言うエリアマップとは、あくまでもサウンドから見たエリアマップですので、ゲームの場面と一対一に対応するとは限りません。ゲームの場面が変わってもサウンドは同じでよければエリアマップはは変える必要はありませんし、一部のサウンドデータを入れ替えるだけで良いような場合もエリアマップは変える必要はありません。

エリアマップとサウンドデータの関連

 エリアマップはいくつかのマップ情報をひとつに結合したもので、サイズは可変長です。マップ情報は最大で32まで持つことができ、エリアマップのサイズはマップ情報の数で決まります。サイズが可変長ですので、エリアマップの最後には1バイトのエンドコードが入ります。
 マップ情報は、サウンドデータがメモリ上のどこに配置されるかを記述した8バイトのデータブロックで、下図ののような構造になっています。

マップ情報のビットイメージ

マップ情報のデータの説明
Eデータ終了ビットマップ情報の終了ビットです。実際にはFFhの1バイトとなります。
Data IDデータ種別ここで定義するエリアに格納するデータの種別です。
ID numberデータ種別内識別番号同じ種別のデータが複数ある場合の識別番号です。
スタートアドレススタートアドレスここで定義するエリアの先頭アドレスです。
L転送済みビット本エリアにデータが転送されたことを示すフラグです。
エリアサイズエリアサイズここで定義するエリアのエリアサイズです。


サウンドの種類

 サウンドのならしかたには下記の3種類の方法があります。また、それぞれ下表のような長所・短所がありますので、ゲームの内容やそれぞれの場面に合った最適な再生方法を選択してください。
  1. シーケンス再生
  2. PCMストリーム再生
  3. CD-DA再生
シーケンス再生
発音方法サウンドメモリ上の音色データ(波形データ)を音源として、シーケンスデータを解凍しながら演奏させる方法です。
特徴波形データを音源(一つの楽器)として、サターン自体をマルチ音源の楽器として扱う方法です。
長所
  • 曲データが小さいため、たくさんの曲を持てます。
  • 曲の変更・修正が容易です。
  • リアルタイムなテンポ変更が可能です。
  • CDアクセスの必要がありません。
  • メインはリクエストを出すだけです。
    (サウンドドライバが全てをコントロールします)
短所
  • 一度に持てる波形の容量に4Mbit(512KB)という制約があります。

PCMストリーム再生
発音方法波形データをループ再生させ、この中の発音が終わった部分に次の波形データを転送するということを繰り返して、長い波形データを連続再生させる方法です。
特徴あらかじめ録音してある長い波形データをそのまま再生する方法です。
但し音がとぎれないように波形データを転送し続けなければなりません。
長所
  • 4Mビットを越えるような長い波形データが再生可能です。
  • 転送の工夫でいろいろな再生パターンを編集できます。(編集合成が可能)
  • データ幅は 8ビット / 16ビット が選択でき、周波数も自由に変えられます。
    (メモリ効率が良く、録音・再生時にピッチも変えられます)
  • 同時に複数チャンネルを再生できます。
短所
  • 波形データの転送で、メインシステムとサウンドCPUにかなりの負荷がかかります。

CD-DA再生
発音方法CDの音声トラックに録音してある音声を、ハード的に直接再生させる方法です。
市販の音楽CDをならすのと全く同じ方法です。
特徴あらかじめ録音してある長い波形データをそのまま再生する方法です。
音声はハードウェアによって自動的に出力されます。
長所
  • 生録音ができるので、リアルで表現力の高い演奏が再生できます。
  • メインとサウンドCPUに一切負荷がかかりません。
短所
  • 曲の変更、修正が容易でない。再度録音しなければなりません。
  • データ幅16ビット、周波数44.1KHz固定で、大量の波形データが必要です。
  • 再生中は常にCDのアクセスが必要で、CDドライブを占有してしまいます。
  • リアルタイムにテンポを変えられません。


3Dサウンドについて

 本サウンドドライバでは下記の2種類の3Dサウンドをサポートしています。指定できる定位の種類とチャンネル数は下記の通りです。サウンドコントロールコマンドの「3D control (11h)」コマンドまたは「Qsound control (12h)」コマンドで任意の定位を指定してください。仮想音源が指定された定位に移動します。
 Qサウンド・YAMAHA3Dサウンドともに仮想音源の移動はランダムな場合が多く考えられますので、定位の移動コントロールはすべてメインシステムが行います。サウンドドライバは指定された定位に音像を移すだけです。但し、単純な直線移動で良い場合や、サウンドドライバにもう少しインテリジェントなコントロールをさせたいような場合には必要に応じてプロジェクトごとに対応します。  YAMAHAのDSP拡張モジュールとして、Qサウンド4ch・Qサウンド8ch・YAMAHA 3Dサウンド1ch の3種類のDSPプログラムが用意されていますので、3Dサウンドを使用する場合には上記4種類のDSPプログラムのうちから必要なDSPプログラムを「Effect Change (83h)」コマンドでダウンロードしてください。

Qサウンド

 左右180度までの広角なPANを振ることができます。定位の種類はPANだけですが、最大8チャンネルまでを同時にコントロールすることができます。
チャンネル (0-7)4チャンネル(0-3)、または8チャンネル(0-7)が指定できます。
PAN位置 (0-30)値が0で左、15で中央、30で右の左右180度15段階までのPANを振ることができます。

YAMAHA 3Dサウンド

 水平方位360度、垂直方位360度、距離128段階の自由な位置に仮想音源を移動させることができます。使用チャンネル数は1チャンネルですが、上下左右の任意の位置が指定できます。
距離 (0-127)値が0で距離は0で、値が大きくなるほど距離が離れます。
方位 (0-127)方位360度を128段階で指定します。値が0で右0度、32で右90度、64で右180度、96で右270度です。
高さ (0-127)高さを128段階で指定します。値が0で真上、32で目の高さ、64で真下、96で後方の目の高さです。


戻る進む
SOUND Manualサウンドドライバプログラマーズガイド
Copyright SEGA ENTERPRISES, LTD., 1997