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)
}