{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}

{-# LANGUAGE NoIncoherentInstances #-}
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE NoUndecidableInstances #-}

module Vivid.UGens.Filters (
     module Vivid.UGens.Filters.BEQSuite
   , module Vivid.UGens.Filters.Linear
   , module Vivid.UGens.Filters.Nonlinear
   , module Vivid.UGens.Filters.Pitch

---   , lagUD
---   , lag2UD
---   , lag3UD
   , moogFF
   ) where

import Vivid.SC.SynthDef.Types (CalculationRate(..))
import Vivid.SynthDef
import Vivid.SynthDef.FromUA
import Vivid.UGens.Args

import Vivid.UGens.Filters.BEQSuite
import Vivid.UGens.Filters.Linear
import Vivid.UGens.Filters.Nonlinear
import Vivid.UGens.Filters.Pitch

--- lagUD ::
--- lagUD =
--- lag2UD ::
--- lag2UD =
--- lag3UD ::
--- lag3UD =

moogFF :: (Args '["in"] '["freq", "gain", "reset"] a) => a -> SDBody a Signal
moogFF :: a -> SDBody a Signal
moogFF = String
-> CalculationRate
-> Vs '["in", "freq", "gain", "reset"]
-> (UA "freq" (SDBodyArgs a), UA "gain" (SDBodyArgs a),
    UA "reset" (SDBodyArgs a))
-> a
-> SDBody a Signal
forall (tags :: [Symbol]) optional userSupplied (args :: [Symbol]).
(GetSymbolVals (Vs tags), FromUA optional, FromUA userSupplied,
 SDBodyArgs optional ~ SDBodyArgs userSupplied,
 SDBodyArgs optional ~ args) =>
String
-> CalculationRate
-> Vs tags
-> optional
-> userSupplied
-> SDBody' args Signal
makeUGen
   String
"MoogFF" CalculationRate
AR
   (Vs '["in", "freq", "gain", "reset"]
forall (a :: [Symbol]). Vs a
Vs::Vs '["in", "freq", "gain", "reset"])
   (Float -> UA "freq" (SDBodyArgs a)
forall s (as :: [Symbol]). ToSig s as => s -> UA "freq" as
freq_ (Float
100::Float), Float -> UA "gain" (SDBodyArgs a)
forall s (as :: [Symbol]). ToSig s as => s -> UA "gain" as
gain_ (Float
2::Float), Float -> UA "reset" (SDBodyArgs a)
forall s (as :: [Symbol]). ToSig s as => s -> UA "reset" as
reset_ (Float
0::Float))