{-# OPTIONS_GHC -threaded #-}
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
module DobutokO.Sound.Effects.Classes.FourthParam where
import DobutokO.Sound.Effects.Chorus
import DobutokO.Sound.Effects.Gain
import DobutokO.Sound.Effects.MCompand
import DobutokO.Sound.Effects.Phaser
import DobutokO.Sound.Effects.Rate
import DobutokO.Sound.Effects.Reverb
import DobutokO.Sound.Effects.Sinc
import DobutokO.Sound.Effects.Spectrogram
import DobutokO.Sound.Effects.Tempo
class FourthParam a b where
get4 :: a -> b
class FourthParamL a b where
get4L :: a -> [b]
class FourthParamM a b where
get4m :: a -> Maybe b
instance FourthParam (ChorusTail a b) a where
get4 = chorusTail1 4
instance FourthParam (Gain1 a b c d) d where
get4 = gain4
instance FourthParamM (Compand a b c d) d where
get4m = compand4
instance FourthParam (Phaser a b) a where
get4 = phaser1 4
instance FourthParam (RateH a b1 b2 b3 b4 b5 c) b3 where
get4 = rateH23
instance FourthParam (Reverb a b c d) d where
get4 = reverb4
instance FourthParam ReverbE Float where
get4 = reverb3E 4
instance FourthParam (Sinc a b c d) d where
get4 = sinc4
instance FourthParamL (Spectrogram3 a b c d e) d where
get4L = spectrogram34
instance FourthParamM (Tempo a b c d) d where
get4m = tempo4
class FifthParam a b where
get5 :: a -> b
class FifthParamL a b where
get5L :: a -> [b]
instance FifthParam (Phaser a b) a where
get5 = phaser1 5
instance FifthParam (RateH a b1 b2 b3 b4 b5 c) b4 where
get5 = rateH24
instance FifthParam ReverbE Float where
get5 = reverb3E 5
instance FifthParamL (Spectrogram3 a b c d e) e where
get5L = spectrogram35
class SixthParam a b where
get6 :: a -> b
instance SixthParam (Phaser a b) b where
get6 = phaser2
instance SixthParam (RateH a b1 b2 b3 b4 b5 c) b5 where
get6 = rateH25
instance SixthParam ReverbE Float where
get6 = reverb3E 6
class SeventhParam a b where
get7 :: a -> b
instance SeventhParam (RateH a b1 b2 b3 b4 b5 c) c where
get7 = rateH3