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