module Main where import qualified Synthesizer.LLVM.Server.Packed.Test as ServerPackedTest import qualified Synthesizer.LLVM.Server.Packed.Run as ServerPacked import qualified Synthesizer.LLVM.Server.Scalar.Test as ServerScalarTest import qualified Synthesizer.LLVM.Server.Scalar.Run as ServerScalar import qualified LLVM.Core as LLVM import Control.Monad (when, ) part :: Int part = 106 main :: IO () main = when (part<200) (putStrLn "run 'aconnect' to connect to the MIDI controller") >> LLVM.initializeNativeTarget >> case part of 000 -> ServerScalar.pitchBend 001 -> ServerScalar.frequencyModulation 002 -> ServerScalar.keyboard 003 -> ServerScalar.keyboardStereo 004 -> ServerScalar.keyboardMulti 005 -> ServerScalar.keyboardStereoMulti 100 -> ServerPacked.frequencyModulation 101 -> ServerPacked.keyboard 102 -> ServerPacked.keyboardStereo 103 -> ServerPacked.keyboardFM 104 -> ServerPacked.keyboardFMMulti 105 -> ServerPacked.keyboardDetuneFM 106 -> ServerPacked.keyboardFilter 200 -> ServerScalarTest.pitchBend0 201 -> ServerScalarTest.pitchBend1 202 -> ServerScalarTest.pitchBend2 203 -> ServerScalarTest.sequencePress 300 -> ServerPackedTest.adsr 301 -> ServerPackedTest.sequencePlain 302 -> ServerPackedTest.sequenceLLVM 303 -> ServerPackedTest.sequencePitchBendCycle 304 -> ServerPackedTest.sequencePitchBendSimple 305 -> ServerPackedTest.sequencePitchBend 306 -> ServerPackedTest.sequenceModulated 307 -> ServerPackedTest.sequencePress 308 -> ServerPackedTest.sequenceModulatedLong 309 -> ServerPackedTest.sequenceModulatedLongFM 310 -> ServerPackedTest.sequenceModulatedRepeat 311 -> ServerPackedTest.sequenceSample 312 -> ServerPackedTest.sequenceSample1 -- leak -- 313 -> ServerPackedTest.testSequenceSample1a -- leak 320 -> ServerPackedTest.sequenceSample2 -- leak 321 -> ServerPackedTest.sequenceSample3 -- leak 322 -> ServerPackedTest.sequenceSample4 -- leak 323 -> ServerPackedTest.sequenceFM1 -- leak _ -> error "not implemented server part"