reactive-midyim-0.4.1: Process MIDI events via reactive-banana

Safe HaskellNone
LanguageHaskell98

Reactive.Banana.MIDI.KeySet

Synopsis

Documentation

class C set where Source #

Minimal complete definition

reset, resetSome, size, toList, index, change

Methods

reset :: State (set key value) [Boundary key value] Source #

resetSome :: Ord key => (key -> Bool) -> State (set key value) [Boundary key value] Source #

It must hold reset == resetSome (const True).

size :: set key value -> Int Source #

toList :: set key value -> [(key, value)] Source #

index :: Ord key => Int -> set key value -> Maybe (key, value) Source #

change :: Ord key => Boundary key value -> State (set key value) [Boundary key value] Source #

Instances

C SerialLatch Source #

A key is hold until n times further keys are pressed. The n-th pressed key replaces the current one.

Methods

reset :: State (SerialLatch key value) [Boundary key value] Source #

resetSome :: Ord key => (key -> Bool) -> State (SerialLatch key value) [Boundary key value] Source #

size :: SerialLatch key value -> Int Source #

toList :: SerialLatch key value -> [(key, value)] Source #

index :: Ord key => Int -> SerialLatch key value -> Maybe (key, value) Source #

change :: Ord key => Boundary key value -> State (SerialLatch key value) [Boundary key value] Source #

C GroupLatch Source #

All pressed keys are latched until a key is pressed after a pause (i.e. all keys released). For aborting the pattern you have to send a AllNotesOff or AllSoundOff message.

Methods

reset :: State (GroupLatch key value) [Boundary key value] Source #

resetSome :: Ord key => (key -> Bool) -> State (GroupLatch key value) [Boundary key value] Source #

size :: GroupLatch key value -> Int Source #

toList :: GroupLatch key value -> [(key, value)] Source #

index :: Ord key => Int -> GroupLatch key value -> Maybe (key, value) Source #

change :: Ord key => Boundary key value -> State (GroupLatch key value) [Boundary key value] Source #

C Latch Source # 

Methods

reset :: State (Latch key value) [Boundary key value] Source #

resetSome :: Ord key => (key -> Bool) -> State (Latch key value) [Boundary key value] Source #

size :: Latch key value -> Int Source #

toList :: Latch key value -> [(key, value)] Source #

index :: Ord key => Int -> Latch key value -> Maybe (key, value) Source #

change :: Ord key => Boundary key value -> State (Latch key value) [Boundary key value] Source #

C Pressed Source # 

Methods

reset :: State (Pressed key value) [Boundary key value] Source #

resetSome :: Ord key => (key -> Bool) -> State (Pressed key value) [Boundary key value] Source #

size :: Pressed key value -> Int Source #

toList :: Pressed key value -> [(key, value)] Source #

index :: Ord key => Int -> Pressed key value -> Maybe (key, value) Source #

change :: Ord key => Boundary key value -> State (Pressed key value) [Boundary key value] Source #

changeExt :: (Ord key, C set) => BoundaryExt key value -> State (set key value) [Boundary key value] Source #

class Map set where Source #

Minimal complete definition

accessMap

Methods

accessMap :: T (set key value) (Map key value) Source #

Instances

Map GroupLatch Source # 

Methods

accessMap :: T (GroupLatch key value) (Map key value) Source #

Map Latch Source # 

Methods

accessMap :: T (Latch key value) (Map key value) Source #

Map Pressed Source # 

Methods

accessMap :: T (Pressed key value) (Map key value) Source #

newtype Pressed key value Source #

Constructors

Pressed 

Fields

Instances

Map Pressed Source # 

Methods

accessMap :: T (Pressed key value) (Map key value) Source #

C Pressed Source # 

Methods

reset :: State (Pressed key value) [Boundary key value] Source #

resetSome :: Ord key => (key -> Bool) -> State (Pressed key value) [Boundary key value] Source #

size :: Pressed key value -> Int Source #

toList :: Pressed key value -> [(key, value)] Source #

index :: Ord key => Int -> Pressed key value -> Maybe (key, value) Source #

change :: Ord key => Boundary key value -> State (Pressed key value) [Boundary key value] Source #

(Show value, Show key) => Show (Pressed key value) Source # 

Methods

showsPrec :: Int -> Pressed key value -> ShowS #

show :: Pressed key value -> String #

showList :: [Pressed key value] -> ShowS #

pressed :: Pressed key value Source #

newtype Latch key value Source #

Constructors

Latch 

Fields

Instances

Map Latch Source # 

Methods

accessMap :: T (Latch key value) (Map key value) Source #

C Latch Source # 

Methods

reset :: State (Latch key value) [Boundary key value] Source #

resetSome :: Ord key => (key -> Bool) -> State (Latch key value) [Boundary key value] Source #

size :: Latch key value -> Int Source #

toList :: Latch key value -> [(key, value)] Source #

index :: Ord key => Int -> Latch key value -> Maybe (key, value) Source #

change :: Ord key => Boundary key value -> State (Latch key value) [Boundary key value] Source #

(Show value, Show key) => Show (Latch key value) Source # 

Methods

showsPrec :: Int -> Latch key value -> ShowS #

show :: Latch key value -> String #

showList :: [Latch key value] -> ShowS #

latch :: Latch key value Source #

latchChange :: Ord key => Boundary key value -> State (Latch key value) (Maybe (Boundary key value)) Source #

data GroupLatch key value Source #

Constructors

GroupLatch 

Fields

Instances

Map GroupLatch Source # 

Methods

accessMap :: T (GroupLatch key value) (Map key value) Source #

C GroupLatch Source #

All pressed keys are latched until a key is pressed after a pause (i.e. all keys released). For aborting the pattern you have to send a AllNotesOff or AllSoundOff message.

Methods

reset :: State (GroupLatch key value) [Boundary key value] Source #

resetSome :: Ord key => (key -> Bool) -> State (GroupLatch key value) [Boundary key value] Source #

size :: GroupLatch key value -> Int Source #

toList :: GroupLatch key value -> [(key, value)] Source #

index :: Ord key => Int -> GroupLatch key value -> Maybe (key, value) Source #

change :: Ord key => Boundary key value -> State (GroupLatch key value) [Boundary key value] Source #

(Show value, Show key) => Show (GroupLatch key value) Source # 

Methods

showsPrec :: Int -> GroupLatch key value -> ShowS #

show :: GroupLatch key value -> String #

showList :: [GroupLatch key value] -> ShowS #

groupLatchPressed :: T (GroupLatch key value) (Set key) Source #

groupLatchPlayed :: T (GroupLatch key value) (Map key value) Source #

data SerialLatch key value Source #

Constructors

SerialLatch 

Instances

C SerialLatch Source #

A key is hold until n times further keys are pressed. The n-th pressed key replaces the current one.

Methods

reset :: State (SerialLatch key value) [Boundary key value] Source #

resetSome :: Ord key => (key -> Bool) -> State (SerialLatch key value) [Boundary key value] Source #

size :: SerialLatch key value -> Int Source #

toList :: SerialLatch key value -> [(key, value)] Source #

index :: Ord key => Int -> SerialLatch key value -> Maybe (key, value) Source #

change :: Ord key => Boundary key value -> State (SerialLatch key value) [Boundary key value] Source #

(Show value, Show key) => Show (SerialLatch key value) Source # 

Methods

showsPrec :: Int -> SerialLatch key value -> ShowS #

show :: SerialLatch key value -> String #

showList :: [SerialLatch key value] -> ShowS #

serialLatchPlayed :: T (SerialLatch key value) (Map Int (key, value)) Source #

sizeGen :: Map set => set key value -> Int Source #

toListGen :: Map set => set key value -> [(key, value)] Source #

indexGen :: (Ord key, Map set) => Int -> set key value -> Maybe (key, value) Source #

releasePlayedKeys :: Map set => State (set key value) [Boundary key value] Source #

releaseSomeKeys :: (Ord key, Map set) => (key -> Bool) -> State (set key value) [Boundary key value] Source #

releaseKey :: key -> value -> Boundary key value Source #