Karya, built on 2022-03-21T01:30:44 (patch 89d1651424c35e564138d93424a157ff87457245)
Safe HaskellSafe-Inferred

Derive.Flags

Description

Flags constants, analogous to Derive.Attrs.

Synopsis

Documentation

type Flags = Set Flag Source #

Flags are like attributes, but are used for internal communication between calls, while attributes are used for to configure a note for the instrument. Keeping them separate avoids confusing the performer with various internal attributes that have nothing to do with instrument.

newtype Flag Source #

Constructors

Flag Text 

Instances

Instances details
Show Flag Source # 
Instance details

Defined in Derive.Flags

Methods

showsPrec :: Int -> Flag -> ShowS #

show :: Flag -> String #

showList :: [Flag] -> ShowS #

DeepSeq.NFData Flag Source # 
Instance details

Defined in Derive.Flags

Methods

rnf :: Flag -> () #

Eq Flag Source # 
Instance details

Defined in Derive.Flags

Methods

(==) :: Flag -> Flag -> Bool #

(/=) :: Flag -> Flag -> Bool #

Ord Flag Source # 
Instance details

Defined in Derive.Flags

Methods

compare :: Flag -> Flag -> Ordering #

(<) :: Flag -> Flag -> Bool #

(<=) :: Flag -> Flag -> Bool #

(>) :: Flag -> Flag -> Bool #

(>=) :: Flag -> Flag -> Bool #

max :: Flag -> Flag -> Flag #

min :: Flag -> Flag -> Flag #

Pretty Flag Source # 
Instance details

Defined in Derive.Flags

has :: Flags -> Flags -> Bool Source #

Does the first argument contain the second argument?

infer_duration :: Flags Source #

This note needs to wait until postproc to figure out its duration. This is used to implement final notes, where a zero duration note at the end of a block can replace the first note of the next block.

weak :: Flags Source #

This indicates that a note can be cancelled by a coincident note. Among other things, it supports infer_duration: a note with inferred duration will replace any following note with weak.

strong :: Flags Source #

Cancel coincident notes on the same track. This is like forcing concurrent events to have weak.

ly_code :: Flags Source #

Mark events with lilypond code in them. By convention, events with zero duration and lilypond code are score directives, not notes at all. This is important because postprocessing dealing with notes might want to ignore them.