From: Graham Percival Date: Mon, 24 Sep 2007 19:48:10 +0000 (-0700) Subject: Reduce linewidths to 66 to avoid problems with people's text editor. Added X-Git-Tag: release/2.11.35-1~46^2~129 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=644aaf7fa495930384e446df894b12124b4fd727;p=lilypond.git Reduce linewidths to 66 to avoid problems with people's text editor. Added the first Inspirational Headword. --- diff --git a/Documentation/user/macros.itexi b/Documentation/user/macros.itexi index b6bc417cff..55962b53a1 100644 --- a/Documentation/user/macros.itexi +++ b/Documentation/user/macros.itexi @@ -135,8 +135,6 @@ @end macro - - @c Definitions for references: @c @internalsref @c @rglos diff --git a/Documentation/user/pitches.itely b/Documentation/user/pitches.itely index 0d644bac1c..11c6cd600b 100644 --- a/Documentation/user/pitches.itely +++ b/Documentation/user/pitches.itely @@ -12,6 +12,9 @@ This section discusses how to specify the pitch of notes. +@lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote] +{pitches-headword.ly} + @menu * Writing pitches:: * Changing multiple pitches:: @@ -491,9 +494,9 @@ trumpet which begins on concert D, one would write \transpose c bes @{ e4 @dots{} @} @end example -To print this music in B-flat again (i.e., producing a trumpet part, -instead of a concert pitch conductor's score) you would wrap the -existing music with another @code{transpose} +To print this music in B-flat again (i.e., producing a trumpet +part, instead of a concert pitch conductor's score) you would wrap +the existing music with another @code{transpose} @example \transpose bes c @{ \transpose c bes @{ e4 @dots{} @} @} @@ -688,7 +691,7 @@ A natural sign is printed to cancel any previous accidentals. This can be suppressed by setting the @code{Staff.printKeyCancellation} property. -@lilypond[quote,fragment,ragged-right,fragment,verbatim,relative=2] +@lilypond[quote,fragment,ragged-right,verbatim,relative=2] \key d \major a b cis d \key g \minor @@ -765,7 +768,8 @@ The key of a transposing instrument can also be specified. This applies to many wind instruments, 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 @code{\transposition} +The transposition is entered after the keyword +@code{\transposition} @example \transposition bes %% B-flat clarinet diff --git a/Documentation/user/rhythms.itely b/Documentation/user/rhythms.itely index adcba92fb1..284e016388 100644 --- a/Documentation/user/rhythms.itely +++ b/Documentation/user/rhythms.itely @@ -611,7 +611,8 @@ Automatic beaming does not use the measure grouping specified with @cindex shorten measures @funindex \partial -Partial measures, such as an anacrusis or upbeat, are entered using the +Partial measures, such as an anacrusis or upbeat, are entered +using the @lilypond[quote,ragged-right,fragment,verbatim,relative=2] \partial 16*5 c16 cis d dis e | a2. c,4 | b2 @@ -717,7 +718,8 @@ tsMarkup =\markup { } { - \override Staff.TimeSignature #'stencil = #ly:text-interface::print + \override Staff.TimeSignature #'stencil = + #ly:text-interface::print \override Staff.TimeSignature #'text = #tsMarkup \time 3/2 c'2 \bar ":" c'4 c'4. @@ -1098,7 +1100,8 @@ 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 @code{\bar} command +Special types of bar lines can be forced with the @code{\bar} +command @lilypond[quote,ragged-right,relative=2,fragment,verbatim] c4 \bar "|:" c4 diff --git a/Documentation/user/simultaneous.itely b/Documentation/user/simultaneous.itely index 406c4bae4e..7e6ec60bad 100644 --- a/Documentation/user/simultaneous.itely +++ b/Documentation/user/simultaneous.itely @@ -9,9 +9,9 @@ @node Simultaneous notes @section Simultaneous notes -Polyphony in music refers to having more than one voice occurring in -a piece of music. Polyphony in LilyPond refers to having more than -one voice on the same staff. +Polyphony in music refers to having more than one voice occurring +in a piece of music. Polyphony in LilyPond refers to having more +than one voice on the same staff. @menu * Single voice:: @@ -40,7 +40,8 @@ articulations, just like simple notes 4 8 @end lilypond -For more information about chords, see @ref{Introducing chord names}. +For more information about chords, see @ref{Introducing chord +names}. @node Clusters @@ -48,17 +49,19 @@ For more information about chords, see @ref{Introducing chord names}. @cindex cluster -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 @code{makeClusters} to a sequence of -chords, e.g., +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 @code{makeClusters} to a sequence +of chords, e.g., + @lilypond[quote,ragged-right,relative=2,fragment,verbatim] \makeClusters { } @end lilypond 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. +automatically avoid collisions between ordinary notes and +clusters. @seealso @@ -91,9 +94,10 @@ accurately. Use @code{8 8} instead. @cindex polyphony -The easiest way to enter fragments with more than one voice on a staff -is to enter each voice as a sequence (with @code{@{...@}}), and combine -them simultaneously, separating the voices with @code{\\} +The easiest way to enter fragments with more than one voice on a +staff is to enter each voice as a sequence (with @code{@{...@}}), +and combine them simultaneously, separating the voices with +@code{\\} @funindex \\ @@ -108,26 +112,27 @@ them simultaneously, separating the voices with @code{\\} } @end lilypond -The separator causes @internalsref{Voice} contexts@footnote{Polyphonic -voices are sometimes called @q{layers} in other notation packages} @cindex layers -to be instantiated. They bear the names @code{"1"}, @code{"2"}, etc. In -each of these contexts, vertical direction of slurs, stems, etc., is set + +The separator causes @internalsref{Voice} +contexts@footnote{Polyphonic voices are sometimes +called @q{layers} in other notation packages} to be instantiated. +They bear the names @code{"1"}, @code{"2"}, etc. In each of these +contexts, vertical direction of slurs, stems, etc., is set appropriately. -These voices are all separate from the voice that contains the notes just -outside the @code{<< \\ >>} 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 @code{<< \\ >>} construct. Conversely, parallel voices -from separate @code{<< \\ >>} constructs on the same staff are the -same voice. Here is the same example, with different noteheads and -colors for each -voice. Note that the change to the note-head style in the main voice does -not affect -the inside of the @code{<< \\ >>} constructs. Also, the change to the -second -voice in the first @code{<< \\ >>} construct is effective in the second -@code{<< \\ >>}, and the voice is tied across the two constructs. +These voices are all separate from the voice that contains the +notes just outside the @code{<< \\ >>} 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 @code{<< \\ >>} +construct. Conversely, parallel voices from separate @code{<< \\ +>>} constructs on the same staff are the same voice. Here is the +same example, with different noteheads and colors for each voice. +Note that the change to the note-head style in the main voice does +not affect the inside of the @code{<< \\ >>} constructs. Also, +the change to the second voice in the first @code{<< \\ >>} +construct is effective in the second @code{<< \\ >>}, and the +voice is tied across the two constructs. @cindex note heads, styles @@ -153,8 +158,8 @@ voice in the first @code{<< \\ >>} construct is effective in the second @end lilypond Polyphony does not change the relationship of notes within a -@code{\relative @{ @}} block. Each note is calculated relative -to the note immediately preceding it. +@code{\relative @{ @}} block. Each note is calculated relative to +the note immediately preceding it. @example \relative @{ noteA << noteB \\ noteC >> noteD @} @@ -170,8 +175,8 @@ to the note immediately preceding it. @internalsref{Voice} contexts can also be instantiated manually inside a @code{<< >>} block to create polyphonic music, using -@code{\voiceOne}, up to @code{\voiceFour} to assign stem directions -and a horizontal shift for each part. +@code{\voiceOne}, up to @code{\voiceFour} to assign stem +directions and a horizontal shift for each part. Specifically, @example @@ -188,18 +193,19 @@ is equivalent to >> @end example -The @code{\voiceXXX} commands set the direction of stems, slurs, ties, -articulations, text annotations, augmentation dots of dotted -notes, and fingerings. @code{\voiceOne} and @code{\voiceThree} make -these objects point upwards, while @code{\voiceTwo} and @code{\voiceFour} -make them point downwards. -The command @code{\oneVoice} will revert back to the normal setting. +The @code{\voiceXXX} commands set the direction of stems, slurs, +ties, articulations, text annotations, augmentation dots of dotted +notes, and fingerings. @code{\voiceOne} and @code{\voiceThree} +make these objects point upwards, while @code{\voiceTwo} and +@code{\voiceFour} make them point downwards. The command +@code{\oneVoice} will revert back to the normal setting. -An expression that appears directly inside a @code{<< >>} belongs to -the 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 colored noteheads demonstrate that the main -melody is now in a single voice context. +An expression that appears directly inside a @code{<< >>} belongs +to the 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 colored +noteheads demonstrate that the main melody is now in a single +voice context. @lilypond[quote,ragged-right,verbatim] \new Staff \relative c' { @@ -222,7 +228,9 @@ melody is now in a single voice context. } @end lilypond -The correct definition of the voices allows the melody to be slurred. +The correct definition of the voices allows the melody to be +slurred. + @lilypond[quote,ragged-right,verbatim] \new Staff \relative c' { c16^( d e f @@ -243,8 +251,8 @@ The correct definition of the voices allows the melody to be slurred. @end lilypond Avoiding the @code{\\} separator also allows nesting polyphony -constructs, which in some case might be a more natural way to typeset -the music. +constructs, which in some case might be a more natural way to +typeset the music. @lilypond[quote,ragged-right,verbatim] \new Staff \relative c' { @@ -268,9 +276,9 @@ the music. } @end lilypond -In some instances of complex polyphonic music, you may need additional -voices to avoid collisions between notes. Additional voices are added -by defining an identifier, as shown below: +In some instances of complex polyphonic music, you may need +additional voices to avoid collisions between notes. Additional +voices are added by defining an identifier, as shown below: @lilypond[quote,verbatim,ragged-right,relative=2] voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice) @@ -287,9 +295,10 @@ voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice) @node Collision Resolution @unnumberedsubsubsec Collision Resolution -Normally, note heads with a different number of dots are not merged, but -when the object property @code{merge-differently-dotted} is set in -the @internalsref{NoteCollision} object, they are merged: +Normally, note heads with a different number of dots are not +merged, but when the object property +@code{merge-differently-dotted} is set in the +@internalsref{NoteCollision} object, they are merged: @lilypond[quote,verbatim,fragment,ragged-right,relative=2] \new Voice << { @@ -300,8 +309,8 @@ the @internalsref{NoteCollision} object, they are merged: } \\ { g8.[ f16] g8.[ f16] } >> @end lilypond -Similarly, you can merge half note heads with eighth notes, by setting -@code{merge-differently-headed}: +Similarly, you can merge half note heads with eighth notes, by +setting @code{merge-differently-headed}: @lilypond[quote,ragged-right,fragment,relative=2,verbatim] \new Voice << { @@ -312,8 +321,9 @@ c8 c4. } \\ { c2 c2 } >> @end lilypond @noindent -@code{merge-differently-headed} and @code{merge-differently-dotted} -only apply to opposing stem directions (ie. Voice 1 & 2). +@code{merge-differently-headed} and +@code{merge-differently-dotted} only apply to opposing stem +directions (ie. Voice 1 & 2). LilyPond also vertically shifts rests that are opposite of a stem, for example @@ -323,14 +333,14 @@ for example @end lilypond If three or more notes line up in the same column, -@code{merge-differently-headed} cannot -successfully complete the merge of the two notes that should be merged. -To allow the merge to work properly, apply a @code{\shift} to the note that -should not be merged. In the first measure of following example, -@code{merge-differently-headed} does not work (the half-note head is -solid). In the second measure, @code{\shiftOn} is applied to move the -top @code{g} out of the column, and @code{merge-differently-headed} -works properly. +@code{merge-differently-headed} cannot successfully complete the +merge of the two notes that should be merged. To allow the merge +to work properly, apply a @code{\shift} to the note that should +not be merged. In the first measure of following example, +@code{merge-differently-headed} does not work (the half-note head +is solid). In the second measure, @code{\shiftOn} is applied to +move the top @code{g} out of the column, and +@code{merge-differently-headed} works properly. @lilypond[quote,ragged-right,fragment,verbatim,relative=2] \override Staff.NoteCollision #'merge-differently-headed = ##t @@ -367,16 +377,16 @@ works properly. @funindex \shiftOnnn @code{\shiftOnnn}, @funindex \shiftOff -@code{\shiftOff}: these commands specify the -degree to which chords of the current voice should be shifted. -The outer voices (normally: voice one and -two) have @code{\shiftOff}, while the inner voices (three and four) -have @code{\shiftOn}. @code{\shiftOnn} and @code{\shiftOnnn} define -further shift levels. +@code{\shiftOff}: these commands specify the degree to which +chords of the current voice should be shifted. The outer voices +(normally: voice one and two) have @code{\shiftOff}, while the +inner voices (three and four) have @code{\shiftOn}. +@code{\shiftOnn} and @code{\shiftOnnn} define further shift +levels. -When LilyPond cannot cope, the @code{force-hshift} -property of the @internalsref{NoteColumn} object and pitched rests can -be used to override typesetting decisions. +When LilyPond cannot cope, the @code{force-hshift} property of the +@internalsref{NoteColumn} object and pitched rests can be used to +override typesetting decisions. @lilypond[quote,verbatim,ragged-right] \relative << @@ -393,20 +403,21 @@ be used to override typesetting decisions. @seealso -Program reference: the objects responsible for resolving collisions are -@internalsref{NoteCollision} and @internalsref{RestCollision}. +Program reference: the objects responsible for resolving +collisions are @internalsref{NoteCollision} and +@internalsref{RestCollision}. @refbugs -When using @code{merge-differently-headed} with an upstem eighth or a -shorter note, and a downstem half note, the eighth note gets the wrong -offset. +When using @code{merge-differently-headed} with an upstem eighth +or a shorter note, and a downstem 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 @ref{Clusters}). +recommended to use enharmonic transcription, or to use special +cluster notation (see @ref{Clusters}). @node Automatic part combining @@ -414,10 +425,10 @@ notation (see @ref{Clusters}). @cindex automatic part combining @cindex part combiner -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 +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 @emph{a due} parts are identified and can be marked. @@ -428,9 +439,9 @@ The syntax for part combining is @end example -The following example demonstrates the basic functionality of the part -combiner: putting parts on one staff, and setting stem directions and -polyphony +The following example demonstrates the basic functionality of the +part combiner: putting parts on one staff, and setting stem +directions and polyphony @lilypond[quote,verbatim,ragged-right,fragment] \new Staff \partcombine @@ -438,15 +449,15 @@ polyphony \relative g' { g g r4 r e e g g } @end lilypond -The first @code{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 @code{one}) always gets up stems, and -@q{Solo}, while the second (called @code{two}) always gets down stems and -@q{Solo II}. +The first @code{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 @code{one}) always gets up stems, +and @q{Solo}, while the second (called @code{two}) always gets +down stems and @q{Solo II}. -If you just want the merging parts, and not the textual markings, you -may set the property @code{printPartCombineTexts} to false +If you just want the merging parts, and not the textual markings, +you may set the property @code{printPartCombineTexts} to false @lilypond[quote,verbatim,ragged-right,fragment,relative=2] \new Staff << @@ -474,7 +485,8 @@ properties. Both arguments to @code{\partcombine} will be interpreted as @internalsref{Voice} contexts. If using relative octaves, -@code{\relative} should be specified for both music expressions, i.e., +@code{\relative} should be specified for both music expressions, +i.e., @example \partcombine @@ -483,8 +495,9 @@ Both arguments to @code{\partcombine} will be interpreted as @end example @noindent -A @code{\relative} section that is outside of @code{\partcombine} has -no effect on the pitches of @var{musicexpr1} and @var{musicexpr2}. +A @code{\relative} section that is outside of @code{\partcombine} +has no effect on the pitches of @var{musicexpr1} and +@var{musicexpr2}. @seealso @@ -492,19 +505,19 @@ Program reference: @internalsref{PartCombineMusic}. @refbugs -When @code{printPartCombineTexts} is set, when the two voices play the -same notes on and off, the part combiner may typeset @code{a2} more -than once in a measure. +When @code{printPartCombineTexts} is set, when the two voices play +the same notes on and off, the part combiner may typeset @code{a2} +more than once in a measure. @code{\partcombine} cannot be inside @code{\times}. @code{\partcombine} cannot be inside @code{\relative}. Internally, the @code{\partcombine} interprets both arguments as -@code{Voice}s named @code{one} and @code{two}, and then decides when -the parts can be combined. Consequently, if the arguments switch to -differently named @internalsref{Voice} contexts, the events in those -will be ignored. +@code{Voice}s named @code{one} and @code{two}, and then decides +when the parts can be combined. Consequently, if the arguments +switch to differently named @internalsref{Voice} contexts, the +events in those will be ignored. @node Writing music in parallel diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index 47d6d38b07..8549412cd8 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -17,8 +17,8 @@ Tutorial guidelines: Don't use any other relative=X commands (make it a non-fragment example), and don't use fragment without relative=2. - use "aes" and "ees" instead of "as" and "aes". I know it's not - correct Dutch naming, but let's not confuse people with this until - we get to the Basic notation chapter. + correct Dutch naming, but let's not confuse people with this + until we get to the Basic notation chapter. @end ignore @@ -38,15 +38,15 @@ Tutorial guidelines: @chapter Tutorial This tutorial starts with an introduction to the LilyPond music -language and how to produce printed music. After this first contact we -will explain how to create common musical notation. +language and how to produce printed music. After this first +contact we will explain how to create common musical notation. @ifhtml Many people learn programs by trying and fiddling around with the program. This is also possible with LilyPond. If you click on a picture in the HTML version of this manual, you will see the exact -LilyPond input that was used to generate that image. -Try it on this image +LilyPond input that was used to generate that image. Try it on +this image @c no verbatim here @lilypond[quote,ragged-right] @@ -55,11 +55,12 @@ Try it on this image } @end lilypond -By cutting and pasting everything in the @qq{ly snippet} section, you have a -starting template for experiments. If you like learning in this way, -you will probably want to print out or bookmark the -@ruser{Cheat sheet}, which is a table listing of the most common -commands for quick reference. +By cutting and pasting everything in the @qq{ly snippet} section, +you have a starting template for experiments. If you like +learning in this way, you will probably want to print out or +bookmark the @ruser{Cheat sheet}, which is a table listing of the +most common commands for quick reference. + @end ifhtml @menu @@ -87,8 +88,8 @@ This section gives a basic introduction to working with LilyPond. @node Compiling a file @subsection Compiling a file -The first example demonstrates how to start working with LilyPond. To -create sheet music, we write a text file that specifies the +The first example demonstrates how to start working with LilyPond. +To create sheet music, we write a text file that specifies the notation. For example, if we write @example @@ -107,68 +108,75 @@ the result looks like this } @end lilypond -@strong{Warning:} Every piece of LilyPond input needs to have @strong{@{ curly -braces @}} placed around the input. The braces should also be -surrounded by a space unless they are at the beginning or end of a -line to avoid ambiguities. These may be omitted in some examples in this -manual, but don't forget them in your own music! +@strong{Warning:} Every piece of LilyPond input needs to have +@strong{@{ curly braces @}} placed around the input. The braces +should also be surrounded by a space unless they are at the +beginning or end of a line to avoid ambiguities. These may be +omitted in some examples in this manual, but don't forget them in +your own music! @cindex Case sensitive -In addition, LilyPond input is @strong{case sensitive}. @code{ @{c d e @}} -is valid input; @code{@{ C D E @}} will produce an error message. +In addition, LilyPond input is @strong{case sensitive}. @code{ +@{c d e @}} is valid input; @code{@{ C D E @}} will produce an +error message. @sp 1 @subheading Entering music and viewing output -In this section we will explain what commands to run -and how to view or print the output. +In this section we will explain what commands to run and how to +view or print the output. @subsubheading MacOS X -If you double click @code{LilyPond.app}, it will open with an example -file. Save it, for example, to @file{test.ly} on your Desktop, and -then process it with the menu command @samp{Compile > Typeset File}. -The resulting PDF file will be displayed on your screen. +If you double click @code{LilyPond.app}, it will open with an +example file. Save it, for example, to @file{test.ly} on your +Desktop, and then process it with the menu command @samp{Compile > +Typeset File}. The resulting PDF file will be displayed on your +screen. -Be warned that the first time you ever run LilyPond, it will take a minute -or two because all of the system fonts have to be analyzed first. +Be warned that the first time you ever run LilyPond, it will take +a minute or two because all of the system fonts have to be +analyzed first. -For future use of LilyPond, you should begin by -selecting @q{New} or @q{Open}. You must save your file before -typesetting it. If any errors occur in processing, please see the log -window. +For future use of LilyPond, you should begin by selecting @q{New} +or @q{Open}. You must save your file before typesetting it. If +any errors occur in processing, please see the log window. @subsubheading Windows -On Windows, if you double-click in the LilyPond icon on the Desktop, it -will open a simple text editor with an example file. Save it, for -example, to @file{test.ly} on your Desktop and then double-click on the -file to process it (the file icon looks like a note). After some -seconds, you will get a file @file{test.pdf} -on your desktop. Double-click on this PDF file to view the typeset +On Windows, if you double-click in the LilyPond icon on the +Desktop, it will open a simple text editor with an example file. +Save it, for example, to @file{test.ly} on your Desktop and then +double-click on the file to process it (the file icon looks like a +note). After some seconds, you will get a file @file{test.pdf} on +your desktop. Double-click on this PDF file to view the typeset score. An alternative method to process the @file{test.ly} file -is to drag and drop it onto the LilyPond icon using your mouse pointer. +is to drag and drop it onto the LilyPond icon using your mouse +pointer. -To edit an existing @file{.ly} file, right-click on it and select -@qq{Edit source}. To get an empty file to start from, run the editor -as described above and use @qq{New} in the @qq{File} menu. +To edit an existing @file{.ly} file, right-click on it and +select @qq{Edit source}. To get an empty file to start from, run +the editor as described above and use @qq{New} in +the @qq{File} menu. -Double-clicking the file does not only result in a PDF file, but also -produces a @file{.log} file that contains some information on what LilyPond -has done to the file. If any errors occur, please examine this file. +Double-clicking the file does not only result in a PDF file, but +also produces a @file{.log} file that contains some information on +what LilyPond has done to the file. If any errors occur, please +examine this file. -Note that there are several other text editors available, with better -support for LilyPond, see @rprogram{Text editor support}, for more information. +Note that there are several other text editors available, with +better support for LilyPond, see @rprogram{Text editor support}, +for more information. @subsubheading Unix -Begin by opening a terminal window and starting a text editor. For -example, you could open an xterm and execute -@code{joe}@footnote{There are macro files for VIM addicts, and there -is a @code{LilyPond-mode} for Emacs addicts. If they have not been -installed already, refer to the file @file{INSTALL.txt}. The -easiest editing environment is @file{LilyPondTool}. See +Begin by opening a terminal window and starting a text editor. +For example, you could open an xterm and execute +@code{joe}@footnote{There are macro files for VIM addicts, and +there is a @code{LilyPond-mode} for Emacs addicts. If they have +not been installed already, refer to the file @file{INSTALL.txt}. +The easiest editing environment is @file{LilyPondTool}. See @rprogram{Text editor support}, for more information.}. In your text editor, enter the following input and save the file as @file{test.ly} @@ -208,16 +216,17 @@ Converting to `test.pdf'... The result is the file @file{test.pdf} which you can print or view with the standard facilities of your operating system.@footnote{If your system does not have any such tools installed, you can try -@uref{http://@/www@/.cs@/.wisc@/.edu/@/~ghost/,Ghostscript}, a freely -available package for viewing and printing PDF and PostScript files.} +@uref{http://@/www@/.cs@/.wisc@/.edu/@/~ghost/,Ghostscript}, a +freely available package for viewing and printing PDF and +PostScript files.} @node Simple notation @subsection Simple notation -LilyPond will add some notation elements automatically. In the next -example, we have only specified four pitches, but LilyPond has -added a clef, time signature, and rhythms. +LilyPond will add some notation elements automatically. In the +next example, we have only specified four pitches, but LilyPond +has added a clef, time signature, and rhythms. @lilypond[verbatim,quote,ragged-right] { @@ -226,16 +235,17 @@ added a clef, time signature, and rhythms. @end lilypond @noindent -This behavior may be altered, but in most cases these automatic values -are useful. +This behavior may be altered, but in most cases these automatic +values are useful. @subheading Pitches -The easiest way to enter notes is by using @code{\relative} mode. In -this mode, the @rglos{interval} between the previous note and the -current note is assumed to be within a @rglos{fourth}. We begin by -entering the most elementary piece of music, a @rglos{scale}. +The easiest way to enter notes is by using @code{\relative} mode. +In this mode, the @rglos{interval} between the previous note and +the current note is assumed to be within a @rglos{fourth}. We +begin by entering the most elementary piece of music, a +@rglos{scale}. @lilypond[verbatim,quote,ragged-right] \relative c' { @@ -244,10 +254,11 @@ entering the most elementary piece of music, a @rglos{scale}. } @end lilypond -The initial note is @rglos{middle C}. Each successive note -is within a fourth of the previous note -- in other words, the first -@samp{c} is the closest C to middle C. This is followed by the closest -D to the previous note. We can create melodies which have larger intervals: +The initial note is @rglos{middle C}. Each successive note is +within a fourth of the previous note -- in other words, the first +@samp{c} is the closest C to middle C. This is followed by the +closest D to the previous note. We can create melodies which have +larger intervals: @lilypond[verbatim,quote,ragged-right] \relative c' { @@ -257,12 +268,13 @@ D to the previous note. We can create melodies which have larger intervals: @end lilypond @noindent -As you may notice, this example does not start on middle C. The first -note -- the @samp{d} -- is the closest D to middle C. +As you may notice, this example does not start on middle C. The +first note -- the @samp{d} -- is the closest D to middle C. -To add intervals that are larger than a fourth, we can raise the octave -by adding a single quote @code{'} (or apostrophe) to the note name. We can -lower the octave by adding a comma @code{,} to the note name. +To add intervals that are larger than a fourth, we can raise the +octave by adding a single quote @code{'} (or apostrophe) to the +note name. We can lower the octave by adding a comma @code{,} to +the note name. @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -272,18 +284,19 @@ lower the octave by adding a comma @code{,} to the note name. @end lilypond @noindent -To change a note by two (or more!) octaves, we use multiple @code{''} or -@code{,,} -- but be careful that you use two single quotes @code{''} and -not one double quote @code{"}@tie{}! The initial value in -@code{\relative c'} may also be modified like this. +To change a note by two (or more!) octaves, we use multiple +@code{''} or @code{,,} -- but be careful that you use two single +quotes @code{''} and not one double quote @code{"}@tie{}! The +initial value in @code{\relative c'} may also be modified like +this. @subheading Durations (rhythms) -The @rglos{duration} of a note is specified by a number after the note -name. @samp{1} for a @rglos{whole note}, @samp{2} for a @rglos{half note}, -@samp{4} for a @rglos{quarter note} and so on. Beams are added -automatically. +The @rglos{duration} of a note is specified by a number after the +note name. @samp{1} for a @rglos{whole note}, @samp{2} for a +@rglos{half note}, @samp{4} for a @rglos{quarter note} and so on. +Beams are added automatically. @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -295,9 +308,11 @@ automatically. @noindent If you do not specify a duration, the previous duration is used -for the next note. The duration of the first note defaults to a quarter. +for the next note. The duration of the first note defaults to a +quarter. -To create @rglos{dotted note}s, add a dot @samp{.} to the duration number. +To create @rglos{dotted note}s, add a dot @samp{.} to the duration +number. @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -321,7 +336,8 @@ A @rglos{rest} is entered just like a note with the name @samp{r}: @subheading Time signature -The @rglos{time signature}) can be set with the @code{\time} command: +The @rglos{time signature}) can be set with the @code{\time} +command: @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -384,36 +400,34 @@ see @ruser{Clef}. @node Working on text files @subsection Working on text files -LilyPond input files are similar to source files in many common programming languages. -They are case sensitive, and white-space is generally equivalent. Expressions are -formed with curly braces @{ @}, and comments are denoted with @code{%} or -@code{%@{ ... %@}}. +LilyPond input files are similar to source files in many common +programming languages. They are case sensitive, and white-space +is generally equivalent. Expressions are formed with curly braces +@{ @}, and comments are denoted with @code{%} or @code{%@{ ... +%@}}. -If the previous sentence sounds like nonsense, don't worry! We'll explain -what all these terms mean: +If the previous sentence sounds like nonsense, don't worry! We'll +explain what all these terms mean: @itemize @cindex Case sensitive @item @strong{Case sensitive}: -it matters whether you enter a letter -in lower case (i.e. @code{a, b, s, t}) or upper case (i.e. -@code{A, B, S, T}). Notes are lower case: @code{@{ c d e @}} -is valid input; @code{@{ C D E @}} will produce an error message. +it matters whether you enter a letter in lower case (i.e. @code{a, +b, s, t}) or upper case (i.e. @code{A, B, S, T}). Notes are +lower case: @code{@{ c d e @}} is valid input; @code{@{ C D E @}} +will produce an error message. @item @strong{Whitespace insensitive}: -it does not matter how many -spaces (or new lines) you add. @code{@{ c d e @}} means the same thing -as @code{@{ c @tie{} @tie{} @tie{} d e @}} and -@example - @{ -c d - e @} -@end example +it does not matter how many spaces (or new lines) you add. +@code{@{ c d e @}} means the same thing as @code{@{ c @tie{} +@tie{} @tie{} d e @}} and @example @{ c d e +@} @end example @noindent -Of course, the previous example is hard to read. A good rule of thumb -is to indent code blocks with either a tab or two spaces: +Of course, the previous example is hard to read. A good rule of +thumb is to indent code blocks with either a tab or two spaces: + @example @{ c d e @@ -421,27 +435,28 @@ is to indent code blocks with either a tab or two spaces: @end example @item @strong{Expressions:} -Every piece of LilyPond input needs to have -@strong{@{ curly braces @}} placed around the input. These braces tell -LilyPond that the input is a single music expression, just like -parenthesis @samp{()} in mathematics. The braces should -be surrounded by a space unless they are at the beginning or end of a -line to avoid ambiguities. +Every piece of LilyPond input needs to have @strong{@{ curly +braces @}} placed around the input. These braces tell LilyPond +that the input is a single music expression, just like parenthesis +@samp{()} in mathematics. The braces should be surrounded by a +space unless they are at the beginning or end of a line to avoid +ambiguities. -A function (such as @code{\relative @{ @}}) also counts as a single -music expression. +A function (such as @code{\relative @{ @}}) also counts as a +single music expression. @cindex comments @cindex line comment @cindex block comment @item @strong{Comments}: -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 @samp{%} -introduces a line comment; anything after @samp{%} on that line is -ignored. A block comment marks a whole section of music -input as a comment. Anything that is enclosed in @code{%@{} and @code{%@}} is -ignored. (Comments do not nest.) The following fragment shows possible uses for comments +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 +@samp{%} introduces a line comment; anything after @samp{%} on +that line is ignored. A block comment marks a whole section of +music input as a comment. Anything that is enclosed in @code{%@{} +and @code{%@}} is ignored. (Comments do not nest.) The following +fragment shows possible uses for comments @example % notes for twinkle twinkle follow @@ -466,14 +481,14 @@ There are more tips for constructing input files in @subsection How to read the tutorial As we saw in @ruser{Working on text files}, LilyPond input must be -surrounded by @{ @} marks or a @code{\relative c'' @{ ... @}}. For the -rest of this manual, most examples will omit this. +surrounded by @{ @} marks or a @code{\relative c'' @{ ... @}}. +For the rest of this manual, most examples will omit this. -If you are reading the HTML documentation and wish to see the exact -exact LilyPond code that was used to create the example, simply click -on the picture. If you are not reading the HTML version, you could -copy and paste the displayed input, but you @strong{must} add the -@code{\relative c'' @{ @}} like this: +If you are reading the HTML documentation and wish to see the +exact exact LilyPond code that was used to create the example, +simply click on the picture. If you are not reading the HTML +version, you could copy and paste the displayed input, but you +@strong{must} add the @code{\relative c'' @{ @}} like this: @example \relative c'' @{ @@ -481,13 +496,13 @@ copy and paste the displayed input, but you @strong{must} add the @} @end example -Why omit the braces? Most examples -in this manual can be inserted into the middle of a longer piece of -music. For these examples, it does not make sense to add -@code{\relative c'' @{ @}} -- you should not place a @code{\relative} -inside another @code{\relative}, so you would not be able to copy -a small documentation example and paste it inside a longer piece -of your own. +Why omit the braces? Most examples in this manual can be inserted +into the middle of a longer piece of music. For these examples, +it does not make sense to add @code{\relative c'' @{ @}} -- you +should not place a @code{\relative} inside another +@code{\relative}, so you would not be able to copy a small +documentation example and paste it inside a longer piece of your +own. @node Single staff notation @@ -509,17 +524,17 @@ on one staff. @node Relative note names @subsection Relative note names -As we saw in @ruser{Simple notation}, LilyPond calculates the pitch of -each note relative to the previous one@footnote{There is another mode of -entering pitches, @ruser{Absolute note names}, but in practice relative -mode is much easier and safer to use.}. If no extra octave marks -(@code{'} and @code{,}) are added, it assumes that each pitch is within -a fourth of the previous note. +As we saw in @ruser{Simple notation}, LilyPond calculates the +pitch of each note relative to the previous one@footnote{There is +another mode of entering pitches, @ruser{Absolute note names}, but +in practice relative mode is much easier and safer to use.}. If +no extra octave marks (@code{'} and @code{,}) are added, it +assumes that each pitch is within a fourth of the previous note. -LilyPond examines pitches based on the note names -- in other words, -an augmented fourth is @emph{not} the same as a diminished fifth. If we -begin at a C, then an F-sharp will be placed a higher than the C, while -a G-flat will be placed lower than the C. +LilyPond examines pitches based on the note names -- in other +words, an augmented fourth is @emph{not} the same as a diminished +fifth. If we begin at a C, then an F-sharp will be placed a +higher than the C, while a G-flat will be placed lower than the C. @lilypond[verbatim,quote,ragged-right,fragment,relative=2] c2 fis @@ -543,13 +558,13 @@ see @ruser{Octave check}. @subheading Accidentals -A @rglos{sharp} pitch is made by adding @samp{is} to -the name, and a @rglos{flat} pitch by adding @samp{es}. As -you might expect, a @rglos{double sharp} or @rglos{double flat} is -made by adding @samp{isis} or @samp{eses}@footnote{This syntax -derived from note naming conventions in Nordic and Germanic languages, -like German and Dutch. To use other names for accidentals, see -@ruser{Note names in other languages}.} +A @rglos{sharp} pitch is made by adding @samp{is} to the name, and +a @rglos{flat} pitch by adding @samp{es}. As you might expect, a +@rglos{double sharp} or @rglos{double flat} is made by adding +@samp{isis} or @samp{eses}@footnote{This syntax derived from note +naming conventions in Nordic and Germanic languages, like German +and Dutch. To use other names for accidentals, see @ruser{Note +names in other languages}.} @lilypond[verbatim,quote,ragged-right,fragment,relative=2] cis1 ees fisis, aeses @@ -573,19 +588,20 @@ a @subheading Warning: key signatures and pitches To determine whether to print an accidental, LilyPond examines the -pitches and the key signature. The key signature only affects -the @emph{printed} accidentals, not the actual pitches! This is a -feature that often causes confusion to newcomers, so let us explain it -in more detail. +pitches and the key signature. The key signature only affects the +@emph{printed} accidentals, not the actual pitches! 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 -@emph{printed} 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, so they will -not be added automatically, and you must enter what you want to hear. +layout. The alteration (flat, natural or sharp) of a note is part +of the pitch, and is therefore musical content. Whether an +accidental (a @emph{printed} 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, so they will not be added +automatically, and you must enter what you want to hear. In this example @@ -595,24 +611,24 @@ d cis fis @end lilypond @noindent -No note has a printed accidental, but you must still add the @samp{is} to -@code{cis} and @code{fis}. +No note has a printed accidental, but you must still add the +@samp{is} to @code{cis} and @code{fis}. -The code @samp{e} does not mean @qq{print a black dot just below the -first line of the staff.} Rather, it means: @qq{there is a note with -pitch E-natural.} In the key of A-flat major, it @emph{does} get an -accidental: +The code @samp{e} does not mean @qq{print a black dot just below +the first line of the staff.} Rather, it means: @qq{there is a +note with pitch E-natural.} In the key of A-flat major, it +@emph{does} get an accidental: @lilypond[verbatim,quote,ragged-right,fragment,relative=2] \key aes \major e @end lilypond -Adding all alterations explicitly might require a little more effort -when typing, but the advantage is that transposing is easier, and -accidentals can be printed according to different conventions. See -@ruser{Automatic accidentals}, for some examples how accidentals can be printed -according to different rules. +Adding all alterations explicitly might require a little more +effort when typing, but the advantage is that transposing is +easier, and accidentals can be printed according to different +conventions. See @ruser{Automatic accidentals}, for some examples +how accidentals can be printed according to different rules. @seealso @quotation @@ -630,8 +646,8 @@ see @ruser{Key signature}. @cindex ties @subheading Ties -A @rglos{tie} is created by appending a tilde @samp{~} to the first -note being tied +A @rglos{tie} is created by appending a tilde @samp{~} to the +first note being tied @lilypond[verbatim,quote,ragged-right,fragment,relative=2] g4~ g c2~ @@ -641,8 +657,9 @@ c4 ~ c8 a8 ~ a2 @cindex slurs @subheading Slurs -A @rglos{slur} is a curve drawn across many notes. The starting note -and ending note are marked with @samp{(} and @samp{)} respectively. +A @rglos{slur} is a curve drawn across many notes. The starting +note and ending note are marked with @samp{(} and @samp{)} +respectively. @lilypond[verbatim,quote,ragged-right,fragment,relative=2] d4( c16) cis( d e c cis d) e( d4) @@ -652,10 +669,10 @@ d4( c16) cis( d e c cis d) e( d4) @cindex phrasing slurs @subheading Phrasing slurs -Slurs to indicate longer phrasing can be entered with @code{\(} and -@code{\)}. You can have both legato slurs and phrasing slurs at the -same time, but you cannot have simultaneous slurs or simultaneous -phrasing slurs. +Slurs to indicate longer phrasing can be entered with @code{\(} +and @code{\)}. You can have both legato slurs and phrasing slurs +at the same time, but you cannot have simultaneous slurs or +simultaneous phrasing slurs. @lilypond[verbatim,quote,ragged-right,fragment,relative=2] a8(\( ais b c) cis2 b'2 a4 cis,\) @@ -666,11 +683,11 @@ a8(\( ais b c) cis2 b'2 a4 cis,\) @cindex slurs versus ties @subheading Warnings: slurs vs. ties -A slur looks like a @rglos{tie}, but it has a different meaning. A -tie simply makes the first note 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. +A slur looks like a @rglos{tie}, but it has a different meaning. +A tie simply makes the first note 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. @lilypond[verbatim,quote,ragged-right,fragment,relative=2] c2~( c8 fis fis4 ~ fis2 g2) @@ -697,8 +714,8 @@ see @ruser{Phrasing slurs}. @cindex staccato @subheading Articulations -Common @rglos{articulation}s can be added to a note using a dash @samp{-} -and a single character: +Common @rglos{articulation}s can be added to a note using a dash +@samp{-} and a single character: @lilypond[verbatim,quote,ragged-right,fragment,relative=2] c-. c-- c-> c-^ c-+ c-_ @@ -706,25 +723,26 @@ c-. c-- c-> c-^ c-+ c-_ @cindex fingering @subheading Fingerings -Similarly, fingering indications can be added to a note using a dash -(@samp{-}) and the digit to be printed: +Similarly, fingering indications can be added to a note using a +dash (@samp{-}) and the digit to be printed: @lilypond[verbatim,quote,ragged-right,fragment,relative=2] c-3 e-5 b-2 a-1 @end lilypond -Articulations and fingerings are usually placed automatically, but you -can specify a direction using @samp{^} (up) or @samp{_} (down). You can -also use multiple articulations on the same note. However, in most cases -it is best to let LilyPond determine the articulation directions. +Articulations and fingerings are usually placed automatically, but +you can specify a direction using @samp{^} (up) or @samp{_} +(down). You can also use multiple articulations on the same note. +However, in most cases it is best to let LilyPond determine the +articulation directions. @lilypond[verbatim,quote,ragged-right,fragment,relative=2] c_-^1 d^. f^4_2-> e^-_+ @end lilypond @subheading Dynamics -Dynamic signs are made by adding the markings (with a backslash) to -the note +Dynamic signs are made by adding the markings (with a backslash) +to the note @lilypond[verbatim,quote,ragged-right,fragment,relative=2] c\ff c\mf c\p c\pp @@ -734,9 +752,9 @@ c\ff c\mf c\p c\pp @cindex decrescendo @cindex crescendo -Crescendi and decrescendi are started with the commands @code{\<} and -@code{\>}. An ending dynamic, for example @code{\f}, will finish the -(de)crescendo, or the command @code{\!} can be used +Crescendi and decrescendi are started with the commands @code{\<} +and @code{\>}. An ending dynamic, for example @code{\f}, will +finish the (de)crescendo, or the command @code{\!} can be used @lilypond[verbatim,quote,ragged-right,fragment,relative=2] c2\< c2\ff\> c2 c2\! @@ -767,8 +785,8 @@ a8 ais d ees r d c16 b a8 @noindent If you do not like the automatic beams, they may be overridden -manually. Mark the first note to be beamed with @samp{[} and the last one -with @samp{]}. +manually. Mark the first note to be beamed with @samp{[} and the +last one with @samp{]}. @lilypond[verbatim,quote,ragged-right,fragment,relative=2] a8[ ais] d[ ees r d] a b @@ -794,8 +812,8 @@ see @ruser{Manual beams}. @subheading Partial measure A pickup (or @rglos{anacrusis}) is entered with the keyword -@code{\partial}. It is followed by a duration: @code{\partial 4} is -a quarter note pickup and @code{\partial 8} an eighth note. +@code{\partial}. It is followed by a duration: @code{\partial 4} +is a quarter note pickup and @code{\partial 8} an eighth note. @lilypond[verbatim,quote,ragged-right,fragment,relative=2] \partial 8 @@ -807,9 +825,10 @@ f8 c2 d @subheading Tuplets Tuplets are made with the @code{\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 +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 @lilypond[verbatim,quote,ragged-right,fragment,relative=2] \times 2/3 { f8 g a } @@ -823,8 +842,8 @@ of music is multiplied by the fraction. Triplets make notes occupy @cindex appoggiatura @subheading Grace notes -Grace notes are created with the @code{\grace} command, although they -can also be created by prefixing a music expression with the +Grace notes are created with the @code{\grace} command, although +they can also be created by prefixing a music expression with the keyword @code{\appoggiatura} or @code{\acciaccatura} @lilypond[verbatim,quote,ragged-right,fragment,relative=2] @@ -849,13 +868,13 @@ see @ruser{Partial measures}. @node Multiple notes at once @section Multiple notes at once -This section introduces having more than one note at the same time: -multiple instruments, multiple staves for a single instrument (i.e. piano), -and chords. +This section introduces having more than one note at the same +time: multiple instruments, multiple staves for a single +instrument (i.e. piano), and chords. -Polyphony in music refers to having more than one voice occurring in -a piece of music. Polyphony in LilyPond refers to having more than -one voice on the same staff. +Polyphony in music refers to having more than one voice occurring +in a piece of music. Polyphony in LilyPond refers to having more +than one voice on the same staff. @menu * Music expressions explained:: @@ -870,22 +889,23 @@ one voice on the same staff. @subsection Music expressions explained In LilyPond input files, music is represented by @emph{music -expressions}. A single note is a music expression, although it is not -valid input all on its own. +expressions}. A single note is a music expression, although it is +not valid input all on its own. @lilypond[verbatim,quote,ragged-right,fragment,relative=2] a4 @end lilypond -Enclosing a group of notes in braces creates a new music expression: +Enclosing a group of notes in braces creates a new music +expression: @lilypond[verbatim,quote,ragged-right,fragment,relative=2] { a4 g4 } @end lilypond -Putting a group of music expressions (e.g. notes) in braces means that -they are in sequence (i.e. each one follows the previous one). The result -is another music expression: +Putting a group of music expressions (e.g. notes) in braces means +that they are in sequence (i.e. each one follows the previous +one). The result is another music expression: @lilypond[verbatim,quote,ragged-right,fragment,relative=2] { { a4 g } f g } @@ -895,11 +915,12 @@ is another music expression: This technique is useful for polyphonic music. To enter music with more voices or more staves, we combine expressions in -parallel. To indicate that two voices should play at the same time, -simply enter a simultaneous combination of music expressions. A -@q{simultaneous} music expression is formed by enclosing expressions inside -@code{<<} and @code{>>}. In the following example, three sequences (all -containing two separate notes) are combined simultaneously: +parallel. To indicate that two voices should play at the same +time, simply enter a simultaneous combination of music +expressions. A @q{simultaneous} music expression is formed by +enclosing expressions inside @code{<<} and @code{>>}. In the +following example, three sequences (all containing two separate +notes) are combined simultaneously: @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -911,21 +932,22 @@ containing two separate notes) are combined simultaneously: } @end lilypond -Note that we have indented each level of the input with a different -amount of space. LilyPond does not care how much (or little) space there -is at the beginning of a line, but indenting LilyPond code like this makes -it much easier for humans to read. +Note that we have indented each level of the input with a +different amount of space. LilyPond does not care how much (or +little) space there is at the beginning of a line, but indenting +LilyPond code like this makes it much easier for humans to read. -@strong{Warning}: each note is relative to the -previous note in the input, not relative to the @code{c''} in the -initial @code{\relative} command. +@strong{Warning}: each note is relative to the previous note in +the input, not relative to the @code{c''} in the initial +@code{\relative} command. @subheading Simultaneous music expressions: single staff -To determine the number of staves in a piece, LilyPond looks at the first -expression. If it is a single note, there is one staff; if there is a -simultaneous expression, there is more than one staff. +To determine the number of staves in a piece, LilyPond looks at +the first expression. If it is a single note, there is one staff; +if there is a simultaneous expression, there is more than one +staff. @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -938,10 +960,10 @@ simultaneous expression, there is more than one staff. @cindex music expression @subheading Analogy: mathematical expressions -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, +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, @example 1 @@ -953,26 +975,28 @@ you can make arbitrarily complex and large expressions. For example, ((1 + 2) * 3) / (4 * 5) @end example -This is a sequence of expressions, where each expression is contained -in the next (larger) one. The simplest expressions are numbers, and larger -ones are made by combining expressions with operators (like @samp{+}, -@samp{*} and @samp{/}) and parentheses. Like mathematical expressions, -music expressions can be nested arbitrarily deep, which is necessary -for complex music like polyphonic scores. +This is a sequence of expressions, where each expression is +contained in the next (larger) one. The simplest expressions are +numbers, and larger ones are made by combining expressions with +operators (like @samp{+}, @samp{*} and @samp{/}) and parentheses. +Like mathematical expressions, music expressions can be nested +arbitrarily deep, which is necessary for complex music like +polyphonic scores. @node Multiple staves @subsection Multiple staves -As we saw in @ruser{Music expressions explained}, LilyPond input files -are constructed out of music expressions. If the score begins with -simultaneous music expressions, LilyPond creates multiples staves. However, -it is easier to see what happens if we create each staff explicitly. +As we saw in @ruser{Music expressions explained}, LilyPond input +files are constructed out of music expressions. If the score +begins with simultaneous music expressions, LilyPond creates +multiples staves. However, it is easier to see what happens if we +create each staff explicitly. To print more than one staff, each piece of music that makes up a staff is marked by adding @code{\new Staff} before it. These -@code{Staff} elements are then combined in parallel with @code{<<} and -@code{>>}: +@code{Staff} elements are then combined in parallel with @code{<<} +and @code{>>}: @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -983,26 +1007,25 @@ staff is marked by adding @code{\new Staff} before it. These } @end lilypond -The command @code{\new} introduces a @q{notation context.} A notation -context is an environment in which musical events (like notes or -@code{\clef} commands) are interpreted. For simple pieces, such -notation contexts are created automatically. For more complex pieces, it -is best to mark contexts explicitly. +The command @code{\new} introduces a @q{notation context.} A +notation context is an environment in which musical events (like +notes or @code{\clef} commands) are interpreted. For simple +pieces, such notation contexts are created automatically. For +more complex pieces, it is best to mark contexts explicitly. There are several types of contexts. @code{Score}, @code{Staff}, -and @code{Voice} handle melodic notation, while @code{Lyrics} sets lyric -texts and @code{ChordNames} prints chord names. +and @code{Voice} handle melodic notation, while @code{Lyrics} sets +lyric texts and @code{ChordNames} prints chord names. In terms of syntax, prepending @code{\new} to a music expression -creates a bigger music expression. In this way it resembles the minus -sign in mathematics. The formula @math{(4+5)} is an expression, so -@math{-(4+5)} is a bigger expression. +creates a bigger music expression. In this way it resembles the +minus sign in mathematics. The formula @math{(4+5)} is an +expression, so @math{-(4+5)} is a bigger expression. -Time signatures entered in one staff affects all other +Time signatures entered in one staff affects all other staves@footnote{This behavior may be changed if desired; see -@ruser{Polymetric notation}, for details.}. On the other hand, -the key signature of one staff does @emph{not} affect other -staves. +@ruser{Polymetric notation}, for details.}. On the other hand, the +key signature of one staff does @emph{not} affect other staves. @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -1021,9 +1044,10 @@ staves. @cindex staff switch, manual @cindex cross staff voice, manual -Piano music is typeset in two staves connected by a brace. Printing -such a staff is similar to the polyphonic example in @ruser{Multiple staves}, -but now this entire expression is inserted inside a @code{PianoStaff}: +Piano music is typeset in two staves connected by a brace. +Printing such a staff is similar to the polyphonic example in +@ruser{Multiple staves}, but now this entire expression is +inserted inside a @code{PianoStaff}: @example \new PianoStaff << @@ -1053,15 +1077,15 @@ See @ruser{Piano music}. @subsection Combining notes into chords @cindex chords -Chords can be made by surrounding pitches with single angle brackets. Angle -brackets are the symbols @samp{<} and @samp{>}. +Chords can be made by surrounding pitches with single angle +brackets. Angle brackets are the symbols @samp{<} and @samp{>}. @lilypond[quote,fragment,verbatim,relative=2,fragment] r4 4 2 @end lilypond -You can combine markings like beams and ties with chords. They must -be placed outside the angle brackets +You can combine markings like beams and ties with chords. They +must be placed outside the angle brackets @lilypond[quote,fragment,verbatim,relative=2,fragment] r4 8[ ]~ 2 @@ -1078,14 +1102,14 @@ r4 8\>( 4 \!) @cindex polyphony @cindex multiple voices @cindex voices, more -- on a staff -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. +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 -@code{@{...@}}) and combining these simultaneously, separating the -voices with @code{\\} +Entering such parts is done by entering each voice as a sequence +(with @code{@{...@}}) and combining these simultaneously, +separating the voices with @code{\\} @lilypond[verbatim,quote,ragged-right,fragment,relative=2] << @@ -1094,10 +1118,11 @@ voices with @code{\\} >> @end lilypond -For polyphonic music typesetting, spacer rests can also be convenient; -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 (@samp{s}) instead of a normal rest (@samp{r}), +For polyphonic music typesetting, spacer rests can also be +convenient; 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 (@samp{s}) instead of a normal +rest (@samp{r}), @lilypond[verbatim,quote,ragged-right,fragment,relative=2] << @@ -1170,9 +1195,9 @@ syllable with a space. @cindex melisma @cindex extender line -This melody ends on a @rglos{melisma}, a single syllable (@q{free}) -sung to more than one note. This is indicated with an @emph{extender -line}. It is entered as two underscores @code{__}: +This melody ends on a @rglos{melisma}, a single syllable +(@q{free}) sung to more than one note. This is indicated with an +@emph{extender line}. It is entered as two underscores @code{__}: @lilypond[verbatim,quote,ragged-right] << @@ -1212,35 +1237,35 @@ discussed in @ruser{Vocal music}. @cindex chords @cindex chord names -In popular music it is common to denote accompaniment with chord names. -Such chords can be entered like notes, +In popular music it is common to denote accompaniment with chord +names. Such chords can be entered like notes, @lilypond[verbatim,quote,ragged-right] \chordmode { c2 f4. g8 } @end lilypond Now each pitch is read as the root of a chord instead of a note. -This mode is switched on with @code{\chordmode}. Other chords can be -created by adding modifiers after a colon. The -following example shows a few common modifiers: +This mode is switched on with @code{\chordmode}. Other chords can +be created by adding modifiers after a colon. The following +example shows a few common modifiers: @lilypond[verbatim,quote,ragged-right] \chordmode { c2 f4:m g4:maj7 gis1:dim7 } @end lilypond -For lead sheets, chords are not printed on staves, but as names on a -line for themselves. This is achieved by using @code{\chords} instead -of @code{\chordmode}. This uses the same syntax as @code{\chordmode}, -but renders the notes in a @code{ChordNames} context, with the -following result: +For lead sheets, chords are not printed on staves, but as names on +a line for themselves. This is achieved by using @code{\chords} +instead of @code{\chordmode}. This uses the same syntax as +@code{\chordmode}, but renders the notes in a @code{ChordNames} +context, with the following result: @lilypond[verbatim,quote,ragged-right] \chords { c2 f4.:m g4.:maj7 gis8:dim7 } @end lilypond @cindex lead sheet -When put together, chord names, lyrics and a melody form -a lead sheet, +When put together, chord names, lyrics and a melody form a lead +sheet, @lilypond[verbatim,quote,ragged-right] << @@ -1256,17 +1281,17 @@ a lead sheet, @seealso @quotation -A complete list of modifiers and other options for layout can be found -in @ruser{Chords}. +A complete list of modifiers and other options for layout can be +found in @ruser{Chords}. @end quotation @node Final touches @section Final touches -This is the final section of the tutorial; it demonstrates how to add the -final touches to simple pieces, and provides an introduction to the rest -of the manual. +This is the final section of the tutorial; it demonstrates how to +add the final touches to simple pieces, and provides an +introduction to the rest of the manual. @menu * Version number:: @@ -1282,8 +1307,8 @@ of the manual. @subsection Version number @cindex versioning -The @code{\version} statement records the version of LilyPond that was -used to write the file: +The @code{\version} statement records the version of LilyPond that +was used to write the file: @example \version "2.11.23" @@ -1292,19 +1317,20 @@ used to write the file: @noindent by convention, this is placed at the top of your LilyPond file. -These annotations make future upgrades of LilyPond go more smoothly. -Changes in the syntax are handled with a special program, -@file{convert-ly} (see @rprogram{Updating files with convert-ly}), and -it uses @code{\version} to determine what rules to apply. +These annotations make future upgrades of LilyPond go more +smoothly. Changes in the syntax are handled with a special +program, @file{convert-ly} (see @rprogram{Updating files with +convert-ly}), and it uses @code{\version} to determine what rules +to apply. @node Adding titles @subsection Adding titles -The title, composer, opus number, and similar information are entered -in the @code{\header} block. This exists outside of the main -music expression; the @code{\header} block is usually placed underneath -the @ruser{Version number}. +The title, composer, opus number, and similar information are +entered in the @code{\header} block. This exists outside of the +main music expression; the @code{\header} block is usually placed +underneath the @ruser{Version number}. @example \version "2.11.23" @@ -1319,22 +1345,23 @@ the @ruser{Version number}. @} @end example -When the file is processed, the title and composer are printed above -the music. More information on titling can be found in @ruser{Creating -titles}. +When the file is processed, the title and composer are printed +above the music. More information on titling can be found in +@ruser{Creating titles}. @node Absolute note names @subsection Absolute note names -So far we have always used @code{\relative} to define pitches. This is -the easiest way to enter most music, but another way of defining pitches -exists: absolute mode. +So far we have always used @code{\relative} to define pitches. +This is the easiest way to enter most music, but another way of +defining pitches exists: absolute mode. If you omit the @code{\relative}, LilyPond treats all pitches as -absolute values. A @code{c'} will always mean middle C, a @code{b} will -always mean the note one step below middle C, and a @code{g,} will -always mean the note on the bottom staff of the bass clef. +absolute values. A @code{c'} will always mean middle C, a +@code{b} will always mean the note one step below middle C, and a +@code{g,} will always mean the note on the bottom staff of the +bass clef. @lilypond[quote,verbatim,ragged-right] { @@ -1361,8 +1388,8 @@ Here is a four-octave scale: } @end lilypond -As you can see, writing a melody in the treble clef involves a lot of -quote ' marks. Consider this fragment from Mozart: +As you can see, writing a melody in the treble clef involves a lot +of quote @code{'} marks. Consider this fragment from Mozart: @lilypond[quote,verbatim,ragged-right] { @@ -1373,9 +1400,9 @@ quote ' marks. Consider this fragment from Mozart: } @end lilypond -All these quotes makes the input less readable and it is a source of -errors. With @code{\relative}, the previous example is much easier -to read: +All these quotes makes the input less readable and it is a source +of errors. With @code{\relative}, the previous example is much +easier to read: @lilypond[quote,verbatim,ragged-right] \relative c'' { @@ -1386,25 +1413,29 @@ to read: } @end lilypond -If you make a mistake with an octave mark (@code{'} or @code{,}) while -working in @code{\relative} mode, it is very obvious -- many notes will -be in the wrong octave. When working in absolute mode, a single mistake -will not be as visible, and will not be as easy to find. +If you make a mistake with an octave mark (@code{'} or @code{,}) +while working in @code{\relative} mode, it is very obvious -- many +notes will be in the wrong octave. When working in absolute mode, +a single mistake will not be as visible, and will not be as easy +to find. -However, absolute mode is useful for music which has large intervals, and -is extremely useful for computer-generated LilyPond files. +However, absolute mode is useful for music which has large +intervals, and is extremely useful for computer-generated LilyPond +files. @node Organizing pieces with identifiers @subsection Organizing pieces with identifiers When all of the elements discussed earlier are combined to produce -larger files, the music expressions get a lot bigger. In polyphonic -music with many staves, the input files can become very confusing. We can -reduce this confusion by using @emph{identifiers}. +larger files, the music expressions get a lot bigger. In +polyphonic music with many staves, the input files can become very +confusing. We can reduce this confusion by using +@emph{identifiers}. -With identifiers (also known as variables or macros), we can break up -complex music expressions. An identifier is assigned as follows +With identifiers (also known as variables or macros), we can break +up complex music expressions. An identifier is assigned as +follows @example namedMusic = @{ @dots{} @} @@ -1412,8 +1443,9 @@ namedMusic = @{ @dots{} @} The contents of the music expression @code{namedMusic} can be used later by placing a backslash in front of the name -(@code{\namedMusic}, just like a normal LilyPond command). Identifiers -must be defined @emph{before} the main music expression. +(@code{\namedMusic}, just like a normal LilyPond command). +Identifiers must be defined @emph{before} the main music +expression. @lilypond[quote,verbatim,ragged-right] violin = \new Staff { \relative c'' { @@ -1435,8 +1467,8 @@ cello = \new Staff { \relative c { The name of an identifier must have alphabetic characters only: no numbers, underscores, or dashes. -It is possible to use variables for many other types of objects in the -input. For example, +It is possible to use variables for many other types of objects in +the input. For example, @example width = 4.5\cm @@ -1460,41 +1492,42 @@ places. The following example uses the above variables: @subsection After the tutorial After finishing the tutorial, you should probably try writing a -piece or two. Start with one of the @ruser{Templates}, and -add notes. If you need any notation that was not covered in the +piece or two. Start with one of the @ruser{Templates}, and add +notes. If you need any notation that was not covered in the tutorial, look at the Notation Reference, starting with @ruser{Basic notation}. If you want to write for an instrument -ensemble that is not covered in the templates, -take a look at @ruser{Extending the templates}. +ensemble that is not covered in the templates, take a look at +@ruser{Extending the templates}. -Once you have written a few short pieces, read the rest of -the Learning Manual (chapters 3-5). There's nothing wrong -with reading it now, of course! However, the rest of the -Learning Manual assumes that you are familiar with -LilyPond input. You may wish to skim these chapters right -now, and come back to them after you have more experience. +Once you have written a few short pieces, read the rest of the +Learning Manual (chapters 3-5). There's nothing wrong with +reading it now, of course! However, the rest of the Learning +Manual assumes that you are familiar with LilyPond input. You may +wish to skim these chapters right now, and come back to them after +you have more experience. @node How to read the manual @subsection How to read the manual -As we saw in @ruser{How to read the tutorial}, many examples in the -tutorial omitted a @code{\relative c'' @{ ... @}} around the printed -example. +As we saw in @ruser{How to read the tutorial}, many examples in +the tutorial omitted a @code{\relative c'' @{ ... @}} around the +printed example. -In the rest of the manual, we are much more lax about the -printed examples: sometimes they may have omitted a -@code{\relative c'' @{ ... @}}, but other times a different initial -pitch may be used (such as @code{c'} or @code{c,,}), and in some cases -the whole example is in absolute note mode! However, ambiguities like -this only exist where the pitches are not important. In any example -where the pitch matters, we have explicitly stated @code{\relative} -or absolute-mode @code{@{ @}}. +In the rest of the manual, we are much more lax about the printed +examples: sometimes they may have omitted a @code{\relative c'' @{ +... @}}, but other times a different initial pitch may be used +(such as @code{c'} or @code{c,,}), and in some cases the whole +example is in absolute note mode! However, ambiguities like this +only exist where the pitches are not important. In any example +where the pitch matters, we have explicitly stated +@code{\relative} or absolute-mode @code{@{ @}}. If you are still confused about the exact LilyPond input that was -used in an example, read the HTML version (if you are not already doing -so) and click on the picture of the music. This will display the exact -input that LilyPond used to generate this manual. +used in an example, read the HTML version (if you are not already +doing so) and click on the picture of the music. This will +display the exact input that LilyPond used to generate this +manual. For information about the structure of the rest of the manual, see @ruser{About this manual}. diff --git a/input/manual/pitches-headword.ly b/input/manual/pitches-headword.ly new file mode 100644 index 0000000000..6c4823f1d4 --- /dev/null +++ b/input/manual/pitches-headword.ly @@ -0,0 +1,212 @@ +\version "2.11.32" +\include "english.ly" + +\new PianoStaff << + \set PianoStaff.connectArpeggios = ##t + \new Staff { + \time 2/4 + \key fs \major + << + \new Voice { + \voiceOne + fs''8 ( + ^ \markup \column { + \line \bold { Un peu retenu } + \line \italic { très expressif } } + es''16 + cs''16 + as'4 ) + | + fs''8 ( + es''16 + cs''16 + as'4 ) + | + fs''8 ( + es''16 + cs''16 + as'8 + cs''8 ) + | + } + \new Voice { + \voiceTwo + r8 \ppp + fs'4 ( + es'8 ) + | + r8 + fs'4 ( + es'8 ) + | + r8 + fs'4 ( + es'8 ) + | + } + >> + \clef bass + 4 ( + ^ \markup \bold { Rall. } + \once \override Script #'padding = #2 + 8 ) \fermata + \noBeam + \clef treble + \slurUp + 8 ( \pp + | + 4. ) + ^ \markup \bold { a tempo } + \slurUp + 8 ( + | + 4. ) + << + \new Voice { + \voiceOne + 8 ( + ^ \markup \bold { Rallentando } + | + cs'8 + b16 + cs'16 + d'8 + e'16 + fs'16 + | + 4. ) + s8 + | + r8 + 4 \arpeggio + e''16 ( + ^ \markup \bold { Lent } + fs''16 + | + \stemDown + 2 ) + | + } + \new Voice { + \voiceTwo + s8 + | + 4 \< + 4 \> + | + s4. \! + \slurUp + \once \override Script #'direction = #up + 8 ( \accent + | + 4. ) + 8 \ppp \> + | + s8 \! + \stemDown + \once \override Script #'direction = #up + #(set-octavation 1) + % \once \override Arpeggio #'extra-offset = #'(-0.25 . 0) + 4. \arpeggio \fermata + #(set-octavation 0) + \bar "|." + } + >> + } + \new Staff << + \set Staff.pedalSustainStyle = #'bracket + \key fs \major + \clef bass + \new Voice { + \voiceOne + ds'4 \tenuto + cs'4 \tenuto + | + ds'4 \tenuto + cs'4 \tenuto + | + ds'4 \tenuto + cs'4 \tenuto + | + s8 + \clef treble + 8 [ + \clef bass + 8 \fermata ] + s8 + | + r8 + \clef treble + 4 \tenuto + s8 + | + r8 + \clef treble + 4 \tenuto + s8 + | + s2 + | + r8 + \clef treble + 4 + \clef bass + s8 + | + s8 + \clef treble + 4 \arpeggio + \clef bass + s8 + | + s8 + \clef treble + 4. \arpeggio \fermata + | + } + \new Voice { + \voiceTwo + ds'8 [ ( + < ds bs >8 + cs'8 + < ds as >8 ] ) + | + ds'8 [ ( + < ds bs >8 + cs'8 + < ds as >8 ] ) + | + ds'8 [ ( + < ds bs >8 + cs'8 + < ds as >8 ] ) + | + \once \override Script #'outside-staff-priority = #100 + \once \override TextScript #'outside-staff-priority = #500 + 4. \fermata + _ \markup \italic { ped. } + 8 ( + | + 4. ) \sustainDown + \clef bass + 8 ( \sustainUp + | + 4. ) \sustainDown + \clef bass + 8 ( \sustainUp + | + 4 + 4 + | + 4. ) \sustainDown + 8 ( \sustainUp + | + 4. ) \sustainDown + \slurUp + 8 ( \sustainUp \sustainDown + | + 2 ) \sustainUp \sustainDown + | + } + >> +>>