• このエントリーをはてなブックマークに追加

スポンサードリンク

はじめに

以前, Live Coding について記事を書きました.

これがまた, めちゃくちゃカッコいいんだ. 憧れは行動を突き動かす!

Quick Intro to Live Programming with Overtone from Sam Aaron on Vimeo.

というわけで, 今回は実際に Overtone を使って, Clojure で音楽をならしてみます.

Overtone

Overtone は, Clojure 製の音楽環境の OSS. Clojure で 音楽を演奏できる.

Clojure の導入は以下を参照.

Overtone Install

leiningen でインストールする.実験用ディレクトリ作成.

$ lein new insane-noises

insane-noises/project.clj [overtone “0.9.1”] の依存関係を追記.

(defproject insane-noises "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.6.0"]
                 [overtone "0.9.1"]) ;; ここ

overtone をインストール.

$ cd insane-noises
$ lein deps

Jack のインストール (Linux Only)

音を鳴らすためのサーバにつなぐためには, Linux ではさらに外部ツール (Jack) のインストールが必要

# Ubuntu
$ sudo apt-get install jack-tools ant openjdk-6-jdk fftw3 qjackctl
# ArchLinux
$ sudo pacman -S jack2 qjackctl supercollider

Jack サーバを起動. qjackctl は GUI なのでわかりやすい. これを立ち上げて,再生を押して起動. (設定から インタフェースの選択をしないと再生できなかった)

pulseaudio が起動している場合

鬼門だった. pulseaudio と jack は両立できない.

いろいろ方法はある. 自分は, pulseaudio を停止する方法をつかった.

pulseaudio --kill

SuperCollider との接続

overtone から supercollider サーバに接続する.

repl のほうでポートに接続.

# External server 起動
$ user=> (use 'overtone.core)
$ user=> (boot-external-server)

音がでるか確認. ピーっと音が出れば OK.

user=> (demo (sin-osc))

以下を打ち込むと, ドレミファソラシドが流れる.

user=> (use 'overtone.inst.piano)
user=>(map #(do 
         (Thread/sleep 500) 
         (piano %)) (scale :c4 :major))