※この記事はSFC Advent Calendar 2019の記事です。
##概要
皆さん、プログラミングで音楽を演奏出来ることをご存知でしょうか?
実は、ライブコーディング(その場でコードを書く行為の総称)で即興演奏できるツールがあります。今回はライブコーディングで演奏するツールの紹介と環境構築の方法、
そして最後に音を実際に出す方法についてご紹介します。
##自己紹介
はじめまして。環境情報学部2年のdaveと申します。
自分は村井研のAQUA(村井研にある量子計算・通信の研究グループ)に所属しており、普段は量子アルゴリズムの実装をしております。
18日に量子コンピューターAdvent Calender 2019にも参戦するので良かったら購読お願いします。
自分とライブコーディングの出会いは、Twitterで流れてきたWIREDの記事
(https://wired.jp/2019/05/19/algoraves-live-coding-djs/) でした。
普段からコードを書き、かつクラシックから電子音楽まで幅広く聴く自分にとって、「プログラムで自分も音楽を演奏してみたい!」と強く思いました。
そして、ライブコーディングの環境構築を1時間前に終わらせたので、その際につまづいた点も含めて解説します。まさに「ライブコーディングを始める」ための記事にします。
##必要なライブラリ
演奏用のライブコーディングのためのソフトウェアはいくつかありますが、今回はPythonを使ったソフトウェアを紹介します。基本的には1を参照しています。
以下のツールをダウンロードして下さい。
- Python
- SuperCollider
- sc3-plugins
- Git
- FoxDot
1つ1つ説明していきます。
1. Python
Pythonは今回使うプログラミング言語です。こちらのリンクからご使用のOSに合うものの中で最新版をダウンロードして下さい。
2. SuperCollider
SuperColliderはサウンドプログラミング言語(音声を操作するプログラミング言語)の1つです。こちらのリンクから、例によってご使用のOSに合う最新版をダウンロードして下さい。
3. sc3-plugins
sc3-pluginsはSuperColliderのプラグインで、これをダウンロードすると音が合成できるようになるそうです。2
是非ダウンロードしましょう。
このダウンロードの仕方についてご紹介します。
(i) SuperColliderを開いて Platform.userExtensionDir
を入力します。
(ii) 上のコマンドをCmd+Enter(Mac)
あるいはCtrl+Enter
で実行します。
(iii) 2.を実行するとディレクトリへのパスが表示されるので、そこに解凍したsc3-pluginsを移動させて下さい。
注: (Macの場合)もし表示されているパスが見当たらなければ、Finderを開いて
Cmd+Shift+G
を押して下さい。パスの入力欄が出るので、そこに出力されたパスをコピペするとディレクトリに移動できます。
4. Git
こちらのリンクからダウンロードして下さい。ツールがダウンロード出来なかった時の奥の手として使います。
5. FoxDot
FoxDotはPythonでライブコーディングをするための環境です。このダウンロードの仕方を解説します。
(i) まずターミナルでpip install FoxDot
、または
python3 -m pip install FoxDot --user
と入力して下さい。
(ii) SuperColliderを開いてQuarks.install("FoxDot")
を入力します。
注:もし上手くいかなかったらSuperColliderで
Quarks.install("https://github.com/Qirky/FoxDotQuark.git") Quarks.install("https://github.com/supercollider-quarks/BatLib.git")
を入力して下さい。
インストールが完了したらSuperColliderを再起動しましょう。
(iii) SuperColliderにFoxDot.start
を入力して、Ctrl+Enter
で実行します。
(iv) コンソールを開いてPython -m FoxDot
またはPython3 -m FoxDot
を入力します。
(v) FoxDotにp1 >> pluck()
を入力して音が出たらゴールです!
最後に
先述の通り自分はライブコーディングに関してはど素人なので、一緒に上手くなっていきましょう!環境構築で詰まったら自分のTwitter(Dave/Makoto)にDM下さい。