先日、Sapporo.clj#5 : ATNDに参加して、Overtoneを試してみました。

OvertoneはClojure上で動作する音響合成プログラミング言語で、SuperColliderをエンジンに使用しています。

以下、Overtoneをインストールして、Steve ReichのPiano Phaseを鳴らすところまでの手順です。

Leiningenのインストール

$ brew install leiningen

プロジェクトの作成

$ lein new reich

依存モジュールのロード

project.cljを開いて、以下のようにovertoneの依存を追加します。

(defproject reich "0.1.0-SNAPSHOT"
  :dependencies [ [org.clojure/clojure "1.6.0"]
                  [overtone "0.9.1"] ])

その後lein depsで依存モジュールを落としてきます。

$ cd reich
$ lein deps

scsynth関連のモジュールはいくつか落ちてくるのですが、SuperCollider自体はインストールされないようです。

ただ、Connecting scsynth · overtone/overtone Wiki · GitHubにあるように、

(use 'overtone.live)

と書いてInternal Serverに接続して使う分には、SuperColliderのインストールは不要だそうです。

実行

$ lein repl

ClojureのREPLが起動するので、Overtoneのコードを入力していきます。

コードは、Steve Reich's Piano Phase - Sonic Pi vs Overtoneをそのまま実行してみましたが、overtone.inst.sampled-piano のロードに1時間近く掛かってしまったので、以下のようにsampled-pianoを使用せずsin-oscを使うものに変更しました。

gist.github.com

参考