有名な方々は当たり前のようにソフトシンセを扱っておられますが、僕は使えるようになるのに非常に苦労しましたのでその記録を。そもそもLive Coding自体取り組んで居られる方が少ないので情報がなく苦労しました。この情報は多分ソフトシンセだけでなくMIDI音源一般に当てはまるものと思われます(筆者はまだハード音源を試していません)。
筆者はTidalCyclesを使っているので、それを前提に。
現在の筆者の環境は
・Windows10 64bit
・SuperCollider 3.10.2
・TidalCycles 1.3.0
・TASCAM US-2x2
です。
US-2x2はLoopBackをソフト的にLoopBackを行うという点で特殊な機種のようですが、Windows環境に於いてはAudioの出力先の指定の際に気をつけるぐらいです。
※TidalCyclesでmidiを扱う際にはtidal-midiなるものがかつて在ったらしいのですが今はそれは必要無いようです。
まず、仮想MIDIケーブルを導入します。TidalCycles(SuperCollider)とソフトシンセを繋ぐイメージでしょうか。色々見た結果以下が良さそうです。
こちらをインストールします。
そして使いたいソフトシンセのMIDI IN をこちらに設定します。
SuperCollider側ですが、いつもの「SuperDirt.start」と一緒に以下の一行を加えて以下のように入力します。
SuperDirt.start;
MIDIClient.init;
入力後、出力されるログを見るとインストールした「loopMIDI Port」が表示されていると思いますので、それをMIDIの出力先とします。一緒にレイテンシーも指定するようですので、結果以下のようになります。
~midiOut = MIDIOut.newByName("loopMIDI Port", "loopMIDI Port");
~dirt.soundLibrary.addMIDI(\midi, ~midiOut);
~midiOut.latency = 0.45;
これでTidalCyclesからソフトシンセを扱う用意が整いました。
筆者はソフトシンセ群としてNative Instruments KOMPLETEを使っていて、現在試したソフトシンセはMASSIVEとKontaktです。これらは起動すると自らホストするのでMIDIチャンネルを設定するだけで扱えました。
DAW環境としてはABILITY2.5を所有していて、こちらでホストしてから扱えたらフリーのソフトシンセも同様にして使えるようになるかも知れませんが、執筆している現在はオーディオドライバがSuperColliderと競合していることから起因していると思われる事象で成功してません。
よって、今はMASSIVEとKontaktだけで試した結果のみで記載しています。
※追記:VSTHostという著名なソフトシンセをホストするソフトを今使ってみましたが、そもそもSuperColliderは強力で立ち上がっていると他の一部の音源を鳴らなくするような仕組みになっているらしく。。。よってSuperColliderを落としているときはVSTHostのViewのKeyboard Barで音が出ましたが、SuperColliderが上がっているときは鳴りませんでした。つまり、TidalCyclesでソフトシンセをホストして使う目的では使えないと言うことですね。。。
以下のコードを実行しました。
d1 $ s "909!4"
d2 $ every 2 rev $ n "0 2 4 7" # s "midi" # midichan "4"
d3 $ n "0 2 4 7" # s "midi" # midichan "3"
このようにMIDI チャンネルはソフトシンセ側の設定の-1で指定します(ここ割とはまりました)。
一旦繋がってしまえば後はコントロールできると思います。(というか僕もこれから色々試します)。
Audioの出力先は環境によって違うでしょうが、僕の場合はUS-2x2なので出力先名に「Mixed Driver」と書いてあるものがLoopBack用の出力先なのでそれを指定します。ちなみにこちらはASIOドライバですが特にそのことを考慮する必要は有りませんでした。
(もちろん、一行目の909の音、つまりSuperColliderに備わっている音もきちんと鳴りました)
以上、個人的備忘録も兼ねて。