« ^ »

overtoneを使って音を出す

所要時間: 約 2分

Overtoneは、シンセサイザーを設計し、音楽と共同作業するためのオープンソースのツールキットです。

Overtone is an Open Source toolkit for designing synthesizers and collaborating with music.

https://github.com/overtone/overtone より引用

clojureを使って音を鳴らしたり、音声を合成できます。今回はclojureのプロジェクトを作るところから音を鳴らすところまでを行います。

プロジェクトを作成する

demoという名前でプロジェクトを作成します。

lein new demo --to-dir .
プロジェクトを作成する

プロジェクト作成時の出力::

--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` を実行します。

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

音がなったら成功です。