X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fnotation%2Feditorial.itely;h=458fce1ff4d97dbd8c6f27c6afb0f14ed297f2df;hb=041cb33a404a829a8cdeeaebce17e45f613f10d8;hp=c035dc2d5c1a3d81978be2382af8526a7d532399;hpb=c28baa15608b96e15ae3971ac2a70cc65282c110;p=lilypond.git diff --git a/Documentation/notation/editorial.itely b/Documentation/notation/editorial.itely index c035dc2d5c..458fce1ff4 100644 --- a/Documentation/notation/editorial.itely +++ b/Documentation/notation/editorial.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.19.21" @node Editorial annotations @section Editorial annotations @@ -49,62 +49,218 @@ inside the staff. @funindex fontSize @funindex font-size +@funindex magnification->font-size @funindex magstep -@funindex \huge -@funindex \large +@funindex magnifyMusic +@funindex teeny +@funindex tiny +@funindex small +@funindex normalsize +@funindex large +@funindex huge +@funindex \magnifyMusic +@funindex \teeny +@funindex \tiny @funindex \normalsize @funindex \small -@funindex \tiny -@funindex \teeny -@funindex huge -@funindex large -@funindex normalsize -@funindex small -@funindex tiny -@funindex teeny +@funindex \large +@funindex \huge + +@warning{@* +For font sizes of text, see @ref{Selecting font and font size}.@* +For staff size, see @ref{Setting the staff size}.@* +For cue notes, see @ref{Formatting cue notes}.@* +For ossia staves, see @ref{Ossia staves}.} -The font size of notation elements may be altered. It does not -change the size of variable symbols, such as beams or slurs. - -@warning{For font sizes of text, see -@ref{Selecting font and font size}.} - -@lilypond[verbatim,quote,relative=2] -\huge -c4.-> d8---3 -\large -c4.-> d8---3 -\normalsize -c4.-> d8---3 -\small -c4.-> d8---3 -\tiny -c4.-> d8---3 -\teeny -c4.-> d8---3 +To change the size of the notation without changing the staff +size, specify a magnification factor with the @code{\magnifyMusic} +command: + +@c Grieg Piano Concerto (mvt.1 cadenza) +@lilypond[verbatim,quote] +\new Staff << + \new Voice \relative { + \voiceOne + 4 8. 16 8 4 r8 + } + \new Voice \relative { + \voiceTwo + \magnifyMusic 0.63 { + \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63) + r32 c'' a c a c a c r c a c a c a c + r c a c a c a c a c a c a c a c + } + } +>> +@end lilypond + +The @code{\override} in the example above is a bug workaround. +See the @qq{Known issues and warnings} at the end of this section. + +If a normal sized note head is merged with a smaller one, the size +of the smaller note may need to be reset (with +@w{@samp{\once@tie{}\normalsize}}) so that the stems and +accidentals align properly: + +@c Chopin Prelude op.28 no.8 +@lilypond[verbatim,quote] +\new Staff << + \key fis \minor + \mergeDifferentlyDottedOn + \new Voice \relative { + \voiceOne + \magnifyMusic 0.63 { + \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63) + \once \normalsize cis'32( cis' gis b a fis \once \normalsize d d' + \once \normalsize cis, cis' gis b a gis \once \normalsize fis fis' + \once \normalsize fis, fis' ais, cis b gis \once \normalsize eis eis' + \once \normalsize a, a' bis, d cis b \once \normalsize gis gis') + } + } + \new Voice \relative { + \voiceTwo + cis'8. d16 cis8. fis16 fis8. eis16 a8. gis16 + } +>> @end lilypond -Internally, this sets the @code{fontSize} property. This in turn -causes the @code{font-size} property to be set in all layout -objects. The value of @code{font-size} is a number indicating the -size relative to the standard size for the current staff height. -Each step up is an increase of approximately 12% of the font size. -Six steps is exactly a factor of two. The Scheme function -@code{magstep} converts a @code{font-size} number to a scaling -factor. The @code{font-size} property can also be set directly, -so that only certain layout objects are affected. - -@lilypond[verbatim,quote,relative=2] -\set fontSize = #3 -c4.-> d8---3 -\override NoteHead #'font-size = #-4 -c4.-> d8---3 -\override Script #'font-size = #2 -c4.-> d8---3 -\override Stem #'font-size = #-5 -c4.-> d8---3 +The @code{\magnifyMusic} command is not intended for cue notes, +grace notes, or ossia staves---there are more appropriate methods +of entering each of those constructs. Instead, it is useful when +the notation size changes in a single instrumental part on one +staff, and where grace notes are not appropriate, such as in +cadenza-like passages or in cases such as the above examples. +Setting the @code{\magnifyMusic} value to 0.63 duplicates the +dimensions of the @code{CueVoice} context. + +@warning{The @code{@bs{}magnifyMusic} command should @i{not} be +used when also resizing the staff. See @ref{Setting the staff +size}.} + + +@subsubsubheading Resizing individual layout objects + +An individual layout object can be resized by using the +@code{\tweak} or @code{\override} commands to adjust its +@code{font-size} property: + +@lilypond[quote,verbatim] +\relative { + % resize a note head + -5 + % resize a fingering + bes-\tweak font-size 0 -3 + % resize an accidental + \once \override Accidental.font-size = -4 bes!-^ + % resize an articulation + \once \override Script.font-size = 4 bes!-^ +} @end lilypond +The default @code{font-size} value for each layout object is +listed in the Internals Reference. The @code{font-size} property +can only be set for layout objects that support the +@code{font-interface} layout interface. If @code{font-size} is +not specified in the object's @q{Standard@tie{}settings} list, its +value is 0. See @rinternals{All layout objects}. + + +@subsubsubheading Understanding the @code{fontSize} property + +The @code{fontSize} context property adjusts the relative size of +all glyph-based notational elements in a context: + +@lilypond[verbatim,quote] +\relative { + \time 3/4 + d''4---5 c8( b a g) | + \set fontSize = -6 + e'4-- c!8-4( b a g) | + \set fontSize = 0 + fis4---3 e8( d) fis4 | + g2. +} +@end lilypond + +The @code{fontSize} value is a number indicating the size relative +to the standard size for the current staff height. The default +@code{fontSize} is 0; adding 6 to any @code{fontSize} value +doubles the printed size of the glyphs, and subtracting 6 halves +the size. Each step increases the size by approximately 12%. + +The scheme function @code{magnification->font-size} is provided +for convenience since the logarithmic units of the +@code{font-size} property are not entirely intuitive. For +example, to adjust the musical notation to 75% of the default +size, use: + +@example +\set fontSize = #(magnification->font-size 0.75) +@end example + +The scheme function @code{magstep} does the opposite: it converts +a @code{font-size} value into a magnification factor. + +The @code{fontSize} property will only affect notational elements +that are drawn with glyphs, such as noteheads, accidentals, +scripts, etc. It will not affect the size of the staff itself, +nor will it scale stems, beams, or horizontal spacing. To scale +stems, beams, and horizontal spacing along with the notation size +(without changing the staff size), use the @code{\magnifyMusic} +command discussed above. To scale everything, including the staff +size, see @ref{Setting the staff size}. + +Whenever the @code{fontSize} @i{context property} is set, its +value is added to the value of the @code{font-size} @i{grob +property} for individual layout objects, before any glyphs are +printed. This can cause confusion when setting individual +@code{font-size} properties while @code{fontSize} is already set: + +@lilypond[verbatim,quote,fragment] +% the default font-size for NoteHead is 0 +% the default font-size for Fingering is -5 +c''4-3 + +\set fontSize = -3 +% the effective font size for NoteHead is now -3 +% the effective font size for Fingering is now -8 +c''4-3 + +\override Fingering.font-size = 0 +% the effective font size for Fingering is now -3 +c''4-3 +@end lilypond + +The following shorthand commands are also available: + +@multitable @columnfractions .2 .4 .4 +@item @b{Command} @tab @b{Equivalent to} @tab @b{Relative size} +@item @code{\teeny} @tab @code{\set fontSize = -3} @tab 71% +@item @code{\tiny} @tab @code{\set fontSize = -2} @tab 79% +@item @code{\small} @tab @code{\set fontSize = -1} @tab 89% +@item @code{\normalsize} @tab @code{\set fontSize = 0} @tab 100% +@item @code{\large} @tab @code{\set fontSize = 1} @tab 112% +@item @code{\huge} @tab @code{\set fontSize = 2} @tab 126% +@end multitable + +@lilypond[verbatim,quote] +\relative c'' { + \teeny + c4.-> d8---3 + \tiny + c4.-> d8---3 + \small + c4.-> d8---3 + \normalsize + c4.-> d8---3 + \large + c4.-> d8---3 + \huge + c4.-> d8---3 +} +@end lilypond + + @cindex standard font size (notation) @cindex font size (notation), standard @@ -113,15 +269,12 @@ c4.-> d8---3 Font size changes are achieved by scaling the design size that is closest to the desired size. The standard font size (for -@w{@code{font-size = #0}}) depends on the standard staff height. -For a 20pt staff, a 10pt font is selected. - -The @code{font-size} property can only be set on layout objects -that use fonts. These are the ones supporting the -@code{font-interface} layout interface. +@w{@code{font-size = 0}}) depends on the standard staff height. +For a 20pt staff, an 11pt font is selected. @predefined +@code{\magnifyMusic}, @code{\teeny}, @code{\tiny}, @code{\small}, @@ -131,12 +284,44 @@ that use fonts. These are the ones supporting the @endpredefined @seealso +Notation Reference: +@ref{Selecting font and font size}, +@ref{Setting the staff size}, +@ref{Formatting cue notes}, +@ref{Ossia staves}. + +Installed Files: +@file{ly/music-functions-init.ly}, +@file{ly/property-init.ly}. + Snippets: @rlsr{Editorial annotations}. Internals Reference: @rinternals{font-interface}. +@c The two issues mentioned below: +@c http://code.google.com/p/lilypond/issues/detail?id=3987 +@c http://code.google.com/p/lilypond/issues/detail?id=3990 +@knownissues +There are currently two bugs that are preventing proper horizontal +spacing when using @code{\magnifyMusic}. There is only one +available workaround, and it is not guaranteed to work in every +case. In the example below, replace the @var{mag} variable with +your own value. You may also try removing one or both of the +@code{\newSpacingSection} commands, and/or the @code{\override} +and @code{\revert} commands: + +@example +\magnifyMusic @var{mag} @{ + \newSpacingSection + \override Score.SpacingSpanner.spacing-increment = #(* 1.2 @var{mag}) + [@var{music}] + \newSpacingSection + \revert Score.SpacingSpanner.spacing-increment +@} +@end example + @node Fingering instructions @unnumberedsubsubsec Fingering instructions @@ -145,31 +330,31 @@ Internals Reference: @cindex finger change @funindex \finger -@funindex finger Fingering instructions can be entered using @samp{@var{note}-@var{digit}}: -@lilypond[verbatim,quote,relative=2] -c4-1 d-2 f-4 e-3 +@lilypond[verbatim,quote] +\relative { c''4-1 d-2 f-4 e-3 } @end lilypond -Markup texts may be used for finger changes. +Markup texts or strings may be used for finger changes. -@lilypond[verbatim,quote,relative=2] -c4-1 d-2 f-4 c^\markup { \finger "2 - 3" } +@lilypond[verbatim,quote] +\relative { + c''4-1 d-2 f\finger \markup \tied-lyric #"4~3" c\finger "2 - 3" +} @end lilypond @cindex thumb-script @funindex \thumb -@funindex thumb -A thumb-script can be added (e.g. cello music) to indicate +A thumb-script can be added (e.g., cello music) to indicate that a note should be played with the thumb. -@lilypond[verbatim,quote,relative=2] -2 +@lilypond[verbatim,quote] +\relative { 2 } @end lilypond @cindex fingering chords @@ -179,8 +364,10 @@ that a note should be played with the thumb. Fingerings for chords can also be added to individual notes by adding them after the pitches. -@lilypond[verbatim,quote,relative=2] -2 +@lilypond[verbatim,quote] +\relative { + 2 +} @end lilypond Fingering instructions may be manually placed above or below the @@ -211,10 +398,6 @@ Internals Reference: @rinternals{New_fingering_engraver}, @rinternals{Fingering}. -@knownissues -By default, numbers greater than 9 are not supported using -@samp{@var{note}-@var{digit}}. - @node Hidden notes @unnumberedsubsubsec Hidden notes @@ -227,33 +410,35 @@ By default, numbers greater than 9 are not supported using @cindex notes, transparent @funindex \hideNotes -@funindex hideNotes @funindex \unHideNotes -@funindex unHideNotes Hidden (or invisible or transparent) notes can be useful in preparing theory or composition exercises. -@lilypond[verbatim,quote,relative=2] -c4 d -\hideNotes -e4 f -\unHideNotes -g a -\hideNotes -b -\unHideNotes -c +@lilypond[verbatim,quote] +\relative { + c''4 d + \hideNotes + e4 f + \unHideNotes + g a + \hideNotes + b + \unHideNotes + c +} @end lilypond Note heads, stems, and flags, and rests are invisible. Beams are invisible if they start on a hidden note. Objects that are attached to invisible notes are still visible. -@lilypond[verbatim,quote,relative=2] -e8(\p f g a)-- -\hideNotes -e8(\p f g a)-- +@lilypond[verbatim,quote] +\relative c'' { + e8(\p f g a)-- + \hideNotes + e8(\p f g a)-- +} @end lilypond @@ -295,19 +480,18 @@ Internals Reference: @funindex color @funindex \with-color -@funindex with-color @funindex x11-color Individual objects may be assigned colors. Valid color names are listed in the @ref{List of colors}. -@lilypond[verbatim,quote,relative=2] -\override NoteHead #'color = #red -c4 c -\override NoteHead #'color = #(x11-color 'LimeGreen) -d -\override Stem #'color = #blue -e +@lilypond[verbatim,quote,fragment] +\override NoteHead.color = #red +c''4 c'' +\override NoteHead.color = #(x11-color 'LimeGreen) +d'' +\override Stem.color = #blue +e'' @end lilypond @@ -322,22 +506,25 @@ its name. If @code{x11-color} cannot make sense of the parameter then the color returned defaults to black. -@lilypond[verbatim,quote,relative=2] -\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2) -\set Staff.instrumentName = \markup { - \with-color #(x11-color 'navy) "Clarinet" +@lilypond[verbatim,quote] +\new Staff \with { + instrumentName = \markup { + \with-color #(x11-color 'red) "Clarinet" + } + } + \relative c'' { + \override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2) + gis8 a + \override Beam.color = #(x11-color "medium turquoise") + gis a + \override Accidental.color = #(x11-color 'DarkRed) + gis a + \override NoteHead.color = #(x11-color "LimeGreen") + gis a + % this is deliberate nonsense; note that the stems remain black + \override Stem.color = #(x11-color 'Boggle) + b2 cis } - -gis8 a -\override Beam #'color = #(x11-color "medium turquoise") -gis a -\override Accidental #'color = #(x11-color 'DarkRed) -gis a -\override NoteHead #'color = #(x11-color "LimeGreen") -gis a -% this is deliberate nonsense; note that the stems remain black -\override Stem #'color = #(x11-color 'Boggle) -b2 cis @end lilypond @cindex rgb-color @@ -349,18 +536,21 @@ b2 cis Exact RGB colors can be specified using the Scheme function @code{rgb-color}. -@lilypond[verbatim,quote,relative=2] -\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2) -\set Staff.instrumentName = \markup { - \with-color #(x11-color 'navy) "Clarinet" +@lilypond[verbatim,quote] +\new Staff \with { + instrumentName = \markup { + \with-color #(x11-color 'red) "Clarinet" + } + } +\relative c'' { + \override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2) + \override Stem.color = #(rgb-color 0 0 0) + gis8 a + \override Stem.color = #(rgb-color 1 1 1) + gis8 a + \override Stem.color = #(rgb-color 0 0 0.5) + gis4 a } - -\override Stem #'color = #(rgb-color 0 0 0) -gis8 a -\override Stem #'color = #(rgb-color 1 1 1) -gis8 a -\override Stem #'color = #(rgb-color 0 0 0.5) -gis4 a @end lilypond @seealso @@ -387,8 +577,10 @@ a web browser might not display a difference between @code{LimeGreen} and @code{ForestGreen}. For web use normal colors are recommended (i.e., @code{blue}, @code{green}, @code{red}). -Notes in a chord cannot be colored with @code{\override}; use -@code{\tweak} instead, see @ref{The tweak command}. +Notes in a chord cannot be separately colored with +@code{\override}; use @code{\tweak} or the equivalent +@code{\single\override} before the respective note instead, see +@ref{The tweak command}. @node Parentheses @@ -401,24 +593,27 @@ Notes in a chord cannot be colored with @code{\override}; use @cindex brackets @funindex \parenthesize -@funindex parenthesize Objects may be parenthesized by prefixing @code{\parenthesize} to the music event. When prefixed to a chord, it parenthesizes every note. Individual notes inside a chord may also be parenthesized. -@lilypond[verbatim,quote,relative=2] -c2 \parenthesize d -c2 \parenthesize -c2 +@lilypond[verbatim,quote] +\relative { + c''2 \parenthesize d + c2 \parenthesize + c2 +} @end lilypond Non-note objects may be parenthesized as well. For articulations, a hyphen is needed before the @code{\parenthesize} command. -@lilypond[verbatim,quote,relative=2] -c2-\parenthesize -. d -c2 \parenthesize r +@lilypond[verbatim,quote] +\relative { + c''2-\parenthesize -. d + c2 \parenthesize r +} @end lilypond @seealso @@ -444,11 +639,8 @@ chord. @cindex invisible stem @funindex \stemUp -@funindex stemUp @funindex \stemDown -@funindex stemDown @funindex \stemNeutral -@funindex stemNeutral @cindex stem, direction @cindex stem, up @cindex stem, down @@ -474,6 +666,9 @@ Stems may be manually placed to point up or down; see @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle] {default-direction-of-stems-on-the-center-line-of-the-staff.ly} +@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle] +{automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly} + @seealso Notation Reference: @ref{Direction and placement}. @@ -513,17 +708,15 @@ from outside of the staff. @funindex balloonGrobText @funindex balloonText @funindex \balloonLengthOn -@funindex balloonLengthOn @funindex \balloonLengthOff -@funindex balloonLengthOff Elements of notation can be marked and named with the help of a square balloon. The primary purpose of this feature is to explain notation. -@lilypond[verbatim,quote,relative=2] +@lilypond[verbatim,quote] \new Voice \with { \consists "Balloon_engraver" } -{ +\relative c'' { \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" } a8 \balloonGrobText #'Rest #'(-4 . -4) \markup { "I'm a rest" } @@ -539,13 +732,11 @@ There are two music functions, @code{balloonGrobText} and latter is used like @code{\tweak}, typically within chords, to attach text to an individual note. -Balloon text normally influences note spacing, but this can be -altered: +Balloon text does not influence note spacing, but this can be altered: -@lilypond[verbatim,quote,relative=2] +@lilypond[verbatim,quote] \new Voice \with { \consists "Balloon_engraver" } -{ - \balloonLengthOff +\relative c'' { \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" } a8 \balloonGrobText #'Rest #'(-4 . -4) \markup { "I'm a rest" } @@ -598,7 +789,7 @@ lines. \context { \Staff \consists "Grid_point_engraver" - gridInterval = #(ly:make-moment 1 4) + gridInterval = #(ly:make-moment 1/4) } \context { \Score @@ -608,11 +799,11 @@ lines. \score { \new ChoirStaff << - \new Staff \relative c'' { + \new Staff \relative { \stemUp - c4. d8 e8 f g4 + c''4. d8 e8 f g4 } - \new Staff \relative c { + \new Staff \relative { \clef bass \stemDown c4 g' f e @@ -653,9 +844,7 @@ Internals Reference: @funindex Horizontal_bracket_engraver @funindex \startGroup -@funindex startGroup @funindex \stopGroup -@funindex stopGroup Brackets are used in musical analysis to indicate structure in musical pieces. Simple horizontal brackets are supported. @@ -667,8 +856,8 @@ pieces. Simple horizontal brackets are supported. \consists "Horizontal_bracket_engraver" } } -\relative c'' { - c2\startGroup +\relative { + c''2\startGroup d\stopGroup } @end lilypond @@ -682,8 +871,8 @@ Analysis brackets may be nested. \consists "Horizontal_bracket_engraver" } } -\relative c'' { - c4\startGroup\startGroup +\relative { + c''4\startGroup\startGroup d4\stopGroup e4\startGroup d4\stopGroup\stopGroup