Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
MIDI messages in MIDI files. They are not a superset of the messages, that are used for real-time communication between MIDI devices. For these refer to Sound.MIDI.Message. Namely System Common and System Real Time messages are missing. If you need both real-time and file messages (say for ALSA sequencer), you need a custom datatype.
Synopsis
- data T
- get :: C parser => Fragile (T parser) T
- put :: (Compression compress, C writer) => T -> T compress writer
- type TrackEvent = (ElapsedTime, T)
- getTrackEvent :: C parser => Fragile (T parser) TrackEvent
- type ElapsedTime = Integer
- fromElapsedTime :: ElapsedTime -> Integer
- toElapsedTime :: Integer -> ElapsedTime
- mapBody :: (T -> T) -> TrackEvent -> TrackEvent
- maybeMIDIEvent :: T -> Maybe T
- maybeMetaEvent :: T -> Maybe T
- maybeVoice :: T -> Maybe (Channel, T)
- mapVoice :: (T -> T) -> T -> T
Documentation
Instances
Arbitrary T Source # | |
Show T Source # | |
Eq T Source # | |
Ord T Source # | |
C T Source # | |
Defined in Sound.MIDI.Message.Class.Check | |
C T Source # | |
Defined in Sound.MIDI.Message.Class.Construct | |
C T Source # | |
Defined in Sound.MIDI.Message.Class.Query |
put :: (Compression compress, C writer) => T -> T compress writer Source #
The following functions encode various T
elements
into the raw data of a standard MIDI file.
type TrackEvent = (ElapsedTime, T) Source #
getTrackEvent :: C parser => Fragile (T parser) TrackEvent Source #
Each event is preceded by the delta time: the time in ticks between the last event and the current event. Parse a time and an event, ignoring System Exclusive messages.
type ElapsedTime = Integer Source #
fromElapsedTime :: ElapsedTime -> Integer Source #
toElapsedTime :: Integer -> ElapsedTime Source #
mapBody :: (T -> T) -> TrackEvent -> TrackEvent Source #