Karya, built on 2020-11-26T21:03:17 (patch 23b5be2d53a9e8e7d6136cda5aae2849abe5cded)
Safe HaskellNone

Derive.C.Bali.Sekar

Description

Pattern based derivation.

Synopsis

Documentation

even subdivision

data DivNote a Source #

Constructors

DivNote !a 
DivRest 
DivContinue 

Instances

Instances details
Functor DivNote # 
Instance details

Defined in Derive.C.Bali.Sekar

Methods

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

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

Eq a => Eq (DivNote a) # 
Instance details

Defined in Derive.C.Bali.Sekar

Methods

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

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

Show a => Show (DivNote a) # 
Instance details

Defined in Derive.C.Bali.Sekar

Methods

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

show :: DivNote a -> String #

showList :: [DivNote a] -> ShowS #

div_extract :: [SubT.EventT (Maybe a)] -> [ScoreTime.ScoreTime] -> [DivNote a] Source #

Convert SubT.EventTs 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 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 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

Instances details
Show Element # 
Instance details

Defined in Derive.C.Bali.Sekar

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

Apply the pattern to the events.