{-# OPTIONS_GHC -threaded #-}
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
module DobutokO.Sound.Effects.Classes.ComplexParamSet where
import DobutokO.Sound.Effects.Segment
import DobutokO.Sound.Effects.Silence
import DobutokO.Sound.Effects.Sinc
import DobutokO.Sound.Effects.Timespec
class Complex2ParamSet a b c where
set21c :: a -> b -> c
instance Complex2ParamSet a b (Duration a b) where
set21c :: a -> b -> Duration a b
set21c a
x b
y = a -> b -> Int -> Duration a b
forall a b. a -> b -> Int -> Duration a b
durationSet a
x b
y Int
3
instance Complex2ParamSet Position Float FirstTSpec where
set21c :: Position -> Float -> FirstTSpec
set21c = Position -> Float -> FirstTSpec
seconds2FstTSpec
instance Complex2ParamSet Position Int FirstTSpec where
set21c :: Position -> Int -> FirstTSpec
set21c = Position -> Int -> FirstTSpec
samples2FstTSpec
instance Complex2ParamSet Position2 Float NextTSpec where
set21c :: Position2 -> Float -> NextTSpec
set21c = Position2 -> Float -> NextTSpec
seconds2NextTSpec
instance Complex2ParamSet Position2 Int NextTSpec where
set21c :: Position2 -> Int -> NextTSpec
set21c = Position2 -> Int -> NextTSpec
samples2NextTSpec
class Complex3ParamSet a b c d where
set31c :: a -> b -> c -> d
instance Complex3ParamSet STSpecification1 Duration2 Threshold1 ATSpec where
set31c :: STSpecification1 -> Duration2 -> Threshold1 -> ATSpec
set31c = STSpecification1 -> Duration2 -> Threshold1 -> ATSpec
forall a b c. a -> b -> c -> AboveTSpec1 a b c
aboveTSpecSet1
instance Complex3ParamSet STSpecification2 Duration2 Threshold1 BTSpec where
set31c :: STSpecification2 -> Duration2 -> Threshold1 -> BTSpec
set31c = STSpecification2 -> Duration2 -> Threshold1 -> BTSpec
forall a b c. a -> b -> c -> BelowTSpec1 a b c
belowTSpecSet1
class BoolParamSet1 a b where
set1B :: Bool -> a -> b
instance BoolParamSet1 a (SincAB a) where
set1B :: Bool -> a -> SincAB a
set1B = Bool -> a -> SincAB a
forall a. Bool -> a -> SincAB a
sincABSet1
instance BoolParamSet1 a (SincTN a) where
set1B :: Bool -> a -> SincTN a
set1B = Bool -> a -> SincTN a
forall a. Bool -> a -> SincTN a
sincTNSet1
class ComplexParamSet2 a b where
set2c :: a -> a -> b -> b
instance ComplexParamSet2 a (Segment a) where
set2c :: a -> a -> Segment a -> Segment a
set2c = a -> a -> Segment a -> Segment a
forall a. a -> a -> Segment a -> Segment a
segmentSet2
class ComplexParamSet3 a b where
set3c :: a -> a -> a -> b
instance ComplexParamSet3 a (Segment a) where
set3c :: a -> a -> a -> Segment a
set3c = a -> a -> a -> Segment a
forall a. a -> a -> a -> Segment a
segmentSet3