1 comment

[ 2.6 ms ] story [ 12.0 ms ] thread
I’m floored.

While I was interested in programmatic synthesis, I stopped because I found the languages (e.g. Max/MSP, pd, SuperCollider, et al.) too obtrusive. The examples are a pleasure to read:

  (defn chord-progression-time []
    (let [time (now)]
      (at time (play-chord (chord :C4 :major)))
      (at (+ 2000 time) (play-chord (chord :G3 :major)))
      (at (+ 3000 time) (play-chord (chord :F3 :sus4)))
      (at (+ 4300 time) (play-chord (chord :F3 :major)))
      (at (+ 5000 time) (play-chord (chord :G3 :major)))))