クロスフェードというと、フェードイン、フェードアウトの伴う楽曲の滑らかな切替を指します。 再生中のサウンドをフェードアウト(徐々に音量を下げる)しつつ、次の再生するサウンドをフェードインする表現になります。
プログラムでクロスフェードのオブジェクトを作成して、クロスフェードの設定を行うことができます。 プレーヤーにフェーダーをアタッチしてキューを再生します。 シンプルでプログラム側だけで行えます。
[補足]1~50msec近くの極端に短いフェードはプチノイズが発生する場合があります。この場合はエンベロープのアタックを利用することをお勧めします。
データもプログラムもシンプルな方法として、エンベロープのアタック時間、リリース時間を利用して音量の変化を自動で変化させます。 キューのリミットなどで、自動停止にすることでクロスフェードのような効果が得られます。
単純なキューに限られますが、プログラムからプレーヤ経由でエンベロープを上書きして扱うこともできます。
AISACをクロスフェードのカーブとしてデザインし、複数のトラックをフェードするイメージになります。 トラックの内容は限定されてしまいますが、DJのフェーダーのようなイメージで音を扱うことができます。
プログラム側で、複数のプレーヤーを用意しボリュームを徐々に変化させるようにします。 ボリュームを変化させる対象などはキュー単位になります。
徐々に値を変更する方法としてトゥイーンの機能があります。
アクションによって、再生中のキューのボリュームをフェードするキューを作る。
対象が決まっているキュー同士のパラメーターを変化させます。 プログラムからはキューをスタートするだけで実行されます。