見出し画像

非プログラマーなトラックメーカー向けライブコーディング講座#2 - ライブコーディング概論

前回#1

今回はTidalcyclesを取り巻くライブコーディングの状況を、成り立ちから現在までざっくり書きます。ライブコーディングを支えるソフトウェアは個人や有志団体が開発している非商業的なものが殆どで、メーカーが作る商業ソフトウェアとは文化的な背景が全然違います。使い方を習得する上で必修ではないし、文化的コミュニティに属さずとも使えるけど、どういう環境で作られてきたかバックグラウンドを知っておくと、後々トラブルシューティングとかで調べ先にアタリを付けやすくなったりします。

ライブコーディング とは

以前経済系のTV番組で、都心のオシャレなバーで夜な夜な開催している職業プログラマの交流会を取り上げていました。そこではその場で提示された仕様のプログラムを即興でコーディングして公開、レビューする遊び?のような活動をしていました。そのときは「仕事が終わってからこんなことしてて疲れねえのかな…」と素朴に思いましたが、今思うとこれが本来のライブコーディングのようです。

広義に、ライブコーディングとはプログラム文化の中のワークショップやセミナーなどで行われる、リアルタイムの公開プログラミングを指します。ラップトップPCやモバイルコンピューティングが発達して、コードを書いて実行できる端末を個人が携行できるようになった、2000年前後くらいからありそうです(本題と関係ないのでちゃんと調べてない)。

それらの発達した携行端末は当然、音楽制作や映像制作にも利用されており、特に即興性のある芸術表現やライブパフォーマンスの手段としての「演奏するプログラミング」も、”ライブコーディング”という言葉で表現されています。余談ですが、昨今はそうしたコードを書く表現者を映像や音響などのジャンルを跨いで”クリエイティブ・コーダー”と呼んだりします。

ライブコーディング誕生の背景

コンピュータによる音響合成の歴史は非常に古く(IBM 704がDaisy Bellを歌ったのは1961年)、しかし80年代までは短い音声をプログラムから音として出力するのに、大型のメインフレームコンピュータで何時間もかけて計算していました。

80年代を過ぎるとLSIの発達やPCMを始めとしたディジタル信号処理の進歩により、音響合成専用に設計されたハードウェア(つまりディジタルシンセサイザー)が一般化しました。しかし汎用のコンピュータでのプログラミングで音を合成するには、まだ高価だった個人向けデスクトップ端末でも、リアルタイムの出力は制限が多く困難でした(専用ボードを使うなどの例外はある)。パソコンで音楽というと、専ら演奏情報のみであるMIDI信号でシンセサイザーを制御するのが主流の時代でした。

90年代後半でようやく、コンピュータの大幅な性能向上と低価格化で、個人向け端末でもリアルタイムの音響合成が容易になりました。CsoundやSupercollider等の音楽専用のプログラム言語も開発され、アマチュアやアンダーグラウンドで活動するアーティストの利用が一気に進みました。

ゼロ年代に入ると端末の小型化も進み、ベッドルームに置かれたラップトップPCが積極的にステージに持ち込まれて、PC主体の電子音楽のパフォーマンスが一般化しました。しかしステージ上でパソコンを神妙に見つめるだけに見える演者が増えたことで、一部からは「メールチェッカー」のように揶揄する声が上がります。

そうした、楽器演奏と違って観客からは一見何をしているかわからない状況を解消するために、パフォーマンス中のPCの画面を大型のスクリーンに表示する人が現れます。現在のライブコーディングで行われている「スクリーンを晒す」パフォーマンス・スタイルはそうして始まっています。

最初にスクリーンを晒し、リアルタイムにコードを書きながらパフォーマンスを行ったのは、イギリス・シェフィールドのライブコーディングバンドSlubだと言われています。そこには後にTidalcyclesを開発するAlex Mclean氏も参加していました。

Alex氏は04年、ナイトクラブでのPerlを用いたパフォーマンスに関する論文(Hacking Perl in Nightclubs)を発表し、以降ライブコーディング・ミュージックのシーンはシェフィールドが牽引し、世界中に広がりました。07年以降になると、従来の音響合成向け言語の発達と並行し、よりライブコーディングに特化した専用の言語が多数開発されました。

現在の状況

日本で音楽活動をしていてもまるでピンと来ないんですが、イギリスは産業革命以降の世界で初めて労働運動が起こった国ということもあり、この国で生まれた音楽文化はパンク〜レイブ〜ブリストルサウンドと、伝統的に労働運動や反体制活動との結びつきが強いです。

そこまで極端ではないですが、イギリスで生まれたライブコーディングも「”コーディング”という創造行為の愉しみを、資本主義によって肥大化したソフトウェア産業から、個人の手に取り戻す」という思想的側面を持ち合わせています。またソフトウェアエンジニア発の文化でもあり、シェア精神を重んじオープンでフラットなコミュニティが作られています。

そうしたソフトウェアエンジニア文化とイギリスの労働運動文化が掛け合わされて、現在のライブコーディング文化には独特の雰囲気があります。

ライブコーディングのコミュニティ

そうしたライブコーディング文化を支える世界的なコミュニティが存在しますので、紹介しておきます。

TOPLAP 世界規模のライブコーディングの情報交換フォーラム。どんなメディア・ジャンルでも、ライブコーディングに興味があれば誰でも自由に参加できます。プログラム言語毎のディスカッションやイベントの告知といった情報交換に利用されています。

Algorave ライブコーディングで表現するためのクラブなどで行うイベントのスキーム。特定の団体固有のイベントではなく、ライブコーディングを実践したければ、Algoraveの理念を元にして誰でもこの名前を使ってイベントを開催できます。大体国や都市ごとに取りまとめるグループがいる状況に落ち着いている様子(Algorave Tokyoなど)

余談ですが2018年11月のAlgorave Tokyoには、イギリスからAlex Maclean氏らライブコーディングのオリジネーター3名が招聘され、筆者も出演しました。

ライブコーディングで利用される主な言語

ライブコーディングでよく利用されている言語を、ざっくりと解説します。筆者が実際に使っているソフトのみ、筆者の環境から撮ったスクリーンショットを載せてみました(前に使った資料が残ってた)。Max以外全てオープンソースソフトウェア(ライセンス基準はまちまち)です。

Max (1985- )

画像1

IRCAM(フランス国立音響音楽研究所)で開発がスタートした、クリエイティブ向けの総合ビジュアルプログラミング環境。現在Ablton傘下Cycling’74社販売のソフトウェアで、Ableton Liveの拡張機能Max for Liveの正体でもあります。一見複雑そうですが基本は箱を線で繋ぐだけなので、非プログラマでも取っ付き易いです。頑張れば音も映像も機械制御も、なんでもできる。商用ソフトなので、情報も充実しています。

Puredata (1996- )

画像2

Maxの初期開発者ミラー・パケットが開発を主導するビジュアルプログラミング環境。やや設計思想は異なるもののMaxに近い使い勝手の為、Maxのフリー版的な位置付けにあります。書籍や解りやすい情報も多くて、音響プログラミングに最も入り易い環境だと個人的には思います。自分はこれで勉強してからMaxを買いました。

SuperCollider (1996- ) 

スクリーンショット 2021-05-27 21.31.34

コンピュータを利用した音響合成にかなり高度に特化した言語。一番ガチなやつ。サーバークライアント型の統合環境で、単体ではもちろん、他のソフトウェアと連携して活用されることが非常に多い言語です。Tidalcyclesでも導入必須(これでプログラムは書けなくても大丈夫です)。

Tidalcycles (2009- )

画像4

関数型言語であるHaskellベースの音楽向けライブコーディング言語。先述のAlex氏が開発を主導する、マルチプラットフォームのソフトウェア。基準となる”サイクル”を分割することでパターンを構築するのが特徴で、そのパターンを柔軟に操作できる強力な関数群を備えています。導入と習得のハードルは結構高いですが、2021年現在も依然として主流言語の一つ。

SonicPi (2012- )

Rubyベースの音楽用ライブコーディング統合環境。名前にPiが付いている通り、RaspberryPi環境での動作を意識して作られていますが、Windows、MacOSでも動作します。統合環境なのでインストールが簡単で、入門向け言語として名前が挙げられます。

Foxdot (2015- )

Pythonベースの音楽向けライブコーディング言語。筆者はあんまりちゃんと見たことがないんですが、ベース言語が違うものの、多分Tidalcyclesの影響を受けているようで、なんとなく構造が似ている。Pythonに馴染みがある人はこちらがいいのかもしれません。

以上、代表的なものだけを挙げましたが、他にも多数あります。

おわりに

がんばって一応調べながら書きましたが、間違いご指摘等あれば優しくお願い致します…。

実は最初書きながら「この記事いるんかなぁ」と思ってました(汗)自分はTidalcyclesが自分の音楽的な表現に都合が良かったので使い続けているだけで、ライブコーディング的な文化や”コーディング”という行為自体にはそれほど価値を重んじてないんですよね(ライブの時ウケが良いのでデスクトップは晒してるけど)。この連載はトラックメーカー的な視点からのライブコーディングの活用が主題なので、すぐに実用的な解説をするべきか、ちょっと悩んでました。でも書いているうちに気づいたことがあって。

最近はそうでもないですが、使い始めた当初は動画やソースコードを検索しても「ライブコーディングで音楽やっちゃいました〜」程度の、音響音楽としては謂わば”ダサい”情報しか見つからず、自分が使うために参考になるものが割とレアでした。正直「大したこと無いクソみたいな音出してるヤツばっかじゃねえか」と悪態をついてました(笑)。

でもそれは批判することではなくて、ライブコーディングがDAWも知らずオーディオインターフェースも持たない職業エンジニアの人が音楽を作り始めるキッカケになるなら、素晴らしいことです。ライブコーディングはコーディングの楽しみを開放するだけでなく音楽づくりを開放する文化でもあり、発祥から一貫してそうしたオープンで多様性のある文化なのです。

そうした文化的背景を把握して、各々が作る音楽にとっての”ライブコーディングを使う必要性”と対比して考えておくと、よりモチベーションがあがって習得もスムーズになるのかな〜と思います。

次回からはいよいよTidalcyclesについて言及していきます。まずは構造の説明とインストールガイドかな…。

次回#3

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