私はしばらく前から、インタラクティブオーディオについてもっと深く探りたい、と思っていました。自分の仕事と関連性があり、負担にならずに、楽しくて同時に勉強になるようなプロジェクトをつくり出そう、と考えました。遊びの要素もあり、スペシャリストとしての自分を磨けるようなプロジェクトです。
そう考えながらたどり着いたのが、「Robotic Orchestra (RRO) 」というアイディアです。RROは、私が入力することに反応し、ランダマイズさせ、独自につくり変えるように設計したマシンです。だから、そこから生まれる芸術は、半分は私のもの、半分はマシンのものとなります。RROがつくる音楽は単なる楽曲でなく、複数のほかの楽曲に発展させることのできるシステムとなるはずです。つまり、Wwiseが提供できるあらゆるインタラクティブ機能を備えた、ライブループセットです。
プロトタイプ
RROの基盤を成すのが、入力、ミドルウェア、そして出力の3つです。この3つの側面について、色々な計画を考えていますが、最初の試みに取り入れたのは:
- 仕事で使うMIDI入力デバイス(Komplete Kontrol S88)
- ミドルウェアとしてのWwise
- 出力としてのシステムオーディオ(ステレオ、ヘッドフォン)
まず、Wwiseで初めてMIDIを使う人のために紹介したいのが、Berrak Nil Boyaの素晴らしいチュートリアル( パート1 と パート2 )で、必要な情報がすべて入っています。これを勉強してから、私はプロトタイプをつくり、すぐに仕事で、ピアノペダルでエンジンのロードとオフロードのサウンドをテストするために使いました。
私はプロトタイプをアップグレードするのに、 Playtron というシンプルなMIDIコントローラを使いました。Playtronコントローラは、伝導体であれば何でも接続できるもので、最高に楽しいです。野菜や、フォークやナイフ、ほかの人間でも、つなげて音楽をつくれちゃうのです。このコントローラを何に使えるのかを研究し、すべてシステム化して、最近、 動画 にまとめました。そこで紹介した様々な使い方を、このブログで簡単に説明します。
MIDIとWwiseの概要
WwiseでMIDIを使い始めるのに、簡単な手順があります。まず、MIDIの入力を、オーサリングで初期化します。そこで “Project → Control Surface Devices” を開き、新たなデバイスを追加し、 “Received From” の入力デバイスをリストから選択します。
1. シンセ
演奏を始めるのはとても簡単です。Wwise Synth OneまたはTone Generatorをソースとして試す場合は、MIDIキーボードを演奏したりPlaytronのピンに触れたりすることで、ノートをトリガーできます。様々なノートを演奏するには、Frequency Modeを “Midi Note” に切り替えておくことが必要不可欠です。
いつもWwiseでセッションを行うときと同じように、この機器でも、セッションを選択または作成する必要があります。
2. サンプラー
シンセが一番簡単ですが(SynthOneプリセットをコピー&ペーストするかタップするだけで、音が出ます)、サンプラーをつくることもできます。ただ、アセットやRTPCがある分、それを様々な音階にマッピングできるので、時間はもっとかかります。『MIDIベースの複雑なサンプルインストゥルメントを、Wwiseで作成する』と題された詳細な記事が、 こちら にあります。サンプラーを特定の音階にマッピングすることも可能で、私は今回、フラットやシャープのない自然的短音階を作成し、Playtronのクロマティックスケールにマッピングしました。
3. コントロールメッセージ
単純に鍵盤で演奏するだけでなく、MIDIコントローラでContainerやEventをトグルすることも可能です。Soundcasterビューは、サウンドやWwise Eventのプロパティやパラメータを操作しながら試聴する手段ですが、 ビートメイキングのコンソールとしてもバッチリ使えます。
音色を随時変えるのにも、シンセ音とサンプラー音を切り替えるのにも、好きなコンテナを簡単に Soundcaster に入れることができます:
A) Control Surface Bindingsビューに切り替えて、“view groups” に移動して新しいフォルダを作成し、新しいBinding Groupを追加します。
B) コントローラデバイスのピンにバインドするには、“Learn”を押し、コントロールスイッチとするオブジェクトまたはキーに触れます。
C) “Learn” ボタンの右側のメニューで “Object commands → Inspect” を選択します。ここで “Play” を選択すると、ループするシンセサウンドが再生されます。
続いて2つ目の音色用に、上記A~Cを繰り返します。Soundcasterでオブジェクトをコントロールピンで “Inspect” すると、そのインストゥルメントが出力用に選択され、それ以外のピンは、“Current selection/Pass MIDI note” 用にアクティブな状態で残されるので、メロディにどのボイスを与えるのかを選択することができるという仕組みです。Object/Index列の数字は、Soundcasterの、そのオブジェクトの順番と合うはずです。
4. Event
私にとって、MIDIコントローラのミドルウェアとしてWwiseを利用する最大の意義は、Soundcasterに、Wwise Eventを入れることができる点です。テンポの同期されたInteractive Music Hierarchyのミュージックセグメントやプレイリストを、スティンガーやトランジションも含め、再生するための依存関係を設定することができ、さらにState、Switch、Game Parameterなども設定できるのです。
こういったことを普段はゲームがトリガーしているとしたら、今度はミュージシャンであるあなたが、ゲームの役割を担う番です。Soundcasterは、ランタイムにゲームでできることにアクセスできる、高性能のツールです。
もし、Interactive Music Hierarchyにあるループサウンドやコンテナを、MIDIコントローラにバインドするのであれば、“Stop All” Eventアクションを使ってすべてを停止できるWwise Eventを必ず設定し、そのEventを、Soundcaster Sessionに追加するようにしてください。少なくとも、これでカオス状態を避けることができ、超うるさい二重のレイヤーを防止できるはずです。
5. ゲームパラメータ
フェーダやポテンショメータのあるMIDIキーボードで、一般的にRTPCを簡単に制御できます。新しいGame Parameterを作成してからControl Surface Bindingsに行き、“Global”フォルダに新しいBindingを作成してください。そして、“Learn”を押して、コントローラのフェーダを触ってください。次にProperty/Command nameで、“Object Properties → Simulation Value” を選択し、Object/Index列で、先に作成したGame Parameterを選択します。
今回の検証をより複雑化するために、TouchMeというPlaytronicaの別の楽器も使いました。静電容量センサとして機能するので、コントローラの一端を自分に付け、もう一方を、静電容量の接続があるときにデバイスが反応する別のものに付けます。コントローラは事前に開発者によってマッピング済みで、デフォルトで、Game Parameterにバインドさせる必要のあるCCではなく、MIDI Noteメッセージを送信するようになっています。私は、MIDI NoteからCCへの単純なコンバータを、PureDataパッチと、Pythonの魔法で、つくろうとしました。分かりやすいチュートリアルが、ブログとして出ていて( パート1 と パート2 )、ほかに少し違うアプローチを使った方法が One Minute Wwise でも紹介されています。私は失敗しましたが、どうやらWwise AuthoringがソースMIDIプラグインを理解してくれないようで、また、Effect MIDIプラグインも、デジタルオーディオストリームで動作するのでうまくいきません。
私は気合を入れて、 Bome MIDI Translator を発見しました。どのようなMIDIメッセージも、これで、ほかのMIDIメッセージに変換できます。
これで、TouchMeコントローラを先ほど作成したGame Parameterにバインドすることができ、このGame Parameterというのが、ボリュームや、ピッチや、フィルターや、プラグインの一部プロパティまで制御できるのです。効率化のために、WwiseがTouchMeコントローラから受信するデータを見て、再生中に観察した最低値と最大値をRangeパラメータの “Min” 値と “Max” 値に設定してください。これで、TouchMeコントローラに動きがあれば、必ずパラメータ値の変化に結びつきます。
以上が、WwiseをMIDIコントローラと使うときの基本です。Wwise Authoringで行う操作のすべてが、ArduinoやRaspberry Piなどの自作コントローラも含め、ほかのどのコントローラでも使えます。でもその話は、また今度...。
コメント