{-# OPTIONS_GHC -threaded #-}
{-# LANGUAGE CPP, FlexibleInstances #-}
module DobutokO.Sound.Effects.PassReject where
#ifdef __GLASGOW_HASKELL__
#if __GLASGOW_HASKELL__>=710
/* code that applies only to GHC 7.10.* and higher versions */
import GHC.Base (mconcat)
#endif
#endif
import Numeric (showFFloat)
import DobutokO.Sound.Effects.Specs
#ifdef __GLASGOW_HASKELL__
#if __GLASGOW_HASKELL__==708
/* code that applies only to GHC 7.8.* */
mconcat = concat
#endif
#endif
data FreqWidth a b = Fr1 a | FrW2 a b deriving Eq
instance Show (FreqWidth Freq1 Width1) where
show (Fr1 x) = show x
show (FrW2 x y) = mconcat [show x," ",show y]
type FreqW2 = FreqWidth Freq1 Width1
freqWidthC :: FreqWidth a b -> String
freqWidthC (Fr1 _) = "Fr1"
freqWidthC (FrW2 _ _) = "FrW2"
freqWidth1 :: FreqWidth a b -> a
freqWidth1 (Fr1 x) = x
freqWidth1 (FrW2 x _) = x
freqWidth2 :: FreqWidth a b -> Maybe b
freqWidth2 (Fr1 _) = Nothing
freqWidth2 (FrW2 _ y) = Just y
freqWidthSet1 :: a -> FreqWidth a b -> FreqWidth a b
freqWidthSet1 x (Fr1 _) = Fr1 x
freqWidthSet1 x (FrW2 _ y) = FrW2 x y
freqWidthSet2 :: b -> FreqWidth a b -> FreqWidth a b
freqWidthSet2 y (Fr1 x) = FrW2 x y
freqWidthSet2 y (FrW2 x _) = FrW2 x y
data Freq a = Fr a deriving Eq
instance Show (Freq Freq1) where
show (Fr x) = show x
type Freq11 = Freq Freq1
freqC :: Freq a -> String
freqC (Fr _) = "Fr"
freq1 :: Freq a -> a
freq1 (Fr x) = x
freqSet1 :: a -> Freq a -> Freq a
freqSet1 x (Fr _) = Fr x
data AllPass a = AP a deriving Eq
instance Show (AllPass FreqW2) where
show (AP x) = mconcat ["allpass ",show x]
type Allpass = AllPass FreqW2
allPass1 :: AllPass a -> a
allPass1 (AP x) = x
allPassSet1 :: a -> AllPass a -> AllPass a
allPassSet1 x (AP _) = AP x
showApQ :: Allpass -> [String]
showApQ = words . show
data BandReject a = BR a deriving Eq
instance Show (BandReject FreqW2) where
show (BR x) = mconcat ["bandreject ",show x]
type Bandreject = BandReject FreqW2
bandReject1 :: BandReject a -> a
bandReject1 (BR x) = x
bandRejectSet1 :: a -> BandReject a -> BandReject a
bandRejectSet1 x (BR _) = BR x
showBrQ :: Bandreject -> [String]
showBrQ = words . show
data BandpassPar = C0 | C deriving Eq
instance Show BandpassPar where
show C0 = ""
show C = "-c "
data BandPass a b = BP a b deriving Eq
instance Show (BandPass BandpassPar FreqW2) where
show (BP x y) = mconcat ["bandpass ",show x,show y]
type Bandpass = BandPass BandpassPar FreqW2
bandPass1 :: BandPass a b -> a
bandPass1 (BP x _) = x
bandPass2 :: BandPass a b -> b
bandPass2 (BP _ y) = y
bandPassSet1 :: a -> BandPass a b -> BandPass a b
bandPassSet1 x (BP _ y) = BP x y
bandPassSet2 :: b -> BandPass a b -> BandPass a b
bandPassSet2 y (BP x _) = BP x y
showBpQ :: Bandpass -> [String]
showBpQ = words . show
data BandPar = N0 | N deriving Eq
instance Show BandPar where
show N0 = ""
show N = "-n "
data Band a b = B a b deriving Eq
instance Show (Band BandPar FreqW2) where
show (B x y) = mconcat ["band ",show x,show y]
type Band2 = Band BandPar FreqW2
band1 :: Band a b -> a
band1 (B x _) = x
band2 :: Band a b -> b
band2 (B _ y) = y
bandSet1 :: a -> Band a b -> Band a b
bandSet1 x (B _ y) = B x y
bandSet2 :: b -> Band a b -> Band a b
bandSet2 y (B x _) = B x y
showB2Q :: Band2 -> [String]
showB2Q = words . show
data HighLowPar = HL1 | HL2 deriving Eq
instance Show HighLowPar where
show HL1 = "-1 "
show HL2 = "-2 "
data HighPass a b = HP a b deriving Eq
instance Show (HighPass HighLowPar FreqW2) where
show (HP x y) = mconcat ["highpass ",show x,show y]
type HighPass2 = HighPass HighLowPar FreqW2
highPass1 :: HighPass a b -> a
highPass1 (HP x _) = x
highPass2 :: HighPass a b -> b
highPass2 (HP _ y) = y
highPassSet1 :: a -> HighPass a b -> HighPass a b
highPassSet1 x (HP _ y) = HP x y
highPassSet2 :: b -> HighPass a b -> HighPass a b
highPassSet2 y (HP x _) = HP x y
showHpQ :: HighPass2 -> [String]
showHpQ = words . show
data LowPass a b = LP a b deriving Eq
instance Show (LowPass HighLowPar FreqW2) where
show (LP x y) = mconcat ["lowpass ",show x,show y]
type LowPass2 = LowPass HighLowPar FreqW2
lowPass1 :: LowPass a b -> a
lowPass1 (LP x _) = x
lowPass2 :: LowPass a b -> b
lowPass2 (LP _ y) = y
lowPassSet1 :: a -> LowPass a b -> LowPass a b
lowPassSet1 x (LP _ y) = LP x y
lowPassSet2 :: b -> LowPass a b -> LowPass a b
lowPassSet2 y (LP x _) = LP x y
showLpQ :: LowPass2 -> [String]
showLpQ = words . show
data Equalizer a b = Eqlz a b deriving Eq
instance Show (Equalizer FreqW2 Float) where
show (Eqlz x y) = mconcat ["equalizer ",show x," ",showFFloat Nothing y " "]
type Equaliz = Equalizer FreqW2 Float
equalizer1 :: Equalizer a b -> a
equalizer1 (Eqlz x _) = x
equalizer2 :: Equalizer a b -> b
equalizer2 (Eqlz _ y) = y
equalizerSet1 :: a -> Equalizer a b -> Equalizer a b
equalizerSet1 x (Eqlz _ y) = Eqlz x y
equalizerSet2 :: b -> Equalizer a b -> Equalizer a b
equalizerSet2 y (Eqlz x _) = Eqlz x y
showEqlQ :: Equaliz -> [String]
showEqlQ = words . show