プログラマブルミュージック MacでOvertoneのインストールと曲の再生まで

今回はプログラミング言語で作曲できる「Overtone」をインストールしてみます。
ちなみに同様のソフトは他にもSuperCollider、Sonic Pi、そして会津大学の教授が作ったTaktがある。
MIDIデータ作成が目的ならTaktが一番適していると思う。
学習コストが低そうで、MIDIの作成ならベロシティの設定までカバーしている。
オシレーターが使え無さそうだったので、僕は選択肢から外した。

SuperColliderはこの中で一番古く、OvertoneもSonic PiもSuperColliderを利用して作られているみたい。
SuperColliderは独自言語で、OvertoneはClojureで、Sonic PiはRubyで書くことが出来る。
Sonic Piは教育向けにも作られているので、Overtoneに比べれば機能が抑えめのようだ。

まずは源流であるSuperColliderを試してみたが、SuperColliderで作曲するのは辛そう。
vimで編集して、一行ごとに音を確認するのはできたが、作ったファイルの実行の仕方が分からず・・・。
結局、専用のEditorじゃないと再生できなかった。
Vimで編集したいので、これは僕の求めていたものではない。
ということで、Overtoneに乗り換え。

OvertoneもSuperColliderを利用して作られているが、トランスパイルしたりするわけではない。
SuperColliderはサーバーとクライアントが分かれていて、クライアントは必ずしもSuperColliderじゃなくてもいい。
メッセージさえやりとりできればOKなので、別言語を使うことの気持ち悪さがあまりない気がする。

インストール

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 

どうやら「git clone」で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 

うおお、再生できたぞ!
再生できただけで感動してしまう笑
どんだけ道が果てしないんだ。

感想

SuperColliderよりも設定がこじんまりとまとまってていい感じ。
僕はOvertoneの方がいいな。
ただ、日本語の情報が少ないのが難点。
今後はOvertoneについて引き続き紹介していきたいと思います。

まだ、自分でファイルを作成して再生するところまで分かっていない。
Clojureの文法も意味不明。(汗

果たしてプログラマブルミュージックは流行るのか・・・。
そんな気が全然しませんが、気長にやっていこう。
いつか他のDAWにも劣らない曲を作りたい。

でも、しばらくはMIDIを書き出して既存のDAWに読み込んで、音作りをするというのが現実的だなー。

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です