module Music.LilyPond.Light.Constant where import Music.LilyPond.Light.Model -- * Annotations pppp,ppp,pp,p,mp,mf,f,ff,fff,ffff,fp,sfz :: Annotation pppp = Dynamic PPPP ppp = Dynamic PPP pp = Dynamic Pianissimo p = Dynamic Piano mp = Dynamic MezzoPiano mf = Dynamic MezzoForte f = Dynamic Forte ff = Dynamic Fortissimo fff = Dynamic FFF ffff = Dynamic FFFF fp = Dynamic FP sfz = Dynamic SFZ cresc,decr,end_cresc,end_decr,espressivo ::Annotation cresc = Dynamic Begin_Crescendo decr = Dynamic Begin_Decrescendo end_cresc = Dynamic End_Dynamic end_decr = Dynamic End_Dynamic espressivo = Dynamic Espressivo arpeggio,fermata,flageolet,harmonic,laissezVibrer,glissando :: Annotation arpeggio = Articulation Arpeggio fermata = Articulation Fermata flageolet = Articulation Flageolet harmonic = Articulation Harmonic laissezVibrer = Articulation LaissezVibrer glissando = Articulation Glissando marcato,staccato,tenuto,accent :: Annotation marcato = Articulation Marcato staccato = Articulation Staccato tenuto = Articulation Tenuto accent = Articulation Accent -- * Clefs bass_clef,tenor_clef,alto_clef,treble_clef,percussion_clef :: Music bass_clef = Clef Bass 0 tenor_clef = Clef Tenor 0 alto_clef = Clef Alto 0 treble_clef = Clef Treble 0 percussion_clef = Clef Percussion 0 bass_8vb_clef,treble_8va_clef,treble_8vb_clef,treble_15ma_clef :: Music bass_8vb_clef = Clef Bass (-1) treble_8va_clef = Clef Treble 1 treble_8vb_clef = Clef Treble (-1) treble_15ma_clef = Clef Treble 2 -- * Commands l :: Music l = Command BarlineCheck double_barline,final_barline :: Music double_barline = Command (Bar DoubleBarline) final_barline = Command (Bar FinalBarline) system_break,no_system_break :: Music system_break = Command Break no_system_break = Command NoBreak page_break,no_page_break :: Music page_break = Command PageBreak no_page_break = Command NoPageBreak auto_beam_off :: Music auto_beam_off = Command AutoBeamOff tuplet_down,tuplet_neutral,tuplet_up :: Music tuplet_down = Command TupletDown tuplet_neutral = Command TupletNeutral tuplet_up = Command TupletUp voice_one,voice_two :: Music voice_one = Command VoiceOne voice_two = Command VoiceTwo stem_down,stem_neutral,stem_up :: Music stem_down = Command StemDown stem_neutral = Command StemNeutral stem_up = Command StemUp dynamic_down,dynamic_neutral,dynamic_up :: Music dynamic_down = Command DynamicDown dynamic_neutral = Command DynamicNeutral dynamic_up = Command DynamicUp begin_8va,end_8va :: Music begin_8va = Command (Octavation 1) end_8va = Command (Octavation 0) -- * Annotations ped,no_ped :: Annotation ped = Phrasing SustainOn no_ped = Phrasing SustainOff tie :: Annotation tie = Begin_Tie -- | Beaming annotations. begin_beam,end_beam :: Annotation begin_beam = Phrasing Begin_Beam end_beam = Phrasing End_Beam -- | Slur annotations. begin_slur,end_slur :: Annotation begin_slur = Phrasing Begin_Slur end_slur = Phrasing End_Slur slur_down,slur_neutral,slur_up :: Music slur_down = Command (User "\\slurDown") slur_neutral = Command (User "\\slurNeutral") slur_up = Command (User "\\slurUp") -- | Phrasing slur annotations. begin_phrasing_slur,end_phrasing_slur :: Annotation begin_phrasing_slur = Phrasing Begin_PhrasingSlur end_phrasing_slur = Phrasing End_PhrasingSlur -- * Accidentals rAcc,cAcc :: Annotation rAcc = ReminderAccidental cAcc = CautionaryAccidental set_accidental_style_dodecaphonic :: Music set_accidental_style_dodecaphonic = let x = "#(set-accidental-style 'dodecaphonic)" in Command (User x) set_accidental_style_neo_modern :: Music set_accidental_style_neo_modern = let x = "#(set-accidental-style 'neo-modern)" in Command (User x) set_accidental_style_modern :: Music set_accidental_style_modern = let x = "#(set-accidental-style 'modern)" in Command (User x) -- * Paper a4_paper :: Paper a4_paper = Paper {binding_offset = Length 0 MM ,bottom_margin = Length 6 MM ,indent = Length 15 MM ,inner_margin = Length 10 MM ,left_margin = Length 10 MM ,outer_margin = Length 20 MM ,paper_width = Length 210 MM ,paper_height = Length 297 MM ,ragged_last = False ,ragged_last_bottom = True ,right_margin = Length 10 MM ,systems_per_page = Nothing ,top_margin = Length 5 MM ,two_sided = False} length_scale :: Double -> Length -> Length length_scale n (Length x u) = Length (n * x) u paper_incr_size :: Paper -> Paper paper_incr_size x = let wd = paper_width x ht = paper_height x in x { paper_width = ht, paper_height = (length_scale 2 wd) } a3_paper :: Paper a3_paper = paper_incr_size a4_paper a2_paper :: Paper a2_paper = paper_incr_size a3_paper landscape :: Paper -> Paper landscape x = let wd = paper_width x ht = paper_height x in x { paper_width = ht, paper_height = wd } -- * Settings default_score_settings :: Score_Settings default_score_settings = Score_Settings { independent_time_signatures = False } -- * Header default_header :: Header default_header = Header {dedication = "" ,title = "" ,subtitle = "" ,composer = "" ,tagline = ""}