X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Ftopdocs%2FNEWS.texi;h=349eebd549621b8cba281a915861461601d686ff;hb=ae58654e4a30248bf2db4b42b3e8f4ea2652ab95;hp=bf4aacc5c62f17e4d0dfa4c44394c8b98cfa9e7d;hpb=196bdae43d1d4f13a3080dbb5e5b4dd07f92cb51;p=lilypond.git diff --git a/Documentation/topdocs/NEWS.texi b/Documentation/topdocs/NEWS.texi index bf4aacc5c6..349eebd549 100644 --- a/Documentation/topdocs/NEWS.texi +++ b/Documentation/topdocs/NEWS.texi @@ -5,37 +5,422 @@ @node Top, , , @top -@chapter New features in 1.9 since 1.8 +@chapter New features in 2.1 since 2.0 + +@ignore +Unreleased: @itemize +@end itemize + +Version 2.1.13 +@end ignore + +@itemize @bullet + +@item The program reference has been cleaned up and revised. + +@item The syntax for setting properties has been simplified: +the following table lists the differences: + +@example + (old) (new) + +\property A.B = #C \set A.B = #C +\property A.B \unset \unset A.B +\property A.B \set #C = #D \override A.B #C = #D +\property A.B \override #C = #D (removed) +\property A.B \revert #C \revert A.B #C +@end example + +Furthermore, if @code{A} is left out, the bottommost context is used +by default. In other words, it is no longer necessary to explicitly +mention @code{Voice}, @code{Lyrics} or @code{ChordNames}. + +Old: + +@example + \property Voice.autoBeaming = ##f + \property Staff.TimeSignature \set #'style = #'C +@end example + +New: + +@example + \set autoBeaming = ##f + \override Staff.TimeSignature #'style = #'C +@end example + + +@item Tweaks made with @code{\override} and @code{\revert} no longer +hide tweaks at higher context levels. + +@item Melismata in lyrics are also properly handled in the MIDI output. + +@item The lilypond-book script has been rewritten. +It is shorter, cleaner and faster. The special construct +@code{mbinclude} has been removed, plain @code{@@include} or +@code{\input} can be used now. + +@ignore +It now supports +running convert-ly on the lilypond snippets like so: +@example + lilypond-book --filter='convert-ly --from=2.0.0' my-book.tely +@end example +@end ignore + +@item The @code{LyricsVoice} context has been removed. Lyrics should only +be constructed in @code{Lyrics}. + +@item The @code{Thread} context has been removed. Note heads and rests +are now constructed at @code{Voice} level. + +@item Harmonic notes can now be entered as + +@example + +@end example + +@item Drum notation is now supported as a regular feature: +percussion may be entered in @code{\drums} mode, and printed or +performed in a @code{DrumStaff} context: + +@example + \score @{ + \drums \new DrumStaff @{ hihat4 cowbell8 @} + @} +@end example + +@item The automatic staff changer was internally rewritten. As a +result, the syntax has been simplified as well: + +@example + \autochange @var{the music} +@end example + +@item The ergonomic syntax of @code{\markup} now has an equivalent in +Scheme. The @code{markup*} macro creates such objects; the following +two markup commands are equivalent: +@example + f4^#(markup* #:raise 0.2 #:bold "hi") + f4^\markup @{ \raise #0.2 \bold hi @} +@end example + +@item Voice names, for vocal lines, have been added. They are similar +to instrument names. They can be set by defining @code{vocalName} +and @code{vocNam}. + +@item Safe mode has been reinstated for lilypond. +When lilypond is invoked with @code{--safe-mode}, @TeX{} and +PostScript file output is disallowed, and lilypond-bin is invoked with +@code{--safe-mode}, the user's Guile expressions are evaluated in a +safe environment and file inclusion is not allowed. + +Warning: this does not protect against denial-of-service attacks using +Guile, @TeX{} or PostScript. + +(This feature is still experimental.) + +@item There is now a Scheme macro for defining markup +commands. Special mark-up commands can be defined in user-files too. + +@item Many fixes for dimension scaling have been made, +resulting in correct results for scores that mix staves in different +sizes. + +@item Improved robustness when layout properties are accidentally removed. + +@item A more cleanly constructed part combiner has been installed. +It is more robust and less buggy. The part-combiner can be used with +@example + \partcombine @var{mus1} @var{mus2} +@end example + +@noindent +See @file{input/regression/new-part-combine.ly} for an example. + +@item Formatting of rehearsal marks has been improved. The @code{\mark} +command now only does automatic incrementing for marks specified as +integer. For example, @code{\mark #1} will print an A in the default +style. See @file{input/regression/rehearsal-mark-letter.ly}, +@file{input/regression/rehearsal-mark-number.ly}. + +@item Formatting of ottava brackets has been much improved. + +@item Objects in the output can now be documented: the following fragment + boxes the note head, and adds the text ``heads or tails?'' three +spaces below the box. + +@example + \context Voice \applyoutput #(add-balloon-text + 'NoteHead "heads, or tails?" + '(0 . -3)) + + + c8 +@end example + + +@item Default staff sizes are now scalable. There are two new mechanisms for +setting staff sizes. Both are demonstrated in this fragment: + +@example + #(set-global-staff-size 15) + \paper @{ + #(paper-set-staff-size (* 15 pt)) + @} +@end example + + +@noindent +Both have the same effect on the global layout of a piece. Similarly, +the paper size may be changed as follows + +@example + #(set-paper-size "a4") +@end example + + +@item Warnings for bar check errors are more cleverly printed. This +makes @code{barCheckSynchronize} superfluous, so it is now switched +off by default. + +Warning: this will cause problems in scores that use bar checks to +shorten measures. + +@item The black note head was made a little rounder, which causes a less + frantic graphic impression. + +@item +A more concise syntax for checking octaves was introduced. A note may +be followed by @code{=}@var{quotes} which indicates what its absolute +octave should be. In the following example, + +@example + \relative c'' @{ c='' b=' d,='' @} +@end example + +@noindent +the d will generate a warning, because a d'' is +expected, but a d' is found. +@c @code adds ` ' very confusing. + +@item There is a new mechanism for putting lyrics to melodies. +With this mechanism, @code{LyricVoice}s can be put melodies +individually, allowing for different melismatic sections in every +@code{LyricVoice}. See @file{input/regression/lyric-combine-new.ly}. + +@item Bar lines may now be dotted. + + +@item The documentation now has links to a wiki, where everyone can +add personal comments to the manual. + +@item Contexts may now be changed locally for an isolated music +expression. For example, + +@example + \new Voice \with @{ + \consists "Pitch_squash_engraver" + @} @{ + c'4 + @} +@end example + +@item The syntax for changing staffs has changed. The keyword +@code{\change} should now be used, e.g. + +@example + \change Staff = up +@end example + +@item Features of spanner contexts, like @code{Staff}, can now be changed + using @code{\property}, eg. + +@example + \new Staff @{ + \property Staff.StaffSymbol \set #'line-count = #4 + c'4 + @} +@end example + +@noindent +puts a quarter note C on a staff with 4 lines. + + +@item Multi measure rests are now truly centered between the +clefs/barlines of the staff, their position is independent of symbols +on the other staffs. + +@item Collision resolution for dots in chords has been improved greatly. + +@item +Spacing following barlines was improved for widely stretched lines. + +@item +Lyric hyphens and extenders now conform to standard typesetting +practice. + +@item +Lyrics are now aligned under note heads conforming to engraving +standards. The responsible code has been rewritten, and is drastically +simpler from the previous version. To aid this rewrite, the syntactic +function of the extender line ( __ ) has been changed: it is now +attached to the lyric syllable. + +@item +When redefining a context, the associated identifier is also +updated. For example, after reading the following snippet, +@example + \translator @{ + \ScoreContext + autoBeaming = ##f + @} +@end example +the definition of @code{ScoreContext} is updated to include the changed +setting. + + +@item +The weight of the stafflines is now heavier at smaller staff sizes. +The font has been modified to match this look: at smaller sizes, the +font is heavier and the note heads are more rounded. + +@item Processing scores is now done while parsing the file. New +Scheme functions give more flexibility: for example, it is now possible +interpret a score, collecting synchronized musical events in a list, and +manipulate that information using inline Scheme. For an example, see +@file{input/no-notation/recording.ly}. + +@item Font sizes can now truly be scaled continuously: the @code{font-size} +is similar to the old @code{font-relative-size}, but may be set to +fractional values; the closest design size will be scaled to achieve +the desired size. As a side-effect, there are now no longer +limitations in using smaller fonts (eg. grace notes) at small staff +sizes. + +@item Stem tips are now also engraved with rounded corners. + +@item +The placement of accidentals on chords and ledgered notes is improved. + +@end itemize + + +@chapter New features in 2.0 since 1.8 + +@itemize + +@item +Crescendos can now be drawn dotted or dashed. + +@item +Quarter tones are now supported. They are entered by suffixing +@code{ih} for a half-sharp and @code{eh} for a half-flat. Hence, the +following is an ascending list of pitches: + +@example + ceses ceseh ces ceh c cih cis cisih cisis +@end example + +@item +The following constructs have been removed from the syntax: + +@example + \duration #SCHEME-DURATION + \pitch #SCHEME-PITCH + \outputproperty @var{func} @var{symbol} = @var{value} +@end example + +For @code{\outputproperty}, the following may be substituted: + +@example + \applyoutput #(outputproperty-compatibility @var{func} + @var{symbol} @var{value}) +@end example + +@item +Clefs may now be transposed arbitrarily, for example + +@example + \clef "G_8" + \clef "G_15" + \clef "G_9" +@end example + + +@item +The syntax for chords and simultaneous music have changed. +Chords are entered as + +@example + <@var{pitches}> +@end example + +while simultaneous music is entered as + +@example + <<@var{..music list..}>> +@end example + +In effect, the meanings of both have been swapped relative to their 1.8 +definition. The syntax for lists in @code{\markup} has changed +alongside, but figured bass mode was not changed, i.e.: + +@example + \markup @{ \center <@var{..list of markups..}> @} + \figure @{ <@var{figures}> @} +@end example + +As chords the more often used than simultaneous music, this change will +save keystrokes. @item Each music expression can now be tagged, to make different printed versions from the same music expression. In the following example, we see two versions of a piece of music, one for the full score, and one with cue notes for the instrumental part: + @example -< \tag #'part < - @{ c4 f2 g @} % in the part, we have cue-notes - \\ R1 > +<< \tag #'part << + @{ c4 f2 g4 @} % in the part, we have cue-notes + \\ R1 >> \tag #'score R1 % in the score: only a rest -> +>> @end example The same can be applied to articulations, texts, etc.: they are made by prepending + @example - -\tag #@var{your-tag(s)} + -\tag #@var{your-tags} @end example + to an articulation, for example, + @example c4-\tag #'with-fingerings -4 -\tag #'with-strings \6 @end example -This defines a note, which has a fingering and a string-number -indication. +This defines a note, which has a conditional fingering and a +string-number indication. +@item +The settings for chord-fingering are more flexible. You can specify a +list where fingerings may be placed, eg. +@example + \property Voice.fingeringOrientations = #'(left down) +@end example + +This will put the fingering for the lowest note below the chord, and the +rest to the left. + +@item +The script previously known as @code{ly2dvi} has been renamed to +@code{lilypond}. The binary itself is now installed as +@code{lilypond-bin}. @item Markup text (ie. general text formatting) may now be used for lyrics too. @@ -118,6 +503,10 @@ which is set through #(ly:set-option 'old-relative) @end example +@item +Windows users can double click a @code{.ly} file to process and view +it automagically through the new @code{lily-wins} frontend. + @end itemize