From: Han-Wen Nienhuys Date: Fri, 18 Apr 2003 23:18:29 +0000 (+0000) Subject: * input/test/slur-beautiful.ly: new file. X-Git-Tag: release/1.7.17~14 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=fc3ff001490085ffe15c29c009ed9fbc8cf0f7bb;p=lilypond.git * input/test/slur-beautiful.ly: new file. * Documentation/user/refman.itely: updates. --- diff --git a/ChangeLog b/ChangeLog index 84ab9d293e..717b7f06f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2003-04-19 Han-Wen Nienhuys + * input/test/slur-beautiful.ly: new file. + * Documentation/user/refman.itely: updates. * input/regression/collisions.ly (threevoice): cleanup. diff --git a/Documentation/user/invoking.itexi b/Documentation/user/invoking.itexi index f82db08d24..7b91e9edf9 100644 --- a/Documentation/user/invoking.itexi +++ b/Documentation/user/invoking.itexi @@ -5,7 +5,7 @@ @menu * Reporting bugs:: * Website:: -* Invoking ly2dvi:: Titling LilyPond scores. +* Invoking ly2dvi:: Titling LilyPond scores. @end menu @cindex Invoking LilyPond @@ -231,6 +231,10 @@ website at @uref{http://www.lilypond.org/}. @c . {Point and click} +@menu +* Point and click:: +@end menu + @node Point and click @subsection Point and click @cindex poind and click diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index cbd41ea92b..776021d047 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -7,11 +7,6 @@ @c FIXME: singular vs. plural: Beams/Beam - - - - - @node Reference Manual @chapter Reference Manual @@ -43,8 +38,8 @@ this manual. * Tablatures:: * Chords:: * Writing parts:: -* Ancient notation:: -* Contemporary notation:: +* Ancient notation :: +* Contemporary notation:: * Tuning output:: * Global layout:: * Sound:: @@ -484,10 +479,8 @@ produce the correct result. @section Easier music entry @cindex Music entry @menu -* Graphical interfaces:: * Relative octaves:: * Bar check:: -* Point and click:: * Skipping corrected music:: @end menu @@ -1468,13 +1461,18 @@ for the problematic notes. @cindex Slurs A slur indicates that notes are to be played bound or @emph{legato}. + +@syntax + They are entered using parentheses: @lilypond[fragment,verbatim,center] f'-( g'-)-( a'-) [a'8 b'-(-] a'4 g'2 f'4-) <>2-( <>2-) @end lilypond -See also @seeinternals{Slur}. + +@c TODO: should explain that ^( and _( set directions +@c should set attachments with ^ and _ ? Slurs avoid crossing stems, and are generally attached to note heads. However, in some situations with beams, slurs may be attached to stem @@ -1502,25 +1500,10 @@ stems might look better: d,32-( d'4 d8..-) @end lilypond -@ignore -Similarly, the curvature of a slur is adjusted to stay clear of note -heads and stems. When that would increase the curvature too much, the -slur is reverted to its default shape. The threshold for this -decision is in @internalsref{Slur}'s object property @code{beautiful}. -It is loosely related to the enclosed area between the slur and the -notes. Usually, the default setting works well, but in some cases you -may prefer a curved slur when LilyPond decides for a vertically moved -one. You can indicate this preference by increasing the -@code{beautiful} value: - -@lilyp ond[verbatim,singleline,relative] - \stemDown \slurUp - c16-( a' f' a a f a, c,-) - c-( a' f' a a f d, c-) - \property Voice.Slur \override #'beautiful = #5.0 - c-( a' f' a a f d, c-) -@end lilypond -@end ignore +@seealso + +@seeinternals{Slur}. + @refbugs @@ -1528,12 +1511,6 @@ Producing nice slurs is a difficult problem, and LilyPond currently uses a simple, empiric method to produce slurs. In some cases, the results of this method are ugly. -@ignore -This is reflected by the -@code{beautiful} property, which it is an arbitrary parameter in the -slur formatter. Useful values can only be determined by trial and -error. -@end ignore @cindex Adjusting slurs @@ -1548,24 +1525,29 @@ indicate a musical sentence. It is started using @code{\(} and @code{\)} respectively. @lilypond[fragment,verbatim,center,relative] - \time 6/4 c' \( d ( e-) f ( e-) d-\) + \time 6/4 c'-\( d-( e-) f-( e-) d-\) @end lilypond -Typographically, the phrasing slur behaves almost exactly like a normal -slur. See also @seeinternals{PhrasingSlur}. But although they behave -similarily to normal slurs, phrasing slurs count as different objects. -A @code{\slurUp} will have no effect on a phrasing slur; instead, you -should use @code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and +Typographically, the phrasing slur behaves almost exactly like a +normal slur. Although they behave similar to normal slurs, phrasing +slurs count as different objects. A @code{\slurUp} will have no +effect on a phrasing slur; instead, you should use +@code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and @code{\phrasingSlurBoth}. The commands @code{\slurUp}, @code{\slurDown}, and @code{\slurBoth} will only affect normal slurs and not phrasing slurs. +@seealso + +See also @seeinternals{PhrasingSlur}. Phrasing slurs have the same +limitations in their formatting. + @node Breath marks @subsection Breath marks -Breath marks are entered using @code{\breathe}. See also -@seeinternals{BreathingSign}. +Breath marks are entered using @code{\breathe}. + @lilypond[fragment,relative] c'4 \breathe d4 @@ -1574,23 +1556,17 @@ c'4 \breathe d4 The glyph of the breath mark can be tweaked by overriding the @code{text} property of the @code{BreathingSign} grob with the name of any glyph of @ref{The Feta font}. For example, - -@example - \property Voice.BreathingSign \override #'text = #"scripts-rvarcomma" - \breathe -@end example - -gives the following result: - -@lilypond[fragment,relative] +@lilypond[fragment,verbatim,relative] c'4 \property Voice.BreathingSign \override #'text = #"scripts-rvarcomma" \breathe d4 @end lilypond -The default value for the @code{text} property is -@code{scripts-rcomma}. +@seealso + +@seeinternals{BreathingSign}, +@inputfileref{input/regression/,breathing-sign.ly}. @node Tempo @@ -1614,36 +1590,42 @@ per minute. The tempo setting is not printed, but is only used in the MIDI output. You can trick lily into producing a metronome mark, though. Details are in @ref{Text markup}. - + +[TODO: make note markup.] @node Text spanners @subsection Text spanners @cindex Text spanners -Some textual indications, e.g. rallentando or accelerando, often extend -over many measures. This is indicated by following the text with a -dotted line. You can create such texts using text spanners. The syntax -is as follows: +Some textual indications, e.g. @i{rallentando} or @i{accelerando}, are +often extended over many measures. This is indicated by following the +text with a dotted line. You can create such texts using text +spanners. The syntax is as follows: @example \startTextSpan \stopTextSpan @end example -LilyPond will respond by creating a @internalsref{TextSpanner} object (typically -in @internalsref{Voice} context). The string to be printed, as well as the -style is set through object properties. +The string to be printed, as well as the style, is set through object +properties. + +An application is to fake octavation indications. -An application---or rather, a hack---is to fake octavation indications. @lilypond[fragment,relative,verbatim] \relative c' { a''' b c a \property Voice.TextSpanner \set #'type = #'dotted-line \property Voice.TextSpanner \set #'edge-height = #'(0 . 1.5) \property Voice.TextSpanner \set #'edge-text = #'("8va " . "") \property Staff.centralCPosition = #-13 - a\startTextSpan b c a \stopTextSpan } + a-\startTextSpan b c a-\stopTextSpan } @end lilypond +@seealso + +@internalsref{TextSpanner}, @inputfileref{input/regression/,text-spanner.ly}. + + @node Analysis brackets @subsection Analysis brackets @cindex brackets @@ -1670,10 +1652,18 @@ To use this, add the @internalsref{Horizontal_bracket_engraver} to }}} @end lilypond +@refbugs + +Bracket endings should be angled/slanted. (TODO) + + @node Ornaments @section Ornaments @cindex Ornaments + +[TODO: ornaments vs. expressive marks] + @menu * Articulations:: * Text scripts:: @@ -1695,21 +1685,8 @@ 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 the character signifying the articulation. They are demonstrated here. -@lilypond[singleline] - \score { - \notes \context Voice { - \property Voice.TextScript \set #'font-family = #'typewriter - \property Voice.TextScript \set #'font-shape = #'upright - c''4-._"c-." s4 - c''4--_"c-{}-" s4 - c''4-+_"c-+" s4 - c''4-|_"c-|" s4 - c''4->_"c->" s4 - c''4-^_"c-\\^{ }" s4 - c''4-__"c-\_" s4 - } - } -@end lilypond + +@lilypondfile[notexidoc]{script-abbreviations.ly} The script is automatically placed, but if you need to force directions, you can use @code{_} to force them down, or @code{^} to @@ -1752,51 +1729,7 @@ using @code{^} and @code{_}. @cindex coda @cindex varcoda -@lilypond[] - \score { - < - \property Score.LyricText \override #'font-family = #'typewriter - \property Score.LyricText \override #'font-shape = #'upright - \context Staff \notes { - \property Score.timing = ##f - \property Score.barAlways = ##t - \property Staff.BarLine \override #'transparent = ##t - c''-\accent c''-\marcato c''-\staccatissimo - c''-\staccato c''-\tenuto c''-\portato - c''-\upbow c''-\downbow c''-\flageolet - c''-\thumb c''^\lheel c''-\rheel - c''^\ltoe c''-\rtoe c''-\open - c''-\stopped c''-\turn c''-\reverseturn - c''-\trill c''-\prall c''-\mordent - c''-\prallprall c''-\prallmordent c''-\upprall - c''-\downprall c''-\upmordent c''-\downmordent - c''-\pralldown c''-\prallup c''-\lineprall - c''-\signumcongruentiae c''-\shortfermata c''-\fermata - c''-\longfermata c''-\verylongfermata c''-\segno - c''-\coda c''-\varcoda - } - \context Lyrics \lyrics { - accent__ marcato__ staccatissimo__ - staccato__ tenuto__ portato__ - upbow__ downbow__ flageolet__ - thumb__ lheel__ rheel__ - ltoe__ rtoe__ open__ - stopped__ turn__ reverseturn__ - trill__ prall__ mordent__ - prallprall__ prallmordent__ uprall__ - downprall__ upmordent__ downmordent__ - pralldown__ prallup__ lineprall__ - signumcongruentiae__ shortfermata__ fermata__ - longfermata__ verylongfermata__ segno__ - coda__ varcoda__ - } - > - \paper { - linewidth = 5.1\in - indent = 0.0\mm - } - } -@end lilypond +@lilypondfile[notexidoc]{script-chart.ly} @cindex fingering @@ -1814,30 +1747,35 @@ finger changes, use markup texts: @cindex superscript @cindex subscript -See also @seeinternals{Script} and @seeinternals{Fingering}. +@lilypond[verbatim,singleline,fragment,relative=1] + << c-1 e-2 g-3 b-5 >> 4 + \property Voice.fingerHorizontalDirection = #LEFT + << c-1 es-3 g-5 >> 4 + \property Voice.fingerHorizontalDirection = #RIGHT + << c-1 e-2 g-3 b-5 >> 4-\arpeggio + \property Voice.fingerHorizontalDirection = #LEFT + << c_1 e-2 g-3 b^5 >> 4 +@end lilypond + +@seealso + +@internalsref{Script} and @internalsref{Fingering}. @refbugs All of these note ornaments appear in the printed output but have no effect on the MIDI rendering of the music. -Unfortunately, there is no support for adding fingering instructions or -ornaments to individual note heads. Some hacks exist, though. See -@inputfileref{input/test,script-horizontal.ly}. - - @node Text scripts @subsection Text scripts @cindex Text scripts -In addition, it is possible to place arbitrary strings of text or markup -text (see @ref{Text markup}) above or below notes by using a string: -@code{c^"text"}. - -By default, these indications do not influence the note spacing, but -by using the command @code{\fatText}, the widths will be taken into -account. +It is possible to place arbitrary strings of text or markup text (see +@ref{Text markup}) above or below notes by using a string: +@code{c^"text"}. By default, these indications do not influence the +note spacing, but by using the command @code{\fatText}, the widths +will be taken into account. @c @lilypond[fragment,singleline,verbatim] \relative c' { c4^"longtext" \fatText c4_"longlongtext" c4 } @@ -1847,10 +1785,10 @@ It is possible to use @TeX{} commands in the strings, but this should be avoided because it makes it impossible for LilyPond to compute the exact length of the string, which may lead to collisions. Also, @TeX{} commands will not work with direct PostScript output. -@c (see @ref{PostScript output}). -Text scripts are created in form of @internalsref{TextScript} objects, in -@internalsref{Voice} context. +@seealso + +@internalsref{TextScript} objects. @ref{Text markup} describes how to change the font or access special symbols in text scripts. @@ -1867,11 +1805,12 @@ special symbols in text scripts. @cindex grace notes Grace notes are ornaments that are written out + @lilypond[relative=2,verbatim,ifragment] c4 \grace c16 c4 \grace { [c16 d16] } c4 @end lilypond -In normal notation, grace notes are supposed to take up no logical +In normal notation, grace notes take up no logical time in a measure. Such an idea is practical for normal notation, but is not strict enough to put it into a program. The model that LilyPond uses for grace notes internally is that all timing is done in two @@ -1890,20 +1829,13 @@ example is shown here with timing tuples. } @end lilypond -The advantage of this approach is that you can use almost any lilypond -construction together with grace notes, for example slurs and clef -changes may appear halfway in between grace notes: - -@lilypond[relative=2,verbatim,fragment] - c4 \grace { [ c16 c, \clef bass c, b(] } )c4 -@end lilypond The placement of these grace notes is synchronized between different -staves, using this grace timing. +staves. @lilypond[relative=2,verbatim,fragment] -< \context Staff = SA { e4 \grace { c16 d e f } e4 } - \context Staff = SB { c4 \grace { g8 b } c4 } > +< \context Staff = SA { e4 \grace { c16-[ d e f-] } e4 } + \context Staff = SB { c'4 \grace { g8 b } c4 } > @end lilypond @@ -1918,7 +1850,7 @@ formatting. The standard definitions are in @file{ly/grace-init.ly}. [TODO discuss Scheme functionality.] -Notice how the @code{\override} is carefully matched with a @code{\revert}. +The @code{\override} is carefully matched with a @code{\revert}. @cindex slash @cindex grace slash @@ -1997,6 +1929,11 @@ errors. @cindex @code{\glissando} +A glissando is a smooth change in pitch. It is denoted by a line or a +wavy line between two notes. + +@syntax + A glissando line can be requested by attaching a @code{\glissando} to a note: @@ -2004,12 +1941,15 @@ a note: c'-\glissando c' @end lilypond -@refbugs +@seealso + +@seeinternals{Glissando}. -Printing of an additional text (such as @emph{gliss.}) must be done -manually. See also @seeinternals{Glissando}. +@refbugs +Printing of an additional text (such as @emph{gliss.}) must be done +manually. @node Dynamics @@ -2098,13 +2038,16 @@ You can also supply your own texts: @cindex diminuendo +@seealso + Dynamics are objects of @internalsref{DynamicText} and @internalsref{Hairpin}. Vertical positioning of these symbols is -handled by the @internalsref{DynamicLineSpanner} object. If you want to -adjust padding or vertical direction of the dynamics, you must set -properties for the @internalsref{DynamicLineSpanner} object. Predefined -identifiers to set the vertical direction are \dynamicUp and -\dynamicDown. +handled by the @internalsref{DynamicLineSpanner} object. + +If you want to adjust padding or vertical direction of the dynamics, +you must set properties for the @internalsref{DynamicLineSpanner} +object. Predefined identifiers to set the vertical direction are +\dynamicUp and \dynamicDown. @cindex direction, of dynamics @cindex @code{\dynamicDown} @@ -2131,10 +2074,12 @@ output, and entering repetitive music. This is the normal notation: Repeats are not written out, but alternative endings (voltas) are printed, left to right. +@ignore @item fold Alternative endings are written stacked. This has limited use but may be used to typeset two lines of lyrics in songs with repeats, see @inputfileref{input,star-spangled-banner.ly}. +@end ignore @item tremolo Make tremolo beams. @@ -2156,7 +2101,14 @@ Make beat or measure repeats. These look like percent signs. @node Repeat syntax @subsection Repeat syntax -The syntax for repeats is + +Repetition is a central concept in music, and multiple notations exist +for repetitions. + +@syntax + +LilyPond has one syntactic construct for specifying different types of +repeats. The syntax is @example \repeat @var{variant} @var{repeatcount} @var{repeatbody} @@ -2169,7 +2121,9 @@ If you have alternative endings, you may add @var{alternative2} @var{alternative3} @dots{} @code{@}} @end example -where each @var{alternative} is a music expression. +where each @var{alternative} is a music expression. If you do not +give enough alternatives for all of the repeats, then the first +alternative is assumed to be played more than once. Normal notation repeats are used like this: @lilypond[fragment,verbatim] @@ -2185,19 +2139,18 @@ With alternative endings: \alternative { {d'2 d'} {f' f} } @end lilypond +@ignore Folded repeats look like this: -@lilypond[fragment,verbatim] +@li lypond[fragment,verbatim] c'1 \repeat fold 2 {c'4 d' e' f'} \alternative { {d'2 d'} {f' f} } @end lilypond +@end ignore -If you do not give enough alternatives for all of the repeats, then -the first alternative is assumed to be repeated often enough to equal -the specified number of repeats. @lilypond[fragment,verbatim] \context Staff { @@ -2220,16 +2173,11 @@ the example file @inputfileref{input/test,unfold-all-repeats.ly}. @refbugs -Notice that timing information is not remembered at the start of an -alternative, so you have to reset timing information after a repeat, -e.g. using a bar-check (See @ref{Bar check}), setting -@code{Score.measurePosition} or entering @code{\partial}. Slurs or ties -are also not repeated. - -It is possible to nest @code{\repeat}s, although this probably is only -meaningful for unfolded repeats. +Timing information is not remembered at the start of an alternative, +so you have to reset timing information after a repeat, e.g. using a +bar-check (See @ref{Bar check}), setting @code{Score.measurePosition} +or entering @code{\partial}. Slurs or ties are also not repeated. -Folded repeats offer little more over simultaneous music. @node Manual repeat commands @subsection Manual repeat commands @@ -2263,7 +2211,9 @@ alphabetic characters. @end lilypond -Repeats brackets are @internalsref{VoltaBracket} objects. +@seealso + +Repeat brackets are @internalsref{VoltaBracket} objects. @node Tremolo repeats @subsection Tremolo repeats @@ -2282,13 +2232,15 @@ style. } @end lilypond +@seealso + Tremolo beams are @internalsref{Beam} objects. Single stem tremolos are -@internalsref{StemTremolo}. The single stem tremolo @emph{must} be -entered without @code{@{} and @code{@}}. +@internalsref{StemTremolo}. @refbugs -Only powers of two and undotted notes are supported repeat counts. +The single stem tremolo @emph{must} be entered without @code{@{} and +@code{@}}. @node Tremolo subdivisions @subsection Tremolo subdivisions @@ -2305,8 +2257,9 @@ length is omitted, then then the last value (stored in c'2:8 c':32 | c': c': | @end lilypond -@refbugs +[TODO : stok is te kort bij 32en] +@refbugs Tremolos in this style do not carry over into the MIDI output. @@ -2328,8 +2281,10 @@ patterns that divide the measure length are replaced by slashes. } @end lilypond -The signs are represented by these objects: @internalsref{RepeatSlash} and -@internalsref{PercentRepeat} and @internalsref{DoublePercentRepeat}. +@seealso + +@internalsref{RepeatSlash}, @internalsref{PercentRepeat}, and +@internalsref{DoublePercentRepeat}. @refbugs @@ -2358,27 +2313,29 @@ are squashed, and the staff itself looks has a single staff line: @subsection Percussion staves @cindex percussion @cindex drums + To typeset more than one piece of percussion to be played by the same musician one typically uses a multiline staff where each staff position refers to a specific piece of percussion. -LilyPond is shipped with a bunch of scheme functions which allows you -to do this fairly easily. - -The system is based on the general midi drum-pitches. -In order to use the drum pitches you include -@file{ly/drumpitch-init.ly}. This file defines the pitches from the scheme -variable @code{drum-pitch-names} - which definition can be read in -@file{scm/drums.scm}. You see that each piece of percussion has a full -name and an abbreviated name - and you may freely select whether to -refer to the full name or the abbreviation in your music definition. - -To typeset the music on a staff you apply the scheme function -@code{drums->paper} to the percussion music. This function takes a -list of percussion instrument names, notehead scripts and staff -positions (that is: pitches relative to the C-clef) and uses this to -transform the input music by moving the pitch, changing the notehead -and (optionally) adding a script: +@syntax + +LilyPond is has a set of Scheme functions that can be used to typeset +percussion staves. The system is based on the general MIDI +drum-pitches. Include @file{ly/drumpitch-init.ly} to use drum +pitches. This file defines the pitches from the Scheme variable +@code{drum-pitch-names}, the definition of which can be read in +@file{scm/drums.scm}. Each piece of percussion has a full name and an +abbreviated name, and both the full name or the abbreviation may be +used in input files. + +To typeset the music on a staff apply the function @code{drums->paper} +to the percussion music. This function takes a list of percussion +instrument names, notehead scripts and staff positions (that is: +pitches relative to the C-clef) and transforms the input +music by moving the pitch, changing the notehead and (optionally) +adding a script: +@c @lilypond[singleline,verbatim,quote] \include "drumpitch-init.ly" up = \notes { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat } @@ -2428,13 +2385,13 @@ mus = \notes { cymc cyms cymr hh hhc hho hhho hhp cb hc } @end lilypond -Notice that the scheme supports six different toms. -If you are using fewer toms then you simply select the toms that produce -the desired result - i.e. to get toms on the three middle lines you -use @code{tommh}, @code{tomml} and @code{tomfh}. +Scheme supports six different toms. When there fewer toms, simply +select the toms that produce the desired result, i.e., to get toms on +the three middle lines you use @code{tommh}, @code{tomml} and +@code{tomfh}. -Because the general midi contain no rimshots we use the sidestick for -this purpose instead. +Because general MIDI does not contain rimshots the sidestick is used +for this purpose instead. @item 'timbales To typeset timbales on a two line staff. @lilypond[singleline] @@ -2580,9 +2537,8 @@ down = \notes { bd4 sn bd toml8 toml } } @end lilypond -To use a modified existing list instead of building your own from -scratch you can append your modifications to the start of the existing -list: +To use a modified existing list, one can prepend modifications to the +the existing list: @example #(define mydrums (append `( @@ -2591,13 +2547,10 @@ list: ) drums )) @end example -@c FIXME: Too many levels of headers when using subsubsections. -@c Perhaps junk subsection ``Percussion staves'' -@subsubsection Percussion staves with normal staves -When you include @file{drumpitch-init.ly} then the default pitches -are overridden so that you after the inclusion cannot use the common -dutch pitch names anymore. Hence you might want to reinclude -@file{nederlands.ly} after the drum-pattern-definitions: +The file @file{drumpitch-init.ly} replaces the normal pitch names, so +you have to reinclude @file{nederlands.ly} after the +drum-pattern-definitions to enter normal notes. +@c @lilypond[singleline,verbatim] \include "drumpitch-init.ly" up = \notes { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat } @@ -2616,7 +2569,9 @@ bass = \notes \transpose c c,, { a4. e8 r e g e } } @end lilypond -@subsubsection Percussion midi output +@node Percussion midi output +@subsection Percussion midi output + In order to produce correct midi output you need to produce two score blocks - one for the paper and one for the midi. To use the percussion channel you set the property @code{instrument} @@ -2628,8 +2583,8 @@ none of the scheme functions to get the correct midi output: \score @{ \apply #(drums->paper 'mydrums) \context Staff < \clef percussion - \context Voice = up @{ \voiceOne \up @} - \context Voice = down @{ \voiceTwo \down @} + @{ \up @} \\ + @{ \down @} > \paper@{@} @} @@ -2654,12 +2609,12 @@ compatible. @node Piano music @section Piano music -Piano music is an odd type of notation. Piano staves are two normal -staves coupled with a brace. The staves are largely independent, but -sometimes voices can cross between the two staves. The -@internalsref{PianoStaff} is especially built to handle this cross-staffing -behavior. In this section we discuss the @internalsref{PianoStaff} and some -other pianistic peculiarities. +Piano staves are two normal staves coupled with a brace. The staves +are largely independent, but sometimes voices can cross between the +two staves. The same notation is also used for harps and other key +instruments. The @internalsref{PianoStaff} is especially built to +handle this cross-staffing behavior. In this section we discuss the +@internalsref{PianoStaff} and some other pianistic peculiarities. @menu @@ -2677,6 +2632,9 @@ this result by increasing the length of the stem in the lower stave so it reaches the stem in the upper stave, or vice versa. An example is included with the distribution as @inputfileref{input/test,stem-cross-staff.ly}. +Dynamics are not centered, but kludges do exist. See +@inputfileref{input/templates,piano-dynamics.ly}. + @cindex cross staff stem @cindex stem, cross staff @@ -2694,7 +2652,7 @@ included with the distribution as @inputfileref{input/test,stem-cross-staff.ly}. Voices can switch automatically between the top and the bottom staff. The syntax for this is @example - \autochange Staff \context Voice @{ @dots{}@var{music}@dots{} @} + \autochange Staff \context Voice @{ @dots{}@var{music}@dots{} @} @end example The autochanger switches on basis of pitch (central C is the turning point), and it looks ahead skipping over rests to switch rests in @@ -2714,6 +2672,13 @@ Spacer rests are used to prevent the bottom staff from terminating too soon. +@refbugs + +The staff switches often do not end up in optimal places, for high +quality output, staff switches should be specified manually. + + + @node Manual staff switches @subsection Manual staff switches @@ -2904,7 +2869,7 @@ lyrics. This can confuse the LilyPond -- for example, this might put @menu -* Ambitus:: +* Ambitus:: @end menu @node Ambitus @@ -3041,8 +3006,9 @@ The selection is controlled by the translator property @code{minimumFret}. -- Li simply selects the first string that does not give a fret number less than @code{minimumFret}. Default is 0. -Notice that LilyPond does not handle chords in any special way, and hence -the automatic string selector may easily select the same string to two notes in a chord. +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. @example e8 fis gis a b cis' dis' e' @@ -3689,8 +3655,8 @@ fractions: R1*13/8*12 @end lilypond -Notice that a @code{R} spanning a single measure is printed as a whole -rest centered in the measure, regardless of the time signature. +A @code{R} spanning a single measure is printed as a whole rest +centered in the measure, regardless of the time signature. [ add note about breves.] @@ -3776,7 +3742,7 @@ one voice, as common for wind parts in orchestral scores: > @end lilypond -Notice that the first @code{g} appears only once, although it was +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 @@ -3889,12 +3855,12 @@ output. @cindex mensural @menu -* Ancient note heads:: -* Ancient clefs:: -* Custodes:: -* Divisiones:: -* Ligatures:: -* Figured bass:: +* Ancient note heads:: +* Ancient clefs :: +* Custodes:: +* Divisiones:: +* Ligatures:: +* Figured bass:: @end menu @@ -4526,8 +4492,8 @@ vertical spacing of the figures may be set with @code{baseline-skip}. @section Contemporary notation @menu -* Clusters:: -* Fermatas:: +* Clusters:: +* Fermatas:: @end menu @node Clusters @@ -4800,7 +4766,7 @@ form, \once \property @dots{} @end example @c -applies a setting only during one moment in the score: notice how the +applies a setting only during one moment in the score: the original setting for stem thickness is restored automatically in the following example @c @@ -4995,9 +4961,9 @@ similar to lyrics: simply enter them, surrounded by spaces. @cindex font switching -The line of the example demonstrates font switching commands. Notice -that the command only apply to the first following word; enclose a set -of texts with braces to apply a command to more words. +The line of the example demonstrates font switching commands. The +command only apply to the first following word; enclose a set of texts +with braces to apply a command to more words. @example \markup @{ \bold @{ hi there @} @} @end example @@ -5008,7 +4974,6 @@ For clarity, you can also do this for single arguments, e.g. @cindex font size, texts - The following size commands set abolute sizes @cindex \teeny @@ -5415,7 +5380,7 @@ that it looks 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 @code{\break}. This will force a line break at +do this by specifying @code{\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 @code{\bar diff --git a/input/test/script-abbreviations.ly b/input/test/script-abbreviations.ly new file mode 100644 index 0000000000..7001e89e20 --- /dev/null +++ b/input/test/script-abbreviations.ly @@ -0,0 +1,20 @@ +\version "1.7.16" + +\header { + texidoc = "Some scripts may be entered using an abbreviation" +} + +\score { + \notes \context Voice { + \property Voice.TextScript \set #'font-family = #'typewriter + \property Voice.TextScript \set #'font-shape = #'upright + c''4-._"c-." s4 + c''4--_"c-{}-" s4 + c''4-+_"c-+" s4 + c''4-|_"c-|" s4 + c''4->_"c->" s4 + c''4-^_"c-\\^{ }" s4 + c''4-__"c-\_" s4 + } + } +%% new-chords-done %% diff --git a/input/test/script-chart.ly b/input/test/script-chart.ly new file mode 100644 index 0000000000..ffb6032484 --- /dev/null +++ b/input/test/script-chart.ly @@ -0,0 +1,50 @@ +\version "1.7.16" +\header { + texidoc ="A chart showing all feta scripts" +} + +\score { + < + \property Score.LyricText \override #'font-family = #'typewriter + \property Score.LyricText \override #'font-shape = #'upright + \context Staff \notes { + \property Score.timing = ##f + \property Score.barAlways = ##t + \property Staff.BarLine \override #'transparent = ##t + c''-\accent c''-\marcato c''-\staccatissimo + c''-\staccato c''-\tenuto c''-\portato + c''-\upbow c''-\downbow c''-\flageolet + c''-\thumb c''^\lheel c''-\rheel + c''^\ltoe c''-\rtoe c''-\open + c''-\stopped c''-\turn c''-\reverseturn + c''-\trill c''-\prall c''-\mordent + c''-\prallprall c''-\prallmordent c''-\upprall + c''-\downprall c''-\upmordent c''-\downmordent + c''-\pralldown c''-\prallup c''-\lineprall + c''-\signumcongruentiae c''-\shortfermata c''-\fermata + c''-\longfermata c''-\verylongfermata c''-\segno + c''-\coda c''-\varcoda + } + \context Lyrics \lyrics { + accent__ marcato__ staccatissimo__ + staccato__ tenuto__ portato__ + upbow__ downbow__ flageolet__ + thumb__ lheel__ rheel__ + ltoe__ rtoe__ open__ + stopped__ turn__ reverseturn__ + trill__ prall__ mordent__ + prallprall__ prallmordent__ uprall__ + downprall__ upmordent__ downmordent__ + pralldown__ prallup__ lineprall__ + signumcongruentiae__ shortfermata__ fermata__ + longfermata__ verylongfermata__ segno__ + coda__ varcoda__ + } + > + \paper { + linewidth = 5.1\in + indent = 0.0\mm + } + } + +%% new-chords-done %% diff --git a/input/test/slur-beautiful.ly b/input/test/slur-beautiful.ly new file mode 100644 index 0000000000..f137b07bc0 --- /dev/null +++ b/input/test/slur-beautiful.ly @@ -0,0 +1,22 @@ +\version "1.7.16" +\header { + texidoc ="Similarly, the curvature of a slur is adjusted to stay clear of note +heads and stems. When that would increase the curvature too much, the +slur is reverted to its default shape. The threshold for this +decision is in Slur's object property @code{beautiful}. +It is loosely related to the enclosed area between the slur and the +notes. Usually, the default setting works well, but in some cases you +may prefer a curved slur when LilyPond decides for a vertically moved +one. You can indicate this preference by increasing the +@code{beautiful} value." +} + +\score { \notes {\relative c' { + \stemDown \slurUp + c16-( a' f' a a f a, c,-) + c-( a' f' a a f d, c-) + \property Voice.Slur \override #'beautiful = #5.0 + c-( a' f' a a f d, c-) +}} +\paper { raggedright = ##t } +}