module Synthesizer.SampleRateContext.Play where import qualified BinarySample as BinSmp import qualified Synthesizer.SampleRateContext.Signal as SigC import qualified Synthesizer.SampleRateContext.Rate as Rate import qualified Synthesizer.Physical.Signal as SigP import qualified Synthesizer.Physical.Play as PlayP import qualified Algebra.OccasionallyScalar as OccScalar import qualified Algebra.VectorSpace as VectorSpace import qualified Algebra.RealField as RealField import qualified Algebra.Field as Field auto :: (RealField.C t, BinSmp.C yv, Field.C t', OccScalar.C t t', Field.C y', OccScalar.C y y', VectorSpace.C y yv) => t' -> y' -> t' -> (Rate.T t t' -> SigC.T y y' yv) -> IO () auto freqUnit amp sampleRate proc = PlayP.auto freqUnit amp (SigP.runPlain sampleRate proc)