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))))
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.From https://github.com/overtone/overtone/blob/f6d414f884f1b6d3166195b49276174efddf2cf2/src/overtone/sc/synth.clj#L668 we can clearly see the non-syntax-quoted variables.
@channel Is it a design purpose? It feels weird.