DAW悪戦苦闘記

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

TidalCycles入門 (2): VS Code 上での実行環境

以下記事に引き続き、今回は Atom の代わりに VS Code エディターをライブ・コーディング環境に使う場合の設定方法などを簡単にまとめておきたい。

daw-jones.hatenablog.com

拡張機能の導入

ここで VS Code に導入すべき拡張機能は2種類ある。すなわち、実行環境を用意するものとシンタックス・ハイライトの2つである。

実行環境

以下の拡張機能を導入すればよい:

TidalCycles for VSCode - Visual Studio Marketplace

基本的にはAtomエディターとほぼ同一の使い方ができる上に、独自の便利機能もいくつか追加されているようである。大概の環境ではデフォルト設定で問題ないとは思うが、好みの設定やパスの定義等微調整を必要とする場合は上記公式ページを参考にされたい。

シンタックス・ハイライト

実は上述の拡張機能 "TidalCycles for VSCode" を入れただけではシンタックス・ハイライトが何もない状態で、エディター画面上は非常に見辛い。

ご承知の通り、TidalCyclesはHaskellの実行環境上でコーディングするため、ここでは "Haskell Syntax Highlight" を導入し、Haskellシンタックス・ハイライトを間借りする:

Haskell Syntax Highlighting - Visual Studio Marketplace

これに加えて忘れてならないのは、ファイル拡張子.tidalHaskell言語に関連づけるよう settings.json に定義を追記することである。これに関しては、上記 "TidalCycles for VSCode" 公式ページ中の "Syntax Highlighting" の項を参照されたい。

もっとも、ハイライトの具合は正直なところAtom拡張機能の方が見やすいかと思う(カラーリングはおそらく設定変更できるのだろうけど)。好みにもよるが、コーディング・パフォーマンス自体はまだAtomを使う方がしっくり来るかもしれない。

f:id:daw_jones:20191022221649p:plain

おまけの設定: サウンドブラウザー

この VS Code拡張機能には、TidalCyclesで呼び出せるサンプリング音源の試聴というAtom拡張機能にはない便利機能が搭載されている。上記の通り、シンタックス・ハイライトには少々難があるためコーディング自体はAtomを使うとして、これとは別に音源試聴チェックは VS Code を援用するといった使い分けもありかと思う。

事前設定の方法に関しては、上記 "TidalCycles for VSCode" 公式ページ中の "Sound Browser" の項記載の通り、要は本拡張機能の設定画面における Tidalcycles > Sounds: Paths という項目に音源格納フォルダー(ディレクトリ)*1をパス設定するだけのことである。

パスの設定後は下例の通り、アクティビティ・バー上に出ている TidalCycles アイコンをクリックし、各サンプル・ファイル名の上でマウスオーバーすると表示される再生ボタン・アイコン押下して再生試聴できる。これは非常に便利な機能なので、追加設定することを強く推奨したい。

f:id:daw_jones:20191022223136p:plain

*1:Macの場合はデフォルトで $HOME/Library/Application Support/SuperCollider/downloaded-quarks/Dirt-Samples に保存されているはずである。

TidalCycles入門 (1): 基本チュートリアル資料など

ちょうど2ヶ月前の夏季休暇時にお試し導入したTidalCyclesであるが、最近になってようやく実習を始めてみた中で有益と感じた入門用の資料などを共有しようと思う。

daw-jones.hatenablog.com

トラブル・シューティングについて

TidalCylclesのインストール時あるいはインストール後のトラブルについては、以下の公式ページを参照するとよい:

Troubleshooting a Tidal install - TidalCycles userbase

ほとんどのケースはこれを参照すれば一発で解決するかと思う。躓くとすれば、おそらく十中八九Haskell関連であろうと推測される。

私の場合はこうである。TidalCyclesのインストールや環境設定はややこしいとの悪評がつきまとっていたものの、私は案外すんなりと初回のインストールと発音まで到達できた。しかし、それ以来時間が経過してから再度立ち上げてみると、AtomエディターのTidalCycles拡張機能をブートしたタイミングで "Could not find module ‘Sound.Tidal.Context’" なるエラー・メッセージが出てしまい、一切音が鳴らなくなっていた。

なぜ初回インストール時には問題がなく、時間経過後の今回になって発覚したのかは不明のままであるが、要するにTidalCylcles用のHaskellライブラリが入っていなかったことは明白なので、上記ページの "Tidal library" のセクション指摘の通りにもう一度入れ直すことで晴れて解決した次第である。

補記

Haskellのパッケージ導入管理ツールとして、cabalとstackの2種類があることも混乱の一因かと思われる。現在では後者のstackを使う方法がモダンなやり方らしいが、TidalCyclesの起動方法などが標準と異なる(上記userbaseの公式資料にも記載がある)。

基本中の基本の入門資料

よく使われる基本機能を一通り体得する段階で通読しておくべき資料は、以下の1点で十分と思う(PDFのスライド資料):

yoppa.org

日本国内ではTidalCyclesの第一人者であると言ってもよい田所淳氏の貴重なチュートリアル資料である。断片的なブログ記事はネット上で割と多く見かけるのだが、ある程度まとまった日本語資料としてはたぶん唯一無二であろう。氏の下記著作も合わせて読むと入門者としては万全かもしれない(お高いので私はまだ購入していませんが)。

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

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

 

その他の入門資料

英語が苦にならないユーザは、とりあえず以下の公式チュートリアルに目を通すとよいだろう:

Tutorial - TidalCycles userbase

ただし、結構ボリュームがあるので、最初からがっつりこれに取り組もうとすると挫折してしまうリスクもあると思う。ある程度以上のレベルの創作を志す上で必読であることには変わりはないが、やはり一番最初の取っ掛かりは上記の田所氏資料を参照することを推奨したい。

また、中級以上のチュートリアルとしては、以下のYouTube講座が比較的有益かと思う(ホストは live coding 界隈では有名な演者だそう)。ただし、TidalCyclesのアップグレードに伴って一部のコード・シンタックスは現バージョンでは機能しないように見受けるので、その辺は適当に端折るとよい。

補記

TidalCyclesはバージョン1.0を機に大きなアップグレード改修が入っているようなので、概ね2018年以前のブログ等入門記事に掲載されているコードはそのままでは機能しないところも多々ある。

www.youtube.com

AWS Solutions Architect Associate を取得

音楽とは直接関係はないのだが、無理やりこじつけるならば盆休み期間中に試しに入門した algorave / live coding に多少は関係してくるかもしれない、という密かな期待も込めつつ、先月末に AWS Solutions Architect Associate (以下SAA)の認定試験に合格したので(スコア820/1000点)、せっかくだから軽く体験談を書いておこうかと思う。

daw-jones.hatenablog.com

先月書いたように、今のところ live coding の環境設定はテクニカルに少々ややこしいことになっているので、クラウドに上げた環境をそのままお手軽に利用するとか多人数で共有したり、リモート接続で共同ライブ・セッションをしたり、などというクラウド活用の動きが今後活発化する可能性はあるだろう。

www.youtube.com

さて、SAAであるが、巷には受験体験記が山ほど溢れている中、私ごときが新たな知見を加える余地は小さいかもしれないが、ごく普通の初心者クラスの受験者が最小費用で実践した一つの典型アプローチとして参考にはなるかと思う。というのも、Qiitaなどで数多く披瀝されている受験体験記には、準備期間1ヶ月とか極端な場合には1週間といったどちらかと言えば例外的ケースが目立っており、一般的な未経験者・初心者にはあまり参考にならないと思ったからである。

まったくの初心者だった私の場合、単純に延べ期間で言えば5ヶ月程度の時間を要した。圧縮すれば実質的には2ヶ月ぐらいだろうと思うが、やはり仕事をしながらということになると普段の平日はなかなかまとまった学習時間を確保できず、ずるずると3ヶ月以上の期間は見込まざるを得ないのではないかと思う。

Udemyの講座活用が最短距離コース

学習期間の短縮には、Amazonその他業者主催のトレーニング・コースを受講するというのも一つの手である。しかし、それなりの高額出費を覚悟する必要があるため、なかなか個人ではおいそれと手を出せないし、そもそも費用対効果の面でどうしても疑問符が付く。その代替手段として非常に安価かつ有益であったのがUdemyの各種講座であったことは特筆しておきたい。

私が受講したのは以下の3講座で、あとは下記に挙げる日本語教則本を除けば他は何も利用せずに済んだ。

これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(初心者向け21時間完全コース)

これは結構定評のある試験対策講座で、日本語では唯一ではないかと思う。初心者にはありがたいハンズオン*1が充実しており、最初の取っ掛かりとしてはベストな講座と思う。

ただし、振り返ってみれば「これだけでOK」というわけには行かなかったので、他講座との併用を推奨する。付随サービスの紹介が不十分であったり、要点が整理し切れていない側面も否めず、どれか一つで良いから別の講座で補強する必要があると感じた。

付録のクイズや模擬試験問題はやや重箱の隅を突き過ぎた設問が多く、高得点を取れずともそれほど気にする必要はないと思う。

Ultimate AWS Certified Solutions Architect Associate 2019

個人的にはベスト講座であった。英語が苦にならない受験者には是非オススメしたい。上記「これだけ」講座ではよく理解できなかった要点などが本講座で明快になったところも多々あった。

スライド資料の要点整理が非常に簡潔かつ明瞭に綺麗にまとまっている。違いが紛らわしい各種AWSサービスの比較なども丁寧に網羅されており、痒いところに手が届く講座と言える。当然ながらハンズオン実習やデモも非常に充実している。

振り返れば、本講座最後の付録の模擬試験で合格基準に達すれば、本番でもおそらく大丈夫であろうという感触がある。

AWS Certified Solutions Architect Associate Practice Exam

合計6回分の模擬試験問題集。模試問題だけを集めた講座は実は山ほどあるのだが、これは比較的解説や資料リンクが充実している方だと思う。

ただ、振り返ってみればこれは特に受講の必要はなかった。というのも、ボリュームが多くて取り組む時間の捻出に苦労したことと、また問題のレベルがどちらかと言えば過剰に重箱の隅を突くもので本番よりも難度が高過ぎる印象を受けたからである。

おまけの教則本

定評のある日本語教則本は何冊か出回っているが、私が使ったのは以下のいわゆる「黒本」というやつである。

徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書

徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書

 

言わずもがなだが、読者のレベルや相性があるので、教則本は書店で手に取ってみて吟味選定することを勧めたい(私はそうしなかったので反省)。なので、上記黒本が万人にとってベストだというつもりは毛頭ない。

黒本に関して個人的な意見を書くとすれば、

  • 私がそうだったのだが、入門者がいきなり黒本を読んでもおそらくチンプンカンプンでほとんど頭に入ってこないと思われる。上記Udemyの講座と並行で復習に用いるのがベストであろう。
  • 章立ては、EC2やVPCといった各サービスごとではなく、AWS Well-architected Framework の5本柱に沿った構成となっていて、重複が多い。ここは読者の好みが分かれるところだと思う。
  • Kindle本ではなく紙の書籍を推奨する。私は自宅外での通読に配慮して電子書籍にしたのだが、用語検索・参照がままならずにとても苦労した*2。今後の事典用途なども考えると、紙の書籍の方がよかった。

これも振り返ってみればの話だが、結局のところ黒本はあまり必要ではなかったというのが正直な結論である。もちろん他の教則本だとまた違った感想になるかもしれない。

*1:本講座に限らないが、無料枠を使ったハンズオンであってもRDSなど高額サービスが絡んでくるものは、業務上どうしても必要である立場などを除き、逐一実践しなくてもよい。思わぬ請求が発生することを防ぐに越したことはないため。

*2:この種の日本語書籍にありがちだが、印刷イメージをそのまま電子書籍化した代物なので、検索用途ではまったく使い物にならない。

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はやや難解というか、一体何に対してどのように使用されるのか実務経験者以外はイメージが湧きにくい部類の代表格だと思うが、上述の動向などを追っていると自ずとユースケースの実態が浮かび上がってくるのではなかろうか。