-- | Zita UGen definitions.
--
-- See hsc3/ext/faust to build the SC3 plugin.
module Sound.SC3.UGen.Bindings.HW.External.Zita where

import Sound.SC3.Common.Rate
import Sound.SC3.UGen.Bindings.HW.Construct
import Sound.SC3.UGen.Type

-- | Parameter (name,value) pairs.
zitaRev_param :: Num n => [(String,n,(n,n,String))]
zitaRev_param :: [(String, n, (n, n, String))]
zitaRev_param =
  [(String
"in_delay",n
60,(n
20,n
100,String
"lin")) -- ms
  ,(String
"lf_x",n
200,(n
50,n
1000,String
"exp"))
  ,(String
"low_rt60",n
3,(n
1,n
8,String
"exp"))
  ,(String
"mid_rt60",n
2,(n
1,n
8,String
"exp"))
  ,(String
"hf_damping",n
6000,(n
1500,n
24000,String
"exp"))
  ,(String
"eq1_freq",n
315,(n
40,n
2500,String
"exp"))
  ,(String
"eq1_level",n
0,(-n
15,n
15,String
"lin"))
  ,(String
"eq2_freq",n
1500,(n
160,n
10000,String
"exp"))
  ,(String
"eq2_level",n
0,(-n
15,n
15,String
"lin"))
  ,(String
"dry_wet_mix",n
0,(n
0,n
1,String
"lin"))
  ,(String
"level",-n
20,(-n
9,n
9,String
"lin"))
  ]

-- | ZitaRev binding.
zitaRev :: UGen -> UGen -> UGen -> UGen -> UGen -> UGen -> UGen -> UGen -> UGen -> UGen -> UGen -> UGen -> UGen -> UGen
zitaRev :: UGen
-> UGen
-> UGen
-> UGen
-> UGen
-> UGen
-> UGen
-> UGen
-> UGen
-> UGen
-> UGen
-> UGen
-> UGen
-> UGen
zitaRev UGen
in1 UGen
in2 UGen
in_delay UGen
lf_x UGen
low_rt60 UGen
mid_rt60 UGen
hf_damping UGen
eq1_freq UGen
eq1_level UGen
eq2_freq UGen
eq2_level UGen
dry_wet_mix UGen
level = [Rate] -> String -> [UGen] -> Int -> UGen
mkFilterR [Rate
AR] String
"FaustZitaRev" [UGen
in1,UGen
in2,UGen
in_delay,UGen
lf_x,UGen
low_rt60,UGen
mid_rt60,UGen
hf_damping,UGen
eq1_freq,UGen
eq1_level,UGen
eq2_freq,UGen
eq2_level,UGen
dry_wet_mix,UGen
level] Int
2