X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Flearning%2Ftutorial.itely;h=6752a3bc409366b9317e494245a37decb959741a;hb=c0a47b91cd930053074d42363047a77b889e05f7;hp=df1456d7a685e840ee7ac982f6ce28e34fe5e557;hpb=4c1b05d4d94f84248cce5a8a4c7ae58c2e04bf54;p=lilypond.git diff --git a/Documentation/learning/tutorial.itely b/Documentation/learning/tutorial.itely index df1456d7a6..6752a3bc40 100644 --- a/Documentation/learning/tutorial.itely +++ b/Documentation/learning/tutorial.itely @@ -10,7 +10,7 @@ @include included/generating-output.itexi -@c \version "2.12.0" +@c \version "2.14.0" @node Tutorial @chapter Tutorial @@ -20,6 +20,7 @@ This chapter gives a basic introduction to working with LilyPond. @menu * Compiling a file:: * How to write input files:: +* Dealing with errors:: * How to read the manuals:: @end menu @@ -76,7 +77,7 @@ in your own music! For more information about the display of examples in the manual, see @ref{How to read the manuals}.} In addition, LilyPond input is @strong{case sensitive}. -@w{@code{@{ c d e @}}} is valid input; @w{@code{@{ C D E @}}} will +@w{@samp{@{ c d e @}}} is valid input; @w{@samp{@{ C D E @}}} will produce an error message. @@ -233,8 +234,8 @@ example, the first note -- the @code{d} -- is the closest D to middle C. By adding (or removing) quotes @code{'} or commas @code{,} from -the @code{@w{\relative c' @{}} command, we can change the starting -octave: +the @q{@w{@code{@bs{}relative c'}}} command, we can change the +starting octave: @lilypond[verbatim,quote] % one octave above middle C @@ -283,9 +284,7 @@ comma @code{,} to the note name. @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{@w{\relative c'}} may also be modified like -this. +quotes @code{''} and not one double quote @code{"}@tie{}! @c " - keeps quotes in order for context-sensitive editor -td @subheading Durations (rhythms) @@ -310,7 +309,7 @@ so on. @notation{Beams} are added automatically. 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. +quarter note. @lilypond[verbatim,quote] \relative c'' { @@ -326,7 +325,7 @@ explicitly (i.e., with a number). @lilypond[verbatim,quote] \relative c'' { - a a a4. a8 + a4 a a4. a8 a8. a16 a a8. a8 a4. } @end lilypond @@ -344,7 +343,7 @@ A @notation{rest} is entered just like a note with the name @lilypond[verbatim,quote] \relative c'' { - a r r2 + a4 r r2 r8 a r4 r4. r8 } @end lilypond @@ -373,6 +372,33 @@ command: } @end lilypond +@subheading Tempo marks + +@cindex tempo marks +@cindex metronome marks + +@funindex \tempo +@funindex tempo + +Music Glossary: @rglos{tempo indication}, @rglos{metronome}. + +The @notation{tempo indication} and @notation{metronome mark} can be +set with the @code{\tempo} command: + +@lilypond[verbatim,quote] +\relative c'' { + \time 3/4 + \tempo "Andante" + a4 a a + \time 6/8 + \tempo 4. = 96 + a4. a + \time 4/4 + \tempo "Presto" 4 = 120 + a4 a a a +} +@end lilypond + @subheading Clef @@ -391,13 +417,13 @@ The @notation{clef} can be set using the @code{\clef} command: @lilypond[verbatim,quote] \relative c' { - \clef treble + \clef "treble" c1 - \clef alto + \clef "alto" c1 - \clef tenor + \clef "tenor" c1 - \clef bass + \clef "bass" c1 } @end lilypond @@ -409,10 +435,13 @@ Here is a small example showing all these elements together: @lilypond[verbatim,quote] \relative c, { + \clef "bass" \time 3/4 - \clef bass - c2 e8 c' g'2. - f4 e d c4 c, r4 + \tempo "Andante" 4 = 120 + c2 e8 c' + g'2. + f4 e d + c4 c, r } @end lilypond @@ -446,11 +475,10 @@ Notation Reference: @ruser{Writing pitches}, @funindex %@{ ... %@} LilyPond input files are similar to source files in many common -programming languages. They contain a version statement, -are case sensitive, and white-space -is generally ignored. Expressions are formed with curly braces -@{ @}, and comments are denoted with @code{%} or -@w{@code{%@{ ... %@}}}. +programming languages. They contain a version statement, are case +sensitive, and white-space is generally ignored. Expressions are +formed with curly braces @w{@code{@{ @}}}, and comments are +denoted with @code{%} or @w{@code{%@{ @dots{} %@}}}@tie{}. If the previous sentences sound like nonsense, don't worry! We'll explain what all these terms mean: @@ -481,50 +509,51 @@ a warning during the compilation of the file. @item @strong{Case sensitive}: it matters whether you enter a letter in lower case (e.g. -@w{@code{a, b, s, t}}) or upper case (e.g. @w{@code{A, B, S, T}}). -Notes are lower case: @w{@code{@{ c d e @}}} is valid input; -@w{@code{@{ C D E @}}} will produce an error message. +@w{@code{a, b, s, t}}) or upper case (e.g. @w{@code{A, B, S, T}}). +Notes are lower case: @w{@samp{@{ c d e @}}} is valid input; +@w{@samp{@{ C D E @}}} will produce an error message. @item @strong{Whitespace insensitive}: it does not matter how many spaces (or tabs or new lines) you add. -@w{@code{@{ c d e @}}} means the same thing as -@w{@code{@{ c @tie{}} @tie{} @tie{} d e @}} and: +@w{@samp{@{ c4 d e @}}} means the same thing as +@w{@samp{@{ c4 @tie{} @tie{} @tie{} d e @}}} and: @example -@{ c d +@{ c4 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: +thumb is to indent code blocks with two spaces: @example @{ - c d e + c4 d e @} @end example -However, whitespace @emph{is} required to separate many syntactical -elements from others. In other words, whitespace can always be -@emph{added}, but it cannot be @emph{eliminated}. As missing -whitespace can give rise to strange errors it is advisable to -always insert whitespace before and after every syntactic element, -for example, before and after every curly brace. +However, whitespace @emph{is} required to separate many +syntactical elements from others. In other words, whitespace can +always be @emph{added}, but not always @emph{eliminated}. Since +missing whitespace can give rise to strange errors, it is +advisable to always insert whitespace before and after every +syntactic element, for example, before and after every curly +brace. @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 parentheses -@code{()} 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{@{@tie{}curly@tie{}braces@tie{}@}} placed around the +input. These braces tell LilyPond that the input is a single +music expression, just like parentheses @code{()} 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 LilyPond command followed by a simple expression in braces (such -as @w{@code{\relative @{ @}}}) also counts as a single music -expression. +as @q{@w{@code{@bs{}relative c' @{ @dots{} @}}}}) also counts as a +single music expression. @cindex comments @cindex line comment @@ -560,13 +589,50 @@ comments: This line, and the notes below are ignored, since they are in a block comment. - f f e e d d c2 + f4 f e e d d c2 %@} @end example @end itemize +@node Dealing with errors +@section Dealing with errors + +@cindex troubleshooting + +Sometimes LilyPond doesn't produce the output you expect. This +section provides some links to help you solve the problems you +might encounter. + + +@menu +* General troubleshooting tips:: +* Some common errors:: +@end menu + +@node General troubleshooting tips +@subsection General troubleshooting tips + +Troubleshooting LilyPond problems can be challenging for +people who are used to a graphical interface, because invalid +input files can be created. When this happens, a logical approach +is the best way to identify and solve the problem. Some guidelines +to help you learn to do this are provided in @rprogram{Troubleshooting}. + + +@node Some common errors +@subsection Some common errors + +@cindex common errors +@cindex errors, common + +There are a few common errors that are difficult to troubleshoot +based simply on the error messages that are displayed. These are +described in @rprogram{Common errors}. + + + @node How to read the manuals @section How to read the manuals @@ -577,7 +643,6 @@ online version. @menu * Omitted material:: * Clickable examples:: -* Keyboard navigation:: * Overview of manuals:: @end menu @@ -596,33 +661,34 @@ online version. @cindex constructing files, tips @cindex files, tips for constructing -LilyPond input must be surrounded by @{ @} marks or a -@code{@w{\relative c'' @{ ... @}}}, as we saw in @ref{Working on -input files}. For the rest of this manual, most examples will -omit this. To replicate the examples, you may copy and paste the -displayed input, but you @strong{must} add the -@code{@w{\relative c'' @{ @}}} like this: +LilyPond input must be surrounded by @code{@{ @}} marks or a +@q{@w{@code{@bs{}relative c'' @{ @dots{} @}}}}, as we saw in +@ref{Working on input files}. For the rest of this manual, most +examples will omit this. To replicate the examples, you may copy +and paste the displayed input, but you @strong{must} add the +@q{@w{@code{@bs{}relative c'' @{ @dots{} @}}}} like this: @example \relative c'' @{ - ... example goes here... + @dots{}example goes here@dots{} @} @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{@w{\relative c'' @{ @}}} -- -you should not place a @code{\relative} inside another -@code{\relative}! If we included @code{@w{\relative c'' @{ @}}} -around every example, you would not be able to copy a small -documentation example and paste it inside a longer piece of your -own. Most people want to add material to an existing piece, so we -format the manual this way. - -Also, remember that every LilyPond file should have a @code{@bs{}version} -statement. Because the examples in the manuals are snippets, not files, -the @code{@bs{}version} statement is omitted. But you should make a -practice of including them in your files. +it does not make sense to add +@q{@w{@code{@bs{}relative c'' @{ @dots{} @}}}} -- you should not +place a @code{\relative} inside another @code{\relative}! If we +included @q{@w{@code{@bs{}relative c'' @{ @dots{} @}}}} around +every example, you would not be able to copy a small documentation +example and paste it inside a longer piece of your own. Most +people want to add material to an existing piece, so we format the +manual this way. + +Also, remember that every LilyPond file should have a +@code{\version} statement. Because the examples in the manuals +are snippets, not files, the @code{\version} statement is omitted. +But you should make a practice of including them in your files. @node Clickable examples @subsection Clickable examples @@ -638,7 +704,7 @@ this image: @c no verbatim here @lilypond[quote] \relative c'' { - c-\markup { \bold \huge { Click here. } } + c4-\markup { \bold \huge { Click here. } } } @end lilypond @@ -648,15 +714,18 @@ same output (line-width and all), copy everything from @qq{Start cut-&-pastable section} to the bottom of the file. -@node Keyboard navigation -@subsection Keyboard navigation +@ignore +This is item 825 + +@n ode Keyboard navigation +@s ubsection Keyboard navigation @warning{This features is only available in the HTML manuals.} @c TODO: once this is figured out, insert it here. We are currently working on this feature. - +@end ignore @node Overview of manuals @subsection Overview of manuals @@ -688,8 +757,8 @@ may want to look in relevant sections of the Learning manual's @ref{Tweaking output}. @item -@strong{Before undertaking a large project}: read Usage document's -@rprogram{Suggestions for writing files}. +@strong{Before undertaking a large project}: read the Usage +document's @rprogram{Suggestions for writing files}. @end itemize