Safe Haskell | Safe-Inferred |
---|
Pattern based derivation.
Synopsis
- library :: Library.Library
- module_ :: Module.Module
- c_sekar_direct :: Generator Note
- c_sekar_even :: Generator Note
- arrive_env :: Sig.Parser Bool
- pattern_doc :: Doc.Doc
- check_patterns :: [(Pattern, Text)] -> Either Text (NonEmpty Pattern)
- data DivNote a
- = DivNote !a
- | DivRest
- | DivContinue
- sekar_even :: Bool -> (ScoreTime.ScoreTime, ScoreTime.ScoreTime) -> Pattern -> [Sub.RestEvent] -> NoteDeriver
- div_realize :: ScoreTime.ScoreTime -> [DivNote a] -> Pattern -> [SubT.EventT a]
- div_extract :: [SubT.EventT (Maybe a)] -> [ScoreTime.ScoreTime] -> [DivNote a]
- drop_until_next :: (a -> Bool) -> [a] -> [a]
- sekar_direct_arrive :: (ScoreTime.ScoreTime, ScoreTime.ScoreTime) -> NonEmpty Pattern -> [Sub.RestEvent] -> NoteDeriver
- add_last_note_flags :: NoteDeriver -> NoteDeriver
- sum_duration :: [SubT.EventT a] -> ScoreTime.ScoreTime
- sekar_direct :: (ScoreTime.ScoreTime, ScoreTime.ScoreTime) -> NonEmpty Pattern -> [Sub.RestEvent] -> NoteDeriver
- realize_groups :: NonEmpty Pattern -> [Sub.RestEvent] -> [Sub.RestEvent]
- index_with :: NonEmpty a -> NonEmpty b -> b
- split_groups :: Int -> [a] -> [[a]]
- type Pattern = [(Index, Element)]
- type Index = Int
- data Element
- pattern_length :: Pattern -> Int
- make_pattern :: Text -> Deriver Pattern
- realize :: ScoreTime.ScoreTime -> [Sub.RestEvent] -> Pattern -> [Sub.RestEvent]
Documentation
even subdivision
sekar_even :: Bool -> (ScoreTime.ScoreTime, ScoreTime.ScoreTime) -> Pattern -> [Sub.RestEvent] -> NoteDeriver Source #
div_realize :: ScoreTime.ScoreTime -> [DivNote a] -> Pattern -> [SubT.EventT a] Source #
div_extract :: [SubT.EventT (Maybe a)] -> [ScoreTime.ScoreTime] -> [DivNote a] Source #
Convert SubT.EventT
s 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.
sum_duration :: [SubT.EventT a] -> ScoreTime.ScoreTime Source #
sekar_direct :: (ScoreTime.ScoreTime, ScoreTime.ScoreTime) -> NonEmpty Pattern -> [Sub.RestEvent] -> NoteDeriver Source #
Sekaran derivation via direct substitution of the sub-events.
realize_groups :: NonEmpty Pattern -> [Sub.RestEvent] -> [Sub.RestEvent] Source #
index_with :: NonEmpty a -> NonEmpty b -> b Source #
split_groups :: Int -> [a] -> [[a]] Source #
pattern_length :: Pattern -> Int Source #
realize :: ScoreTime.ScoreTime -> [Sub.RestEvent] -> Pattern -> [Sub.RestEvent] Source #
Apply the pattern to the events.