Overtoneは、シンセサイザーを設計し、音楽と共同作業するためのオープンソースのツールキットです。
Overtone is an Open Source toolkit for designing synthesizers and collaborating with music.
https://github.com/overtone/overtone より引用
clojureを使って音を鳴らしたり、音声を合成できます。今回はclojureのプロジェクトを作るところから音を鳴らすところまでを行います。
プロジェクトを作成する
demoという名前でプロジェクトを作成します。
プロジェクト作成時の出力::
--to-dir
で指定したディレクトリにプロジェクトが作成されます。
依存ライブラリをインストールする
project.cljで `defproject` を使ってプロジェクトに関する情報を指定します。第一引数はプロジ ェクト名、第二引数はバージョンです。`dependencies` 引数に依存ライブラリのリストを指定します。
(defproject demo "0.1.0-SNAPSHOT"
:description "A demo sound"
:url "http://github.com/TakesxiSximada/TIL"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:main demo.core
:dependencies [[org.clojure/clojure "1.8.0"]
[overtone "0.10.1"]
])
依存ライブラリをインストールするために `lein deps` を実行します。
demoコードを実行する
プロジェクトを作成した時にsrc/demo/core.cljが作成されています。ここにコードを記述します。
clojure:src/demo/core.clj::
(ns demo.core
(:gen-class main true)
(:refer-clojure :exclude [inst?])
(:require [overtone.core]
[overtone.api]
[overtone.sc.server]
[overtone.libs.deps]
[overtone.studio.mixer]))
(overtone.api/immigrate-overtone-api)
(defn -main []
(overtone.sc.server/sc-osc-debug-on)
(when (overtone.sc.server/server-disconnected?)
(overtone.studio.mixer/boot-server-and-mixer))
(overtone.core/demo (overtone.core/sin-osc 440)))
書いたコードを実行します。
lein run
音がなったら成功です。