packages feed

alsa-seq-tests-0.1: test2.hs

import Sound.Alsa.Sequencer

main :: IO ()
main =
  do putStrLn "Starting."
     h <- open default_seq_name open_output Block
     set_client_name h "HS test client"
     putStrLn "Created sequencer."
     p <- create_simple_port h "one"
            (caps [cap_read,cap_subs_read]) type_midi_generic
     putStrLn "Created port."
     x <- get_client_id h
     putStrLn ("My id is: " ++ show x)
     let me = Addr { addr_client = x, addr_port = p }
     getChar
     event_output_direct h (e1 me)
     getChar
     delete_port h p
     putStrLn "Deleted port."
     close h
     putStrLn "Closed sequencer."
  `alsa_catch` \e -> putStrLn ("Problem: " ++ exception_description e)




e1 me = Event
  { ev_high_priority = False
  , ev_tag = 0
  , ev_queue = queue_direct
  , ev_timestamp = TickTime 0
  , ev_source = me
  , ev_dest = addr_subscribers
  , ev_data = NoteEv NoteOn (simple_note 0 60 100)
  }