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

Derive.C.Post.Idiom

Description

Idiomatic things for various instruments.

Synopsis

# pizz arp

Arguments

 :: RealTime.RealTime events starting closer than this amount are considered simultaneous -> (Score.Event -> Bool) only process events that pass this predicate -> (NonEmpty Score.Event -> Deriver [Score.Event]) process simultaneous events -> Stream.Stream Score.Event -> NoteDeriver

# avoid overlap

For each event, get the next events with the same instrument and starting pitch.

# zero dur mute

See DUtil.zero_duration for a version that can apply any kind of transformation. This one is limited to attrs because it's a postproc, and it's a postproc because otherwise it's hard to tell if a note is really zero duration and not just an infer-duration note.

# extend duration

Don't overlap with another note with the same pitch, as in avoid_overlap.

# apply attributes

For all controls that start with + and are positive during the event start, add those attributes to the event.

TODO a possible variation would be to take 0<v<1 as a probability of applying the attribute.