CRI ADX は、「CRI Atom Craft」などの専用ツールによって出力したデータファイルを、ADX ランタイムライブラリによって実機上(ゲーム機、スマートフォンなど)で再生します。
データファイルの作成は、ADX 専用ツールにPro ToolsやSound Forgeなどのサウンド編集ツールによって作成された波形ファイルを登録し、再生タイミング、再生時パラメーターの調整やエンコード(圧縮)等を行って作成します。ランタイムライブラリは、ツールが出力したデータファイル(複数の圧縮された波形データ)をリアルタイムにデコードしながら、実機上で再生します。
波形ファイルベースのプログラムでは「ファイル名」を指定して波形を再生しますが、CRI ADX では「キュー (合図)」を指定して再生します。最も単純な使用例は、波形ファイルをCRI Atom Craftにドラッグ&ドロップするとファイル名と同じ名前の「キュー」が自動的に作成されますので、「波形ファイル名」の代わりに「キュー名」を指定して再生することです。
プログラマーは、以下のように「キュー」をセットして再生します。
criAtomExPlayer_SetCueName(player, acb, '爆発');
criAtomExPlyaer_Start(player);
サウンドデザイナは、アプリケーション内で再生される波形を「キュー 」として定義しプログラマーに伝えます。「キュー 」は「合図」という意味ですが、「波形ファイルの再生」だけではなく、「停止」や「音量を下げる」などのサウンド制御を「キュー (合図)」として定義することができます。例えば、ミサイルが爆発する効果音では、着弾時に「ミサイルの飛行音を止めて爆発音を再生する」といったことを一つのキューで行うことができます。「キュー」という抽象化された形式でサウンドデザインできるため、アプリケーションのイベントに合わせて、柔軟で高度なサウンドデザインを行うことができます。
最初にアプリケーションはプレーヤーを作成します。そして、プレーヤーに対して「キュー 」を設定してスタート関数を実行すると波形を再生します。この時の、ランタイムライブラリの内部動作は以下の通りです。
アプリケーションは「プレーヤー」によってサウンドを制御します。波形を再生する場合、まずアプリケーションはプレーヤーを作成し、キューを指定して再生します。プレーヤーに対してAPI(関数)によって、プログラムから再生を停止したり、音量などパラメーターを変えることもできます。「プレーヤー」は目的別・キャラクタ別のように用途に合わせて作成します。例えば、音楽用プレーヤー、環境音用プレーヤー、キャラクタA用プレーヤー、キャラクタB用プレーヤーのように作成します。
また、単一プレーヤーに対して複数回の再生指示を行うと、同時に複数の波形が再生されます。例えば、銃声や足音などの効果音を次々と再生すると、効果音が重なりながら再生され、自然なサウンド演出を実現できます。
キューはCRI ADX ランタイムライブラリを制御するための「合図」です。
アプリケーションプログラムは、プレーヤーにキューをセットしスタート関数を実行すると、
キューが持っているシーケンスデータに従ってサウンド制御を行います。
従って、
「キュー」=「シーケンスデータ」の識別子
となります。
波形ファイルをキューシートにドラッグ&ドロップすると、その波形データを再生するためのキュー が作成されます。
このキューが最も単純なシーケンスデータとなります。
シーケンサーは、「手順を順番に実行する仕組み」です。例えば、「まず音楽を再生し、4秒後に音楽の音量を小さくし、5秒後にセリフを再生する」といった手順を実行できます。このような手順のことを「シーケンスデータ」と呼びます。プレーヤーにキュー を設定しスタート関数を実行すると、シーケンサーが作成されます。シーケンサーは、キューの持つシーケンスデータを読み取りながら、適切なタイミングでサウンド制御を行います。シーケンサーはプログラム的な動作ができますので、ループや条件分岐のような高度なサウンド演出も実現できます。
シーケンスデータは、シーケンサーを制御するためのデータです。時間軸に沿ってサウンド制御を行うことができます。
例えば、
「銃声を再生した200ミリ秒後に薬莢の落ちる音を再生する」
「ミサイルの飛行音が2秒間で徐々に小さくなり、その後に爆発音を再生する」
といった時系列的なサウンド制御ができます。
波形を再生する場合、シーケンスデータは下記の情報を持ちます。
(1)再生開始時刻
(2)再生パラメーター
(3)波形ファイルID
同じ波形ファイルでも再生パラメーターを変えることによって、音量や音程や音像の位置を変えて再生できるため、少ないデータで様々なサウンドを再生することができます。
シーケンスデータは、市販のサウンドツール(DAW)のように複数のトラックを持ちます。各トラックには波形データやアクションなどを配置できます。また、「アクション」を配置することによって、再生の停止や再生パラメーターの変更などのサウンド制御を行うことができます。各トラックには再生パラメーターを設定することができ、音量や音程の調整を行うことができます。
ボイスとは、1つの波形ファイルを再生する仕組みです。ボイスは「声」という意味ですが、人間は単一の音しか発声できないことから由来しています。CRI ADX のボイスは、圧縮した波形データをリアルタイムに展開する仕組みやファイル、ネットワークからのストリーミング再生の仕組みを持ちます。また、再生パラメーターを設定することによって、音量、音程、音像の位置(パンニング)の変更、フィルター処理などを行うことができます。ボイスが再生した波形ファイルはバスに送られますが、各バスに送る量(センド量)を個々に指定することができます。通常のオーディオシステムではボイスはモノラル音源ですが、CRI ADX のボイスは、多チャンネル音源を扱うことができます。
ボイスプールはボイスを貯めておく場所です。シーケンサーは、波形の再生指示があるとボイスプールからボイスを一つ取り出し、再生パラメーターや波形データを指定して再生します。そして、再生が終了するとボイスはボイスプールへ返却されます。このように状況に応じて動的にボイスを管理する機能を「ダイナミック・ボイス・アサイメント(動的発音管理)」と呼びます。この機構によって効率よく複数の波形を再生できます。
バスは、ボイスから出力される信号を受け取って、エフェクト処理を行います。CRI ADXでは複数のバスによって、柔軟なエフェクト処理を行うことができます。例えば、効果音用バスで受け取った信号は、「フィルター処理」を行いマスターバスと環境音用バスへ送られます。環境音用バスで受け取った信号は、「リバーブ処理」をしてマスターバスへ送られます。信号は最終的にマスターバスでミキシングされ、実機から出力されます。このように信号処理の経路を設定することを「ルーティング」と呼びます。
バスは、元来、「乗り合い自動車」という意味ですが、右チャンネルや左チャンネルなどの複数の信号を一度に処理できることから「バス」という名称を使用しています。CRI ADXのバスは16チャンネルまでの信号を扱えます。