module Csound.Typed.Plugins.AmbiRow( ambiRow, ambiRowMp3 ) where 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(ambiRowPlugin, ambiRowMp3Plugin) ambiRow :: Arr1 Str -> Sig -> Sig -> D -> Sig2 ambiRow (Arr sFiles) kSpeed kIndex iFadeTime = toTuple $ fmap ($ 2) $ do addUdoPlugin E.ambiRowPlugin f sFiles <$> toGE kSpeed <*> toGE kIndex <*> toGE iFadeTime where f sFiles kSpeed kIndex iFadeTime = mopcs "AmbiRow" ([Ar, Ar], [Sr, Kr, Kr, Ir]) [inlineVar $ head sFiles, kSpeed, kIndex, iFadeTime] ambiRowMp3 :: Arr1 Str -> Sig -> Sig -> D -> Sig2 ambiRowMp3 (Arr sFiles) kSpeed kIndex iFadeTime = toTuple $ fmap ($ 2) $ do addUdoPlugin E.ambiRowMp3Plugin f sFiles <$> toGE kSpeed <*> toGE kIndex <*> toGE iFadeTime where f sFiles kSpeed kIndex iFadeTime = mopcs "AmbiRowMp3" ([Ar, Ar], [Sr, Kr, Kr, Ir]) [inlineVar $ head sFiles, kSpeed, kIndex, iFadeTime]