DAW悪戦苦闘記

DAWやMIDIを通じてちまちまとDTMを楽しむ記録+MIDI検定1級到達記

Algorave事始め: TidalCyclesの導入

随分と間が空いてしまったのだが、2ヶ月ほど前に私のアンテナに引っ掛かったアルゴレイブ(あるいはライブ・コーディング)なるものの演奏を実際に自分の手で試してみたいと思い、今年の夏休みの課題として TidalCycles を早速Mac上に導入し、音を鳴らしてみた次第である。この機会に導入にあたってのtipsなどを簡単に書き留めておくとする。

daw-jones.hatenablog.com

巷間よく指摘されるように、TidalCyclesの実行環境はインストールが一筋縄では行かない場合が多いようで、今からお試しになりたい他ユーザの参考になれば幸いである。依存関係にあるソフトウエアが更新されている背景も手伝ってか、昨年まで通用していた一部のインストール手順が通らないこともあるようなので、現時点での最新の導入アプローチとして一つの参考にしていただければと思う(当然ですが遠くない将来にまた変わる可能性はあります)。

なおこれはアルゴレイブ全般に関して言えることだと思うが、導入手順を含めてある程度はIT/プログラミングの基礎知識を前提としている事情を考えると、少なくとも音楽畑のDTM入門者が敢えて最初に飛びつく制作環境ではない、ということは強調しておきたい。

導入にあたっての前提環境

以下、Mac上での導入に絞って話を進める。Macの場合は、次の2つが揃っていることが大前提である:

Python 2.7 系

詳細は下記で述べるが、TidalCyclesのインストール・スクリプトである tidal-bootstrap はPython 2.7系で実行されるので、同スクリプトを使って一部またはすべてのコンポーネントをインストールする場合は Python 2.7系の実行環境が必須となる。

もっとも、幸いなことにmacOSにはPython 2.7系が同梱されているので、これに関してはユーザ側で追加のアクションは不要である(何らかの理由で敢えて削除していない限りは)。

Homebrew

Homebrew は、macOS用のソフトウエア・パッケージ導入ツール(Linuxで言うところの yum や apt に相当するツール)として代表的なものであり、これは多くのMacユーザはすでに導入済みであろうかと想像する。

Homebrew は下記に述べる Haskell の実行環境を入れるのに重宝するので、未導入の方は是非ともインストールを推奨する。Homebrewがなくとも Haskell を入れることは可能であるが、ビルドだなんだと結構面倒臭いドツボに嵌る可能性がある。

導入すべきコンポーネント

TidalCycles の実行に必要となるコンポーネントは、細かく言えば以下の6つに分かれる:

  1. Haskell実行環境
  2. TidalCycles 用のHaskellプログラム群
  3. Atomエディター本体
  4. AtomエディターのTidalCycles実行用拡張機能
  5. SuperCollider本体
  6. SuperDirt(SuperColliderに組み込むべきライブラリ)

このうちの1から5までに関しては、本来はインストール用スクリプト tidal-bootstrap で自動的に入る、はずだったのだが、現時点では1および2のHaskell関連インストールに失敗するため、まずは大前提となる1のHaskell実行環境自体は上述のHomebrewを使って別途入れた方がよい。また、3のAtomエディター本体についても本スクリプト外で別途インストールしておいてもよいだろう。

Haskell実行環境の導入

Haskell言語で構築されている TidalCycles は、その命令実行にあたって当然ながらHaskellの処理系を土台として用意する必要がある。

TidalCycles 導入でもっとも躓く可能性が高いのはこのHaskell実行環境のインストールと思うが、逆に言えばこれ以外はただただ面倒臭いだけで大きな障害はない、というのが正直な感想である。

その一番簡単確実な導入方法は、上述の通りパッケージ・マネージャーのHomebrewにお任せするアプローチである。すでにHomebrewが入っていれば、以下のコマンド1行で必要なものはすべてインストールできるはずである:

brew install ghc cabal-install stack

これでHaskell自体の準備はできたので、すでに何度か言及している TidalCycles のインストール・スクリプトを実行する。

参考: MacでHaskellを始める

tidal-bootstrap の実行

公式サイトのダウンロード・ページより、インストール用のコマンド・スクリプトなどが入ったzipファイルをダウンロードし、その中から tidal-bootstrap.command ファイルを選んでダブルクリック、ターミナルからインストール処理を実行する。因みにこのスクリプトは何度でも再実行できる。

上記の通りにすでにHaskellの実行環境を正しく導入している場合は、導入コンポーネント群のうちの2から4までが問題なくインストールされる。正常実行時のターミナルの画面イメージは下記記事を参照されたい。なお、依存関係コンポーネントのうちで ghci とあるのはHaskellの対話型インタープリターを指す。

参考: TidalCyclesのインストール

なお上述の通り、Atomエディター本体に関しては、本スクリプト実行前に別途手動で入れておいても構わない(その方が確実かも)。

SuperDirt の導入

あと一息であるが、最後の導入物として、SuperDirt ライブラリを SuperCollider に組み込んでやる必要がある。上記導入コンポーネント群の6に相当する最後の手順となる。

実はこの SuperCollider 自体がいわばアルゴレイブの実行環境となっており、独自言語によってプログラミング的にシンセの演奏が可能となっているのであるが、この言語仕様をもっと簡潔にわかりやすくし、よりライブ・パフォーマンスに適した実行環境として用意されたのが TidalCycles という位置付けになっている(というのが私の理解)。その際、TidalCycles は SuperDirt というライブラリ(ある種のサーバ・プロセス)を介して SuperCollider に接続し、その音源を発音させる、という仕組みである。

本ライブラリの導入自体はとても簡単である。すなわち、上述の tidal-bootstrap スクリプトの実行によってすでに SuperCollider アプリは入っているので、このIDE環境を立ち上げて所定の1行プログラム install-superdirt-quark.scd を実行するだけでよい(上述のインストール用zipファイルの中に格納されている install-superdirt-quark.scd ファイルをダブルクリックする)。

f:id:daw_jones:20190818151759p:plain

SuperColliderIDEが立ち上がったら、下図の通りにその1行コマンドを Shift + Enter で実行する。右下の Post window に処理経過が表示されるが、エラーなく終了すれば無事に全導入プロセスが完了となる。

f:id:daw_jones:20190818154102p:plain

sc3-plugins の導入(おまけ)

これはやらなくても別に支障はないようだが、SuperCollider の拡張機能がいくつか公開されているようなので、興味がある方は入れておくとよい。

コンパイル済みのプラグインをインストールする方法については、下記記事の「(オプション) sc3pluginsのインストール」の項を参照されたい(zip解凍したものを所定のフォルダーにコピペするだけ)。

参考: 要約! spacemacs 上で TidalCycles を導入し音楽制作する

演奏の実行

TidalCycles の演奏実行は SuperColliderIDEを使わず、Atomエディターを使う。Atom上で書いたコードから、SuperDirt を介して SuperCollider を鳴らす、という全体構図になっている。

したがって、概ね以下のような流れになる:

  1. SuperCollider上で SuperDirt サーバを立ち上げる。
  2. Atomエディター内で TidalCycles のコマンド処理を受け付けて SuperDirt に接続する拡張機能のプロセスを立ち上げる。
  3. Atomエディター上で TidalCycles のコマンドを打ち込み、Shift + Enter で次々に実行する。

詳細については、下記参考記事中の「3. SuperColliderの起動」、「4. SuperDirtの起動」および「5. Atomの起動、動作テスト」の項を参照されたい。

参考: TidalCyclesのインストール2018年版

その他の参考資料など

以上、長々と書いてきたが、まだ環境が整ったばかりで、あくまでとば口に立っただけのことなので、実際の演奏技法やら技術的に興味深いところなどは今後追々と掘り下げていきたいと思う。日本語記事資料が非常に乏しい領域であるから、微力ながら役に立てることがあるかもしれない。

当面参考にすべき資料として、まずは公式サイトのドキュメント類が必読対象となる。とりわけチュートリアルは、非常にボリュームがあるものの、一通り目を通す必要があろう。

参考: TidalCycles userbase

また、ライブ・コーディングに関しては今のところ唯一の貴重な日本語書籍として、下記文献を挙げておきたい。正直言って頁数の割には値が張る本だが、歴史的背景なども含めて何らかの参考にしたいとは思う。公式チュートリアルの分量を過剰に感じたり、あるいは英語が苦手なユーザ向けには有益かもしれない。

演奏するプログラミング、ライブコーディングの思想と実践 ―Show Us Your Screens

演奏するプログラミング、ライブコーディングの思想と実践 ―Show Us Your Screens