見出し画像

非プログラマーなトラックメーカー向けライブコーディング講座#3 - Tidalcyclesの構造と導入

前回#2

今回からいよいよ、ライブコーディング言語であるTidalcyclesをトラック制作のワークフローに取り込むための、具体的な手順を解説していきます。まずは複雑怪奇なTidalcyclesの構造と、数多の初心者を撥ね付けているPCへの導入について。手順を踏めば難しくはないんですが、非常にめんどくさいのは確かです。

Tidalcyclesの構造

勘の良い方は今までの記事でお分かりかもしれませんが、Tidalcyclesはアプリケーションの形をしていません。Haskellというプログラミング言語で書かれた、Haskell用のライブラリ(拡張機能)として提供されています。

配布されているHaskell開発環境の中にはいろいろ機能があり、Tidalcyclesを使うにはインタープリタであるGHCi(Glasgow Haskell Compiler Interpriter)と、パッケージ管理システムのcabalが必要です。Haskellについてはわからなくていいので、「TidalcyclesにはGHCiとcabalが必要」なことだけ覚えてください。

雑に言うとGHCiにライブラリを食わせることで、Tidalcyclesに化けるイメージです。cabalはTidalcyclesライブラリのインストール、アップデートなどに使います。

実際に演奏のコードを書いてTidalcyclesに送るには、コードエディタとそのエディタをTidalcyclesに対応させるパッケージが必要です。メジャーなエディタにはほぼ対応していますが、多分初心者が使いやすいのはAtomで、公式も最初に挙げています。自分もAtomを使っています(※Atomは開発が終了しました。今はVSCodeを使ってます)。他にVS CodeEmacsVimといったエディタにも対応していて、それぞれにTidalcycles用パッケージが用意されています。

また、Tidalcycles自体には音を出す機能はありません。Tidalcycles専用のソフトシンセとしてSuperdirtが用意されています。SuperdirtはSuperCollider上で動作します。MIDIやオーディオインターフェースへの入出力はSuperCollider上で管理します。

処理の流れは以下のような感じです。

画像1

(1)コードエディタ(A)で記述して逐次実行※
(2)GHCi+Tidalcycles(B)でコードを逐次翻訳、SuperCollider(C)へ送信
(3)SuperCollider(C)で受信し、内部で動くSuperdirtで発音
※ Haskell本来の表現だと実行ではなく評価(Evalute)なんですが、今は分りやすく実行と書いています。

作業中にデスクトップ上に表示されるアプリケーションはエディタとSuperColliderの2窓になります。SuperColliderはSuperdirtが起動したら特に見る必要はありません(音が止まったりエラーは別として)。Superdirtの機能は初期設定以外全てエディタからコードで操作できます。

コードエディタとSuperColliderの間を、不可視のTidalcyclesが中継しているとイメージすると、分かりやすいと思います。

Tidalcyclesの導入

本連載では極力ヴァージョンやOSに依存しない解説を目指しています。Tidalcyclesの入れ方は今まで少しずつ変わっていて、検索したブログの解説が古くて現行の手順と食い違ってたりします。入れようと思った時の公式が正義ですが、英語な上に説明も簡素なので、本稿では極力抽象化した上で公式の説明の補助となる解説を試みます。実際の導入に際しては公式を優先して参照し、本稿を補助として進めてみてください。

(オープンソースソフトウェアである以上、急に根本の構造から変わる可能性すらありますが、その時は観念して全部改稿します汗)

前提事項
ギークなソフトを入れるにはコマンドライン環境が必須です。あの黒くて文字がいっぱい出る怖いやつです。公式ではOSXなら付属のターミナル、WindowsならPowershell(管理者権限)が推奨されています。ほぼコピペで使うので、コマンドはわからなくて大丈夫です。起動は出来るようにしてください。特にWindowsは管理者権限で起動しないと、インストールに失敗する原因になります(初心者がこれで詰まりがち)。これに限らず管理者権限付きユーザーアカウントで構築するほうが、問題は少なくなると思います。

なにはなくともTidalcycles公式のインストール手順を

まずは公式のインストール手順を参照しましょう。トップページからDocumentation -> Install Tidalにあるはず。自分の使ってるOSを選択してください。Manual Installationの流れをざっと見て、わからない部分は本稿のこの先を参照してください。

Automatic Installationがある場合はスクリプトによる自動インストールも一応可能です。自動と言いつつ部分的であったり、途中で失敗するとボトルネックが判り辛いこともあるので、自分はお勧めしません。手動でインストールして個別に管理できるように慣れておいた方が、継続的な保守がしやすいです。

Gitのインストール

GitはIT関係者には常識のプログラムコードの管理システムです。ライブコーディングで使用するオープンソースソフトウェアはほとんどGithubで公開されているので、そこから引っ張り出すのに使います。Gitコマンドは知らなくても大丈夫です(自分もわからん)。

OSごとにも何通りか方法があるので、適宜やり易い方法を調べて入れてください。分かりやすい日本語の解説が沢山あります。ちなみにGithubのアカウントは必要ありません。

Haskell開発環境のインストール

OSに適合したGHCicabalが入ったパッケージが必要です。

本稿執筆時点での公式の推奨はghcupです(これも変わることがあるので要確認)。ghcupページのインストール用コードをコマンドライン環境にコピペしてエンターすれば入ります。

GHCiのインストール確認は、コマンドライン環境で"ghci"と叩いてエンターで、

ghci
GHCi, version x.x.x(ヴァージョン番号): https://www.haskell.org/ghc/  :? for help
Loaded package environment from /Users/インストールフォルダ名/.ghc/x86_64-darwin-x.x.x/environments/default
Prelude> 

のように返って来たら、問題なくインストール出来てます。

Tidalcyclesライブラリのインストール

Haskell環境がインストール出来たら、新しいコマンドラインを開いて、以下を順番に実行します。

cabal update
cabal install tidal --lib

"cabal update"はcabal内のデータベースの更新です。これをやると最新のTidalcyclesがcabalに登録されます。その後、"cabal install tidal --lib"でTidalcyclesのライブラリがインストールされます。コマンドラインに"Installed tidal-x.x.x"と表示されたらインストール完了です。

また、先程同様にコマンドライン環境でインストール確認ができます。コマンドラインでghciを起動した後

import Sound.Tidal.Context

と叩いて

Prelude> import Sound.Tidal.Context
Prelude Sound.Tidal.Context> 

と表示されたら問題なくインストール出来ています。

SuperCollider, Superdirt, SC3Pluginsのインストール

SuperColliderは統合環境でインストーラーがあるので簡単です。上記サイトからOSに合ったCurrent Versionのインストーラーで入れてください。インストール出来たらSuperColliderを起動して、Superdirtをインストールします。

Superdirtのインストールはヴァージョンによって変わる可能性があるので、Tidalcycles公式のインストール手順を参照してください。基本的にはそこに書かれているインストール用コードを、起動したSuperColliderにコピペして"cmd(ctrl)+enter"で実行すると、インストールが始まります。

本稿執筆時点では

Quarks.checkForUpdates({Quarks.install("SuperDirt", "v1.1.3"); thisProcess.recompile()})

がインストール用コードです(昔自分が入れたときは"include("SuperDirt");"だけだった)。Postウインドウに

SuperDirt installed
-> Quark: SuperDirt[vx.x]
SCDoc: Indexed xxxx documents in xx.xx seconds

のような表示が出たらインストール完了です。

SC3PluginsはSuperColliderの拡張機能です。Superdirtの一部機能で参照されているので、必ず入れてください。

上のリンク先の右の段にある"releases"をクリックすると、各OSごとのZipファイルが置いてあるページが出ます。ダウンロードしたZipファイルを解凍したら"SC3plugins"というフォルダが出てくるので、フォルダ"SuperCollider/Extensions/"の下に丸ごとぶち込みます。

SuperColliderフォルダの場所ですが、SuperColliderを起動して上のメニューバーの"File - Open user support directory"で開けます。Extensionsフォルダがない場合は作ってください。

全てインストールできたら、起動出来るか確認します。SuperCollider上で

SuperDirt.start

を"cmd(ctrl)+enter" して、Postウィンドウに

SuperDirt: listening to Tidal on port 57120

が表示されれば、Superdirtのインストールは成功です。

コードエディタ, Tidalcyclesパッケージのインストール

ここは一番わかり易いAtomを例に解説します。Atomのインストールは上記ページからダウンロード出来るインストーラーを使えばすぐ完了です。

Tidalcycles用のパッケージはメニューバーのAtom - Preferences- Installと進んで、検索バーでtidalcyclesと入力すれば出てきます。インストールボタンを押せば完了です。

さらに他のパッケージを入れてコーディングし易くカスタマイズ出来ますが、本題から逸れるので省きます。先に日本語化したければJapanese-menuを入れてください。他はTidalcyclesのインストールが無事済んでから、自分が使いやすくなるようなパッケージをいろいろ調べるといいと思います。

インストールが終わったら確認です。Atomを開いたら上メニューから新規ファイルと別名保存で"untitled.tidal"というファイルを作ります。エディタでのTidalcyclesの起動には拡張子.tidalが付いたファイルを開くことが必要です。ファイルを開いたら、上メニューのPackageからTidalcycles - Boot Tidalcyclesを選びます。下のような起動ログが出て、エラーが出なければ完了です。

t>  [TidalCycles vx.x.x]
t> Waiting for SuperDirt (v.x.x.x or higher)..

全部入れたら動作確認

一度すべてのアプリケーションを終了し(念の為再起動がベスト)、エディタとSuperColliderを起動します。

両方起動できたらSuperColliderで”SuperDirt.start“でSuperdirtを起動します(先のインストール確認で書いた方法と同じ)。Postウインドウに"SuperDirt: lstening to Tidal on port 57120"が表示されたら準備OKです。

次にエディタで拡張子.tidalのファイルを開いて、メニューの”Boot Tidalcycles”でTidalcyclesを起動します(これも先のインストール確認で書いた方法と同じ)。

Connected to SuperDirt.
t>  [TidalCycles vx.x.x]

エディタで上記のように表示されたら準備完了です。簡単なサンプルコードを書いて音を出してみます。

d1$sound"bd bd"

コードを書いた行を選んで、shift+enterでいい感じのイーブンキックがドスドス聴こえれば、インストールは成功です!👏👏👏

音を止める際は別の行に”hush”と入力してshift+enterで止まります。

おわりに

Tidalcycles名物インストール・ヘル・ツアーへのご参加、誠にお疲れさまでございました。

無事に音が出た方、おめでとうございます。Tidalcycles公式にあるBasicsやReferencesから適当にサンプルコードをコピペして、色々試してみましょう。この連載はイチからチュートリアル的なことは書かないので、公式でよろしくやってください。特に最近新しくなったBasicsは以前のドキュメントよりかなり分りやすくなってます。

音が出ない方、インストールが上手くいかない方、ご愁傷様です…。まずどの部分がボトルネックになってるのか確認します。インストール中のコマンドラインでエラー文が出てればそれを検索したり、フォーラムやブログなどで同じ症状が書かれてないか調べます。ググった数だけ強くなれるよ…。全部消してイチからが一番早いこともあります。

エラーもなくちゃんとインストールされてるはずなのに音が出ない場合は、オーディオインターフェースやドライバ周りも確認しましょう。デフォルトではPCのオーディオ設定で標準になってるデバイスから音が出るはずです。

自分もコメントなどで訊かれれば、解る範囲でお答えします。激しく環境が違う場合はあまり力になれないかもしれませんが。自分の経験ではインストールよりアップデートの方が倍トラブル出ます。というか多分インストールでコケたことない。

次回はTidalcyclesでオーディオIFをフルに使うための、実用的なSuperdirtの詳細設定について解説します。

この記事が気に入ったらサポートをしてみませんか?