Python
ライブコーディング
SuperCollider
TidalCycles
foxdot

Troopを使ってライブコーディングセッションをする!

ライブコーディングでセッションをする

以前pythonとoscを使ってFoxDot上に建てたサーバーに文字列を送るという仕組みでライブコーディングのセッションをするという旨の記事を書きました。
その後もいろいろと探していたらyoutube上にこんな動画を見つけてしまいました。

IMAGE ALT TEXT HERE

うーん。ばっちりですね。
僕が最終的にやりたかったことがそのままできてます。最高です。
見てみるとFoxDotの開発者の方が作られているみたいです。そりゃ最高です。
というわけで使ってみます。

Troopとは

ライブコーディングを複数人で同時に行うためのツールのようです。Google Docsのように使うことができます。
理論上はコマンドライン上で動く対話型インタプリタさえあればどんな言語でも使用可能だそうですが、この辺はよくわかりません。
デフォルトではFoxDot、TidalCycles、Supercolliderに対応しています。
素晴らしいですね。
Troop本体はpythonでの実装になりますので少なくともpythonはインストール済みである必要があるみたいです。

仕組み

実際の命令の流れは以下のようになります。

Troopクライアント → Troopサーバー → SuperCollider

それぞれの矢印はOSC信号でやり取りされています。
実際に文字を打ち込む画面はTroopクライアントの画面ということになり、これが逐次同期されているという仕組みみたいです。

ちなみにですが各モードでの違いは文法と最終的にSuperColliderに送られるOSCの文字列の対応関係のようです。
UIや操作方法については特に変わりはないようです。

インストール

Troopはpythonでの実装になりますのでosに合わせたpythonをインストールしておいてください。
また本記事ではSuperCollider、FoxDot、Tidal Cyclesのインストールについては割愛させていただきます。

githubからpythonのコードをクローンしてきます。これは使うパソコンすべてで行ってください。
https://github.com/Qirky/Troop

このTroopはFoxDotモードがデフォルトになっていますが、前述のようにほかにもTidalCyclesモードやSuperColliderモードでも使えます。
SuperColliderモードで使いたい方はサーバーパソコンでSuperColliderを立ち上げて

git clone https://github.com/Qirky/Troop.git

と打ち込んで実行しツールをダウンロード、インストールしておきましょう。
インストールが終わったらSuperColliderは再起動しておいてください。

使い方

まず前提としてTroopではOSCが利用されているので使用するパソコンはすべて同じネットワークで接続してください。

サーバーとして使うパソコンでSuperColliderを立ち上げて、それぞれのモードに合わせたツールを実行します。
TidalCyclesの場合 → SuperDirt.start
FoxDotの場合 → FoxDot.start
Supercolliderの場合 → Troop.start

次にサーバーパソコンでTroopサーバーを起動します。
コマンドプロンプトやターミナルでgithubからクローンしてきたフォルダに移動して

python run-server.py

と打ち込み実行します。
するとパスワードの入力を求められます。
これはクライアントとの合言葉のようなものですので好きな文字列で大丈夫です。

Server running @ IPアドレス on port ポート番号
と表示されれば成功です

さて、いよいよクライアント側です。
サーバーパソコン側でも操作をしたい場合は同じ工程を踏んでください。
先ほどと同じようにコマンドプロンプトやターミナルでgithubからクローンしてきたフォルダに移動して

python run-client.py

と打ち込み実行します。
この時デフォルトではFoxDotモードで起動しますが、
Tidal Cyclesモードで使いたい場合は

python run-client.py --mode TidalCycles

SuperColliderモードで使いたい場合は

python run-client.py --mode SuperCollider

と打ち込んでください。

するとまずサーバーのIPアドレスを聞かれますので、先ほどサーバー立ち上げ時に表示されたIPアドレスを打ち込みます。
次にポート番号を聞かれるので、これも同じように先ほど表示されたポート番号を入力します。
次にユーザー名を入力します。これは実際にコーディングする際カーソルの下に表示されるものになります。
最後に先ほどサーバー側で決めたパスワードを打ち込みます。
するとFoxDotによく似た画面が立ち上がるはずです。

最後に

仕組みは難しくないのかもしれませんが、インストールにも起動にも何のストレスも感じない夢のような素晴らしいツールでした。
こういうツールをパパっと思いついた時に作れるようになりたいものです。
皆さんもぜひライブコーディングでのセッションを楽しんでください。