synthesizer-0.0.3: src/Test/Sound/Synthesizer/Plain/Oscillator.hs
module Test.Sound.Synthesizer.Plain.Oscillator (tests) where
import qualified Synthesizer.Plain.Oscillator as Osci
import qualified Synthesizer.Basic.Wave as Wave
-- import qualified Synthesizer.Plain.Interpolation as Interpolation
import qualified Test.Sound.Synthesizer.Plain.Wave as WaveTest
-- import qualified Test.Sound.Synthesizer.Plain.Interpolation as InterpolationTest
import Test.QuickCheck (test, {- Property, (==>), -} )
-- import Test.Utility
-- import qualified Number.NonNegative as NonNeg
-- import qualified Algebra.RealTranscendental as RealTrans
-- import qualified Algebra.Module as Module
import qualified Algebra.RealField as RealField
-- import qualified Algebra.Field as Field
-- import qualified Algebra.Ring as Ring
import qualified Algebra.Additive as Additive
import NumericPrelude
import PreludeBase
import Prelude ()
phaseShapeMod :: (RealField.C a, Eq b) => (Wave.T a b) -> a -> [a] -> Bool
phaseShapeMod wave freq phases =
Osci.phaseMod wave freq phases ==
Osci.shapeMod (Wave.phaseOffset wave) zero freq phases
phaseShapeModRational ::
WaveTest.Ring Rational -> Integer -> Integer -> [Integer] -> Bool
phaseShapeModRational w denom0 freq0 phases0 =
let denom = 1 + abs denom0
freq = freq0 % denom
phases = map (% denom) phases0
in phaseShapeMod (WaveTest.ringWave w) freq phases
tests :: [(String, IO ())]
tests =
("phaseShapeModRational", test phaseShapeModRational) :
[]