BLOG
弊社英語ブログのうち、いくつかを日本語翻訳しています。英語ブログはこちら
GameSynthで実現するインタラクティブサウンド
GameSynthのパッチ環境には、通常のバーチャルシンセには見られない多くのコントロールモジュールとロジックモジュールが備わっています。これにより、たとえばゲームパラメーターで駆動される、高度な音響動作やインタラクティブシステムの設計が可能になります。本ブログでは、Logicモジュールに焦点を当てていきます。
ロジックモジュールの種類
ロジックモジュールは主にトリガー(またはイベント)を処理し、以下のカテゴリに分類できます。
- 【イベント生成】: Clock、Distribution、Gait、Sequencer 、およびPattern は、定期的、ランダム、あるいはルールとパラメーターに基づいてトリガーを送信します。
- 【イベントフィルタリング】: OncerとDividerはイベントを削除し、Retriggerはイベントを追加します。
- 【論理演算】: Crossings、Comparator、およびLogic Gateは入力を評価し、適切な条件が満たされた場合にイベントをトリガーします。
- 【信号ルーティング】:Selector、Switch、およびTransitionsは、入力と動作モードに基づいてパッチのさまざまなブランチに信号をルーティングします。
- 【ストレージ】:QueueとStackは値を一時的に保存できるため、単純なアルゴリズムを作成するのに役立ちます。
変調信号の動的な再ルーティングからパッチのサブセクションのトリガーとミュートまで、GameSynthのロジックモジュールは、通常のシンセサイザーが提供できるものをはるかに超え、サウンドを進化させる方法を提供します。以下で、いくつかの使用例を紹介します。
パラメーターによってトリガーされるイベント
Crossingsモジュールは、入力信号が特定の値と交差したときにトリガーを生成します。これにより、パラメーターの値に基づいてパッチのさまざまなブランチを簡単に再生できるようになります。
次のパッチでは、Meta ParameterがいくつかのCrossingsモジュールを駆動することで、メカサウンドを生成します。
- 最初のCrossingsモジュールのすべての出力は金属的なクリック音をトリガーします。閾値は一定の間隔で配置されており、Meta Parameterの動きによってクリック速度を効果的に制御できるようになります。
- 他の2つのCrossingsモジュールは、Meta Parameterが最小値または最大値に達したときに衝突音を再生するように構成されています。
- 最後に、Motorサウンドが再生されますが、これは動きの速度を出力するDerivativesモジュールの使用により、Meta Parameterが移動しているときにのみ再生されます。
変調信号を動的に切り替える
Selectorは、トリガーされるたびに異なる制御信号を通過させます。さまざまな動作モード (シーケンシャル、ランダム、シャッフルなど) により、変調信号を動的にルーティングできます。
たとえば以下のForce Fieldパッチは、Pitchメタパラメータが特定の値に達すると、一部のパラメーターがフェードアウトしてパッチがスムーズに終了します。
- CrossingsモジュールはSelectorをトリガーすることで、2番目の入力に切り替えます。
- 同時に、2番目の入力に接続されたAutomation Curveがトリガーされ、いくつかのパラメーター(EQ Filterのfrequency、Bripのduration、Beamのamplitude)のフェードアウトが開始されます。
- CrossingsモジュールはMuteモジュールの状態も切り替えて、音が完全に遮断されるようにします。
同様に、以下のCash Registerパッチでは、Selectorモジュールを使用して、レジの動きに対応する2つの異なる機械音を切り替えることができます。
- 2つのEnvelopeは、Sequentialに設定されているSelectorを介してルーティングされます。
- Switchモジュールを使用すると、Crossingsによってアクティブ化されたときにそれらを交互にトリガーできます。
- 毎回ルーティングを変更するために、CrossingsはSelectorもトリガーします。
- 最後に、Switchの2番目の出力は、2回目の動作でレジのベルをトリガーするために使用されます。
信号レベルの比較
Crossingsモジュールは単純なロジックをトリガーするには十分ですが、その閾値は固定されているため、制御信号間の比較を実行できません。代わりに、Comparatorを使用する必要があります。
以下のLaserパッチは、ショットに続いてチャージ音を鳴らします。充電時間が長ければ長いほど、ショットの音量は大きくなります。
- Meta Parameterは閾値として使用されます。チャージ音のEnvelopeがその値より大きくなると、ショットがトリガーされます。
- これを達成するために、EnvelopeとMeta Parameterの値がComparatorモジュール(Greaterに設定)によって比較されます。
- Envelopeの値がMeta Parameterの値より大きくなると、Comparatorの出力がtrueに切り替わり、ショットがトリガーされます。(Oncerモジュールは最初のトリガーのみを保持するために使用されることに注意してください。これは、比較が trueである限り、Comparatorはトリガーを出力し続けるためです)
閾値が十分に高い場合、(Thunderモジュールを使用している)追加のブランチがトリガーされます。その分岐をトリガーするにはパッチが以下の2つの条件を満たす必要があります。
- Meta Parameter値は0.85(Constantモジュールによって提供される値)より大きくなければなりません。
- 射撃が発動されたこと。このため、ANDに設定されたLogic Gateモジュールが使用されます。ショットがトリガーされ、かつ閾値が0.85より高い場合、Thunderブランチが再生されます。
より高度なテクニック
最後のパッチは、シンプルなリロードシステムを備えたShotgunの例です。同名のメタパラメータを使用して単純にトリガーを引くと、銃器の機械音のみが聞こえます。ただし、弾丸に「Pump」Meta Parameterが読み込まれると、発砲音が再生されます。散弾銃は発砲するたびにポンプで再装填する必要があります。
- 「Trigger」Meta Parameterを入力として持つCrossingsモジュールがショットに使用されます。
- 他の2つのCrossingsモジュールは、「Pump」Meta Parameterが前後に移動するときのポンプの動作をシミュレートします。
- より多くのロジックにより、ポンプが使用された直後に限り、ショットを発射できる仕組みです。Queueモジュールは、この情報を保存するのに役立ちます。「Pump」Meta Parameterが使用されている場合、値1が書き込まれます。
- この値は、「Trigger」Meta Parameterを使用するときに読み取られます。Comparatorは、それが0.5より大きいかどうかをチェックします。ポンプが使用され、Crossingsモジュールによってトリガーが作動した場合、ショットが発射されます。
- 最初のショットがトリガーされると、Muteモジュールがミュート解除に切り替わり、Bulletによる分岐がアクティブになります。次に「Pump」Meta Parameterを使用すると、地面で砲弾が跳ねる音もトリガーされます。
これらは、Logicモジュールを活用したインタラクティブパッチのほんの一例です。利用可能な多くのControlモジュールと組み合わせると、GameSynthで高度なオーディオシステムを設計する無限の可能性が生まれます。パッチをダウンロードしてぜひお試しください。これらのモジュールの使用についてさらにヘルプが必要な場合は、Discordサーバーでお気軽にお問い合わせください。