| Safe Haskell | None |
|---|
Sound.MIDI.ALSA.Check
- class C event where
- note :: C event => Channel -> event -> Maybe (Velocity, Pitch, Bool)
- noteExplicitOff :: C event => Channel -> event -> Maybe (Velocity, Pitch, Bool)
- noteImplicitOff :: C event => Channel -> event -> Maybe (Velocity, Pitch, Bool)
- program :: C event => Channel -> event -> Maybe Program
- anyController :: C event => Channel -> event -> Maybe (Controller, Int)
- controller :: C event => Channel -> Controller -> event -> Maybe Int
- mode :: C event => Channel -> event -> Maybe T
- pitchBend :: C event => Channel -> event -> Maybe Int
- channelPressure :: C event => Channel -> event -> Maybe Int
Documentation
class C event where
All methods have default implementations that return Nothing.
This helps implementing event data types
that support only a subset of types of events.
Maybe a better approach is to provide type classes
for every type of event
and make C a subclass of all of them.
Methods
note :: Channel -> event -> Maybe (Velocity, Pitch, Bool)
Warning: This returns note events as they are,
that is, a NoteOff p 64 might be encoded as such or as NoteOn p 0
depending on the content of event.
For normalized results you may use noteExplicitOff.
program :: Channel -> event -> Maybe Program
anyController :: Channel -> event -> Maybe (Controller, Int)
pitchBend :: Channel -> event -> Maybe Int
channelPressure :: Channel -> event -> Maybe Int
note :: C event => Channel -> event -> Maybe (Velocity, Pitch, Bool)
Warning: This returns note events as they are,
that is, a NoteOff p 64 might be encoded as such or as NoteOn p 0
depending on the content of event.
For normalized results you may use noteExplicitOff.
noteExplicitOff :: C event => Channel -> event -> Maybe (Velocity, Pitch, Bool)
Like note, but converts NoteOn p 0 to NoteOff p 64.
See explicitNoteOff.
noteImplicitOff :: C event => Channel -> event -> Maybe (Velocity, Pitch, Bool)
Like note, but converts NoteOff p 64 to NoteOn p 0.
See implicitNoteOff.
anyController :: C event => Channel -> event -> Maybe (Controller, Int)
controller :: C event => Channel -> Controller -> event -> Maybe Int
channelPressure :: C event => Channel -> event -> Maybe Int