Tidal Cycles を使用して、ソフトシンセを演奏する
Tidal Cycles (以下 Tidal ) のことが少しわかってきたら、ソフト音源と組み合わせたいと思い、色々調べてみましたので忘備録として書き残しておきます。Tidal をシーケンサーとして使っていくということですね。もちろん使用する環境によって手順が異なりますので、大まかな手順の参考になればと思います。DAW は Logic で Battery (サンプラー) と組み合わせることを目標にします。
参考にしたのは、 Mike Hodnick さんの 「Tidal Tutorial #19 : SuperDirt MIDI」です。
Mike さんのライブ映像
1 - 仮想MIDIポートを作成
まず、Tidal で生成したMIDIデータをDAW上で起動したBattery (ソフトウェア音源)に伝えるため、仮想ポートを作成します。「ユーティリティ」からAudio Midi Setup を起動して、MIDI Studioを表示し、使用可能なMIDIデバイスを確認します。
初めから [ IAC Driver ] という仮想デバイス ができていたと思いますが、表示されない場合は調べてみてください。
この画面で、使用したい音源の数だけバスを増やします。今回は8ポートまで増やしました。(なぜかこのBUSを増やす処理がとても重いです。)
本来、「一つのポートを使用して、MIDIチャンネルの切り替えで音色を選択できる。」というのが良いかなと思いますが、このやり方がよく分からなかったので、今回はBUSを増やす形で複数のソフトウェア音源への振り分けを行います。
2 - 作成したポートへ入力する
次に Tidal が生成した MIDI データを先ほど作成した IAC Driver (仮想MIDIポート) に出力する設定を Super Collider 側に書き込んでいきます。
MIDIClient.init;
を実行すると、使用可能な MIDI デバイスが一覧で表示されます。
先ほど、作成したポートが表示されれば、SuperCollider に認識されています。
~midiOut1 = MIDIOut.newByName("IAC Driver", "IAC Bus 1");
~dirt.soundLibrary.addMIDI(\midi1, ~midiOut1);
上の二つを実行すると、「Tidalの音色として "midi1" を使用した場合、生成されたMIDIデータを IAC Driver の IAC BUS 1 に送る」設定が完了します。
"IAC Driver", "IAC Bus 1" が、使用するデバイスとポートです。
\midi1 のところを変えると、Tidalで使用する際の名前を決められます。名前のつけ方などは、あくまで一例として考えてください。
1行目を実行した際に -> a MIDIOut
2行目を実行した際に-> a DirtSoundLibrary
と表示されればOKです。今回は8ポート分作りました。
追記:上のように複数のポートを作成する場合 () 丸括弧 で集合を囲うことで、一括で設定を行えます。
3.作成したポートから出力する
あとはDAW側で音源とMIDIの入力先を選択すれば完了です。Logicの場合、音源を立ち上げたら、[Comand + 0]もしくは、「ウィンドウ」から「MIDIエンバイロメント」を表示して [新規] → [フィジカルインプット]を選択します。
(フィジカルインプット)と、先ほど作成したBUSがリストになって表示されれば、Logicが作成した IAC Driverを認識しています。この白枠の右から出ている小さな三角をドラッグして、音源に割り当てることでBUSと音源が繋がります。
三角形は、一番上がSum, 二番目が Bus 1 三番目が Bus 2 です。文字がとても小さいので慎重に設定しましょう。これで一通りの設定が完了です。
d1
$ stack [
-- Battery
sound "midi1*4"
# n (choose [0]) # gain "[1.2]"
]
例として、上をTidal で実行すると Logic 側でBUS 1 と紐付けた音源が演奏されます。( 0 は C3を演奏します。)
少しまとめると、"midi1" が Bus1 , "midi2" がBus2 へ出力されるので、Tidalで"midi3"と演奏すれば、Logic側でBus3 が入力される音源が演奏されることになります。
あとは、#n で ノート # gain でベロシティなどTidalの関数を組み合わせることができるようになります。ここでは、設定方法だけなので、詳しい使い方はMikeさんの動画をご覧ください。MIDI CC など、より複雑な設定を組み込むことができます。
理解するとあっさりしていますが、初めは一段階ずつ、ソフトウェア間で仮想デバイスが認識されているかを意識すると良いかなと思います。