csound-expression-typed-0.2.4: src/Csound/Typed/Plugins/Audaciouseq.hs
module Csound.Typed.Plugins.Audaciouseq(
audaciousEq
) where
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']