csound-expression-typed-0.2.0.0: src/Csound/Typed/Plugins/Audaciouseq.hs
module Csound.Typed.Plugins.Audaciouseq(
audaciousEq
) where
import Data.Boolean
import Control.Monad.Trans.Class
import Control.Applicative
import Csound.Dynamic
import Csound.Typed.Types
import Csound.Typed.GlobalState
import qualified Csound.Typed.GlobalState.Elements as E(audaciouseqPlugin)
-------------------------------------------------------------------------------
-- | opcode audaciouseq, a, kkkkkkkkkka
--
-- inputs: kgain1, kgain2, kgain3, kgain4, kgain5,
-- kgain6, kgain7, kgain8, kgain9, kgain10 ain
--
-- 10-band EQ
-- Input: kgain1, kgain2, ... kgain10, asig
-- Output: aout
--
-- 10 kgain arguments maps to each band
-- Bands are: 31.25, 52.6, 125, 500, 1000,
-- 2000, 4000, 8000, 16000
--
audaciousEq :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig
audaciousEq kgain1 kgain2 kgain3 kgain4 kgain5 kgain6 kgain7 kgain8 kgain9 kgain10 ain = fromGE $ do
addUdoPlugin E.audaciouseqPlugin
f <$> toGE ain <*> toGE kgain1 <*> toGE kgain2 <*> toGE kgain3 <*> toGE kgain4 <*> toGE kgain5 <*> toGE kgain6 <*> toGE kgain7 <*> toGE kgain8 <*> toGE kgain9 <*> toGE kgain10
where f ain kgain1 kgain2 kgain3 kgain4 kgain5 kgain6 kgain7 kgain8 kgain9 kgain10 = opcs "audaciouseq" [(Ar, [Ar, Kr, Kr, Kr, Kr, Kr, Kr, Kr, Kr, Kr, Kr])] [ain, kgain1, kgain2, kgain3, kgain4, kgain5, kgain6, kgain7, kgain8, kgain9, kgain10]