-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Haskell LilyPond
--
-- A very lightweight embedding of the lilypond typesetting model in
-- haskell
@package hly
@version 0.1
module Music.LilyPond.Light.Model
data Version
Version :: String -> Version
data Units
MM :: Units
CM :: Units
data Length
Length :: Double -> Units -> Length
data Paper
Paper :: Length -> Length -> Length -> Length -> Length -> Length -> Length -> Length -> Bool -> Bool -> Length -> Maybe Integer -> Length -> Bool -> Paper
binding_offset :: Paper -> Length
bottom_margin :: Paper -> Length
indent :: Paper -> Length
inner_margin :: Paper -> Length
left_margin :: Paper -> Length
outer_margin :: Paper -> Length
paper_width :: Paper -> Length
paper_height :: Paper -> Length
ragged_last :: Paper -> Bool
ragged_last_bottom :: Paper -> Bool
right_margin :: Paper -> Length
systems_per_page :: Paper -> Maybe Integer
top_margin :: Paper -> Length
two_sided :: Paper -> Bool
data Header
Header :: String -> String -> String -> String -> String -> Header
dedication :: Header -> String
title :: Header -> String
subtitle :: Header -> String
composer :: Header -> String
tagline :: Header -> String
data Clef_T
Bass :: Clef_T
Tenor :: Clef_T
Alto :: Clef_T
Treble :: Clef_T
Percussion :: Clef_T
data Articulation_T
Accent :: Articulation_T
Arpeggio :: Articulation_T
ArpeggioDown :: Articulation_T
ArpeggioNeutral :: Articulation_T
ArpeggioUp :: Articulation_T
DownBow :: Articulation_T
Fermata :: Articulation_T
Flageolet :: Articulation_T
Glissando :: Articulation_T
Harmonic :: Articulation_T
LaissezVibrer :: Articulation_T
Marcato :: Articulation_T
Open :: Articulation_T
Portato :: Articulation_T
Staccato :: Articulation_T
StemTremolo :: Integer -> Articulation_T
Stopped :: Articulation_T
Tenuto :: Articulation_T
Trill :: Articulation_T
UpBow :: Articulation_T
data Dynamic_T
PPPP :: Dynamic_T
PPP :: Dynamic_T
Pianissimo :: Dynamic_T
Piano :: Dynamic_T
MezzoPiano :: Dynamic_T
MezzoForte :: Dynamic_T
Forte :: Dynamic_T
Fortissimo :: Dynamic_T
FFF :: Dynamic_T
FFFF :: Dynamic_T
FP :: Dynamic_T
SFZ :: Dynamic_T
Espressivo :: Dynamic_T
Begin_Crescendo :: Dynamic_T
Begin_Decrescendo :: Dynamic_T
End_Dynamic :: Dynamic_T
data Phrasing_T
Begin_Slur :: Phrasing_T
End_Slur :: Phrasing_T
Begin_PhrasingSlur :: Phrasing_T
End_PhrasingSlur :: Phrasing_T
Begin_Beam :: Phrasing_T
End_Beam :: Phrasing_T
SustainOn :: Phrasing_T
SustainOff :: Phrasing_T
data Annotation
Articulation :: Articulation_T -> Annotation
Dynamic :: Dynamic_T -> Annotation
Phrasing :: Phrasing_T -> Annotation
Begin_Tie :: Annotation
Above :: Annotation
Below :: Annotation
Text :: String -> Annotation
ReminderAccidental :: Annotation
CautionaryAccidental :: Annotation
CompositeAnnotation :: [Annotation] -> Annotation
data Bar_T
NormalBarline :: Bar_T
DoubleBarline :: Bar_T
LeftRepeatBarline :: Bar_T
RightRepeatBarline :: Bar_T
FinalBarline :: Bar_T
data Command_T
AutoBeamOff :: Command_T
Bar :: Bar_T -> Command_T
BarlineCheck :: Command_T
BarNumberCheck :: Integer -> Command_T
Break :: Command_T
Change :: String -> Command_T
DynamicDown :: Command_T
DynamicNeutral :: Command_T
DynamicUp :: Command_T
NoBreak :: Command_T
NoPageBreak :: Command_T
Octavation :: Integer -> Command_T
PageBreak :: Command_T
Partial :: Duration -> Command_T
StemDown :: Command_T
StemNeutral :: Command_T
StemUp :: Command_T
TupletDown :: Command_T
TupletNeutral :: Command_T
TupletUp :: Command_T
User :: String -> Command_T
VoiceOne :: Command_T
VoiceTwo :: Command_T
VoiceThree :: Command_T
VoiceFour :: Command_T
type TimeSignature = (Integer, Integer)
type Tuplet_T = (Integer, Integer)
data Tuplet_Mode
Normal_Tuplet :: Tuplet_Mode
Scale_Durations :: Tuplet_Mode
data Music
Note :: Pitch -> (Maybe Duration) -> [Annotation] -> Music
note_pitch :: Music -> Pitch
note_duration :: Music -> (Maybe Duration)
note_annotations :: Music -> [Annotation]
Chord :: [Music] -> Duration -> [Annotation] -> Music
chord_notes :: Music -> [Music]
chord_duration :: Music -> Duration
chord_annotations :: Music -> [Annotation]
Tremolo :: (Music, Music) -> Integer -> Music
Rest :: Duration -> [Annotation] -> Music
MMRest :: Integer -> TimeSignature -> [Annotation] -> Music
Skip :: Duration -> Music
Repeat :: Integer -> Music -> Music
Tuplet :: Tuplet_Mode -> Tuplet_T -> Music -> Music
Grace :: Music -> Music
AfterGrace :: Music -> Music -> Music
Join :: [Music] -> Music
Clef :: Clef_T -> Int -> Music
Time :: TimeSignature -> Music
Key :: Note_T -> (Maybe Alteration_T) -> Mode_T -> Music
Tempo :: Duration -> Integer -> Music
Command :: Command_T -> Music
Polyphony :: Music -> Music -> Music
Empty :: Music
type Staff_Name = (String, String)
type Staff_ID = String
data Staff_T
Normal_Staff :: Staff_T
Rhythmic_Staff :: Staff_T
data Part
Part :: (Maybe String) -> [Music] -> Part
MultipleParts :: [[Music]] -> Part
data Staff_Set_T
ChoirStaff :: Staff_Set_T
GrandStaff :: Staff_Set_T
PianoStaff :: Staff_Set_T
StaffGroup :: Staff_Set_T
StaffGroup_SquareBracket :: Staff_Set_T
type Staff_Scalar = Int
data Staff_Settings
Staff_Settings :: Staff_T -> Staff_ID -> Staff_Scalar -> Staff_Settings
data Staff
Staff :: Staff_Settings -> Staff_Name -> Part -> Staff
Staff_Set :: Staff_Set_T -> Staff_Name -> [Staff] -> Staff
data Score_Settings
Score_Settings :: Bool -> Score_Settings
independent_time_signatures :: Score_Settings -> Bool
data Score
Score :: Score_Settings -> [Staff] -> Score
data Work
Work :: Version -> Paper -> Header -> Score -> Work
work_version :: Work -> Version
work_paper :: Work -> Paper
work_header :: Work -> Header
work_score :: Work -> Score
instance Eq Version
instance Show Version
instance Eq Units
instance Show Units
instance Eq Length
instance Show Length
instance Eq Paper
instance Show Paper
instance Eq Header
instance Show Header
instance Eq Clef_T
instance Ord Clef_T
instance Show Clef_T
instance Eq Articulation_T
instance Show Articulation_T
instance Eq Dynamic_T
instance Show Dynamic_T
instance Eq Phrasing_T
instance Show Phrasing_T
instance Eq Annotation
instance Show Annotation
instance Eq Bar_T
instance Show Bar_T
instance Eq Command_T
instance Show Command_T
instance Eq Tuplet_Mode
instance Show Tuplet_Mode
instance Eq Music
instance Show Music
instance Eq Staff_T
instance Show Staff_T
instance Eq Part
instance Show Part
instance Eq Staff_Set_T
instance Show Staff_Set_T
instance Eq Staff_Settings
instance Show Staff_Settings
instance Eq Staff
instance Show Staff
instance Eq Score_Settings
instance Show Score_Settings
instance Eq Score
instance Show Score
instance Eq Work
instance Show Work
instance Monoid Music
module Music.LilyPond.Light.Output.LilyPond
ly_work :: Work -> String
ly_music_elem :: Music -> String
module Music.LilyPond.Light.Constant.NoteName
mk_note :: Note_T -> Alteration_T -> Octave -> Music
d1 :: Music
e1 :: Music
f1 :: Music
g1 :: Music
a1 :: Music
b1 :: Music
c1 :: Music
des1 :: Music
ees1 :: Music
fes1 :: Music
ges1 :: Music
aes1 :: Music
bes1 :: Music
ces1 :: Music
dis1 :: Music
eis1 :: Music
fis1 :: Music
gis1 :: Music
ais1 :: Music
bis1 :: Music
cis1 :: Music
d2 :: Music
e2 :: Music
f2 :: Music
g2 :: Music
a2 :: Music
b2 :: Music
c2 :: Music
des2 :: Music
ees2 :: Music
fes2 :: Music
ges2 :: Music
aes2 :: Music
bes2 :: Music
ces2 :: Music
dis2 :: Music
eis2 :: Music
fis2 :: Music
gis2 :: Music
ais2 :: Music
bis2 :: Music
cis2 :: Music
disis2 :: Music
eisis2 :: Music
fisis2 :: Music
gisis2 :: Music
aisis2 :: Music
bisis2 :: Music
cisis2 :: Music
d3 :: Music
e3 :: Music
f3 :: Music
g3 :: Music
a3 :: Music
b3 :: Music
c3 :: Music
des3 :: Music
ees3 :: Music
fes3 :: Music
ges3 :: Music
aes3 :: Music
bes3 :: Music
ces3 :: Music
dis3 :: Music
eis3 :: Music
fis3 :: Music
gis3 :: Music
ais3 :: Music
bis3 :: Music
cis3 :: Music
disis3 :: Music
eisis3 :: Music
fisis3 :: Music
gisis3 :: Music
aisis3 :: Music
bisis3 :: Music
cisis3 :: Music
deseh3 :: Music
eeseh3 :: Music
feseh3 :: Music
geseh3 :: Music
aeseh3 :: Music
beseh3 :: Music
ceseh3 :: Music
deh3 :: Music
eeh3 :: Music
feh3 :: Music
geh3 :: Music
aeh3 :: Music
beh3 :: Music
ceh3 :: Music
dih3 :: Music
eih3 :: Music
fih3 :: Music
gih3 :: Music
aih3 :: Music
bih3 :: Music
cih3 :: Music
disih3 :: Music
eisih3 :: Music
fisih3 :: Music
gisih3 :: Music
aisih3 :: Music
bisih3 :: Music
cisih3 :: Music
d4 :: Music
e4 :: Music
f4 :: Music
g4 :: Music
a4 :: Music
b4 :: Music
c4 :: Music
des4 :: Music
ees4 :: Music
fes4 :: Music
ges4 :: Music
aes4 :: Music
bes4 :: Music
ces4 :: Music
dis4 :: Music
eis4 :: Music
fis4 :: Music
gis4 :: Music
ais4 :: Music
bis4 :: Music
cis4 :: Music
deses4 :: Music
eeses4 :: Music
feses4 :: Music
geses4 :: Music
aeses4 :: Music
beses4 :: Music
ceses4 :: Music
disis4 :: Music
eisis4 :: Music
fisis4 :: Music
gisis4 :: Music
aisis4 :: Music
bisis4 :: Music
cisis4 :: Music
deseh4 :: Music
eeseh4 :: Music
feseh4 :: Music
geseh4 :: Music
aeseh4 :: Music
beseh4 :: Music
ceseh4 :: Music
deh4 :: Music
eeh4 :: Music
feh4 :: Music
geh4 :: Music
aeh4 :: Music
beh4 :: Music
ceh4 :: Music
dih4 :: Music
eih4 :: Music
fih4 :: Music
gih4 :: Music
aih4 :: Music
bih4 :: Music
cih4 :: Music
disih4 :: Music
eisih4 :: Music
fisih4 :: Music
gisih4 :: Music
aisih4 :: Music
bisih4 :: Music
cisih4 :: Music
d5 :: Music
e5 :: Music
f5 :: Music
g5 :: Music
a5 :: Music
b5 :: Music
c5 :: Music
des5 :: Music
ees5 :: Music
fes5 :: Music
ges5 :: Music
aes5 :: Music
bes5 :: Music
ces5 :: Music
dis5 :: Music
eis5 :: Music
fis5 :: Music
gis5 :: Music
ais5 :: Music
bis5 :: Music
cis5 :: Music
deses5 :: Music
eeses5 :: Music
feses5 :: Music
geses5 :: Music
aeses5 :: Music
beses5 :: Music
ceses5 :: Music
disis5 :: Music
eisis5 :: Music
fisis5 :: Music
gisis5 :: Music
aisis5 :: Music
bisis5 :: Music
cisis5 :: Music
deseh5 :: Music
eeseh5 :: Music
feseh5 :: Music
geseh5 :: Music
aeseh5 :: Music
beseh5 :: Music
ceseh5 :: Music
deh5 :: Music
eeh5 :: Music
feh5 :: Music
geh5 :: Music
aeh5 :: Music
beh5 :: Music
ceh5 :: Music
dih5 :: Music
eih5 :: Music
fih5 :: Music
gih5 :: Music
aih5 :: Music
bih5 :: Music
cih5 :: Music
disih5 :: Music
eisih5 :: Music
fisih5 :: Music
gisih5 :: Music
aisih5 :: Music
bisih5 :: Music
cisih5 :: Music
d6 :: Music
e6 :: Music
f6 :: Music
g6 :: Music
a6 :: Music
b6 :: Music
c6 :: Music
des6 :: Music
ees6 :: Music
fes6 :: Music
ges6 :: Music
aes6 :: Music
bes6 :: Music
ces6 :: Music
dis6 :: Music
eis6 :: Music
fis6 :: Music
gis6 :: Music
ais6 :: Music
bis6 :: Music
cis6 :: Music
deseh6 :: Music
eeseh6 :: Music
feseh6 :: Music
geseh6 :: Music
aeseh6 :: Music
beseh6 :: Music
ceseh6 :: Music
deh6 :: Music
eeh6 :: Music
feh6 :: Music
geh6 :: Music
aeh6 :: Music
beh6 :: Music
ceh6 :: Music
dih6 :: Music
eih6 :: Music
fih6 :: Music
gih6 :: Music
aih6 :: Music
bih6 :: Music
cih6 :: Music
disih6 :: Music
eisih6 :: Music
fisih6 :: Music
gisih6 :: Music
aisih6 :: Music
bisih6 :: Music
cisih6 :: Music
d7 :: Music
e7 :: Music
f7 :: Music
g7 :: Music
a7 :: Music
b7 :: Music
c7 :: Music
des7 :: Music
ees7 :: Music
fes7 :: Music
ges7 :: Music
aes7 :: Music
bes7 :: Music
ces7 :: Music
dis7 :: Music
eis7 :: Music
fis7 :: Music
gis7 :: Music
ais7 :: Music
bis7 :: Music
cis7 :: Music
module Music.LilyPond.Light.Constant
ppp :: Annotation
pp :: Annotation
p :: Annotation
mp :: Annotation
mf :: Annotation
f :: Annotation
ff :: Annotation
fff :: Annotation
ffff :: Annotation
fp :: Annotation
sfz :: Annotation
pppp :: Annotation
decr :: Annotation
end_cresc :: Annotation
end_decr :: Annotation
espressivo :: Annotation
cresc :: Annotation
fermata :: Annotation
flageolet :: Annotation
harmonic :: Annotation
laissezVibrer :: Annotation
glissando :: Annotation
arpeggio :: Annotation
staccato :: Annotation
tenuto :: Annotation
accent :: Annotation
marcato :: Annotation
tenor_clef :: Music
alto_clef :: Music
treble_clef :: Music
percussion_clef :: Music
bass_clef :: Music
treble_8va_clef :: Music
treble_8vb_clef :: Music
treble_15ma_clef :: Music
bass_8vb_clef :: Music
l :: Music
final_barline :: Music
double_barline :: Music
no_system_break :: Music
system_break :: Music
no_page_break :: Music
page_break :: Music
auto_beam_off :: Music
tuplet_neutral :: Music
tuplet_up :: Music
tuplet_down :: Music
voice_two :: Music
voice_one :: Music
stem_neutral :: Music
stem_up :: Music
stem_down :: Music
dynamic_neutral :: Music
dynamic_up :: Music
dynamic_down :: Music
end_8va :: Music
begin_8va :: Music
no_ped :: Annotation
ped :: Annotation
tie :: Annotation
-- | Beaming annotations.
end_beam :: Annotation
begin_beam :: Annotation
-- | Slur annotations.
end_slur :: Annotation
begin_slur :: Annotation
slur_neutral :: Music
slur_up :: Music
slur_down :: Music
-- | Phrasing slur annotations.
end_phrasing_slur :: Annotation
begin_phrasing_slur :: Annotation
cAcc :: Annotation
rAcc :: Annotation
set_accidental_style_dodecaphonic :: Music
set_accidental_style_neo_modern :: Music
set_accidental_style_modern :: Music
a4_paper :: Paper
length_scale :: Double -> Length -> Length
paper_incr_size :: Paper -> Paper
a3_paper :: Paper
a2_paper :: Paper
landscape :: Paper -> Paper
default_score_settings :: Score_Settings
default_header :: Header
module Music.LilyPond.Light
is_note :: Music -> Bool
is_chord :: Music -> Bool
is_rest :: Music -> Bool
is_mm_rest :: Music -> Bool
is_grace :: Music -> Bool
is_after_grace :: Music -> Bool
-- | These are required to avoid issues in lilypond (see manual)
is_grace_skip :: Music -> Bool
is_clef :: Music -> Bool
is_time :: Music -> Bool
is_tempo :: Music -> Bool
is_barlinecheck :: Music -> Bool
is_tied :: Music -> Bool
is_tuplet :: Music -> Bool
-- | Add reminder accidental to note.
r_acc :: Music -> Music
-- | Add cautionary accidental to note.
c_acc :: Music -> Music
-- | Remove any reminder or cautionary accidentals at note or chord.
clr_acc :: Music -> Music
octpc_to_note :: (Octave, PitchClass) -> Music
-- | Construct rests.
r :: Duration -> Music
r' :: TimeSignature -> Music
-- | Create an empty measure for the specified time signature.
empty_measure :: Integer -> Integer -> Music
-- | Like empty_measure, but with an invisible rest.
null_measure :: Integer -> Integer -> Music
-- | Like empty_measure but write time signature.
measure_rest :: Integer -> Integer -> Music
-- | Like measure_rest but write time signature.
measure_null :: Integer -> Integer -> Music
type M_Annotation = Music
data Measure
Measure :: [M_Annotation] -> [Music] -> Measure
m_annotate :: M_Annotation -> Measure -> Measure
m_annotate' :: [M_Annotation] -> Measure -> Measure
m_annotate_first' :: [M_Annotation] -> [Measure] -> [Measure]
m_annotate_last' :: [M_Annotation] -> [Measure] -> [Measure]
m_elements :: Measure -> [Music]
mm_elements :: [Measure] -> [Music]
-- | Apply fn to the duration of x, if it has a duration.
edit_dur :: (Duration -> Duration) -> Music -> Music
-- | Temporal scaling of music (tuplets).
tuplet :: Tuplet_T -> [Music] -> Music
-- | Tuplet variants that set location, and then restore to neutral.
tuplet_below :: Tuplet_T -> [Music] -> Music
tuplet_above :: Tuplet_T -> [Music] -> Music
-- | Like tuplet but does not annotate music, see also
-- ts_set_fraction.
scale_durations :: Tuplet_T -> [Music] -> Music
-- | Construct time signature.
time_signature :: TimeSignature -> Music
-- | Allow proper auto-indenting of multiple measures with the same time
-- signature.
with_time_signature :: TimeSignature -> [Music] -> Music
-- | Tied, non-multiplied durations to fill a whole measure.
ts_whole_note :: TimeSignature -> [Duration]
-- | Command to request that 44 and 22 etc. are typeset as
-- fractions.
ts_use_fractions :: Music
-- | Set the printed time-signature fraction.
ts_set_fraction :: Integer -> Integer -> Music
numeric_time_signature :: Music
ts_parentheses :: Music
-- | Construct key signature.
key :: Music -> Mode_T -> Music
-- | Construct standard (two times) repeat.
std_repeat :: Integer -> [Music] -> Music
-- | Can a music element be annotated?
allows_annotations :: Music -> Bool
-- | Add an annotation to music element.
add_annotation :: Annotation -> Music -> Maybe Music
-- | Add an annotation to music element or error.
add_annotation_err :: Annotation -> Music -> Music
-- | Add an annotation to music element, or error.
(&) :: Music -> Annotation -> Music
-- | Add an annotation to a pitch.
() :: Pitch -> Annotation -> Music
-- | Add an annotation to music element.
perhaps_annotate :: Annotation -> Music -> Music
bracket_annotation_fn :: (Annotation -> Music -> Music) -> (Annotation, Annotation) -> [Music] -> [Music]
bracket_annotation :: (Annotation, Annotation) -> [Music] -> [Music]
bracket_annotation' :: (Annotation, Annotation) -> [Music] -> [Music]
beam' :: [Music] -> [Music]
-- | Manual beaming.
beam :: [Music] -> Music
slur' :: [Music] -> [Music]
slur :: [Music] -> Music
phrasing_slur' :: [Music] -> [Music]
phrasing_slur :: [Music] -> Music
text_below :: String -> Annotation
text_above :: String -> Annotation
pizz :: Annotation
arco :: Annotation
stem_tremolo :: Integer -> Annotation
place_below :: Annotation -> Annotation
place_above :: Annotation -> Annotation
-- | Add an annotation to a note element, else identity.
note_annotate :: Annotation -> Music -> Music
-- | Annotate the first note/chord element.
initial_note_chord_annotate :: Annotation -> [Music] -> [Music]
allows_indirect_annotation :: Music -> Bool
indirect_annotation :: Annotation -> Music -> Music
attach_indirect_annotation :: Annotation -> [Music] -> [Music]
-- | Shift the octave of a note element, else identity.
note_edit_octave :: (Integer -> Integer) -> Music -> Music
-- | Shift the octave of a note element, else identity.
note_shift_octave :: Integer -> Music -> Music
-- | Predicate combinators.
p_and :: (t -> Bool) -> (t -> Bool) -> t -> Bool
p_or :: (t -> Bool) -> (t -> Bool) -> t -> Bool
span_r :: (a -> Bool) -> [a] -> ([a], [a], [a])
-- | Beam if at least two elements.
perhaps_beam :: [Music] -> [Music]
-- | Beam interior notes/chords (ie. skip exterior non-note/non-chords).
beam_notes :: [Music] -> Music
set_subdivide_beams :: Integer -> Music
-- | Add duration to pitch to make a note.
(##) :: Pitch -> Duration -> Music
-- | Add duration to pitch to make a note.
(#) :: Music -> Duration -> Music
-- | Construct chord.
chd_p :: [Pitch] -> Duration -> Music
chd :: [Music] -> Duration -> Music
-- | Construct bar number check.
bar_number_check :: Integer -> Music
-- | Change staff.
change :: String -> Music
-- | Indicate initial partial measure.
partial :: Duration -> Music
hairpin_circled_tip :: Bool -> Music
hairpin_to_barline :: Bool -> Music
name_to_id :: Staff_Name -> Staff_ID
-- | Construct staff.
staff :: Staff_Name -> [Music] -> Staff
-- | Construct rhythmic staff.
rhythmic_staff :: Staff_Name -> [Music] -> Staff
-- | Construct staff with text underlay.
text_staff :: Staff_Name -> String -> [Music] -> Staff
-- | Construct piano staff. For two staff piano music the staffs have
-- identifiers rh and lh.
piano_staff :: Staff_Name -> [[Music]] -> Staff
grand_staff :: Staff_Name -> [[Music]] -> Staff
staff_group :: Staff_Name -> [[Music]] -> Staff
rhythmic_grand_staff :: Staff_Name -> [[Music]] -> Staff
-- | Variant with names for each staff.
grand_staff' :: Staff_Name -> [Staff_Name] -> [[Music]] -> Staff
staff_group' :: Staff_Name -> [Staff_Name] -> [[Music]] -> Staff
two_part_staff :: Staff_Name -> ([Music], [Music]) -> Staff
instr_name :: Staff_Name -> Staff -> Staff
resize_staff :: Int -> Staff -> Staff
score :: [Staff] -> Score
tempo :: Duration -> Integer -> Music
after_grace :: Music -> Music -> Music
grace :: Music -> Music
tremolo :: (Music, Music) -> Integer -> Music
-- | Interior polyphony. For two part music on one staff see
-- two_part_staff.
polyphony :: Music -> Music -> Music
polyphony' :: [Music] -> [Music] -> Music
-- | Request cross note-heads.
cross_noteheads :: Music
-- | Revert to standard note-heads.
revert_noteheads :: Music
-- | Joins directly adjacent rest elements.
join_rests :: [Music] -> [Music]
module Music.LilyPond.Light.Analysis
type R = Double
-- | Apply a function to all elements and collect results in a list.
traverse :: (Music -> a) -> Music -> [a]
-- | Collect all elements of a given type.
collect_entries :: (Music -> Bool) -> Music -> [Music]
count_entries :: (Music -> Bool) -> Music -> Integer
count_notes :: Music -> Integer
count_chords :: Music -> Integer
count_ts :: Music -> Integer
-- | Does music element contain one or more pitches?
has_pitch :: Music -> Bool
-- | Collect pitches from a note or chord or join of such.
collect_pitches_no_grace :: Music -> [Pitch]
-- | Collect pitches from a note, chord, or grace note.
collect_pitches :: Music -> [Pitch]
-- | Collect note sequence, filters tied notes.
note_seq :: Music -> [Music]
freq_anal_by :: Ord a => (a -> a -> Ordering) -> [a] -> [(Int, a)]
freq_anal :: Ord a => [a] -> [(Int, a)]
type TempoMarking = (Duration, Integer)
-- | Apply d dots to the rational pulse count n.
apply_dots :: Rational -> Integer -> Rational
-- | Convert a duration to a pulse count in relation to the indicated time
-- signature.
dur_pulses :: TimeSignature -> Duration -> Rational
-- | The duration, in seconds, of a pulse at the indicated time signaure
-- and tempo marking.
pulse_duration :: TimeSignature -> TempoMarking -> R
-- | The duration, in seconds, of a measure at the indicated time signaure
-- and tempo marking.
measure_duration :: TimeSignature -> TempoMarking -> R
type TimeSignature_Map = [(Measure, TimeSignature)]
type TempoMarking_Map = [(Measure, TempoMarking)]
type Temporal_Map = (TimeSignature_Map, TempoMarking_Map)
temporal_map :: [Music] -> Temporal_Map
-- | Return duration (in seconds) and pulse counts for n measures.
mm_durations :: Temporal_Map -> Integer -> [(R, Integer)]
integrate :: Num a => [a] -> [a]
-- | Return start time and duration (in seconds) and pulse counts for i
-- measures.
mm_start_times :: Temporal_Map -> Integer -> [(R, R, Integer)]
location_to_rt :: [(R, R, Integer)] -> Location -> R
locate_rt :: [Music] -> [(R, Music)]
data Locate_Mode
LM_Normal :: Locate_Mode
LM_In_Tuplet :: Locate_Mode
type Measure = Integer
type Pulse = Rational
type Part_ID = Integer
-- | Data type representing the location of a musical element.
data Location
Location :: Measure -> Pulse -> Part_ID -> Locate_Mode -> Location
measure :: Location -> Measure
pulse :: Location -> Pulse
part :: Location -> Part_ID
mode :: Location -> Locate_Mode
-- | Convert a location to normal form under given time signature.
location_nf :: TimeSignature -> Location -> Location
-- | Type to thread state through location calculations.
type Locate_ST = (TimeSignature, Location)
-- | Update state part number.
st_set_part :: Locate_ST -> Part_ID -> Locate_ST
-- | Update state part number.
st_set_mode :: Locate_ST -> Locate_Mode -> Locate_ST
-- | Step location state by duration.
location_step :: Locate_ST -> Duration -> Locate_ST
-- | Located music
type LM = (Location, Music)
-- | Located value
type LV a = (Location, a)
-- | State threading form of location calculations. Currently, nested
-- polyphonic parts generate duplicate IDs (?)
locate_st :: Locate_ST -> Music -> (Locate_ST, [LM])
-- | Run location calculations.
locate :: Music -> [LM]
locate' :: [Music] -> [LM]
-- | Extract list of part identifiers.
lv_located_parts :: [LV a] -> [Part_ID]
lv_group_parts :: [LV a] -> [[LV a]]
-- | Drop n measures.
lv_from_measure :: Integer -> [LV a] -> [LV a]
lv_group_measures :: [LV a] -> [[LV a]]
lv_extract_part :: Part_ID -> [LV a] -> [LV a]
lv_extract_measure :: Measure -> [LV a] -> [LV a]
lm_pitches :: [LM] -> [Pitch]
lm_pcset :: [LM] -> [PitchClass]
lm_pitches_per_measure :: [LM] -> [[Pitch]]
lm_pcset_per_measure :: [LM] -> [[PitchClass]]
unlocate_p :: Music -> Bool
normal_mode_p :: Location -> Bool
lm_unlocate :: [LM] -> [Music]
location_time :: Location -> (Measure, Pulse)
lv_sort :: [LV a] -> [LV a]
located_pitches :: [[Music]] -> [(Location, [Pitch])]
-- | Rewrite time signature to indicated denominator.
ts_rewrite :: Integer -> TimeSignature -> TimeSignature
-- | Sum time signatures (ie. 316 and 12 sum to 11/16).
ts_sum :: [TimeSignature] -> TimeSignature
measure_diff :: Location -> Location -> Integer
lv_last_measure :: [LV a] -> Measure
time_unpack :: Music -> TimeSignature
-- | Time signature structure of music.
ts_structure :: Music -> [[(TimeSignature, Integer)]]
ts_structure' :: [Music] -> [[(TimeSignature, Integer)]]
structure_unfold' :: Integral i => [(a, i)] -> [a]
structure_unfold :: Integral i => [(a, i)] -> [Maybe a]
lm_ts_map :: [LM] -> TimeSignature_Map
ts_map :: [Music] -> TimeSignature_Map
-- | Keys are in ascending order, the value retrieved is the that with the
-- greatest key less than or equal to the key requested.
map_lookup :: Ord i => [(i, a)] -> i -> a
ts_lookup :: [(Measure, TimeSignature)] -> Measure -> TimeSignature
lm_tempo_map :: [LM] -> [(Measure, (Duration, Integer))]
tempo_map :: [Music] -> [(Measure, (Duration, Integer))]
tempo_lookup :: [(Measure, (Duration, Integer))] -> Measure -> (Duration, Integer)
kv_group_by :: Ord c => (a -> c) -> [(a, b)] -> [[(a, b)]]
kv_collate :: Ord k => (a -> k) -> (a -> v) -> [a] -> [(k, [v])]
kv_collate' :: Ord k => [(k, v)] -> [(k, [v])]
-- | Filter with predicates at key and value.
kv_filter :: (k -> Bool) -> (v -> Bool) -> [(k, v)] -> [(k, v)]
-- | Apply functions to keys and values.
kv_map :: (k -> k') -> (v -> v') -> [(k, v)] -> [(k', v')]
measure_collate :: (Music -> Bool) -> Music -> [[(Integer, [Music])]]
collation_unfold :: [(Integer, a)] -> [Maybe a]
type ST_r st = (st, Music)
type ST_f st = st -> Music -> ST_r st
transform_st :: ST_f st -> st -> Music -> ST_r st
transform :: (Music -> Music) -> Music -> Music
write_out_repeats :: Music -> Music
-- | Replace the pitch of note element n1 with that of n0.
note_replace_pitch :: Pitch -> Music -> Music
note_replace_pitch_m :: Music -> Music -> Music
replace_notes_fn :: (a -> Pitch) -> [a] -> Music -> ([a], Music)
-- | Replaces notes with indicated pitches, rhythms and annotations are not
-- replaced. Tied notes do not use multiple pitches from the input
-- sequence.
replace_notes_p :: [Pitch] -> Music -> Music
replace_notes :: [Music] -> Music -> Music
insert_after_notes_fn :: [Maybe Music] -> Music -> ([Maybe Music], Music)
-- | Inserts a value after each note as indicated.
insert_after_notes :: [Maybe Music] -> Music -> Music
discard_tied_notes_pr :: (a -> Bool) -> (a -> Bool) -> [a] -> [a]
discard_tied_notes :: [Music] -> [Music]
lm_discard_tied_notes :: [LM] -> [LM]
spell_ks :: (Octave, PitchClass) -> Music
spell_sharp :: (Octave, PitchClass) -> Music
spell_flat :: (Octave, PitchClass) -> Music
v_assert :: String -> (Music -> Bool) -> (Music -> Maybe String)
-- | Notes in chords must not have duration.
v_chord_note_valid :: Music -> Maybe String
validate :: Music -> [String]
instance Show Locate_Mode
instance Eq Locate_Mode
instance Ord Locate_Mode
instance Show Location
instance Eq Location
instance Ord Location