{- | 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