Home
doc - WikiTeX.org
Contents
1. 224 284 BreathingSign esses sss 102 150 broken chord ee ciclos oia ee wets did 103 WA dd beet 69 C CARENZA pt x xe da Vena 88 callan sas na a 67 calling code during interpreting 239 calling code on layout objects 239 Ij PEE 165 Ccaps mark p oseiuylw ERES UE eene estos 165 cautionary accidental 74 center alighi eit nie A e 165 center align markup 165 changing properties 203 Cha goad Ea 166 Char an ii Aina 166 Choi ii is RA 89 choralkscore icce rose rione 129 choral tenor clef isise retrati i e ES 83 chord diagrams is arosi tia eni Leki pE same 139 chord entty ic eet epp eer a Poni 119 chord modens ti ee he Obed eR ER 119 chord names 24 118 121 chordNameEzceptions 122 ChordNames 121 122 183 203 chordNameSeparator 123 chordNoteNamer iii dc da 123 chordPrefixSpacer 123 chordRootNamer 123 chords s52 Mitte anise SS 22 24 121 Chords Dex venia vehi eo 75 Chords Mode soiseid oreet pi does hale 119 chords JZZ sip iaia A e 124 church mod s ile eli dee 84 IA tino tate ea 166 CINCLe Markup ye ohh sides ee Gosh ri de 166 CLO Este de p SCRI ia termed 12 Clef srt li wee xu ran eee 84 ClO Sea tice peu robe p
2. Options are put in brackets c 4 16 Larger examples can be put into a separate file and introduced with lilypondfile Screech and boink Random complex notation Han Wen Nienhuys Chapter 12 lilypond book Integrating text and music 243 12 2 Integrating LaTEX and music La TEX is the de facto standard for publishing layouts in the exact sciences It is built on top of the TEX typesetting engine providing the best typography available anywhere See The Not So Short Introduction to LaTgX http www ctan org tex archive info lshort english for an overview on how to use LaT X Music is entered using begin options go here lilypond YOUR LILYPOND CODE end lilypond or Lilypondfile Loptions go here filename or lilypond YOUR LILYPOND CODE Running lilypond book yields a file that can be further processed with LaT X Since lilypond book produces lilypond snippets as includegraphics NAME eps you must add usepackage graphics or usepackage graphicx to the preamble of the LaTeX document We show some examples here The lilypond environment begin quote fragment staffsize 26 lilypond c d e f g2g2 end lilypond produces SSS The short version Lilypond quote fragment staffsize 11 lt c e g gt produces ter Currently you cannot include or within lilypond so this command is only us
3. de te See also This manual Section 6 1 2 Pitches page 73 Section 6 1 8 Durations page 76 6 1 2 Pitches The most common syntax for pitch entry is used for standard notes and Nchordmode modes In these modes pitches may be designated by names The notes are specified by the letters a through g The octave is formed with notes ranging from c to b The pitch c is an octave below middle C and the letters span the octave above that C clef bass a 4 b cdefgabc d e clef treble f g a b c ve ea The optional octave specification takes the form of a series of single quote characters or a series of comma characters Each raises the pitch by one octave each lowers the pitch by an octave 2 22 2 22 2 c Cc e gd d era 3 A sharp is formed by adding is to the end of a pitch name and a flat is formed by adding es Double sharps and double flats are obtained by adding isis or eses These names are the Dutch note names In Dutch aes is contracted to as but both forms are accepted Similarly both es and ees are accepted Chapter 6 Basic notation 74 ceses4 ces c cis cisis There are predefined sets of note names for various other languages To use them include the language specific init file For example Ninclude english ly The available language files and the note names they define
4. 142 nelisma seiners imala Lio iene pp io 24 Mel Maa o 126 Melisma translator 129 MENSUAL eee 142 Mensural ligatures 150 Mensural_ligature_engraver 143 150 151 MensuralStaffContext 157 MensuralVoiceContezt 157 UA Hee pl E Cer t ees 85 metronome marking 175 MetronomeMark 176 mezzosoprano clef 83 MIDI nite ets teen Eun i ag 229 249 MIDI Plock iscsi lise sie idos de dias 230 ninim mEre t oee ARA Tria 138 modern style accidentals 196 287 modern cautionary sene 197 nodern VolC8 IAA A he ur UD ede 197 modern voice cautionary 197 modes editor 0 LL 70 modifiers in chords 120 ya Yo yata YA AA AAA he 98 MOVING text Wai deo ande 171 multi measure rests 173 MultiMeasureRest 175 MultiMeasureRestMusicGroup 175 MultiMeasureRestNumber 175 MultiMeasureRestTezt 175 multiple voices eie ai ie 26 M Up esit e ale me re ari BER ee arit 251 MUSIC CLASSES cai ELE rS 232 Music engraving by LilyPond 225 MUSA E VIR 78 music expression AA e nn 18 Music expressions
5. 173 Rests multi measure 173 TE VEIS Miri eR ea er er ate 98 RevertProperty 207 RhythmicBtaff le ee E 134 Appendix G LilyPond index right aligni ii siii we Pee ia iii 170 right align markup sseseee ss 170 A oR dei ia 170 roman markup i2al usu PR ene euh 170 FOOt of chord i ir orcs be Les ber Rev 120 rotated text oh aie paio 170 S n 76 SUS idos ia ii 170 SANS Markup ur siii glee eres ii 170 SATB Lll Apia 129 Scale sono DIERUM VE det icy yet 11 Scheme areal HEWANI qa serum 10 253 Scheme duni eoe eem Bd each cect 64 Scheme errori caiano eR REA FLA I ug 67 Scheme in line code 253 SCOLO pirati AR a ei 171 SCOLO Ai ee 86 SCOZG ow iE ero ria 189 201 203 Score markp isr c ecu Drame eiae en 171 SCLIPt nct biu o Gleis iet 99 script on multi measure rest 174 SCHIDUS oU a O 97 search in manual 9 search Patti LET Li o ah 65 SELMA ed ue em wt RR Res 98 segno on bar line 161 self alignment interface 213 semi flats semi sharps 75 A lose pa dar batte LO en 171 Semif lat markup aoire IAA iex i 171 senisharp HAA 171 semisharp markup 171 SeparatingGroupSpanner 224 SeparationItem 2 ee eee eee eee 224 Seg
6. 148 Gynllieziu iiij ee tens SLM ae dad 164 D decrescendo 00L eeeeee 21 101 defaultBarType 88 defining markup commands 236 dil aaa Peto PEE 120 diminuendor rice nre te IE ES 101 dir Co lum eode m eem E ur ets 166 dir column markup 0 6 e rrr ees 166 distance between staves 221 distance between staves in piano music 115 AVION Se IR 149 division nidad PP ER ub de SES 149 documents adding music to 243 DotColunmD 2 cedro eet ee dia Toner tw eeu 77 DOC ette ce ERI Det HUS IR 77 dotted AA e pn tee ala 11 double flatrer ion res e ian tren 13 double Shar Prius tadas ul dee a 13 double flat ia rr DRE Rte 166 doubleflat markup 166 DoublePercentRepeat 114 doublesharp ce ROT eru trae 166 doublesharp markup 166 o A RS 98 a oli hne ot ei i 166 draw circle markup 166 drums undue e red p RR UE 134 135 DIS tab caia balas nS EG 135 137 DEV OC a ste are TRA 135 137 AUFALTON nies Ra ed tere ER IR RR 11 AUTO GON s cuve ri pe tr ed ded ete on d Lil 16 DVI file i Dei iss 13 AVID c Stic segs ente ues tratte s et lc us 244 dynamic uo ede cali iue dii ii 166 dynamic marku p sorio dls teary ias 166 DynamicLineSpanner 102 dynamics enu ot Lie ne reed LEE 21 Dynamics
7. If there are only a few measures of rest LilyPond prints church rests a series of rectangles in the staff To replace that with a simple rest use MultiMeasureRest expand limit set Score skipBars t R1x2 R1 5 R1 9 override MultiMeasureRest expand limit 1 R1 2 R1 5 R1x 9 2 5 9 25 9 e ra a Texts can be added to multi measure rests by using the note markup syntax Section 8 1 4 Text markup page 162 A variable fermataMarkup is provided for adding fermatas set Score skipBars t time 3 4 R2 10 markup italic ad lib R2 fermataMarkup ad lib 10 Warning This text is created by MultiMeasureRestText not TextScript override TextScript padding 5 R1 low override MultiMeasureRestText padding 5 Ri high high low pc Chapter 8 Advanced notation 175 If you want to have text on the left end of a multi measure rest attach the text to a zero length skip note i e s1 0 Allegro R1 4 See also Program reference MultiMeasureRestMusicGroup MultiMeasureRest The layout object MultiMeasureRestNumber is for the default number and MultiMeasureRestText for user specified texts Bugs It is not possible to use fingerings e g R1 4 to put numbers over multi measure rests And the pitch of multi measure rests or staff centered rests can not be influenced There is no way to au
8. be fap It is also possible to print dynamics in round parenthesis or square brackets These are often used for adding editorial dynamics rndf markup center align line bold italic dynamic f bold italic boxf markup bracket dynamic f c 1_ rndf c 1_ boxf 8 2 Preparing parts This section describes various notation that are useful for preparing individual parts 8 2 1 Multi measure rests Rests for one full measure or many bars are entered using R It is specifically meant for full bar rests and for entering parts the rest can expand to fill a score with rests or it can be printed as a single multi measure rest This expansion is controlled by the property Score skipBars If this is set to true empty measures will not be expanded and the appropriate number is added automatically time 4 4 r1 R1 R1 2 set Score skipBars t R1 17 R1 4 17 4 I as Chapter 8 Advanced notation 174 The 1 in R1 is similar to the duration notation used for notes Hence for time signatures other than 4 4 you must enter other durations This can be done with augmentation dots or fractions set Score skipBars t time 3 4 R2 R2 2 time 13 8 R1 13 8 R1 13 8 12 time 10 8 R4 5 4 220 Am An R spanning a single measure is printed as either a whole rest or a breve centered in the measure regardless of the time signature
9. Chapter 3 Example templates 45 3 5 Ancient notation templates 3 5 1 Transcription of mensural music When transcribing mensural music an incipit at the beginning of the piece is useful to indicate the original key and tempo While today musicians are used to bar lines in order to faster recognize rhythmic patterns bar lines where not yet invented during the period of mensural music in fact the meter often changed after every few notes As a compromise bar lines are often printed between the staves rather than on the staves version 2 6 0 global set Score skipBars t incipit once override Score SystemStartBracket transparent t override Score SpacingSpanner spacing increment 1 0 tight spacing key f major time 2 2 once override Staff TimeSignature style neomensural override Voice NoteHead style neomensural override Voice Rest style neomensural set Staff printKeyCancellation f cadenzaOn turn off bar lines skip 1 10 once override Staff BarLine transparent f bar skip 1 1 need this extra skip such that clef change comes after bar line bar main revert Score SpacingSpanner spacing increment CHECK no effect cadenzaOff turn bar lines on again once override Staff Clef full size change t set Staff forceClef t key g major time 4 4 override Voice NoteHead style
10. part combm r srt ect rv RA M ens PartCombineMusic partial maua aaa Pea Redman a wa Aaa percent repeats uni thus PercentRepeat sees eens PercentRepeatedMusic PETCUSSION i Ro pae ias ee la Petr cChzir k li tease Rte PEDE cds phrasing brackets phrasing marks Sises aue sesuo dd plirasing slurs ima paio rh re ep ke md phrasing in lyfle8 ubi ee ee PhirasingSlurici iege da o latas piano accidentals 0oooooooooocmoooo PianoPedalBracket PianoBtaff nii lion iive A e ia pipeSymbol I a a gione Ritch hames sims ie ia ii ALI Arial Pitch squash engraver pitches ceo er e iren E ee point and click is fs deduce ana ed mes 288 polymetric scores 205 polyphony essan ni nta d Ras d rts 26 105 POA e ym EE a a de E 98 POSTES Pride 170 PostScript output 64 postscript markup 170 prall veces yt ise 98 AS noia eels eee nares 98 prall Ups sets ay paca eet rd 98 prallmordent 98 prallprall 222 211 2 9 34 A BIB dipl iis 98 previewimage 245 printing chord names 121 Program reference 201 Programming error 67 Properties soni ie m les ds 10 203 properti
11. 223 224 SpanBari st IA 88 Sguare neumes ligatures 151 Staccatissimo ia 26 ok ek E 98 Sacco iio a 20 98 o tA ma s ieee 76 88 116 Staff palio idiota 133 Staff 148 178 183 187 191 194 197 201 203 204 206 207 208 209 223 249 stalf dist nce cool pod 221 Stalk wa Ya DA Pri daa 89 staff lines setting numberof 90 staff lines setting thickness of 90 Staff h tati n ii is ire lla 83 staff size setting 2c eee eee ee 217 staff switch manual 27 116 stall switching ziii riesi pei 117 stat Chola dace DIM bu iniu 89 Staff multiple cic vx ada hail 89 Staff midiInstrument 230 BAE AA a pola E 89 178 StaffSpacing ai a i 224 Staf Symboli III AAA 91 Staf fSyMbo k reist pra a eie E aeai a EEE a 217 stanza UMD uo a de 131 StanzaNumber esee 132 Start of systelns siii sabias 89 staves per page 221 Stel nicole 146 239 stem cross staff 0 000 115 stem spacing correction 223 stemLeftBeamCount 94 stemRightBeamCount 94 StemIremolo4 50 04 p V ens UVP ERIT LA 113 Stencil tiglio M pH boe nl etas 171 stencil markup ro bec ini 171 STOPped oe lille e oe heat CHEER 98 String numbers 137 StringNumber lipolisi paiolo 137 SECULAR 171 STrut A
12. 0 0 5 destre 6 6 el new Voice stemUp once override Voice Beam positions 0 0 5 cl ecc cl gt gt 8 4 7 Improvisation Improvisation is sometimes denoted with slashed note heads Such note heads can be created by adding a Pitch squash engraver to the Staff or Voice context Then the following command set squashedPosition 0 override NoteHead style slash switches on the slashes There are shortcuts improvisationOn and an accompanying improvisationOff for this command sequence They are used in the following example new Staff with consists Pitch_squash_engraver transpose c c e8 e g a a16 bes a8 g improvisationOn e8 e2 e8 f4 fis8 fis2 improvisationOff a16 bes a8 ge Chapter 8 Advanced notation 192 8 5 Educational use With the amount of control that LilyPond offers one can make great teaching tools in addition to great musical scores 8 5 1 Balloon help Elements of notation can be marked and named with the help of a square balloon The primary purpose of this feature is to explain notation The following example demonstrates its use context Voice applyoutput add balloon text NoteHead heads or tails MCL 53 c8 eads or tails The function add balloon text takes the name of a grob the label to print and the position where to put the label relative to the object In the abov
13. The following bar types are available To allow a line break where there is no visible bar line use bar n This will insert an invisible bar line and allow line breaks at this point In scores with many staves a Nbar command in one staff is automatically applied to all staves The resulting bar lines are connected between different staves of a StaffGroup context StaffGroup lt lt new Staff e 4 q bar JI f e new Staff clef bass c geg gt gt Chapter 6 Basic notation 88 new Staff clef bass c2 c2 gt gt Commonly tweaked properties The command bar bartype is a short cut for doing Nset Timing whichBar bartype When ever whichBar is set to a string a bar line of that type is created A bar line is created whenever the whichBar property is set At the start of a measure it is set to the contents of Timing defaultBarType The contents of repeatCommands are used to override default measure bars You are encouraged to use Nrepeat for repetitions See Section 6 7 Repeats page 109 See also In this manual Section 6 7 Repeats page 109 Section 6 3 7 System start delimiters page 89 Program reference BarLine created at Staff level SpanBar across staves Examples input test bar lines ly 6 3 6 Unmetered music Bar lines and bar numbers are calculated automatically For unmetered music cade
14. 2 00 eee eee cece o 177 B r engraver niee a i e Dee ee 122 barCheckSynchronize 81 baini AE i eds ee ud 83 A eR PEINE UA 88 Bar Number IAA wy dee oS 178 base shortest duration 223 bassclef oseti ve heb ge rr s MR 83 BassEigur c lald dae deas 158 Basso Continue iui ER 157 beams venar lol she vue ice Des iid 15 beati athena ie aes des eeu fee p NB etd 165 Bea esee dt eee lo ecb d rg reg d 93 113 beamn mnark p iii ione liu iaa e 165 beams and line breaks 94 beams by hands io ara TUER EVE 15 beams kneed iidem Rma 94 beams manual 2 25 22 1 pk RR ves 94 beats per minute 175 between staves distance 221 bibliographic information 225 bigger ungieze4 de astu enel kA pa it Meet E late 165 bigger markup sessse esee 165 blackness riada Vega a e ined eer xtd 2 block comment regt Lex Lia 23 DO di a AA 165 bold mark p ti a 165 DO o da al LI i ii 165 DOx MATKUp ei oir A sidro 165 brace vertical 89 DEACKE Es Sess sio he aio at lia 165 bracket vertical ede Ret 89 bracket marku p e wies o METTE iR 165 bracketed y column 165 bracketed y column markup 165 Daku dme ee ei dea 194 BreakEvent iatale dae ens 224 breaking lines 224 breaking pages
15. Chapter 6 Basic notation 101 6 5 3 Dynamics Absolute dynamic marks are specified using a command after a note c4 ff The available dynamic marks are ppp pp p mp mf f ff fff fff fp sf sff sp spp sfz and rfz c ppp c pp c p c mp c mf c f c ff c fff c2 fp c sf c sff c sp c spp c sfz c rfz eS SS PPEPP P mf f SSIS fp Sf P PP fz Tf A crescendo mark is started with lt and terminated with or an absolute dynamic A decrescendo is started with gt and is also terminated with or an absolute dynamic Because these marks are bound to notes you must use spacer notes if multiple marks are needed during one note c lt cM d gt eN lt lt f1 s4 s4 lt s4 gt SA gt gt paa N This may give rise to very short hairpins Use minimum length in Voice Hairpin to lengthen them for example override Staff Hairpin minimum length 5 You can also use a text saying cresc instead of hairpins setTextCresc c lt d e fM setHairpinCresc e gt dc bM setTextDecresc c gt d e fM setTextDim e gt dc bM eS a cresc EE decr dim You can also supply your own texts set crescendoText markup italic cresc poco set crescendoSpanner dashed line a 2 lt a a a mf cresc poco mf Chapter 6 Basic notation 102 To create new dynamic marks
16. 6 2 5 Skipping corrected music The property Score skipTypesetting can be used to switch on and off typesetting completely during the interpretation phase When typesetting is switched off the music is processed much more quickly This can be used to skip over the parts of a score that have already been checked for errors relative c c8 d set Score skipTypesetting t eeeeeee e set Score skipTypesetting f c db bes ag c2 In polyphonic music Score skipTypesetting will affect all voices and staves saving even more time 6 2 6 Automatic note splitting Long notes can be converted automatically to tied notes This is done by replacing the Note_ heads_engraver by the Completion_heads_engraver In the following examples notes cross ing the bar line are split and tied new Voice with remove Note heads engraver Nconsists Completion heads engraver Ri c2 c8 d4 e f ga b c8 c2 b4 a g16 f4 e d c8 c2 This engraver splits all running notes at the bar line and inserts ties One of its uses is to debug complex scores if the measures are not entirely filled then the ties exactly show how much each measure is off Chapter 6 Basic notation 83 Bugs Not all durations especially those containing tuplets can be represented exactly with normal notes and dots but the engraver will not insert tuplets Completion_heads_engraver only affects notes it does not split res
17. 9 2 2 Constructing a tweak The general procedure of changing output that is entering a command like override Voice Stem thickness 3 0 means that we have to determine these bits of information e the context here Voice e the layout object here Stem e the layout property here thickness e asensible value here 3 0 We demonstrate how to glean this information from the notation manual and the program reference 9 2 3 Navigating the program reference Suppose we want to move the fingering indication in the fragment below c 2 stemUp f If you visit the documentation on fingering instructions in Section 6 5 2 Fingering instruc tions page 99 you will notice that there is written See also Program reference FingerEvent and Fingering This fragment points to two parts of the program reference a page on FingerEvent and one on Fingering The page on FingerEvent describes the properties of the music expression for the input 2 The page contains many links forward For example it says Accepted by Fingering engraver That link brings us to the documentation for the Engraver the plug in which says This engraver creates the following layout objects Fingering In other words once the FingerEvents are interpreted the Fingering engraver plug in will process them The Fingering engraver is also listed to create Fingering objects Lo and behold that is also the second bit of information
18. Init files scm translation functions scm contains the definition of format mark numbers and format mark letters They can be used as inspiration for other formatting functions Examples input regression rehearsal mark letter ly input regression rehearsal mark number 1ly 8 2 4 Bar numbers Bar numbers are printed by default at the start of the line The number itself is stored in the currentBarNumber property which is normally updated automatically for every measure Bar numbers can be typeset at regular intervals instead of at the beginning of each line This is illustrated in the following example whose source is available as input test bar number regular interval 1ly Bar numbers can be typeset manually by tweaking the markFormatter property relative c set Score markFormatter lambda mark context make bold markup make box markup number gt string ly context property context gt currentBarNumber ci bar mark default c1 c1 mark default c1 bar Bar numbers can be manually changed by setting the Staff currentBarNumber property relative c repeat unfold 4 c4 c c c break set Score currentBarNumber 50 repeat unfold 4 c4 c c c Chapter 8 Advanced notation 178 50 dade See also Program reference BarNumber Examples nput test bar number e
19. default override Voice Rest style default FIXME setting printKeyCancellation back to t must not occur in the first bar after the incipit Dto for forceClef Therefore we need an extra skip skip 1 1 set Staff printKeyCancellation t set Staff forceClef f skip 1 7 the actual music let finis bar go through all staves override Staff BarLine transparent f Chapter 3 Example templates 4 finis bar bar not discantusNotes transpose c c set Staff instrument Discantus 4 incipit clef neomensural c1 c 1 s2 Y two bars skip 1 8 eight bars skip 1 1 one bar main clef treble d 2 d 4 be d 2 c4 e 4 d 8 c b a4 b a2 b4 c 8 d 4 c 4 once override NoteHead transparent b breve discantusLyrics lyricmode 4 incipit IV 4 main Ju bi la te De o om nis ter ra __ om altusNotes transpose c c 4 set Staff instrument Altus 4 incipit clef neomensural c3 ri 4 one bar f1 s2 two bars skip 1 7 seven bars skip 1 1 one bar t c 1 46 Chapter 3 Example templates 4 main clef treble r2 g2 e4 fis g two bars a2 g4 e fis g4 fis16 e fis4 gi once override NoteHead transparent t gi g breve altusLyrics lyricmode incipit IV main Ju bi la te two bars De
20. 0 om nis ter ra af acte 1 us tenorNotes transpose c c set Staff instrument Tenor 4 incipit clef neomensural c4 r longa four bars r breve two bars ri one bar Ci s2 two bars skip 1 1 one bar skip 1 1 one bar 4 main Nclef treble 8 R1 R1 R1 r2 d 2 d 4 be two bars once Voverride NoteHead transparent t e 1 d breve tenorLyrics lyricmode incipit IV main 4T Chapter 3 Example templates Ju bi la te two bars moo us bassusNotes 1 transpose c c set Staff instrument Bassus 4 incipit clef bass r maxima eight bars f1 s2 two bars skip 1 1 one bar main clef bass R1 R1 R1 R1 g2 e4 once Voverride NoteHead transparent t el g breve bassusLyrics lyricmode 4 incipit IV main Ju bi us score context StaffGroup choirStaff lt lt context Voice discantusNotes lt lt global discantusNotes gt gt context Lyrics discantusLyrics lyricsto discantusNotes discantusLyrics context Voice altusNotes lt lt global altusNotes gt gt context Lyrics altusLyrics lyricsto altusNotes altusLyrics context Voice tenorNotes lt lt global tenorNotes gt gt context Lyrics tenorLyrics lyricsto tenorNotes tenorLyrics context Voice 48 Chapter 3 Ex
21. 133 AmbitusAccidental 134 AmbitusLine sari ie iena PRA ERR US 134 AmbitusNoteHead 134 Anacrbusezs deed eset utr sb e tes diri 22 DAMACTUSIS ilm ARE deu 86 appogglat ta xv invo v PMID 23 95 ATKKTA I esee pide p hes es een eal 251 ADE tilda red 103 o ii eee die iena 104 articulista lei 20 articulations 7 shit Sio ia ee 148 Articulations sispa rete i i ico 97 artificial harmonics 159 Appendix G LilyPond index AS CIL 0n21 5 unde a 164 QUE qr siepe bb imet cta V dt perte ned 120 alito knee gap woos UA Xe ER 94 autobeam wise iol ong Ge ee ale dEi 200 autoBeamidg ovina e dee idR Ree 200 autoBeamSettings 198 AutoChangeMusic 115 Automatic accidentals 196 automatic beam generation 200 automatic beams tuning 198 automatic part combining 182 Automatic staff changes 115 automatic syllable durations 127 Axis group engraver 221 B Backend sec aM REPRE ES Re iet a 207 213 Bagia eren Is cR TRUE 140 balance c pc e fall NODE IR 2 ballOOnz zia d tnr uet tbt a ET COR Rs 192 lobi MN PT 124 Bar checks att Ey Uu ET prix iix 81 Bat nes slo ehe Re ad pane ie ies 87 bar lines symbols on 161 Bar numbers
22. 231 Music properties 232 Music Publisher virile rg seb 251 musical symbols 2 MUSIC iii ile LEALE 169 musicglyph markup 169 musicological analysis 194 musicology cs 240 N name of singer Wai WA AA eene 131 natural es AA AAA AAA 169 nat ral wanipa AA Deu Ven 169 NEW CONCERTS ii ee ty te elec aye 202 no reset accidental style 197 non empty texts L ce eee 160 Non guitar tablatures 138 normal size sub sees eee ee 169 normal size sub markup 169 normal size super v goa p eeu 169 normal size super markup 169 normal tekt r aa rea Meas a 169 normal text markup 169 nornalsize slo ari are pt 169 normalsize markup 169 notation ekKplaining 192 MOC i e Pei 11 NS ET 169 Note entrys m dy vii ade varianza 73 note grouping bracket 194 note heads e rd li ah 142 note names Dutch 73 Note specification 73 hote by bumber iii AAA 169 note by number markup 169 note eVvenb i ode AUS etes qu IA 135 note head interface 215 UE DA sleale eo 169 Note heads engraver 82 Note hea
23. This code moves the ambitus to the left The same effect could have been achieved with extra offset but then the formatting system would not reserve space for the moved object See also Program reference Ambitus AmbitusLine AmbitusNoteHead AmbitusAccidental Examples input regression ambitus ly Bugs There is no collision handling in the case of multiple per voice ambitus 7 3 9 Other vocal issues Parlato is spoken without pitch but still with rhythm it is notated by cross noteheads This is demonstrated in Section 8 4 5 Special noteheads page 190 7 4 Rhythmic music Rhythmic music is primarily used for percussion and drum notation but it can also be used to show the rhythms of melodies 7 4 1 Showing melody rhythms Sometimes you might want to show only the rhythm of a melody This can be done with the rhythmic staff All pitches of notes on such a staff are squashed and the staff itself has a single line context RhythmicStaff time 4 4 c4 e8 f g2 r4 g r2 g1 32 ri Ea o _ See also Program reference RhythmicStaff Examples input regression rhythmic staff ly 7 4 2 Entering percussion Percussion notes may be entered in drummode mode which is similar to the standard mode for entering notes Each piece of percussion has a full name and an abbreviated name and both can be used in input files drums 4 hihat hh bassdrum bd i Tert The complete l
24. grace c16 7 e gl c e g gt 2 repeat tremolo 8 c32 c c c gt 1 Chapter 6 Basic notation 92 Predefined commands tieUp tieDown NcieNeutral tieDotted tieDashed tieSolid See also In this manual Section 6 2 6 Automatic note splitting page 82 Program reference Tie Bugs Switching staves when a tie is active will not produce a slanted tie Formatting of ties is a difficult subject The results are often not optimal 6 4 2 Slurs A slur indicates that notes are to be played bound or legato They are entered using parentheses f g a a8 b al g2 f4 c e 2 b d gt 2 TIT EE The direction of a slur can be specified with slurDIR where DIR is either Up Down or Neutral automatically selected However there is a convenient shorthand for forcing slur directions By adding _ or before the opening parentheses the direction is also set For example cA c col c Only one slur can be printed at once If you need to print a long slur over a few small slurs please see Section 6 4 3 Phrasing slurs page 93 Commonly tweaked properties Some composers write two slurs when they want legato chords This can be achieved in LilyPond by setting doubleSlurs set doubleSlurs t lt c e gt 4 d f gt c e d f gt 51 1 SE Predefined commands slurUp slurDown slurNeutral slurDashe
25. padding pa applymusic with padding 3 c 2 c 3 gro 3 The function created by with padding 3 adds override and revert statements around the music given as an argument and returns this new expression Thus this example is equiv alent to C 3 W 1 Noverride TextScript padding 3 Tonus revert TextScript padding C eu 4 This function may also be defined as a music function withPadding def music function parser location padding music number ly music Noverride TextScript padding padding music revert TextScript padding Chapter 11 Interfaces for programmers 236 c 1 withPadding 3 c 2 c 7 3 c 4 j 23 1 4 ce 11 2 Markup programmer interface Markups are implemented as special Scheme functions When applied with as arguments an output definition layout or paper and a list of properties and other arguments produce a Stencil object 11 2 1 Markup construction in Scheme The markup macro builds markup expressions in Scheme while providing a LilyPond like syntax For example markup column line bold italic hello raise 0 4 world bigger line foo bar baz is equivalent to markup column Mine bold italic hello raise 0 4 world bigger line foo bar baz This example exposes the main translation rules between regular LilyPond markup syntax and S
26. new Staff c1 c new Staff c c gt gt See also The bar lines at the start of each system are SystenStartBar SystemStartBrace and SystemStartBracket Only one of these types is created in every context and that type is determined by the property systemStartDelimiter 6 3 8 Staff symbol Notes dynamic signs etc are grouped with a set of horizontal lines called a staff plural staves In LilyPond these lines are drawn using a separate layout object called staff symbol The staff symbol may be tuned in the number thickness and distance of lines using prop erties This is demonstrated in the example files input test staff lines ly input test staff size ly In addition staves may be started and stopped at will This is done with startStaff and stopStaff b4 b override Staff StaffSymbol line count 2 stopStaff startStaff bb revert Staff StaffSymbol line count stopStaff startStaff bb rre In combination with Frenched staves this may be used to typeset ossia sections n example is in input test ossia ly shown here ossia Serer mee Chapter 6 Basic notation 91 See also Program reference StaffSymbol Examples input test staff lines ly input test ossia ly input test staff size ly 6 4 Connecting notes This section deals with notation that affects groups of n
27. which is similar to times but does not create a tuplet bracket In this example music with the time signatures of 3 4 9 8 and 10 8 are used in parallel In the second staff shown durations are multiplied by 2 3 so that 2 3 9 8 3 4 and in the third staff shown durations are multiplied by 3 5 so that 3 5 10 8 3 4 relative c lt lt new Staff time 3 4 ciccleccil new Staff time 3 4 set Staff timeSignatureFraction 9 8 compressMusic 2 3 repeat unfold 6 c8 c c new Staff time 3 4 set Staff timeSignatureFraction 10 8 compressMusic 3 5 repeat unfold 2 c8 c c repeat unfold 2 c8 c c4 c4 times 2 3 c8 c c c4 Chapter 8 Advanced notation 189 Bugs When using different time signatures in parallel the spacing is aligned vertically but bar lines distort the regular spacing 8 4 2 Time administration Time is administered by the Time_signature_engraver which usually lives in the Score con text The bookkeeping deals with the following variables currentBarNumber The measure number measureLength The length of the measures in the current time signature For a 4 4 time this is 1 and for 6 8 it is 3 4 measurePosition The point within the measure where we currently are This quantity is reset to 0 whenever it exceeds measureLength When that happens currentBarNumber is incre
28. www nongnu org xml2ly which imports MusicXML http www musicxml com xml html e NoteEdit http noteedit berlios de which imports MusicXML http www musicxml com xml html e Rosegarden http www rosegardenmusic com which imports MIDI Appendix A Literature list 252 Appendix A Literature list If you need to know more about music notation here are some interesting titles to read Ignatzek 1995 Klaus Ignatzek Die Jazzmethode f r Klavier Schott s S hne 1995 Mainz Ger many ISBN 3 7957 5140 3 A tutorial introduction to playing Jazz on the piano One of the first chapters contains an overview of chords in common use for Jazz music Gerou 1996 Tom Gerou and Linda Lusk Essential Dictionary of Music Notation Alfred Pub lishing Van Nuys CA ISBN 0 88284 768 6 A concise alphabetically ordered list of typesetting and music notation issues covering most of the normal cases Read 1968 Gardner Read Music Notation A Manual of Modern Practice Taplinger Publish ing New York 2nd edition A standard work on music notation Ross 1987 Ted Ross Teach yourself the art of music engraving and processing Hansen House Miami Florida 1987 This book is about music engraving i e professional typesetting It contains di rections on stamping use of pens and notational conventions The sections on reproduction technicalities and history are also interesting Schirmer 2001 The G Schirmer AMP Manual of Style
29. 12 gt lt 5 markup number 6 gt PR e Although the support for figured bass may superficially resemble chord support it works much simpler The figuremode mode simply stores the numbers and FiguredBass context prints them as entered There is no conversion to pitches and no realizations of the bass are played in the MIDI file Internally the code produces markup texts You can use any of the markup text properties to override formatting For example the vertical spacing of the figures may be set with baseline Skip See also Program reference BassFigure object FiguredBass context Bugs Slash notation for alterations is not supported Chapter 7 Instrument specific notation 159 7 8 Other instrument specific notation This section includes extra information for writing for instruments 7 8 1 Artificial harmonics strings Artificial harmonics are notated with a different notehead style They are entered by marking the harmonic pitch with harmonic lt c g harmonic gt 4 Chapter 8 Advanced notation 160 8 Advanced notation This chapter deals with rarely used and advanced notation 8 1 Text This section explains how to include text with various formatting in your scores 8 1 1 Text scripts It is possible to place arbitrary strings of text or Section 8 1 4 Text markup page 162 above or below notes by using a string c text By default these indications do not influence the note spacing
30. 9 1 3 Modifying context plug ins Notation contexts like Score and Staff not only store properties they also contain plug ins called engravers that create notation elements For example the Voice context contains a Note_head_engraver and the Staff context contains a Key_signature_engraver For a full a description of each plug in see Program reference gt Translation gt Engravers Every context described in Program reference gt Translation gt Context lists the engravers used for that context It can be useful to shuffle around these plug ins This is done by starting a new context with new or context and modifying it like this new context with consists consists remove remove etc music where the should be the name of an engraver Here is a simple example which removes Time_signature_engraver and Clef_engraver from a Staff context lt lt new Staff f2g new Staff with remove Time_signature_engraver remove Clef_engraver p f2 g2 gt gt s In the second staff there are no time signature or clef symbols This is a rather crude method of making objects disappear since it will affect the entire staff The spacing is adversely influenced too A more sophisticated method of blanking objects is shown in Section 9 2 1 Common tweaks page 210 The next example shows a practical application Bar lines and time signatures are
31. Chapter 7 Instrument specific notation 136 e y x cb hc bd sn SS tomh e e gt gt tommh tomml toml tomfh tomfl The drum scheme supports six different toms When there are fewer toms simply select the toms that produce the desired result i e to get toms on the three middle lines you use tommh tomml and tomfh timbales style This typesets timbales on a two line staff y I e Ca m i timhsshtimlsslcb congas style This typesets congas on a two line staff Il e e e x cgh cghocghmssh cgl cglocglmssl bongos style This typesets bongos on a two line staff Il e e e x boh boho bohm ssh bol bolo bolmssl percussion style To typeset all kinds of simple percussion on one line staves o Hx x e eoe eoe w e e x e e tri trio trim gui guis guil cbcl tamb cab mar hc Chapter 7 Instrument specific notation 137 If you do not like any of the predefined lists you can define your own list at the top of your file define mydrums bassdrum default f 1 snare default f 0 hihat Cross f 1 pedalhihat xcircle stopped 2 lowtom diamond f 3 up drummode hh8 hh hh hh hhp4 hhp down drummode bd4 sn bd toml8 toml new DrumStaff lt lt set DrumStaff drumStyleTable alist gt hash table mydrums new DrumVoice voiceOne up new DrumVoice voiceTwo down gt gt mr
32. H E ie i Nieder ae della ei 101 Hairpin ehe ben ibd rendus 102 Hal Geonard zs deis Rt regia 194 half not LEVELS IE 11 A alte alice io ell dee aaa a 168 halign markup esee 168 o A ioni 168 hbracket markup 168 ITA RO MM EE 168 hcenter markup 168 headers ci on oie beet whe kin Re DEDI De 229 header pages sese ia olbia Pooh py 219 Hebrew usu cen wx vue nasali 164 Hidden notes erre ds 193 hiding objects 211 Hiding Staves AUA ce RE n cita 183 Horizontal bracket engraver 194 HorizontalBracket 195 KIPO oil n cab eis 168 hspace markup siria tell 168 286 nna p PEEL 243 HEME M SICO ri bas 240 hufnagel ese foie be We det iaa 142 huge ili a raaa tah 168 huge mMarkupi i ii bere gh ea tea a ate h 168 hyphens z2i yee ar dee unt heen th meee E 126 I identifiers vs properties 254 Ati ile t ane denn ii 9 IMPEOVOLCO gt cocida e Peet bane Sa 3s aa 209 including hles eee a 71 Md in fe sa fh X en 224 Index AA UA e io 10 instrument names 230 InstrumentName AA eee 179 Interfaces ao a a it 213 internal documentation 10 212 internal Storage yursin AeA Le M vee ees 234 international characters 244 Invisible notes svi ted v mmo e 193 Invisible Objects notice e he en Eu 211 Invi
33. Notation manual details x accidentals 4 accidentals leftparen mM noteheads sM1 noteheads s1 noteheads sOdiamond 4 noteheads s2diamond v noteheads dltriangle noteheads u2triangle noteheads sOslash noteheads s2slash x noteheads slcross noteheads s2xcircle 4 noteheads dldo 4 noteheads d2do noteheads sOre o noteheads dlre w noteheads d2re o noteheads simi 260 accidentals rightparen e dots dot noteheads s0 e noteheads s2 a noteheads sldiamond Y noteheads sOtriangle v noteheads ultriangle vy noteheads d2triangle J noteheads sislash x noteheads sOcross x noteheads s2cross A noteheads sOdo A noteheads sldo 4 noteheads s2do noteheads ulre w noteheads u2re lt noteheads sOmi noteheads s2mi Appendix C Notation manual details noteheads u0fa ZU noteheads dlfa noteheads u2fa noteheads s0la m noteheads s2la gt noteheads ulti noteheads u2ti N Scripts ufermata A scripts ushortfermata Mm scripts ulongfermata mam scripts uverylongfermata 9 scripts thumb lt gt scripts espr 1 scripts ustaccatissimo scripts tenuto 7 scripts dportato v scripts dmarcato Scripts stopped V EN ES 261 noteheads dOfa noteheads ulfa noteheads d2fa noteheads slla noteheads sOti noteheads dlti noteheads d2ti scripts dfermata scripts dshortfermata scripts dlongferm
34. Pedals can also be indicated by a sequence of brackets by setting the pedalSustainStyle property to bracket objects set Staff pedalSustainStyle bracket c sustainDown d e b sustainUp sustainDown b g sustainUp a sustainDown bar Chapter 7 Instrument specific notation 117 A third style of pedal notation is a mixture of text and brackets obtained by setting the pedalSustainStyle property to mixed set Staff pedalSustainStyle mixed c sustainDown d e b sustainUp sustainDown b g sustainUp a sustainDown bar berriei LO SD 1 The default Ped style for sustain and damper pedals corresponds to style text The sostenuto pedal uses mixed style by default c sostenutoDown d e c f g a sostenutoUp ta Sost Ped For fine tuning the appearance of a pedal bracket the properties edge width edge height and shorten pair of PianoPedalBracket objects see PianoPedalBracket in the Program reference can be modified For example the bracket may be extended to the right edge of the note head override Staff PianoPedalBracket shorten pair 0 1 0 c sostenutoDown d e c f g a sostenutoUp ta Sost Ped 7 1 4 Staff switch lines Whenever a voice switches to another staff a line connecting the notes can be printed automat ically This is switched on by setting followVoice to true new Piano
35. The center depicts a symbol from a hand engraved B renreiter edition of the same music The left scan illustrates typical flaws of computer print the staff lines are thin the weight of the flat symbol matches the light lines and it has a straight layout with sharp corners By contrast the Barenreiter flat has a bold almost voluptuous rounded look Our flat symbol is designed after among others this one It is rounded and its weight harmonizes with the thickness of our staff lines which are also much thicker than lines in the computer edition _ __ IIEP PWHPEPEoW rTd aW lE tree cc Henle 2000 Barenreiter 1950 LilyPond Feta font 2003 In spacing the distribution of space should reflect the durations between notes However many modern scores adhere to the durations with mathematical precision which leads to poor results In the next example a motive is printed twice It is printed once using exact mathemat ical spacing and once with corrections Can you spot which fragment is which Chapter 1 Introduction 3 The fragment only uses quarter notes notes that are played in a constant rhythm The spacing should reflect that Unfortunately the eye deceives us a little not only does it notice the distance between note heads it also takes into account the distance between consecutive stems As a result the notes of an up stem down stem combination should
36. This is unfortunate but in most cases is easily solved e4 markup italic ritenuto g be 2 The easiest solution is to increase the distance between the object in this case text but it could easily be fingerings or dynamics instead and the note In LilyPond this is called the padding property For most objects it is around 1 0 or less it varies with each object We want to increase it so let s try 1 5 Chapter 4 Putting it all together 63 once override TextScript padding 1 5 e4 markup italic ritenuto g be ae That looks better but it isn t quite big enough After experimenting with a few values we think 2 3 is the best number in this case However this number is merely the result of experimentation and my personal taste in notation Try the above example with 2 3 but also try higher and lower numbers Which do you think looks the best Another solution gives us complete control over placing the object we can move it horizon tally or vertically This is done with the extra offset property It is slightly more complicated and can cause other problems When we move objects with extra offset the movement is done after LilyPond has placed all other objects This means that the result can overlap with other objects once Voverride TextScript extra offset 1 0 1 0 e4 markup italic ritenuto g be With extra offset the fir
37. a period which follows an alphabetic sequence is included in the resulting string As a consequence spaces must be inserted around property commands override Score LyricText font shape italic Any _ character that appears in an unquoted word is converted to a space This provides a mechanism for introducing spaces into words without using quotes Chapter 7 Instrument specific notation 126 To enter lyrics with characters from non English languages or with non ascii characters such as the heart symbol or slanted quotes simply insert the characters directly into the input file and save it with utf 8 encoding See Section 8 1 5 Text encoding page 164 for more info lyricmode 1 He said Let my peo ple goa The full definition of a word start in Lyrics mode is somewhat more complex A word in Lyrics mode begins with an alphabetic character _ the control characters A through F Q through W Y any 8 bit character with ASCII code over 127 or a two character combination of a backslash followed by one of or See also Program reference LyricText Bugs The definition of lyrics mode is too complex 7 3 3 Hyphens and extenders 6 Centered hyphens are entered as between syllables The hyphen will have variable length depending on the space between the syllables and it will be centered between the syllables When a lyric is sung over many notes this is called a melisma
38. are Chapter 6 Basic notation 80 The pitch after the relative contains a note name The relative conversion will not affect transpose chordmode or relative sections in its argument To use relative within transposed music an additional relative must be placed inside transpose 6 2 2 Octave check Octave checks make octave errors easier to correct a note may be followed by quotes which indicates what its absolute octave should be In the following example relative c c b d 2 the d will generate a warning because a d is expected because b to d is only a third but a d is found In the output the octave is corrected to be a d and the next note is calculated relative to d instead of d There is also a syntax that is separate from the notes The syntax Noctave pitch This checks that pitch without quotes yields pitch with quotes in relative mode If not a warning is printed and the octave is corrected In the example below the first check passes without incident since the e in relative mode is within a fifth of a However the second check produces a warning since the e is not within a fifth of b The warning message is printed and the octave is adjusted so that the following notes are in the correct octave once again relative c e octave a octave b 3 The octave of a note following an octave check is determined with respect to the note pre ceding it In t
39. evaluate expr Evaluate the Scheme expr before parsing any 1y files Multiple e options may be given they will be evaluated sequentially f format format which formats should be written Choices are svg ps pdf png tex dvi b backend format the output format to use for the back end Choices are tex for TEX output to be processed with LaTgX If present the file file textmetrics is read to determine text extents texstr dump text strings to texstr file which can be run through La TRXx resulting in a textmetrics file which contains the extents of strings of text ps for PostScript Postscript files include TTF Typel and OTF fonts No subsetting of these fonts is done When using oriental character sets this can lead to huge files eps for encapsulated PostScript This dumps every page system as a sepa rate EPS file without fonts and as one collated EPS file with all pages systems including fonts This mode is used by default by lilypond book svg for SVG Scalable Vector Graphics scm for a dump of the raw internal Scheme based drawing commands d define default var val This sets the internal program option var to the Scheme value val If val is not supplied then t is used To switch off an option no may be prefixed to var eg dno point and click is the same as 1 The status of GUILE is not reset after processing a 1y file so be careful not to change any system
40. formed by the concept of music expressions by combining small fragments of music into larger ones more complex music can be expressed For example Chapter 1 Introduction 7 c4 Chords can be constructed with and enclosing the notes lt lt c4 d4 e4 gt gt This expression is put in sequence by enclosing it in curly braces 4 f4 lt lt c4 d4 e4 gt gt The above is also an expression and so it may be combined again with another simultaneous expression a half note using lt lt and gt gt lt lt g2 f4 lt lt c4 de e4 gt gt gt gt b uu Such recursive structures can be specified neatly and formally in a context free grammar The parsing code is also generated from this grammar In other words the syntax of LilyPond is clearly and unambiguously defined User interfaces and syntax are what people see and deal with most They are partly a matter of taste and also subject of much discussion Although discussions on taste do have their merit they are not very productive In the larger picture of LilyPond the importance of input syntax is small inventing neat syntax is easy while writing decent formatting code is much harder This is also illustrated by the line counts for the respective components parsing and representation take up less than 1096 of the source code 1 5 Example applications We have written LilyPond as an experiment of how to condense the
41. lirici emer ato 225 Nai A 219 NpApDer oa a LA ae Nuke 229 Npartiali o a e landi 86 NDeS eese Posee MUHANE KUNA MAA KA 156 NphrasingSlurDown 93 NphrasingSlurNeutral 93 NphrasingSlurUp 93 Ns A AAA 84 E PIRRO E 101 NBPP UA ud a Ru reale be 101 property in Myricmode 125 Nquilisma vw Re aur E Me Rib ET 156 ArelatiV csi uda pi SP ee ed 79 NEED Aa 109 MTB a IA 75 NAZAS AAA RA 101 sacredHarpHeads 194 NsemiGermanChords 124 NI lay aaa M UA AA ana 203 setEasyHeads ii AA 194 NA ia eda anda piaga DOO delia des 101 tn Rt tensa ae e i eR RU 101 ASE ZE SOMA WAONA a RI 101 ASHIEEO EE at atrial A exon 108 Asilo 108 Nshift nnz nta Di elia du ead ed 108 Nshift nnn oec pL dua 108 NshowStaffSwitch 118 NSElD vous US TOI EMI S ELDER US 76 AslurDashed imita ide IPSE 92 NSlurDOtt d coe RA eine 92 XSTurDOwn 1 243 ri ra 92 AslurNeutra li yx UR X ode 92 NSlurSolid iii E LER ERES 92 NSIUEUD cese Rr it ea s KUAGWA 92 N8mall scabs Ue ee eade WEISEN PNE 218 NSD noie EI textes 101 NS Dp sitet sid ad 101 NstartirillSpan rita 103 o a AAA eius NIS 103 ASTEOPhAa imita da ao aida 156 NSUPSE A A ios 171 NERD ccs at ad seed eqs 180 Ntempo tii O EN 175 tieDashedi sie iii bn ae 92 tieDott d AAA SEN Aa pila 92 283 NtxeNeutralgz i ciali ria oa ei 92 tieS
42. music midi tempo 4 72 The tempo is specified using the tempo command In this example the tempo of quarter notes is set to 72 beats per minute Chapter 10 Output formats 230 If there is a midi command in a score only MIDI will be produced When notation is needed too a layout block must be added score music midi tempo 4 72 layout Ties dynamics and tempo changes are interpreted Dynamic marks crescendi and de crescendi translate into MIDI volume levels Dynamic marks translate to a fixed fraction of the available MIDI volume range crescendi and decrescendi make the volume vary linearly between their two extremes The fractions can be adjusted by dynamicAbsoluteVolumeFunction in Voice context For each type of MIDI instrument a volume range can be defined This gives a basic equalizer control which can enhance the quality of the MIDI output remarkably The equalizer can be controlled by setting instrumentEqualizer 10 2 2 MIDI block The MIDI block is analogous to the layout block but it is somewhat simpler The midi block can contain e a tempo definition and e context definitions A number followed by a period is interpreted as a real number so for setting the tempo for dotted notes an extra space should be inserted for example midi tempo 4 120 Context definitions follow precisely the same syntax as within the layout block Translation modules for sound are called perf
43. or etis etm Se ee ES 101 Dynamics editorial 173 Dynamics parenthesis 173 DynamicText c lh5e1083 Aaa 102 E easy nobtallOn Siue irure rera E eae le ndo 194 dd o ear ade tees tas EU et eher LIS 70 MACS A Aa 70 encoded simple 166 encoded simple markup 166 Engraved by LilyPond 225 285 Engraver_group_engraver 209 engravi uua santo ae e piena anda eae 5 enigma iii le a 250 entermg MOLES id Y er RES eram 73 A PRI ni Papa 166 epsfil markup i ii ordito ea 166 CIOL caesis un ved bou dl 67 ETTOL messages n edebat de abr E ends 67 errors message format 67 ESPTESSIVO asar a en UU ad e 98 BI SERRE en Sei LE UM 250 evaluating Scheme 253 exceptions chord names 123 expanding repeats 111 CXPIESSION mia peres patus UR S dg tele 18 extendere soe unes pna LR Dee hus 126 extender Ine ies SUR RP ka 24 extending lilypond 10 External programs generating LilyPond files 251 extra ollset scele se oud ws ey T DP A 63 extra offset or iret esis e We e Erb 210 F fatal Grror xa En bout deii beh rien 67 FDL GNU Free Documentation License 276 fermata subi x Ri ir ATE 98 fermata on bar line 161 fermata on multi meas
44. the footer has the copyright notice on the first and the tagline on the last page The following definition will put the title flush left and the composer flush right on a single line paper bookTitleMarkup markup fill line fromproperty header title fromproperty header composer 10 2 Sound output MIDI Musical Instrument Digital Interface is a standard for connecting and controlling digital instruments A MIDI file is a series of notes in a number of tracks It is not an actual sound file you need special software to translate between the series of notes and actual sounds Pieces of music can be converted to MIDI files so you can listen to what was entered This is convenient for checking the music octaves that are off or accidentals that were mistyped stand out very much when listening to the MIDI output Bugs Many musically interesting effects such as swing articulation slurring etc are not translated to midi The midi output allocates a channel for each staff and one for global settings Therefore the midi file should not have more than 15 staves or 14 if you do not use drums Other staves will remain silent Not all midi players correctly handle tempo changes in the midi output Players that are known to work include timidity http timidity sourceforge net 10 2 1 Creating MIDI files To create a MIDI from a music piece of music add a midi block to a score for example score
45. voice More precisely it takes the current time step of the part being printed and extracts the notes at the corresponding point of the addquoted voice Therefore the argument to addquote should be the entire part of the voice to be quoted including any rests at the beginning Quotations take into account the transposition of both source and target instruments if they are specified using the transposition command addquote clarinet relative c transposition bes f4 fis g gis e 8 f 8 NquoteDuring clarinet s2 y Chapter 8 Advanced notation 185 The type of events that are present in cue notes can be trimmed with the quotedEventTypes property The default value is note event rest event which means that only notes and rests of the cued voice end up in the NquoteDuring Setting set Staff quotedEventTypes note event articulation event dynamic event will quote notes but no rests together with scripts and dynamics Bugs Only the contents of the first Voice occurring in an addquote command will be considered for quotation so music can not contain Nnew and Ncontext Voice statements that would switch to a different Voice Quoting grace notes is broken and can even cause LilyPond to crash See also In this manual Section 8 2 6 Instrument transpositions page 179 Examples input regression quote ly input regression quote transposition ly Program reference Quo
46. 13 Figured bass page 157 Here are all suptopics at a glance 7 7 1 Ancient note heads For ancient notation a note head style other than the default style may be chosen This is accomplished by setting the style property of the NoteHead object to baroque neomensural mensural or petrucci The baroque style differs from the default style only in using a square shape for Nbreve note heads The neomensural style differs from the baroque style in that it uses rhomboidal heads for whole notes and all smaller durations Stems are centered on the note heads This style is particularly useful when transcribing mensural music e g for the incipit The mensural style produces note heads that mimic the look of note heads in historic printings of the 16th century Finally the petrucci style also mimicks historic printings but uses bigger note heads The following example demonstrates the neomensural style Chapter 7 Instrument specific notation 143 set Score skipBars t override NoteHead style neomensural a longa a breve a 1 a 2 a 4 a 8 a 16 When typesetting a piece in Gregorian Chant notation the Gregorian_ligature_engraver will automatically select the proper note heads so there is no need to explicitly set the note head style Still the note head style can be set e g to vaticana_punctum to produce punctum neumes Similarly a Mensural_ligature_engraver is used to automatically assemble mensu
47. 169 LINA WA AA pM eee Bey alg 224 TAS a iene UNE TORT bli 253 LOO KUPA Aaa ii aa 169 Lookup markup 2206 0 Ll ds 169 lower cytes o are Eee ee ere acies 169 Foyer markup engen xs ine BE ee A See 169 lowering text sas ca ER 171 LyricCombineMusic 129 LhyricExtenderE wx A 127 LyricHyphen teo toca dt a heri ET 127 IVTICS oi li lee sla 23 125 200 TsyrleSie ch ho E ehe ies etes 23 LY PLCS eger en ape 127 129 183 203 lyrics and melodies 127 LyriXcText imn aee deb ss 126 132 Miti A idet meto Rhye te 120 magnify ili o ene eR e A 169 magnify markup sese 169 MA arie peo Niue he nese 120 majorSevenSymbol 123 make dynamic script 173 manual staff switches 116 Marcato IA nea gt Sal TREE Pape yep 98 MOAT SINS ic deerit PR er Cu Dess 219 markalphabetro sciuto iaia xg Gru 169 markalphabet markup 169 Marklettel i 09 baer ae ee ek wae UR ii 169 markletter markup 169 MarkUD uti IAA ALA ER ONCE RE 162 Markup text ret RE ke ie Te a e ee eoa 162 measure LINES sii aria ae rb ia dali ed s 87 measure numbers 177 measure repeats 06 eee nen 113 measure partial 86 Measure grouping engraver 86 MeasureGrouping esee 86 Medicaea Editio
48. 2 times 2 3 f8 e d c 2 g4 end lilypond Options are put in brackets begin fragment quote staffsize 26 verbatim lilypond c 4 16 end lilypond Larger examples can be put into a separate file and introduced with verb lilypondfile lilypondfile quote noindent screech boink ly end document Under Unix you can view the results as follows cd input tutorial mkdir p out lilypond book output out psfonts lilybook tex lilypond book GNU LilyPond 2 6 0 Reading lilybook tex Chapter 12 lilypond book Integrating text and music 241 lots of stuff deleted Compiling out lilybook tex cd out latex lilybook lots of stuff deleted xdvi lilybook To convert the file into a PDF document run the following commands dvips o Ppdf h lilybook psfonts lilybook ps2pdf lilybook ps Running lilypond book and latex creates a lot of temporary files which would clutter up the working directory To remedy this use the output dir option It will create the files in a separate subdirectory dir Running dvips will produce many warnings about fonts They are not harmful please ignore them Finally the result of the LaTgX example shown above This finishes the tutorial section 1 This tutorial is processed with Texinfo so the example gives slightly different results in layout Chapter 12 lilypond book Integrating text and music 242 Documents for 1ilypond book may freely mix music and text For example
49. 7 7 4 Ancient clefs page 144 e Section 7 7 5 Ancient flags page 146 e Section 7 7 6 Ancient time signatures page 147 By manipulating such a grob property the typographical appearance of the affected graphical objects can be accommodated for a specific notation flavor without the need for introducing any new notational concept In addition to the standard articulation signs described in section Section 6 5 1 Articulations page 97 specific articulation signs for ancient notation are provided e Section 7 7 7 Ancient articulations page 148 Other aspects of ancient notation can not that easily be expressed in terms of just changing a style property of a graphical object or adding articulation signs Some notational concepts are introduced specifically for ancient notation e Section 7 7 8 Custodes page 148 e Section 7 7 9 Divisiones page 149 e Section 7 7 10 Ligatures page 150 If this all is too much of documentation for you and you just want to dive into typesetting without worrying too much about the details on how to customize a context you may have a look at the predefined contexts Use them to set up predefined style specific voice and staff contexts and directly go ahead with the note entry e Section 7 7 11 Gregorian Chant contexts page 156 e Section 7 7 12 Mensural contexts page 157 There is limited support for figured bass notation which came up during the baroque period e Section 7 7
50. 8 4 1 Polymetric notation Double time signatures are not supported explicitly but they can be faked In the next example the markup for the time signature is created with a markup text This markup text is inserted in the TimeSignature grob create 2 4 5 8 tsMarkup markup number column 2 4 musicglyph scripts stopped bracket column 5 8 override Staff TimeSignature print function Text_interface print override Staff TimeSignature text tsMarkup time 3 2 c 2 Nbar c 4 c 4 Each staff can also have its own time signature This is done by moving the Timing engraver to the Staff context layout 4 context Score remove Timing engraver context Staff consists Timing_engraver Now each staff has its own time signature lt lt new Staff time 3 4 6406 il se ec new Staff time 2 4 cid cleclec new Staff time 3 8 c4 c8 c c c4 c8 cc gt gt Chapter 8 Advanced notation 188 A different form of polymetric notation is where note lengths have different values across staves This notation can be created by setting a common time signature for each staff but replacing it manually using timeSignatureFraction to the desired fraction Then the printed durations in each staff are scaled to the common time signature The latter is done with compressMusic
51. 9 Changing defaults 204 R1 2 set skipBars t R1 2 Contexts are hierarchical so if a bigger context was specified for example Staff then the change would also apply to all Voices in the current stave The change is applied on the fly during the music so that the setting only affects the second group of eighth notes There is also an unset command unset context prop which removes the definition of prop This command removes the definition only if it is set in context so set Staff autoBeaming f introduces a property setting at Staff level The setting also applies to the current Voice However unset Voice autoBeaming does not have any effect To cancel this setting the unset must be specified on the same level as the original set In other words undoing the effect of Staff autoBeaming f requires unset Staff autoBeaming Like set the context argument does not have to be specified for a bottom context so the two statements set Voice autoBeaming t set autoBeaming t are equivalent Settings that should only apply to a single time step can be entered with once for example in c4 once set fontSize 4 7 c4 c4 the property fontSize is unset automatically after the second note A full description of all available context properties is in the program reference see Transla tion gt Tunable context properties Chapter 9 Changing defaults 205
52. CHI co C11b13 sn USES C7 b9 13 ce NL cl 159513 ci 359 c ci 347 cem 716913 Cpl suse Def Alt co ci 359 C add45 C add457 8 O O jg C E Cm zA C add4579 C add9 c3 add11 42 E x gt amp C 2 MIDI instruments The following is a list of names that can be used for the midiInstrument property Appendix C Notation manual details acoustic grand bright acoustic electric grand honky tonk electric piano 1 electric piano 2 harpsichord clav celesta glockenspiel music box vibraphone marimba xylophone tubular bells dulcimer drawbar organ percussive organ rock organ church organ reed organ accordion harmonica concertina acoustic guitar acoustic guitar electric guitar electric guitar clean electric guitar muted overdriven guitar distorted guitar guitar harmonics acoustic bass electric bass finger electric bass pick fretless bass slap bass 1 slap bass 2 synth bass 1 synth bass 2 violin viola cello nylon steel jazz C 3 List of colors Normal colors black white blue cyan grey darkred darkcyan darkmagenta contrabass tremolo strings pizzicato strings orchestral strings timpani string ensemble 1 string ensemble 2 synthstrings 1 synthstrings 2 choir aahs voice oohs synth voice orchestra hit trumpet trombone tuba muted trumpet french horn brass section synthbrass 1 synthbrass 2 Soprano s
53. Each music name has several types or interfaces for example a note is an event but it is also a note event a rhythmic event and a melodic event All classes of music are listed in the internals manual under Music classes e C object Each music object is represented by a C object For technical reasons different music objects may be represented by different C object types For example a note is Event object while grace creates a Grace music object We expect that distinctions between different C types will disappear in the future The actual information of a music expression is stored in properties For example a NoteEvent has pitch and duration properties that store the pitch and duration of that note A list of all properties available is in the internals manual under Music properties A compound music expression is a music object that contains other music objects in its properties A list of objects can be stored in the elements property of a music object or a single child music object in the element object For example SequentialMusic has its children in elements and GraceMusic has its single argument in element The body of a repeat is stored in the element property of RepeatedMusic and the alternatives in elements 11 1 3 Extending music syntax The syntax of composite music expressions like repeat transpose and Ncontext follows the general form of keyword non music arguments music arguments
54. Eindhoven The Netherlands May 2005 Chapter 1 Introduction 2 1 Introduction 1 1 Engraving The art of music typography is called plate engraving The term derives from the traditional process of music printing Just a few decades ago sheet music was made by cutting and stamping the music into a zinc or pewter plate in mirror image The plate would be inked the depressions caused by the cutting and stamping would hold ink An image was formed by pressing paper to the plate The stamping and cutting was completely done by hand Making a correction was cumbersome if possible at all so the engraving had to be perfect in one go Engraving was a highly specialized skill a craftsman had to complete around five years of training before earning the title of master engraver and another five years of experience were necessary to become truly skilled Nowadays all newly printed music is produced with computers This has obvious advantages prints are cheaper to make and editorial work can be delivered by email Unfortunately the pervasive use of computers has also decreased the graphical quality of scores Computer printouts have a bland mechanical look which makes them unpleasant to play from The images below illustrate the difference between traditional engraving and typical computer output and the third picture shows how LilyPond mimics the traditional look The left picture shows a scan of a flat symbol from an edition published in 2000
55. Strings in the input are put in the output as is Extents of text items in the TEX backend are determined by reading a file created via the texstr backend lilypond b texstr input les nereides ly latex les nereides texstr The last command produces les nereides textmetrics which is read when you execute Chapter 8 Advanced notation 165 lilypond b tex input les nereides ly Both les nereides texstr and les nereides tex need suitable LaTeX wrappers to load appropriate La TEX packages for interpreting non ASCII strings See also nput regression utf 8 1y 8 1 6 Nested scores It is possible to nest music inside markups by adding a Nscore block to a markup expression Such a score must contain a layout block relative 4 c4 d markup score 4 relative c4 d e f layout e f Bea epy a 8 1 7 Overview of text markup commands The following commands can all be used inside markup beam width number slope number thickness number Create a beam with the specified parameters bigger arg markup Increase the font size relative to current setting bold arg markup Switch to bold font series box arg markup Draw a box round arg Looks at thickness box padding and font size properties to determine line thickness and padding around the markup bracket arg markup Draw vertical brackets around arg bracketed y column indic
56. Such syntax can also be defined as user code To do this it is necessary to create a mu sic function This is a specially marked Scheme function For example the music function applymusic applies a user defined function to a music expression Its syntax is Napplymusic func music A music function is created with ly make music function ly make music function applymusic takes a Scheme function and a Music expression as arguments This is encoded in its parameter list list procedure ly music The function itself takes another argument an Input location object That object is used to provide error messages with file names and line numbers The definition is the second argument of ly make music function The body simply calls the function lambda where func music func music The above Scheme code only defines the functionality The tag Napplymusic is selected by defining applymusic ly make music function list procedure ly music lambda parser location func music func music A def music function macro is introduced on top of 1y make music function to ease the definition of music functions applymusic def music function parser location func music procedure ly music func music Examples of the use of applymusic are in the next section Chapter 11 Interfaces for programmers 233 See also ly music functions init 1ly 11 1 4 Manipulating music expressions Music objects and their pr
57. a compilation is called an aggregate and this License does not apply to the other self contained works thus compiled with the Document on account of their being thus compiled if they are not themselves derivative works of the Document If the Cover Text requirement of section 3 is applicable to these copies of the Document then if the Document is less than one quarter of the entire aggregate the Document s Cover Texts may be placed on covers that surround only the Document within the aggregate Otherwise they must appear on covers around the whole aggregate Appendix F GNU Free Documentation License 280 8 10 TRANSLATION Translation is considered a kind of modification so you may distribute translations of the Document under the terms of section 4 Replacing Invariant Sections with translations requires special permission from their copyright holders but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections You may include a translation of this License provided that you also include the original English version of this License In case of a disagreement between the translation and the original English version of this License the original English version will prevail TERMINATION You may not copy modify sublicense or distribute the Document except as expressly provided for under this License Any other attempt to copy modify sublicense or di
58. and Usage G Schirmer AMP NY 2001 This book can be ordered from the rental department This manual specifically focuses on preparing print for publication by Schirmer It discusses many details that are not in other normal notation books It also gives a good idea of what is necessary to bring printouts to publication quality Stone 1980 Kurt Stone Music Notation in the Twentieth Century Norton New York 1980 This book describes music notation for modern serious music but starts out with a thorough overview of existing traditional notation practices The source archive includes a more elaborate BibTfX bibliography of over 100 entries in Documentation bibliography It is also available online from the website Appendix B Scheme tutorial 253 Appendix B Scheme tutorial LilyPond uses the Scheme programming language both as part of the input syntax and as internal mechanism to glue modules of the program together This section is a very brief overview of entering data in Scheme The most basic thing of a language is data numbers character strings lists etc Here is a list of data types that are relevant to LilyPond input Booleans Boolean values are True or False The Scheme for True is stt and False is f Numbers Numbers are entered in the standard fashion 1 is the integer number one while 1 5 is a floating point number a non integer number Strings Strings are enclosed in double quotes this is a string S
59. and edited only by propri etary word processors SGML or XML for which the DTD and or processing tools are not generally available and the machine generated HTML produced by some word processors for output purposes only The Title Page means for a printed book the title page itself plus such following pages as are needed to hold legibly the material this License requires to appear in the title page For works in formats which do not have any title page as such Title Page means the text near the most prominent appearance of the work s title preceding the beginning of the body of the text 2 VERBATIM COPYING You may copy and distribute the Document in any medium either commercially or noncom mercially provided that this License the copyright notices and the license notice saying this License applies to the Document are reproduced in all copies and that you add no other conditions whatsoever to those of this License You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute However you may accept compensation in exchange for copies If you distribute a large enough number of copies you must also follow the conditions in section 3 You may also lend copies under the same conditions stated above and you may publicly display copies 3 COPYING IN QUANTITY If you publish printed copies of the Document numbering more than 100 and the Docu ment s license
60. are longer and in the case of polyphonic pieces more deeply nested Such large expressions can become unwieldy By using variables also known as identifiers it is possible to break up complex music expres sions An identifier is assigned as follows namedMusic The contents of the music expression namedMusic can be used later by preceding the name with a backslash i e namedMusic In the next example a two note motive is repeated two times by using variable substitution seufzer e 4 dis 4 seufzer seufzer The name of an identifier should have alphabetic characters only no numbers underscores or dashes The assignment should be outside of running music It is possible to use variables for many other types of objects in the input For example Chapter 2 Tutorial 28 width 4 5 cm name Wendy aFivePaper paper paperheight 21 0 cm Depending on its contents the identifier can be used in different places The following example uses the above variables paper aFivePaper linewidth width j c4 name More information on the possible uses of identifiers is given in the technical manual in Section 11 1 1 Input variables and Scheme page 231 2 19 An orchestral part In orchestral music all notes are printed twice Once in a part for the musicians and once in a full score for the conductor Identifiers can be used to avoid double work The music is entered once
61. art of music engraving into a computer program Thanks to all that hard work the program can now be used to perform useful tasks The simplest application is printing notes Chapter 1 Introduction 8 By adding chord names and lyrics we obtain a lead sheet C C bh Jh twin kle twin kle lit tle star Polyphonic notation and piano music can also be printed The following example combines some more exotic constructs Screech and boink Random complex notation Han Wen Nienhuys The fragments shown above have all been written by hand but that is not a requirement Since the formatting engine is mostly automatic it can serve as an output means for other programs that manipulate music For example it can also be used to convert databases of musical fragments to images for use on websites and multimedia presentations This manual also shows an application the input format is text and can therefore be easily embedded in other text based formats such as LaT X HTML or in the case of this manual Texinfo By means of a special program the input fragments can be replaced by music images in the resulting PDF or HTML output files This makes it easy to mix music and text in documents 1 6 About this manual The manual is divided into the following chapters e Chapter 2 Tutorial page 11 gives a gentle introduction to typesetting music First time users should star
62. bisqueN PeachPuffN NavajoWhiteN LemonChiffonN cornsilkN ivoryN honeydewN LavenderBlushN MistyRoseN azureN SlateBlueN RoyalBlueN blueN DodgerBlueN SteelBlueN DeepSkyBlueN SkyBlueN LightSkyBlueN LightSteelBlueN LightBlueN LightCyanN PaleTurquoiseN CadetBlueN turquoiseN cyanN aquamarineN DarkSeaGreenN SeaGreenN PaleGreenN SpringGreenN greenN chartreuseN OliveDrabN DarkOliveGreenN khakiN LightGoldenrodN LightYellowN yellowN goldN goldenrodN DarkGoldenrodN RosyBrownN IndianRedN siennaN burlywoodN wheatN tanN chocolateN firebrickN brownN salmonN LightSalmonN Appendix C Notation manual details 259 orangeN DarkOrangeN coralN tomatoN OrangeRedN redN DeepPinkN HotPinkN pinkN LightPinkN PaleVioletRedN maroonN VioletRedN magentaN orchidN plumN MediumOrchidN DarkOrchidN purpleN MediumPurpleN thistleN Grey Scale A grey scale can be obtained using greyN Where N is in the range 0 100 C 4 The Feta font The following symbols are available in the Feta font and may be accessed directly using text markup such as g Wnarkup musicglyph scripts segno see Section 8 1 4 Text markup page 162 rests 0 rests 0o II rests M3 i rests M1 Y rests 2classical 4 rests 4 3 rests 6 accidentals 2 accidentals 3 b accidentals M2 lb accidentals M4 rests 1 rests lo rests M2 rests 2 Y rests 3 j rests 5 j rests 7 accidentals 1 y accidentals 0 d accidentals M1 45 accidentals M3 Appendix C
63. bold italic string This will incorrectly be converted into markup bold italic string instead of the correct markup bold italic string 2 0 gt 2 2 Doesn t handle partcombine Doesn t do addlyrics gt lyricsto this breaks some scores with multiple stanzas 2 0 gt 2 4 magnify isn t changed to fontsize magnify ttm gt fontsize f where f 61n m 1n 2 remove tag isn t changed applymusic remove tag gt keepWithTag firstpagenumber isn t changed firstpagenumber no gt printfirstpagenumber f Line breaks in header strings aren t converted as line break in header strings gt markup center align lt First Line Second Line gt Crescendo and decrescendo terminators aren t converted rced gt rc gt 2 2 gt 2 4 turnOff used in set Staff VoltaBracket turnOff is not properly converted 2 4 2 gt 2 5 9 markup center align lt gt should be converted to markup center align line but now line is missing 2 4 gt 2 6 Special LaTeX characters such as in text are not converted to UTF8 5 6 Reporting bugs If you have input that results in a crash or an erroneous output then that is a bug We try to respond to bug reports promptly and fix them as soon as possible Help us by sending a defective input file so we can reproduce the problem Make it small so we can easily debug the problem Don
64. bottom staff of one system and the center of the top staff of the next system Increasing this will provide a more even appearance of the page at the cost of using more vertical space betweensystempadding This dimension is the minimum amount of white space that will always be present between the bottom most symbol of one system and the top most of the next system Increasing this will put systems whose bounding boxes almost touch farther apart aftertitlespace Amount of space between the title and the first system Chapter 10 Output formats 220 beforetitlespace Amount of space between the last system of the previous piece and the title of the next betweentitlespace Amount of space between consecutive titles e g the title of the book and the title of a piece systemSeparatorMarkup This contains a markup object which will be inserted between systems This is often used for orchestral scores The markup command slashSeparator is provided as a sensible de fault for example Example paper hsize 2 cm topmargin 3 cm bottommargin 3 cm raggedlastbottom t You can also define these values in Scheme In that case mm in pt and cm are variables defined in paper defaults 1y with values in millimeters That s why the value has to be multiplied in the example paper 1 define bottommargin 2 cm The default footer is empty except for the first page where the copyright field f
65. break This will force a line break at this point Line breaks can only occur at places where there are bar lines If you want to have a line break where there is no bar line you can force an invisible bar line by entering bar Similarly noBreak forbids a line break at a point For line breaks at regular intervals use break separated by skips and repeated with repeat lt lt repeat unfold 7 si noBreak si noBreak si noBreak si break the real music gt gt This makes the following 28 measures assuming 4 4 time be broken every 4 measures and only there Predefined commands break and noBreak See also Internals BreakEvent Chapter 10 Output formats 225 10 1 11 Page breaking The default page breaking may be overriden by inserting pageBreak or noPageBreak com mands These commands are analogous to break and noBreak They should be inserted at a bar line These commands force and forbid a page break from happening Of course the pageBreak command also forces a line break Page breaks are computed by the page breaking function in the paper block To force a new page for a new piece in a collection of pieces or a piece in several movements use breakbefore in the header header breakbefore t Predefined commands pageBreak noPageBreak 10 1 12 Multiple movements A document may contain multiple pieces of music and texts Examples of these are an etude book or an orchestral part with
66. but by using the command fatText the widths will be taken into account c4 longtext fatText c4_ longlongtext c4 longtext longlongtext More complex formatting may also be added to a note by using the markup command c 4 markup bla bold bla bla bla The markup is described in more detail in Section 8 1 4 Text markup page 162 Predefined commands fatText emptyText See also In this manual Section 8 1 4 Text markup page 162 Program reference TextScript 8 1 2 Text spanners Some performance indications e g rallentando or accelerando are written as text and are extended over many measures with dotted lines Such texts are created using text spanners attach startTextSpan and stopTextSpan to the first and last notes of the spanner The string to be printed as well as the style is set through object properties ci textSpannerDown override TextSpanner edge text rall c2 startTextSpan b c stopTextSpan a break textSpannerUp override TextSpanner edge text cons markup italic rit c2 startTextSpan b c stopTextSpan a Chapter 8 Advanced notation 161 E c ral Predefined commands textSpannerUp textSpannerDown textSpannerNeutral See also Program reference TextSpanner Examples input regression text spanner ly 8 1 3 Text marks The mark comman
67. defaults from within Scheme Chapter 5 Running LilyPond 65 dpoint and click f Setting the help option will print a summary of the options available and exit h help Show a summary of usage include I directory Add directory to the search path for input files i init file Set init file to file default init 1ly 0 output FILE Set the default output file to FILE The appropriate suffix will be added ie pdf for pdf tex for tex etc ps Generate PostScript dvi Generate DVI files In this case the TEX backend should be specified i e f tex png Generate pictures of each page in PNG format This implies ps The resolution in DPI of the image may be set with dresolution 110 pdf Generate PDF This implies ps preview Generate an output file containing the titles and the first system no pages Do not generate the full pages Useful in combination with preview s safe Do not trust the 1y input When LilyPond formatting is available through a web server either the safe or the jail option MUST be passed The safe option will prevent inline Scheme code from wreaking havoc for example When LilyPond formatting is available through a web server the safe MUST be passed This will prevent inline Scheme code from wreaking havoc for example system rm rf c4 ly export ly gulp file etc passwd The safe option works by evaluating in line Scheme ex
68. ds This is looking promising but the cello part won t appear in the score we haven t used it in the score section If we want the cello part to appear under the soprano part we need to add new Staff celloMusic underneath the soprano stuff We also need to add lt lt and gt gt around the music that tells LilyPond that there s more than one thing in this case staff happening at once The score looks like this now score lt lt lt lt context Voice one NautoBeam0ff sopranoMusic t lyricsto one new Lyrics sopranoLyrics gt gt new Staff celloMusic gt gt layout midi tempo 4 60 This looks a bit messy the indentation is messed up now That is easily fixed Here s the complete soprano and cello template Nversion 2 6 0 sopranoMusic relative c clef treble key c major time 4 4 al bcd Chapter 4 Putting it all together 62 sopranoLyrics lyricmode Aaa Bee Cee Dee celloMusic relative c clef bass key c major time 4 4 d4 g fis8 e d4 T score lt lt lt lt context Voice one autoBeamOff sopranoMusic lyricsto one new Lyrics sopranoLyrics gt gt new Staff celloMusic gt gt layout midi tempo 4 60 I 2 Aaa Bee Cee Dee rr 4 3 Fixing overlapping notation This may come as a surprise but LilyPond isn t perfect Some notation elements can overlap
69. during the text This is done by setting the associatedVoice property In the example Ju ras sic Park Ty ran nosau rus Rex the text for the first stanza is set to a melody called lahlah new Lyrics lyricsto lahlah Ju ras sic Park The second stanza initially is set to the lahlah context but for the syllable ran it switches to a different melody This is achieved with set associatedVoice alternative Here alternative is the name of the Voice context containing the triplet Again the command must be one syllable too early before Ty in this case new Lyrics lyricsto lahlah set associatedVoice alternative applies to ran Ty ran no set associatedVoice lahlah applies to rus sau rus Rex The underlay is switched back to the starting situation by assigning lahlah to associatedVoice Chapter 7 Instrument specific notation 131 7 3 7 More stanzas Stanza numbers can be added by setting stanza e g new Voice time 3 4 g2 e4 a2 f4 g2 addlyrics set stanza 1 Hi my name is Bert addlyrics set stanza 2 Oh che ri je t aime 1 Hi my name is Bert 2 Oh che ri jet aime These numbers are put just before the start of first syllable Names of singers can also be added They are printed at the start of the line just like instrument names They are created by setting vocalName A short v
70. e g the incipit of a transcribed mensural piece of music The mensural style finally mimics the appearance of rests as in historic prints of the 16th century The following example demonstrates the neomensural style Chapter 7 Instrument specific notation 144 set Score skipBars t override Rest style neomensural r longa r breve r1 r2 r4 r8 r16 There are no 32th and 64th rests specifically for the mensural or neo mensural style Instead the rests from the default style will be taken See input test rests 1y for a chart of all rests There are no rests in Gregorian Chant notation instead it uses Section 7 7 9 Divisiones page 149 See also In this manual Section 6 1 6 Rests page 75 gives a general introduction into the use of rests 7 7 4 Ancient clefs LilyPond supports a variety of clefs many of them ancient The following table shows all ancient clefs that are supported via the clef command Some of the clefs use the same glyph but differ only with respect to the line they are printed on In such cases a trailing number in the name is used to enumerate these clefs Still you can manually force a clef glyph to be typeset on an arbitrary line as described in Section 6 3 1 Clef page 83 The note printed to the right side of each clef in the example column denotes the c with respect to that clef Description Supported Clefs Example modern style mensural C clef neomensural c1
71. every bar e One bar per line If there is anything complicated either in the music itself or in the output you desire it s often good to write only one bar per line Saving screen space by cramming eight bars per line just isn t worth it if you have to debug your files e Comment your files with either bar numbers every so often or references to musical themes second theme in violins fourth variation You may not need it when you re writing the piece for the first time but if you want to go back and change something two or three years later you won t know how your file is structured if you don t comment the file 4 2 Extending the templates You ve read the tutorial you know how to write music But how can you get the staves that you want The templates are ok but what if you want something that isn t covered Start off with the template that seems closest to what you want to end up with Let s say that you want to write something for soprano and cello In this case we would start with Notes and lyrics for the soprano part version 2 6 0 melody relative c Y clef treble key c major time 4 4 al bcd text lyricmode Aaa Bee Cee Dee Chapter 4 Putting it all together 60 score lt lt context Voice one autoBeamOff melody lyricsto one new Lyrics text gt gt layout midi tempo 4 60 T Now we want to add a cello part Let s look at the Note
72. expression similar to a number or a string It is entered as twentyFour The quote mark prevents the Scheme interpreter from substituting 24 for the twentyFour Instead we get the name twentyFour This syntax will be used very frequently since many of the layout tweaks involve assigning Scheme values to internal variables for example override Stem thickness 2 6 This instruction adjusts the appearance of stems The value 2 6 is put into the thickness variable of a Stem object This makes stems almost twice as thick as their normal size To distinguish between variables defined in input files like twentyFour in the example above and variables of internal objects we will call the latter properties and the former identifiers So the stem object has a thickness property while twentyFour is an identifier Two dimensional offsets X and Y coordinates as well as object sizes intervals with a left and right point are entered as pairs A pair is entered as first second and like symbols they must be quoted override TextScript extra offset 1 2 This assigns the pair 1 2 to the extra offset property of the TextScript object This moves the object 1 staff space to the right and 2 spaces up The two elements of a pair may be arbitrary values for example 1 2 t f blah blah 3 14159265 A list is entered by enclosing its elements in parentheses and adding a quote For ex
73. hh sn gt 4 down drummode bd4 s bd s bd s bd s bd s bd s drumContents global lt lt set DrumStaff instrument Drums new DrumVoice voiceOne up new DrumVoice voiceTwo down gt gt VIUA It All does Together Here III III score lt lt context StaffGroup horns lt lt context Staff trumpet trumpet context Staff altosax altosax context ChordNames barichords bariharmony context Staff barisax barisax context Staff trombone trombone gt gt context StaffGroup rhythm lt lt context ChordNames chords gtrharmony context Staff guitar guitar context PianoStaff piano piano context Staff bass bass new DrumStaff drumContents gt gt gt gt layout Chapter 3 Example templates 55 context RemoveEmptyStaffContext context Score override BarNumber padding 3 override RehearsalMark padding 2 skipBars t midi tempo 4 75 Song tune Me moderato Swing Trumpet hg pe Alto Sax i Go x g Gin hi Solo Bari Sax Co o HH Trombone Co o o Cm p Guitar qa Ze eo o o e e e Piano eo xx xx Bass Co o o NR Baas i AA 3 7 Other templates Chapter 3 Example templates 56 3 7 1 All headers This template displays all available headers Some of the
74. hspace 0 fatText c 4 markup raise 5 not raised once override TextScript padding 3 c 4 markup raised c 4 markup hspace 0 raise 1 5 raised Chapter 8 Advanced notation 164 raised raised not raised ite See also This manual Section 8 1 7 Overview of text markup commands page 165 Program reference TextScript Init files scm new markup scm Bugs Kerning or generation of ligatures is only done when the TEX backend is used In this case LilyPond does not account for them so texts will be spaced slightly too wide Syntax errors for markup mode are confusing 8 1 5 Text encoding LilyPond uses the Pango library to format multi lingual texts and does not perform any input encoding conversions This means that any text be it title lyric text or musical instruction containing non ASCII characters must be utf 8 Easiest to enter such texts is by using a Unicode aware editor and save using utf 8 encoding Most popular modern editors have utf 8 support for example vim Emacs jEdit and GEdit do Depending on the fonts installed the following fragment shows Hebrew and Cyrillic lyrics a nt q 5 Dno yinw KbJITaTa TIO JIA 6eme MacTJIHBA OZIRIS BYRSE PREKNE DARE a vo c uma 3 e TN nya 190p ue IyX bT KOHTO DADE FEIFHRCAT HEZPHAU can cao legal The TEX backend does not handle encoding specially at all
75. iii e ts e Nep eodem wen s 67 5 5 Updating with convert ly ssessseesssse ehh hh 68 5 6 Reporting bugs einer ERR E Si la 69 ber Hiditor support merito a PAIR c i pi NEU d ever NES 70 5 2 File UA cacao EE EO Roe cer do A Ree ee ed 70 5 9 Including LilyPond files 71 Basic n0otall0N p ini CS eiaa sae apice Ree Fu imd qun ARE RATS 73 6 1 NOTE EME rer AA mede oC OR ete ae 73 A ee ea ieee eae UE as eben Phe MER EN NES E 73 6 1 2 Pitchess 22 5 saat ce enero da ae BA tatu eae Pied ante daca sts 73 6 L 3 Cautionary accidentals ira dere e DAL 74 6 14 MIGO TODOS A rano bu ee a MERERI RE dae Gey A at 75 61 5 Ghords id added a bia et ed pie aa ha bee een nil Se eee UR 75 61 67 Ri alle as D P Ner e 75 6 PS te i O agat ph oliena xs lieti ai bok 76 6168 OS AA AAA 76 6 1 9 Augmnientation dots surrenalica 77 6 1 10 Tuplets AA poten ds rs Staten ian ran eri Bar d pen 77 6 1 11 Scaling durations 2 Li a e PA d kaliwa 78 6 2 Alternate music entry 78 6 2 1 Relative octaves us conii lean KIA eere O Ka 79 6 2 2 Octave check o eus rcr SI M Rd intesa alia 80 6 29 LIEB nSpOSQ a m lee IA 80 6 24 Bar checker Ee eec Cet ab akg M t eo qeu ERE d 81 6 2 5 Skipping corrected music 82 6 2 6 Automatic note splitting 82 6 9 Stall Not
76. interface ios tale Suna 170 213 text script interface 213 TextSCcEYDt v leves balena eret bas 99 160 162 TEXtSCL1ptrstt cnp get eU ET Eus 164 TextSpanner iy E Ie hoe Pes 161 teztSpannerDown 161 teztSpannerNeutral 161 textSpanner Ups sie asini ia vera agg 161 The Feta font hey yeu rt et 169 thickness of staff lines setting 90 thumb marking eR ds 98 thumbnail x siepe nio fan 245 tiene alare od eai ai 14 21 lena thet Sia te qoe tertie cg Bt ARD i AE AI n sags 91 Tie d emu tM ner DE IE Ab P 92 215 Time administration 189 time Signature asipi Spek ici los ob alot Renee 12 Time signatur seio dre d eR E ED dex 85 time signatures i i sii 04 Dacia da ian kb a 147 Time signatures multiple 205 Time signature engraver 189 TimeScaledMistc ieoi AA ia ve UP Se 78 TimeSignaturfe i lnieLpeee Bai de kp sd 86 TimeSignature pa cece eae 147 187 Timing ngraver iii ib oL YR eee et 86 Timing engraver 0 eee eee 187 PONY iiss SoS BID nidi tered ila io ea ga 171 tiny markupr kwh hae the ee el 171 titles sila ria prae dog 225 229 titling and lilypond book 243 titling ii HTM 100 dal ida had 245 trace SCHEME ia e oriana 67 translate ves uan Dex dme t ui dn 171 translate markup sees 171 translating text
77. lt gd fe override NoteHead style triangle r8 e4 d c8 d2 e2 c8 b16 a b8 g g2 NN override NoteHead style slash s4 b4 c2 gt gt 1 Polyphonic voices are sometimes called layers in other notation packages Chapter 6 Basic notation 106 Polyphony does not change the relationship of notes within a relative block Each note is calculated relative to the note immediately preceding it relative noteA lt lt noteB noteC gt gt noteD noteC is relative to noteB not noteA noteD is relative to noteC not noteB or noteA 6 6 2 Explicitly instantiating voices Voice contexts can also also be instantiated manually inside a lt lt gt gt block to create polyphonic music using voiceOne up to NvoiceFour to assign stem directions and a horizontal shift for each part Specifically lt lt upper lower gt gt is equivalent to lt lt context Voice 1 voiceOne upper context Voice 2 voiceTwo lower gt gt The voiceXXX commands set the direction of stems slurs ties articulations text annota tions augmentation dots of dotted notes and fingerings voiceOne and voiceThree make these objects point upwards while voiceTwo and voiceFour make them point downwards The command oneVoice will revert back to the normal setting An expression that appears directly inside a lt lt gt gt belongs to t
78. lt context Staff upper upper context Dynamics dynamics dynamics context Staff lower lt lt clef bass lower gt gt context Dynamics pedal pedal gt gt layout context type Engraver_group_engraver name Dynamics alias Voice So that cresc works for example consists Output_property_engraver minimumVerticalExtent 1 1 pedalSustainStrings Ped Ped x pedalUnaCordaStrings tt una corda tre corde consists Piano_pedal_engraver consists Script_engraver consists Dynamic_engraver consists Text_engraver override TextScript font size 2 override TextScript font shape italic override DynamicText extra offset 0 2 5 override Hairpin extra offset 0 2 5 36 Chapter 3 Example templates 37 consists Skip_event_swallow_translator consists Axis_group_engraver context PianoStaff accepts Dynamics override VerticalAlignment forced distance 7 score context PianoStaff lt lt context Staff upper lt lt upper dynamics gt gt context Staff lower lt lt lower dynamics gt gt context Dynamics pedal pedal gt gt midi context type Performer_group_performer name Dynamics consists Piano_pedal_performer context PianoStaff accepts Dynamics Corp SSS PP 3 3 String quartet 3 3 1 String quarte
79. manuals providing the same freedoms that the software does But this License is not limited to software manuals it can be used for any textual work regardless of subject matter or whether it is published as a printed book We recommend this License principally for works whose purpose is instruction or reference 1 APPLICABILITY AND DEFINITIONS This License applies to any manual or other work that contains a notice placed by the copy right holder saying it can be distributed under the terms of this License The Document below refers to any such manual or work Any member of the public is a licensee and is addressed as you A Modified Version of the Document means any work containing the Document or a portion of it either copied verbatim or with modifications and or translated into another language A Secondary Section is a named appendix or a front matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document s overall subject or to related matters and contains nothing that could fall directly within that overall subject For example if the Document is in part a textbook of mathematics a Secondary Section may not explain any mathematics The relationship could be a matter of historical connection with the subject or with related matters or of legal commercial philosophical ethical or political position regarding them The Invar
80. melismaEnd e2 lyricsto lala new Lyrics la di __ daah gt gt la di daah In addition notes are considered a melisma if they are manually beamed and automatic beaming see Section 8 6 2 Setting automatic beam behavior page 198 is switched off Lyrics can also be entered without lyricsto In this case the duration of each syllable must be entered explicitly for example play2 the4 game2 sink2 or4 swim2 The alignment to a melody can be specified with the associatedVoice property set associatedVoice lala The value of the property here lala should be the name of a Voice context Without this setting extender lines will not be formatted properly Here is an example demonstrating manual lyric durations lt lt context Voice melody time 3 4 c2 ed g2 new Lyrics lyricmode set associatedVoice melody play2 the4 game2 Chapter 7 Instrument specific notation 129 gt gt 3 play the game A complete example of a SATB score setup is in section Section 3 4 Vocal ensembles page 41 Predefined commands melisma melismaEnd See also Program reference LyricCombineMusic Lyrics Melisma_translator input regression lyric combine new ly Bugs Melismata are not detected automatically and extender lines must be inserted by hand 7 3 5 Flexibility in alignment Often different stanzas of one song are put to one melody in slightly dif
81. multiple movements Each movement is entered with a score block score music and texts are entered with a markup block markup text The movements and texts are combined together in a book block like book score markup score The header for each piece of music can be put inside the score block The piece name from the header will be printed before each movement The title for the entire book can be put inside the book but if it is not present the header which is at the top of the file is inserted book header title Eight miniatures composer Igor Stravinsky score header piece Romanze Chapter 10 Output formats 226 markup text of second verse markup text of third verse score E piece Menuetto I 10 1 13 Creating titles Titles are created for each Nscore block and over a book The contents of the titles are taken from the header blocks The header block for a book supports the following dedication The dedicatee of the music centered at the top of the first page title The title of the music centered just below the dedication subtitle Subtitle centered below the title subsubtitle Subsubtitle centered below the subtitle poet Name of the poet flush left below the subtitle composer Name of the composer flush right below the subtitle meter Meter string flush left below the p
82. normally synchronized across the score This is done by the Timing_engraver This plug in keeps an administration of time signature location within the measure etc By moving the Timing_ engraver engraver from Score to Staff context we can have a score where each staff has its own time signature new Score with remove Timing_engraver lt lt Chapter 9 Changing defaults 206 new Staff with consists Timing_engraver t time 3 4 c4 ccccc new Staff with consists Timing_engraver f time 2 4 c4Acccce gt gt ERE ESAS 9 1 4 Layout tunings within contexts Each context is responsible for creating certain types of graphical objects The settings used for printing these objects are also stored by context By changing these settings the appearance of objects can be altered The syntax for this is override context name property value Here name is the name of a graphical object like Stem or NoteHead and property is an internal variable of the formatting system grob property or layout property The latter is a symbol so it must be quoted The subsection Section 9 2 2 Constructing a tweak page 212 explains what to fill in for name property and value Here we only discuss the functionality of this command The command override Staff Stem thickness 4 0 makes stems thicker the default is 1 3 with staff line thickness as a uni
83. notice requires Cover Texts you must enclose the copies in covers that carry clearly and legibly all these Cover Texts Front Cover Texts on the front cover and Back Cover Texts on the back cover Both covers must also clearly and legibly identify you as the publisher of these copies The front cover must present the full title with all words of the title equally prominent and visible You may add other material on the covers in addition Copying with changes limited to the covers as long as they preserve the title of the Document and satisfy these conditions can be treated as verbatim copying in other respects If the required texts for either cover are too voluminous to fit legibly you should put the first ones listed as many as fit reasonably on the actual cover and continue the rest onto adjacent pages If you publish or distribute Opaque copies of the Document numbering more than 100 you must either include a machine readable Transparent copy along with each Opaque copy or state in or with each Opaque copy a publicly accessible computer network location containing a complete Transparent copy of the Document free of added material which the general network using public has access to download anonymously at no charge using public standard network protocols If you use the latter option you must take reasonably prudent steps when you begin distribution of Opaque copies in quantity to ensure that this Transparent copy will remain thus
84. on a grand staff or piano staff the width of the brace is not taken into account The following property setting can be used to move the instrument names to the left in such situations override Score InstrumentName space alist left edge extra space 8 2 6 Instrument transpositions The key of a transposing instrument can also be specified This applies to many wind instru ments for example clarinets B flat A and E flat horn F and trumpet B flat C D and E flat The transposition is entered after the keyword transposition transposition bes B flat clarinet This command sets the property instrumentTransposition The value of this property is used for MIDI output and quotations It does not affect how notes are printed in the current staff To change the printed output see Section 6 2 3 Transpose page 80 The pitch to use for transposition should correspond to the transposition of the notes For example when entering a score in concert pitch typically all voices are entered in C so they should be entered as clarinet transposition c saxophone transposition c The command transposition should be used when the music is entered from a transposed orchestral part For example in classical horn parts the tuning of the instrument is often changed during a piece When copying the notes from the part use transposition e g 2 0 Chapter 8 Advanced notation 180 transposit
85. or text that should be aligned with dynamics see Section 8 1 9 New dynamic marks page 173 Predefined commands dynamicUp dynamicDown dynamicNeutral See also Program reference DynamicText Hairpin Vertical positioning of these symbols is handled by DynamicLineSpanner 6 5 4 Breath marks Breath marks are entered using breathe c 4 breathe d4 Commonly tweaked properties The glyph of the breath mark can be tuned by overriding the text property of the BreathingSign layout object with any markup text For example c 4 Noverride BreathingSign text make musicglyph markup scripts rvarcomma breathe d4 See also Program reference BreathingSign Examples input regression breathing sign ly 6 5 5 Running trills Long running trills are made with startTrillSpan and stopTrillSpan new Voice lt lt c1 startTrillSpan s2 grace di6 stopTrillSpan el gt gt c4 Chapter 6 Basic notation 103 Predefined commands startTrillSpan stopTrillSpan See also Program reference TrillSpanner 6 5 6 Glissando A glissando is a smooth change in pitch It is denoted by a line or a wavy line between two notes It is requested by attaching glissando to a note c2Nglissando c Noverride Glissando style zigzag c2 glissando c cpi See also Program reference Glissando Example files input regression glissa
86. original publisher of the version it refers to gives permission In any section entitled Acknowledgments or Dedications preserve the section s title and preserve in the section all the substance and tone of each of the contributor acknowledgments and or dedications given therein Preserve all the Invariant Sections of the Document unaltered in their text and in their titles Section numbers or the equivalent are not considered part of the section titles Delete any section entitled Endorsements Such a section may not be included in the Modified Version Do not retitle any existing section as Endorsements or to conflict in title with any Invariant Section If the Modified Version includes new front matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document you may at your option designate some or all of these sections as invariant To do this add their titles to Appendix F GNU Free Documentation License 279 the list of Invariant Sections in the Modified Version s license notice These titles must be distinct from any other section titles You may add a section entitled Endorsements provided it contains nothing but endorse ments of your Modified Version by various parties for example statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard You may add a passage of up to five wor
87. section explains how to use the rest of the documentation and how to solve common problems 4 1 Suggestions for writing LilyPond files Now you re ready to begin writing larger LilyPond files not just the little examples in the tutorial but whole pieces But how should you go about doing it The best answer is however you want to do it As long as LilyPond can understand your files and produces the output that you want it doesn t matter what your files look like That said sometimes we make mistakes when writing files If LilyPond can t understand your files or produces output that you don t like how do you fix the problem Here are a few suggestions that can help you to avoid or fix problems e Include Version numbers in every file Note that all templates contain a Version 2 6 0 string We highly recommend that you always include the version no mat ter how small your file is Speaking from personal experience it s quite frustrating to try to remember which version of LilyPond you were using a few years ago convert 1y requires you to declare which version of LilyPond you used e Include checks See Section 6 2 4 Bar check page 81 and Section 6 2 2 Octave check page 80 If you include checks every so often then if you make a mistake you can pinpoint it quicker How often is every so often It depends on the complexity of the music For very simple music perhaps just once or twice For very complex music
88. so they will not be added automatically and you must enter what you want to hear In this example E no note has an explicit accidental but you still must enter key d major d cis fis The code d does not mean print a black dot just below the staff Rather it means a note with pitch D natural In the key of A flat major it does get an accidental key as Major d Adding all alterations explicitly might require a little more effort when typing but the advan tage is that transposing is easier and accidentals can be printed according to different conven tions See Section 8 6 1 Automatic accidentals page 196 for some examples how accidentals can be printed according to different rules For more information on Accidentals see Section 8 6 1 Automatic accidentals page 196 Key signature see Section 6 3 2 Key signature page 84 2 4 Entering ties A tie is created by appending a tilde to the first note being tied GUTES For more information on Ties see Section 6 4 1 Ties page 91 gi g a2 al Chapter 2 Tutorial 15 2 5 Automatic and manual beams All beams are drawn automatically a8 ais d es rd If you do not like where beams are put they can be entered by hand Mark the first note to be beamed with and the last one with a8 ais d es r d For more information on beams see Section 6 4 5 Man
89. staff override Score MetronomeMark padding 2 5 8 2 3 Rehearsal marks To print a rehearsal mark use the mark command ci mark default ci mark default ci mark 8 ci mark default ci mark default The letter I is skipped in accordance with engraving traditions If you wish to include the letter I then use set Score markFormatter format mark alphabet The mark is incremented automatically if you use mark default but you can also use an integer argument to set the mark manually The value to use is stored in the property rehearsalMark The style is defined by the property markFormatter It is a function taking the current mark an integer and the current context as argument It should return a markup object In the following example markFormatter is set to a canned procedure After a few measures it is set to function that produces a boxed number set Score markFormatter format mark numbers ci mark default ci mark default set Score markFormatter format mark box numbers ci mark default ci mark default ci 1 2 B Hi The file scm translation functions scm contains the definitions of format mark numbers the default format format mark box numbers format mark letters and format mark box letters These can be used as inspiration for other formatting functions Chapter 8 Advanced notation 177 See also Program reference RehearsalMark
90. the first chord the graphical objects have all directions down or left The second chord has all directions up right The process of formatting a score consists of reading and writing the variables of graphical objects Some variables have a preset value For example the thickness of many lines a characteristic of typographical style is a variable with a preset value You are free to alter this value giving your score a different typographical impression Formatting rules are also preset variables each object has variables containing procedures These procedures perform the actual formatting and by substituting different ones we can change the appearance of objects In the following example the rule which note head objects are used to produce their symbol is changed during the music fragment Chapter 1 Introduction 5 1 3 What symbols to engrave The formatting process decides where to place symbols However this can only be done once it is decided what symbols should be printed in other words what notation to use Common music notation is a system of recording music that has evolved over the past 1000 years The form that is now in common use dates from the early renaissance Although the basic form i e note heads on a 5 line staff has not changed the details still evolve to express the innovations of contemporary notation Hence it encompasses some 500 years of musi
91. the game speel het spel joue le jeu The addlyrics command is actually just a convienient way to write a more complicated LilyPond structure that sets up the lyrics You should use addlyrics unless you need to do fancy things in which case you should investigate lyricsto or lyricmode MUSIC addlyrics LYRICS is the same as context Voice blah music lyricsto blah new lyrics LYRICS Bugs addlyrics cannot handle polyphony 7 3 2 Entering lyrics Lyrics are entered in a special input mode This mode is introduced by the keyword lyricmode or by using addlyrics or lyricsto In this mode you can enter lyrics with punctuation and accents and the input d is not parsed as a pitch but rather as a one letter syllable Syllables are entered like notes but with pitches replaced by text For example lyricmode Twin 4 kle4 twin kle litt le star2 There is a difference between addlyrics and lyricmode addlyrics and lyricsto ignore all durations and aligns syllables to notes lyricmode uses the durations specified A word lyrics mode begins with an alphabetic character and ends with any space or digit The following characters can be any character that is not a digit or white space One important consequence of this is that a word can end with The following example is usually a mistake in the input file The syllable includes a so the opening brace is not balanced lyricmode twinkle Similarly
92. the guitarist must play a certain note or chord with its fingers just touching the strings instead of fully pressing them This gives the sound a percussive noise like sound that still maintains part of the original pitch It is notated with cross noteheads this is demonstrated in Section 8 4 5 Special noteheads page 190 7 6 Bagpipe 7 6 1 Bagpipe definitions LilyPond contains special definitions for music for the Scottish highland bagpipe to use them add include bagpipe ly at the top of your input file This lets you add the special gracenotes common to bagpipe music with short commands For example you could write taor instead of grace small G32 d G e bagpipe ly also contains pitch definitions for the bagpipe notes in the appropiate octaves so you do not need to worry about relative or transpose include bagpipe ly grg G4 grg a grg b Ngrg c Ngrg d grg e grg f grA gA PA LI erre ERE Bagpipe music nominally uses the key of D Major even though that isn t really true However since that is the only key that can be used the key signature is normally not written out To set this up correctly always start your music with hideKeySignature If you for some reason want to show the key signature you can use NshowKeySignature instead Some modern music use cross fingering on c and f to flatten those notes This can be indicated by cflat or fflat Similarly the piobaireachd high g
93. toplevel The default handler is defined in the init file scm lily scm e A compound music expression such as c 4 d e 2 This will add the piece in a score and format it in a single book together with all other toplevel scores and music expressions This behavior can be changed by setting the variable toplevel music handler at toplevel The default handler is defined in the init file scm lily scm e A markup text a verse for example markup 2 The first line verse two Markup texts are rendered above between or below the scores or music expressions wher ever they appear e An indentifier such as foo c4 d e d This can be used later on in the file by entering foo The name of an identifier should have alphabetic characters only no numbers underscores or dashes The following example shows three things that may be entered at toplevel layout 4 movements are non justified by default raggedright t header title Do re mi c 4 q e2 At any point in a file any of the following lexical instructions can be entered e version e include e renameinput 5 9 Including LilyPond files A large project may be split up into separate files To refer to another file use include otherfile ly The line include file 1y is equivalent to pasting the contents of file ly into the current file at the place where you have the include For example for a large project
94. vlc 1y produce the appropiate part hhhhh piece ly Nversion 2 6 0 global time 4 4 key c major Violinone new Voice relative c set Staff instrument Violin 1 c2 d el Mbar jJ jpetlolololololololololololololololololololololololelolololelelek Violintwo new Voice relative c set Staff instrument Violin 2 g2 f el Mbar FF petlolololololololololololololololololololololololololololololek Viola new Voice relative c set Staff instrument Viola clef alto e2 d ci Mbar FF petololololololololololololololololololololololololelolololololek Cello new Voice relative c set Staff instrument Cello clef bass c2 b al Chapter 3 Example templates 40 bar FF Jpelolololololololololololololololololololololololelelelelolelelek music lt lt tag score vni new Staff lt lt global Violinone gt gt tag score vn2 new Staff lt lt global Violintwo gt gt tag score vla new Staff lt lt global Viola gt gt tag score vlc new Staff lt lt global Cello gt gt gt gt hhhhh score ly version 2 6 0 include piece ly set global staff size 14 score new StaffGroup keepWithTag score music layout midi tempo 4 60 hhhhh vni ly version 2 6 0 include piece ly score keepWithTag vn1 music layout hhhhh vn2 ly Nversio
95. voices entered with lt lt NN gt gt If a polyphonic voice ends while an automatic beam is still accepting notes it is not typeset Chapter 9 Changing defaults 201 9 Changing defaults The purpose of LilyPond s design is to provide the finest output quality as a default Never theless it may happen that you need to change this default layout The layout is controlled through a large number of proverbial knobs and switches This chapter does not list each and every knob Rather it outlines what groups of controls are available and explains how to lookup which knob to use for a particular effect The controls available for tuning are described in a separate document the Program reference manual That manual lists all different variables functions and options available in LilyPond It is written as a HTML document which is available on line http lilypond org doc v2 5 Documentation user out www lilypond internals but is also included with the LilyPond documentation package There are three areas where the default settings may be changed e Output changing the appearance of individual objects For example changing stem direc tions or the location of subscripts e Context changing aspects of the translation from music events to notation For example giving each staff a separate time signature e Global layout changing the appearance of the spacing line breaks and page dimensions Then there are separate syste
96. will guess this on the basis of Nrersion strings in the file n no version Normally convert 1y adds a version indicator to the output Specifying this option suppresses this s show rules Show all known conversions and exit to to patchlevel Set the goal version of the conversion It defaults to the latest available version h help Print usage help Bugs Not all language changes are handled Only one output option can be specified There are a few things that the convert ly cannot handle Here s a list of limitations that the community has complained about This bug report structure has been chosen because convert ly has a structure that doesn t allow to smoothly implement all needed changes Thus this is just a wishlist placed here for reference MacOS X users may execute this command under the menu entry Compile gt Update syntax Chapter 5 Running LilyPond 69 1 6 gt 2 0 Doesn t always convert figured bass correctly specifically things like lt gt Mats com To be able to run convert ly on it I first replaced all occurencies of lt to some dummy like and similarly I replaced gt with amp After the conversion I could then change back from to lt and from amp to gt P Doesn t convert all text markup correctly In the old markup syntax it was possible to group a number of markup commands together within parentheses e g
97. within a Voice context 6 7 2 Repeat syntax LilyPond has one syntactic construct for specifying different types of repeats The syntax is repeat variant repeatcount repeatbody If you have alternative endings you may add alternative alternativel alternative2 alternative3 Chapter 6 Basic notation 110 where each alternative is a music expression If you do not give enough alternatives for all of the repeats the first alternative is assumed to be played more than once Standard repeats are used like this ci repeat volta 2 c4 d e f repeat volta 2 fedc With alternative endings ci repeat volta 2 c4 d e f alternative d2 d f f gt 1 IT 2 peret context Staff partial 4 repeat volta 4 e c2 d2 e2 2 alternative g4 gg alaaaa b2 J 1 3 4 SISSE It is possible to shorten volta brackets by setting voltaSpannerDuration In the next ex ample the bracket only lasts one measure which is a duration of 3 4 relative c time 3 4 C66 set Staff voltaSpannerDuration ly make moment 3 4 repeat volta 5 ddd alternative e e e f ff CELEBRE 14 5 DESEA MAA AA ESE Chapter 6 Basic notation 111 See also Examples Brackets for the repeat are normally only printed over the topmost staff T his can be adjusted by setting the volta
98. 1 set Staff clefGlyph clefs F set Staff clefPosition 2 c 4 set Staff clefGlyph clefs G c 4 set Staff clefGlyph clefs C c 4 set Staff clefOctavation 7 c 4 set Staff clefOctavation 0 set Staff clefPosition 0 c 4 clef bass c 4 set Staff middleCPosition 4 c 4 YA 8 Bagot See also Program reference Clef 6 3 2 Key signature The key signature indicates the tonality in which a piece is played It is denoted by a set of alterations flats or sharps at the start of the staff Setting or changing the key signature is done with the key command key pitch type Here type should be major or minor to get pitch major or pitch minor respectively You may also use the standard mode names also called church modes ionian locrian aeolian mixolydian lydian phrygian and dorian This command sets the context property Staff keySignature Non standard key signatures can be specified by setting this property directly Chapter 6 Basic notation 85 Accidentals and key signatures often confuse new users because unaltered notes get natural signs depending on the key signature For more information see Section 2 3 More about pitches page 13 Commonly tweaked properties A natural sign is printed to cancel any previous accidentals This can be suppressed by setting the Staff printKeyCancellation property key d major a bcisd key g minor a bes
99. 12 3 Integrating Texinfo and music Texinfo is the standard format for documentation of the GNU project An example of a Texinfo document is this manual The HTML PDF and Info versions of the manual are made from the Texinfo document In the input file music is specified with lilypond options go here YOUR LILYPOND CODE end lilypond or lilypond options go here YOUR LILYPOND CODE or lilypondfile options go here filename 6 When lilypond book is run on it this results in a Texinfo file with extension texi containing Cimage tags for HTML and info output For the printed edition the raw TEX output of LilyPond is included in the main document We show two simple examples here A lilypond environment lilypond fragment c d e f gag end lilypond produces oe The short version lilypond fragment staffsize 11 lt c e g gt ter Contrary to La TEX lilypond does not generate an in line image It always gets a paragraph of its own produces When using the Texinfo output format 1ilypond book also generates bitmaps of the music in PNG format so you can make an HTML document with embedded music Chapter 12 lilypond book Integrating text and music 245 12 4 Integrating HTML and music Music is entered using lt lilypond fragment relative 2 gt key c minor c4 es g2 lt lilypond gt lilypond book then produces an HTML file with appropriate image tags for t
100. 129 7 3 5 1 Lyrics to multiple notes of a melisma 129 7 3 6 Switching the melody associated with a lyrics line 130 TaT More stanzas pio ala CEE ARA Ca a 131 19 9 2A THDIGUS Lice rez ico ae aed E AU idet cei tale iod il 133 1 3 9 Other vocal issues cieli ire a V EE SES ees 134 A Rythmie music 50er A d A ua e ede d p tut 134 7 4 1 Showing melody rhythms 134 4 4 2 Entering percussion salone do beeeberee x e a PS 134 AB PETCUSSION Staves i ocv RE Ed RA RR AA de dU ed da 135 15 GUAE si V eA EEEXGGq uy i ag V EE adus 137 7 5 1 String number indications 137 oz Tablatutes basic iu ere Reds LL srl d det 137 7 5 3 Non guitar tablatures wina 138 1 5 4 Bret diagrams conio ala dd ERR IR e UR RA PR Edd 139 4 5 5 Other g lb r issues 425 2404 ees a ee e qoe en RAT bk 140 TO Bagpipe tos os eeu E dod RI RAE AI E E A ace LI 140 7 6 1 Bagpipe definitions 0 00 cece eee tenet aa 140 1 6 2 Bagpipe exampl 4 55 oracle tia 141 Col a Ancient DOTA O A his rere Een a uen ates 142 Til Ancient note heads ce ccu ere Ep nia 142 121 2 Ancient accidentals v2 0 3 2a EL ec eeu e LEONI ae baie ap EA NS 143 Too Ancient festus ut eu ner tu cn EA Eh EUR AIR D RR RE RA aedes 143 Tarot Ancient clefs or Pp ECL Hu ee VIV 144 Tep Ancientsfl gs xev eto ean ua AW I E GRUSS E es 146 7 7 6 Anc
101. 198 e See also Program reference Accidental_engraver Accidental and AccidentalPlacement Bugs Simultaneous notes are considered to be entered in sequential mode This means that in a chord the accidentals are typeset as if the notes in the chord happened once at a time in the order in which they appear in the input file This is a problem when accidentals in a chord depend on each other which does not happen for the default accidental style The problem can be solved by manually inserting and for the problematic notes 8 6 2 Setting automatic beam behavior In normal time signatures automatic beams can start on any note but can only end in a few positions within the measure beams can end on a beat or at durations specified by the properties in autoBeamSettings The properties in autoBeamSettings consist of a list of rules for where beams can begin and end The default autoBeamSettings rules are defined in scm auto beam scm In order to add a rule to the list use override auto beam setting be p q n m a b context e be is either begin or end e b q is the duration of the note for which you want to add a rule A beam is considered to have the duration of its shortest note Set p and q to to have this apply to any beam e n m is the position in the time signature to which this rule should apply Set n and m to to have this apply in any time signature e a b is the position in t
102. 4 maj7 gis8 dim7 C FmG Gp When put together chord names lyrics and a melody form a lead sheet for example chords chords the melody addlyrics the text gt gt I sus4 C F_ gt ctf fF LU 3 _J L34 I want to break free A complete list of modifiers and other options for layout can be found in Section 6 1 5 Chords page 75 2 15 Adding titles Bibliographic information is entered in a separate block the Nheader block The name of the piece its composer etc are entered as an assignment within header The header block is usually put at the top of the file For example header title Miniature composer Igor Stravinsky d abeti When the file is processed the title and composer are printed above the music More infor mation on titling can be found in Section 10 1 13 Creating titles page 226 Chapter 2 Tutorial 26 2 16 Single staff polyphony When different melodic lines are combined on a single staff they are printed as polyphonic voices each voice has its own stems slurs and beams and the top voice has the stems up while the bottom voice has them down Entering such parts is done by entering each voice as a sequence with and combining these simultaneously separating the voices with lt lt al g2 47 4 NN r4 g4 f2 f4 gt gt fer For polyphonic music typesetting spacer rests can also be co
103. 48 13 Converting from other formats 249 13 10 Invoking midi21y usi IA M XX Rei eed p YEA 249 13 2 Invoking etf2ly iii ILA LA aL EE 250 13 3 Invoking abc2ly spore Vienne Re Ears E Sais eis ae cV 250 13 4 Invoking nup2Ty isernia ali e m o e ev n RA 251 13 5 Generating LilyPond files 251 Appendix A Literature list 252 Appendix B Scheme tutorial 253 Appendix C Notation manual details 255 C l Chord name chart mmm AZ SERE REPE E 255 G 2 MIDE instrumenta oer cai ra ERR EVER RU PCR EM 256 2 3 ESTON Colors woe Suy Cu e ii M p ct et CT Anu ne 257 CA The Beta font ccs ke ev ER Et A x e ette v yn 259 Appendix D Point andclick 271 Appendix E Cheat sheet 272 Appendix F GNU Free Documentation License 276 F 0 1 ADDENDUM How to use this License for your documents 281 Appendix G LilyPondindez 282 Preface It must have been during a rehearsal of the EJE Eindhoven Youth Orchestra somewhere in 1995 that Jan one of the cranked violists told Han Wen one of the distorted French horn players about the grand new project he was working on It was an automated system for printing music to be precise it was MPP a preprocessor for MusiXTeX As it happened Han Wen accidentally wanted to p
104. Double dotted notes are produced in a similar way a 4 b c 4 b 8 a 4 b 4 c 8 Predefined commands Dots are normally moved up to avoid staff lines except in polyphonic situations The following commands may be used to force a particular direction manually dotsUp dotsDown NdotsNeutral See also Program reference Dots and DotColumn 6 1 10 Tuplets Tuplets are made out of a music expression by multiplying all durations with a fraction times fraction musicexpr The duration of musicexpr will be multiplied by the fraction The fraction s denominator will be printed over the notes optionally with a bracket The most common tuplet is the triplet in which 3 notes have the length of 2 so the notes are 2 3 of their written length g 4 times 2 3 c 4 c c d 4 d 4 Predefined commands tupletUp tupletDown tupletNeutral Chapter 6 Basic notation 78 Commonly tweaked properties The property tupletSpannerDuration specifies how long each bracket should last With this you can make lots of tuplets while typing times only once thus saving lots of typing In the next example there are two triplets shown while times was only used once set tupletSpannerDuration ly make moment 1 4 times 2 3 c 8 c c c c c Cerere 3 3 The format of the number is determined by the property tupletNumberFormatFunction The default prints
105. Each layout object may have several functions as a notational or typographical element For example the Fingering object has the following aspects e Its size is independent of the horizontal spacing unlike slurs or beams e It is a piece of text Granted it is usually a very short text e That piece of text is typeset with a font unlike slurs or beams e Horizontally the center of the symbol should be aligned to the center of the notehead e Vertically the symbol is placed next to the note and the staff e The vertical position is also coordinated with other super and subscript symbols Each of these aspects is captured in so called interfaces which are listed on the Fingering page at the bottom This object supports the following interfaces item interface self alignment interface side position interface text interface text script interface font interface finger interface and grob interface Clicking any of the links will take you to the page of the respective object interface Each interface has a number of properties Some of them are not user serviceable Internal proper ties but others are We have been talking of the Fingering object but actually it does not amount to much The initialization file scm define grobs scm shows the soul of the object Fingering print function Text interface print padding 0 6 staff padding 0 6 self alignment X 0 self alignment Y 0 script priori
106. GIULIO CESARE ceppo We have used the caps font shape but suppose that our font does not have a small caps variant In that case we have to fake the small caps font by setting a string in upcase with the first letter a little larger def markup command smallcaps layout props str string Print the string argument in small caps interpret markup layout props make line markup map lambda s if string length s 0 s markup large string upcase substring s 0 1 translate cons 0 6 0 tiny string upcase substring s 1 string split str Space The smallcaps command first splits its string argument into tokens separated by spaces string split str Space for each token a markup is built with the first letter made large and upcased large string upcase substring s 0 1 and a second markup built with the following letters made tiny and upcased tiny string upcase substring s 1 As LilyPond introduces a space between markups on a line the second markup is translated to the left translate cons 0 6 0 Then the markups built for each token are put in a line by make line markup Finally the resulting markup is passed to the interpret markup function with the layout and props arguments Chapter 11 Interfaces for programmers 239 11 3 Contexts for programmers 11 3 1 Context evaluation Contexts can be modified during interpretation with Scheme code The
107. If symbol is not defined it returns an empty markup general align axis integer dir number arg markup Align arg in axis direction to the dir side halign dir number arg markup Set horizontal alignment If dir is 1 then it is left aligned while 1 is right Values in between interpolate alignment accordingly hbracket arg markup Draw horizontal brackets around arg hcenter arg markup Align arg to its X center hspace amount number This produces a invisible object taking horizontal space markup A hspace 2 0 B will put extra space between A and B on top of the space that is normally inserted before elements on a line huge arg markup Set font size to 2 italic arg markup Use italic font shape for arg large arg markup Set font size to 1 left align arg markup Align arg on its left edge Chapter 8 Advanced notation 169 line args list of markups Put args in a horizontal line The property word space determines the space be tween each markup in args lookup glyph name string Lookup a glyph by name lower amount number arg markup Lower arg by the distance amount A negative amount indicates raising see also aise magnify sz number arg markup Set the font magnification for the its argument In the following example the middle A will be 10 larger A magnify 1 1 A A Note magnification only works if a font name is explicitly selected Use fonts
108. L 0 gt Repeatscz uude ut Als e ede Re e eben ad on ene re Rd 109 OM HepeatdtyDeseixese MEER EPIRI ee ae et 109 6 62 Repeat Syntax oien daie exire se aA ae es 109 6 4 8 Repeats and MIDI 111 6 7 4 Manual repeat commands 112 6 1 5 Tremolo repeats een Rim Ebr rete d ae asi 112 6 7 6 Tremolo subdivisions iisdem pb Rp eb EO UESTRAE en rers 113 61 7 Measure repeats e I cae e RI as VR EAE ERR RE PEE 113 7 Instrument specific notation 115 fab Piano SA AA aaa ia EUER MO POM Es Agla 115 7 1 1 Automatic staff changes 115 7 1 2 Manual staff switches L0 hh 116 T 1 3 Pedals 5 a br reae ia am e DR MR AAA 116 TAA Statt switch messis 4 Ru hehe O EC E ERE 117 17 1 5 Cross staff stems ede du deep wa ed Peewee cae EE Rd ER dans 118 1 2 A enel INE ade bd 118 7 2 1 Introducing chord names 118 1 2 2 Chords mode er td tse aan WAMAMA EMA 119 12 3 Printing chord dames signi ii ent eae RI RE ei 121 1 9 Vocal music ori deal eee alare e 124 7 3 1 Setting simple songs 0 00 ahhh he 124 3 2 Entering lyrics appia aa Le ed ERE RR NERO ia EE EA 125 7 3 3 Hyphens and ertenders 126 oA The Lyrics combi EI ME Ab ale E He s 127 7 3 5 Flexibility in alignment
109. LilyPond The music typesetter The LilyPond development team Copyright 1999 2005 by the authors Permission is granted to copy distribute and or modify this document under the terms of the GNU Free Documentation License Version 1 1 or any later version published by the Free Software Foundation with no Invariant Sections A copy of the license is included in the section entitled GNU Free Documentation License For LilyPond version 2 6 6 Table of Contents PLACA ARSS errare 1 Notes lor version 2 0 22 ii E td SB lati 1 E Introduction AA A 2 TA Engraving oeny NA 2 1 2 Automated engraving ore IR Ali IA ARI AI 3 1 8 What symbols to engrave 5 1 4 Music representation L LL hh hh hh he hh hn 6 1 5 Example applications erc trota Lia EET Ee es 7 1 6 About this manual 8 2e Tutorial eee bd oat nie mar aha ee rana 11 2 cFarst SUeDS onec It boa ction tede Med SA Eee p E Ee e ipPgE 11 2 2 Running LilyPond for the first time 12 MacOS Xeno une I pb uale La i 12 MindoWSs esu ea ufu A alle o Viste a e aded fecti dave 13 DEus cert utter tk eS E bao tto a er Mor a Lee An od Vo ct e 13 2 9 More about pitches a cce epum v be n CREE ERE RATS 13 2 4 Entering ties cri ina EE TER Lo ate RE C Re LE ee EAE 14 2 5 Automatic and manual beams 15 2 03 Octave entry oat e
110. OldLace linen AntiqueWhite PapayaWhip BlanchedAlmond bisque PeachPuff NavajoWhite moccasin cornsilk ivory LemonChiffon seashell honeydew MintCream azure AliceBlue lavender LavenderBlush MistyRose white black DarkSlateGrey DimGrey SlateGrey LightSlateGrey grey LightGrey MidnightBlue navy NavyBlue CornflowerBlue DarkSlateBlue SlateBlue MediumSlateBlue LightSlateBlue MediumBlue RoyalBlue blue DodgerBlue DeepSkyBlue SkyBlue LightSkyBlue SteelBlue LightSteelBlue LightBlue PowderBlue PaleTurquoise DarkTurquoise MediumTurquoise turquoise cyan LightCyan CadetBlue MediumAquamarine aquamarine DarkGreen DarkOliveGreen DarkSeaGreen SeaGreen MediumSeaGreen LightSeaGreen PaleGreen SpringGreen LawnGreen green chartreuse MediumSpringGreen GreenYellow LimeGreen YellowGreen ForestGreen OliveDrab DarkKhaki khaki PaleGoldenrod LightGoldenrodYellow LightYellow yellow gold LightGoldenrod goldenrod DarkGoldenrod RosyBrown IndianRed SaddleBrown sienna peru burlywood beige wheat SandyBrown tan chocolate firebrick brown DarkSalmon salmon LightSalmon orange DarkOrange coral LightCoral tomato OrangeRed red HotPink DeepPink pink LightPink PaleVioletRed maroon MediumVioletRed VioletRed magenta violet plum orchid MediumOrchid DarkOrchid DarkViolet BlueViolet purple MediumPurple thistle DarkGrey DarkBlue DarkCyan DarkMagenta DarkRed LightGreen Color names with a numerical suffix In the following names the suffix N can be a number in the range 1 4 snowN seashellN AntiqueWhiteN
111. OnThisStaff property see input regression volta multi staff ly Bugs A nested repeat like repeat repeat Nalternative is ambiguous since it is is not clear to which repeat the alternative belongs This ambiguity is resolved by always having the Nalternative belong to the inner repeat For clarity it is advisable to use braces in such situations Timing information is not remembered at the start of an alternative so after a repeat timing information must be reset by hand for example by setting Score measurePosition or entering partial Similarly slurs or ties are also not repeated 6 7 3 Repeats and MIDI With a little bit of tweaking all types of repeats can be present in the MIDI output This is achieved by applying the NunfoldRepeats music function This functions changes all repeats to unfold repeats unfoldRepeats 1 repeat tremolo 8 c 32 e repeat percent 2 c 8 d gt repeat volta 2 c4 d e f alternative g a a g if e d c i bar When creating a score file using unfoldRepeats for midi then it is necessary to make two score blocks One for MIDI with unfolded repeats and one for notation with volta tremolo and percent repeats For example score music layout d score Chapter 6 Basic notation 112 unfoldRepeats music Midi 6 7 4 Manual repeat commands The pro
112. Pond However many music expressions are not valid input on their own for example a 1y file containing only a note CIA will result in a parsing error Instead music should be inside other expressions which may be put in a file by themselves Such expressions are called toplevel expressions This section enumerates them all A 1y file contains any number of toplevel expressions where a toplevel expression is one of the following e An output definition such as paper midi and layout Such a definition at the toplevel changes the default settings for the block entered e A header block This sets the global header block This is the block containing the definitions for book wide settings like composer title etc e An addquote statement See Section 8 3 3 Quoting other voices page 184 for more information e A score block This score will be collected with other toplevel scores and combined as a single book This behavior can be changed by setting the variable toplevel score handler at toplevel The default handler is defined in the init file scm lily scm Chapter 5 Running LilyPond 71 The score must begin with music and may contain only one music block e A book block logically combines multiple movements i e multiple score blocks in one document A number of scores creates a single output file where all movement are concatenated This behavior can be changed by setting the variable toplevel book handler at
113. R ELE A 193 8 5 4 Shape note heads arrere vacie Aea kaar a a a ahhh hh n hh nn 193 8 5 5 Easy Notation note heads 194 8 5 6 Analysis brackets ose rte tek rasura pae tu Re e ee 194 8 570 Coloring objects i vobis ie Ai e n dete 195 8 6 Automatic notati Ms sires ae ber ee tient BACK lata ect e ie 196 8 6 1 Automatic accidentals 196 8 6 2 Setting automatic beam behavior 198 9 Changing dali AA aa 201 9 1 Interpretation contexts IA AWA KAA E ET aS 201 9 1 1 Creating ka A or aaa 202 9 1 2 Changing context properties on the fly 203 9 1 3 Modifying context plug ins 205 9 1 4 Layout tunings within contexts 206 9 1 5 Changing context default settings 207 9 1 6 Defining new contekts 208 9 2 The override command 210 92 1 COMMON tweaks cse eer naar ERES 210 9 22 Constructing a weak c erecto bue gu urls AERE 212 9 2 3 Navigating the program reference 212 9 2 4 Layout interfaces vereor ER aut eR er HI a 213 9 2 5 Determining the grob property 214 9 2 6 Difficult tweak
114. Staff e4 f g a break c1 new Staff c4 d e f break R1 gt gt ex crf i Chapter 8 Advanced notation 184 The first system shows all staves in full If empty staves should be removed from the first system too set remove first to true in RemoveEmptyVerticalGroup override Score RemoveEmptyVerticalGroup remove first t To remove other types of contexts use AncientRemoveEmptyStaffContext or RemoveEmptyRhythmicStaffContext Another application is making ossia sections i e alternative melodies on a separate piece of staff with help of a Frenched staff See input test ossia ly for an example 8 3 3 Quoting other voices With quotations fragments of other parts can be inserted into a part directly Before a part can be quoted it must be marked especially as quotable This is done with the addquote command addquote name music Here name is an identifying string The music is any kind of music Here is an example of addquote addquote clarinet relative c f4 fis g gis This command must be entered at toplevel i e outside any music blocks After calling addquote the quotation may then be done with quoteDuring or cueDuring quoteDuring name music During a part a piece of music can be quoted with the quoteDuring command quoteDuring clarinet s2 This would cite three quarter notes the duration of s2 of the previously added clarinet
115. Staff lt lt context Staff one set followVoice t ci change Staff two b2 a context Staff two clef bass skip 1 2 gt gt Chapter 7 Instrument specific notation 118 See also Program reference VoiceFollower Predefined commands showStaffSwitch hideStaffSwitch 7 1 5 Cross staff stems Chords that cross staves may be produced by increasing the length of the stem in the lower staff so it reaches the stem in the upper staff or vice versa stemExtend once override Stem length 22 noFlag once override Stem flag style no flag context PianoStaff lt lt new Staff stemDown stemExtend f 4 stemExtend noFlag f 8 new Staff clef bass a4 a8 gt gt 7 2 Chord names 7 2 1 Introducing chord names LilyPond has support for printing chord names Chords may be entered in musical chord nota tion i e lt gt but they can also be entered by name Internally the chords are represented as a set of pitches so they can be transposed twoWays transpose c c chordmode c1 f sus4 bes f Chapter 7 Instrument specific notation 119 lt c e g gt lt f bes c Xf bes d lt lt context ChordNames twoWays context Voice twoWays gt gt C pue Bb F pue peus bae b amp Pps ay This example also shows that the chord printing routines do not try to be intel
116. TEE eg See also Init files ly drumpitch init 1ly Program reference DrumStaff DrumVoice Bugs Because general MIDI does not contain rim shots the sidestick is used for this purpose instead 7 5 Guitar 7 5 1 String number indications String numbers can be added to chords by indicating the string number with number Q See also input regression string number ly See also Program reference StringNumber 7 5 2 Tablatures basic Tablature notation is used for notating music for plucked string instruments Pitches are not denoted with note heads but by numbers indicating on which string and fret a note must be played LilyPond offers limited support for tablature Chapter 7 Instrument specific notation 138 The string number associated to a note is given as a backslash followed by a number e g c4 3 for a C quarter on the third string By default string 1 is the highest one and the tuning defaults to the standard guitar tuning with 6 strings The notes are printed as tablature by using TabStaff and TabVoice contexts context TabStaff a 4 5 c 2 a 3 e 1 e 4 c 2 a 3 e 1 When no string is specified the first string that does not give a fret number less than minimumFret is selected The default value for minimumFret is 0 el6 fis gis a b4 set TabStaff minimumFret 8 el6 fis gis a b4 See also Progr
117. There are different custos glyphs used in different flavors of notational style For typesetting custodes just put a Custos_engraver into the Staff context when declaring the layout block as shown in the following example Chapter 7 Instrument specific notation 149 layout context Staff consists Custos_engraver Custos override style mensural The result looks like this The custos glyph is selected by the style property The styles supported are vaticana medicaea hufnagel and mensural They are demonstrated in the following fragment vaticana medicaea hufnagel mensural i i v ml See also Program reference Custos Examples input regression custos 1ly 7 7 9 Divisiones A divisio plural divisiones Latin word for division is a staff context symbol that is used to structure Gregorian music into phrases and sections The musical meaning of divisio minima divisio maior and divisio mazima can be characterized as short medium and long pause somewhat like the breathmarks from Section 6 5 4 Breath marks page 102 The finalis sign not only marks the end of a chant but is also frequently used within a single antiphonal responsorial chant to mark the end of each section To use divisiones include the file gregorian init 1ly It contains definitions that you can apply by just inserting divisioMinima divisioMaior divisioMaxima and finalis at proper places in the
118. U 98 vari bles an oe gio EM RU Aretes 10 Vaticana Editio 142 VaticanaStaffContext 0 eee eee 156 VaticanaVoiceContezt 156 MEI KAA LEVE iki 172 veenter markup 265 toa 172 VETSIONIN G8 lire aa SOAS ota wee 23 vertical spacing 221 224 VerticalAlignment 221 222 VerticalAxisGroup lesse eee eee eee 222 Viewing MUSE cu i a aed ee C ported 13 VAM Sets dae of Pe eas ee SENG ria 70 A dat slated Sp recepte ERU WAA NA 83 VocalName pits eet aS A ea Pa Rad De e 132 VOICE dto ai ia rr S me etes 76 VOICE aa aE peter ii 101 Voice o L eee hemes dled 105 106 116 127 128 VOT CO onice det pa eta 133 Voice 150 183 185 191 201 202 203 204 207 208 209 212 214 223 230 249 VoicePolLlower v le ia aan e 118 voices more onastafl 26 Volta engr ver nici iii iii mes 122 VoltaBracketa si abati AI ir ely le 112 VoltaRepeatedMusic 112 Appendix G LilyPond index W WAELpges sa Lena LR ai 67 WhichBaf iee eR Re 88 White mensural ligatures 150 whiteoubi D Re AAA Re aio 172 whiteoit mark p sss ge indio 172 whoLe mote s doe ec err P eve 11 whole rests for a full measure 173 291 With COlor 2 5 5 ah 09 wes kee E Re Ie eR Rn 172 with color markupz i 6 le even ae Bend sae 172 WIEN TUL EE xe RUE innata 172 with rl ma
119. Voice Fingering padding 3 c 2 stemUp f 2 G rd In this case the context for this tweak is Voice This fact can also be deduced from the program reference for the page for the Fingering_engraver plug in says Fingering engraver is part of contexts Voice Chapter 9 Changing defaults 215 9 2 6 Difficult tweaks There are two classes of difficult adjustments First when there are several of the same objects at one point and you want to adjust only one For example if you want to change only one note head in a chord In this case the applyoutput function must be used The next example defines a Scheme function set position font size that sets the font size property but only on objects that have note head interface and are at the right Y position define set position font size pos size grob origin current let interfaces ly grob property grob interfaces position ly grob property grob staff position if and is this a note head memq note head interface interfaces is the Y coordinate right pos position then do it set ly grob property grob font size size relative c applyoutput set position font size 2 4 lt c e g gt z 4 A similar technique can be used for accidentals In that case the function should check for accidental interface Another difficult adjustment is the appearance of spanner objects such as s
120. XX Petrucci used C clefs with differently balanced left side vertical beams depending on which staff line it is printed See also In this manual see Section 6 3 1 Clef page 83 Bugs The mensural g clef is mapped to the Petrucci g clef 7 7 5 Ancient flags Use the flag style property of grob Stem to select ancient flags Besides the default flag style only the mensural style is supported override Stem flag style mensural override Stem thickness 1 0 override NoteHead style mensural autoBeam0Off C 8 d 8 e 8 f 8 c 16 d 16 e 16 f 16 c 32 d 32 e 32 f 32 s8 C 8 q 8 e 8 f 8 c 16 d 16 e 16 f 16 c 32 d 32 e 32 f 32 Note that the innermost flare of each mensural flag always is vertically aligned with a staff line There is no particular flag style for neo mensural notation Hence when typesetting the incipit of a transcribed piece of mensural music the default flag style should be used There are no flags in Gregorian Chant notation Chapter 7 Instrument specific notation 147 Bugs The attachment of ancient flags to stems is slightly off due to a change in early 2 3 x Vertically aligning each flag with a staff line assumes that stems always end either exactly on or exactly in the middle between two staff lines This may not always be true when using advanced layout features of classical notation which however are typic
121. a4 Nskip 1 a4 The s syntax is only available in note mode and chord mode In other situations for example when entering lyrics you should use the Nskip command relative a 2 a2 new Lyrics lyricmode skip 2 bla2 gt gt bla The skip command is merely an empty musical placeholder It does not produce any output not even transparent output The s skip command does create Staff and Voice when necessary similar to note and rest commands For example the following results in an empty staff s4 The fragment skip 4 would produce an empty page See also Program reference SkipMusic 6 1 8 Durations In Note Chord and Lyrics mode durations are designated by numbers and dots durations are entered as their reciprocal values For example a quarter note is entered using a 4 since it is a 1 4 note while a half note is entered using a 2 since it is a 1 2 note For notes longer than a whole you must use the variables longa and breve c breve C1 c2 c 4 c 8 c 16 c 32 c 64 c 64 r longa r breve ri r2 r4 r8 r16 r32 r64 r64 Chapter 6 Basic notation 77 o o 44239 poe 13559 If the duration is omitted then it is set to the previously entered duration The default for the first note is a quarter note a a a2 a a4a a al a iid 33455 gt 6 1 9 Augmentation dots To obtain dotted note lenghts simply add a dot to the number
122. accessible at the stated location until at least one year after the last time you distribute an Opaque copy directly or through your agents or retailers of that edition to the public It is requested but not required that you contact the authors of the Document well before redistributing any large number of copies to give them a chance to provide you with an updated version of the Document Appendix F GNU Free Documentation License 278 4 MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above provided that you release the Modified Version under precisely this License with the Modified Version filling the role of the Document thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it In addition you must do these things in the Modified Version A N Use in the Title Page and on the covers if any a title distinct from that of the Document and from those of previous versions which should if there were any be listed in the History section of the Document You may use the same title as a previous version if the original publisher of that version gives permission List on the Title Page as authors one or more persons or entities responsible for authorship of the modifications in the Modified Version together with at least five of the principal authors of the Document all of its principal authors if it has less
123. accidentals They are printed in reduced size or with parentheses set accidental style modern cautionary cis c cis 2 e c e rir modern voice This rule is used for multivoice accidentals to be read both by musicians playing one voice and musicians playing all voices Accidentals are typeset for each voice but they are canceled across voices in the same Staff modern voice cautionary This rule is the same as modern voice but with the extra accidentals the ones not typeset by voice typeset as cautionaries Even though all accidentals typeset by default are typeset by this variable some of them are typeset as cautionaries piano This rule reflects 20th century practice for piano notation Very similar to modern but accidentals also get canceled across the staves in the same GrandStaff or PianoStaff piano cautionary Same as set accidental style piano but with the extra accidentals typeset as cautionaries no reset This is the same as default but with accidentals lasting forever and not only until the next measure set accidental style no reset ci cis cis c forget This is sort of the opposite of no reset Accidentals are not remembered at all and hence all accidentals are typeset relative to the key signature regardless of what was before in the music set accidental style forget key d major c4 c cis cis d d dis dis Chapter 8 Advanced notation
124. ains black after being set to x11 color Boggle which is deliberate nonsense E override Staff StaffSymbol color x11 color SlateBlue2 set Staff instrument markup with color x11 color navy Clarinet time 2 4 gis 8 a override Beam color x11 color medium turquoise gis a override NoteHead color x11 color LimeGreen gis a override Stem color x11 color Boggle gis a Clarinet ter tf ser EE Chapter 8 Advanced notation 196 See also Appendix Section C 3 List of colors page 257 Bugs Not all x11 colors are distinguishable in a web browser For web use normal colors are recom mended An x11 color is not necessarily exactly the same shade as a similarly named normal color 8 6 Automatic notation This section describes how to change the way that accidentals and beams are automatically displayed FIXME this might get moved into Changing Defaults Please send opinions to lilypond devel Thanks 8 6 1 Automatic accidentals Common rules for typesetting accidentals have been placed in a function This function is called as follows set accidental style STYLE CONTEXT The function can take two arguments the name of the accidental style and an optional argument that denotes the context that should be changed If no context name is supplied Staff is the default but you may wish to apply the accidental st
125. ally out of scope for mensural notation 7 7 6 Ancient time signatures There is limited support for mensural time signatures The glyphs are hard wired to particular time fractions In other words to get a particular mensural signature glyph with the time n m command n and m have to be chosen according to the following table C C C time 4 4 time 2 2 time 6 4 time 6 8 O O O O time 3 2 time 3 4 time 9 4 time 9 8 I D time 4 8 time 2 4 Use the style property of grob TimeSignature to select ancient time signatures Supported styles are neomensural and mensural The above table uses the neomensural style This style is appropriate for the incipit of transcriptions of mensural pieces The mensural style mimics the look of historical printings of the 16th century The following examples show the differences in style default numbered mensural neomensural 18 EE E z e O 5 single digit 2 See also This manual Section 6 3 3 Time signature page 85 gives a general introduction to the use of time signatures Chapter 7 Instrument specific notation 148 Bugs Ratios of note durations do not change with the time signature For example the ratio of 1 brevis 3 semibrevis tempus perfectum must be made by hand by setting breveTP ly make duration 1 0 3 2 c breveTP f1 This sets breveTP to 3 2 times 2 3 times a whole note The o1d6 8alt symbol an alterna
126. am reference TabStaff TabVoice Bugs Chords are not handled in a special way and hence the automatic string selector may easily select the same string to two notes in a chord 7 5 3 Non guitar tablatures You can change the number of strings by setting the number of lines in the TabStaff You can change the tuning of the strings A string tuning is given as a Scheme list with one integer number for each string the number being the pitch measured in semitones relative to middle C of an open string The numbers specified for stringTuning are the numbers of semitones to subtract or add starting the specified pitch by default middle C in string order In the next example stringTunings is set for the pitches e a d and g context TabStaff lt lt set TabStaff stringTunings 5 10 15 20 Y a 4 c ae ec ae gt gt Chapter 7 Instrument specific notation 139 5 2 9 5 2 9 Te BH No guitar special effects have been implemented Bugs See also Program reference Tab_note_heads_engraver 7 5 4 Fret diagrams Fret diagrams can be added to music as a markup to the desired note The markup contains information about the desired fret diagram as shown in the following example context Voice d markup fret diagram 6 x 5 x 4 0 3 2 2 3 1 2 d d d fis markup override size 0 75 override finger code below string fret diagram verbose tt plac
127. ample 1 2 3 12 string f We have been using lists all along A calculation like 1 2 is also a list containing the symbol and the numbers 1 and 2 Normally lists are interpreted as calculations and the Scheme interpreter substitutes the outcome of the calculation To enter a list we stop the evaluation This is done by quoting the list with a quote symbol So for calculations do not use a quote Inside a quoted list or pair there is no need to quote anymore The following is a pair of symbols a list of symbols and a list of lists respectively stem head staff clef key signature 1 42 2 In Scheme terminology the pair is called cons and its two elements are called car and cdr respectively Appendix C Notation manual details 255 Appendix C Notation manual details C 1 Chord name chart The following charts shows two standard systems for printing chord names along with the pitches they represent Ignatzek default C Cm C C C c3 c d35 Alternative Det C Cm c c cm dida E p cos c3 Au dg dg ovg Lug Def Cm Cm ce c Alt c 347 cT c b3b Gg lag g dg Cm cm P c 113 935 Appendix C Notation manual details 256 ies c cl cm cB Alt c cl 1 com 1 ci 3 8g a A de chis CARRO cmm C7 b13 ix c 113 CT CHI 1 cl 1513 su 913 eli CAN cB c11b913
128. ample templates gt gt bassusNotes lt lt global bassusNotes gt gt context Lyrics bassusLyrics lyricsto bassusNotes bassusLyrics layout context Score override BarLine transparent t remove System_start_delimiter_engraver context 3 Voice override Slur transparent t Discantus Altus IV Ju bi la te Tenor Bb p ho Bassus DE ai 9 C 49 Chapter 3 Example templates 3 via lax 7 e ral SI L 7 o om nister ra om us pal oa De o om nister ra us 4 e E 3 P K 8 Ju bi late us 6 Je e Ju bi us 3 6 Jazz combo 50 This is a much more complicated template for a jazz ensemble Note that all instruments are notated in key c major This refers to the key in concert pitch LilyPond will automatically transpose the key if the music is within a transpose section version 2 6 0 header title Song subtitle tune composer Me meter moderato piece Swing tagline LilyPond example file by Amelie Zapf Berlin 07 07 2003 texidoc Jazz tune for combo horns guitar piano bass drums 3 set global staff size 16 include english ly hhhhhhhhhhhh Some macros thhhhhhhhhhhhhhh lh sl ove
129. amples The script is automatically placed but the direction can be forced as well Like other pieces of LilyPond code _ will place them below the staff and will place them above Chapter 6 Basic notation 98 c 4 c 24 7 ber v Other symbols can be added using the syntax note name Again they can be forced up or down using and _ e g c fermata c fermata c_ fermata NN Here is a chart showing all scripts available accent marcato staccatissimo espressivo staccato gr 3 tenuto portato upbow downbow flageolet thumb lheel rheelltoe rtoe open stopped turn reverseturn dr Av Av AA AA ow trill prall mordent prallprall prallmordent upprall Www ww alv ve ve downprall upmordent downmordent pralldown prallup Chapter 6 Basic notation 99 hw A A longfermata verylongfermata segno coda varcoda Commonly tweaked properties The vertical ordering of scripts is controlled with the script priority property The lower this number the closer it will be put to the note In this example the TextScript the sharp symbol first has the lowest priority so it is put lowest in the first example In the second the prall trill the Script has the lowest so it is on the inside When two objects have the same priority the order in which they are entered decides which one comes first on
130. and stored in a variable The contents of that variable is then used to generate both the part and the full score It is convenient to define the notes in a special file For example suppose that the file horn music 1y contains the following part of a horn bassoon duo hornNotes relative c time 2 4 r4 f8 a cis4 fed Then an individual part is made by putting the following in a file include horn music ly header instrument Horn in F transpose f c hornNotes The line include horn music ly substitutes the contents of horn music ly at this position in the file so hornNotes is defined afterwards The command transpose f c indicates that the argument being hornNotes should be transposed by a fifth downwards Sounding f is denoted by notated c which corresponds with the tuning of a normal French Horn in F The transposition can be seen in the following output z In ensemble pieces one of the voices often does not play for many measures This is denoted by a special rest the multi measure rest It is entered with a capital R followed by a duration 1 for a whole note 2 for a half note etc By multiplying the duration longer rests can be constructed For example this rest takes 3 measures in 2 4 time Chapter 2 Tutorial 29 R2 3 When printing the part multi rests must be condensed This is done by setting a run time variable set Score skipBars
131. apter 7 Instrument specific notation 133 7 3 8 Ambitus The term ambitus denotes a range of pitches for a given voice in a part of music It may also denote the pitch range that a musical instrument is capable of playing Ambits are printed on vocal parts so performers can easily determine it meets their capabilities Ambits are denoted at the beginning of a piece near the initial clef The range is graphically specified by two note heads that represent the minimum and maximum pitch To print such ambits add the Ambitus_engraver to the Voice context for example layout context Voice consists Ambitus_engraver This results in the following output o ip ri fec fp If you have multiple voices in a single staff and you want a single ambitus per staff rather than per each voice add the Ambitus_engraver to the Staff context rather than to the Voice context Here is an example new Staff with consists Ambitus_engraver lt lt new Voice with remove Ambitus_engraver relative c override Ambitus X offset callbacks list lambda grob axis 1 0 voiceOne c4 ade f2 new Voice with remove Ambitus_engraver relative c voiceTwo es4 f g as b2 gt gt Dif denn This example uses one advanced feature Chapter 7 Instrument specific notation 134 override Ambitus X offset callbacks list lambda grob axis 1 0
132. are Note Names sharp flat nederlands ly c d e f g a besb is es english ly c d e f g a bf b s sharp f flat x double deutsch ly c d e f g a b h is es norsk ly c d e f g a b h iss is ess es svenska ly c d e f g a b h iss ess italiano ly do re mi fa sol la sib si d b catalan ly do re mi fa sol la sibsi d s b espanol ly do re mi fa sol la sib si s b Commonly tweaked properties In accordance with standard typsetting rules a natural sign is printed before a sharp or flat if a previous accidental needs to be cancelled To change this behaviour use set Staff extraNatural f ceses4 ces cis c set Staff extraNatural f ceses4 ces cis c See also Program reference LedgerLineSpanner NoteHead 6 1 3 Cautionary accidentals Normally accidentals are printed automatically but you may also print them manually A reminder accidental can be forced by adding an exclamation mark after the pitch A cautionary accidental i e an accidental within parentheses can be obtained by adding the question mark after the pitch These extra accidentals can be used to produce natural signs too cis cis cis cis c c c c Spi EE 3 3 Chapter 6 Basic notation 75 See also The automatic production of accidentals can be tuned in many ways For more information refer to Section 8 6 1 Automatic accidentals page 196 6 1 4 Micro tones Half fla
133. at how to use the command in practice First we will give a few versatile commands that are sufficient for many situations The next section will discuss the general use of override 9 2 1 Common tweaks Some overrides are so common that predefined commands are provided as short cuts for ex ample slurUp and stemDown These commands are described in Notation manual under the sections for slurs and stems respectively The exact tuning possibilities for each type of layout object are documented in the program reference of the respective object However many layout objects share properties which can be used to apply generic tweaks We mention a few of these e The extra offset property which has a pair of numbers as value moves objects around in the printout The first number controls left right movement a positive number will move the object to the right The second number controls up down movement a positive number will move it higher The units of these offsets are staff spaces The extra offset property is a low level feature the formatting engine is completely oblivious to these offsets In the following example the second fingering is moved a little to the left and 1 8 staff space downwards stemUp f 5 once override Fingering extra offset 0 3 1 8 f 5 Chapter 9 Changing defaults 211 e Setting the transparent property will cause an object to be printed in invisible ink the object is n
134. ata scripts dverylongfermata gt scripts sforzato scripts staccato i scripts dstaccatissimo Scripts uportato Scripts umarcato o Scripts open V scripts upbow Appendix C Notation manual details 262 m scripts downbow c scripts reverseturn co scripts turn dp scripts trill U Scripts upedalheel n scripts dpedalheel V Scripts upedaltoe Scripts dpedaltoe o Scripts flageolet scripts segno 0 scripts coda II scripts varcoda scripts rcomma scripts lcomma scripts rvarcomma scripts lvarcomma t scripts arpeggio scripts trill_element y Scripts arpeggio arrow M1 Scripts arpeggio arrow 1 Scripts trilelement Scripts prall v Scripts mordent w Scripts prallprall mir scripts prallmordent gw scripts upprall ms scripts upmordent wa scripts pralldown we scripts downprall we scripts downmordent we scripts prallup hw Scripts lineprall JJ scripts caesura flags u3 Appendix C Notation manual details 263 N flags u4 A flags u5 flags u6 flags d3 7 flags ugrace x flags dgrace Y flags d4 7 flags d5 7 flags d6 la clefs C ciefs C change 9 clefs F 9 clefs F change clefs G 6 clefs G change Il clefs percussion g Il clefs percussion change a clefs tab A clefs tab_change C timesig C44 timesig C22 pedal pedal M pedal Q pedal P Y pedal d e pedal e Ry pedal Ped Appendix C Notation manual details 264 J brackettips up brackettips down accordion accDiscant e acc
135. ation acc verte ve TL pU E AU A cee m DL ei luana 83 0 91 GIeP e hed ime preteen VEU qe ead oec cese t ids 83 6 9 2 Key signature ix eros P rua II i 84 6 3 3 Lime signature ue I IP ia ee RR 85 6 3 4 Partial Measures A REI Tea eee bi e Be ee a 86 0 3 5 Bar lines ita edt tetto atrio x LM ocak A he 87 6 3 6 Unmetered music 88 6 3 7 System start delimiters 00 89 6 3 8 Stati symbolit crecen bL a odd te SAREE Shee dd eed ird 90 6 4 Connecting notes ia LR a 91 CLA FIS rele Lilla s au m af e LR alle 91 BARA SOLUS Dose uud hor ebbe M dati Me rele tea ee Lue a ut iano 92 6 4 3 Phrasingslurs soo une du AE X eR RICH ere pe Eam ERA 93 6 44 Automatic beams cs Eee aaa 93 6 4 5 Manual beams grep da ea eee ani 94 64107 Grace notes unc AS e a 95 6 5 Xpressive marks 2i a A SARUM wet a 97 Gok Articulations veneto t Ep e oH De borde e IR aS 97 6 5 2 Fingering instructions 2 bre Ree ute pae EE Rege 99 6 559 Dynami684 sarai eli cra Etre p SA 101 6 5 4 Breath marks sinusite o iaia ana A atan 102 6 30 07 Running trills rapire RA Ge eA eee ER Ur E E 102 6 5 6 Glissando 42 22 Lic LER ra REY ERES GERE a 103 6 547 JATDOEEIQUs ud e Se amu C etit uf a dept dae 103 6 67 Polyphony seu eter EM a ETE sess 104 6 6 5 Basic polyphony iss uccelli i AI ES avo ik exe Ee x 105 6 6 2 Explicitly instantiating voices 106 6 6 3 Collision Resolution 0 0 0 cece seen 108 O
136. ax alto sax tenor sax baritone sax oboe english horn bassoon clarinet piccolo flute recorder pan flute blown bottle shakuhachi whistle ocarina lead 1 lead 2 lead 3 lead 4 lead 5 lead 6 square sawtooth calliope chiff charang voice red magenta darkgreen darkyellow green yellow darkblue 257 lead 7 fifths lead 8 bass lead pad 1 new age pad 2 warm pad 3 polysynth pad 4 choir pad 5 bowed pad 6 metallic pad 7 halo pad 8 sweep fx 1 rain fx 2 soundtrack fx 3 crystal fx 4 atmosphere fx 5 brightness fx 6 goblins fx 7 echoes fx 8 sci fi sitar banjo shamisen koto kalimba bagpipe fiddle shanai tinkle bell agogo steel drums woodblock taiko drum melodic tom synth drum reverse cymbal guitar fret noise breath noise seashore bird tweet telephone ring helicopter applause gunshot NDOUIODSWNE Appendix C Notation manual details X color names X color names come several variants 258 Any name that is spelled as a single word with capitalisation e g LightSlateBlue can also be spelled as space separated words without capitalisation e g light slate blue The word grey can always be spelled gray e g DarkSlateGray Some names can take a numerical suffix e g LightSalmon4 Color Names without a numerical suffix Snow GhostWhite WhiteSmoke gainsboro FloralWhite
137. ayed as very short It is denoted by a slurred small note with a slashed stem The appoggiatura is a grace note that takes a fixed fraction of the main note and is denoted as a slurred note in small print without a slash They are entered with the commands acciaccatura and appoggiatura as demonstrated in the following example b4 Nacciaccatura d8 c4 appoggiatura e8 d4 acciaccatura g16 f e4 3 4 Both are special forms of the grace command By prefixing this keyword to a music expression a new one is formed which will be printed in a smaller font and takes up no logical time in a measure c4 grace c16 c4 grace c16 d16 c2 c4 pece Unlike acciaccatura and appoggiatura the grace command does not start a slur Internally timing for grace notes is done using a second grace timing Every point in time consists of two rational numbers one denotes the logical time one denotes the grace timing The above example is shown here with timing tuples er doni CIR SIRO Ddr dI CRI The placement of grace notes is synchronized between different staves In the following example there are two sixteenth grace notes for every eighth grace note lt lt new Staff e4 grace c16 d e f e4 new Staff c4 Ngrace d g8 b c4 gt gt Chapter 6 Basic notation 96 If you want to end a note with a grace use th
138. be put farther apart and the notes of a down stem up stem combination should be put closer together all depending on the combined vertical positions of the notes The first two measures are printed with this correction the last two measures without The notes in the last two measures form down stem up stem clumps of notes Musicians are usually more absorbed with performing than with studying the looks of a piece of music so nitpicking about typographical details may seem academical But it is not In larger pieces with monotonous rhythms spacing corrections lead to subtle variations in the layout of every line giving each one a distinct visual signature Without this signature all lines would look the same and they become like a labyrinth If a musician looks away once or has a lapse in concentration the lines might lose their place on the page Similarly the strong visual look of bold symbols on heavy staff lines stands out better when the music is far away from the reader for example if it is on a music stand A careful distribution of white space allows music to be set very tightly without cluttering symbols together The result minimizes the number of page turns which is a great advantage This is a common characteristic of typography Layout should be pretty not only for its own sake but especially because it helps the reader in her task For performance material like sheet music this is of double importance musicians have a limit
139. bjects in relation to their surrounding markups If the text object itself is positioned above or below the staff then raise cannot be used to move it since the mechanism that positions it next to the staff cancels any shift made with Nraise For vertical positioning use the padding and or extra offset properties right align arg markup Align arg on its right edge Woman arg markup Set font family to roman sans arg markup Switch to the sans serif family Chapter 8 Advanced notation 171 score score unknown Inline an image of music semiflat Draw a semiflat semisharp Draw a semi sharp symbol sesquiflat Draw a 3 2 flat symbol sesquisharp Draw a 3 2 sharp symbol sharp Draw a sharp symbol simple str string A simple text string markup foo is equivalent with markup simple foo small arg markup Set font size to 1 smaller arg markup Decrease the font size relative to current setting stencil stil unknown Stencil as markup strut Create a box of the same height as the space in the current font sub arg markup Set arg in subscript super arg markup Raising and lowering texts can be done with super and sub ci Wnarkup E mc super 2 E mc teeny arg markup Set font size to 3 tiny arg markup Set font size to 2 translate offset pair of numbers arg markup This translates an object Its first a
140. bove example cons list font shape caps props The variable props is a list of alists and we prepend to it by cons ing a list with the extra setting Chapter 11 Interfaces for programmers 238 Suppose that we are typesetting a recitative in an opera and we would like to define a command that will show character names in a custom manner Names should be printed with small caps and translated a bit to the left and top We will define a character command that takes into account the necessary translation and uses the newly defined smallcaps command def markup command character layout props name string Print the character name in small caps translated to the left and top Syntax character name interpret markup layout props markup hspace 0 translate cons 3 1 smallcaps name There is one complication that needs explanation texts above and below the staff are moved vertically to be at a certain distance the padding property from the staff and the notes To make sure that this mechanism does not annihilate the vertical effect of our translate we add an empty string hspace 0 before the translated text Now the hspace 0 will be put above the notes and the name is moved in relation to that empty string The net effect is that the text is moved to the upper left The final result is as follows X c Nmarkup character Cleopatra e markup character Giulio Cesare CLEOPATRA
141. by the developers That proved to be unsatisfactory for a number of reasons Chapter 1 Introduction 4 e When LilyPond makes mistakes users need to override formatting decisions Therefore the user must have access to the formatting engine Hence rules and settings cannot be fixed by us at compile time but must be accessible for users at run time e Engraving is a matter of visual judgment and therefore a matter of taste As knowledgeable as we are users can disagree with our personal decisions Therefore the definitions of typographical style must also be accessible to the user e Finally we continually refine the formatting algorithms so we need a flexible approach to rules The C language forces a certain method of grouping rules that do not match well with how music notation works These problems have been addressed by integrating an interpreter for the Scheme program ming language and rewriting parts of LilyPond in Scheme The current formatting architecture is built around the notion of graphical objects described by Scheme variables and functions This architecture encompasses formatting rules typographical style and individual formatting decisions The user has direct access to most of these controls Scheme variables control layout decisions For example many graphical objects have a direc tion variable that encodes the choice between up and down or left and right Here you see two chords with accents and arpeggios In
142. c goes up while c g goes down To use relative mode add relative before the piece of music The first note is taken relative to the middle C i e c relative ce fcge Since most music has small intervals pieces can be written almost without octavation quotes in relative mode The previous example is entered as relative key a major time 6 8 cis 8 d16 cis8 e4 e8 b8 cis16 b8 d4 d8 Chapter 2 Tutorial 17 Larger intervals are made by adding octavation guotes relative c ce f f c C g c In summary quotes or commas no longer determine the absolute height of a note in relative mode Rather the height of a note is relative to the previous one and changing the octave of a single note shifts all following notes an octave up or down For more information on relative octaves see Section 6 2 1 Relative octaves page 79 and Section 6 2 2 Octave check page 80 2 7 Music expressions explained In input files music is represent by so called music expressions We have already seen some in the previous examples a single note is a music expression a4 Enclosing a group of notes in braces creates a new music expression a4 g4 Putting a bunch of music expressions e g notes in braces means that they should be played in sequence The result again is a music expression which can be grouped with other expressions
143. c Its applications range from monophonic melodies to monstrous counterpoints for large orchestras How can we get a grip on such a many headed beast and force it into the confines of a com puter program Our solution is to break up the problem of notation as opposed to engraving i e typography into digestible and programmable chunks every type of symbol is handled by a separate module a so called plug in Each plug in is completely modular and independent so each can be developed and improved separately Such plug ins are called engravers by analogy with craftsmen who translate musical ideas to graphic symbols In the following example we see how we start out with a plug in for note heads the Note_ heads_engraver e o_o Y and the Stem_engraver adds stems The Stem_engraver is notified of any note head coming along Every time one or more for a chord note head is seen a stem object is created and connected to the note head By adding engravers for beams slurs accents accidentals bar lines time signature and key signature we get a complete piece of notation Chapter 1 Introduction 6 This system works well for monophonic music but what about polyphony In polyphonic notation many voices can share a staff E d CO In this situation the accidentals and staff are shared but the stems slurs beams etc are private to eac
144. can be written gflat when it occurs in light music Chapter 7 Instrument specific notation 7 6 2 Bagpipe example This is what the well known tune Amazing Grace looks like in bagpipe notation include bagpipe ly layout indent 0 0 cm context Score remove Bar_number_engraver header title meter Amazing Grace Hymn arranger Trad arr hideKeySignature time 3 4 grg partial 4 a8 d16 slurd d2 grg f8 e32 d16 grg f2 grg f8 e thrwd d2 grg b4 grG a2 grg a8 d16 slurd d2 grg f8 e32 d16 grg f2 grg e8 16 dblA A2 grg A4 grg A2 f8 A16 grg A2 hdblf f8 e32 d16 grg f2 Ngrg f8 e thrwd d2 grg b4 grG a2 grg a8 d16 slurd d2 grg f8 e32 d16 grg 2 e4 thrwd d2 slurd d2 bar Amazing Grace Hymn JA Trad arr 2 bre a oJ j ESE e ph ter ten 141 Chapter 7 Instrument specific notation i 1 Laa te Bd 7 7 Ancient notation Support for ancient notation includes features for mensural notation and Gregorian Chant no tation There is also limited support for figured bass notation Many graphical objects provide a style property see e Section 7 7 1 Ancient note heads page 142 e Section 7 7 2 Ancient accidentals page 143 e Section 7 7 3 Ancient rests page 143 e Section
145. ccaturaMusic startAppoggiaturaMusic stopAppoggiaturaMusic More information is in the file ly grace init 1ly See also Program reference GraceMusic Bugs A score that starts with a grace section needs an explicit context Voice declaration other wise the main note and the grace note end up on different staves Grace note synchronization can also lead to surprises Staff notation such as key signatures bar lines etc are also synchronized Take care when you mix staves with grace notes and staves without for example lt lt new Staff e4 bar grace c16 d4 new Staff c4 bar d4 gt gt EArt E e Il E This can be remedied by inserting grace skips for the above example new Staff c4 bar grace s16 d4 Grace sections should only be used within sequential music expressions Nesting or juxta posing grace sections is not supported and might produce crashes or other errors 6 5 Expressive marks Expressive marks help musicians to bring more to the music than simple notes and rhythms 6 5 1 Articulations A variety of symbols can appear above and below notes to indicate different characteristics of the performance They are added to a note by adding a dash and the character signifying the articulation They are demonstrated here A A a a a i The meanings of these shorthands can be changed See 1y script init ly for ex
146. cd set Staff printKeyCancellation f key d major a bcisd key g minor a bes cd See also Program reference KeyCancellation KeySignature 6 3 3 Time signature Time signature indicates the metrum of a piece a regular pattern of strong and weak beats It is denoted by a fraction at the start of the staff The time signature is set with the time command time 2 4 c 2 time 3 4 c 2 Commonly tweaked properties The symbol that is printed can be customized with the style property Setting it to uses fraction style for 4 4 and 2 2 time time 4 4 c 1 time 2 2 c 1 override Staff TimeSignature style WO time 4 4 c 1 time 2 2 c 1 Chapter 6 Basic notation 86 There are many more options for its layout See Section 7 7 6 Ancient time signatures page 147 for more examples time sets the property timeSignatureFraction beatLength and measureLength in the Timing context which is normally aliased to Score The property measureLength determines where bar lines should be inserted and how automatic beams should be generated Changing the value of timeSignatureFraction also causes the symbol to be printed More options are available through the Scheme function set time signature In combina tion with the Measure_grouping_engraver it will create MeasureGrouping signs Such signs ease reading rhythmically complex modern music In the following example
147. ce override TextScript script priority 100 a4 Nprall Wnarkup sharp once override Script script priority 100 a4 Nprall Wnarkup sharp ii See also Program reference Script Bugs These signs appear in the printed output but have no effect on the MIDI rendering of the music 6 5 2 Fingering instructions Fingering instructions can be entered using note digit For finger changes use markup texts c4 1 c 2 c 3 c 4 c markup finger 2 3 1 2 3 4 2 3 Chapter 6 Basic notation 100 You can use the thumb script to indicate that a note should be played with the thumb e g in cello music lt a_ thumb a 3 gt 8 lt b_ thumb b 3 gt ou Row Fingerings for chords can also be added to individual notes of the chord by adding them after the pitches lt c 1 e 2 g 3 b 5 gt 4 Wo gai Commonly tweaked properties You may exercise greater control over fingering chords by setting fingeringOrientations set fingeringOrientations left down lt c 1 es 2 g 4 bes 5 gt 4 set fingeringOrientations up right down lt c 1 es 2 g 4 bes 5 gt 4 Using this feature it is also possible to put fingering instructions very close to note heads in monophonic music set fingeringOrientations tt right lt es 2 gt 4 See also Program reference Fingering Examples input regression finger chords 1ly
148. cheme markup syntax which are summed up is this table LilyPond Scheme markup markup1 markup markup1 markup markup1 markup markup1 markup2 markup2 command command variable variable center align center align string string scheme arg scheme arg Besides the whole scheme language is accessible inside the markup macro thus one may use function calls inside markup in order to manipulate character strings for instance This proves useful when defining new markup commands see Section 11 2 3 Markup command definition page 237 Bugs One can not feed the line resp center column command with a variable or the result of a function call Example markup line fun that returns markups is invalid One should use the make line markup resp nake center markup or make column markup function instead markup make line markup fun that returns markups Chapter 11 Interfaces for programmers 237 11 2 2 How markups work internally In a markup like raise 0 5 foo raise is actually represented by the raise markup function The markup expression is stored as list raise markup 0 5 list simple markup foo When the markup is converted to printable objects Stencils the raise markup function is called as apply raise markup layout object list of property alists 0 5 the foo markup The raise markup function first creates the stencil for the foo strin
149. ctor two The Scheme function magstep converts a font size number to a scaling factor c8 override NoteHead font size 4 c f override NoteHead font size 3 g LilyPond has fonts in different design sizes The music fonts for smaller sizes are chubbier while the text fonts are relatively wider Font size changes are achieved by scaling the design size that is closest to the desired size The standard font size for font size equals 0 depends on the standard staff height For a 20pt staff a 10pt font is selected The font size property can only be set on layout objects that use fonts These are the ones supporting the font interface layout interface Predefined commands The following commands set fontSize for the current voice tiny Nsmall normalsize 10 1 3 Paper size To change the paper size there are two commands set default paper size a4 paper set paper size a4 The first command sets the size of all pages The second command sets the size of the pages that the paper block applies to if the paper block is at the top of the file then it will apply to all pages If the paper block is inside a book then the paper size will only apply to that book The following paper sizes are supported a6 a5 a4 a3 legal letter tabloid If the symbol landscape is supplied as an argument to set default paper size the pages will be rotated by 90 degrees and wider line widths wil
150. d slurDotted slurSolid Chapter 6 Basic notation 93 See also Program reference internals document Slur 6 4 3 Phrasing slurs A phrasing slur or phrasing mark connects notes and is used to indicate a musical sentence It is written using VC and V respectively time 6 4 c dC e f e d baT Typographically the phrasing slur behaves almost exactly like a normal slur However they are treated as different objects A slurUp will have no effect on a phrasing slur instead use phrasingSlurUp phrasingSlurDown and phrasingSlurNeutral You cannot have simultaneous phrasing slurs Predefined commands phrasingSlurUp phrasingSlurDown NphrasingSlurNeutral See also Program reference PhrasingSlur 6 4 4 Automatic beams LilyPond inserts beams automatically time 2 4 c8 c c c time 6 8 c c c c8 c16 c8 When these automatic decisions are not good enough beaming can be entered explicitly It is also possible to define beaming patterns that differ from the defaults See Section 8 6 2 Setting automatic beam behavior page 198 for details Individual notes may be marked with noBeam to prevent them from being beamed time 2 4 c8 c noBeam c c See also Program reference Beam Chapter 6 Basic notation 94 6 4 5 Manual beams In some cases it may be necessary to override the automatic beaming algorithm For example the autobeamer will not put beams ov
151. d is primarily used for Section 8 2 3 Rehearsal marks page 176 but it can also be used to put signs like coda segno and fermata on a bar line Use markup to access the appropriate symbol c1 mark markup musicglyph scripts ufermata ci mark is only typeset above the top stave of the score If you specify the mark command at a bar line the resulting mark is placed above the bar line If you specify it in the middle of a bar the resulting mark is positioned between notes If it is specified before the beginning of a score line it is placed before the first note of the line Finally if the mark occurs at a line break the mark will be printed at the beginning of the next line If there is no next line then the mark will not be printed at all Commonly tweaked properties To print the mark at the end of the current line use Noverride Score RehearsalMark i break visibility begin of line invisible mark is often useful for adding text to the end of bar In such cases changing the self alignment is very useful Noverride Score RehearsalMark i break visibility begin of line invisible clccc4cce once override Score RehearsalMark self alignment X right mark D S al Fine D S al Fine Chapter 8 Advanced notation 162 See also Program reference RehearsalMark 8 1 4 Text markup Use markup to typeset text Commands are entered with the backslash ci Wnarkup he
152. d names For displaying printed chord names use the ChordNames context The chords may be entered either using the notation described above or directly using lt and gt harmonies chordmode al b c d f a lt e g b gt lt lt context ChordNames harmonies context Staff harmonies gt gt A B C Dm Em eig H8 L I 1g amp Chapter 7 Instrument specific notation 122 You can make the chord changes stand out by setting ChordNames chordChanges to true This will only display chord names when there is a change in the chords scheme and at the start of a new line harmonies chordmode ci m c m break c m c m d lt lt context ChordNames set chordChanges t harmonies context Staff transpose c c harmonies gt gt pon ES D Cm pa The previous examples all show chords over a staff This is not necessary Chords may also be printed separately It may be necessary to add Volta_engraver and Bar_engraver for showing repeats new ChordNames with 4 override BarLine bar size 4 voltaOnThisStaff t consists Bar_engraver consists Volta_engraver repeat volta 2 chordmode fi maj f 7 bes 7 c maj Nalternative 1 es e fa Ta PO JF B c 8 qe The default chord name layout is a system for Jazz music proposed by Klaus Ignatzek see Appendix A Literature list page 252 It can be tuned t
153. da 102 NemptyTeXtic issh io v RI PURI raped 160 NE ii dad Beth dte edax ol E 101 NXfatlext 5 lliol IM pisei ims 160 RIO e a E TUI db EE DU 101 NE E REEERE TE E pis pan ERI RITE 101 WEEET i ia me ia 101 Nfinalig bibita sel ade eda ehi 150 Nflexa J Dni bee eeu eite JA ANGA 156 NED upat arctan chal slew dalla Me Mi Miete pud 101 frenchChords 0 esee 124 NgermanChords le dw dde he Aa 124 NES O sati edi darai 103 ban m LT 95 header in La TEX documents 243 AhideNoteS i d ew Pea eee lt 193 hideStaffSwitch 0 118 Ninclinatum i iena a 156 NICHO fici eb e Le eMe en 71 NON is ai i pei 84 italianChords mii ccc cece aa 124 E N E a 84 194 NIA ea cederet a ea e Mi ada 221 Nlochtiani astio lele ae oe nd Scale bea 84 hod cm 76 di WA t estt eds 84 Xlyricmnode 5 uten qp EU Es 125 NlyricStO arnie or He bv ELEC 127 NMS OF enero n ie eri aua 84 Appendix G LilyPond index pori CELL 161 176 Nas Umass eoe diets clt A tee a kaaa 76 melisma A A KA a 129 pelismaEnd stu tt aa 129 O pr Ss Lasten o aa 101 NINA v een Alo ber BS on etie ein 84 mixolydians ss ia ve eere ee rs 84 NI pa oem taceo bar tee deat on ged ne oi nen mut 101 O e Tenn AE A DE a i ba 202 noBreak so roua tien D eres 224 MnoPageBreaks iaa ladra 225 normalsi ze I9 vem DU aa 218 NONE Sta a deo euet mara 204 None VOL Ce i citati 108 NOTAS CU titi a ed oa aa 156 Most is D 212 bh mer I ria 101 XpageBroak
154. ds as a Front Cover Text and a passage of up to 25 words as a Back Cover Text to the end of the list of Cover Texts in the Modified Version Only one passage of Front Cover Text and one of Back Cover Text may be added by or through arrangements made by any one entity If the Document already includes a cover text for the same cover previously added by you or by arrangement made by the same entity you are acting on behalf of you may not add another but you may replace the old one on explicit permission from the previous publisher that added the old one The author s and publisher s of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version 5 COMBINING DOCUMENTS You may combine the Document with other documents released under this License under the terms defined in section 4 above for modified versions provided that you include in the combination all of the Invariant Sections of all of the original documents unmodified and list them all as Invariant Sections of your combined work in its license notice The combined work need only contain one copy of this License and multiple identical Invariant Sections may be replaced with a single copy If there are multiple Invariant Sections with the same name but different contents make the title of each such section unique by adding at the end of it in parentheses the name of the original author or publisher
155. ds engraver 209 N te ollisi n o erie ti PRERE pa 108 109 NoteCoL mn J cetero et DIT e E 108 NoteE vent tela atinada E 231 232 Notelead aisi ur kes ER pi Gea ie seks 74 NoteHead vecina ii ER 142 191 194 239 Appendix G LilyPond index NoteSpacing e yx ES EE MU ia de e Nue q dee MP HRS GR null markupy si ecb seat le Ud UUME tania a da dap Beat hate Send number of staff lines setting number markup 0 cece cece nnn O octavationi initial reo ista Octave check 4 zoe eee ee epe vota on the fly l gue iude shave a cete ir on the fly markup KA Opening de d eb ERES optical spacing isl ld ira options command line organ pedal marks Orientation od ned xn Solas PRESTIGE ornaments i gaei amp d4 a ie OttavaBracket c em e RM ERU ERES outline fonts lessen output format setting Na AA NE UA eR override markup verrideProperty P padding ui ed qud e EE RAS padding 4 renes lee Ren eM RA Seb padding v eue Ei o dct page breaks ead due whe e eye page breaks forcing page formatting page layout iii ria Dage islze c e Ve ie EEA paper SZC atento Rum TR RR P Rad papersize i bled e Da eS parenthesized accidental
156. ds with a different number of dots are not merged but when the object property merge differently dotted is set in the NoteCollision object they are merged Ncontext Voice lt lt g8 g8 override Staff NoteCollision i merge differently dotted t g8 g8 FM g8 16 g8 16 gt gt Cape Similarly you can merge half note heads with eighth notes by setting merge differently headed context Voice lt lt c8 c4 override Staff NoteCollision i merge differently headed t c8 c4 c2 c2 gt gt LilyPond also vertically shifts rests that are opposite of a stem for example context Voice lt lt c 4 NN r4 gt gt Predefined commands oneVoice voiceOne voiceTwo voiceThree voiceFour shiftOn shiftOnn shiftOnnn shiftOff these commands specify in what chords of the current voice should be shifted The outer voices normally voice one and two have shiftOff while the inner voices three and four have shiftOn shiftOnn and shiftOnnn define further shift levels When LilyPond cannot cope the force hshift property of the NoteColumn object and pitched rests can be used to override typesetting decisions relative lt lt lt d g gt lt d g gt Port lt b f Chapter 6 Basic notation 109 once override NoteColumn force hshift 1 7 b f gt gt See also Program reference the objects responsible for resolvi
157. duces a Texinfo file with music fragments in the DVI output only For getting images in the HTML version the format texi html must be used instead Note Currently texi is the same as texi html F filter filter filter Pipe snippets through filter lilypond book will not filter and process at the same time Example lilypond book filter convert ly from 2 0 0 my book tely h help Print a short help message Idir include dir Add dir to the include path o dir output dir Place generated files in directory dir Running lilypond book generates lots of small files that LilyPond will process To avoid all that garbage in the source directory use the output command line option and change to that directory before running latex or makeinfo lilypond book output out yourfile lytex cd out Chapter 12 lilypond book Integrating text and music 248 P process process command Process LilyPond snippets using command The default command is lilypond lilypond book will not filter and process at the same time psfonts extract all PostScript fonts into file psfonts for dvips This is necessary for dvips h file psfonts V verbose Be verbose V version Print version information Bugs The Texinfo command pagesizes is not interpreted Similarly LaTEX commands that change margins and line widths after the preamble are ignored Only the first Nscore of a LilyPond block is pr
158. e afterGrace command It takes two arguments the main note and the grace notes following the main note ci afterGrace di c16 d c4 PA This will put the grace notes after a space lasting 3 4 of the length of the main note The fraction 3 4 can be changed by setting afterGraceFraction ie afterGraceFraction cons 7 8 will put the grace note at 7 8 of the main note The same effect can be achieved manually by doing context Voice lt lt 1 di Nerill s2 grace c16 d gt gt c4 By adjusting the duration of the skip note here it is a half note the space between the main note and the grace is adjusted A grace section will introduce special typesetting settings for example to produce smaller type and set directions Hence when introducing layout tweaks they should be inside the grace section for example new Voice acciaccatura stemDown f16 gt stemNeutral g4 The overrides should also be reverted inside the grace section The layout of grace sections can be changed throughout the music using the function add grace property The following example undefines the Stem direction for this grace so stems do not always point up Chapter 6 Basic notation 97 new Staff add grace property Voice Stem direction 70 Another option is to change the variables startGraceMusic stopGraceMusic startAcciaccaturaMusic stopAccia
159. e a slash without a stem override NoteHead style slash override Stem transparent t All these plug ins have to cooperate and this is achieved with a special plug in which must be marked with the keyword type This should always be Engraver_group_engraver type Engraver_group_engraver Put together we get context name ImproVoice type Engraver_group_engraver consists Note_heads_engraver consists Text_engraver consists Pitch_squash_engraver squashedPosition 0 override NoteHead style slash override Stem transparent t alias Voice Contexts form hierarchies We want to hang the ImproVoice under Staff just like normal Voices Therefore we modify the Staff definition with the accepts command context Staff accepts ImproVoice Putting both into a layout block like The opposite of Naccepts is denies which is sometimes needed when reusing existing context definitions Chapter 9 Changing defaults 210 layout context name ImproVoice context Staff accepts ImproVoice Then the output at the start of this subsection can be entered as relative c a4 d8 bes8 new ImproVoice c4 ad lib c c4 c undress c c while playing al 9 2 The override command In the previous section we have already touched on a command that changes layout details the override command In this section we will look in more detail
160. e contexts Relative mode is used for pitches durations are only written when necessary Y It is possible to record a MIDI file using a digital keyboard and then convert it to 1y However human players are not rhythmically exact enough to make a MIDI to LY conversion trivial When invoked with quantizing s and d options midi21y tries to compensate for these timing errors but is not very good at this It is therefore not recommended to use midi21y for human generated midi files It is invoked from the command line as follows midi21y option midi file The following options are supported by midi2ly a absolute pitches Print absolute pitches d duration quant DUR Quantize note durations on DUR e explicit durations Print explicit durations h help Show summary of usage k key acc minor Set default key acc gt 0 sets number of sharps acc 0 sets number of flats A minor key is indicated by 1 o output file Write output to file s start quant DUR Quantize note starts on DUR t allow tuplet DUR NUM DEN Allow tuplet durations DUR NUM DEN V verbose Be verbose V version Print version number w warranty Show warranty and copyright Chapter 13 Converting from other formats 250 X text lyrics Treat every text as a lyric Bugs Overlapping notes in an arpeggio will not be correctly rendered The first note will be read and the others will be
161. e example the text heads or tails ends 3 spaces below and 1 space to the right of the marked head See also Program reference text balloon interface Examples input regression balloon 1ly 8 5 2 Blank music sheet A blank music sheet can be produced also by using invisible notes and removing Bar number engraver emptymusic 1 repeat unfold 2 Change this for more lines s1 break bar new Score with override TimeSignature transparent t defaultBarType remove Bar_number_engraver lt lt context Staff emptymusic context TabStaff emptymusic gt gt G4 Chapter 8 Advanced notation 193 GN 8 5 3 Hidden notes Hidden or invisible or transparent notes can be useful in preparing theory or composition exercises c4 d4 hideNotes e4 f4 unHideNotes g4 a Hidden notes are also great for performing weird tricks For example slurs cannot be attached to rests or spacer rests but you may wish to include that in your score string instruments use this notation when doing pizzicato to indicate that the note should ring for as long as possible Nclef bass lt lt c4 pizz hideNotes c unHideNotes c hideNotes c f s4rsr gt gt 8 5 4 Shape note heads In shape note head notation the shape of the note head corresponds to the harmonic function of a note in the
162. e fret 6 2 1 barre 6 1 2 place fret 5 4 3 place fret 4 4 4 place fret 3 3 2 place fret 2 2 1 place fret 1 2 1 fis fis fis c markup override dot radius 0 35 override finger code in dot override dot color white Y fret diagram terse x 3 1 5 2 5 3 5 4 3 1 e chc XXO X 1593 Y II There are three different fret diagram markup interfaces standard terse and verbose The three interfaces produce eguivalent markups but have varying amounts of information in the markup string Details about the markup interfaces are found at Section 8 1 7 Overview of text markup commands page 165 You can set a number of graphical properties according to your preference Details about the property interface to fret diagrams are found at fret diagram interface See also Examples input test fret diagram ly Chapter 7 Instrument specific notation 140 7 5 5 Other guitar issues This example demonstrates how to include guitar position and barring indications clef G_8 b16 di6 g16 b16 e16 textSpannerDown override TextSpanner edge text XII g16 startTextSpan b16 e16 g16 e16 b16 gi6NstopTextSpan e16 b16 g16 d16 tti J sd XII Stopped X note heads are used in guitar music to signal a place where
163. e ligatures For example set Score timing f set Score defaultBarType empty override NoteHead style neomensural override Staff TimeSignature style neomensural clef petrucci g c maxima g M s4 d longa c breve f e d s4 c maxima d longa s4 e 1 a g breve fe amp Without replacing Ligature bracket engraver with Mensural_ligature_engraver the same music transcribes to the following Bugs The invisible rests s4 in the example are used to compensate for the poor horizontal spacing 7 7 10 2 Gregorian square neumes ligatures There is limited support for Gregorian square neumes notation following the style of the Editio Vaticana Core ligatures can already be typeset but essential issues for serious typesetting are still lacking such as among others horizontal alignment of multiple ligatures lyrics alignment and proper handling of accidentals The following table contains the extended neumes table of the 2nd volume of the Antiphonale Romanum Liber Hymnarius published 1983 by the monks of Solesmes Chapter 7 Instrument specific notation Neuma aut Neumarum Elementa 1 Punctum 2 Virga 3 Apostropha vel Stropha 4 Oriscus 5 Clivis vel Flexa 6 Podatus vel Pes T Pes Quassus Figurae Rectae Figurae Liquescentes Auctae c de y a 1 3 m 152 Figurae Liquescentes Deminu
164. e width of the diagram in strings Default 6 e fnumber set fingering label type 0 none 1 in circle on string 2 below string Default 0 e d number set radius of dot in terms of fret spacing Default 0 25 e p number set the position of the dot in the fret space 0 5 is centered 1 is on lower fret bar 0 is on upper fret bar Default 0 6 e c stringl string2 fret include a barre mark from string to string2 on fret e string fret place a dot on string at fret If fret is o string is identified as open If fret is x string is identified as muted e string fret fingering place a dot on string at fret and label with fingering as defined by f code Note There is no limit to the number of fret indications per string fret diagram terse definition string string Make a fret diagram markup using terse string based syntax Example markup fret diagram terse x x 0 2 3 2 for a D chord diagram Syntax rules for definition string Strings are terminated by semicolons the number of semicolons is the number of strings in the diagram Mute strings are indicated by x Open strings are indicated by o A number indicates a fret indication at that fret If there are multiple fret indicators desired on a string they should be separated by spaces Fingerings are given by following the fret number with a followed by the finger indicator e g 3 2 for playing the third fret with the sec
165. ecel opus opusi markup and now score c1 header piece piece2 opus opus2 fontsize 2 5 u fontsize Chapter 10 Output formats 228 dedicated to me Title first line Title second line longer the subtitle subsubtitle LilyPond version 2 6 6 Poet instrument composer 1847 1973 meter Arranger piecel opusl E gt 2 instrument and now piece2 opus2 E gt Music engraving by LilyPond 2 6 6 www lilypond org A more advanced option is to change the definitions of the following variables in the paper block The init file 1y titling init ly lists the default layout bookTitleMarkup This is the title put over an entire book block Typically it has the composer and the title of the piece scoreTitleMarkup This is the title put over a score block within a Nbook Typically it has the name of the movement piece field oddHeaderMarkup This is the page header for odd numbered pages Chapter 10 Output formats 229 evenHeaderMarkup This is the page header for even numbered pages If unspecified the odd header is used instead By default headers are defined such that the page number is on the outside edge and the instrument is centered oddFooterMarkup This is the page footer for odd numbered pages evenFooterMarkup This is the page footer for even numbered pages If unspecified the odd header is used instead By default
166. ed A RR UA tete QR a e CASALI aa 16 2 7 Music expressions ekplained 17 2 8 MOTELES cia e P FUITE EORIC E NE e e EINE 19 2 9 Adding articulation marks to notes 20 2 10 Combining notes into chords 22 2 11 Advanced rhythmic commands 22 2 12 Commenting input files eL RI AAA La 23 2 13 Printing Sa coe e weed an pre eMedia abe a 23 2 SA lead sheet e v eu acidosis att a er cao ean tuba Meg 24 2 157 Adding tithes sso pl UU A Tte bs e Veo etereo 25 2 16 Single staff polyphony 0 2 lesen hme hada 26 2 17 PIANO Staves tin lia Daehn at eed hi ab aint iaia RR dius 27 2 18 Organizing larger pieceS 0 0 27 2 19 sAnvorchestral parts c ar dao er d p Rede e sobs UA CU eae ee eo 28 J doxaniplevtenipldb6gu oe pero eee mats ra dem ern Pu RE 30 Sel Single sta vxore veda uv eee ue an a oe out 30 Sl Notes only 1 271 cia Tau noce ee at eb eem I het 30 3 L 2 Notes amd lyrics eda ep eher aba bisa DPA E e 30 3 1 3 Notes and chords 3 ener AMA LIL m UR REA E AERE 31 3 1 4 Notes lyrics and chords seb ia RR E e Rb RR Ege 32 3 2 Piano templates iii RA At AS RES d Gade EE E ALEGRE 32 32 1 Solo piano it v dU Peles teed wu ATP exc 32 3 2 2 Piano and melody with lyrics 33 3 2 8 Piano centered ly
167. ed amount of attention The less attention they need for reading the more they can focus on playing the music In other words better typography translates to better performances These examples demonstrate that music typography is an art that is subtle and complex and that producing it requires considerable expertise which musicians usually do not have LilyPond is our effort to bring the graphical excellence of hand engraved music to the computer age and make it available to normal musicians We have tuned our algorithms font designs and program settings to produce prints that match the quality of the old editions we love to see and love to play from 1 2 Automated engraving How do we go about implementing typography If craftsmen need over ten years to become true masters how could we simple hackers ever write a program to take over their jobs The answer is we cannot Typography relies on human judgment of appearance so people cannot be replaced completely However much of the dull work can be automated If LilyPond solves most of the common situations correctly this will be a huge improvement over existing software The remaining cases can be tuned by hand Over the course of years the software can be refined to do more and more things automatically so manual overrides are less and less necessary When we started we wrote the LilyPond program entirely in the C programming language the program s functionality was set in stone
168. edi ic UE Rd 144 cI steri s cis ea uto pe beh Rp tels 189 Cluster_spanner_engraver 190 COS Sat agata e ERN ere obe 121 Cluster8panner 2 er b Rs 190 ClusterSpannerBeacon 190 COGS sione alano NE UR UE e 98 coda on bar line uv eI i lea eS 161 Coda Technology 0 cece eee eee 250 coloring syntax ee tae hee Sk ee tr 70 Golum os iii era D A4 pe erent ha bad 166 column markup 0 eee cece eee ee 166 COMPING iaa isa 166 combine markup cee eee eee 166 command line options 64 commients cc cue tet RUIN rado git eee ees ET 23 common shortest duration 223 Completion_heads_engraver 82 Completion_heads_engraver 83 COMPOSED esse Re i 225 condensing rests eese 175 context definition 230 Context creating 202 Context Sen e ete eue RS Rive xus EUR Rana 6 Appendix G LilyPond index COPYIIcht cr pce ra PG 220 creating contexts orsi ire ossia mre ead 203 crescendo e808 bee Subs ehe 21 101 cross Staffi yrat ie pute tie Meta e Aa Sa 117 CTOSS Stall Stem ola RC bl au ERIS 115 cross staff voice manual 27 currentBarNumber 177 CGUsLOdes il a raid euh ers 148 CUOTA A t x 148 CUSTOSA lt i at eich who indie 149 Custos engraVer
169. eful with the fragment option The default linewidth of the music will be adjusted by examining the commands in the document preamble the part of the document before begin document The lilypond book command sends these to La TEX to find out how wide the text is The line width for the music fragments is then adjusted to the text width Note that this heuristic algorithm can fail easily in such cases it is necessary to use the linewidth music fragment option Each snippet will call the following macros if they have been defined by the user preLilyPondExample called before the music Chapter 12 lilypond book Integrating text and music 244 postLilyPondExample called after the music betweenLilyPondSystem 1 is called between systems if 1ilypond book has split the snip pet into several postscript files It must be defined as taking one parameter and will be passed the number of files already included in this snippet For printing the LaTEX document you need a DVI to PostScript translator like dvips To use dvips to produce a PostScript file add the following options to the dvips command line o Ppdf h file psfonts where the filepsfonts file is obtained from 1ilypond book See Section 12 6 Invoking lilypond book page 247 for details PDF can then be produced with a PostScript to PDF translator like ps2pdf which is part of GhostScript Running dvips will produce some warnings about fonts these are harmless and may be ignored
170. ei 166 fontsize markup s eser uwawa 166 foot marks s i iatale IM le Lei elle 98 footer rei e op te e PAM el a rt ut 229 footer page sesseseee ne 219 foreign languages 9 Tour bar MUSIC AI DR PT i 224 fractione ais RR RR RETE 167 FTraction MaEkup gt 3 si iste tiri loan 167 Troncal ee Seded 83 Frenched scores ii ec oce ees 183 retata neo ie E 138 fret diagrams gt ingens e Iu REP agi 139 fret diagrami uri padelle 167 fret diagram interface 139 fret diagram markup 167 fret diagram terse 167 fret diagram terse markup 167 fret diagram verbose 167 fret diagram verbose markup 167 rOMproperty s 4 22 2 nilo geb ea es 168 fromproperty markup 168 full measure rests 173 G general align II AA KAA 168 general align markup 168 Glissando WA AA AA AA 103 SA NOLES cai ates iii ERR ede ne 23 95 GraceM sic ol nee A eer ret ni 97 232 233 grand staff epe denariis EI 89 GrandStaff oi relati eagle lalla 89 197 graphical object descriptions 212 Gregorian square neumes ligatures 151 Gregorian ligature engraver 143 POD ient E pata ARRIUS 213 grob int rf ce i ile elena 213 GUILLE iI he ek OF ba hed Aia 253 guitar tablaturas ai 137
171. elative r4 c Nimes 2 3 fgg times 2 3 g4 a2 addlyrics I want to break free C ij ju I want to break free This melody ends on a melisma a single syllable free sung to more than one note This is indicated with an extender line It is entered as two underscores i e I want to break free __ 3 r31 cel a HE I want to break free Similarly hyphens between words can be entered as two dashes resulting in a centered hyphen between two syllables Twin kle twin kle Twin kle twin kle More options like putting multiple lines of lyrics below a melody are discussed in Section 7 3 Vocal music page 124 2 14 A lead sheet In popular music it is common to denote accompaniment with chord names Such chords can be entered like notes chordmode c2 f4 g8 Chapter 2 Tutorial 25 Now each pitch is read as the root of a chord instead of a note This mode is switched on with chordmode Other chords can be created by adding modifiers after a colon The following example shows a few common modifiers chordmode c2 f4 m g4 maj7 gisi dim7 For lead sheets chords are not printed on staves but as names on a line for themselves This is achieved by using chords instead of chordmode This uses the same syntax as chordmode but renders the notes in a ChordNames context with the following result chords c2 f4 m g
172. elit ia Bee 171 SUD a M NE 171 SUD MATKUP ie Ae DI p PIE 171 SU bai i iti Venet yr SEES 83 subdivideBeams LL 94 Ud labii 171 super markup ie eel aa BLEU 171 SUS IA don eh ke ne eA AO 120 SustainP dal ilo ceti egies 116 SVG Scalable Vector Graphics 64 Switches eiren rota ion PO LENA ei 64 Syntax Coloring spira eee 70 SYStemotartBar muevo iii Bee edge te ts 90 SystembtartBrace cll y a ok 90 SystemStartBracket 90 Appendix G LilyPond index T Tab note heads engraver 139 tablature 2 dee eee dea ee hee ee 137 Tablatures basic 137 TabStaff ol oriana fra OR npa aes 138 Ta bVO369 aa e ars s AR aede dm n RR RR Ed 138 CA iii dano DM 180 taglines ss 4 hs qe Ret Dex eod god dea 220 Teeny dec bo bisi eb e le Ag oad e mag 171 teeny mark p o odnssste d op E pep es 171 POR xev a USUS 175 tenor clef a ad ee heh Ue ME nS 83 Tenuto rai tete x Pr a uico da 98 terminology ss icc RV aida Saha ce eae 9 tezi Adae voee ME ile OPE 243 texihfo mees durt uona RR eed bcd y em 243 Texinfo Music Mic 240 Text encoding ioia ai ie vu ERU PEE ER 166 text items non empty 160 text markup nies rnei a eed Eud pae pae 162 text on multi measure rest 174 exisscripissuss 4e orario i die ae ta 160 Text Spannets usi eoe NE edema rm 160 text balloon interface 192 text
173. em is determined automatically To prevent systems from bumping into each other some minimum distances are set By changing these you can put staves closer together and thus put more systems onto one page Normally staves are stacked vertically To make staves maintain a distance their vertical size is padded This is done with the property minimumVerticalExtent It takes a pair of numbers so if you want to make it smaller than its default 4 4 then you could set set Staff minimumVerticalExtent 3 3 This sets the vertical size of the current staff to 3 staff spaces on either side of the center staff line The argument of minimumVerticalExtent is interpreted as an interval where the center line is the 0 so the first number is generally negative The staff can be made larger at the bottom by setting it to 6 4 To change the amount of space between systems use betweensystemspace A score with only one staff is still considered to have systems so setting betweensystemspace will be much more useful than changing minimumVerticalExtent paper betweensystemspace 10 mm If you simply want to tell LilyPond fit as much as possible onto these pages then expand to fill any available space on the pages then use the following paper betweensystempadding 1 raggedbottom f raggedlastbottom f See also Internals Vertical alignment of staves is handled by the VerticalAlignment object The con
174. er rests or bar lines Such beams are specified manually by marking the begin and end point with and r4 r8 g a r8 r8 g a r8 Commonly tweaked properties Normally beaming patterns within a beam are determined automatically If necessary the properties stemLeftBeamCount and stemRightBeamCount can be used to override the defaults If either property is set its value will be used only once and then it is erased f8 r16 f gal f8 r16 set stemLeftBeamCount 1 f gal 2 The property subdivideBeams can be set in order to subdivide all 16th or shorter beams at beat positions as defined by the beatLength property cl6l c cc ccc c set subdivideBeams t c16 c c cccc c set Score beatLength ly make moment 1 8 c16 c cc cc cc c Line breaks are normally forbidden when beams cross bar lines This behavior can be changed by setting allowBeamBreak Bugs Kneed beams are inserted automatically when a large gap is detected between the note heads This behavior can be tuned through the object Automatically kneed cross staff beams cannot be used together with hidden staves See Section 8 3 2 Hiding staves page 183 Beams do not avoid collisions with symbols around the notes such as texts and accidentals Chapter 6 Basic notation 95 6 4 6 Grace notes Grace notes are ornaments that are written out The most common ones are acciaccatura which should be pl
175. ernal music representation 231 11 1 3 Extending music syntaz 232 11 1 4 Manipulating music expressions 00 0 233 11 1 5 Displaying music expressions 234 11 1 6 Using LilyPond syntax inside Scheme 234 11 2 Markup programmer interface 236 11 2 1 Markup construction in Scheme 236 11 2 2 How markups work internally 237 11 2 3 Markup command definition 237 11 3 Contexts for programmers 239 11 31 Context evaluation ic Ee tivoli eer a data 239 11 3 2 Running a function on all layout objects 239 12 lilypond book Integrating text and music 240 12 1 An example of a musicological document 240 12 2 Integrating La TEX and music 243 12 3 Integrating Texinfo and music 244 12 4 Integrating HTML and music 245 12 5 Music tragment Options euo ie ia iii 245 12 6 Invoking lilypond book 247 12 7 Filename extensions ici ia ai AM LL ea di pee prre 2
176. ersion may be entered as vocNam new Voice time 3 4 g2 e4 a2 f4 g2 addlyrics set vocalName Bert Hi my name is Bert addlyrics set vocalName Ernie Oh che ri je t aime Bert Hi my name is Bert Ernie Oh che ri je t aime You can display alternate or divisi lyrics by naming voice contexts and attaching lyrics to those specific contexts score lt lt context Voice melody relative c c4 lt lt voiceOne c8 e context Voice splitpart voiceTwo c4 gt gt Chapter 7 Instrument specific notation 132 oneVoice c4 c c I new Lyrics lyricsto melody we shall not o ver come new Lyrics lyricsto splitpart will gt gt ay we shall not o ver come will You can use this trick to display different lyrics for a repeated section score lt lt context Voice melody relative c c2 e ge ct context Voice verse repeat volta 2 c4 def gl a2 b ci lyricsto melody context Lyrics mainlyrics lyricmode do mi sol mi do la si do lyricsto verse context Lyrics mainlyrics lyricmode do re mi fa sol lyricsto verse context Lyrics repeatlyrics lyricmode dodo rere mimi fafa solsol gt gt 3 do mi sol mi do do re mi fa sol la si dodo rere mimi fafa solsol do See also Program reference LyricText StanzaNumber VocalName Ch
177. es creating some notation objects and maintaining the associated properties So the synchronization of bar lines is handled at Score context The Voice may introduce an accidental and then the Staff context maintains the rule to show or suppress the accidental for the remainder of the measure 1 Appendix B Scheme tutorial page 253 contains a short tutorial on entering numbers lists strings and symbols in Scheme Chapter 9 Changing defaults 202 For simple scores contexts are created implicitly and you need not be aware of them For larger pieces such as piano music they must be created explicitly to make sure that you get as many staves as you need and that they are in the correct order For typesetting pieces with specialized notation it can be useful to modify existing or to define new contexts A complete description of all available contexts is in the program reference see Translation gt Context 9 1 1 Creating contexts For scores with only one voice and one staff correct contexts are created automatically For more complex scores it is necessary to create them by hand There are three commands that do this The easiest command is new and it also the quickest to type It is prepended to a music expression for example new type music expression where type is a context name like Staff or Voice This command creates a new context and starts interpreting the music expression with that A practical application o
178. es list args list of markups Make a column of the markups in args putting brackets around the elements marked in indices which is a list of numbers caps arg markup Set font shape to caps center align args list of markups Put args in a centered column Chapter 8 Advanced notation 166 char num integer Produce a single character e g char 65 produces the letter A circle arg markup Draw a circle around arg Use thickness circle padding and font size prop erties to determine line thickness and padding around the markup column args list of markups Stack the markups in args vertically The property baseline skip determines the space between each markup in args combine m1 markup m2 markup Print two markups on top of each other dir column args list of markups Make a column of args going up or down depending on the setting of the direction layout property doubleflat Draw a double flat symbol doublesharp Draw a double sharp symbol draw circle radius number thickness number fill boolean A circle of radius radius thickness thickness and optionally filled dynamic arg markup Use the dynamic font This font only contains s f m z p and r When producing phrases like pi f the normal words like pi should be done in a different font The recommend font for this is bold and italic encoded simple sym symbol str string A text string encoded w
179. es all fonts accordingly The Feta font provides musical symbols at eight different sizes Each font is tuned for a different staff size at a smaller size the font becomes heavier to match the relatively heavier staff lines The recommended font sizes are listed in the following table font name staff height pt staff height mm use fetall 11 22 3 9 pocket scores feta13 12 60 4 4 fetal4 14 14 5 0 fetal6 15 87 5 6 fetal8 17 82 6 3 song books feta20 20 7 0 standard parts feta23 22 45 7 9 feta26 25 2 8 9 These fonts are available in any sizes The context property fontSize and the layout property staff space in StaffSymbol can be used to tune the size for individual staves The sizes of individual staves are relative to the global size See also This manual Section 10 1 2 Selecting notation font size page 217 10 1 2 Selecting notation font size The easiest method of setting the font size of any context is by setting the fontSize property c8 set fontSize 4 Chapter 10 Output formats 218 cof set fontSize 3 g It does not change the size of variable symbols such as beams or slurs Internally the fontSize context property will cause the font size property to be set in all layout objects T he value of font size is a number indicating the size relative to the standard size for the current staff height Each step up is an increase of approximately 12 of the font size Six steps is exactly a fa
180. es vs identifiers 254 Proper eeru irene I AE EE 207 p rnctuatlon scisti Ede rv ak 125 Q quarter notes ovile o eeu eus 11 quarter COMES rer ed racer Tam na 75 QuoteMusico id Ad 185 quotes in lyTiCS ooooooocooooccooroomooo 125 quoting in Scheme 254 R s SCIARE FIORITO RIO RISO RANIERO PON S 75 Bibl A ey i 173 PALS DM EE 170 raise mark p cicer eb dic n REN 170 TAISING tex elle reped pU Eee dues 171 regular line breaks 224 regular rhythms iso aan 3 regular SPACING ooo QU QC det eX RO ER 3 Rehearsal marks 176 RehearsalMark 162 163 177 Relative o Ex aen sects Lada uec aed p 79 Relative octave specification 79 reminder accidental 74 removals NCH ia 120 RemoveEmptyVerticalGroup 184 yemove With Tani Wa 181 removing Objects 211 repeat DAS a Peire ag 87 repeat ambiguous 111 repeatCommands 88 112 RepeatedMusic 112 232 TEPEATS E AE AA ade 109 RepeatSlaslhoLsze pra lapa a 114 TEporting bUgsricioi srt daa 69 POSE oque a eR I AA Ea 11 Resti lago Rope em ou ane trt te a 76 143 RestGol iistoni uil drago m Rer D ERAS 109 Restssmn ica a dT 75 festis ancient echo Pi Gal eae late YANA 143 Rests full measure
181. escendens b quilisma g pes b VI Nquilisma g pes auctum descendens b NV Ndeminutum g pes b VT Ndeminutum g pes auctum descendens b a pes b flexa g a pes b flexa auctum descendens g a pes b flexa Ndeminutum g M deminutum a pes b flexa g VT Ndeminutum a pes b flexa Nauctum descendens g MX VT Ndeminutum a pes b flexa Ndeminutum g M a flexa g pes b a flexa g pes auctum descendens b a flexa g pes deminutum b VT Nvirga b Ninclinatum a inclinatum g M VT Nvirga b Ninclinatum a Ninclinatum Nauctum g VT Nvirga b inclinatum a Ninclinatum deminutum g MX g pes a virga b M g pes a pes Nauctum descendens b XL g pes a pes Ndeminutum b g oriscus a pes virga b Chapter 7 Instrument specific notation 156 O Salicus Auctus Descendens g oriscus a pes auctum descendens b P Trigonus stropha b stropha b stropha a Predefined commands The following head prefixes are supported virga stropha inclinatum auctum descendens ascendens oriscus quilisma deminutum Head prefixes can be accumulated though restrictions apply For example either descendens or ascendens can be applied to a head but not both to the same head Two adjacent heads can be tied together with the pes and flexa infix commands for a rising and falling line of melody respectively 7 7 11 Gregorian Chant c
182. eting or formatting will be finished but the next step will be skipped Fatal error Something is definitely wrong and LilyPond cannot continue This happens rarely The most usual cause is misinstalled fonts Scheme error Errors that occur while executing Scheme code are caught by the Scheme inter preter If running with the verbose option V or verbose then a call trace of the offending function call is printed Programming error There was some internal inconsistency These error messages are intended to help the programmers and debuggers Usually they can be ignored Sometimes they come in such big quantities that they obscure other output In this case file a bug report Aborted core dumped This signals a serious programming error that caused the program to crash Such errors are considered critical If you stumble on one send a bug report If warnings and errors can be linked to some part of the input file then error messages have the following form filename lineno columnno message offending input line A line break is inserted in the offending line to indicate the column where the error was found For example test ly 2 19 error not a duration 5 c4 e 5 g gt These locations are LilyPond s best guess about where the warning or error occured but by their very nature warnings and errors occur when something unexpected happens If you can t see an error in the indicated line of your input file try checkin
183. ext example demonstrates a simple melody with lyrics Cut and paste add notes then words for the lyrics This example turns off automatic beaming which is common for vocal parts If you want to use automatic beaming you ll have to change or comment out the relevant line version 2 6 0 melody relative c Y clef treble key c major time 4 4 adbcd text lyricmode Aaa Bee Cee Dee score lt lt context Voice one Chapter 3 Example templates 31 autoBeamOff melody lyricsto one new Lyrics text gt gt layout midi tempo 4 60 Aaa Bee Cee Dee 3 1 3 Notes and chords Want to prepare a lead sheet with a melody and chords Look no further version 2 6 0 melody relative c clef treble key c major time 4 4 f4 e8 c d4 g a2 a2 harmonies chordmode c4 m f min7 g maj c aug d2 dim b sus score lt lt context ChordNames set chordChanges t harmonies context Staff one melody gt gt layout midi tempo 4 60 Cmem cd c D B Chapter 3 Example templates 3 1 4 Notes lyrics and chords This template allows you to prepare a song with melody words and chords version 2 6 0 melody relative c clef treble key c major time 4 4 abcd text lyricmode Aaa Bee Cee Dee harmonies chordmode a2 c2 p score lt lt c
184. f new is a score with many staves Each part that should be on its own staff is preceded with new Staff lt lt new Staff c4 c new Staff d4 d gt gt f Like Nnew the Ncontext command also directs a music expression to a context object but gives the context an extra name The syntax is context type id music This form will search for an existing context of type type called id If that context does not exist yet it is created This is useful if the context is referred to later on For example when setting lyrics the melody is in a named context context Voice tenor music so the texts can be properly aligned to its notes new Lyrics lyricsto tenor lyrics Another possibility is funneling two different music expressions into one context In the following example articulations and notes are entered separately music c4 c4 arts s4 s4 gt They are combined by sending both to the same Voice context lt lt new Staff context Voice A music context Voice A arts gt gt Chapter 9 Changing defaults 203 With this mechanism it is possible to define an Urtext original edition with the option to put several distinct articulations on the same notes The third command for creating contexts is context type music This is similar to context with id but matches any context of type type regardless of its given name This variant is used wi
185. f the cued instrument plays in a different clef the original clef should be stated once again 8 3 5 Aligning to cadenzas In an orchestral context cadenzas present a special problem when constructing a score that includes a cadenza all other instruments should skip just as many notes as the length of the cadenza otherwise they will start too soon or too late A solution to this problem are the functions mmrest of length and skip of length These Scheme functions take a piece of music as argument and generate a skip or multi rest exactly as long as the piece The use of mnrest of length is demonstrated in the following example cadenza relative c c4 d8 lt lt fe fg d4 gt gt g4 2 g4 g new GrandStaff lt lt new Staff cadenza c 4 new Staff ly export mmrest of length cadenza c 4 gt gt 8 4 Contemporary notation In the 20th century composers have greatly expanded the musical vocabulary With this expan sion many innovations in musical notation have been tried The book Music Notation in the Chapter 8 Advanced notation 187 20th century by Kurt Stone gives a comprehensive overview see Appendix A Literature list page 252 In general the use of new innovative notation makes a piece harder to understand and perform and its use should therefore be avoided For this reason support for contemporary notation in LilyPond is limited
186. fasti ae is hp 171 Translation ss ip Ea 213 Transparent notes 193 transparent objects 211 Transposer prial re Gordo Eae ect eR 80 TransposedMusiC e re rrt 81 290 transposition of pitches 80 transposition instrument 179 transposition MIDI 179 treble clef cine E NE A IRR IPM 83 tremolo beams 112 tremolo marks bili See ee ok aa 113 tremolo Flags tuto eolie 113 triangle aii el Ti 172 triangle markup 0 172 ll lara a del sli 98 TrillSpanner if iz lie eli pri 103 UPI cae ed ne ali ueber ER e dene nA 22 lle tuning automatic beaming 198 tuplet Aa IA Kaa eee 78 TupletBracket j AA a ERA 78 tupletNumberFormatFunction 78 TUPIA WA ele de he 22 77 A iure ii Lal i Aia 98 tweaking lille keke ik beni pi 212 typed fonts iui Ate ae os a 244 typeset text Sas ee ere dete etae reel 162 typewriter sor culi e iet 172 typewriter markup 172 bypography sc see oder Y 3 5 U UnfoldedRepeatedMusic 112 Upbeat siii eie ete okie aod er perite 86 UPDOW uut tet RR E Ope da 98 Upright qu EAE EAR Aure ash LAM HE dues 172 upright mark p uc o tae eae RES OS eed 172 using the manual nimmer 9 V varbaritone clef 83 ValCOdA Xm ote etre itr SE
187. fering ways Such variations can still be captured with lyricsto 7 3 5 1 Lyrics to multiple notes of a melisma One possibility is that the text has a melisma in one stanza but multiple syllables in another one One solution is to make the faster voice ignore the melisma This is done by setting ignoreMelismata in the Lyrics context There has one tricky aspect The setting for ignoreMelismata must be set one syllable before the non melismatic syllable in the text as shown here relative context Voice lahlah set Staff autoBeaming f c4 slurDotted f8 g16 a4 new Lyrics lyricsto lahlah more slow ly new Lyrics lyricsto lahlah set ignoreMelismata t applies to fas go fas ter unset ignoreMelismata still i gt gt Chapter 7 Instrument specific notation 130 more slow ly go faster still The ignoreMelismata applies to the syllable fas so it should be entered before go The reverse is also possible making a lyric line slower than the standard This can be achieved by insert skips into the lyrics For every skip the text will be delayed another note For example relative c c g addlyrics twin skip 4 kle ce twin kle 7 3 6 Switching the melody associated with a lyrics line More complex variations in text underlay are possible It is possible to switch the melody for a line of lyrics
188. fferring lengths Longer durations get more space shorter durations get less The shortest durations get a fixed amount of space which is controlled by shortest duration space in the SpacingSpanner object The longer the duration the more space it gets doubling a duration adds a fixed amount this amount is controlled by spacing increment of space to the note For example the following piece contains lots of half quarter and 8th notes the eighth note is followed by 1 note head width NHW The quarter note is followed by 2 NHW the half by 3 NHW etc C2 c4 c8 c4 c8 c4 c8 c8 c8 c4 c4 c4 Normally spacing increment is set to 1 2 staff space which is approximately the width of a note head and shortest duration space is set to 2 0 meaning that the shortest note gets 2 4 staff space 2 0 times the spacing increment of horizontal space This space is counted from the left edge of the symbol so the shortest notes are generally followed by one NHW of space If one would follow the above procedure exactly then adding a single 32nd note to a score that uses 8th and 16th notes would widen up the entire score a lot T he shortest note is no longer a 16th but a 32nd thus adding 1 NHW to every note To prevent this the shortest duration for spacing is not the shortest note in the score but rather the one which occurs most frequently The most common shortest duration is determined as follows in every measure the s
189. fied for both music expressions i e Npartcombine relative musicexpri relative musicexpr2 A relative section that is outside of partcombine has no effect on the pitches of musicexpr1 and musicexpr2 See also Program reference PartCombineMusic Bugs When printPartCombineTexts is set when the two voices play the same notes on and off the part combiner may typeset a2 more than once in a measure partcombine cannot be inside Ntimes partcombine cannot be inside relative Internally the partcombine interprets both arguments as Voices named one and two and then decides when the parts can be combined Consequently if the arguments switch to differently named Voice contexts the events in those will be ignored 8 3 2 Hiding staves In orchestral scores staff lines that only have rests are usually removed this saves some space This style is called French Score For Lyrics ChordNames and FiguredBass this is switched on by default When the lines of these contexts turn out empty after the line breaking process they are removed For normal staves a specialized Staff context is available which does the same staves containing nothing or only multi measure rests are removed The context definition is stored in RemoveEmptyStaffContext variable Observe how the second staff in this example disappears in the second line layout 4 context RemoveEmptyStaffContext relative c lt lt new
190. fo The key signature is set with the command key followed by a pitch and major or minor key d major gi key c minor g H Any simple or programmer oriented editor will do for example Notepad Do not use a word processor since these insert formatting codes that will confuse LilyPond N There are macro files for VIM addicts and there is a LilyPond mode for Emacs addicts If they have not been installed already refer to the file INSTALL txt If your system does not have any tools installed you can try Ghostscript http www cs wisc edu ghost a freely available package for viewing and printing PDF and PostScript files w This syntax derived from note naming conventions in Nordic and Germanic languages like German and Dutch Chapter 2 Tutorial 14 Key signatures together with the pitches including alterations are used to determine when to print accidentals This is a feature that often causes confusion to newcomers so let us explain it in more detail LilyPond makes a sharp distinction between musical content and layout The alteration flat natural or sharp of a note is part of the pitch and is therefore musical content Whether an accidental a flat natural or sharp sign is printed in front of the corresponding note is a question of layout Layout is something that follows rules so accidentals are printed automatically according to those rules The pitches in your music are works of art
191. found either in etc xpdfrc or as xpdfrc in your home directory On a typical unix system this file exists or must be created in your home directory as mozilla firefox default trn user js or firefox default xxxxxxxx xxx user js see location http www mozilla orgsupportfirefoxedit user and profile http www mozilla orgsupport firefoxedit profile Appendix E Cheat sheet 272 Appendix E Cheat sheet Syntax Description Example 12816 durations c4 c4 augmentation dots cdefgab scale zz fis bes alteration clef treble clef bass clefs time 3 4 time 4 4 time signature r4 r8 rest d d tie Appendix E Cheat sheet key es major note note c de c c d e a8 b lt lt new Staff gt gt Cro G4 273 key signature pe ie da raise octave lower octave slur e ext aoa O e phrasing slur beam E Ht more staves articulations Appendix E Cheat sheet c mf c sfz a lt a la a gt aa partial 8 times 2 3 f g a grace lyricmode twinkle new Lyrics dynamics crescendo decrescendo chord upstep triplets grace notes entering lyrics printing lyrics 274 ie pa pu pr Sos 3 ES get twinkle 3 S
192. fs mensural f change d clefs petrucci g change d clefs mensural g change e Clefs hufnagel do change f clefs hufnagel fa change f clefs hufnagel do fa change y custodes hufnagel ul 267 Appendix C Notation manual details y custodes hufnagel A custodes hufnagel i custodes medicaea custodes medicaea custodes medicaea i custodes vaticana custodes vaticana custodes vaticana Custodes mensural custodes mensural custodes mensural u2 dl uo u2 dl uo u2 dl uo u2 dl p accidentals medicaeaM1 4 accidentals vaticanaO accidentals mensuralM1 flags mensuralu03 flags mensuralu23 flags mensurald13 flags mensuralu04 custodes hufnagel dO A custodes hufnagel d2 custodes medicaea ul I custodes medicaea d0 custodes medicaea d2 custodes vaticana ul 1 custodes vaticana dO 1 custodes vaticana d2 Custodes mensural ul custodes mensural dO custodes mensural d2 gt accidentals vaticanaMl x accidentals mensurall accidentals hufnagelM1 flags mensuralu13 flags mensurald03 flags mensurald23 II flags mensuralul4 268 Appendix C Notation manual details flags mensuralu24 flags mensurald14 on DIL flags mensuralu05 flags mensuralu25 flags mensurald15 flags mensuralu06 wows DAY flags mensuralu26 flags mensurald16 C timesig mens
193. g StaffSpacing SeparationItem and SeparatingGroupSpanner Bugs Spacing is determined on a score wide basis If you have a score that changes its character measured in durations halfway during the score the part containing the longer durations will be spaced too widely There is no convenient mechanism to manually override spacing The following work around may be used to insert extra space into a score once override Score SeparationItem padding 1 No work around exists for decreasing the amount of space 10 1 9 Line length The most basic settings influencing the spacing are indent and linewidth They are set in the layout block They control the indentation of the first line of music and the lengths of the lines If raggedright is set to true in the layout block then the lines are justified at their natural length This is useful for short fragments and for checking how tight the natural spacing is The option raggedlast is similar to raggedright but only affects the last line of the piece No restrictions are put on that line The result is similar to formatting text paragraphs In a paragraph the last line simply takes its natural length 10 1 10 Line breaking Line breaks are normally computed automatically They are chosen so that lines look neither cramped nor loose and that consecutive lines have similar density Occasionally you might want to override the automatic breaks you can do this by specifying
194. g and then it raises that Stencil by 0 5 staff space This is a rather simple example more complex examples are in the rest of this section and in scm define markup commands scm 11 2 3 Markup command definition New markup commands can be defined with the def markup command scheme macro def markup command command name layout props argl arg2 argi type arg2 type command body The arguments signify argi ith command argument argi type a type predicate for the ith argument layout the layout definition props a list of alists containing all active properties As a simple example we show how to add a smallcaps command which selects TEX s small caps font Normally we could select the small caps font as follows markup override font shape caps Text in caps This selects the caps font by setting the font shape property to caps for interpreting Text in caps To make the above available as smallcaps command we have to define a function using def markup command The command should take a single argument of type markup Therefore the start of the definition should read def markup command smallcaps layout props argument markup What follows is the content of the command we should interpret the argument as a markup i e interpret markup layout argument This interpretation should add font shape caps to the active properties so we substitute the following for the in the a
195. g one or two lines above the indicated position Chapter 5 Running LilyPond 68 5 5 Updating with convert ly The LilyPond input syntax is routinely changed to simplify it or improve it in different ways As a side effect of this the LilyPond interpreter often is no longer compatible with older input files To remedy this the program convert 1y can be used to deal with most of the syntax changes between LilyPond versions It uses version statements in the input files to detect the old version number In most cases to upgrade your input file it is sufficient to run convert ly e myfile ly If there are no changes to myfile ly and file called myfile ly NEW is created then myfile ly is already updated convert ly always converts up to the last syntax change handled by it This means that the Nversion number left in the file is usually lower than the version of convert 1y itself To upgrade LilyPond fragments in texinfo files use convert ly from to no version itely To upgrade many files at once combine convert 1y with standard unix commands This example will upgrade all 1y files in the current directory for f in ly do convert ly e f done In general the program is invoked as follows convert ly option file The following options can be given e edit Do an inline edit of the input file Overrides output f from from patchlevel Set the version to convert from If this is not set convert 1y
196. ge 116 Program reference AutoChangeMusic Chapter 7 Instrument specific notation 116 Bugs The staff switches may not end up in optimal places For high quality output staff switches should be specified manually autochange cannot be inside times 7 1 2 Manual staff switches Voices can be switched between staves manually using the command change Staff staffname music The string staffname is the name of the staff It switches the current voice from its current staff to the Staff called staffname Typically staffname is up or down The Staff referred to must already exist so usually the setup for a score will start with a setup of the staves lt lt context Staff up skip 1 10 keep staff alive context Staff down skip 1 10 idem gt gt and the Voice is inserted afterwards context Staff down new Voice change Staff up 7 1 3 Pedals Pianos have pedals that alter the way sound is produced Generally a piano has three pedals sustain una corda and sostenuto Piano pedal instruction can be expressed by attaching sustainDown sustainUp unaCorda treCorde sostenutoDown and sostenutoUp to a note or chord c 4 sustainDown c 4 sustainUp o Zo What is printed can be modified by setting pedalXStrings where X is one of the pedal types Sustain Sostenuto or UnaCorda Refer to SustainPedal in the program reference for more information
197. h voice Hence engravers should be grouped The engravers for note heads stems slurs etc go into a group called Voice context while the engravers for key accidental bar etc go into a group called Staff context In the case of polyphony a single Staff context contains more than one Voice context Similarly multiple Staff contexts can be put into a single Score context The Score context is the top level notation context See also Program reference Contexts 1 4 Music representation Ideally the input format for any high level formatting system is an abstract description of the content In this case that would be the music itself This poses a formidable problem how can we define what music really is Instead of trying to find an answer we have reversed the question We write a program capable of producing sheet music and adjust the format to be as lean as possible When the format can no longer be trimmed down by definition we are left with content itself Our program serves as a formal definition of a music document The syntax is also the user interface for LilyPond hence it is easy to type c 4 d 8 a quarter note C1 middle C and an eighth note D1 D above middle C On a microscopic scale such syntax is easy to use On a larger scale syntax also needs structure How else can you enter complex pieces like symphonies and operas The structure is
198. he bar at which the beam should end e context is optional and it specifies the context at which the change should be made The default is Voice score override auto beam setting AB CD EF is equivalent to override auto beam setting A B C D EF Score For example if automatic beams should always end on the first quarter node use override auto beam setting end 1 4 You can force the beam settings to only take effect on beams whose shortest note is a certain duration time 2 4 override auto beam setting end 1 16 1 16 al6 aa aaaaa a32 a a a al6 a aaaa override auto beam setting end 1 32 1 16 a32 a a a al6 a aaaa Chapter 8 Advanced notation 199 You can force the beam settings to only take effect in certain time signatures time 5 8 override auto beam setting end 5 8 2 8 c8cddd time 4 4 e8 e f feedd time 5 8 c8cddd You can also remove a previously set beam ending rule by using revert auto beam setting be p q n m a b context be p q n m a b and context are the same as above Note that the default rules are specified in scm auto beam scm so you can revert rules that you did not explicitly create time 4 4 al6 aaaaaaaaaaaaaaa revert auto beam setting end 1 16 4 4 1 4 al6aaaaaaaaaaaaaaa The rule in a revert auto beam setting statement must exactl
199. he main voice This is useful when extra voices appear while the main voice is playing Here is a more correct rendition of the example from the previous section The crossed noteheads demonstrate that the main melody is now in a single voice context new Staff relative c override NoteHead style cross c16 def voiceOne lt lt g4 f e d2 e2 context Voice 1 voiceTwo r8 e4 d c8 c8 b16 a b8g g2 oneVoice new Voice voiceThree s2 s4 b4 c2 oneVoice gt gt oneVoice AITTE The correct definition of the voices allows the melody to be slurred Chapter 6 Basic notation new Staff relative c c16 def voiceOne lt lt g4 f e d2 e2 context Voice 1 voiceTwo r8 edd c8 c8 b16 a b8 g g2 oneVoice new Voice voiceThree s2 s4 b4 c2 oneVoice gt gt oneVoice STEW ds 107 Avoiding the seperator also allows nesting polyphony constructs which in some case might be a more natural way to typeset the music new Staff relative c c16 def voiceOne lt lt g4 f e d2 e2 context Voice 1 voiceTwo r8 e4 d c8 lt lt c8 b16 a b8 g g2 new Voice voiceThree s4 b4 c2 oneVoice gt gt oneVoice 3 gt gt oneVoice 3 Chapter 6 Basic notation 108 6 6 3 Collision Resolution Normally note hea
200. he music frag ments For inline pictures use lt lilypond gt where the options are separated by a colon from the music for example Some music in lt lilypond relative 2 a b c gt a line of text To include separate files say lt lilypondfile optioni option2 gt filename lt lilypondfile gt 12 5 Music fragment options In the following a LilyPond command refers to any command described in the previous sec tions which is handled by lilypond book to produce a music snippet For simplicity LilyPond commands are only shown in La TEX syntax Note that the option string is parsed from left to right if an option occurs multiple times the last one is taken The following options are available for LilyPond commands staffsize ht Set staff size to ht which is measured in points raggedright Produce ragged right lines with natural spacing i e raggedright t is added to the LilyPond snippet This is the default for the lilypond command if no linewidth option is present It is also the default for the lilypond environment if the fragment option is set and no line width is explicitly specified packed Produce lines with packed spacing i e packed t is added to the LilyPond snippet linewidth linewidth size unit Set line width to size using unit as units unit is one of the following strings cm mm in or pt This option affects LilyPond output this is the staff length of the mus
201. he next fragment the last note is an a above middle C That means that the octave check passes successfully so the check could be deleted without changing the output of the piece relative c e octave b a 6 2 3 Transpose A music expression can be transposed with transpose The syntax is transpose from to musicexpr This means that musicexpr is transposed by the interval between the pitches from and to any note with pitch from is changed to to For example consider a piece written in the key of D major If this piece is a little too low for its performer it can be transposed up to E major with Chapter 6 Basic notation 81 transpose d e Consider a part written for violin a C instrument If this part is to be played on the A clarinet the following transposition will produce the appropriate part transpose ac transpose distinguishes between enharmonic pitches both transpose c cis or transpose c des will transpose up half a tone The first version will print sharps and the second version will print flats mus key d major cis d fis g context Staff clef F mus clef G transpose c g mus transpose c f mus transpose may also be used to input written notes for a transposing instrument Pitches are normally entered into LilyPond in C or concert pitch but they may be entered in another key For example when entering m
202. hortest duration is determined The most common shortest duration is taken as the basis for the spacing with the stipulation that this shortest duration should always be equal to or shorter than an 8th note The shortest duration is printed when you run lilypond with the verbose option These durations may also be customized If you set the common shortest duration in SpacingSpanner then this sets the base duration for spacing The maximum duration for this base normally an 8th is set through base shortest duration Notes that are even shorter than the common shortest note are followed by a space that is proportional to their duration relative to the common shortest note So if we were to add only a few 16th notes to the example above they would be followed by half a NHW c2 c4 c8 c4 c16 c c4 c8 c8 c8 c4 c4 c4 In the introduction see Section 1 1 Engraving page 2 it was explained that stem direc tions influence spacing This is controlled with the stem spacing correction property in the NoteSpacing object These are generated for every Voice context The StaffSpacing object generated in Staff context contains the same property for controlling the stem bar line spac ing The following example shows these corrections once with default settings and once with exaggerated corrections Chapter 10 Output formats 224 of See also Internals SpacingSpanner NoteSpacin
203. hrough the following properties chordNameExceptions This is a list that contains the chords that have special formatting The exceptions list should be encoded as Chapter 7 Instrument specific notation 123 lt c f g bes gt 1 markup super 7 wahh To get this information into chordNameExceptions takes a little manoeuvring The following code transforms chExceptionMusic which is a sequential music into a list of exceptions sequential music to chord exceptions chExceptionMusic t Then append sequential music to chord exceptions chExceptionMusic t ignatzekExceptions adds the new exceptions to the default ones which are defined in ly chord modifier init ly For an example of tuning this property see also input regression chord name exceptions ly majorSevenSymbol This property contains the markup object used for the 7th step when it is ma jor Predefined options are whiteTriangleMarkup and blackTriangleMarkup See input regression chord name major7 1ly for an example chordNameSeparator Different parts of a chord name are normally separated by a slash By setting chordNameSeparator you can specify other separators e g context ChordNames Nchordmode c 7sus4 set chordNameSeparator markup typewriter c 7sus4 7 sus4 7 sus4 C C chordRootNamer The root of a chord is usually printed as a letter with an optional alteration The transformation from pitch to letter
204. i The same can be applied to articulations texts etc they are made by prepending tag your tag to an articulation for example ci tag part 4 This defines a note with a conditional fingering indication By applying the keepWithTag and removeWithTag commands tagged expressions can be filtered For example lt lt the music keepWithTag score the music keepWithTag part the music gt gt would yield both I P cue 4 pot ep m score qe Ee The argument of the tag command should be a symbol or a list of symbols for example tag original part transposed part See also Examples input regression tag filter ly Bugs Multiple rests are not merged if you create the score with both tagged sections Chapter 8 Advanced notation 182 8 3 Orchestral music Orchestral music involves some special notation both in the full score and the individual parts This section explains how to tackle some common problems in orchestral music 8 3 1 Automatic part combining Automatic part combining is used to merge two parts of music onto a staff It is aimed at typesetting orchestral scores When the two parts are identical for a period of time only one is shown In places where the two parts differ they are typeset as separate voices and stem directions are set automatically Also solo and a due parts are identified and can be marked The
205. iant Sections are certain Secondary Sections whose titles are designated as being those of Invariant Sections in the notice that says that the Document is released under this License The Cover Texts are certain short passages of text that are listed as Front Cover Texts or Back Cover Texts in the notice that says that the Document is released under this License A Transparent copy of the Document means a machine readable copy represented in a format whose specification is available to the general public whose contents can be viewed and edited directly and straightforwardly with generic text editors or for images composed of pixels generic paint programs or for drawings some widely available drawing editor and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters A copy made in an otherwise Transparent file Appendix F GNU Free Documentation License 277 format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent A copy that is not Transparent is called Opaque Examples of suitable formats for Transparent copies include plain ASCII without markup Texinfo input format LaTEX input format SGML or XML using a publicly available DTD and standard conforming simple HTML designed for human modification Opaque formats include PostScript PDF proprietary formats that can be read
206. ic snippet not the text layout If used without an argument set line width to a default value as computed with a heuristic algorithm If no linewidth option is given 1ilypond book tries to guess a default for 1ilypond environments which don t use the raggedright option notime Do not print the time signature and turns off the timing key signature bar lines in the score fragment Make lilypond book add some boilerplate code so that you can simply enter say Chapter 12 lilypond book Integrating text and music 246 c 4 without layout score etc nofragment Don t add additional code to complete LilyPond code in music snippets Since this is the default nofragment is redundant normally indent sizeNunit Set indentation of the first music system to size using unit as units unit is one of the following strings cm mm in or pt This option affects LilyPond not the text layout noindent Set indentation of the first music system to zero This option affects LilyPond not the text layout Since no indentation is the default noindent is redundant normally quote Reduce line length of a music snippet by 20 4 in and put the output into a quotation block The value 0 4in can be controlled with the exampleindent option exampleindent Set the amount by which the quote option indents a music snippet relative relative n Use relative octave mode By default notes are specified relative to middle C The optional intege
207. ically be found some where below usr share doc lilypond Initialization files for example scm lily scm or l1y engraver init 1y are usually found in the directory usr share lilypond Finally this and all other manuals are available online both as PDF files and HTML from the web site which can be found at http www lilypond org Chapter 2 Tutorial 11 2 Tutorial This tutorial starts with a short introduction to the LilyPond music language After this first contact we will show you how to produce printed output Then you will be able to create and print your own sheets of music By cutting and pasting the full input into a test file you have a starting template for ex periments If you like learning in this way you will probably want to print out or bookmark Appendix E Cheat sheet page 272 which is a table listing all commands for quick reference 2 1 First steps The first example demonstrates how to enter the most elementary piece of music a scale A note can be entered by typing its name from a through g So if you enter cdefgab the result looks like this eerie The duration of a note is specified by a number after the note name 1 for a whole note 2 for a half note 4 for a quarter note and so on al a2 a4 al6 a32 If you do not specify a duration the duration last entered is used for the next notes The duration of the fi
208. ient time signatures 147 7 7 7 Ancient articulations ehh aen 148 1658 USOS cranio beh eae Eia ee pei e deett iiy 148 GEO DIVISIONES ens a et ere E Ete E EE IMPERA ES 149 1 10 Ligatures 20 pog radi RACES e RA LEE edu aed 150 7 7 10 1 White mensural ligatures 150 7 7 10 2 Gregorian square neumes ligatures 151 7 7 11 Gregorian Chant contezts 156 FAZ Mensural contexts iiec Ri ee ieee dace ORE UE E IEEE ARRA 157 TIAS Figured bass caia elia MA Oct dad Got Bak ia 157 7 8 Other instrument specific notation 159 7 8 1 Artificial harmonics strings 159 8 Advanced HOLAAA aaa 160 nNEIS P 160 Sp TextWSCrIpis o onte ne bot e t e eR PS 160 S 1 2 ext Spanners as eric eue e a ee oe ee FAI a 160 ela Text marksu cec Te LEA aan 161 8 14 Textomarkup sets lex ex ku on tea Yee ux NA TANI oie d SADA T AR 162 8 1 5 Text encoding iii eb parer RR d ERE ER a 164 8 156 Nested scores ratti hihi te RU du M EE uis 165 8 1 7 Overview of text markup commands 165 91 37 Font selection ale la ilaele 172 81 9 New dynamic marks iaia ARLES aaa 173 8 27 Preparing parts ispiri dle lola aa i 173 82 Multi measured piu Rex RR EA ea AUS 173 8 2 2 Metronome ma
209. ignored Set them all to a single duration and add phrase markings or pedal indicators 13 2 Invoking etf2ly ETF Enigma Transport Format is a format used by Coda Music Technology s Finale product etf21y will convert part of an ETF file to a ready to use LilyPond file It is invoked from the command line as follows etf21y option etf file The following options are supported by etf21y h help this help 0 output FILE set output filename to FILE V version version information Bugs The list of articulation scripts is incomplete Empty measures confuse etf2ly Sequences of grace notes are ended improperly 13 3 Invoking abc21y ABC is a fairly simple ASCII based format It is described at the ABC site http www gre ac uk c walshaw abc2mtex abc txt abc21y translates from ABC to LilyPond It is invoked as follows abc2ly option abc file The following options are supported by abc21y h help this help 0 output file set output filename to file V version print version information There is a rudimentary facility for adding LilyPond code to the ABC source file If you say AALY voices set autoBeaming f This will cause the text following the keyword voices to be inserted into the current voice of the LilyPond output file Similarly AALY slyrics more words will cause the text following the slyrics keyword to be inserted into the current line of lyrics Chapter 13 Converting from o
210. independent but sometimes voices can cross between the two staves The same notation is also used for harps and other key instruments The PianoStaff is especially built to handle this cross staffing behavior In this section we discuss the PianoStaff and some other pianistic peculiarities Bugs Dynamics are not centered but workarounds do exist See the piano centered dynamics template in Section 3 2 Piano templates page 32 The distance between the two staves is the same for all systems in the score It is possible to override this per system but it does require an arcane command incantation See input test piano staff distance ly 7 1 1 Automatic staff changes Voices can be made to switch automatically between the top and the bottom staff The syntax for this is Nautochange music This will create two staves inside the current PianoStaff called up and down The lower staff will be in bass clef by default A Nrelative section that is outside of Nautochange has no effect on the pitches of music so if necessary put relative inside Nautochange like autochange relative The autochanger switches on basis of the pitch middle C is the turning point and it looks ahead skipping over rests to switch in advance Here is a practical example context PianoStaff autochange relative c g4abcdr4ag i See also In this manual Section 7 1 2 Manual staff switches pa
211. ing common LilyPond syntax inside Scheme with the dedicated syntax The following two expressions give equivalent music expressions mynotes override Stem thickness 4 tog d define mynotes t override Stem thickness 4 c8 d The content of is enclosed in an implicit block which is parsed The resulting music expression a SequentialMusic music object is then returned and usable in Scheme Arbitrary Scheme forms including variables can be used in expressions with the character can be used to produce a single character This makes the creation of simple functions straightforward In the following example a function setting the TextScript s padding is defined use modules ice 9 optargs define textpad padding optional once ly export this is necessary for using the expression directly inside a block if once once override TextScript padding padding override TextScript padding padding cerry textpad 3 0 t only once cr or Chapter 11 Interfaces for programmers 235 Corns textpad 5 0 citta c 5 4 5 2 Se Here the variable padding is a number music expression variables may also be used in a similar fashion as in the following example define with padding padding lambda music override TextScript padding padding music revert TextScript
212. ing text and music If you want to add pictures of music to a document you can simply do it the way you would do with other types of pictures The pictures are created separately yielding PostScript output or PNG images and those are included into a LaTgX or HTML document lilypond book provides a way to automate this process This program extracts snippets of music from your document runs lilypond on them and outputs the document with pictures substituted for the music The line width and font size definitions for the music are adjusted to match the layout of your document This procedure may be applied to LaTEX HTML or Texinfo documents 12 1 An example of a musicological document Some texts contain music examples These texts are musicological treatises songbooks or manuals like this Such texts can be made by hand simply by importing a PostScript figure into the word processor However there is an automated procedure to reduce the amount of work involved in HTML LaTEX and Texinfo documents A script called lilypond book will extract the music fragments format them and put back the resulting notation Here we show a small example for use with LaTgX The example also contains explanatory text so we will not comment on it further documentclass a4paper article usepackage graphics begin document Documents for command lilypond book may freely mix music and text For example begin lilypond relative c c2 g
213. input Some editions use virgula or caesura instead of divisio minima Therefore gregorian init 1y also defines virgula and caesura divisio minimdivisio maior divisio maxima finalis virgula caesura Chapter 7 Instrument specific notation 150 Predefined commands virgula caesura divisioMinima divisioMaior divisioMaxima finalis See also In this manual Section 6 5 4 Breath marks page 102 Program reference BreathingSign Examples input test divisiones 1ly 7 7 10 Ligatures A ligature is a graphical symbol that represents at least two distinct notes Ligatures originally appeared in the manuscripts of Gregorian chant notation to denote ascending or descending sequences of notes Ligatures are entered by enclosing them in and NJ Some ligature styles may need addi tional input syntax specific for this particular type of ligature By default the LigatureBracket engraver just puts a square bracket above the ligature transpose c c gca f d agf Lefag EEE ae ei EEA To select a specific style of ligatures a proper ligature engraver has to be added to the Voice context as explained in the following subsections Only white mensural ligatures are supported with certain limitations Bugs Ligatures need special spacing that has not yet been implemented As a result there is too much space between ligatures most of
214. ion d c 4 in D transposition g c 4 in G 8 2 7 Ottava brackets Ottava brackets introduce an extra transposition of an octave for the staff They are created by invoking the function set octavation relative c 4 a2 b set octavation 1 ab set octavation 0 a b bef E Heg The set octavation function also takes 1 for 8va bassa and 2 for 15ma as arguments Internally the function sets the properties ottavation e g to 8va and centralCPosition For overriding the text of the bracket set ottavation after invoking set octavation i e 1 set octavation 1 set Staff ottavation 8 c 225 See also Program reference OttavaBracket Examples input regression ottava ly input regression ottava broken 1ly pP p g y inp g y Bugs set octavation will get confused when clef changes happen during an octavation bracket 8 2 8 Different editions from one source The tag command marks music expressions with a name These tagged expressions can be filtered out later With this mechanism it is possible to make different versions of the same music source In the following example we see two versions of a piece of music one for the full score and one with cue notes for the instrumental part Chapter 8 Advanced notation 181 ci lt lt tag part lt lt Ri NN 1 set fontSize 1 c4 cue f2 g4 gt gt tag score R1 gt gt c
215. is best to mark contexts explicitly This ensures that each fragment gets its own stave There are several types of contexts Staff Voice and Score handle melodic notation while Lyrics sets lyric texts and ChordNames prints chord names In terms of syntax prepending new to a music expression creates a bigger music expression In this way it resembles the minus sign in mathematics The formula 4 5 is an expression so 4 4 5 is a bigger expression We can now typeset a melody with two staves relative lt lt new Staff time 3 4 clef treble e 2 d4 c2 b4 a8 a b b gl gl a2 new Staff clef bass Cc 2 el g2 f4 ed c2 Chapter 2 Tutorial 20 gt gt PE csi r e For more information on contexts see the description in Section 9 1 Interpretation contexts page 201 2 9 Adding articulation marks to notes Common accents can be added to a note using a dash and a single character Co lt C CH gt Ga CaF oc Similarly fingering indications can be added to a note using a dash and the digit to be printed c 3 e 5 b 2 a 1 ERI Articulations and fingerings are usually placed automatically but you can specify a direction using up or _ down You can also use multiple articulations on the same note In most cases however it is best to let LilyPond determine the artic
216. is done by this function Special note names for example the German H for a B chord can be produced by storing a new function in this property chordNoteNamer The default is to print single pitch e g the bass note using the chordRootNamer The chordNoteNamer property can be set to a specialized function to change this behavior For example the base can be printed in lower case chordPrefixSpacer The m for minor chords is usually printed right after the root of the chord By setting chordPrefixSpacer you can fix a spacer between the root and m The spacer is not used when the root is altered The predefined variables germanChords semiGermanChords italianChords and frenchChords set these variables The effect is demonstrated here Chapter 7 Instrument specific notation 124 default E D Cm B B Bf Bf Bb Bb german E d Cm H h Hh his B b semi german E d Cm H h Hh his Bb b italian Mi Re Dom Sisi Sif sif Sib sib fond MiR Dom Si Si Si si sib sib There are also two other chord name schemes implemented an alternate Jazz chord notation and a systematic scheme called Banter chords The alternate Jazz notation is also shown on the chart in Section C 1 Chord name chart page 255 Turning on these styles is described in the input file input test chord names jazz 1ly Predefined commands germanChords semiGermanChords italianChords frenchChords See also Examples input regre
217. ist of drum names is in the init file 1y drumpitch init 1ly Chapter 7 Instrument specific notation 135 See also Program reference note event 7 4 3 Percussion staves A percussion part for more than one instrument typically uses a multiline staff where each position in the staff refers to one piece of percussion To typeset the music the notes must be interpreted in a DrumStaff and DrumVoice contexts up drummode crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat down drummode bassdrum4 snare8 bd r bd sn4 new DrumStaff lt lt new DrumVoice voiceOne up new DrumVoice voiceTwo down gt gt zl 0 FT The above example shows verbose polyphonic notation The short polyphonic notation de scribed in Section 6 6 Polyphony page 104 can also be used if the DrumVoices are instantiated by hand first For example new DrumStaff lt lt context DrumVoice 1 s1 2 context DrumVoice 2 s1 2 drummode bd4 sn4 bd4 sn4 lt lt repeat unfold 16 hh16 bd4 sn4 bd4 sn4 gt gt gt gt reje rper There are also other layout possibilities To use these set the property drumStyleTable in context DrumVoice The following variables have been predefined drums style This is the default It typesets a typical drum kit on a five line staff ed x 0 x x x R H x cymc cyms cymr hh hhc hho hhho hhp
218. ith encoding sym See user manual Text encoding for more information epsfile file name string Inline an EPS image The image is scaled such that 10 PS units is one staff space fill line markups list of markups Put markups in a horizontal line of width line width The markups are spaced flushed to fill the entire line If there are no arguments return an empty stencil filled box xext pair of numbers yext pair of numbers blot number Draw a box with rounded corners of dimensions xext and yext finger arg markup Set the argument as small numbers flat Draw a flat symbol fontsize increment number arg markup Add increment to the font size Adjust baseline skip accordingly fontsize mag number arg markup Set the relative font size e g A fontsize 2 BC D This will enlarge the B and the C by two steps Chapter 8 Advanced notation 167 fraction arg markup arg2 markup Make a fraction of two markups fret diagram definition string string Example markup fret diagram s 0 75 6 x 5 x 4 0 3 2 2 3 1 2 for fret spacing 3 4 of staff space D chord diagram Syntax rules for definition string Diagram items are separated by semicolons Possible items e sinumber set the fret spacing of the diagram in staff spaces Default 1 e t number set the line thickness in staff spaces Default 0 05 e h number set the height of the diagram in frets Default 4 e w number set th
219. ize otherwise markalphabet num integer Make a markup letter for num The letters start with A to Z and continues with double letters markletter num integer Make a markup letter for num The letters start with A to Z skipping I and continues with double letters musicglyph glyph name string This is converted to a musical symbol e g musicglyph accidentals 0 will select the natural sign from the music font See user manual The Feta font for a complete listing of the possible glyphs natural Draw a natural symbol normal size sub arg markup Set arg in subscript in a normal font size normal size super arg markup Set arg in superscript with a normal font size normal text arg markup Set all font related properties except the size to get the default normal text font no matter what font was used earlier normalsize arg markup Set font size to default note by number log number dot count number dir number Construct a note symbol with stem By using fractional values for dir you can obtain longer or shorter stems note duration string dir number This produces a note with a stem pointing in dir direction with the duration for the note head type and augmentation dots For example note 4 0 75 creates a dotted quarter note with a shortened down stem null An empty markup with extents of a single point Chapter 8 Advanced notation 170 number arg markup Set font fa
220. l be set correspondingly set default paper size a6 landscape Chapter 10 Output formats 219 10 1 4 Page formatting LilyPond will do page layout set margins and add headers and footers to each page The default layout responds to the following settings in the paper block firstpagenumber The value of the page number of the first page Default is 1 printfirstpagenumber If set to true will print the page number in the first page Default is false printpagenumber If set to false page numbers will not be printed hsize The width of the page vsize The height of the page topmargin Margin between header and top of the page bottommargin Margin between footer and bottom of the page leftmargin Margin between the left side of the page and the beginning of the music linewidth The length of the systems headsep Distance between the top most music system and the page header footsep Distance between the bottom most music system and the page footer raggedbottom If set to true systems will not be spread across the page This should be set false for pieces that have only two or three systems per page for example orchestral scores raggedlastbottom If set to false systems will be spread to fill the last page Pieces that amply fill two pages or more should have this set to true betweensystemspace This dimensions determines the distance between systems It is the ideal distance between the center of the
221. le uet Ae ira 94 Bem sey etta eset bos o f m 125 MID f de ed pa o aaa im Me tete 101 Noche E LUN Ede m a en ete cea 101 VERNO NINE INT 101 Neli lie lie ii a 105 addlytie8 i si satne ea i foi a TRE ERE 124 Naeoliano3 A ia ae na 84 NaikenHeadS olia iz ea dca ca 194 Nalternative l1ov la nE Ran 109 282 Napo ii IAEA ai 239 Napply out puters atra dida 239 Nar peggio mia Yen ede Eee E Ned 103 arpeggioBracket 00 104 arpeggioDown 104 VarpeggioNeutral 104 NarpeggioUD s aria 104 Nascendens uolo ntl turi tue e Ea 156 Nc dist SG atte M ELM IS 156 NautoBeam ff xosuliolvsode ds uva Niola e 200 NautoBeamOn 200 Nin cech iom de de o aa 87 A a A i TEM 225 breaki it a on MON ale dit 224 A i ddr AXI 76 cadenza0Dff iii e 88 Ncadenza n iii ia a a e reca a 88 Ncaesura cdi ilg Pez Shaan aah weds 150 NCLGfu coi Ma etc urn eene nci NENS 83 Ncontext til i sero e ient DRE b d uy 202 Xdeminutum i1 llego da p ILI UR 156 Xdescendens zoo Ru ERO oa A WERE RN dei 156 NdisplayMusie orilla dete SLE 234 NdivisioMaior ct REIS die p AS 150 divisioMaxima s see sos nainis 000 150 NdivisioMinima seene a ek ol at 150 NGO ran os c da ie lie 84 NdotsDOWl uz darai UNO p RS ala 77 XdotsNeutral s ss falle Aa ads TT A or RU sgh 4 Sa no 77 dynaicDowl pesani aT aS leoni 102 NdynamicNe tral f aaa 102 dynamicUp rh a ra
222. ligent The last chord f bes d is not interpreted as an inversion Note that the duration of chords must be specified outside the lt gt lt c e g gt 2 7 2 2 Chords mode In chord mode sets of pitches chords are entered with normal note names A chord is entered by the root which is entered like a normal pitch chordmode es4 d8 c2 The mode is introduced by the keyword chordmode Other chords may be entered by suffixing a colon and introducing a modifier which may include a number if desired chordmode el m e1 7 e1 m7 gt The first number following the root is taken to be the type of the chord thirds are added to the root until it reaches the specified number chordmode c 3 c 5 c 6 c 7 c 8 c 9 c 10 c 11 ber er Chapter 7 Instrument specific notation 120 More complex chords may also be constructed adding separate steps to a chord Additions are added after the number following the colon and are separated by dots chordmode c 5 6 c 3 7 8 c 3 6 13 eg Chord steps can be altered by suffixing a or sign to the number chordmode c 7 c 5 3 c 3 5 7 Removals are specified similarly and are introduced by a caret They must come after the additions chordmode c 3 c 775 c 973 5 Modifiers can be used to change pitches The following modifiers are supported m The minor chord This modifier
223. listed under See also in the Notation manual By clicking around in the program reference we can follow the flow of information within the program either forward like we did here or backwards following links like this e Fingering Fingering objects are created by Fingering engraver e Fingering engraver Music types accepted fingering event Chapter 9 Changing defaults 213 e fingering event Music event type fingering event is in Music expressions named FingerEvent This path goes against the flow of information in the program it starts from the output and ends at the input event The program reference can also be browsed like a normal document It contains a chapter on Music definitions on Translation and the Backend Every chapter lists all the definitions used and all properties that may be tuned 9 2 4 Layout interfaces The HTML page that we found in the previous section describes the layout object called Fingering Such an object is a symbol within the score It has properties that store numbers like thicknesses and directions but also pointers to related objects A layout object is also called a Grob which is short for Graphical Object For more details about Grobs see grob interface The page for Fingering lists the definitions for the Fingering object For example the page says padding dimension in staff space 0 6 which means that the number will be kept at a distance of at least 0 6 of the note head
224. llo ci Wnarkup hi there ci Wnarkup hi bold there is italic anyone home hello hi there is anyone home ei e gt e hi there See Section 8 1 7 Overview of text markup commands page 165 for a list of all commands markup is primarily used for TextScripts but it can also be used anywhere text is called in lilypond header title markup bold 4 foo italic bar b score relative c override Score RehearsalMark break visibility begin of line invisible override Score RehearsalMark self alignment X right set Staff instrument markup column Alto solo c2 markup don t be flat override TextSpanner edge text cons markup italic rit b2 startTextSpan a2 mark markup large bold Fine r2 stopTextSpan bar addlyrics bar foo markup italic bar x foo bar don t be rit Fine Alto solo bar foo bar The markup in the example demonstrates font switching commands The command bold and italic apply to the first following word only to apply a command to more than one word enclose the words with braces markup bold hi there For clarity you can also do this for single arguments e g Chapter 8 Advanced notation 163 markup is italic anyone home In markup mode you can compose expressions similar to mathematical expressions XML documents and mu
225. lowers the 3rd and if present the 7th step dim The diminished chord This modifier lowers the 3rd 5th and if present the 7th step aug The augmented chord This modifier raises the 5th step maj The major 7th chord This modifier raises the 7th step if present sus The suspended 4th or 2nd This modifier removes the 3rd step Append either 2 or 4 to add the 2nd or 4th step to the chord Modifiers can be mixed with additions chordmode c sus4 c 7sus4 c dim7 c m6 Since an unaltered 11 does not sound good when combined with an unaltered 3 the 11 is removed in this case unless it is added explicitly chordmode c 13 c 13 11 c m13 Chapter 7 Instrument specific notation 121 An inversion putting one pitch of the chord on the bottom as well as bass notes can be specified by appending pitch to the chord chordmode c1 c g c f A bass note can be added instead transposed out of the chord by using pitch chordmode c1 c g c f a ig Chords is a mode similar to lyricmode etc Most of the commands continue to work for example r and skip can be used to insert rests and spaces and property commands may be used to change various settings ele Bugs Each step can only be present in a chord once The following simply produces the augmented chord since 5 is interpreted last chordmode c 5 5 5 7 2 3 Printing chor
226. lur and tie Ini tially only one of these objects is created and they can be adjusted with the normal mechanism However in some cases the spanners cross line breaks If this happens these objects are cloned A separate object is created for every system that it is in These are clones of the original object and inherit all properties including Noverrides In other words an Noverride always affects all pieces of a broken spanner To change only one part of a spanner at a line break it is necessary to hook into the formatting process The after line breaking callback property contains the Scheme procedure that is called after the line breaks have been determined and layout objects have been split over different systems In the following example we define a procedure my callback T his procedure e determines if we have been split across line breaks e if yes retrieves all the split objects e checks if we are the last of the split objects e if yes it sets extra offset This procedure is installed into Tie so the last part of the broken tie is translated up Chapter 9 Changing defaults 216 define my callback grob let have we been split orig ly grob original grob if yes get the split pieces our siblings siblings if ly grob orig l1y spanner broken into orig O if and gt length siblings 2 eq car last pair siblings grob ly grob set property grob extra offset 2 5
227. m are only used in the Mutopia project they don t affect the printed output at all They are used if you want the piece to be listed with different information in the Mutopia database than you wish to have printed on the music For example Mutopia lists the composer of the famous D major violin concerto as TchaikovskyPI whereas perhaps you wish to print Petr Tchaikowski on your music The linewidth is for header version 2 6 0 header dedication dedication title Title subtitle Subtitle subsubtitle Subsubtitle composer Composer xxxx yyyy opus Opus 0 piece Piece I meter meter instrument Instrument arranger Arranger poet Poet texttranslator Translator copyright public domain These are headers used by the Mutopia Project http www mutopiaproject org mutopiatitle mutopiacomposer mutopiapoet mutopiainstrument date composer s dates source urtext maintainer your name here maintainerEmail your email here maintainerWeb your home page lastupdated 2004 Aug 26 score c4 header piece piecel opus opusi 3 score c4 header piece piece2 opus opus2 Chapter 3 Example templates 57 piece2 opus2 3 7 2 Gregorian template This example demonstrates how to do modern transcriptions of Gregorian music Gregorian music has no measure no stems it uses only half and
228. mented timing If set to true the above variables are updated for every time step When set to false the engraver stays in the current measure indefinitely Timing can be changed by setting any of these variables explicitly In the next example the 4 4 time signature is printed but measureLength is set to 5 4 After a while the measure is shortened by 1 8 by setting measurePosition to 7 8 at 2 4 in the measure so the next bar line will fall at 2 4 3 8 The 3 8 arises because 5 4 normally has 10 8 but we have manually set the measure position to be 7 8 and 10 8 7 8 3 8 set Score measureLength ly make moment 5 4 ci c4 ci c4 c4 c4 set Score measurePosition ly make moment 7 8 b8 bb c4 ci gt ts 4 44444 8 4 3 Clusters A cluster indicates a continuous range of pitches to be played They can be denoted as the envelope of a set of notes They are entered by applying the function makeClusters to a sequence of chords e g makeClusters lt c e gt b f Chapter 8 Advanced notation 190 The following example from input regression cluster 1y shows what the result looks like Ordinary notes and clusters can be put together in the same staff even simultaneously In such a case no attempt is made to automatically avoid collisions between ordinary notes and clusters See also Program reference ClusterSpanner ClusterSpannerBeac
229. mily to number which yields the font used for time signatures and finger ings This font only contains numbers and some punctuation It doesn t have any letters on the fly procedure symbol arg markup Apply the procedure markup command to arg procedure should take a single argument override new prop pair arg markup Add the first argument in to the property list Properties may be any sort of property supported by font interface and text interface for example override font family married bla postscript str string This inserts str directly into the output as a PostScript command string Due to technicalities of the output backends different scales should be used for the TEX and PostScript backend selected with f For the TeX backend the following string prints a rotated text O 0 moveto ecrm10 findfont 1 75 scalefont setfont 90 rotate hello show The magical constant 1 75 scales from LilyPond units staff spaces to TeX dimen sions For the postscript backend use the following gsave ecrm10 findfont 10 0 output scale div scalefont setfont 90 rotate hello show grestore raise amount number arg markup Raise arg by the distance amount A negative amount indicates lowering see also lower ci Wnarkup C small raise 1 0 bold 9 7 C 9 74 The argument to Nraise is the vertical displacement amount measured in global staff spaces raise and super raise o
230. ms for typesetting text like ritardando and selecting different fonts This chapter also discusses these Internally LilyPond uses Scheme a LISP dialect to provide infrastructure Overriding layout decisions in effect accesses the program internals which requires Scheme input Scheme elements are introduced in a 1y file with the hash mark 9 1 Interpretation contexts When music is printed a lot of notational elements must be added to the input which is often bare bones For example compare the input and output of the following example cis4 cis2 g4 The input is rather sparse but in the output bar lines accidentals clef and time signature are added LilyPond interprets the input During this step the musical information is inspected in time order similar to reading a score from left to right While reading the input the program remembers where measure boundaries are and what pitches need explicit accidentals This information can be presented on several levels For example the effect of an accidental is limited to a single staff while a bar line must be synchronized across the entire score Within LilyPond these rules and bits of information are grouped in so called Contexts Examples of context are Voice Staff and Score They are hierarchical for example a Staff can contain many Voices and a Score can contain many Staff contexts Each context has the responsibility for enforcing some notation rul
231. n 2 6 0 include piece ly score keepWithTag vn2 music layout hhhhh vla ly version 2 6 0 include piece ly score keepWithTag vla music layout AAhhh Vlc ly Chapter 3 Example templates 41 version 2 6 0 include piece ly score keepWithTag vlc music layout 3 4 Vocal ensembles 3 4 1 SATB vocal score Here is a standard four part SATB vocal score With larger ensembles it s often useful to include a section which is included in all parts For example the time signature and key signatures are almost always the same for all parts Nversion 2 6 0 global key c major time 4 4 sopMusic relative c 4 c4 c c8 b c4 sopWords lyricmode hi hi hi hi altoMusic relative c el f de altoWords lyricmode ha ha ha ha tenorMusic relative c gia fg tenorWords lyricmode hu hu hu hu bassMusic relative c c4 cgc bassWords lyricmode ho ho ho ho score context ChoirStaff lt lt context Lyrics sopranos s1 context Staff women lt lt Chapter 3 Example templates 42 context Voice sopranos 1 voiceOne lt lt global sopMusic gt gt context Voice altos voiceTwo lt lt global altoMusic gt gt gt gt context Lyrics altos s1 context Lyrics tenors s1 context Staff men lt lt clef bass context Voice
232. n the same staff Chapter 6 Basic notation 105 6 6 1 Basic polyphony The easiest way to enter fragments with more than one voice on a staff is to enter each voice as a sequence with and combine them simultaneously separating the voices with new Staff relative c c16 d e f lt lt g4 fe d2 e2 r8 e4 d c8 c b16 a b8g g2 s2 s4 b4 c2 y gt gt dii ad The separator causes Voice contexts to be instantiated They bear the names 1 2 etc In each of these contexts vertical direction of slurs stems etc is set appropriately These voices are all seperate from the voice that contains the notes just outside the lt lt NN gt gt construct This should be noted when making changes at the voice level This also means that slurs and ties cannot go into or out of a lt lt gt gt construct Conversely parallel voices from separate lt lt gt gt constructs on the same staff are the the same voice Here is the same example with different noteheads for each voice Note that the change to the note head style in the main voice does not affect the inside of the lt lt NN gt gt constructs Also the change to the second voice in the first lt lt gt gt construct is effective in the second lt lt gt gt and the voice is tied accross the two constructs new Staff relative c override NoteHead style cross c16 def lt
233. ndo ly Bugs Printing text over the line such as gliss is not supported 6 5 7 Arpeggio You can specify an arpeggio sign also known as broken chord on a chord by attaching an arpeggio to a chord lt c e g c gt arpeggio A square bracket on the left indicates that the player should not arpeggiate the chord arpeggioBracket c e g c gt arpeggio rise The direction of the arpeggio is sometimes denoted by adding an arrowhead to the wiggly line Chapter 6 Basic notation 104 context Voice arpeggioUp lt c e g c gt arpeggio arpeggioDown lt c e g c gt arpeggio Commonly tweaked properties When an arpeggio crosses staves you may attach an arpeggio to the chords in both staves and set PianoStaff connectArpeggios context PianoStaff lt lt set PianoStaff connectArpeggios t new Staff lt c e g c gt arpeggio new Staff clef bass lt c e g gt arpeggio gt gt Predefined commands arpeggio NarpeggioUp arpeggioDown NarpeggioNeutral NarpeggioBracket See also Notation manual Section 6 4 1 Ties page 91 for writing out arpeggios Program reference Arpeggio Bugs It is not possible to mix connected arpeggios and unconnected arpeggios in one PianoStaff at the same point in time 6 6 Polyphony Polyphony in music refers to having more than one voice occuring in a piece of music Polyphony in LilyPond refers to having more than one voice o
234. neomensural c2 neomensural c3 neomensural c4 petrucci style mensural C clefs for use petrucci c1 petrucci c2 on different staff lines the examples petrucci c3 petrucci c4 show the 2nd staff line C clef petrucci c5 petrucci style mensural F clef petrucci f petrucci style mensural G clef petrucci g ft amt MA Chapter 7 Instrument specific notation historic style mensural C clef historic style mensural F clef historic style mensural G clef Editio Vaticana style do clef Editio Vaticana style fa clef Editio Medicaea style do clef Editio Medicaea style fa clef historic style hufnagel do clef mensural ci mensural c2 mensural c3 mensural c4 mensural f mensural g vaticana doi1 vaticana do2 vaticana do3 vaticana fal vaticana fa2 medicaea doi medicaea do2 medicaea do3 medicaea fal nedicaea fa2 hufnagel do1 hufnagel do2 hufnagel do3 A XL A I 145 Chapter 7 Instrument specific notation 146 historic style hufnagel fa clef hufnagel fal hufnagel fa2 historic style hufnagel combined do fa hufnagel do fa clef f 9 T Modern style means as is typeset in contemporary editions of transcribed mensural music Petrucci style means inspired by printings published by the famous engraver Petrucci 1466 1539 Historic style means as was typeset or written in historic editions other than those of Petrucci Editio XXX style means as is was printed in Editio X
235. ng collisions are NoteCollision and RestCollision Examples input regression collision dots ly input regression collision head chords 1ly input regression collision heads 1ly input regression collision mesh 1ly and input regression collisions 1ly Bugs When using merge differently headed with an upstem eighth or a shorter note and a down stem half note the eighth note gets the wrong offset There is no support for clusters where the same note occurs with different accidentals in the same chord In this case it is recommended to use enharmonic transcription or to use special cluster notation see Section 8 4 3 Clusters page 189 6 7 Repeats Repetition is a central concept in music and multiple notations exist for repetitions 6 7 1 Repeat types The following types of repetition are supported unfold Repeated music is fully written played out This is useful when entering repetitious music This is the only kind of repeat that is included in MIDI output volta Repeats are not written out but alternative endings volte are printed left to right with brackets This is the standard notation for repeats with alternatives These are not played in MIDI output by default tremolo Make tremolo beams These are not played in MIDI output by default percent Make beat or measure repeats These look like percent signs These are not played in MIDI output by default Percent repeats must be declared
236. ng the general class of the typeface Supported are roman Computer Modern sans and typewriter e font shape is a symbol indicating the shape of the font There are typically several font shapes available for each font family Choices are italic caps and upright e font series is a symbol indicating the series of the font There are typically several font series for each font family and shape Choices are medium and bold Fonts selected in the way sketched above come from a predefined style sheet If you want to use a font from outside the style sheet then set the font name property override Staff TimeSignature font name Times override Staff TimeSignature font size 2 time 3 4 c 1_ markup override font name Vera Bold This text is in Vera Bold O This text is in Vera Bold Chapter 8 Advanced notation 173 Any font can be used as long as it is available to Pango Font Config The size of the font may be set with the font size property The resulting size is taken relative to the text font size as defined in the paper block See also Init files ly declarations init 1ly contains hints how new fonts may be added to LilyPond 8 1 9 New dynamic marks It is possible to print new dynamic marks or text that should be aligned with dynamics Use make dynamic script to create these marks sfzp make dynamic script sfzp relative c c4 c c sfzp c
237. noexec it is impossible to execute any external program Therefore LilyPond must be run with a backend that does not require any such program As we already mentioned it must be also run with superuser privileges which of course it will lose imme diately possibly using sudo It is a good idea to limit the number of seconds of CPU time LilyPond can use e g using ulimit t and if your operating system supports it the amount of memory that can be allocated V version Show version information V verbose Be verbose show full paths of all files read and give timing information Chapter 5 Running LilyPond 67 w warranty Show the warranty with which GNU LilyPond comes It comes with NO WAR RANTY 5 3 Environment variables Lilypond recognizes the following environment variables LILYPONDPREFIX This specifies a directory where locale messages and data files will be looked up by default The directory should contain subdirectories called 1y ps tex etc LANG This selects the language for the warning messages 5 4 Error messages Different error messages can appear while compiling a file Warning Something looks suspect If you are requesting something out of the ordinary then you will understand the message and can ignore it However warnings usually indicate that something is wrong with the input file Error Something is definitely wrong The current processing step parsing interpr
238. ntext RemoveEmptyStaffContext override Stem thickness 4 0 9 1 6 Defining new contexts Specific contexts like Staff and Voice are made of simple building blocks and it is possible to compose engraver plug ins in different combinations thereby creating new types of contexts The next example shows how to build a different type of Voice context from scratch It will be similar to Voice but prints centered slash noteheads only It can be used to indicate improvisation in Jazz pieces ad lib undress while playing Chapter 9 Changing defaults 209 These settings are again done within a context block inside a layout block layout context In the following discussion the example input shown should go on the in the previous fragment First the context gets a name Instead of Voice it will be called ImproVoice name ImproVoice Since it is similar to the Voice we want commands that work on existing Voices to remain working This is achieved by giving the new context an alias Voice alias Voice The context will print notes and instructive texts consists Note_heads_engraver consists Text_engraver but only on the center line consists Pitch_squash_engraver squashedPosition 0 The Pitch_squash_engraver modifies note heads created by Note_heads_engraver and sets their vertical position to the value of squashedPosition in this case 0 the center line The notes look lik
239. nvenient these are rests that do not print They are useful for filling up voices that temporarily do not play Here is the same example with a spacer rest s instead of a normal rest r lt lt al g2 47 4 NN s4 g4 f2 f4 gt gt Again these expressions can be nested arbitrarily lt lt new Staff lt lt a4 g2 4 f4 NN s g4 f2 f4 gt gt new Staff lt lt clef bass lt c g gt 1 lt c pod FX e 4 d e2 e4 gt gt gt gt More features of polyphonic typesetting are described in this manual in section Section 6 6 Polyphony page 104 Chapter 2 Tutorial 27 2 17 Piano staves Piano music is typeset in two staves connected by a brace Printing such a staff is similar to the polyphonic example in Section 2 8 More staves page 19 lt lt new Staff new Staff gt gt but now this entire expression must be interpreted as a PianoStaff new PianoStaff lt lt new Staff gt gt Here is a small example new PianoStaff lt lt new Staff time 2 4 c4 c g g new Staff clef bass c c ec gt gt da EE Ff More information on formatting piano music is given in Section 7 1 Piano music page 115 2 18 Organizing larger pieces When all of the elements discussed earlier are combined to produce larger files the Nscore blocks get a lot bigger because the music expressions
240. nzas for example this is not desirable To turn off automatic bar lines and bar numbers use the commands cadenzaOn and cadenza0ff c4ded cadenzaOn c4 c d8 d d f4 g4 cadenza0ff bar d4edc Bugs LilyPond will only insert page breaks at a barline Unless the unmetered music ends before the end of the staff line you will need to insert invisible bar lines bar nu to indicate where line breaks can occur Chapter 6 Basic notation 89 6 3 7 System start delimiters Many scores consist of more than one staff These staves can be joined in four different ways e The group is started with a brace at the left and bar lines are connected This is done with the GrandStaff context new GrandStaff relative lt lt new Staff c1 c new Staff cc gt gt e The group is started with a bracket and bar lines are connected This is done with the StaffGroup context new StaffGroup relative lt lt new Staff c1 c new Staff c c gt gt e The group is started with a bracket but bar lines are not connected This is done with the ChoirStaff context new ChoirStaff relative lt lt new Staff c1 c new Staff c c gt gt e The group is started with a vertical line Bar lines are not connected This is the default for the score Chapter 6 Basic notation 90 relative lt lt
241. ocessed 12 7 Filename extensions You can use any filename extension for the input file but if you do not use the recommended extension for a particular format you may need to manually specify the output format See Section 12 6 Invoking lilypond book page 247 for details Otherwise lilypond book auto matically selects the output format based on the input filename s extension extension output format html HTML itely Texinfo latex La TEX lytex La TEX tely Texinfo tex La TEX texi Texinfo texinfo Texinfo xml HTML Chapter 13 Converting from other formats 249 13 Converting from other formats Music can be entered also by importing it from other formats This chapter documents the tools included in the distribution to do so There are other tools that produce LilyPond input for example GUI sequencers and XML converters Refer to the website http lilypond org for more details 13 1 Invoking midi2ly midi21y translates a Type 1 MIDI file to a LilyPond source file MIDI Music Instrument Digital Interface is a standard for digital instruments it specifies cabling a serial protocol and a file format The MIDI file format is a de facto standard format for exporting music from other programs so this capability may come in useful when importing files from a program that has a convertor for a direct format midi21y converts tracks into Staff and channels into Voic
242. oet opus Name of the opus flush right below the composer arranger Name of the arranger flush right below the opus instrument Name of the instrument centered below the arranger Also centered at the top of pages other than the first page piece Name of the piece flush left below the instrument breakbefore This forces the title to start on a new page set to t or f copyright Copyright notice centered at the bottom of the first page To insert the copyright symbol see Section 8 1 5 Text encoding page 164 tagline Centered at the bottom of the last page Here is a demonstration of the fields available Note that you may use any Section 8 1 4 Text markup page 162 commands in the header paper 1 linewidth 9 0 cm vsize 10 0 cm Chapter 10 Output formats book header 4 dedication dedicated to me 227 title markup center align Title first line Title second line longer subtitle the subtitle subsubtitle string append subsubtitle LilyPond version lilypond version poet Poet composer markup center align composer small 1847 1973 texttranslator Text Translator meter markup teeny m tiny e normalsize t large e huge r arranger Arranger opus markup fontsize 8 5 o fontsize 2 5 p instrument markup bold italic instrument piece Piece score c1 header piece pi
243. of formatting options and all of them are described in this document Each section of the notation manual has a See also subsection which refers to the generated documentation In the HTML document these subsections have clickable links e Various input examples This collection of files shows various tips and tricks and is available as a big HTML docu ment with pictures and explanatory texts included e he regression tests This collection of files tests each notation and engraving feature of LilyPond in one file The collection is primarily there to help us debug problems but it can be instructive to see how we exercise the program The format is similar to the tips and tricks document In all HTML documents that have music fragments embedded the LilyPond input that was used to produce that image can be viewed by clicking the image 1 If you are looking for something and you cannot find it in the manual that is considered a bug In that case please file a bug report Chapter 1 Introduction 10 The location of the documentation files that are mentioned here can vary from system to system On occasion this manual refers to initialization and example files Throughout this manual we refer to input files relative to the top directory of the source archive For example input test bla ly may refer to the file lilypond 2 6 0 input test bla ly On binary packages for the Unix platform the documentation and examples can typ
244. of that section if known or else a unique number Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work In the combination you must combine any sections entitled History in the various original documents forming one section entitled History likewise combine any sections entitled Acknowledgments and any sections entitled Dedications You must delete all sections entitled Endorsements 6 COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License and replace the individual copies of this License in the various documents with a single copy that is included in the collection provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects You may extract a single document from such a collection and distribute it individually under this License provided you insert a copy of this License into the extracted document and follow this License in all other respects regarding verbatim copying of that document 7 AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works in or on a volume of a storage or distribution medium does not as a whole count as a Modified Version of the Document provided no compilation copyright is claimed for the compilation Such
245. olid z issius sla rea lea ita 92 A edi eS qu ee e ern 92 Wimme cei Nauta user dU oet AA 85 NEIDIBSIo tamm o Sask feck e le te Be an Grd d oet e ee trs TT NG ANY foo ia A AA 218 Ntranspose b wee ere rere lata 80 NttipLetDown s vede idera RT der b Net 77 N upletNeutral weeg e E iros 77 NtuplestUp ti AA IS 77 NunfoldRepeatS mi tis a aa 111 NunHideNotes i il elle RELY ME is 193 N nSeto liane ail dome E eo OES 204 NVA TAs iet duce m iate nee Ee ta Gade e 156 AA uuu tcu utei eer Deseos 150 wvoiCeFour i dud ib E EA 108 Nvoice0ne se scree eek 9D X3 ee IT dus 108 NVvoiceThree 108 VOL E ani 108 UA ali en S He e lit abe 81 TA week naam awa uana ead Sih dae gue pu 91 1 TO Tai ete hot pie lana eee 180 A ABC rieletto Laetitia ba 250 ACCOM EG ira a ri 98 ACCES cile er aaa ed ER 20 accessing Scheme 0 cess eee eee 253 ACCIACCAUUTR mex WE ge hore ERE UNS 23 95 Accidental i v y pu END ec 143 198 Accidental_engraver 198 AccidentalPlacement 198 accidentals ia enpasis NA II 15 143 additions in chords 120 adjusting Output cae AS E e SR es 10 adjusting staff symbol 90 All Layout objects eL HRS ra 207 allowBeamBreak i ci kde Sage EER DO 94 altosclef oso ex reset vt en 83 ambitus ee eR Ii MAI DEM 133 Anbituss A AA SC 134 Ambitus engraver
246. on Cluster_spanner_engraver Examples input regression cluster ly Bugs Music expressions like lt lt g8 e8 a4 gt gt are not printed accurately Use lt g a gt 8 lt e a gt 8 instead 8 4 4 Special fermatas In contemporary music notation special fermata symbols denote breaks of differing lengths The following fermatas are supported A A i Gee dp sese shortfermata fermata longfermata verylongfermata See Section 6 5 1 Articulations page 97 for general instructions how to apply scripts such as fermatas to notes 8 4 5 Special noteheads Different noteheads are used by various instruments for various meanings crosses are used for parlato with vocalists stopped notes on guitar diamonds are used for harmonics on string instruments etc There is a shorthand harmonic for diamond shapes the other notehead styles are produced by tweaking the property c4 d override NoteHead style cross e f revert NoteHead style e d lt c f harmonic gt lt d a harmonic gt To see all notehead styles please see input regression note head style ly Chapter 8 Advanced notation 191 See also Program reference NoteHead 8 4 6 Feathered beams Feathered beams are not supported natively but they can be faked by forcing two beams to overlap Here is an example new Staff lt lt new Voice stemUp once override Voice Beam positions
247. ond finger Where a barre indicator is desired follow the fret or fingering symbol with to start a barre and to end the barre fret diagram verbose marking list list Make a fret diagram containing the symbols indicated in marking list For example Chapter 8 Advanced notation 168 markup fret diagram mute 6 mute 5 open 4 place fret 3 2 place fret 2 3 place fret 1 2 will produce a standard D chord diagram without fingering indications Possible elements in marking list mute string number Place a small x at the top of string string number open string number Place a small o at the top of string string number barre start string end string fret number Place a barre indicator much like a tie from string start stringto string end string at fret fret number place fret string number fret number finger value Place a fret playing indication on string string number at fret fret number with an optional fingering label finger value By default the fret playing indicator is a solid dot This can be changed by setting the value of the variable dot color If the finger part of the place fret element is present finger value will be displayed according to the set ting of the variable finger code There is no limit to the number of fret indications per string fromproperty symbol symbol Read the symbol from property settings and produce a stencil from the markup contained within
248. only the denominator but if it is set to the Scheme function fraction tuplet formatter num den will be printed instead See also Program reference TupletBracket and TimeScaledMusic Bugs Nested tuplets are not formatted automatically In this case outer tuplet brackets should be moved manually which is demonstrated in input regression tuplet nest ly 6 1 11 Scaling durations You can alter the length of duration by a fraction N M appending N M or N if M 1 This will not affect the appearance of the notes or rests produced In the following example the first three notes take up exactly two beats but no triplet bracket is printed time 2 4 a4 2 3 gis4 2 3 a4 2 3 a4 a4 a4 2 b16 4 c4 See also This manual Section 6 1 10 Tuplets page 77 6 2 Alternate music entry This section deals with tricks and features of the input language that were added solely to help entering music and finding and correcting mistakes There are also external tools that make debugging easier See Appendix D Point and click page 271 for more information It is also possible to enter and edit music using other programs such as GUI interfaces or MIDI sequencers Refer to the LilyPond website for more information Chapter 6 Basic notation 79 6 2 1 Relative octaves Octaves are specified by adding and to pitch names When you copy existing music it is easy to accidentally put a pitch in the wrong oc
249. ontext ChordNames set chordChanges t harmonies context Voice one autoBeam0Off melody lyricsto one new Lyrics text gt gt layout midi tempo 4 60 A C pp e Aaa Bee Cee Dee 3 2 Piano templates 3 2 1 Solo piano Here is a simple piano staff Version 2 6 0 upper relative c clef treble key c major time 4 4 32 Chapter 3 Example templates 33 abcd lower relative c clef bass key c major time 4 4 a2 c score context PianoStaff lt lt set PianoStaff instrument Piano context Staff upper upper context Staff lower lower gt gt layout midi tempo 4 60 Pian 3 2 2 Piano and melody with lyrics Here is a typical song format one staff with the melody and lyrics with piano accompaniment underneath version 2 6 0 melody relative c clef treble key c major time 4 4 abcd text lyricmode Aaa Bee Cee Dee 3 upper relative c clef treble key c major time 4 4 Chapter 3 Example templates 34 abcd lower relative c clef bass key c major time 4 4 a2 c p score lt lt context Voice mel autoBeam0Off melody lyricsto mel new Lyrics text context PianoStaff lt lt context Staff upper upper context Staff lower lower gt gt gt gt layout context RemoveEmptyStaffContext midi
250. ontexts The predefined VaticanaVoiceContext and VaticanaStaffContext can be used to engrave a piece of Gregorian Chant in the style of the Editio Vaticana These contexts initialize all relevant context properties and grob properties to proper values so you can immediately go ahead entering the chant as the following excerpt demonstrates include gregorian init ly score lt lt context VaticanaVoice cantus override Staff StaffSymbol color red override Staff LedgerLineSpanner color red override Score BarNumber transparent t c melisma c flexa a a flexa deminutum g melismaEnd f divisioMinima f melisma pes a c c pes d melismaEnd c divisioMinima break VT c melisma c flexa a NM a flexa deminutum g melismaEnd f divisioMinima lyricsto cantus new Lyrics San ctus San ctus San ctus 3 gt gt San ctus San ctus n San ctus Chapter 7 Instrument specific notation 157 7 7 12 Mensural contexts The predefined MensuralVoiceContext and MensuralStaffContext can be used to engrave a piece in mensural style These contexts initialize all relevant context properties and grob properties to proper values so you can immediately go ahead entering the chant as the following excerpt demonstrates score lt lt context MensuralVoice discantus transpose c c override Score BarNumbe
251. oot which is usually accomplished in a safe way using sudo Setting up a jail is a slightly delicate matter as we must be sure that LilyPond is able to find whatever it needs to compile the source inside the jail A typical setup comprises the following items Setting up a separate filesystem A separate filesystem should be created for LilyPond so that it can be mounted with safe options such as noexec nodev and nosuid In this way it is impossible to run executables or to write directly to a device from LilyPond If you do not want to create a separate partition just create a file of reasonable size and use it to mount a loop device A separate filesystem also guarantees that LilyPond cannot write more space than it is allowed Setting up a separate user A separate user and group say lily lily with low privileges should be used to run LilyPond inside the jail There should be a single directory writable by this user which should be passed in dir Preparing the jail LilyPond needs to read a number of files while running All these files are to be copied into the jail under the same path they apper in the real root filesystem The entire content of the LilyPond installation e g usr share lilypond should be copied If problems arise the simplest way to trace them down is to run Lily Pond using strace which will allow you to determine which files are missing Running LilyPond In a jail mounted with
252. operties can be accessed and manipulated directly through the applymusic mechanism The syntax for applymusic is applymusic func music This means that the Scheme function func is called with music as its argument The return value of func is the result of the entire expression func may read and write music properties using the functions ly music property and ly music set property An example is a function that reverses the order of elements in its argument define rev music 1 m ly music set property m elements reverse ly music property m elements m applymusic rev music 1 c4 d 4 The use of such a function is very limited The effect of this function is void when applied to an argument that does not have multiple children The following function application has no effect applymusic rev music 1 grace c4 d4 In this case grace is stored as GraceMusic which has no elements only a single element Every generally applicable function for applymusic must like music expressions themselves be recursive The following example is such a recursive function It first extracts the elements of an expression reverses them and puts them back Then it recurses both on elements and element children define reverse music music let elements ly music property music elements child ly music property music element reversed reverse elements set children ly music set pr
253. operty music elements reversed recurse if ly music child reverse music child map reverse music reversed music A slightly more elaborate example is in input test reverse music 1ly Some of the input syntax is also implemented as recursive music functions For example the syntax for polyphony Chapter 11 Interfaces for programmers 234 lt lt a b gt gt is actually implemented as a recursive function that replaces the above by the internal equivalent of lt lt context Voice 1 voiceOne a context Voice 2 voiceTwo b gt gt Other applications of applymusic are writing out repeats automatically input test unfold all repeats ly saving keystrokes input test music box ly and exporting LilyPond input to other formats eg input no notation to xml 1ly See also scm music functions scm scm music types scm input test add staccato ly input test unfold all repeats ly and input test music box ly 11 1 5 Displaying music expressions When writing a music function it is often instructive to inspect how a music expression is stored internally This can be done with the music function displayMusic 1 displayMusic c 4 f 11 1 6 Using LilyPond syntax inside Scheme Creating music expressions in Scheme can be tedious as they are heavily nested and the resulting Scheme code is large For some simple tasks this can be avoided us
254. ordion accDot accordion accFreebase accordion accStdbase accordion accBayanbase accordion accOldEE l rests M3neomensural rests M2neomensural 1 rests Mlneomensural rests Oneomensural rests lneomensural r rests 2neomensural 1 rests 3neomensural 4 rests 4neomensural rests M3mensural rests M2mensural rests Mlmensural rests Omensural rests lmensural r rests 2mensural rests 3mensural a rests 4mensural E noteheads slneomensural noteheads sM3neomensural noteheads sM2neomensural EX noteheads sMlneomensural noteheads sOharmonic noteheads sOneomensural noteheads slneomensural noteheads s2neomensural F noteheads slmensural noteheads sM3mensural Appendix C Notation manual details i noteheads sM2mensural noteheads sOmensural noteheads s2mensural noteheads slpetrucci 265 B noteheads sMImensural noteheads slmensural Y noteheads sOpetrucci 4 noteheads s2petrucci a noteheads svaticana punctum a noteheads svaticana punctum cavum a noteheads svaticana linea punctum a noteheads svaticana linea punctum cavum noteheads svaticana inclinatum noteheads svaticana vlpes noteheads svaticana vupes noteheads svaticana lpes noteheads svaticana upes noteheads svaticana plica noteheads svaticana vplica noteheads svaticana epiphonus noteheads svaticana vepiphonus noteheads svaticana reverse plica noteheads s
255. ormers The contexts for MIDI output are defined in 1y performer init ly 10 2 3 MIDI instrument names The MIDI instrument name is set by the Staff midilnstrument property The instrument name should be chosen from the list in Section C 2 MIDI instruments page 256 set Staff midilnstrument glockenspiel notes If the selected instrument does not exactly match an instrument from the list of MIDI in struments the Grand Piano acoustic grand instrument is used Chapter 11 Interfaces for programmers 231 11 Interfaces for programmers 11 1 Programmer interfaces for input 11 1 1 Input variables and Scheme The input format supports the notion of variables in the following example a music expression is assigned to a variable with the name traLaLa traLaLa c 4 d 4 There is also a form of scoping in the following example the layout block also contains a traLaLa variable which is independent of the outer traLaLa traLaLa c 4 d 4 layout traLaLa 1 0 In effect each input file is a scope and all header midi and layout blocks are scopes nested inside that toplevel scope Both variables and scoping are implemented in the GUILE module system An anonymous Scheme module is attached to each scope An assignment of the form traLaLa c 4 d 4 is internally converted to a Scheme definition define traLaLa Scheme value of This means that input variables and Scheme va
256. ot printed but all its other behavior is retained The object still takes up space it takes part in collisions and slurs ties and beams can be attached to it The following example demonstrates how to connect different voices using ties Normally ties only connect two notes in the same voice By introducing a tie in a different voice and blanking the first up stem in that voice the tie appears to cross voices lt lt once override Stem transparent t b8 b8 noBeam IAA b g8 gt gt e The padding property for objects with side position interface can be set to increase the distance between symbols that are printed above or below notes We provide two examples a more elaborate explanation is in Section 9 2 2 Constructing a tweak page 212 c2 fermata override Script padding 3 b2 fermata FA A c This will not work see below override MetronomeMark padding 3 tempo 4 120 ci This works override Score MetronomeMark padding 3 tempo 4 80 di 4 80 4 120 Chapter 9 Changing defaults 212 Note in the second example how important it is to figure out what context handles a certain object Since the MetronomeMark object is handled in the Score context property changes in the Voice context will not be noticed More specific overrides are also possible The next section discusses in depth how to figure out these statements for yourself
257. otes 6 4 1 Ties A tie connects two adjacent note heads of the same pitch The tie in effect extends the length of a note Ties should not be confused with slurs which indicate articulation or phrasing slurs which indicate musical phrasing A tie is entered using the tilde symbol e x e c e g gt c e g gt lt When a tie is applied to a chord all note heads whose pitches match are connected When no note heads match no ties will be created A tie is just a way of extending a note duration similar to the augmentation dot The following example shows two ways of notating exactly the same concept O Ties are used either when the note crosses a bar line or when dots cannot be used to denote the rhythm When using ties larger note values should be aligned to subdivisions of the measure eg not Co mE 4 x L If you need to tie a lot of notes over bars it may be easier to use automatic note splitting see Section 6 2 6 Automatic note splitting page 82 This mechanism automatically splits long notes and ties them across bar lines Commonly tweaked properties Ties are sometimes used to write out arpeggios In this case two tied notes need not be consecutive This can be achieved by setting the tieWaitForNote property to true The same feature is also useful for example to tie a tremolo to a chord For example set tieWaitForNote t
258. perty repeatCommands can be used to control the layout of repeats Its value is a Scheme list of repeat commands start repeat Print a bar line end repeat Print a bar line volta text Print a volta bracket saying text The text can be specified as a text string or as a markup text see Section 8 1 4 Text markup page 162 Do not forget to change the font as the default number font does not contain alphabetic characters volta f Stop a running volta bracket c4 set Score repeatCommands volta 93 end repeat c4 c4 set Score repeatCommands volta f c4 c4 93 erdertir See also Program reference VoltaBracket RepeatedMusic VoltaRepeatedMusic UnfoldedRepeatedMusic and FoldedRepeatedMusic 6 7 5 Tremolo repeats To place tremolo marks between notes use repeat with tremolo style new Voice relative c repeat tremolo 8 c16 d16 repeat tremolo 4 c16 d16 repeat tremolo 2 c16 d16 Tremolo marks can also be put on a single note In this case the note should not be surrounded by braces Chapter 6 Basic notation 113 repeat tremolo 4 c 16 p Similar output is obtained using the tremolo subdivision described in Section 6 7 6 Tremolo subdivisions page 113 See also In this manual Section 6 7 6 Tremolo subdivisions page 113 Section 6 7 Repeats page 109 Program reference Beam StemTremolo Example files input reg
259. ple pitches i Name Input Language a Punctum NE b NI b Punctum Inclinatum VT Ninclinatum b c Punctum Auctum VT Nauctum Nascendens b V Ascendens d Punctum Auctum Nauctum Ndescendens b Descendens e Punctum Inclinatum inclinatum Nauctum b Auctum f Punctum Inclinatum VI Ninclinatum deminutum b Parvum g Virga NE Wirga b M h Stropha stropha b i Stropha Aucta stropha Nauctum b j Oriscus oriscus b k Clivis vel Flexa b flexa g M l Clivis Aucta b flexa auctum Ndescendens g V Descendens m Clivis Aucta b flexa Nauctum ascendens g Ascendens n Cephalicus b flexa Ndeminutum g o Podatus vel Pes g Npes b Pes Auctus Descendens Pes Auctus Ascendens Epiphonus Pes Quassus Pes Quassus Auctus Descendens Quilisma Pes Quilisma Pes Auctus Descendens Pes Initio Debilis Pes Auctus Descendens Initio Debilis Torculus Torculus Auctus Descendens Torculus Deminutus Torculus Initio Debilis Torculus Auctus Descendens Initio Debilis Torculus Deminutus Initio Debilis Porrectus Porrectus Auctus Descendens Porrectus Deminutus Climacus Climacus Auctus Climacus Deminutus Scandicus Scandicus Auctus Descendens Scandicus Deminutus Salicus Chapter 7 Instrument specific notation 155 g pes auctum descendens b g pes auctum Nascendens b NE g pes Ndeminutum b NV oriscus g Npes virga b oriscus g pes auctum d
260. pressions in a special safe module This safe module is derived from GUILE safe r5rs module but adds a number of functions of the LilyPond API These functions are listed in scm safe lily scm In addition safe disallows include directives and disables the use of backslashes in TEX strings In safe mode it is not possible to import LilyPond variables into Scheme safe does not detect resource overuse It is still possible to make the program hang indefinitely for example by feeding cyclic data structures into the backend Therefore if using LilyPond on a publicly accessible webserver the process should be limited in both CPU and memory usage Note that safe will prevent many useful LilyPond snippets from being compiled For a softer but secure alternative you can use the jail option Chapter 5 Running LilyPond 66 j jail user group jail dir Run LilyPond in a chroot jail The jail option provides a more flexible alternative to safe when LilyPond formatting is available through a web server or whenever LilyPond executes exter nally provided sources The jail option works by changing the root of LilyPond to jail just before starting the actual compilation process The user and group are then changed to match those provided and the current directory is changed to dir This setup guarantees that it is not possible at least in theory to escape from the jail Note that for jail to work LilyPond must be run as r
261. py distribute and or modify this document under the terms of the GNU Free Documentation License Version 1 1 or any later version published by the Free Software Foundation with the Invariant Sections being list their titles with the Front Cover Texts being list and with the Back Cover Texts being list A copy of the license is included in the section entitled GNU Free Documentation License If you have no Invariant Sections write with no Invariant Sections instead of saying which ones are invariant If you have no Front Cover Texts write no Front Cover Texts instead of Front Cover Texts being list likewise for Back Cover Texts If your document contains nontrivial examples of program code we recommend releasing these examples in parallel under your choice of free software license such as the GNU General Public License to permit their use in free software Appendix G LilyPond index Appendix G LilyPond index ELARIO Rail DL nia 74 trio den erre deceret e 253 JE a Eres e LODS petes p E 253 po PEE 253 A URP EN dete 254 set accidental style piano cautionary 197 9 Liuteria ta sede dip 73 begin k kE ees ioe ak lee eee EE eke 198 endok kx i alee a a 198 y yas re ideni etude 2 ALA Lai a EL Lia iii 73 CTI M DE tn a a days tote Or 77 OPERAI RI te ah RE ky he IERI PESO Sat Sg te 121 PR BS eA RO Seat IE ORO a e ro Mu am 121 ti vM Ep SM na 74 ost tech BA Mende eee E 94 bici Bia th Be
262. quarter notes and two types of barlines a short one indicating a rest and a second one indicating a breath mark barOne once override Staff BarLine bar size 2 bar barTwo once override Staff BarLine extra offset 0 2 once override Staff BarLine bar size 2 bar chant relative c set Score timing f override Staff Stem transparent t f4 a2 barTwo g4 a2 2 barOne g4 f f g a2 score chant layout midi tempo 4 60 3 8 Lilypond book templates These templates are for use with lilypond book If you re not familiar with this program please refer to Chapter 12 LilyPond book page 240 3 8 1 LaTeX You can include LilyPond fragments in a LaTeX document documentclass article usepackage graphics begin document Chapter 3 Example templates 58 Normal LaTeX text begin lilypond relative c al bcd T end lilypond More LaTeX text begin lilypond relative c d4 c ba end lilypond end document 3 8 2 Texinfo You can include LilyPond fragments in Texinfo in fact this entire manual is written in Texinfo input texinfo node Top Texinfo text lilypond verbatim fragment raggedright at bcd end lilypond More Texinfo text lilypond verbatim fragment raggedright d4cba end lilypond bye Chapter 4 Putting it all together 59 4 Putting it all together This
263. r transparent t c 1 melisma bes a g melismaEnd fNbreve f1 melisma a c breve d melismaEnd c longa c breve melisma al gi melismaEnd fis longa signumcongruentiae lyricsto discantus new Lyrics San ctus San ctus San ctus gt gt San 3 ctus Deo l a o R San z 2 ctus San E ctus 7 7 13 Figured bass LilyPond has limited support for figured bass lt lt context Voice clef bass dis4 c d ais g fis context FiguredBass figuremode lt 6 gt 4 lt 7 gt 8 lt 6 gt lt 6 4 lt 6 5 3 gt lt _ gt 4 lt 6 gt Chapter 7 Instrument specific notation 158 gt gt Sedano b BH 6 7 646 6 6 The support for figured bass consists of two parts there is an input mode introduced by figuremode where you can enter bass figures as numbers and there is a context called FiguredBass that takes care of making BassFigure objects In figures input mode a group of bass figures is delimited by lt and gt The duration is entered after the gt lt 4 6 gt 6 4 Accidentals are added when you append and to the numbers lt 4 6 T 7i 6 Ab Spaces or dashes may be inserted by using _ Brackets are introduced with and You can also include text strings and text markups see Section 8 1 7 Overview of text markup commands page 165 lt 46 8 _
264. r argument specifies the octave of the starting note where the default 1 is middle C LilyPond also uses lilypond book to produce its own documentation To do that some more obscure music fragment options are available verbatim The argument of a LilyPond command is copied to the output file and enclosed in a verbatim block followed by any text given with the intertext option not implemented yet then the actual music is displayed This option does not work well with lilypond if it is part of a paragraph texidoc Only for Texinfo output If lilypond is called with the header texidoc option and the file to be processed is called foo 1y it creates a file foo texidoc if there is a texidoc field in the header The texidoc option makes lilypond book include such files adding its contents as a documentation block right before the music snippet Assuming the file foo ly contains header texidoc This file demonstrates a single note c4 and we have this in our Texinfo document test texinfo lilypondfile texidoc foo ly the following command line gives the expected result lilypond book process lilypond format tex tex header texidoc test texinfo Most LilyPond test documents in the input directory of the distribution are small 1y files which look exactly like this printfilename If a LilyPond input file is included with lilypondfile print the file name right before
265. r of staves LilyPond looks at the first element If it is a single note there is one staff if there is a simultaneous expression there is more than one staff 1 c lt lt c e gt gt lt lt e f c lt lt b d gt gt gt gt Music files with deep nesting can be confusing to enter and maintain One convention that helps against this confusion is indenting When entering a file with deep nesting of braces and angles it is customary to use an indent that indicates the nesting level Formatting music like this eases reading and helps you insert the right number of closing braces at the end of an expression For example Chapter 2 Tutorial 19 lt lt 1 3 gt gt Some editors have special support for entering LilyPond and can help indenting source files See Section 5 7 Editor support page 70 for more information 2 8 More staves To print more than one staff each piece of music that makes up a staff is marked by adding new Staff before it These Staff elements are then combined in parallel with lt lt and gt gt as demonstrated here lt lt new Staff clef treble c new Staff clef bass c gt gt The command new introduces a notation context A notation context is an environment in which musical events like notes or clef commands are interpreted For simple pieces such notation contexts are created automatically For more complex pieces it
266. ral ligatures See Section 7 7 10 Ligatures page 150 for how ligature engravers work See also Examples input regression note head style ly gives an overview over all available note head styles 7 7 2 Ancient accidentals Use the style property of grob Accidental to select ancient accidentals Supported styles are mensural vaticana hufnagel and medicaea vaticana medicaea hufnagel mensural s Y p b bx As shown not all accidentals are supported by each style When trying to access an unsup ported accidental LilyPond will switch to a different style as demonstrated in input test ancient accidentals ly Similarly to local accidentals the style of the key signature can be controlled by the style property of the KeySignature grob See also In this manual Section 6 1 2 Pitches page 73 Section 6 1 3 Cautionary accidentals page 74 and Section 8 6 1 Automatic accidentals page 196 give a general introduction of the use of accidentals Section 6 3 2 Key signature page 84 gives a general introduction of the use of key signatures Program reference KeySignature Examples input test ancient accidentals ly 7 7 3 Ancient rests Use the style property of grob Rest to select ancient rests Supported styles are classical neomensural and mensural classical differs from the default style only in that the quarter rest looks like a horizontally mirrored 8th rest The neomensural style suits well for
267. red for following hyperlinks preferably using Mozilla Fire fox For Xpdf on Unix the following should be present in xpdfrc urlCommand firefox remote OpenURL s e Your web browser must be configured for the textedit protocol For Mozilla and Mozilla Firefox this is done by adding following lines to the user js user pref network protocol handler app textedit lilypond invoke editor user pref network protocol handler warn external textedit false The program lilypond invoke editor is a small helper program It tests the environment variable EDITOR for the following patterns emacs this will invoke emacsclient no wait line column file vim this will invoke gvim remote line normchar file nedit this will invoke nc noask line file The environment variable LYEDITOR is used to override this It contains the command line to start the editor where file s column s line s is replaced with the file column and line respectively The setting emacsclient no wait line s column s file s for LYEDITOR is equivalent to the standard emacsclient invocation The point and click links enlarge the output files significantly For reducing the size of PDF and PS files point and click may be switched off by issuing ly set option point and click f in a 1y file Alternately you may pass this as an command line option lilypond dno point and click file ly 1 On unix this file is
268. relative c override Tie after line breaking callback my callback ci break c2 c N When applying this trick the new after line breaking callback should also call the old after line breaking callback if there is one For example if using this with Slur Slur after_line_breaking should also be called Chapter 10 Output formats 217 10 Output formats This is a placeholder until I can write a nice intro for this chapter 10 1 Paper output The global paper layout is determined by three factors the page layout the line breaks and the spacing These all influence each other The choice of spacing determines how densely each system of music is set This influences where line breaks are chosen and thus ultimately how many pages a piece of music takes Globally spoken this procedure happens in three steps first flexible distances springs are chosen based on durations All possible line breaking combinations are tried and the one with the best results a layout that has uniform density and requires as little stretching or cramping as possible is chosen After spacing and linebreaking the systems are distributed across pages taking into account the size of the page and the size of the titles 10 1 1 Setting global staff size To set the global staff size use set global staff size set global staff size 14 This sets the global default size to 14pt staff height and scal
269. ression chord tremolo ly input regression stem tremolo ly 6 7 6 Tremolo subdivisions Tremolo marks can be printed on a single note by adding number after the note The number indicates the duration of the subdivision and it must be at least 8 A length value of 8 gives one line across the note stem If the length is omitted the last value stored in tremoloFlags is used c 2 8 c 32 c ca Bugs Tremolos entered in this way do not carry over into the MIDI output See also In this manual Section 6 7 5 Tremolo repeats page 112 Elsewhere StemTremolo 6 7 7 Measure repeats In the percent style a note pattern can be repeated It is printed once and then the pattern is replaced with a special sign Patterns of one and two measures are replaced by percent like signs patterns that divide the measure length are replaced by slashes Percent repeats must be declared within a Voice context new Voice relative c repeat percent 4 c4 repeat percent 2 c2 es2 f4 fis4 g4 c4 Chapter 6 Basic notation 114 See also Program reference RepeatSlash PercentRepeat PercentRepeatedMusic and DoublePercentRepeat Chapter 7 Instrument specific notation 115 7 Instrument specific notation This chapter explains how to use notation for specific instruments 7 1 Piano music Piano staves are two normal staves coupled with a brace The staves are largely
270. rgument is a cons of numbers A Ntranslate cons 2 3 BC D This moves B C 2 spaces to the right and 3 down relative to its surroundings This command cannot be used to move isolated scripts vertically for the same reason that raise cannot be used for that Chapter 8 Advanced notation 172 triangle filled boolean A triangle filled or not typewriter arg markup Use font family typewriter for arg upright arg markup Set font shape to upright vcenter arg markup Align arg to its Y center Whiteout arg markup Provide a white underground for arg with color color list arg markup Draw arg in color specified by color with url url string arg markup Add a link to URL url around arg This only works in the PDF backend 8 1 8 Font selection By setting the object properties described below you can select a font from the preconfigured font families LilyPond has default support for the feta music fonts Text fonts are selected through Pango FontConfig The serif font defaults to New Century Schoolbook the sans and typewriter to whatever the Pango installation defaults to e font encoding is a symbol that sets layout of the glyphs This should only be set to select different types of non text fonts eg fetaBraces for piano staff braces fetaMusic the standard music font including ancient glyphs fetaDynamic for dynamic signs and fetaNumber for the number font e font family is a symbol indicati
271. riables may be freely mixed In the following example a music fragment is stored in the variable traLaLa and duplicated using Scheme The result is imported in a score block by means of a second variable twice traLaLa c 4 d 4 define newLa map ly music deep copy list traLaLa traLaLa define twice make sequential music newLa twice In the above example music expressions can be exported from the input to the Scheme inter preter The opposite is also possible By wrapping a Scheme value in the function 1y export a Scheme value is interpreted as if it were entered in LilyPond syntax Instead of defining twice the example above could also have been written as 1 ly export make sequential music list newLa Bugs Mixing Scheme and LilyPond identifiers is not possible with the safe option 11 1 2 Internal music representation When a music expression is parsed it is converted into a set of Scheme music objects The defining property of a music object is that it takes up time Time is a rational number that measures the length of a piece of music in whole notes A music object has three kinds of types e music name Each music expression has a name for example a note leads to a NoteEvent and simultaneous leads to a SimultaneousMusic A list of all expressions available is in the internals manual under Music expressions Chapter 11 Interfaces for programmers 232 e type or interface
272. rics wi oeae E a a E e Aua 34 3 2 4 Piano centered dynamics 35 9 9 SUED quartet ioi tue Ree EGENT ERI ERN SP ee ds 37 3 3 1 String quartet six ea eed eet eed eee a a 37 3 3 2 String quartet parts nocens SII ee eu A 39 3 4 Vocal ensembles ix stoici ia eee aerea ae da 41 SAT SATB Focal score tit fel ete EA kabari ao 41 3 4 2 SATB vocal score and automatic piano reduction 42 3 5 Ancient notation templates 44 3 5 1 Transcription of mensural music 45 3 6 Jazz combo isa RR RR Pee RIGG AREE e rt 50 ou Other templates ve EI AI CUM UNE TU NEA E E 55 dr SAV headers e LA Load Uli ala iii EE ars 56 3 1 2 Gregorian template wwa ere e wa 57 3 8 Lilypond book templates 57 SEM ME ILD Cm 57 9 02 TENTO urera cite udo Ei E aes E Edd RE et e asi i 58 Putting it all together sty odo ep ped ana 59 4 1 Suggestions for writing LilyPond files 59 4 2 Extending the templates 59 4 3 Fixing overlapping notation 62 Running Lily Pond suos rr ha metes te e a aet 64 5 1 Invoking hllypond serere PRI begets RE prp Puma e qu bg 64 5 2 Command line opti ns slip Ru da ins 64 5 3 Environment variables wi hh hh 67 54 Error messages
273. rint out some parts from a score so he started looking at the software and he quickly got hooked It was decided that MPP was a dead end After lots of philosophizing and heated email exchanges Han Wen started LilyPond in 1996 This time Jan got sucked into Han Wen s new project In some ways developing a computer program is like learning to play an instrument In the beginning discovering how it works is fun and the things you cannot do are challenging After the initial excitement you have to practice and practice Scales and studies can be dull and if you are not motivated by others teachers conductors or audience it is very tempting to give up You continue and gradually playing becomes a part of your life Some days it comes naturally and it is wonderful and on some days it just does not work but you keep playing day after day Like making music working on LilyPond can be dull work and on some days it feels like plodding through a morass of bugs Nevertheless it has become a part of our life and we keep doing it Probably the most important motivation is that our program actually does something useful for people When we browse around the net we find many people who use LilyPond and produce impressive pieces of sheet music Seeing that feels unreal but in a very pleasant way Our users not only give us good vibes by using our program many of them also help us by giving suggestions and sending bug reports so we would like
274. rks fa cea 9 Bb e uade ver LR Y E ots 175 8 2 3 Rehearsal marks cene ila uu ies 176 8 2 Barinumbers t recen m hee i etuer ecd deu NS 177 amp 2 5 Instrument names TERRE e i 178 8 2 6 Instrument transpositions 179 5 9 7 Ottava bracketss sirena dona fede ates Penn ts irae tnd tae enu bias 180 8 2 8 Different editions from one source 180 8 31 Orchestral musica ssc sei wage NEIN NET V ERR illa 182 8 3 1 Automatic part combining 182 8 320 Hiding staves 2o acere Paten een Re mb EL RUE AE hand ibra 183 8 3 3 Quoting other voices 184 8 3 4 Formatting cue Notes estet een dee bi eral t eere t re E 185 8 8 5 Aligning to cadenzas sh 186 8 4 Contemporary notation 186 8 41 Polymetri notations ii A A eee 187 8 4 2 Time administration 189 SA UE sno Fe abili dt A iaia 189 8 4 4 Special f rmatas s onse pa RA LA ai 190 8 4 5 Special moteheads eripe ePi Ret Me ETUR UE Hel 190 8 4 6 Feathered beams 0 ehh haha 191 SALT Tniprovisation ss xis si i A Sue uc Eee 191 8 5 Educational uses iatale ie Mee n pet ee cu t dins d 192 Sid Balloon helpz ua a kis em Bueno e e eae 192 8 5 2 Blank music sheet cose ete a p eh Re t EROR aa 192 8 5 9 Hidden Hotes eet ee ee aa Aa rrr AU
275. rkup bee bei die leek ek 172 X RAVI Si lA ab A ev cbe oe bs 13
276. rom header is inserted and the last page where tagline from header is added The default tagline is Music engraving by LilyPond version The header and footer are created by the functions make footer and make header defined in Npaper The default implementations are in scm page layout scm The page layout itself is done by two functions in the Npaper block page music height and page make stencil The former tells the line breaking algorithm how much space can be spent on a page the latter creates the actual page given the system to put on it Bugs The option rightmargin is defined but doesn t set the right margin yet The value for the right margin has to be defined adjusting the values of the leftmargin and linewidth The default page header puts the page number and the instrument field from the header block on a line 1 Nicely printed parts are good PR for us so please leave the tagline if you can Chapter 10 Output formats 221 10 1 5 Score layout While paper contains settings that relate to the page formatting of the whole document layout contains settings for score specific layout layout indent 2 0 cm context Staff minimumVerticalExtent 6 6 context Voice override TextScript padding 1 0 override Glissando thickness 3 See also This manual Section 9 1 5 Changing context default settings page 207 10 1 6 Vertical spacing The height of each syst
277. rride NoteHead style slash override Stem transparent t nsl revert NoteHead style revert Stem transparent cr override NoteHead style cross ncr revert NoteHead style insert chord name style stuff here Chapter 3 Example templates jzchords hhhhhhhhhhhh Keys n thangs hhhhhhhhhhhhhhhll global time 4 4 Key key c major h HHHHHHHHHH Horns ya Trumpet trpt transpose c d relative c Key cl cc trpharmony transpose c d jzchords trumpet global set Staff instrument Trumpet clef treble context Staff lt lt trpt gt gt ho Alto Saxophone alto transpose c a relative c Key ci cc altoharmony transpose c a jzchords altosax global set Staff instrument Alto Sax clef treble context Staff lt lt alto gt gt 4 Baritone Saxophone bari transpose c a relative c Key ci c sl d4 Solo d d d nsl ol Chapter 3 Example templates bariharmony transpose c a chordmode jzchords s1 s d2 maj e m7 barisax global set Staff instrument Bari Sax clef treble context Staff lt lt bari gt gt 4 Trombone tbone relative c Key ci cc tboneharmony chordmode jzchords trombone global set Staff instrument Trombone clef bas
278. rst note in input defaults to a quarter aa8aa2a A rest is entered just like a note but with the name r r2 r4 r8 r16 Add a dot after the duration to get a dotted note a2 a4 a8 a16 Chapter 2 Tutorial 12 The or time signature can be set with the time command time 3 4 time 6 8 time 4 4 3 8 e The clef can be set using the clef command Nclef treble clef bass clef alto clef tenor Remember to enclose the notes and commands in curly braces to convert it to printable output For more elaborate information on Entering pitches and durations see Section 6 1 2 Pitches page 73 and Section 6 1 8 Durations page 76 Clefs see Section 6 3 1 Clef page 83 Rests see Section 6 1 6 Rests page 75 Time signatures and other timing commands see Section 6 3 3 Time signature page 85 2 2 Running LilyPond for the first time In the last section we explained what kind of things you can enter in a LilyPond file In this section we will explain what commands to run and how to view or print the output If you have not used LilyPond before want to test your setup or want to run an example file yourself read this section MacOS X If you double click LilyPond app it will open with an example file Save it for example to test 1y on your Desktop and then process it with the menu command Compile g
279. s context Staff lt lt tbone gt gt 4 4 4 Rhythm Section com Guitar gtr relative c 4 Key ci sl b4 b b b nsl cl gtrharmony chordmode jzchords si c2 min7 d2 maj9 guitar global set Staff instrument Guitar clef treble context Staff lt lt gtr gt gt ds Piano rhUpper relative c voiceOne 52 Chapter 3 Example templates Key ci cc rhLower relative c voiceTwo Key el ee lhUpper relative c voiceOne Key gigg lhLower relative c voiceTwo Key ci cc PianoRH clef treble global set Staff midiInstrument acoustic grand context Staff lt lt context Voice one rhUpper context Voice two rhLower gt gt PianoLH clef bass global set Staff midiInstrument acoustic grand context Staff lt lt context Voice one MhUpper context Voice two lhLower gt gt piano context PianoStaff lt lt set PianoStaff instrument Piano context Staff upper PianoRH context Staff lower PianoLH gt gt Ws eese Bass Guitar Bass relative c 4 Key ci cc 93 Chapter 3 Example templates 54 bass global set Staff instrument Bass clef bass context Staff lt lt Bass gt gt Drums up drummode hh4 lt hh sn gt 4 hh lt hh sn gt hh lt hh sn gt 4 hh4 lt hh sn gt 4 hh4 lt hh sn gt 4 hh4 lt
280. s case it is no longer necessary to enter the correct duration for each syllable This is achieved by combining the melody and the lyrics with the lyricsto expression lyricsto name new Lyrics This aligns the lyrics to the notes of the Voice context called name which has to exist There fore normally the Voice is specified first and then the lyrics are specified with lyricsto The command lyricsto switches to lyricmode mode automatically so the lyricmode keyword may be omitted For different or more complex orderings the best way is to setup the hierarchy of staves and lyrics first e g context ChoirStaff lt lt context Lyrics sopranoLyrics si context Voice soprano music context Lyrics tenorLyrics s1 context Voice tenor music gt gt and then combine the appropriate melodies and lyric lines Chapter 7 Instrument specific notation 128 lyricsto soprano context Lyrics sopranoLyrics the lyrics The final input would resemble lt lt context ChoirStaff lt lt setup the music gt gt lyricsto soprano etc lyricsto alto etc etc gt gt The lyricsto command detects melismata it only puts one syllable under a tied or slurred group of notes If you want to force an unslurred group of notes to be a melisma insert melisma after the first note of the group and melismaEnd after the last one e g lt lt context Voice lala time 3 4 f4 g8 melisma fef
281. s esee bae a a ii 215 10 Outpul fofmistsos osx E eem ex e eoe Race vw 217 101 Paper output cce Rer DR ei ORC CU ci ese o ne ii 217 10 1 1 Setting global staff size 217 10 1 2 Selecting notation font size 217 TOS Paper sizes tirar tes vidue uM ME VR NEP 218 10 1 4 Page formatting x A de BSA ea As a AA 219 10 1 5 Score layout owners os bd heat ar RR en RP Eae Run 221 10 16 Vertical pacta wid o el e AG eee 221 10 1 7 Vertical spacing of piano staves 222 10 1 8 Horizontal Spacing i sisses cR eee hee eee PME I REFER 223 101 9 Line length cusa re eee Aa a EE 224 10 1 10 Eme breaking o videat n eb Baa ge ea 224 TOL Page breaking ue ck tae ee ERN IR eine ead cei s 225 10 1 12 Multiple movements 225 10 1 13 Creating titles cen api eed e Ana Bona A beans 226 10 2 Sound Outputs vieta aaa eR Ner RUM blag a SER e 229 10 2 1 Creatine MID Miles 52i doli eh lO ani aa 229 10 2 2 MIDI block nforce weed Sean pee ete LERRA ERE RA bee 230 10 2 3 MIDI instrument names 230 11 Interfaces for programmers 231 11 1 Programmer interfaces for input 231 11 1 1 Input variables and Scheme 231 11 1 2 Int
282. s only example Nversion 2 6 0 melody relative c Y clef treble key c major time 4 4 ad bcd score new Staff melody layout midi tempo 4 60 We don t need two version commands We ll need the melody section We don t want two score sections if we had two scores we d get the two parts separately We want them together as a duet Within the score section we don t need two layout or midi If we simply cut and paste the melody section we would end up with two melody sections So let s rename them We ll call the one for the soprano sopranoMusic and the one for the cello can be called celloMusic While we re doing this let s rename text to be sopranoLyrics Remember to rename both instances of all these names both the initial definition the melody relative c part and the name s use in the score section While we re doing this let s change the cello part s staff celli normally use bass clef We ll also give the cello some different notes version 2 6 0 sopranoMusic relative c clef treble key c major time 4 4 adbcd sopranoLyrics lyricmode Aaa Bee Cee Dee celloMusic relative c Chapter 4 Putting it all together 61 clef bass key c major time 4 4 d4 g fis8 e d4 score lt lt context Voice one autoBeamOff sopranoMusic lyricsto one new Lyrics sopranoLyrics gt gt layout midi tempo 4 60
283. s see Section 6 3 4 Partial measures page 86 2 12 Commenting input files A comment is a remark for the human reader of the music input it is ignored while parsing so it has no effect on the printed output There are two types of comments The percent symbol 4 introduces a line comment after the rest of the line is ignored A block comment marks a whole section of music input Anything that is enclosed in and is ignored The following fragment shows possible uses for comments notes for twinkle twinkle follow c4 cg gaa g2 0 t This line and the notes below are ignored since they are in a block comment ggfifeeddc2 ht There is a special statement that is a kind of comment The version statement marks for which version of LilyPond the file was written To mark a file for version 2 6 0 use version 2 6 0 These annotations make future upgrades of LilyPond go more smoothly Changes in the syntax are handled with a special program convert 1y see Section 5 5 Updating files with convert ly page 68 and it uses version to determine what rules to apply 2 13 Printing lyrics Lyrics are entered by separating each syllable with a space I want to break free Consider the melody relative r4 c times 2 34 f gg times 2 3 g4 a2 Chapter 2 Tutorial 24 3 7 r31 ei The lyrics can be set to these notes combining both with the addlyrics keyword lt lt r
284. scale This notation was popular in the 19th century American song books Shape note heads can be produced by setting aikenHeads or sacredHarpHeads depending on the style desired aikenHeads c8 d4 e8 a2 gi sacredHarpHeads c8 d4 e8 a2 gi Chapter 8 Advanced notation 194 Shapes are determined on the step in the scale where the base of the scale is determined by the key command Shape note heads are implemented through the shapeNoteStyles property Its value is a vector of symbols The k th element indicates the style to use for the k th step of the scale Arbitrary combinations are possible eg set shapeNoteStyles cross triangle fa f mensural xcircle diamond c8 d4 e8 a2 gi P 8 5 5 Easy Notation note heads The easy play note head includes a note name inside the head It is used in music for beginners setEasyHeads c 2 e 4 f g 1 E The command setEasyHeads overrides settings for the NoteHead object To make the letters readable it has to be printed in a large font size To print with a larger font see Section 10 1 1 Setting global staff size page 217 Predefined commands setEasyHeads 8 5 6 Analysis brackets Brackets are used in musical analysis to indicate structure in musical pieces LilyPond supports a simple form of nested horizontal brackets To use this add the Horizontal_bracket_engraver to Staff context A bracke
285. sequentially Here the expression from the previous example is combined with two notes a4g fg This technique is useful for non monophonic music To enter music with more voices or more staves we also combine expressions in parallel Two voices that should play at the same time are entered as a simultaneous combination of two sequences A simultaneous music expression is formed by enclosing expressions in lt lt and gt gt In the following example three sequences all containing two separate notes are combined simultaneously Chapter 2 Tutorial 18 This mechanism is similar to mathematical formulas a big formula is created by composing small formulas Such formulas are called expressions and their definition is recursive so you can make arbitrarily complex and large expressions For example 1 1 2 3 1 2 3 4 5 This is a sequence of expressions where each expression is contained in the next one The simplest expressions are numbers and larger ones are made by combining expressions with op erators like and and parentheses Like mathematical expressions music expressions can be nested arbitrarily deep which is necessary for complex music like polyphonic scores Note that this example only has one staff whereas the previous example had three separate staves That is because this example begins with a single note To determine the numbe
286. sible resti morr Peds ur ae ae 76 invoking dwipsisss shed alan ne Pag Ono 244 Invoking LilyPond moya ed Rer ER t 64 italico Lita abb one eo dee Neri 168 Xtalic mark p 5 2 216 9 ida apra 168 item interface ves eyes eles ws ola 213 J JAVON Sick sorts Meee eon ee Ree at Va resi 9 Jazz ChOrds vige iu niat X id 124 K keep With Tag iran be e idas 181 Key signature 84 key signature setting 13 KeyCancellation joke 0628 eie Ire 85 KeySignatu re u i ty gic det hA er RES 85 143 kneed beams 94 L landscape aac liane Pia aa 218 LANG a 67 AAA eli edi 9 Large re 168 large markup sese 168 latex eet DRE ue TY TE ERES E 243 La TEX music in ps 240 EA A Dl rl i 244 A od Sessa e ia EUR 105 layout block 3 3 e a SE Bats 230 Layout fle nine aa dene errem be 217 layout interface 213 lead sh eet euri ere e ELA kode Sea 25 Lead sheets v a Ree ys 24 LedgerLineSpanner 74 left alighi ci i citi AA AA 168 left align markup 168 Ligature bracket engraver 150 151 Appendix G LilyPond index LigatureBracket sii Aa nee 150 Ligatures ioni ieri 150 lilypond internals 10 LILYPONDPREFIX ili ier iee op eak 67 LA eb E E io ia 169 line breaks Aarten ime eaaa a lei 224 kini AA deal 23 Tine markup serrit Mey VR ai
287. sic expressions You can stack expressions grouped vertically with the com mand column Similarly center align aligns texts by their center lines c1 markup column a bbbb Mine cd 3 ci Wnarkup center align a bbbb c c1 markup Mine abc a a bbbbbbbb cd c abc e e e Lists with no previous command are not kept distinct The expression center align ab cd is equivalent to center align ab cd To keep lists of words distinct please use quotes or the line command fatText c4 markup center align on three lines c4 markup center align all one line c4 markup center align on three lines c4 markup center align line on one line on on three three linesall one linelineson one line Markups can be stored in variables and these variables may be attached to notes like allegro markup bold large Allegro a allegro b cd Some objects have alignment procedures of their own which cancel out any effects of align ments applied to their markup arguments as a whole For example the RehearsalMark is horizontally centered so using mark markup left align has no effect In addition vertical placement is performed after creating the text markup object If you wish to move an entire piece of markup you need to use the ZZ padding property or create an anchor point inside the markup generally with
288. so lyrics 4 can be closer to the staff Staff minimumVerticalExtent 3 3 lt lt context ChoirStaff lt lt context Lyrics sopranos s1 context Staff women lt lt context Voice sopranos voiceOne lt lt global sopMusic gt gt context Voice altos voiceTwo lt lt global altoMusic gt gt gt gt context Lyrics altos s1 context Lyrics tenors si Chapter 3 Example templates context Staff men lt lt clef bass context Voice tenors voiceOne lt lt global tenorMusic gt gt context Voice 44 basses voiceTwo lt lt global bassMusic gt gt gt gt context Lyrics context Lyrics context Lyrics context Lyrics gt gt new PianoStaff lt lt new Staff lt lt basses s1 context Lyrics sopranos lyricsto sopranos sopWords altos lyricsto altos altoWords tenors lyricsto tenors tenorWords basses lyricsto basses bassWords set Staff printPartCombineTexts f partcombine lt lt global sopMusic gt gt lt lt global altoMusic gt gt gt gt new Staff lt lt clef bass set Staff printPartCombineTexts f partcombine lt lt global tenorMusic gt gt lt lt global bassMusic gt gt gt gt gt gt gt gt hi hi hi hi SSA FTT hahaha ha huhuhu hu ig y err rl ho ho ho ho gt g
289. ssion chord name major7 ly input regression chord name exceptions 1ly input test chord names jazz 1ly Init files scm chords ignatzek scm and scm chord entry scm Bugs Chord names are determined solely from the list of pitches Chord inversions are not identified and neither are added bass notes This may result in strange chord names when chords are entered with the lt gt syntax 7 3 Vocal music There are three different issues when printing vocal music e Song texts must be entered as text not notes For example the input d should be interpreted as a one letter syllable not the note D e Song texts must be printed as text not as notes e Song texts must be aligned with the notes of their melody The simplest solution for printing music uses the addlyrics function to solve all these problems at once However these three functions can be controlled separately which is necessary for complex vocal music 7 3 1 Setting simple songs The easiest way to add lyrics to a melody is to append addlyrics the lyrics to a melody Here is an example time 3 4 relative c2 e4 g2 addlyrics play the game Chapter 7 Instrument specific notation 125 j play the game More stanzas can be added by adding more Naddlyrics sections Ntime 3 4 relative c2 e4 g2 addlyrics play the game addlyrics speel het spel addlyrics joue le jeu play
290. st number controls the horizontal movement left is negative the second number controls the vertial movement up is positive After a bit of experimenting we decided that these values look good once override TextScript extra offset 1 6 1 0 e4 markup italic ritenuto g be ritenuto e ss Again these numbers are simply the result of a few experiments and looking at the output You might prefer the text to be slightly higher or to the left or whatever Try it and look at the result See also This manual Section 9 2 The override command page 210 Section 9 2 1 Common tweaks page 210 Chapter 5 Running LilyPond 64 5 Running LilyPond This chapter details the technicalities of running LilyPond 5 1 Invoking lilypond The lilypond executable may be called as follows from the command line lilypond option file When invoked with a filename that has no extension the 1y extension is tried first To read input from stdin use a dash for file When filename 1y is processed it will produce filename tex as output or filename ps for PostScript output If filename 1y contains more than one score block then the rest of the scores will be output in numbered files starting with filename 1 tex Several files can be specified they will each be processed independently 5 2 Command line options The following options are supported e
291. stribute the Document is void and will automatically terminate your rights under this License However parties who have received copies or rights from you under this License will not have their licenses terminated so long as such parties remain in full compliance FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new revised versions of the GNU Free Doc umentation License from time to time Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns See http www gnu org copyleft Each version of the License is given a distinguishing version number If the Document specifies that a particular numbered version of this License or any later version applies to it you have the option of following the terms and conditions either of that specified version or of any later version that has been published not as a draft by the Free Software Foundation If the Document does not specify a version number of this License you may choose any version ever published not as a draft by the Free Software Foundation Appendix F GNU Free Documentation License 281 F 0 1 ADDENDUM How to use this License for your documents To use this License in a document you have written include a copy of the License in the document and put the following copyright and license notices just after the title page Copyright C year your name Permission is granted to co
292. syntax for part combining is partcombine musicexpri musicexpr2 The following example demonstrates the basic functionality of the part combiner putting parts on one staff and setting stem directions and polyphony new Staff partcombine relative g gga b ccrr relative g ggr4reeggk az Solo Solo II cioe The first g appears only once although it was specified twice once in each part Stem slur and tie directions are set automatically depending whether there is a solo or unisono The first part with context called one always gets up stems and Solo while the second called two always gets down stems and Solo IT If you just want the merging parts and not the textual markings you may set the property printPartCombineTexts to false new Staff lt lt set Staff printPartCombineTexts f partcombine relative g g a b r relative g g r4 r f gt gt gt To change the text that is printed for solos or merging you may set the soloText soloIIText and aDueText properties new Staff lt lt set Score soloText ichi set Score soloIIText ni set Score aDueText tachi partcombine relative g 1 g4 g al b r 3 relative g gl g r rf gt gt gt Chapter 8 Advanced notation 183 tachiichi ni eI Both arguments to Npartcombine will be interpreted as Voice contexts If using relative octaves Nrelative should be speci
293. syntax for this is applycontext function function should be a Scheme function taking a single argument being the context to apply it to The following code will print the current bar number on the standard output during the compile applycontext lambda x format t nWe were called in barnumber a n ly context property x currentBarNumber 11 3 2 Running a function on all layout objects The most versatile way of tuning an object is Napplyoutput Its syntax is Napplyoutput proc where proc is a Scheme function taking three arguments When interpreted the function proc is called for every layout object found in the context with the following arguments e the layout object itself e the context where the layout object was created and e the context where Napplyoutput is processed In addition the cause of the layout object i e the music expression or object that was responsible for creating it is in the object property cause For example for a note head this is a NoteHead event and for a Stem object this is a NoteHead object Here is a function to use for Napplyoutput it blanks note heads on the center line define blanker grob grob origin context if and memq ly grob property grob interfaces note head interface eq ly grob property grob staff position 0 set ly grob property grob transparent t Chapter 12 lilypond book Integrating text and music 240 12 lilypond book Integrat
294. t This command sets the property skipBars in the Score context to true t Prepending the rest and this option to the music above leads to the following result teg HE The score is made by combining all of the music together Assuming that the other voice is in bassoonNotes in the file bassoon music 1y a score is made with include bassoon music ly include horn music ly new Staff hornNotes new Staff bassoonNotes gt gt leading to ascii eee AE More in depth information on preparing parts and scores can be found in the notation manual see Section 8 3 Orchestral music page 182 Setting run time variables properties is discussed in Section 9 1 2 Changing context prop erties on the fly page 203 Chapter 3 Example templates 30 3 Example templates This section of the manual contains templates with the LilyPond score already set up for you Just add notes run LilyPond and enjoy beautiful printed scores 3 1 Single staff 3 1 1 Notes only The first example gives you a staff with notes suitable for a solo instrument or a melodic fragment Cut and paste this into a file add notes and you re finished version 2 6 0 melody relative c clef treble key c major time 4 4 adbcd score new Staff melody layout midi tempo 4 60 J ii 3 1 2 Notes and lyrics The n
295. t Since the command specifies Staff as context it only applies to the current staff Other staves will keep their normal appearance Here we see the command in action c4 override Staff Stem thickness 4 0 c4 c4 c4 Chapter 9 Changing defaults 207 The override command changes the definition of the Stem within the current Staff After the command is interpreted all stems are thickened Analogous to set the context argument may be left out causing it to default to Voice and adding once applies the change during one timestep only c4 once override Stem thickness 4 0 c4 c4 The override must be done before the object is started Therefore when altering Spanner objects like slurs or beams the override command must be executed at the moment when the object is created In this example override Slur thickness 3 0 c8 C c override Beam thickness 0 6 c8 cl the slur is fatter but the beam is not This is because the command for Beam comes after the Beam is started Therefore it has no effect Analogous to unset the revert command for a context undoes an override command like with unset it only affects settings that were made in the same context In other words the revert in the next example does not do anything override Voice Stem thickness 4 0 revert Staff Stem thickness See also Internals OverrideProperty RevertProperty PropertySe
296. t Backend and A11 layout objects Bugs The back end is not very strict in type checking object properties Cyclic references in Scheme values for properties can cause hangs or crashes or both 9 1 5 Changing context default settings The adjustments of the previous subsections Section 9 1 2 Changing context properties on the fly page 203 Section 9 1 3 Modifying context plug ins page 205 and Section 9 1 4 Layout tunings within contexts page 206 can also be entered separately from the music in the layout block layout context Chapter 9 Changing defaults 208 Staff set fontSize 2 override Stem thickness 4 0 remove Time_signature_engraver Here Staff takes the existing definition for context Staff from the identifier Staff The statements set fontSize 2 override Stem thickness 4 0 remove Time_signature_engraver affect all staves in the score Other contexts can be modified analogously The set keyword is optional within the layout block so context fontSize 2 will also work Bugs It is not possible to collect context changes in a variable and apply them to one context definition by referring to that variable The RemoveEmptyStaffContext will override your current Staff variable If you wish to change the defaults for a staff that uses RemoveEmptyStaffContext you must do so after calling RemoveemptyStaffContext ie layout co
297. t This template demonstrates a string quartet It also uses a global section for time and key signatures version 2 6 0 global Chapter 3 Example templates 38 time 4 4 key c major violinOne new Voice relative c set Staff instrument Violin 1 c2 d el bar violinTwo new Voice relative c set Staff instrument Violin 2 g2 f el Nbar BE viola new Voice relative c set Staff instrument Viola clef alto e2 d c1 bar PE cello new Voice relative c set Staff instrument Cello it clef bass c2 b al bar score new StaffGroup lt lt new Staff lt lt global violinOne gt gt new Staff lt lt global violinTwo gt gt new Staff lt lt global viola gt gt new Staff lt lt global cello gt gt gt gt layout midi tempo 4 60 Chapter 3 Example templates 39 Viola Cello 3 3 2 String quartet parts The previous example produces a nice string quartet but what if you needed to print parts This template demonstrates how to use the tag feature to easily split a piece into individual parts You need to split this template into separate files the filenames are contained in comments at the beginning of each file piece ly contains all the music definitions The other files score ly vni ly vn2 1y vla ly and
298. t Typeset File The resulting PDF file will be displayed on your screen Be warned that the first ever run will take a minute or two because all of the system fonts have to be analyzed first Chapter 2 Tutorial 13 Windows On Windows start up a text editor and enter c 4 e g Save it on the desktop as test 1y and make sure that it is not called test 1y TXT Double clicking test 1y will process the file and show the resulting PDF file Unix Begin by opening a terminal window and starting a text editor For example you could open an xterm and execute joe In your text editor enter the following input and save the file as test ly c 4 e g To process test 1y proceed as follows lilypond test ly You will see something resembling lilypond test ly GNU LilyPond 2 6 0 Processing test ly Parsing Interpreting music 1 Preprocessing graphical objects Calculating line breaks 2 Layout output to test ps Converting to test pdf The result is the file test pdf which you can print or view with the standard facilities of your operating system 2 3 More about pitches A sharp FIXME fetasharp pitch is made by adding is to the name a flat FIXME fetaflat pitch by adding es As you might expect a double sharp or double flat is made by adding isis or eses cisi ees fisis aeses so xe PO
299. t forget to tell which version of LilyPond you use Send the report to bug lilypond gnu org Here is an example of a good bug report It seems that placement of accidentals is broken In the following example the accidental touches the note head Using Mac OSX 10 3 7 fink package lilypond devel Chapter 5 Running LilyPond 70 version 2 5 18 relative c a4 b cis d 5 7 Editor support There is support from different editors for LilyPond Emacs Emacs has a lilypond mode which provides keyword autocompletion indenta tion LilyPond specific parenthesis matching and syntax coloring handy compile short cuts and reading LilyPond manuals using Info If lilypond mode is not installed on your platform then read the installation instructions VIM For VIM http www vim org a vimrc is supplied along with syntax coloring tools For more information refer to the installation instructions JEdit The jEdit http www jedit org editor has a LilyPond plugin This plugin includes a DVI viewer integrated help and viewing via GhostScript It can be installed by doing Plugins gt Plugin Manager and selecting LilyTool from the tab All these editors can be made to jump into the input file to the source of a symbol in the graphical output See Appendix D Point and click page 271 5 8 File structure The major part of this manual is concerned with entering various forms of music in Lily
300. t here e Chapter 3 Example templates page 30 provides templates of LilyPond pieces Just cut and paste a template into a file add notes and you re done e Chapter 4 Putting it all together page 59 demonstrates practical uses of LilyPond e Chapter 5 Running LilyPond page 64 shows how to run LilyPond and its helper programs In addition this section explains how to upgrade input files from previous versions of LilyPond Chapter 1 Introduction 9 e Chapter 6 Basic notation page 73 discusses topics grouped by notation construct This section gives details about basic notation that will be useful in almost any notation project e Chapter 7 Instrument specific notation page 115 discusses topics grouped by notation construct This section gives details about special notation that will only be useful for particular instrument or vocal groups e Chapter 8 Advanced notation page 160 discusses topics grouped by notation construct This section gives details about complicated or unusual notation e Chapter 9 Changing defaults page 201 explains how to fine tune layout e Chapter 10 Output formats page 217 discusses issues which affect the global output such as selecting paper size or which MIDI instruments to use e Chapter 12 LilyPond book page 240 explains the details behind creating documents with in line music examples like this manual e Chapter 13 Converting from other formats page 249 explains how to r
301. t is started with startGroup and closed with stopGroup score relative c c4 startGroup startGroup c4 stopGroup c4 startGroup c4 stopGroup stopGroup layout context Staff consists Horizontal_bracket_engraver Fr r Chapter 8 Advanced notation 195 See also Program reference HorizontalBracket Examples input regression note group bracket ly 8 5 7 Coloring objects Individual objects may be assigned colors You may use the color names listed in the Section C 3 List of colors page 257 override NoteHead color red c4 c override NoteHead color x11 color LimeGreen d override Stem color blue e The full range of colors defined for X11 can be accessed by using the scheme function x11 color The function takes one argument that can be a symbol override Beam color x11 color MediumTurquoise or a string override Beam color x11 color MediumTurquoise The first form is quicker to write and is more efficient However using the second form it is possible to access X11 colors by the multi word form of its name override Beam color x11 color medium turquoise If x11 color cannot make sense of the parameter then the color returned defaults to black It should be obvious from the final score that something is wrong This example illustrates the use of x11 color Notice that the stem color rem
302. tae Chapter 7 Instrument specific notation 153 8 Quilisma Pes u V 4 9 Podatus Initio Debilis W X J A 10 Torculus y Z A A a 11 Torculus Initio Debilis B C D A 4 12 Porrectus E F G Nan 13 Climacus H I J h th No 14 Scandicus K L M Hy a y 15 Salicus N O Chapter 7 Instrument specific notation 154 16 Trigonus 1 Unlike most other neumes notation systems the input language for neumes does not reflect the typographical appearance but is designed to focus on musical meaning For example a pes b flexa g produces a Torculus consisting of three Punctum heads while a flexa g pes b produces a Porrectus with a curved flexa shape and only a single Punctum head There is no command to explicitly typeset the curved flexa shape the decision of when to typeset a curved flexa shape is based on the musical input The idea of this approach is to separate the musical aspects of the input from the notation style of the output This way the same input can be reused to typeset the same music in a different style of Gregorian chant notation The following table shows the code fragments that produce the ligatures in the above neumes table The letter in the first column in each line of the below table indicates to which ligature in the above table it refers The second column gives the name of the ligature The third column shows the code fragment that produces this ligature using g a and b as exam
303. tave and hard to find such an error The relative octave mode prevents these errors by making the mistakes much larger a single error puts the rest of the piece off by one octave relative startpitch musicexpr or relative musicexpr The octave of notes that appear in musicexpr are calculated as follows if no octave changing marks are used the basic interval between this and the last note is always taken to be a fourth or less This distance is determined without regarding alterations a fisis following a ceses will be put above the ceses In other words a doubly augmented fourth is considered a smaller interval than a diminshed fifth even though the fourth is seven semitones while the fifth is only six semitones The octave changing marks and can be added to raise or lower the pitch by an extra octave Upon entering relative mode an absolute starting pitch can be specified that will act as the predecessor of the first note of musicexpr If no starting pitch is specified then middle C is used as a start Here is the relative mode shown in action relative c b cd bc besa 5 F Octave changing marks are used for intervals greater than a fourth relative c cgcf c a e 3 If the preceding item is a chord the first note of the chord is used to determine the first note of the next chord relative c c lt c e g gt c e g gt lt c e g gt
304. te symbol for 6 8 is not addressable with time Use a markup instead 7 7 7 Ancient articulations In addition to the standard articulation signs described in section Section 6 5 1 Articulations page 97 articulation signs for ancient notation are provided These are specifically designed for use with notation in Editio Vaticana style include gregorian init ly score context VaticanaVoice override Staff StaffSymbol color red override Staff LedgerLineSpanner color red override TextScript font family typewriter override TextScript font shape upright override Script padding 0 1 a4 ictus_ ictus s1 a4 circulus_ circulus s1 a4 semicirculus_ semicirculus s1 s a4 accentus_ accentus si a4_ episem episemInitium pes b flexa a episemFinis a sa ictus circulusemicirculu amp ccentu pisem Bugs Some articulations are vertically placed too closely to the correpsonding note heads 7 7 8 Custodes A custos plural custodes Latin word for guard is a symbol that appears at the end of a staff It anticipates the pitch of the first note s of the following line thus helping the performer to manage line breaks during performance Custodes were frequently used in music notation until the 17th century Nowadays they have survived only in a few particular forms of musical notation such as contemporary editions of Gregorian chant like the editio vaticana
305. teMusic 8 3 4 Formatting cue notes The previous section deals with inserting notes from another voice There is a more advanced music function called NcueDuring which makes formatting cue notes easier The syntax is cueDuring name updown music This will insert notes from the part name into a Voice called cue This happens simultane ously with music which usually is a rest When the cue notes start the staff in effect becomes polyphonic for a moment The argument updown determines whether the cue notes should be notated as a first or second voice smaller set fontSize 2 override Stem length 5 5 override Beam thickness 0 384 override Beam space function lambda beam mult 0 8 Beam space_function beam mult addquote clarinet relative R1 20 r2 r8 c f f i new Staff relative lt lt setup a context for cue notes context Voice cue smaller skip 1 21 set Score skipBars t new Voice R1 20 Chapter 8 Advanced notation 186 cueDuring clarinet 1 Ri g4 g2 gt gt 20 sila Here are a couple of hints for successful cue notes e Cue notes have smaller font sizes e the cued part is marked with the instrument playing the cue e when the original part takes over again this should be marked with the name of the original instrument Any other changes introduced by the cued part should also be undone For example i
306. tempo 4 60 Aaa Bee Cee Dee 3 2 3 Piano centered lyrics Instead of having a full staff for the melody and lyrics you can place the lyrics between the piano staff and omit the separate melody staff version 2 6 0 upper relative c clef treble key c major Chapter 3 Example templates 35 time 4 4 abcd lower relative c clef bass key c major time 4 4 a2 c 3 text lyricmode Aaa Bee Cee Dee score context GrandStaff lt lt context Staff upper context Voice singer upper lyricsto singer new Lyrics text context Staff lower lt lt clef bass lower gt gt gt gt layout context GrandStaff accepts Lyrics context Lyrics consists Bar_engraver midi tempo 4 60 Cer Aaa Bee Cee Dee Mt 3 ez 3 2 4 Piano centered dynamics Many piano scores have the dynamics centered between the two staffs This requires a bit of tweaking to implement but since the template is right here you don t have to do the tweaking yourself version 2 6 0 upper relative c clef treble key c major Chapter 3 Example templates time 4 4 abcd lower relative c clef bass key c major time 4 4 a2 c dynamics s2 fff gt s4 s pp j pedal s2 sustainDown s2 sustainUp score context PianoStaff lt
307. tenors 1 voiceOne lt lt global tenorMusic gt gt context Voice basses voiceTwo lt lt global bassMusic gt gt gt gt context Lyrics basses s1 context Lyrics sopranos lyricsto sopranos sopWords context Lyrics altos lyricsto altos altoWords context Lyrics tenors lyricsto tenors tenorWords context Lyrics basses lyricsto basses bassWords gt gt layout context a little smaller so lyrics can be closer to the staff Staff minimumVerticalExtent 3 3 hi hi hi hi ha ha ha ha hu hu hu hu J hohoho ho Saa fet 3 4 2 SATB vocal score and automatic piano reduction This template adds an automatic piano reduction to the SATB vocal score This demonstrates one of the strengths of LilyPond you can use a music definition more than once If you make any changes to the vocal notes say tenorMusic then the changes will also apply to the piano reduction Nversion 2 6 0 global Chapter 3 Example templates key c major time 4 4 y sopMusic relative c 4 c4 c c8 b c4 sopWords lyricmode hi hi hi hi altoMusic relative c et f de altoWords lyricmode ha ha ha ha tenorMusic relative c gia fg tenorWords lyricmode hu hu hu hu bassMusic relative c c4cgc bassWords lyricmode ho ho ho ho layout context 4 a little smaller
308. text parameters specifying the vertical extent are described in connection with the Axis_ group_engraver Chapter 10 Output formats 222 Bugs minimumVerticalExtent is syntactic sugar for setting minimum Y extent of the VerticalAxisGroup of the current context It can only be changed score wide 10 1 7 Vertical spacing of piano staves The distance between staves of a PianoStaff cannot be computed during formatting Rather to make cross staff beaming work correctly that distance has to be fixed beforehand The distance of staves in a PianoStaff is set with the forced distance property of the VerticalAlignment object created in PianoStaff It can be adjusted as follows new PianoStaff with override VerticalAlignment forced distance 7 ju This would bring the staves together at a distance of 7 staff spaces measured from the center line of each staff The difference is demonstrated in the following example relative lt lt new PianoStaff with override VerticalAlignment forced distance 7 lt lt new Staff ci new Staff c gt gt new PianoStaff lt lt new Staff c new Staff c gt gt gt gt Bugs forced distance cannot be changed per system Chapter 10 Output formats 223 10 1 8 Horizontal Spacing The spacing engine translates differences in durations into stretchable distances springs of di
309. th music expressions that can be interpreted at several levels For example the applyoutput command see Section 11 3 2 Running a function on all layout objects page 239 Without an explicit context it is usually applied to Voice applyoutput function apply to Voice To have it interpreted at the Score or Staff level use these forms context Score applyoutput function context Staff applyoutput function 9 1 2 Changing context properties on the fly Each context can have different properties variables contained in that context They can be changed during the interpretation step This is achieved by inserting the set command in the music set context prop value For example R1 2 set Score skipBars t R1 2 This command skips measures that have no notes The result is that multi rests are con densed The value assigned is a Scheme object In this case it is t the boolean True value If the context argument is left out then the current bottom most context typically ChordNames Voice or Lyrics is used In this example c8 ccc set autoBeaming f c8 ccc the context argument to set is left out so automatic beaming is switched off in the current Voice Note that the bottom most context does not always contain the property that you wish to change for example attempting to set the skipBars property of the bottom most context in this case Voice will have no effect Chapter
310. than five State on the Title page the name of the publisher of the Modified Version as the publisher Preserve all the copyright notices of the Document Add an appropriate copyright notice for your modifications adjacent to the other copy right notices Include immediately after the copyright notices a license notice giving the public permission to use the Modified Version under the terms of this License in the form shown in the Addendum below Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document s license notice Include an unaltered copy of this License Preserve the section entitled History and its title and add to it an item stating at least the title year new authors and publisher of the Modified Version as given on the Title Page If there is no section entitled History in the Document create one stating the title year authors and publisher of the Document as given on its Title Page then add an item describing the Modified Version as stated in the previous sentence Preserve the network location if any given in the Document for public access to a Transparent copy of the Document and likewise the network locations given in the Document for previous versions it was based on These may be placed in the History section You may omit a network location for a work that was published at least four years before the Document itself or if the
311. the 9 8 measure is subdivided in 2 2 2 and 3 This is passed to set time signature as the third argument 2 2 23 score relative c set time signature 9 8 2 2 2 3 g8 g dl d gl gl a8 C bes gl set time signature 5 8 3 2 a4 g4 layout context Staff consists Measure_grouping_engraver See also Program reference TimeSignature and Timing_engraver Bugs Automatic beaming does not use the measure grouping specified with set time signature 6 3 4 Partial measures Partial measures such as an anacrusis or upbeat are entered using the partial 16 5 c16 cis d dis e a2 c 4 b2 The syntax for this command is partial duration This is internally translated into Chapter 6 Basic notation 87 set Timing measurePosition length of duration The property measurePosition contains a rational number indicating how much of the measure has passed at this point Bugs This command does not take into account grace notes at the start of the music When a piece starts with graces notes in the pickup then the partial should follow the grace notes grace f16 partial 4 g4 a2 g2 6 3 5 Bar lines Bar lines delimit measures but are also used to indicate repeats Normally they are inserted automatically Line breaks may only happen on bar lines Special types of bar lines can be forced with the bar command c4 bar c4
312. the music snippet For HTML output this is a link Chapter 12 lilypond book Integrating text and music 247 fontload This option includes fonts in all of the generated EPS files for this snippet This should be used if the snippet uses any font that LaTeX cannot find on its own 12 6 Invoking lilypond book lilypond book produces a file with one of the following extensions tex texi or html depending on the output format Both tex and texi files need further processing lilypond book can also create a PSFONTS file which is required by dvips to produce Postscript and PDF files You can call this file whatever you want as long as you refer to the same file when you call dvips To produce PDF output from the lilypond book file here called yourfile lytex you should do lilypond book psfonts yourfile lytex latex yourfile tex dvips o h yourfile psfonts Ppdf yourfile dvi ps2pdf yourfile ps To produce a Texinfo document in any output format follow the normal procedures for Texinfo this is either call texi2dvi or makeinfo depending on the output format you want to create See the documentation of Texinfo for further details lilypond book accepts the following command line options f format format format Specify the document type to process html latex or texi the default If this option is missing lilypond book tries to detect the format automatically The texi document type pro
313. the time and line breaking often is unsatisfactory Also lyrics do not correctly align with ligatures Accidentals must not be printed within a ligature but instead need to be collected and printed in front of it Augmentum dots within ligatures are not handled correctly The syntax still uses the deprecated infix style music expr For consistency reasons it will eventually be changed to postfix style note note Alternatively the file gregorian init ly can be included it provides a scheme function ligature music expr with the same effect and is believed to be stable 7 7 10 1 White mensural ligatures There is limited support for white mensural ligatures To engrave white mensural ligatures in the layout block put the Mensural_ligature_ engraver into the Voice context and remove the Ligature_bracket_engraver like this Chapter 7 Instrument specific notation 151 layout context Voice remove Ligature_bracket_engraver consists Mensural_ligature_engraver There is no additional input language to describe the shape of a white mensural ligature The shape is rather determined solely from the pitch and duration of the enclosed notes While this approach may take a new user a while to get accustomed to it has the great advantage that the full musical information of the ligature is known internally This is not only required for correct MIDI output but also allows for automatic transcription of th
314. ther formats 251 Bugs The ABC standard is not very standard For extended features e g polyphonic music different conventions exist Multiple tunes in one file cannot be converted ABC synchronizes words and notes at the beginning of a line abc21y does not abc21y ignores the ABC beaming 13 4 Invoking mup21y Mup Music Publisher is a shareware music notation program by Arkkra Enterprises mup21y will convert part of a Mup file to LilyPond format It is invoked from the command line as follows mup2ly option mup file The following options are supported by mup21y d debug show what constructs are not converted but skipped D define name exp define macro name with opt expansion exp E pre process only run the pre processor h help print help 0 output file write output to file V version version information w warranty print warranty and copyright Bugs Only plain notes pitches durations voices and staves are converted 13 5 Generating LilyPond files LilyPond itself does not come with support for any other formats but there are some external tools that also generate LilyPond files These tools include e Denemo http denemo sourceforge net a graphical score editor e Rumor http www volny cz smilauer rumor rumor html a realtime monophonic MIDI to LilyPond converter e lyqi http nicolas sceaux free fr lilypond lyqi html an Emacs major mode e xml2ly http
315. this is indicated with a horizontal line centered between a syllable and the next one Such a line is called an extender line and it is entered as __ In tighly engraved music hyphens can be removed In some languages e g German and Hungarian hyphens should not disappear since spelling depends on hyphenation For that purpose hyphens can be forced to remain by overriding minimum length of the LyricHyphen grob score lt lt new Staff relative c time 1 4 c16 cc c c16 cc c c16 c cc lyricmode new Lyrics with override SeparationItem padding 0 0 Otherwise lyrics are so far apart that hyphens don t disappear An ti cons ti tu tion nel le override LyricHyphen minimum length 40 7 override LyricHyphen spacing procedure Hyphen_spanner set_spacing_rods men taire ment ouf gt gt layout 1 indent 0 0 cm linewidth 3 4 cm context Staff remove Time_signature_engraver Chapter 7 Instrument specific notation 127 3 j Anticonsti 2 tutionnelle 3 men taire ment ouf See also Program reference LyricHyphen LyricExtender 7 3 4 The Lyrics context Lyrics are printed by interpreting them in a Lyrics context context Lyrics lyricmode This will place the lyrics according to the durations that were entered The lyrics can also be aligned under a given melody automatically In thi
316. to thank all users that sent us bug reports gave suggestions or contributed in any other way to LilyPond Playing and printing music is more than a nice analogy Programming together is a lot of fun and helping people is deeply satisfying but ultimately working on LilyPond is a way to express our deep love for music May it help you create lots of beautiful music Han Wen and Jan Utrecht Eindhoven The Netherlands July 2002 Notes for version 2 6 For years LilyPond has been associated with TEX for its design syntax and last but not least since it used TEX as an output engine Starting with 2 6 the latter has changed By default LilyPond now produces PostScript directly This makes it easier to install quicker to operate and more versatile Under the hood this was made possible by use of the Pango library which does typesetting of multilingual text This means that you can easily typeset Chinese Russian or Minoic lyrics Another result is the SVG output You can create SVG pictures of music notation directly from LilyPond There are also small improvements This release has numerous extra features such as color support string number notation arrowed glissandi Moreover it is now possible to commission features For a small fee we the core developers can implement the features that you sorely need Examples of sponsored features in 2 6 are solfa notation stemlets starting and stopping staves Han Wen and Jan Utrecht
317. tomatically condense multiple rests into a single multi measure rest Multi measure rests do not take part in rest collisions Be careful when entering multi measure rests followed by whole notes The following will enter two notes lasting four measures each R1 4 cis cis When skipBars is set the result will look OK but the bar numbering will be off 8 2 2 Metronome marks Metronome settings can be entered as follows tempo duration per minute In the MIDI output they are interpreted as a tempo change In the layout output a metronome marking is printed tempo 8 120 c 1 120 Commonly tweaked properties To change the tempo in the MIDI output without printing anything make the metronome marking invisible once override Score MetronomeMark transparent t To print other metronome markings use these markup commands c4 markup n smaller Ngeneral align Y DOWN note 16 1 smaller general align Y DOWN note 8 1 3 Chapter 8 Advanced notation 176 See Section 8 1 4 Text markup page 162 for more details See also Program reference MetronomeMark Bugs Collisions are not checked If you have notes above the top line of the staff or notes with articulations slurs text etc then the metronome marking may be printed on top of musical symbols If this occurs increase the padding of the metronome mark to place it further away from the
318. trings may span several lines this is a string Quotation marks and newlines can also be added with so called escape sequences The string a said b is entered as t5 said b Newlines and backslashes are escaped with Nn and NN respectively In a music file snippets of Scheme code are introduced with the hash mark So the previous examples translated in LilyPond are Hit f 1 1 5 this is a string this is a string For the rest of this section we will assume that the data is entered in a music file so we add s everywhere Scheme can be used to do calculations It uses prefix syntax Adding 1 and 2 is written as 1 2 rather than the traditional 1 2 1 2 gt 3 The arrow shows that the result of evaluating 1 2 is 3 Calculations may be nested the result of a function may be used for another calculation 1 3 4 gt 1 12 gt 13 These calculations are examples of evaluations an expression like 3 4 is replaced by its value 12 A similar thing happens with variables After defining a variable twelve 12 variables can also be used in expressions here A If you want to know more about Scheme see http www schemers org Appendix B Scheme tutorial 254 twentyFour 2 twelve the number 24 is stored in the variable twentyFour The same assignment can be done in completely in Scheme as well define twentyFour 2 twelve The name of a variable is also an
319. ts See also Examples input regression completion heads 1ly Program reference Completion_heads_engraver 6 3 Staff notation This section describes music notation that occurs on staff level such as key signatures clefs and time signatures 6 3 1 Clef The clef indicates which lines of the staff correspond to which pitches The clef is set with the clef command c 2 clef alto g 2 Supported clefs finclude treble violin G G2 G clef on 2nd line alto C C clef on 3rd line tenor C clef on 4th line bass F F clef on 4th line french G clef on 1st line so called French violin clef soprano C clef on 1st line mezzosoprano C clef on 2nd line baritone C clef on 5th line varbaritone F clef on 3rd line subbass F clef on 5th line percussion percussion clef tab tablature clef By adding _8 or 8 to the clef name the clef is transposed one octave down or up respectively and _15 and 15 transposes by two octaves The argument clefname must be enclosed in quotes when it contains underscores or digits For example Chapter 6 Basic notation 84 clef G_8 c4 Commonly tweaked properties The command clef treble_8 is equivalent to setting clefGlyph clefPosition which controls the Y position of the clef niddleCPosition and clefOctavation A clef is printed when any of these properties are changed The following example shows possibilities when setting properties manually
320. ts and half sharps are formed by adding eh and ih the following is a series of Cs with increasing pitches set Staff extraNatural f ceseh ceh cih cisih Micro tones are also exported to the MIDI file Bugs There are no generally accepted standards for denoting three quarter flats so LilyPond s symbol does not conform to any standard 6 1 5 Chords A chord is formed by a enclosing a set of pitches in lt and gt A chord may be followed by a duration and a set of articulations just like simple notes lt c e g gt 4 lt c gt 8 For more information about chords see Section 7 2 Chord names page 118 6 1 6 Rests Rests are entered like notes with the note name r ri r2 r4 r8 Whole bar rests centered in middle of the bar must be done with multi measure rests They can be used for a single bar as well as many bars and are discussed in Section 8 2 1 Multi measure rests page 173 A rest s vertical position may be explicitly specified by entering a note with the rest keyword appended the rest will be placed at the note s place This makes manual formatting in polyphonic music easier Automatic rest collision formatting will leave these rests alone a 4Nrest d 4 rest Chapter 6 Basic notation 76 See also Program reference Rest 6 1 7 Skips An invisible rest also called a skip can be entered like a note with note name s or with skip duration a4 a4 s4
321. twinkle Appendix E Cheat sheet twin kle Nchordmode c dim f maj7 context ChordNames lt lt e f c d gt gt s4 s8 s16 lyric hyphen chords printing chord names polyphony spacer rests 275 twin kle Appendix F GNU Free Documentation License 276 Appendix F GNU Free Documentation License Version 1 1 March 2000 Copyright 2000 Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document but changing it is not allowed 0 PREAMBLE The purpose of this License is to make a manual textbook or other written document free in the sense of freedom to assure everyone the effective freedom to copy and redistribute it with or without modifying it either commercially or noncommercially Secondarily this License preserves for the author and publisher a way to get credit for their work while not being considered responsible for modifications made by others This License is a kind of copyleft which means that derivative works of the document must themselves be free in the same sense It complements the GNU General Public License which is a copyleft license designed for free software We have designed this License in order to use it for manuals for free software because free software needs free documentation a free program should come with
322. ty 100 font size 5 meta interfaces finger interface font interface Chapter 9 Changing defaults 214 text script interface text interface side position interface self alignment interface item interface As you can see the Fingering object is nothing more than a bunch of variable settings and the webpage in the Program Reference is directly generated from this definition 9 2 5 Determining the grob property Recall that we wanted to change the position of the 2 in c 2 stemUp f Since the 2 is vertically positioned next to its note we have to meddle with the interface associated with this positioning This is done using side position interface The page for this interface says side position interface Position a victim object this one next to other objects the support The property direction signifies where to put the victim object relative to the support left or right up or down below this description the variable padding is described as padding dimension in staff space Add this much extra space between objects that are next to each other By increasing the value of padding we can move away the fingering The following command inserts 3 staff spaces of white between the note and the fingering once Voverride Voice Fingering padding 3 Inserting this command before the Fingering object is created i e before c2 yields the following result once override
323. ual beams page 94 Here are key signatures accidentals and ties in action relative c time 4 4 key g minor clef treble r4 r8 a8 gis4 b a8 d4 d e 8 fis4 fis8 fis8 eis4 a8 gis gis2 r2 There are some interesting points to note in this example Bar lines and beams are drawn automatically Line breaks are calculated automatically it does not matter where the line breaks are in the source file Finally the order in which time key and clef changes are entered is not relevant in the printout these are ordered according to standard notation conventions Chapter 2 Tutorial 16 2 6 Octave entry To raise a note by an octave add a high quote apostrophe to the note name to lower a note one octave add a low quote comma Middle C is c C 4 c c clef bass c c 61r An example of the use of quotes is in the following Mozart fragment key a major time 6 8 cis 8 d 16 cis 8 e 4 e 8 b 8 cis 16 b 8 d 4 d 8 This example shows that music in a high register needs lots of quotes This makes the input less readable and it is a source of errors The solution is to use relative octave mode This is the most convenient way to copy existing music In relative mode a note without octavation quotes i e the or after a note is chosen so that it is closest to the previous one For example
324. uentialMusic 232 SOSQUAT LAG AA soca hrag page deli 171 sesguiflat markup 171 sesquisharp c c ou eco oer em d iS 171 sesguisharp markup 171 set accidental style 196 setting object properties 210 shapeNoteStyles 194 Sharp nA ao dad 13 Sha shane ore eee eas eae AAA 171 sharp markup ole pl Mee 171 shorten measures 86 side position interface 213 signature Nesin tri dt 225 SIMP A anta 171 S liple Markup innatas dele el 171 SimultaneousMusic 231 singer s NAMES ri IA y Xu ds e en 131 SKIP atre rcc rni PU NA d teer feud 76 SEJpMU STC unu Iu x enean ia 76 skipTypesetting mw 82 SU ad NA WA ee EE AE 21 SIUE Bree 93 SAI AA ex aaa 92 slurs versus ties AI eee eee ee eee 21 spallti retas painens pb RN ede sus p ierant 171 small marku p eexbe ud hrec ade UAE 171 Smaller e anten da RUE RULES iron aa 171 289 smaller mark p u eU eben hd 171 STUIPP CUS sce ari laa 6v NES a pete Ted 9 DOES ist velbeibbbonerew air er p RUP EP 23 soprano letter Nee teks Mea bn ara 83 SOUL Lal eal toes Moke eee aaa 229 space between staves 221 Space note dade eV ei 76 Spaces im lyrieg 2ninilo tie 125 SPACING in pd ende a haa 223 SpacingSpanner
325. ulation directions Cost di f24 2 857 4 E Dynamic signs are made by adding the markings with a backslash to the note c ff c mf en BE TH SIT cf Sfmf Chapter 2 Tutorial 21 Crescendi and decrescendi are started with the commands lt and gt An ending dynamic for example f will finish the de crescendo or the command can be used c2 lt c2 ff gt c2 c2 dep rier A slur is a curve drawn across many notes and indicates legato articulation The starting note and ending note are marked with and respectively d4 c16 cis d e c cis d el d4 ae ESS gt A slur looks like a tie but it has a different meaning A tie simply makes the first note sound longer and can only be used on pairs of notes with the same pitch Slurs indicate the articulations of notes and can be used on larger groups of notes Slurs and ties can be nested Slurs to indicate phrasing can be entered with and V so you can have both legato slurs and phrasing slurs at the same time You cannot have simultaneous slurs or simultaneous phrasing slurs a8 ais b c cis2 b 2 al cis cM a p S For more information on Fingering see Section 6 5 2 Fingering instructions page 99 Articulations see Section 6 5 1 Articulations page 97 Slurs see Section 6 4 2 Slurs page 92 Phrasing sl
326. un the conversion programs These programs are supplied with the LilyPond package and convert a variety of music formats to the 1y format e Appendix A Literature list page 252 contains a set of useful reference books for those who wish to know more on notation and engraving Once you are an experienced user you can use the manual as reference there is an extensive index but the document is also available in a big HTML page which can be searched easily using the search facility of a web browser If you are not familiar with music notation or music terminology especially if you are a non native English speaker it is advisable to consult the glossary as well The music glossary explains musical terms and includes translations to various languages It is a separate document available in HTML and PDF This manual is not complete without a number of other documents They are not available in print but should be included with the documentation package for your platform e Program reference The program reference is a set of heavily cross linked HTML pages which document the nitty gritty details of each and every LilyPond class object and function It is produced directly from the formatting definitions used Almost all formatting functionality that is used internally is available directly to the user For example all variables that control thickness values distances etc can be changed in input files There are a huge number
327. ural44 O timesig mensural32 O timesig mensural94 qd timesig mensural68 5 timesig mensural48 D timesig mensural24 C timesig neomensural22 C timesig neomensural64 flags mensurald04 flags mensurald24 flags mensuralu15 ML i flags mensurald05 flags mensurald25 TON flags mensuralul6 MAD flags mensurald06 TANN flags mensurald26 C SI timesig mensural22 C timesig mensural64 Q timesig mensural34 timesig mensural98 5 timesig mensural68alt C timesig neomensural44 O timesig neomensural32 O timesig neomensural94 269 Appendix C Notation manual details 270 O timesig neomensural34 timesig neomensural68 timesig neomensural98 O timesig neomensural48 5 timesig neomensural68alt D timesig neomensural24 scripts ictus scripts uaccentus scripts daccentus scripts usemicirculus scripts dsemicirculus scripts circulus scripts augmentum scripts usignumcongruentiae scripts dsignumcongruentiae Appendix D Point and click 271 Appendix D Point and click Point and click lets you find notes in the input by clicking on them in the PDF viewer This makes it easier to find input that causes some error in the sheet music When this functionality is active LilyPond adds hyperlinks to the PDF file These hyperlinks are sent to the web browser which opens a text editor with the cursor in the right place To make this chain work the following should done e The PDF viewer must be configu
328. ure rest 174 fermatas special miwa ia 190 FiguredBass EA NA IAEA 158 183 file searching EIA tr 65 file size Output ritiene Pla 271 LINI II ley svp UMS 166 AC A ies 166 FI1l1ed boXxsi cirio e e Sia 166 filled box markup 2 20 21 5o sla 4c eli 166 TFinalexsi cem ee ria E e EE 250 finalisti eterni AA veo qi 149 finding graphical objects 212 finger A orate ais seed yo nb ATO ata ot st 166 finger change 00 c eee eee ee ee eee 99 finger interfaCce i ved ds DRE PES 213 finger narkup n lads e p eret 166 FingerEVent ob eeu NH M SR 212 213 TIN germg s iii iii WA dedo IA 20 99 Fingeringi iper teu oe ceeded bela 100 212 213 fingering event 212 213 Fingering_engraver 212 214 flageolet uscii ripiani 98 flags spite el EE Ee 146 flatis8 eU mete oum cdi e Co A ee utis 13 flat e Priore Ee pu RS eus 166 flat mark p z ok tene RR DERE EIS 166 FoldedRepeatedMusic 112 follow AA ui ati iene 117 followVoi6Ce voe eR i ii 117 Toni cbe o doe ee Ucet 2 font magnification 172 173 font selection ze veo e eye exem 172 font size sini gioia etre Bless 173 font size setting 217 font switching oco ir nk edt pes 162 font interface ove ee Rea rx et 170 font interface ria RS 172 Appendix G LilyPond index font interface i i ia 213 218 TONtSIZOn nin
329. urs see Section 6 4 3 Phrasing slurs page 93 Dynamics see Section 6 5 3 Dynamics page 101 Chapter 2 Tutorial 22 2 10 Combining notes into chords Chords can be made by surrounding pitches with angle brackets Angle brackets are the symbols P and ST r4 lt c e g gt 4 c f a gt 8 You can combine markings like beams and ties with chords They must be placed outside the angled brackets r4 lt c e g gt 8 c f a gt c f a r4 lt c e g gt 8 gt c e g gt c e g gt lt c f a gt TL UM di 2 11 Advanced rhythmic commands A pickup is entered with the keyword partial It is followed by a duration partial 4 isa quarter note upstep and partial 8 an eighth note partial 8 f8 c2de Tuplets are made with the times keyword It takes two arguments a fraction and a piece of music The duration of the piece of music is multiplied by the fraction Triplets make notes occupy 2 3 of their notated duration so a triplet has 2 3 as its fraction times 2 3 18 ga times 2 3 c r c E Lj Chapter 2 Tutorial 23 Grace notes are also made by prefixing a music expression with the keyword appoggiatura or acciaccatura c4 appoggiatura b16 c4 c4 acciaccatura b16 c4 For more information on Grace notes see Section 6 4 6 Grace notes page 95 Tuplets see Section 6 1 10 Tuplets page 77 Pickup
330. usic for a B flat trumpet which begins on concert D one would write transpose c bes el To print this music in B flat again ie producing a trumpet part instead of a concert pitch conductor s score you would wrap the existing music with another transpose transpose bes c transpose c bes e4 See also Program reference TransposedMusic Bugs If you want to use both transpose and relative you must put transpose outside of relative since relative will have no effect music that appears inside a transpose 6 2 4 Bar check Bar checks help detect errors in the durations A bar check is entered using the bar symbol Whenever it is encountered during interpretation it should fall on a measure boundary If it does not a warning is printed In the next example the second bar check will signal an error time 3 4 c2 e4 g2 Bar checks can also be used in lyrics for example lyricmode time 2 4 Twin kle Twin kle Failed bar checks are caused by entering incorrect durations Incorrect durations often com pletely garble up the score especially if the score is polyphonic so a good place to start correcting input is by scanning for failed bar checks and incorrect durations Chapter 6 Basic notation 82 It is also possible to redefine the meaning of This is done by assigning a music expression to pipeSymbol pipeSymbol bar c 2c c 2c
331. vaticana reverse vplica noteheads svaticana inner cephalicus A noteheads svaticana cephalicus Appendix C Notation manual details 266 noteheads svaticana quilisma noteheads ssolesmes incl parvum noteheads ssolesmes auct asc a noteheads ssolesmes auct desc noteheads ssolesmes incl auctum noteheads ssolesmes stropha noteheads ssolesmes stropha aucta noteheads ssolesmes oriscus noteheads smedicaea inclinatum a noteheads smedicaea punctum L noteheads smedicaea rvirga F noteheads smedicaea virga noteheads shufnagel punctum noteheads shufnagel virga noteheads shufnagel lpes amp clefs vaticana do clefs vaticana do change clefs vaticana fa clefs vaticana fa change N clefs medicaea do SR clefs medicaea do_change i clefs medicaea fa clefs medicaea fa change H clefs neomensural c H clefs neomensural c change Appendix C Notation manual details clefs petrucci clefs petrucci clefs petrucci clefs petrucci i i c1 c2 c3 c4 c5 clefs mensural c ii clefs petrucci f gt clefs mensural f N clefs petrucci g N clefs mensural g f clefs hufnagel do f clefs hufnagel fa y custodes hufnagel uO f clefs hufnagel do fa y clefs petrucci cl_change 8 clefs petrucci c2 change clefs petrucci c3 change i clefs petrucci c4_change i clefs petrucci c5 change clefs mensural c change i clefs petrucci f_change x cle
332. very five reset ly and input test bar number regular interval ly Bugs Bar numbers can collide with the StaffGroup bracket if there is one at the top To solve this the padding property of BarNumber can be used to position the number correctly 8 2 5 Instrument names In an orchestral score instrument names are printed at the left side of the staves This can be achieved by setting Staff instrument and Staff instr This will print a string before the start of the staff For the first staff instrument is used for the following ones instr is used set Staff instrument Ploink set Staff instr Plk ci break er Ploink You can also use markup texts to construct more complicated instrument names for example set Staff instrument markup column Clarinetti line in B smaller flat CI 1 Clarinetti o in If you wish to center the instrument names you must center all of them i lt lt new Staff set Staff instrument markup center align Clarinetti line in B smaller flat CLI Chapter 8 Advanced notation 179 new Staff set Staff instrument markup center align Vibraphone GA gt gt Clarinetti in BL Vibraphone For longer instrument names it may be useful to increase the indent setting in the layout block See also Program reference InstrumentName Bugs When you put a name
333. y match the original rule That is no wildcard expansion is taken into account Ntime 1 4 override auto beam setting end 1 16 1 4 1 8 al6 a a a revert auto beam setting end 1 16 1 8 this won t revert it aaaa revert auto beam setting end 1 16 1 4 1 8 this will aaaa Chapter 8 Advanced notation 200 If automatic beams should end on every quarter in 5 4 time specify all endings override auto beam setting end x 1 4 Staff override auto beam setting end 1 2 Staff override auto beam setting end 3 4 Staff override auto beam setting end x 5 4 Staff The same syntax can be used to specify beam starting points In this example automatic beams can only end on a dotted quarter note override auto beam setting end 3 8 override auto beam setting end 1 2 override auto beam setting end 7 8 In 4 4 time signature this means that automatic beams could end only on 3 8 and on the fourth beat of the measure after 3 4 that is 2 times 3 8 has passed within the measure If beams are used to indicate melismata in songs then automatic beaming should be switched off with NautoBeamOff Predefined commands NautoBeam0ff NautoBeamOn Bugs If score ends while an automatic beam has not been ended and is still accepting notes this last beam will not be typeset at all The same holds polyphonic
334. yle to a single Voice instead The following accidental styles are supported default This is the default typesetting behavior It corresponds to 18th century common practice Accidentals are remembered to the end of the measure in which they occur and only on their own octave voice The normal behavior is to remember the accidentals on Staff level This variable however typesets accidentals individually for each voice Apart from that the rule is similar to default As a result accidentals from one voice do not get canceled in other voices which is often an unwanted result context Staff lt lt set accidental style voice esg c e gt gt gt gt xem The voice option should be used if the voices are to be read solely by individual musicians If the staff is to be used by one musician e g a conductor then modern or nodern cautionary should be used instead modern This rule corresponds to the common practice in the 20th century This rule prints the same accidentals as default but temporary accidentals also are canceled in other octaves Furthermore in the same octave they also get canceled in the fol lowing measure Chapter 8 Advanced notation 197 set accidental style modern cis c cis 2 c c ejt itu modern cautionary This rule is similar to modern but the extra accidentals the ones not typeset by default are typeset as cautionary
335. you might write separate files for each instrument part and create a full score file which brings together the individual instrument files Chapter 5 Running LilyPond 72 The initialization of LilyPond is done in a number of files that are included by default when you start the program normally transparent to the user Run lilypond verbose to see a list of paths and files that Lily finds Files placed in directory PATH TO share lilypond VERSION 1y where VERSION is in the form 2 6 1 are on the path and available to Ninclude Files in the current working directory are available to include but a file of the same name in LilyPond s installation takes precedence Files are available to include from directories in the search path specified as an option when invoking lilypond include DIR which adds DIR to the search path The include statement can use full path information but with the Unix convention rather than the DOS Windows For example if stuff 1y is located one directory higher than the current working directory use include stuff ly Chapter 6 Basic notation 73 6 Basic notation This chapter explains how to use all basic notation features 6 1 Note entry This section is about basic notation elements like notes rests and related constructs such as stems tuplets and ties 6 1 1 Notes A note is printed by specifying its pitch and then its duration cis 4 d 8 e 16 c 16
Download Pdf Manuals
Related Search
Related Contents
このたびは当商品をお買い上げ頂き誠にありがとうございます。ご使用に XBee-PRO 900HP/XBee-PRO XSC RF Modules IG4300 Owner`s Manual NTP Edit 2 Quick User-guide for Orbis Company Search Abocom PLE0085I User's Manual StarTech.com 7m Multimode 62.5/125 Duplex Fiber Patch Cable LC - ST inM497-1 User Manual Funktionsbeschreibung Copyright © All rights reserved.
Failed to retrieve file