hsc3-0.20: Help/Ugen/control.hs
-- control
sinOsc ar (control kr "freq" 440) 0 * control kr "amp" 0.1
-- control ; ir and kr and tr controls ; setting amp also triggers an envelope
let phase1 = control ir "phase1" 0
phase2 = control ir "phase2" (pi / 4)
freq1 = control kr "freq1" 450
freq2 = control kr "freq2" 900
amp1 = trigControl "amp1" 0
amp2 = trigControl "amp2" 0
env = decay2 (impulse kr 1 0 * 0.1 + mce2 amp1 amp2) 0.01 0.2
in sinOsc ar (mce2 freq1 freq2) (mce2 phase1 phase2) * env
-- control ; constructor setting index sequence
let [f,a] = control_set [control kr "freq" 440
,control kr "amp" 0.1]
in sinOsc ar f 0 * a
-- control ; contructor with control index input ; this will fail if n /= 1 (ie. 0 or 2)
let n = 1
f = control_f64 kr (Just 0) "freq" 440
a = control_f64 kr (Just n) "amp" 0.1
p = control_f64 kr Nothing "phase" 0
in sinOsc ar f p * a
---- ; set frequency and gate controls
withSc3 (sendMessage (n_set1 1 "freq" 2200))
withSc3 (sendMessage (n_set1 1 "gate" 1))
---- ; command list ui to send messages to set oscillator frequency
UI.ui_scsynth_command_list (map (\x -> n_set 1 [("freq1",55 * (x ** 2)),("amp1",0.1 * (1 / x))]) [1 .. 7])