{-# LANGUAGE TypeFamilies, MultiParamTypeClasses, FlexibleContexts #-} module Language.XDsp.Semantics.Extras.Delay ( Delay (..) ,DelayNet (..) ) where import Language.XDsp.Semantics.Core import Control.Applicative -- --------------------------------- -- --------------------------------- -- delay networks class Dsp repr => Delay repr where delaySamp :: ASig repr -> repr (ASig repr) vdelay3 :: ASig repr -> ASig repr -> INum repr -> repr (ASig repr) class Dsp repr => DelayNet repr where type DelayN repr :: * -> * runDelay :: INum repr -> ASig repr -> DelayN repr a -> repr a tapK :: KSig repr -> DelayN repr (ASig repr) tapA :: ASig repr -> DelayN repr (ASig repr) tapI :: INum repr -> DelayN repr (ASig repr)