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

 

 

GarageBandのループ素材を Studio One で利用する

GarageBandは豊富なループ素材を無償で利用可能なところが重宝するのであるが、これを Studio One (Prime) 上でも引用したい時がある。

やり方は非常に簡単で、右側サイドメニューのブラウズ (Browse) から Files タブを選択し、ループ素材の保存場所を探し出す。

f:id:daw_jones:20190707174024p:plain

GarageBandのループ素材は、デフォルトのインストール環境であれば、下図の通り Library > Audio > Apple Loops > Apple フォルダーに保存されている。ループ素材の各CAF (Core Audio File) ファイルを試聴して楽曲に合うものがあれば、それを目的のトラックにドラッグ&ドロップして貼り付け完了である。time stretch を含め、引用方法は Studio One 付属のループ素材と何ら変わるところはない。

f:id:daw_jones:20190707174305p:plain

もちろん最初から GarageBand 上ですべて編集してもよいのだが、私の場合は Studio One の編集機能の方が使いやすいと感じているので、楽曲の土台と骨格は Studio One である程度試行錯誤した上で大枠を作っておき、その後必要に応じて GarageBand または Tracktion 7 でプラグイン音色を追加したりミックスダウン編集するということが多い。

第11回MIDI検定1級試験の出願開始

毎年恒例の夏季MIDI検定1級試験の本年度試験日程と出願期間が公表されたので、今年チャレンジされる方はお早めの受験申し込みをお忘れなく。出願開始は明日7月1日からとなっている。

MIDI検定試験1級案内

私が受験・合格した昨年はオリエンタル風味なクラシック調の楽曲で、なおかつかなり音数が少ない課題曲だったので、今年はその反動で音数多めなポピュラーかジャズ曲で攻めてくる可能性が考えられる。そうなった場合、リズム・セクションの打ち込みはコピペが多用できるとしても面倒なことこの上ないため、リズム用のMIDIステップ入力機能を活用するなど省力化の工夫が欠かせないと思われる。

daw-jones.hatenablog.com

言うまでもないことだが、初受験者は必ず過去の課題曲を数曲演習してみることをオススメする。今からだと試験開始日となる8月9日まで1ヶ月程度しか残されていないので、忙しい人だとたぶん1曲しか演習できないかもしれないが、リズム・セクションが入っていて比較的ボリュームの多い、たとえば2017年度や2013年度の楽曲を一つこなしておけば最低限度の下準備にはなるだろうと思う。

daw-jones.hatenablog.com

 

 

敷居が低くなったSysExのメーカーID取得

今月初旬にAMEIから告知があったように、SysExメッセージ中に埋め込まれて用いられることがあるグローバルでユニークなメーカーID (Manufacturer ID Number)取得条件が緩和された。詳細については DTM Station の下記解説記事が参考になると思うが、要するに、メーカーID取得維持専用の廉価なAMEI会員制度が新たに設けられた、ということである。

www.dtmstation.com

SysExが例えば音色設定データのやりとりに利用されているという件に関しては、本ブログでも下記記事で一度取り上げたことがある。

daw-jones.hatenablog.com

音色パラメータ等含めてデバイス設定データのやりとりに関しては、現在改訂途上にある MIDI 2.0 で実装予定の MIDI-CI (Capability Inquiry) が将来的には主流のコミュニケーション方法になると想定されるが、それを使う上でもメーカーIDは必須のデータ項目であることに変わりはないようである(下記強調筆者)。

To implement MIDI-CI and MIDI 2.0, you need a manufacturers SysEx ID. A SysEx ID by itself is $250 a year, but it is included with your MMA membership.

MIDI検定2級で集中的に学習するシステム・メッセージ系統の中でもSysExはやや難解というか、一体何に対してどのように使用されるのか実務経験者以外はイメージが湧きにくい部類の代表格だと思うが、上述の動向などを追っていると自ずとユースケースの実態が浮かび上がってくるのではなかろうか。

Studio One 4.5 新機能とPrime版

先月に中間アップデートにしてはかなり多数の機能改修を実施した Studio One 4.5 であるが、Sleepfreaks の以下紹介記事で要点が簡潔にまとめられていたので、備忘録的に記しておきたい。

その前に。この種の機能改修にはありがちと思うが、5月末に早速バグ・フィックスがリリースされてv4.5.1にアップデートされているので、まだパッチを当てていないユーザはご注意のほどを。

sleepfreaks-dtm.com

なお、上記記事で取り上げられた機能のうちPrime版では未実装であるものは以下の3点で*1、それ以外はPrime版においても反映されていることを自分自身で確認した:

これでプラグインが利用可能であればプロ版はたぶん不要になってしまうだろうが、さすがにそういう愚かなグレード管理はやるわけがない、当然ながら。

*1:改修対象となった機能それ自体がPrime版では利用可能ではないことに注意。

アルゴレイブの世界

先月末にWIREDの記事でアルゴレイブ (algorave) の話題が取り上げられ、はてブ界隈で若干バズっていたので、少し掘り下げて備忘録的に書き記しておきたい。

wired.jp

英文の元記事は2ヶ月前の3月末に公開されていたようだが、ご参考までに。

www.wired.com

早い話が自動作曲をフィーチャーしたライブ・コーディング前提のレイブ・パーティーのことなのだが、なにも今日昨日に始まったというわけではなく、2011年ないし2012頃から徐々に盛り上がり出したムーブメントのようである。実はその背景にある自動作曲奏法の研究自体も結構大昔から現代音楽の一角などで脈々と継承されてきた歴史があり、そのような巨人の肩に乗った成果であることは明らかだろう。近年ではAI/機械学習との結びつきも深い。

en.wikipedia.org

以下は、アルゴレイブ発案者の一人であるMclean博士のインタビュー映像で、一体どんなものなのか手短に概略を把握するにはうってつけである。

www.youtube.com

その他、YouTube上で "algorave" と検索すれば山のようにパフォーマンス映像がヒットするので、つらつら眺めていると生成される楽曲の特徴や会場の雰囲気などを味わうことができると思う。東京でもイベントをやっているようだ。

www.youtube.com

このアルゴレイブには、よく使われるデファクトのツール群があり、プログラミング言語としては TidalCycles が頻繁に使用される。パフォーマンス会場でスクリーンに映されるコードのほとんどは TidalCycles を Atom エディターで編集しているライブ映像である。

肝心の音源については SuperCollider を SuperDirt という wrapper (?) ソフトで起動させ、それを上述の TidalCycles から制御するという環境が一般的なようである。MacだとHomebrewを使ってインストールする方法が一番お手軽であろう。その辺の環境設定周りは以下の記事に詳しい。私も後日自分自身で試してみようと思う。

qiita.com

また上記WIRED記事には書かれていなかったが、この種のライブ・コーディング・パフォーマンスでは、自動生成されたMIDIデータの出力先と音源制御管理のDAWとして Ableton Live がよく援用されるようである。アルゴレイブ用に開発された各種プラグインAbleton Live 専用のものが多いように見受ける。Magentaプラグインはその代表例かと思う。

magenta.tensorflow.org

因みに、美術の世界でもこの種のコーディングをベースとするアルゴリズミックないわゆる generative art のシーンは当然に存在していて、MITが開発したProcessing言語+IDEが標準的な制作ツールとして普及している。

面白いことに、UdemyでProcessingの初級者講座が開講しているようだったので、私は早速enrollしてみることにした。感想などは後日レポートしてみたい。

www.udemy.com

MIDI 2.0 改訂の動向

MIDI規格のバージョン2.0への改訂は、昨年に狼煙が上がって以降今年に入ってから本格化しており、その動向については本ブログでも随時追跡してアップデートを図ってきた。

daw-jones.hatenablog.com

この改訂過程で検討されている次期規格仕様に関しては、つい先日米国のMIDI規格管理団体 (The MIDI Association) から比較的詳細な解説記事が発表され、一部のメディアでも報道されていたようである。 

www.midi.org

英語が苦手な方は、これをレビュー解説している DTM Station の下記記事が参考になるかと思う。

www.dtmstation.com

具体的な仕様に関しては、昨年来明らかにされていた改訂方針を大きく更新するようなサプライズは特になかったように見受ける。Property Exchange とかベロシティなどの解像度を大幅に拡張強化する話などは既に今年の1月段階でも取り沙汰されていた。

なお、日本国内のMIDI管理団体であるAMEIからは今回特段の報告はなされなかった(6月2日時点)。ついでながら無関係な愚痴だが、AMEIは米国MMAを見習ってそのウエブサイトをもう少しモダンなブログ・ベースのデザインに修正した方がよいのではないか。MIDI検定のサイトもそうだが、前世紀の遺物みたいな作りでちょっと萎える(阿部寛ホームページばりに軽快なのはよいとしても)。

ところで、MIDI 2.0 の実装時期がいったいいつ頃になるのか、という点はユーザとしても非常に関心あるところだと思うのだが、元記事では下記の通りにコメントされている(強調筆者):

The foundational specification, MIDI-CI has been published and is available for download. Other key MIDI 2.0 specifications are nearing completion in the MIDI Manufacturers Association. But it will take several years to write numerous Profile and Property Exchange specifications to follow.

The MMA put out a press release at the beginning of 2019 that listed just some of the companies that are already prototyping or making plans for products to come. Those that agreed to be mentioned include Ableton/Cycling '74, Art+Logic, Bome Software, Google, imitone, Native Instruments, Roland, ROLI, Steinberg, TouchKeys, and Yamaha.

However, we do not expect any MIDI 2.0 products to be released in 2019. For MIDI to be fully useable, the industry needs devices, applications, operating systems, and DAWs to support these new specifications. It will take time for a whole system of devices to be available.

当然ながら今年中に MIDI 2.0 compliant な製品が市場に出てくるわけもなく、普及と浸透には「数年」はかかる見通しとなっている。個人的には、やはりメジャーなDAWがどこまでどう対応していくのか興味を持って行く末を見守っている段階ではある。

またMIDI検定に関しては、今日の段階でAMEIから何かしらのアナウンスがあるわけではないのだが、将来的に学習課程と試験内容が更新されることは必至であろう。実技が2.0準拠となるのは随分と先のことになると思うが、MIDI関連の知識問題(筆記試験)については先取りして案外早い時期に改訂される可能性は十分想定される。