X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Ftopdocs%2FNEWS.tely;h=890a38586561a870c365a870d791928b98e8eb92;hb=c65140033ee42006afd99f778fc96244c1740566;hp=89ccdb9556f598e0beee9a4d2deb442f0203f23a;hpb=3b507c197ee079c146b7f835fc6a6c500d7c3cd0;p=lilypond.git diff --git a/Documentation/topdocs/NEWS.tely b/Documentation/topdocs/NEWS.tely index 89ccdb9556..890a385865 100644 --- a/Documentation/topdocs/NEWS.tely +++ b/Documentation/topdocs/NEWS.tely @@ -31,11 +31,13 @@ See user manual, \NAME\ @documentencoding utf-8 @documentlanguage en +@finalout + @ifnottex @node Top @top @end ifnottex -@unnumbered New features in 2.7 since 2.6 +@unnumbered New features in 2.9 since 2.8 @ifhtml This document is also available in @uref{NEWS.pdf,PDF}. It's part of @@ -57,725 +59,64 @@ HINTS * don't try to provide real-world examples, they often get too big, which scares away people. - - -@end ignore - -@item -Music may for multiple parts can be interleaved, similar to MUP input. -This is done with the @code{\parallelMusic} function, - -@lilypond[verbatim,raggedright] -\parallelMusic #'(voiceA voiceB) { - r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] | - c'2 c'2 | - r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] | - c'2 c'2 | -} -\new StaffGroup << - \new Staff - \new Voice \voiceA - \new Staff - \new Voice \voiceB ->> -@end lilypond - -This feature was contributed by Nicolas Sceaux. - -@item Alignments of staves may be tuned per system. -@lilypond[] -#(set-global-staff-size 13) - -\relative c'' \new StaffGroup << - \new Staff { c1 c } - \new Staff { c c } - \new Staff { - \overrideProperty - #"Score.NonMusicalPaperColumn" - #'line-break-system-details - #'((alignment-offsets . (0 -5 -20))) - c1 \break - \overrideProperty - #"Score.NonMusicalPaperColumn" - #'line-break-system-details - #'((alignment-offsets . (0 -15 -20))) - c1 - } ->> -@end lilypond - -This feature was sponsored by Trevor Bača. - -@item Individual systems may be positioned manually, - -@lilypond[] -\header{ - tagline = "lily was here" -} - -#(set-default-paper-size "a7" 'landscape) -\paper { - headsep = 0.0 - footsep = 0.0 - } -\book { - \score { - \relative c'' { - c1\break - \overrideProperty - #"Score.NonMusicalPaperColumn" - #'line-break-system-details - #'((Y-offset . 24.5) - (X-offset . -7.5)) - c1 - } - } - \paper { - annotatepage = ##t - annotateheaders = ##t - } -} -@end lilypond - -This feature was sponsored by Trevor Bača and Nicolas Sceaux. - -@item A linebreaking configuration can now be saved as a @file{.ly} -file automatically. This allows vertical alignments to be stretched to -fit pages in a second formatting run. See -@inputfileref{input/regression,page-layout-twopass.ly} for an -example. - -This feature was sponsored by Trevor Bača and Nicolas Sceaux. - -@item The tie formatting for chords has been further polished. More -cases are handled gracefully, and all scoring parameters may now be -changed through the @code{details} property of the @code{Tie} grob. - -This refinement was sponsored by Steve Doonan. - -@item Positions of staff lines may now be set individually, for -example - -@lilypond[raggedright] -\new Staff \relative c' { - \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7) - g c f b e a -} -@end lilypond - -This feature was sponsored by Andrea Valle. - - -@item A MusicXML importer is included now. - -It was sponsored by among others, Mark van den Borre, -and Muziekacademie Lede. - -@item -Stem direction on the center staff line are now interpolated between -neighbors. This results in less stem direction changes, leading to a -more even appearance. For example, - -@lilypond[raggedright] -\relative c'' { - c4 b c b - c c c r - b a b a -} -@end lilypond - -This feature was sponsored by Mike Rolish and Basil Crow. - -@item -Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the -staff. - -@lilypond[raggedright] -\relative { - \slurUp - \override TupletBracket #'bracket-visibility = ##f - \override TupletBracket #'staff-padding = ##f - \override Slur #'details #'region-size = #6 - - \times 2/3 - { - c( \stemDown g' \stemNeutral c,) - } -} -@end lilypond - -This feature was sponsored by Trent Johnston. - - -@item Tuplet brackets and numbers are implemented as separate grobs, -@code{TupletBracket} and @code{TupletNumber}. - -This rewrite was sponsored by Trent Johnston. - -@item String arguments for music functions may be specified without -@code{#} marks. This allows syntactical constructs (like \clef and -\bar) to be expressed in generic music functions. - -@item Ties in chords are also formatted using a scoring based -formatting. This reduces the number of collisions for ties in chords, - -@lilypond[raggedright,fragment,relative=2] - ~ -@end lilypond - -Here, the tie for the D is flipped, in spite the default rule for -tie directions. - -This rewrite was sponsored by Steve Doonan. - -@item With the @code{\tweak} music function, layout objects that are directly -connected to input may be tuned easily, - -@lilypond[relative=2,fragment,verbatim,raggedright] -< - \tweak #'font-size #3 c - \tweak #'color #red d - \tweak #'style #'cross g - \tweak #'duration-log #1 a ->4 -@end lilypond -This feature was sponsored by Sean Reed and Bertalan Fodor. +* Write complete sentences. -@item Generic music functions may now also be used on articulations -and chord elements, eg. +* only show user-visible changes. -@verbatim - < \displayMusic c - e-\keepWithTag #'bla -\tag #'bla ^2 > -@end verbatim - -This feature was sponsored by Sean Reed and Bertalan Fodor. - - -@item Spaces between lyrics and distance between syllables with -hyphens may now be separately tuned through the -@code{LyricSpace} grob. - -This feature has been sponsored by Bertalan Fodor. - -@item Texts set in a TrueType font are now kerned. This requires CVS -Pango or Pango 1.12. - -@lilypond[relative=2,fragment,raggedright] - c4^"VAVAVAffififl" -@end lilypond - - -@item Using the @TeX{} no longer requires linking or dynamically -opening the kpathsea library, making the backend more easily usable on -various systems. - -This fix was sponsored by Black Trash Productions. - -@item The horizontal location of rehearsal marks can be adjusted by -setting the @code{rehearsalMarkAlignSymbol} property, - -@lilypond[raggedright] -\relative { - c1 - \key cis \major - \clef alto - \set Score.rehearsalMarkAlignSymbol = #'key-signature - \mark "on-key" - cis - \key ces \major - \set Score.rehearsalMarkAlignSymbol = #'clef - \clef treble - \mark "on clef" - ces -} -@end lilypond - - -This feature was sponsored by Trevor Bača. - - -@item -It's now possible to easily create deeply nested system start -delimiters, - -@lilypond[raggedright] -\new StaffGroup -\relative << - \set StaffGroup.systemStartDelimiterHierarchy - = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d) - \new Staff { c1 } - \new Staff { c1 } - \new Staff { c1 } - \new Staff { c1 } - \new Staff { c1 } ->> -@end lilypond - - -In addition, there is now also support for ``square'' system start -brackets. - -This feature was sponsored by Trevor Bača. - -@item -Tie formatting now uses scoring. This opens the road to formatting -which handles complex situations require tradeoffs between different -beauty factors. - -This refactoring has been sponsored by Steve Doonan. - -@item -Each grob property may also be a ``grob closure.'' This means that it -is possible to combine functions. For example, the @code{Y-offset} of -a @code{InstrumentName} grob is defined to be - -@verbatim -,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (,Self_alignment_interface::y_aligned_on_self)) - ,(ly:make-simple-closure - (,Side_position_interface::y_aligned_on_support_refpoints))) -@end verbatim - -@noindent -During execution, the @code{Y-offset} of an @code{InstrumentName} is computed -as - -@example -(+ (Self_alignment_interface::y_aligned_on_self @var{grob}) - (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob})) -@end example - - -@item -Calculation of extent and offset of grob is now controlled via the -@code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset} -properties, for example - -@verbatim -\override TextScript #'Y-offset = #-6 -@end verbatim - -@noindent -hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent -grobs. - -@item -Each grob property can be a procedure. If this is the case, it is -assumed to be a routine that calculates said property. This is a -major internal cleanup, which also provides advanced tweakability for -power users. For example, - -@verbatim -\override Beam #'direction - = #(lambda (grob) - (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems))) - DOWN - UP)) -@end verbatim - -@noindent -With this code fragment, the direction of a beam is decided to be up -or down, depending on the number of stems in the beam. - - -@item -Support for figured bass has been rewritten. Now it supports -continuation lines, slashed figures, and its figures, brackets, and -alignments may tuned separately. - -@lilypond[raggedright,fragment] -<< - \relative { c4 c c c } - \figures { - \set useBassFigureExtenders = ##t - <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+> -} >> -@end lilypond - -This rewrite was sponsored by Trent Johnston and John Mandereau. - -@item -Subproperties, like the @code{details} field of @code{Slur} and -@code{Tie} may now be tuned with @code{\override}. For example, - -@verbatim -\override Stem #'details #'beamed-lengths = #'(4 4 3) -@end verbatim - -@noindent -shortens the stems in beams. - -@item -The default paper size may now be set from the command line using -@code{-dpaper-size}. +@end ignore @item -Beamlets may stick out of the side of beams. - +The beam printing code has been completely rewritten, and now includes +support for feathered beaming, -@lilypond[fragment,raggedright,relative=2] +@lilypond[ragged-right,fragment,relative=2] +\featherDurations #(ly:make-moment 3 4) { - \override Beam #'break-overshoot = #'(-0.5 . 0.5) - \set stemLeftBeamCount = #2 - c8[ - c16 - \set stemRightBeamCount = #3 - c ] -} -@end lilypond - -This feature was sponsored by Trevor Bača. - - - -@item -Vertical alignments of staves can now be tuned easily for individual -systems. - -@lilypond[raggedright] -#(set-global-staff-size 13) -\relative c'' << - \new PianoStaff << - \new Voice { - c1 - - \overrideProperty - #"Score.NonMusicalPaperColumn" - #'line-break-system-details - #'((fixed-alignment-extra-space . 15)) - c - - } - { - c1\break - c\break + \override Beam #'grow-direction = #LEFT + c16[ + c c c + c c c c ] } - >> ->> -@end lilypond - -This feature was sponsored by Nicolas Sceaux. - -@item -Vertical spacing for page layout can now be tuned for each system -individually. The dimensions that can be tuned can be visualized. - -@lilypond[verbatim] -#(set-default-paper-size "a7" 'landscape) -\book { - \score { { c4 } } - \paper { annotatespacing = ##t } -} -@end lilypond - -These features were sponsored by Trevor Bača and Nicolas Sceaux. - -@item -The slope of a stem-tremolo may be set manually - -@lilypond[fragment,relative=1,raggedright] -c8:16[ -\once \override StemTremolo #'slope = #0.45 -c:16 c:16 c:16 ] @end lilypond -This feature was sponsored by Sven Axelsson. +This feature was sponsored by Jamie Bullock. @item -Laissez vibrer ties can be created with @code{\laissezVibrer}, - -@lilypond[fragment,raggedright,relative=1] - \laissezVibrer r \laissezVibrer -@end lilypond - -This feature was sponsored by Henrik Frisk. - -@item -The order of words in @code{\markup} commands may now be reversed by -setting the @code{text-direction} property. This is useful for -Right-to-Left languages like Hebrew. - -This feature was sponsored by Aaron Mehl. - -@item -Texts over multi measure rests can stretch the corresponding measure, -if the appropriate @code{spring-and-rods} callback is set. - -@lilypond[relative=2,fragment,raggedright] -\override MultiMeasureRestText #'springs-and-rods - = #Multi_measure_rest::set_text_rods -c1 R1 R1^"Very long long long text" -@end lilypond - -This feature was sponsored by Kris Shaffer. - - -@item @textanchor{tie-chords} -Formatting of ties in chords has been improved. Ties no longer collide -with note heads and stems. In addition, it is possible to manually -specify tie formatting +The @code{\note} markup command now also accepts note head styles. -@lilypond[relative=2, fragment,raggedright] - ~ - - \override TieColumn #'tie-configuration = - #'((0 . -1) '() (5.5 . 1) (7 . 1)) - ~ -@end lilypond - -This improvement has been sponsored by Bertalan Fodor, Jay Hamilton, -Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona -Dell¡. - -@item -Formatting of isolated, single ties has been improved. Now, ties avoid -staff lines, flags and dots, without compromising their shape. - -@lilypond[fragment,raggedright] -\relative c'' { - \stemUp - c16 c2...~ c16 ~ c2... | - c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] | -} -@end lilypond - -This improvement has been sponsored by Bertalan Fodor, Jay Hamilton, -Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona -Dell¡. - - -@item @textanchor{repeat-counter} -With the @code{countPercentRepeats} property, -percent repeats get incremental numbers to indicate the accumulated repeat count. - -@lilypond[relative=2,fragment,raggedright] -\set countPercentRepeats = ##t -\repeat percent 4 { c1 } -\time 2/4 -\repeat percent 4 { c2 c2 } -@end lilypond - -This feature was sponsored by Yoshinobu Ishizaki - -@item -Text scripts such as fingering instructions and dynamics avoid -collisions with slurs - -@lilypond[fragment,relative=1] -{ - b_1( f'_1_2_3 c_3_4_5 a) - b( f'\p b,) - c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c) +@lilypond[ragged-right,fragment,relative=2] +c4^\markup { + \override #'(style . triangle) \note-by-number #2 #1 #1 = 100 } @end lilypond -@item -Tuplets can be made to reach the next non-tuplet note by setting the -@code{tupletFullLength} property, - -@lilypond[fragment,relative=2] -\new Voice \with { - \remove Forbid_line_break_engraver - allowBeamBreak = ##t -} -{ - \set Score.proportionalNotationDuration = #(ly:make-moment 1 32) - \set tupletFullLength = ##t - \times 2/3 { c8[ c c] } - c4 -} -@end lilypond - -This feature was sponsored by Trevor Bača. +This feature was sponsored by Jamie Bullock. @item -When @code{strict-note-spacing} is set, notes are spaced without regard -for clefs, bar lines, and grace notes. For example, - -@lilypond[fragment,relative=2] -\override Score.SpacingSpanner #'strict-note-spacing = ##t -\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] } -@end lilypond - -This feature was sponsored by Trevor Bača. +Tie chord formatting also works with arpegiated +ties. -@item -Beams support the @code{break-overshoot} property, for example - -@lilypond[relative=2,fragment] -\set allowBeamBreak = ##t -\override Beam #'break-overshoot = #'(1.0 . 2.0) -c2.. c8[ \break c] -@end lilypond - -This feature was sponsored by Trevor Bača. - -@item -Proportional notation is supported. Notes can be spaced proportional -to their time-difference by assigning a duration to -@code{proportionalNotationDuration}. For example, - -@lilypond[relative=2,fragment,raggedright] -<< - \set Score.proportionalNotationDuration = #(ly:make-moment 1 16) - \new Staff { c8[ c c c c c] c4 c2 r2 } - \new Staff { c2 \times 2/3 { c8 c c } c4 c1 } ->> -@end lilypond - -This feature was sponsored by Trevor Bača. - -@item -Symbol sizes (e.g. accidentals) are disregarded for spacing if -@code{uniform-stretching} of the @code{SpacingSpanner} grob is set, - - -@lilypond[relative=2,fragment] -<< - \override Score.SpacingSpanner #'uniform-stretching = ##t - \new Staff { c16[ c c c c c c c c c16] } - \new Staff { - \times 6/7 { c16 c c cis c c c } - c8[ c32 c32 c16] - } ->> -@end lilypond - -This feature was sponsored by Trevor Bača. - -@item -Endings of broken tuplet brackets can be tuned. For example, you can -add arrows to the brackets, - -@lilypond[fragment,raggedright,relative=2] -\override TupletBracket - #'edge-text = #(cons - (markup #:arrow-head X LEFT #f) - (markup #:arrow-head X RIGHT #f)) -\times 4/5 { - c c c \bar "empty" \break c c -} -@end lilypond - -This feature was sponsored by Trevor Bača. - - -@item @textanchor{arrow-glyph} -Arrow heads were added to the Feta font. - -@lilypond[] -\lyrics { - \markup { - filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t - open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f - } -} -@end lilypond - -These glyphs have been sponsored by Trevor Bača. - - -@item -Nested tuplets are automatically positioned, - -@lilypond[fragment,raggedright,relative=2] -\set tupletNumberFormatFunction = #fraction-tuplet-formatter -\times 4/6 { - a4 a - \times 3/5 { a a a a a } +@lilypond[ragged-right] +\relative c'' { + 2~ | + \set tieWaitForNote = ##t + e8~ c~ a~ f~ 2 | + f,8~ a~ c~ e~ 2 | } @end lilypond -This feature was sponsored by Trevor Bača. -@item -Music expressions can be displayed, in LilyPond notation, using the -new @code{\displayLilyMusic} function. For instance: -@verbatim -\displayLilyMusic \transpose c a, { c d e f } -@end verbatim -will print: -@verbatim -{ a, b, cis d } -@end verbatim - -This feature was contributed by Nicolas Sceaux. - -@item -The current bar number may be checked with @code{\barNumberCheck}, eg. - -@verbatim -\barNumberCheck #22 -@end verbatim - -@noindent -will print a warning if it doesn't happen in measure 22. - -@item -If @code{showLastLength} is set, only the last few measures of a piece -are rendered, which speeds up correcting scores. For example, setting - -@verbatim -showLastLength = R1*5 -\score { ... } -@end verbatim - -@noindent -will render only the last five measures (assuming 4/4 time signature) -of a piece. - -@item @textanchor{simple-melismata} -Melismata can be specified simply in the lyrics now, eg. - -@lilypond[relative=1,verbatim,fragment] -{ - c d( e) f e d -} \addlyrics { - Ky -- _ _ ri e -} -@end lilypond +This feature was sponsored by Steve Doonan. -This feature was sponsored by Nancho Alvarez -@item -Suggested accidentals (for notating musica ficta) may be switched on -with @code{suggestAccidentals} - -@lilypond[verbatim,fragment,relative=2] -\set suggestAccidentals = ##t -ais bis -@end lilypond - -This feature was sponsored by Nancho Alvarez. - -@item -The setting @code{whichBar} and time-bookkeeping is now split into a -@code{Default_bar_line_engraver} and @code{Timing_translator} -respectively. - -@item @textanchor{pitched-trill} -Explicit pitches may be added to trills, - -@lilypond[relative,verbatim,fragment] - \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan -@end lilypond - -This feature was sponsored by D. Josiah Boothby and Jamie Bullock +@end itemize -@item -Markup now supports formatting of text paragraphs, using -@code{\wordwrap} and @code{\justify}. -This feature was sponsored by Sven Axelsson. -@end itemize @ifhtml For older news, go to -@uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html}, +@uref{http://lilypond.org/doc/v2.8/Documentation/topdocs/NEWS.html}, or @uref{../,go back} to the Documentation index.