overtone

lambdam 2018-10-18T21:57:35.000100Z

Hello, I'm just discovering Overtone and am very surprised about the fact that I have to import overtone.live with use and not with require. When I macroexpand demo, I see three symbols that are not namespaced : out, hold and FREE Thus, the following code doesn't work :

(ns overtone-demo.core
  (:require [overtone.live :as ol]))

(ol/demo 2 (ol/sin-osc 440))
and when I macroexpand, I get:
((overtone.sc.synth/synth
   "audition-synth"
   (out 0 (hold (ol/sin-osc 440) 2 :done FREE))))

lambdam 2018-10-18T22:12:05.000100Z

If I understand well, this macro is non-hygienic. I'm forced to do it this way:

(ns overtone-demo.core
  (:use [overtone.live]))

(demo 2 (sin-osc 440))
and then it works.

lambdam 2018-10-18T22:13:09.000100Z

From https://github.com/overtone/overtone/blob/f6d414f884f1b6d3166195b49276174efddf2cf2/src/overtone/sc/synth.clj#L668 we can clearly see the non-syntax-quoted variables.

lambdam 2018-10-18T22:18:34.000100Z

@channel Is it a design purpose? It feels weird.