- data Event
- isNoteOn :: Event -> Bool
- isNoteOff :: Event -> Bool
- createClient :: OpenMode -> String -> IO Client
- deleteClient :: Client -> IO ()
- createInputPort :: Client -> String -> IO Port
- createOutputPort :: Client -> String -> IO Port
- withMIDIEvents :: String -> String -> ([Event] -> IO a) -> IO a
- receiveMIDIEvent :: Client -> IO (Maybe Event)
- sendPlainEvent :: Client -> Event -> IO ()
- drainOutput :: Client -> IO ()
- initQueueTempo :: Client -> Queue -> Int -> Int -> IO ()
- withNamedQueue :: Client -> String -> (Queue -> IO a) -> IO a
- portAddress :: Client -> Port -> Address
- numAddress :: Integer -> Integer -> Address
- numAddressEither :: Integer -> Integer -> Either String Address
- data Client
- newtype Port = Port CUInt
- eventFromMIDIEvent :: Queue -> Event -> (EventType, EventDataUnion)
Documentation
data Event
deleteClient :: Client -> IO ()Source
withMIDIEvents :: String -> String -> ([Event] -> IO a) -> IO aSource
Process MIDI events from ALSA in a lazy manner. The processing function must be strict, in order to let the cleanup take place after abandoning the process.
drainOutput :: Client -> IO ()Source
Strangly ALSA returns error code 2 (No such file or directory) if the destination port does not exist.
portAddress :: Client -> Port -> AddressSource
numAddress :: Integer -> Integer -> AddressSource
eventFromMIDIEvent :: Queue -> Event -> (EventType, EventDataUnion)Source