-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Haskell Music Typesetting -- -- A simple music typesetting model in haskell @package hts @version 0.14 module Music.Typesetting.Output.MusicXML.Binding type ELEM = [Attr] -> [Content] -> Content type EMPTY_ELEM = [Attr] -> Content type PCDATA_ELEM = [Attr] -> String -> Content type NUMERICAL_ELEM = (Num n, Show n) => [Attr] -> n -> Content type ATTR = String -> Attr -- | Ordinary character data, subject to escaping. cdata :: String -> Content mk_elem :: String -> ELEM mk_pcdata_elem :: String -> PCDATA_ELEM mk_numerical_elem :: String -> NUMERICAL_ELEM mk_empty_elem :: String -> EMPTY_ELEM mk_empty_elem_no_attr :: String -> Content mk_attr :: String -> ATTR clef :: ELEM type_A :: ATTR slash :: ATTR implicit :: ATTR spread :: ATTR number :: ATTR id_A :: ATTR placement :: ATTR show_type :: ATTR show_number :: ATTR bracket :: ATTR font_family :: ATTR font_weight :: ATTR font_size :: ATTR font_style :: ATTR direction :: ELEM offset :: ELEM direction_type :: ELEM wedge :: EMPTY_ELEM words' :: ELEM pedal :: EMPTY_ELEM sign :: ELEM line :: ELEM clef_octave_change :: ELEM score_partwise :: ELEM work :: ELEM work_title :: ELEM work_number :: ELEM identification :: ELEM rights :: ELEM creator :: ELEM credit :: ELEM credit_words :: ELEM part_list :: ELEM score_part :: ELEM part_group :: ELEM part_name :: ELEM score_instrument :: ELEM part_abbreviation :: ELEM group_name :: ELEM group_barline :: ELEM group_symbol :: ELEM group_abbreviation :: ELEM instrument_name :: ELEM part :: ELEM divisions :: ELEM attributes :: ELEM measure :: ELEM key :: ELEM mode :: ELEM fifths :: ELEM time :: ELEM beat_type :: ELEM beats :: ELEM note :: ELEM accidental :: ELEM notehead :: ELEM beam :: ELEM stem :: ELEM type_E :: ELEM voice :: ELEM duration :: ELEM rest :: ELEM octave :: ELEM alter :: ELEM step :: ELEM pitch :: ELEM staves :: NUMERICAL_ELEM staff :: NUMERICAL_ELEM notations :: ELEM tremolo :: ELEM dynamics :: ELEM technical :: ELEM ornaments :: ELEM sound :: ELEM tempo :: ATTR dynamics' :: ATTR arpeggiate :: EMPTY_ELEM slur :: EMPTY_ELEM tied :: EMPTY_ELEM tie :: EMPTY_ELEM slide :: ELEM glissando :: ELEM fermata :: ELEM harmonic :: ELEM natural :: EMPTY_ELEM artificial :: EMPTY_ELEM up_bow :: EMPTY_ELEM down_bow :: EMPTY_ELEM open_string :: EMPTY_ELEM snap_pizzicato :: EMPTY_ELEM stopped :: EMPTY_ELEM other_technical :: PCDATA_ELEM forward :: ELEM backup :: ELEM chord :: EMPTY_ELEM dot :: EMPTY_ELEM grace :: EMPTY_ELEM cue :: EMPTY_ELEM time_modification :: ELEM normal_dot :: ELEM normal_type :: ELEM normal_notes :: ELEM actual_notes :: ELEM tuplet :: ELEM tuplet_type :: ELEM tuplet_number :: ELEM tuplet_normal :: ELEM tuplet_actual :: ELEM tuplet_dot :: EMPTY_ELEM articulations :: ELEM accent :: EMPTY_ELEM metronome :: ELEM per_minute :: ELEM beat_unit :: ELEM beat_unit_dot :: EMPTY_ELEM musicxml_xml :: String type DocType = String musicxml_partwise :: DocType module Music.Typesetting.Model type Font_Family_T = String data Font_Style_T Font_Style_Normal :: Font_Style_T Font_Style_Italic :: Font_Style_T type Font_Size_T = Int data Font_Weight_T Font_Weight_Normal :: Font_Weight_T Font_Weight_Bold :: Font_Weight_T data Font_T Font :: Font_Family_T -> Font_Style_T -> Font_Size_T -> Font_Weight_T -> Font_T data Articulation_T Accent :: Articulation_T Staccato :: Articulation_T Strong_Accent :: Articulation_T Tenuto :: Articulation_T data Ornament_T Trill_Mark :: Ornament_T data Harmonic_T Natural_Harmonic :: Harmonic_T Artifical_Harmonic :: Harmonic_T data Technical_T Up_Bow :: Technical_T Down_Bow :: Technical_T Harmonic :: Harmonic_T -> Technical_T Open_String :: Technical_T Stopped :: Technical_T Snap_Pizzicato :: Technical_T Other_Technical :: (Maybe Font_T) -> String -> Technical_T data Placement_T Above :: Placement_T Below :: Placement_T type Tuplet_T = (Integer, Duration, Integer, Duration) data Pedal_T Pedal_Start :: Pedal_T Pedal_Stop :: Pedal_T Pedal_Continue :: Pedal_T Pedal_Change :: Pedal_T data Sound_T Sound_Tempo :: Double -> Sound_T Sound_Dynamics :: Double -> Sound_T data Direction_T D_Dynamic_Mark :: Dynamic_Mark_T -> Direction_T D_Hairpin :: Hairpin_T -> Direction_T D_Laissez_Vibrer :: Direction_T D_Tempo_Marking :: Tempo_Marking -> Direction_T D_Pedal :: Pedal_T -> Bool -> Bool -> Direction_T pedal_type :: Direction_T -> Pedal_T pedal_line :: Direction_T -> Bool pedal_sign :: Direction_T -> Bool data Beam_T Beam_Begin :: Beam_T Beam_Continue :: Beam_T Beam_End :: Beam_T data Notehead_T Notehead_Triangle :: Notehead_T Notehead_Diamond :: Notehead_T Notehead_Square :: Notehead_T Notehead_Cross :: Notehead_T -- | Ordered to meet musicxml requirements. data N_Annotation N_Grace :: N_Annotation N_Chord :: N_Annotation N_Pitch :: Pitch -> N_Annotation N_Unpitched :: N_Annotation N_Rest :: N_Annotation N_Notehead :: Notehead_T -> N_Annotation N_Staff :: Integer -> N_Annotation N_Beam :: Integer -> Beam_T -> N_Annotation N_Begin_Tied :: N_Annotation N_End_Tied :: N_Annotation N_Begin_Slur :: N_Annotation N_End_Slur :: N_Annotation N_Begin_Tuplet :: (Maybe Tuplet_T) -> N_Annotation N_End_Tuplet :: N_Annotation N_Begin_Glissando :: N_Annotation N_End_Glissando :: N_Annotation N_Begin_Slide :: N_Annotation N_End_Slide :: N_Annotation N_Stem_Tremolo :: Integer -> N_Annotation N_Ornament :: Ornament_T -> N_Annotation N_Technical :: Technical_T -> N_Annotation N_Articulation :: Articulation_T -> N_Annotation N_Fermata :: N_Annotation N_Arpeggiate :: N_Annotation N_Direction :: Direction_T -> N_Annotation N_Voice :: Integer -> N_Annotation N_Backup :: [Duration] -> N_Annotation data Note Note :: Duration -> [N_Annotation] -> Note n_duration :: Note -> Duration n_annotations :: Note -> [N_Annotation] data M_Annotation M_Division :: Integer -> M_Annotation M_Key :: Note_T -> (Maybe Alteration_T) -> Mode_T -> M_Annotation M_Time_Signature :: Time_Signature -> M_Annotation M_Staves :: Integer -> M_Annotation M_Clef :: (Clef Integer) -> Integer -> M_Annotation M_Direction :: Direction_T -> M_Annotation data Measure Measure :: [M_Annotation] -> [Note] -> Measure m_annotations :: Measure -> [M_Annotation] m_notes :: Measure -> [Note] type Name = (String, String) data Group_Symbol_T None :: Group_Symbol_T Brace :: Group_Symbol_T Line :: Group_Symbol_T Bracket :: Group_Symbol_T data P_Annotation P_Name :: Name -> P_Annotation data G_Annotation G_Name :: Name -> G_Annotation G_Symbol :: Group_Symbol_T -> G_Annotation type ID = Integer data Part Part :: (Maybe ID) -> [P_Annotation] -> [Measure] -> Part Group :: (Maybe ID) -> [G_Annotation] -> [Part] -> Part data Score Score :: [Part] -> Score instance Eq Font_Style_T instance Ord Font_Style_T instance Enum Font_Style_T instance Show Font_Style_T instance Eq Font_Weight_T instance Ord Font_Weight_T instance Enum Font_Weight_T instance Show Font_Weight_T instance Eq Font_T instance Ord Font_T instance Show Font_T instance Eq Articulation_T instance Ord Articulation_T instance Enum Articulation_T instance Show Articulation_T instance Eq Ornament_T instance Ord Ornament_T instance Enum Ornament_T instance Show Ornament_T instance Eq Harmonic_T instance Ord Harmonic_T instance Enum Harmonic_T instance Show Harmonic_T instance Eq Technical_T instance Ord Technical_T instance Show Technical_T instance Eq Placement_T instance Ord Placement_T instance Enum Placement_T instance Show Placement_T instance Eq Pedal_T instance Ord Pedal_T instance Enum Pedal_T instance Show Pedal_T instance Eq Sound_T instance Ord Sound_T instance Show Sound_T instance Eq Direction_T instance Ord Direction_T instance Show Direction_T instance Eq Beam_T instance Ord Beam_T instance Enum Beam_T instance Show Beam_T instance Eq Notehead_T instance Ord Notehead_T instance Enum Notehead_T instance Show Notehead_T instance Eq N_Annotation instance Ord N_Annotation instance Show N_Annotation instance Eq Note instance Show Note instance Eq M_Annotation instance Ord M_Annotation instance Show M_Annotation instance Eq Measure instance Show Measure instance Eq Group_Symbol_T instance Show Group_Symbol_T instance Eq P_Annotation instance Show P_Annotation instance Eq G_Annotation instance Show G_Annotation instance Eq Part instance Show Part instance Eq Score instance Show Score module Music.Typesetting.Query na_pitch :: N_Annotation -> Maybe Pitch na_dynamic_mark :: N_Annotation -> Maybe Dynamic_Mark_T na_is_dynamic_mark :: N_Annotation -> Bool na_is_dynamic_annotation :: N_Annotation -> Bool na_is_begin_hairpin :: N_Annotation -> Bool na_is_begin_dynamic :: N_Annotation -> Bool na_annotated_tied_lr :: [N_Annotation] -> (Bool, Bool) data At_Tied At_End_Tied :: At_Tied At_Either_Tied :: At_Tied At_Begin_Tied :: At_Tied na_annotation_at_tied :: N_Annotation -> At_Tied na_annotation_at_end_tied_only :: N_Annotation -> Bool na_annotation_at_tied_either :: N_Annotation -> Bool n_has_annotation :: N_Annotation -> Note -> Bool n_is_rest :: Note -> Bool n_is_chord_elem :: Note -> Bool n_is_untied :: Note -> Bool n_is_initial_tie :: Note -> Bool n_is_final_tie :: Note -> Bool n_pitch :: Note -> Maybe Pitch n_has_pitch :: Note -> Bool n_dynamic_mark :: Note -> Maybe Dynamic_Mark_T n_has_dynamic_mark :: Note -> Bool n_duration_forward :: Note -> Maybe Duration ma_time_signature_t :: M_Annotation -> Maybe Time_Signature ma_tempo_marking_t :: M_Annotation -> Maybe Tempo_Marking -- | Just a for singleton list, else Nothing. list_to_maybe :: [a] -> Maybe a m_time_signature :: Measure -> [M_Annotation] m_time_signature' :: Measure -> Maybe M_Annotation m_time_signature_t :: Measure -> [Time_Signature] m_tempo_marking :: Measure -> [M_Annotation] m_tempo_marking' :: Measure -> Maybe M_Annotation m_tempo_marking_t :: Measure -> [Tempo_Marking] type SI_Map a = [(Integer, a)] type Time_Signature_Map = SI_Map Time_Signature type Tempo_Marking_Map = SI_Map Tempo_Marking type Temporal_Map = (Integer, Time_Signature_Map, Tempo_Marking_Map) si_map_to_sequence :: Integer -> a -> SI_Map a -> [a] mm_time_signature_map :: [Measure] -> Time_Signature_Map mm_tempo_marking_map :: [Measure] -> Tempo_Marking_Map mm_temporal_map :: [Measure] -> Temporal_Map -- | dx -> d -- --
-- integrate [1,3,6,10] == [1,4,10,20] --integrate :: Num a => [a] -> [a] temporal_map_locate :: Temporal_Map -> [(Rational, Rational, Tempo_Marking)] n_locate :: (Rational, Rational, Tempo_Marking) -> [Note] -> [(Rational, Note)] locate_notes :: [[Measure]] -> [(Rational, Note)] instance Eq At_Tied instance Enum At_Tied instance Ord At_Tied instance Show At_Tied -- | Dynamic mark literals. module Music.Typesetting.Literal.Dynamic dynamic_mark :: Dynamic_Mark_T -> N_Annotation niente :: N_Annotation sfz :: N_Annotation fp :: N_Annotation ffff :: N_Annotation fff :: N_Annotation ff :: N_Annotation f :: N_Annotation mf :: N_Annotation mp :: N_Annotation p :: N_Annotation pp :: N_Annotation ppp :: N_Annotation pppp :: N_Annotation cresc :: N_Annotation end_hairpin :: N_Annotation dim :: N_Annotation -- | Pitch names lifted to Note values. module Music.Typesetting.Note.Name pitch_to_note :: Pitch -> Note a0 :: Note b0 :: Note bes0 :: Note ais0 :: Note bis0 :: Note c1 :: Note b1 :: Note a1 :: Note g1 :: Note f1 :: Note e1 :: Note d1 :: Note ces1 :: Note bes1 :: Note aes1 :: Note ges1 :: Note fes1 :: Note ees1 :: Note des1 :: Note cis1 :: Note bis1 :: Note ais1 :: Note gis1 :: Note fis1 :: Note eis1 :: Note dis1 :: Note c2 :: Note b2 :: Note a2 :: Note g2 :: Note f2 :: Note e2 :: Note d2 :: Note ces2 :: Note bes2 :: Note aes2 :: Note ges2 :: Note fes2 :: Note ees2 :: Note des2 :: Note cis2 :: Note bis2 :: Note ais2 :: Note gis2 :: Note fis2 :: Note eis2 :: Note dis2 :: Note cisis2 :: Note bisis2 :: Note aisis2 :: Note gisis2 :: Note fisis2 :: Note eisis2 :: Note disis2 :: Note c3 :: Note b3 :: Note a3 :: Note g3 :: Note f3 :: Note e3 :: Note d3 :: Note ces3 :: Note bes3 :: Note aes3 :: Note ges3 :: Note fes3 :: Note ees3 :: Note des3 :: Note cis3 :: Note bis3 :: Note ais3 :: Note gis3 :: Note fis3 :: Note eis3 :: Note dis3 :: Note cisis3 :: Note bisis3 :: Note aisis3 :: Note gisis3 :: Note fisis3 :: Note eisis3 :: Note disis3 :: Note ceseh3 :: Note beseh3 :: Note aeseh3 :: Note geseh3 :: Note feseh3 :: Note eeseh3 :: Note deseh3 :: Note ceh3 :: Note beh3 :: Note aeh3 :: Note geh3 :: Note feh3 :: Note eeh3 :: Note deh3 :: Note cih3 :: Note bih3 :: Note aih3 :: Note gih3 :: Note fih3 :: Note eih3 :: Note dih3 :: Note cisih3 :: Note bisih3 :: Note aisih3 :: Note gisih3 :: Note fisih3 :: Note eisih3 :: Note disih3 :: Note c4 :: Note b4 :: Note a4 :: Note g4 :: Note f4 :: Note e4 :: Note d4 :: Note ces4 :: Note bes4 :: Note aes4 :: Note ges4 :: Note fes4 :: Note ees4 :: Note des4 :: Note cis4 :: Note bis4 :: Note ais4 :: Note gis4 :: Note fis4 :: Note eis4 :: Note dis4 :: Note ceses4 :: Note beses4 :: Note aeses4 :: Note geses4 :: Note feses4 :: Note eeses4 :: Note deses4 :: Note cisis4 :: Note bisis4 :: Note aisis4 :: Note gisis4 :: Note fisis4 :: Note eisis4 :: Note disis4 :: Note ceseh4 :: Note beseh4 :: Note aeseh4 :: Note geseh4 :: Note feseh4 :: Note eeseh4 :: Note deseh4 :: Note ceh4 :: Note beh4 :: Note aeh4 :: Note geh4 :: Note feh4 :: Note eeh4 :: Note deh4 :: Note cih4 :: Note bih4 :: Note aih4 :: Note gih4 :: Note fih4 :: Note eih4 :: Note dih4 :: Note cisih4 :: Note bisih4 :: Note aisih4 :: Note gisih4 :: Note fisih4 :: Note eisih4 :: Note disih4 :: Note c5 :: Note b5 :: Note a5 :: Note g5 :: Note f5 :: Note e5 :: Note d5 :: Note ces5 :: Note bes5 :: Note aes5 :: Note ges5 :: Note fes5 :: Note ees5 :: Note des5 :: Note cis5 :: Note bis5 :: Note ais5 :: Note gis5 :: Note fis5 :: Note eis5 :: Note dis5 :: Note ceses5 :: Note beses5 :: Note aeses5 :: Note geses5 :: Note feses5 :: Note eeses5 :: Note deses5 :: Note cisis5 :: Note bisis5 :: Note aisis5 :: Note gisis5 :: Note fisis5 :: Note eisis5 :: Note disis5 :: Note ceseh5 :: Note beseh5 :: Note aeseh5 :: Note geseh5 :: Note feseh5 :: Note eeseh5 :: Note deseh5 :: Note ceh5 :: Note beh5 :: Note aeh5 :: Note geh5 :: Note feh5 :: Note eeh5 :: Note deh5 :: Note cih5 :: Note bih5 :: Note aih5 :: Note gih5 :: Note fih5 :: Note eih5 :: Note dih5 :: Note cisih5 :: Note bisih5 :: Note aisih5 :: Note gisih5 :: Note fisih5 :: Note eisih5 :: Note disih5 :: Note c6 :: Note b6 :: Note a6 :: Note g6 :: Note f6 :: Note e6 :: Note d6 :: Note ces6 :: Note bes6 :: Note aes6 :: Note ges6 :: Note fes6 :: Note ees6 :: Note des6 :: Note cis6 :: Note bis6 :: Note ais6 :: Note gis6 :: Note fis6 :: Note eis6 :: Note dis6 :: Note ceseh6 :: Note beseh6 :: Note aeseh6 :: Note geseh6 :: Note feseh6 :: Note eeseh6 :: Note deseh6 :: Note ceh6 :: Note beh6 :: Note aeh6 :: Note geh6 :: Note feh6 :: Note eeh6 :: Note deh6 :: Note cih6 :: Note bih6 :: Note aih6 :: Note gih6 :: Note fih6 :: Note eih6 :: Note dih6 :: Note cisih6 :: Note bisih6 :: Note aisih6 :: Note gisih6 :: Note fisih6 :: Note eisih6 :: Note disih6 :: Note c7 :: Note b7 :: Note a7 :: Note g7 :: Note f7 :: Note e7 :: Note d7 :: Note ces7 :: Note bes7 :: Note aes7 :: Note ges7 :: Note fes7 :: Note ees7 :: Note des7 :: Note cis7 :: Note bis7 :: Note ais7 :: Note gis7 :: Note fis7 :: Note eis7 :: Note dis7 :: Note c8 :: Note d8 :: Note cis8 :: Note module Music.Typesetting.Output.MusicXML x_clef_t :: Clef_T -> (String, Integer) x_clef :: Clef Integer -> Integer -> Content key_mode_t :: Mode_T -> String x_key :: (Note_T, Maybe Alteration_T, Mode_T) -> Content x_time :: Time_Signature -> Content x_pitch :: Pitch -> Content x_alteration_t :: Alteration_T -> String x_pitch_accidental :: Pitch -> Content x_multiplier :: Rational -> Content x_divisions :: Integer duration_rq_to_dv :: Rational -> Integer x_duration :: Duration -> (Content, [Content], Maybe Content) x_tuplet_t_elem :: (Integer, Duration) -> [Content] x_tuplet_t :: Maybe Tuplet_T -> [Content] x_ornament_t :: Ornament_T -> Content x_ornament :: N_Annotation -> Maybe Content x_ornaments :: [N_Annotation] -> Maybe Content x_font_style :: Font_Style_T -> String x_font_weight :: Font_Weight_T -> String x_font_attr :: Maybe Font_T -> [Attr] x_technical_el :: N_Annotation -> Maybe Content x_technical :: [N_Annotation] -> Maybe Content x_placement_t :: Placement_T -> Attr c_underscore_to_hyphen :: Char -> Char c_hs_to_xml :: Char -> Char x_articulation_t :: Articulation_T -> Content x_articulation :: N_Annotation -> Maybe Content x_articulations :: [N_Annotation] -> Maybe Content x_dynamic_mark_t :: Dynamic_Mark_T -> Content x_notation :: N_Annotation -> Maybe Content x_notations :: [N_Annotation] -> Maybe Content x_note_elem :: N_Annotation -> Maybe Content x_metronome :: Tempo_Marking -> Content x_pedal_type :: Pedal_T -> Attr dynamic_mark_to_sound_value :: Dynamic_Mark_T -> Maybe Double x_direction :: Direction_T -> Maybe Content x_n_direction :: N_Annotation -> Maybe Content x_m_direction :: M_Annotation -> Maybe Content x_sound :: Sound_T -> Content x_accidental :: [N_Annotation] -> [Content] x_voice :: [N_Annotation] -> [Content] x_notehead_t :: Notehead_T -> [Content] x_notehead :: [N_Annotation] -> [Content] x_staff :: [N_Annotation] -> [Content] x_beam_t :: Beam_T -> [Content] x_beam :: [N_Annotation] -> [Content] x_note :: Note -> [Content] x_attribute :: M_Annotation -> Maybe Content x_attributes :: [M_Annotation] -> Content x_measure :: (Integer, Measure) -> Content set_divisions :: [Measure] -> [Measure] x_part_name :: Name -> [Content] x_p_annotation :: P_Annotation -> [Content] x_score_part :: Part -> Content x_group_name :: Name -> [Content] x_group_symbol_t :: Group_Symbol_T -> Content x_g_annotation :: G_Annotation -> [Content] x_part_group :: Part -> [Content] x_part_list :: [Part] -> Content x_part :: Part -> Content part_set_id :: (ID, Part) -> (ID, Part) score_set_ids :: Score -> Score x_score :: Score -> [Content] -- | Make header from tuple of title, number, -- dedication and composer. x_header :: (String, String, String, String) -> [Content] score_partwise' :: [Attr] -> [Content] -> Element renderMusicXML :: [Content] -> String module Music.Typesetting.Process -- | If M_Annotation is a M_Clef set the staff number. m_clef_set_staff :: Integer -> M_Annotation -> Maybe M_Annotation -- | Process a Note sequence adding D_End_Hairpin -- annotations as required, ie. where there is an open hairpin annotation -- and a Note has a dyamic annotation without a close hairpin -- annotation. n_add_end_hairpins :: [Note] -> [Note] -- | Delete persistent annotations or like. prune :: (a -> a -> Bool) -> (b -> Maybe a) -> (a -> b -> b) -> [b] -> [b] m_delete_annotation :: M_Annotation -> Measure -> Measure m_remove_duplicate_ts :: [Measure] -> [Measure] m_remove_duplicate_tempo_marking :: [Measure] -> [Measure] module Music.Typesetting.Literal n_annotate :: N_Annotation -> Note -> Note (&) :: Note -> N_Annotation -> Note n_annotate_l :: [N_Annotation] -> Note -> Note -- | Apply function to first element of list. -- --
-- annotate_first (+) 9 [1,2,3] == [10,2,3] --annotate_first :: (a -> x -> x) -> a -> [x] -> [x] -- | Apply function to all but the last element of list. -- --
-- annotate_except_last (+) 7 [1,2,3] == [8,9,3] --annotate_except_last :: (a -> x -> x) -> a -> [x] -> [x] -- | Apply function to middle elements of list. -- --
-- annotate_middle (+) 9 [1,2,3,4] == [1,11,12,4] -- annotate_middle (+) 9 [1,4] == [1,4] --annotate_middle :: (a -> x -> x) -> a -> [x] -> [x] -- | Apply function to last element of list. -- --
-- annotate_last (+) 7 [1,2,3] == [1,2,10] --annotate_last :: (a -> x -> x) -> a -> [x] -> [x] -- | Apply function to first and last elements of list. -- --
-- annotate_bracket (+) (9,7) [1,2,3] == [10,2,10] --annotate_bracket :: (a -> x -> x) -> (a, a) -> [x] -> [x] n_annotate_first :: [N_Annotation] -> [Note] -> [Note] n_annotate_last :: [N_Annotation] -> [Note] -> [Note] n_annotate_bracket :: (N_Annotation, N_Annotation) -> [Note] -> [Note] -- | Apply annotations to the start and end points of each tied note. n_annotate_tie_endpoints :: ([N_Annotation], [N_Annotation]) -> Note -> Note n_edit_duration :: (Duration -> Duration) -> Note -> Note tuplet :: (Integer, Integer) -> [Note] -> [Note] m_annotate :: M_Annotation -> Measure -> Measure -- | Infix variant of m_annotate with reverse argument order. (&.) :: Measure -> M_Annotation -> Measure m_annotate_l :: [M_Annotation] -> Measure -> Measure m_annotate_first :: [M_Annotation] -> [Measure] -> [Measure] m_annotate_last :: [M_Annotation] -> [Measure] -> [Measure] m_annotate_bracket :: (M_Annotation, M_Annotation) -> [Measure] -> [Measure] m_duration :: Measure -> [Duration] m_duration_rq :: Measure -> Rational empty_measure :: (Integer, Integer) -> Measure stem_tremolo :: Integer -> Note -> Note bass_clef :: M_Annotation percussion_clef :: M_Annotation treble_clef :: M_Annotation alto_clef :: M_Annotation tenor_clef :: M_Annotation bass_8vb_clef :: M_Annotation treble_15ma_clef :: M_Annotation treble_8vb_clef :: M_Annotation treble_8va_clef :: M_Annotation accent :: N_Annotation trill_mark :: N_Annotation begin_slur :: N_Annotation end_slur :: N_Annotation begin_slide :: N_Annotation end_slide :: N_Annotation laissez_vibrer :: N_Annotation fermata :: N_Annotation arpeggiate :: N_Annotation pedal_down_mark :: N_Annotation pedal_up_mark :: N_Annotation pedal_down :: N_Annotation pedal_continue :: N_Annotation pedal_change :: N_Annotation pedal_up :: N_Annotation part :: Name -> [Measure] -> Part group :: Name -> [Part] -> Part -- | Merge parallel voices voices :: [[Measure]] -> [Measure] -- | Translate from D_Annotation to N_Annotation. Note: does -- not necessarily translate Begin_Tuplet correctly. from_d_annotation :: D_Annotation -> N_Annotation module Music.Typesetting.Ascribe -- | Predicate or. p_or :: (t -> Bool) -> (t -> Bool) -> t -> Bool -- | Drop annotation on repeated notes. set_note_duration :: (Duration_A, Note) -> Note -- | Variant of mm_ascribe_chd post-processed by -- set_note_duration. mm_ascribe :: [[Duration_A]] -> [Note] -> [[Note]]