{-# LANGUAGE NoImplicitPrelude #-}
module Synthesizer.Physical.File where

import qualified Synthesizer.Plain.File as File
import qualified Synthesizer.Basic.Binary as BinSmp

import qualified Synthesizer.Physical.Signal as SigP

import qualified Algebra.OccasionallyScalar as OccScalar
import qualified Algebra.VectorSpace        as VectorSpace
import qualified Algebra.RealField          as RealField
import qualified Algebra.Field              as Field

import System.Exit(ExitCode)

-- import NumericPrelude
import PreludeBase



writeToInt16 ::
   (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' -> FilePath -> SigP.T t t' y y' yv -> IO ExitCode
writeToInt16 freqUnit amp name sig =
   uncurry (File.writeToInt16 name) (SigP.pureData freqUnit amp sig)