Karya, built on Mon Jul 24 11:39:07 PDT 2017 (patch 33511aca01257b76b88de7c7a2763b7a965c084e)

Safe HaskellNone

Derive.Call.Bali.Sekar

Contents

Description

Pattern based derivation.

Synopsis

Documentation

even subdivision

data DivNote a Source #

Constructors

DivNote !a 
DivRest 
DivContinue 

Instances

Functor DivNote # 

Methods

fmap :: (a -> b) -> DivNote a -> DivNote b #

(<$) :: a -> DivNote b -> DivNote a #

Eq a => Eq (DivNote a) # 

Methods

(==) :: DivNote a -> DivNote a -> Bool #

(/=) :: DivNote a -> DivNote a -> Bool #

Show a => Show (DivNote a) # 

Methods

showsPrec :: Int -> DivNote a -> ShowS #

show :: DivNote a -> String #

showList :: [DivNote a] -> ShowS #

div_extract :: [Sub.GenericEvent (Maybe a)] -> [ScoreTime.ScoreTime] -> [DivNote a] Source #

Convert Sub.Events to DivNotes at the given times.

drop_until_next :: (a -> Bool) -> [a] -> [a] Source #

Drop until the predicate is true for the next event. This is like dropWhile (not . f), but you get the element before the predicate becomes false.

direct substitution

sekar_direct_arrive :: (ScoreTime.ScoreTime, ScoreTime.ScoreTime) -> NonEmpty.NonEmpty Pattern -> [Sub.RestEvent] -> NoteDeriver Source #

Like sekar_direct, but expect sub-events excluding the start and including the end, and align the last note to the end of the call.

sekar_direct :: (ScoreTime.ScoreTime, ScoreTime.ScoreTime) -> NonEmpty.NonEmpty Pattern -> [Sub.RestEvent] -> NoteDeriver Source #

Sekaran derivation via direct substitution of the sub-events.

split_groups :: Int -> [a] -> [[a]] Source #

type Index = Int Source #

Index into melody notes.

data Element Source #

Constructors

Note 
Rest 

Instances

realize :: ScoreTime.ScoreTime -> [Sub.RestEvent] -> Pattern -> [Sub.RestEvent] Source #

Apply the pattern to the events.