Karya, built on 2018-05-31T02:46:59 (patch 0a1a35479c514820d77330ae8a978975ba22a47a)

Safe HaskellNone

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
Eq Flag # 
Instance details

Defined in Derive.Flags

Methods

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

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

Ord Flag # 
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 #

Show Flag # 
Instance details

Defined in Derive.Flags

Methods

showsPrec :: Int -> Flag -> ShowS #

show :: Flag -> String #

showList :: [Flag] -> ShowS #

DeepSeq.NFData Flag # 
Instance details

Defined in Derive.Flags

Methods

rnf :: Flag -> () #

Pretty Flag # 
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.