midi-alsa-0.2.1: Convert between datatypes of the midi and the alsa packages

Safe HaskellNone

Sound.MIDI.ALSA.Query

Synopsis

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 :: event -> Maybe (Channel, (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 :: event -> Maybe (Channel, Program)

anyController :: event -> Maybe (Channel, (Controller, Int))

pitchBend :: event -> Maybe (Channel, Int)

channelPressure :: event -> Maybe (Channel, Int)

mode :: event -> Maybe (Channel, T)

Instances

C T 
C Data 
C T 
C T 

note :: C event => event -> Maybe (Channel, (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 => event -> Maybe (Channel, (Velocity, Pitch, Bool))

Like note, but converts NoteOn p 0 to NoteOff p 64. See explicitNoteOff.

noteImplicitOff :: C event => event -> Maybe (Channel, (Velocity, Pitch, Bool))

Like note, but converts NoteOff p 64 to NoteOn p 0. See implicitNoteOff.

program :: C event => event -> Maybe (Channel, Program)

anyController :: C event => event -> Maybe (Channel, (Controller, Int))

mode :: C event => event -> Maybe (Channel, T)

pitchBend :: C event => event -> Maybe (Channel, Int)

channelPressure :: C event => event -> Maybe (Channel, Int)