myTestlll-1.0.0: Euterpea/Examples/SoundCheck.hs
{-# LANGUAGE Arrows #-}
module Euterpea.Examples.SoundCheck where
import Euterpea
sineTable = tableSinesN 16384 [1]
sawtoothTable = tableSinesN 16384
[1, 0.5, 0.3, 0.25, 0.2, 0.167, 0.14, 0.125, 0.111]
oscSine = osc sineTable 0
sine :: AudSF () Double
sine =
proc _ -> do
oscSine -< 440
sine_am :: AudSF () Double
sine_am =
proc _ -> do
amp <- oscSine -< 5
s <- oscSine -< 440
outA -< amp * s
sine_fm :: AudSF () Double
sine_fm =
proc _ -> do
frq <- oscSine -< 3
oscSine -< 330 + frq * 110 -- oscillates between 220 and 440 at 3 Hz
sine_fm2 :: AudSF () Double
sine_fm2 =
proc _ -> do
modfrq <- oscSine -< 0.1
frq <- oscSine -< 3 + modfrq * 100
oscSine -< 330 + frq * 110 -- oscillates between 220 and 440 at 3 Hz
sawtooth :: AudSF () Double
sawtooth =
proc _ -> do
osc sawtoothTable 0 -< 440
squareWave :: AudSF () Double
squareWave =
proc _ -> do
frq <- oscSine -< 1000
outA -< if frq > 0 then 0.99 else -0.99
test :: AudSF () Double -> IO ()
test = outFile "test.wav" 3.0