Overtoneで音楽をコーディング時の指針メモ
Overtoneで音楽を鳴らして遊んでいるときにコーディングに関して感じたことのメモ
Overtoneのチュートリアルにあるswingerメソッドはat関数を何度も書いていて冗長
(defn swinger [beat] (at (metro beat) (o-hat)) (at (metro (inc beat)) (c-hat)) (at (metro (+ 1.65 beat)) (c-hat)) (apply-at (metro (+ 2 beat)) #'swinger (+ 2 beat) []))
Swing · overtone/overtone Wiki · GitHub
音の進行をコレクションで表現し、その要素に対して関数を作用させて演奏させられるとスマート。
例えば"音の長さ", "音"のvectorを要素とするリスト(..., [nome, sound], ...)
に
別のチュートリアルにあるlooperメソッドのようなものを作用させるなど
(defn looper [nome sound] (let [beat (nome)] (at (nome beat) (sound)) (apply-by (nome (inc beat)) looper nome sound [])))
Metronome and sequencing · overtone/overtone Wiki · GitHub
また、視点をもう一つ高くして、Aメロ,Bメロ, サビなどのまとまりに作用させる関数を用意するとよりスマートになりそう。