のぶLab.

流しのソフトウェアエンジニアの雑記帳. Android, Scala, Clojure, Ruby on Railsなど

Overtoneを使ってClojureで音楽をcoding

Overtoneとは

overtone/overtone · GitHub

プログラミング言語Clojureを使って音楽をコーディングするプラットフォームです このOvertoneを使って活動しているアーティストもいるようです (Meta-eXRepl Electricなど)

Overtoneを使ってみる

Overtoneを以下の方法でサクッと試すことができます (Mac OS X Yosemite)

Leiningen(GradleとかMavenClojure版みたいなもの)をインストール

$ brew install leiningen

overtoneプロジェクトの作成

$ lein new hogehoge

projectの依存関係にovertoneを追加

$ cd hogehoge
$ vi project.clj

dependenciesにovertoneを追加

 :dependencies [... [overtone "0.9.1"]]

REPLを起動

$ lein repl

依存するjarがダウンロードされて、REPLが起動する

起動したら以下のようにしてovertoneを起動

user> (use 'overtone.live)

起動したら試しにピアノを鳴らしてみる

user> (use 'overtone.inst.piano)
user> (piano)

これでピアノの音が鳴るはず

もちろん単音だけでなく旋律をコードで表現して演奏することも可能

overtoneから呼び出せる関数は以下のcheat sheetから確認できます

https://github.com/overtone/overtone/raw/master/docs/cheatsheet/overtone-cheat-sheet.pdf

EmacsでOvertone演奏環境構築

OvertoneをEmacsで快適に演奏できるEmacs Liveというものがあるようなので、環境構築をしてみました

環境 Mac OS X Yosemite

Overtoneを使えるようにするまでは以下の手順を参考にしてください。

Overtoneを使ってClojureで音楽をcoding - のぶLab.

Emacs v24.4をインストール

現在、Emacs Liveはv24.3以上でないとダメなようなので、最新版をインストールします

$ brew upgrade
$ brew install --cocoa emacs

Emacsエイリアスを設定 .bashrcに以下を追加

alias emacs="/usr/local/Cellar/emacs/24.4/bin/emacs"

Setup

※ これは.emacs.dディレクトリを置き換える方法を取るので、普段使っている環境が壊れる可能性があります。必要があればVagrantなどを使って環境を分けるなど対応してください。

$ cd
$ git clone git@github.com:overtone/emacs-live.git .emacs.d

$ emacsコマンドでEmacsを起動 画面にAAでEmacs Liveと表示されていたらOK

OvertoneプロジェクトのREPLを起動

別ターミナルを開いて以下を実行

$ cd hogehoge
$ lein repl

EmacsとREPLを接続

以下のコマンドを実行

M-x cider [enter]

ホスト名、ポート番号を聴かれるので入力 hostname : localhost port number : [lein replで起動したREPLのポート番号]

Emacs上のREPLからOvertoneを使ってみる

user> (use 'overtone.live)
user> (use 'overtone.inst.piano)
user> (piano)

ピアノの音が鳴ればOK

あとがき

音を鳴らすだけならEmacsなど使う必要はないが、 Live Codingなどをする際にはEmacsなどの高機能な環境だと演奏も楽になるかもしれない。