Bang-0.1.0.5: A Drum Machine DSL for Haskell

Safe HaskellNone
LanguageHaskell2010

System.MacOSX.CoreMIDI

Description

Low-level binding to the CoreMIDI services present in Mac OS X. Error handling is via fail-s in the IO monad.

Synopsis

Documentation

enumerateDevices :: IO [MIDIDeviceRef]

Note: If a client iterates through the devices and entities in the system, it will not ever visit any virtual sources and destinations created by other clients. Also, a device iteration will return devices which are offline (were present in the past but are not currently present), while iterations through the system's sources and destinations will not include the endpoints of offline devices.

Thus clients should usually use enumerateSources and enumerateDestinations, rather iterating through devices and entities to locate endpoints.

enumerateSources :: IO [Source]

Enumaretes the MIDI sources present.

enumerateDestinations :: IO [Destination]

Enumaretes the MIDI destinations present.

class MIDIObject a => MIDIHasName a where

MIDI objects which can have a name, model name and manufacturer

Minimal complete definition

Nothing

Methods

getName :: a -> IO String

getModel :: a -> IO String

getManufacturer :: a -> IO String

newSource :: MIDIClientRef -> String -> IO Source

Creates a new MIDI source with the given name.

newDestination :: MIDIClientRef -> String -> IO Destination

Creates a new MIDI destination with the given name.

disposeEndpoint :: Endpoint a => a -> IO ()

Disposes an existing MIDI endpoint.

newClient :: String -> IO MIDIClientRef

Creates a new MIDI client with the given name.

disposeClient :: MIDIClientRef -> IO ()

Disposes an existing MIDI client.

newInputPort :: MIDIClientRef -> String -> FunPtr (MIDIReadProc r s) -> Ptr r -> IO MIDIPortRef

Creates a new input port.

newOutputPort :: MIDIClientRef -> String -> IO MIDIPortRef

Creates a new output port.

disposePort :: MIDIPortRef -> IO ()

Disposes an existing port.

connectToSource :: MIDIPortRef -> Source -> Ptr a -> IO ()

Connects an input port to a source.

disconnectFromSource :: MIDIPortRef -> Source -> IO ()

Disconnects an input port from a source.

midiSend :: MIDIPortRef -> Destination -> ShortMessage -> IO ()

Sends a short message with timestamp "now".

midiSend' :: MIDIPortRef -> Destination -> MIDITimeStamp -> ShortMessage -> IO ()

Sends a short message with the given timestamp.

midiSendList :: MIDIPortRef -> Destination -> [ShortMessage] -> IO ()

Sends a list of short messages with timestamp "now".

midiSendList' :: MIDIPortRef -> Destination -> MIDITimeStamp -> [ShortMessage] -> IO ()

Sends a list of short messages with the given timestamp.

midiSendSysEx :: Endpoint a => a -> [Word8] -> IO ()

type MIDIReadProc r s = Ptr MIDIPacket -> Ptr r -> Ptr s -> IO ()

r is readProcRefCon (The refCon you passed to MIDIInputPortCreate or MIDIDestinationCreate); s is srcConnRefCon (A refCon you passed to MIDIPortConnectSource, which identifies the source of the data).