-- | 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.Ugen

-- | Parameter (name,value) pairs.
zitaRev_param :: Num n => [(String,n,(n,n,String))]
zitaRev_param :: forall n. Num n => [(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