プログラマブルミュージック MacでOvertoneのインストールと曲の再生
今回はプログラミング言語で作曲できる「Overtone」をインストールしてみる。
同様のソフトは他にもSuperCollider、Sonic Pi、Taktなどがある。
MIDIデータ作成が目的ならTaktが一番適していると思う。
学習コストが低く、MIDIの作成ならベロシティの設定までカバーしている。
オシレーターが使え無さそうだったので、僕は選択肢から外した。
SuperColliderはこの中で一番古く、OvertoneもSonic PiもSuperColliderを利用して作られているみたい。
SuperColliderは独自言語で、OvertoneはClojureで、Sonic PiはRubyで書くことが出来る。
Sonic Piは、Overtoneに比べて機能が少なそう。
インストール
OvertoneはClojureで動作するので、まずはClojureをインストール。
$ brew install leiningen
適当な所に移動してプロジェクトを作成
$ lein new tutorial
次にプロジェクトの依存をproject.cljに記述。
$ vim tutorial/project.clj
(defproject tutorial "1.0"
:dependencies [ [org.clojure/clojure "1.8.0"]
[overtone "0.10.1"] ])
ディレクトリの中へ入って、依存ファイルをインストール
$ cd tutorial
$ lein deps
ライブコーディング
動作確認のためにライブコーディング的なものをやってみる。 まずはREPLを起動。
$ lein repl
足し算
user=> (+ 1 2)
3
実際に音を鳴らしてみる。 Overtoneを起動。
user=>(use 'overtone.live)
以下を入力すると音が鳴るはず。
user=>(demo 7 (lpf (mix (saw [50 (line 100 1600 5) 101 100.5]))
(lin-lin (lf-tri (line 2 20 5)) -1 1 400 4000)))
曲を再生してみる
Chris Ford氏が公開している曲をダウンロードして再生してみる。
$ git clone https://github.com/ctford/whelmed.git
$ cd whelmed
$ lein run
...
Exception in thread "main" java.lang.Exception: Unable to read file - perhaps path is not a valid audio file
WAVファイルが大きすぎてダウンロードがうまくできていないようだ。
ということで、大きなファイルをcloneできるようにする。
$ brew install git-lfs
$ git lfs install
Git LFS initialized.
改めてcloneして、再生してみる。
$ git clone https://github.com/ctford/whelmed.git
$ cd whelmed
$ lein run