# サウンドシステムシグナル

## シグナルフロー図

各ブロックの実際の信号の流れを下記の図のように表わすことが出来る（システムブロック・メモリブロックは除く）

サウンドシステムシグナル図

## 各ブロックの役割

プレイヤ系
♪ | MIDIシーケンサ | ワンショットプレイヤ | PCMストリームプレイヤ | （GD-DAプレイヤ）
--- | --- | --- | --- | ---
役割 | MIDIシーケンスデータの再生（MIDIメッセージの発行）を行う． | ワンショットデータの再生を行う． | PCMストリームデータの再生を行う（実際にはLSIに発音・停止を発行しているだけに近い） | GD-ROM上のGD-DAデータの再生を行う．
コントロール | MIDIシーケンスデータの再生・停止及び一時停止・再生再開． | ワンショットデータの再生・停止． | PCMストリームデータの再生・停止． | GD-FSライブラリにて行う．
備考 | ARM7のCPUリソースをかなり消費する． | ワンショットデータの再生の一時停止・再開は出来ません． | PCMストリームデータの再生の一時停止・再開はプログラミング次第で可能． | Digital Audioトラックを作成しておかなければなりません．

音源系
♪ | MIDI音源 | ワンショット音源 | PCMストリーム音源 | GD-DA音源
--- | --- | --- | --- | ---
役割 | MIDIメッセージを解析し，発音する． | ワンショットデータの再生・停止． | PCMストリームデータの再生を行う | GD-ROMからのGD-DAデータをコントロールする．
コントロール | ・ボリューム設定 （`-`007FH``〜`0000H`〜`007FH`） ・ピッチ設定 （`-7FFFH`〜`0000H`〜`7FFFH`） ・スピード設定
（`0100H`〜`1000H`〜`1FFFH`）
・FXレベル設定
（`-`007FH``〜`0000H`〜`007FH`）
・ダイレクトレベル設定
（`-`007FH``〜`0000H`〜`007FH`）
・MIDIメッセージ
（ノートオン・ノートオフ・コントロールチェンジ・プログラムチェンジ・アフタータッチ・ピッチベンド）
・ボリューム設定
（`-`007FH``〜`0000H`〜`007FH`）
・ピッチ設定
（`-7FFFH`〜`0000H`〜`7FFFH`）
・スピード設定
（`-7FFFH`〜`0000H`〜`7FFFH`）
・パンポット設定
（`-`007FH``〜`0000H`〜`007FH`）
・FXチャンネル設定
（`0000H`〜`000FH`）
・FXレベル設定
（`-`007FH``〜`0000H`〜`007FH`）
・ダイレクトレベル設定
（`-`007FH``〜`0000H`〜`007FH`）
・ボリューム設定
（`-`007FH``〜`0000H`〜`007FH`）
・ピッチ設定
（`-7FFFH`〜`0000H`〜`7FFFH`）
・スピード設定
（`-7FFFH`〜`0000H`〜`7FFFH`）
・パンポット設定
（`-`007FH``〜`0000H`〜`007FH`）
・FXレベル設定
（`-`007FH``〜`0000H`〜`007FH`）
・ダイレクトレベル設定
（`-`007FH``〜`0000H`〜`007FH`）
・ステータス取得
（現在のボリューム・ピッチ・スピード等）
・リングバッファ管理
・パンポット設定
（`-`007FH``〜`0000H`〜`007FH`）
・ボリューム設定
（`-`007FH``〜`0000H`〜`007FH`）
ステータス | ・各種ステータス取得 （現在のボリューム・ピッチ・スピード等） ・カレント再生データアドレス取得 ・カレント総演奏時間（総演奏拍数）取得 | ・各種ステータス取得 （現在のボリューム・ピッチ・スピード等） ・カレント再生データアドレス取得 ・カレント総演奏時間（総演奏サンプル数）取得 | ・各種ステータス取得 （現在のボリューム・ピッチ・スピード等） ・カレント再生データアドレス取得 ・カレント総演奏時間（総演奏サンプル数）取得 ・リングバッファ管理
・各種ステータス取得
（現在のボリューム・パンポット）
備考 | ARM7のCPUリソースをかなり消費する． | 実際にはLSIに発音・停止を発行しているだけに近い． | アプリケーションプログラマが的確に波形を転送しつづけないと音声が途切れたり繰り返されたりします． | 実際に音の再生を行うのはGD-FSライブラリ．

FX系
♪ | FXプログラム | FXアウトプット | Qサウンド
--- | --- | --- | ---
役割 | AICA内のDSPのマイクロコードの設定． | AICA内のDSPの演算結果の出力方法の設定． | 3Dサウンドの効果を出すQサウンドの設定をする．
コントロール | ・FXプログラムバンクの設定． | ・FXアウトプットバンクの設定． | ・Qサウンドモジュールの設定．
ステータス | ・FXプログラムバンクの取得． | ・FXアウトプットバンクの取得． | なし．
備考 | 特になし． | 特になし． | アプリケーションプログラマがQサウンドを使用できるかどうか調べる手段はありません．サウンドクリエイタにQサウンドモジュールを使用できるようにする設定をあらかじめ連絡しておいてもらわなければなりません．

その他グローバル系
♪ | サウンドスペース | マスタボリューム
--- | --- | ---
役割 | AICA内のDSPのマイクロコードの設定． | AICA内のDSPの演算結果の出力方法の設定．
コントロール | ・FXプログラムバンクの設定． | ・FXアウトプットバンクの設定．
ステータス | ・FXプログラムバンクの取得． | ・FXアウトプットバンクの取得．
備考 | 特になし． | 特になし．