module Sound.SC3.Lang.Control.Instrument where
import Sound.SC3.ID
data Instrument = InstrumentDef {instrument_def :: Synthdef
,send_release :: Bool}
| InstrumentName {instrument_name :: String
,send_release :: Bool}
deriving (Eq,Show)
defaultInstrument :: Synthdef
defaultInstrument =
let f = control KR "freq" 440
a = control KR "amp" 0.1
p = control KR "pan" 0
g = control KR "gate" 1
e = linen g 0.01 0.7 0.3 RemoveSynth
f3 = mce [f,f + rand 'a' (0.4) 0,f + rand 'b' 0 0.4]
l = xLine KR (rand 'c' 4000 5000) (rand 'd' 2500 3200) 1 DoNothing
z = lpf (mix (varSaw AR f3 0 0.3 * 0.3)) l * e
in synthdef "default" (out 0 (pan2 z p a))