packages feed

synthesizer-alsa-0.3: src/Synthesizer/Storable/ALSA/Server.hs

module Main where

import qualified Synthesizer.Storable.ALSA.Server.Run as Run
import qualified Synthesizer.Storable.ALSA.Server.Test as Test
import Synthesizer.Storable.ALSA.Server.Common
          (Real, play, sampleRate, chunkSize, periodTime, )

import qualified Synthesizer.Basic.Wave          as Wave

import qualified Synthesizer.Storable.ALSA.Play as Play
import qualified Synthesizer.Storable.Oscillator  as OsciSt
import qualified Synthesizer.Storable.Signal      as SigSt

import qualified Algebra.Additive  as Additive

import NumericPrelude.Numeric (zero, )
import Prelude hiding (Real, round, break, id, (.), )


{-
This program has still a very slowly growing memory leak.
-}
main :: IO ()
main =
   case 110::Int of
      000 -> Play.auto (periodTime::Real) 44100 $
                OsciSt.static chunkSize Wave.sine zero (800/sampleRate::Real)
      001 -> print Test.keyboard3
      002 -> play (periodTime::Real) sampleRate Test.keyboard3
      003 -> Test.speed
      004 -> Test.frequency1
      005 -> Test.frequency2
      006 -> Test.frequency3
{-
      007 -> Test.frequency4
-}
      008 -> Test.keyboard1
      009 -> SigSt.writeFile "test.f32" Test.keyboard2
      010 -> SigSt.writeFile "test.f32" Test.keyboard3
      011 -> SigSt.writeFile "test.f32" Test.keyboard4
      012 -> SigSt.writeFile "test.f32" Test.keyboard5
{-
      013 -> Test.keyboard6
      014 -> Test.keyboard7
-}
      015 -> Test.arrangeSpaceLeak0
      016 -> Test.arrangeSpaceLeak1
      018 -> Test.arrangeSpaceLeak3
      019 -> Test.arrangeSpaceLeak4
      020 -> Test.chordSpaceLeak1
--      021 -> Test.chordSpaceLeak2
--      022 -> Test.chordSpaceLeak3
--      023 -> Test.chordSpaceLeak4
      023 -> Test.sequencePitchBend
      024 -> Test.sequencePitchBend1
      025 -> Test.sequencePitchBend2
      026 -> Test.sequencePitchBend3
      027 -> Test.sequencePitchBend4
      028 -> Test.sequencePitchBend4a
      029 -> Test.sequencePitchBend4b
      030 -> Test.sequencePitchBend4c
      031 -> Test.sequencePitchBend4d
      032 -> Test.sequencePitchBend4e
      033 -> Test.sequencePitchBend5
      040 -> Test.sequenceStaccato
      050 -> Test.speed
      051 -> Test.speedChunky
      052 -> Test.speedArrange
      100 -> Run.pitchBend
      101 -> Run.volumeFrequency
      102 -> Run.keyboard
      103 -> Run.keyboardMulti
      104 -> Run.keyboardStereo
      105 -> Run.keyboardPitchbend
      106 -> Run.keyboardFM
      107 -> Run.keyboardDetuneFM
      108 -> Run.keyboardFilter
      109 -> Run.keyboardSample
      110 -> Run.keyboardVariousStereo
      111 -> Run.keyboardSampleTFM
      112 -> Run.keyboardNoisyTone
      113 -> Run.keyboardFilteredNoisyTone
      _   -> error "not implemented server part"