X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=NEWS.txt;h=f845199263ed86dc6a88d2ed7f80e9b53e7c8505;hb=78d9939f551643454b56774bae6d56bed421e1af;hp=64fcff492d4d7d3a8e6590d501f4a474e2efaab1;hpb=e90f0536f9be39ada0bef0aeb0d275dec3b2fb5b;p=lilypond.git
diff --git a/NEWS.txt b/NEWS.txt
index 64fcff492d..f845199263 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,395 +1,848 @@
-New features in 2.14 since 2.12
+New features in 2.20 since 2.18
*******************************
- * Lilypond now helps beams avoid collisions with other grobs! This
- feature works completely with manual beams. It also works for all
- automatic beams that do not end right before a change in staff.
- For this special case, please use manual beams.
-
- * The Articulate script by Peter Chubb, which is GPLv3 licensed, is
- now a part of the distribution. It allows easy generation of
- improved MIDI files that perform non-legato by default, legato
- slurs, staccato, tempo markings, trills, etc.
-
- \include "articulate.ly"
- \articulate <<
- all the rest of the score...
- >>
-
- * Single beat repeats for sixteenth or shorter notes and beat
- repeats for measures containing notes of varying durations are now
- supported.
-
- [image of music]
-
- * Lilypond now engraves woodwind fingering charts.
-
- [image of music]
-
- * MIDI output has been improved
- * the option `\set Score.midiChannelMapping = #'voice' puts
- each voice on its own midi MIDI channel
-
- * the option `\set Score.midiChannelMapping = #'instrument'
- puts identical instruments on the same MIDI channel. This
- means that e.g. for a full orchestral score there are always
- 16 (15 plus percussion) differently sounding instruments
- available, unrestricted by the number of staves or voices.
- (Some MIDI players will cut off notes, however, if two voices
- play the same pitch simultaneously on the same channel.) This
- option also stores each voice in a separate track in the MIDI
- file.
-
- * the default, `\set Score.midiChannelMapping = #'staff',
- assigns one MIDI channel per staff. This setting allows
- instrument changes (implemented as MIDI program changes) to
- re-use single MIDI channel.
-
- * dynamics are now rendered as note velocities, no longer as
- midi volume. This improves the sound on [high end] midi
- renderers.
-
- * MIDI-import through Midi2ly is improved
- * Midi2ly now also works on Windows systems
-
- * MIDI-files with more than 32 tracks are now handled
-
- * notes on certain simultaneous voices no longer ignored
-
- * notes overrunning a bar line are no longer truncated
-
- * initial key signature and time signature are respected
-
- * a problem with octaves in subsequent tracks/voices is fixed
-
- * initial support for multiple voices notated on one staff
-
- * the instrumentName is set from track data
-
- * new -skip option, rests are displayed by default
-
- * rests overrunning a bar line are not truncated
-
- * new -include-header option for setting titles
-
- * new -preview option for big MIDI-files
- The first feature was sponsored by Valentin Villenave, the other
- features were sponsored by Image-Line Software for FL Studio.
-
- * A new `Completion_rest_engraver' is available for automatically
- converting long rests which overrun bar lines, matching the
- `Completion_heads_engraver' for notes
+ ⢠It is now possible to move systems with reference to their current
+ position using the âextra-offsetâ subproperty of
+ âNonMusicalPaperColumn.line-break-system-detailsâ. Both vertical
+ and horizontal changes are possible. This feature is especially
+ useful for making slight adjustments to the default vertical
+ position of individual systems. See *note
+ (lilypond-notation)Explicit staff and system positioning:: for more
+ information.
+
+ ⢠It is now possible to add text to analysis brackets through the
+ âHorizontalBracketTextâ object.
\layout {
\context {
\Voice
- \remove "Note_heads_engraver"
- \consists "Completion_heads_engraver"
- \remove "Rest_engraver"
- \consists "Completion_rest_engraver"
+ \consists "Horizontal_bracket_engraver"
}
}
- This feature was sponsored by Image-Line Software for FL Studio.
- * Dots can be added to the table of contents items using:
+ {
+ \once \override HorizontalBracketText.text = "a"
+ c''\startGroup d''\stopGroup
+ e''-\tweak HorizontalBracketText.text "a'" \startGroup d''\stopGroup
+ }
+ image of music
+
+ ⢠The ends of hairpins may now be fine-tuned using the âshorten-pairâ
+ grob property, which previously only affected text-spanners like
+ âTupletBracketâ and âOttavaBracketâ. Positive values offset to the
+ right, negative to the left.
+ { \once \override Hairpin.shorten-pair = #'(2 . 2)
+ c'1~\<
+ c'2~ c'\!
+ \once \override Hairpin.shorten-pair = #'(-2 . -2)
+ c'1~\<
+ c'2~ c'\! }
+ image of music
+
+ ⢠In fret-diagrams the distance between frets and the distance
+ between strings is now independently adjustable. Available are
+ âfret-distanceâ and âstring-distanceâ as subproperties of
+ âfret-diagram-detailsâ.
+ fretMrkp = \markup { \fret-diagram-terse #"x;x;o;2;3;2;" }
+
+ \markuplist
+ \override #'(padding . 2)
+ \table #'(0 -1) {
+ "default"
+
+ \fretMrkp
+
+ "fret-distance"
+
+ \override #'(fret-diagram-details . ((fret-distance . 2)))
+ \fretMrkp
+
+ "string-distance"
+
+ \override #'(fret-diagram-details . ((string-distance . 2)))
+ \fretMrkp
+ }
+ image of music
+
+ ⢠Accidental rules can now be defined across âChoirStaffâ contexts.
+ Two new rules âchoralâ and âchoral-cautionaryâ are available that
+ combine the characteristics of âmodern-voiceâ and âpianoâ or their
+ equivalents with cautionary accidentals.
+
+ ⢠The music function â\unfoldRepeatsâ can now take an optional
+ argument-list specifying which type(s) of repeated music should be
+ unfolded. Possible entries are âpercentâ, âtremoloâ, âvoltaâ. If
+ the optional argument-list is unspecified, ârepeated-musicâ will be
+ used, unfolding all.
+
+ ⢠A new âoutput-attributesâ grob property is now used for svg output
+ instead of the âidâ grob property. It allows multiple attributes
+ to be defined as an association list. For example, â#'((id . 123)
+ (class . foo) (data-whatever . âbarâ))â will produce the following
+ group tag in an SVG file: â ... â.
+
+ ⢠Slurs and phrasing slurs may now be started from individual notes
+ in a chord. Several simultanous slurs per âVoiceâ need to be
+ distinguished by âspanner-idâ setting.
+
+ ⢠The music and grob property âspanner-idâ for distinguishing
+ simultaneous slurs and phrasing slurs has been changed from a
+ string to a âkeyâ, a non-negative integer or symbol.
+
+ ⢠There is a new command â\=â for specifying the âspanner-idâ for
+ simultaneous slurs and phrasing slurs.
+ \fixed c' {
+ 2
+ }
+ image of music
+
+ ⢠Blocks introduced with â\headerâ can be stored in variables and
+ used as arguments to music and scheme functions and as the body of
+ â#{...#}â constructs. They are represented as a Guile module.
+
+ While â\bookâ, â\bookpartâ, â\scoreâ, â\withâ, â\layoutâ, â\midiâ,
+ â\paperâ blocks can be passed around in similar manner, they are
+ represented by different data types.
+
+ ⢠Dot-separated symbol lists like âFretBoard.stencilâ were already
+ supported as of version 2.18. They may now also contain unsigned
+ integers, and may alternatively be separated by commata. This
+ allows usage such as
+ { \time 2,2,1 5/8 g'8 8 8 8 8 }
+ image of music
+
+ and
+ \tagGroup violin,oboe,bassoon
+
+ ⢠Such lists may also be used in expressions for assignments, sets,
+ and overrides. This allows usage such as
+ { \unset Timing.beamExceptions
+ \set Timing.beatStructure = 1,2,1
+ g'8 8 8 8 8 8 8 8 }
+ image of music
+
+ ⢠Association list elements could previously be assigned values
+ individually (for example, paper variables like
+ âsystem-system-spacing.basic-distanceâ). They may now be also
+ referenced in this manner, as with
\paper {
- tocItemMarkup = \tocItemWithDotsMarkup
+ \void \displayScheme \system-system-spacing.basic-distance
}
- * New markup commands `\pattern' and `\fill-with-pattern' are
- available. [image of music]
-
- * A minimal composer toolkit of modal transformations is provided.
- A motif may be transposed, inverted and/or converted to its
- retrograde within any scale.
-
- [image of music]
-
- * Added minimal support for black mensural notation.
-
- * Enhanced support for obliqua shapes within white mensural
- ligatures.
-
- [image of music]
-
- * New markup functions `\with-link' and `\page-link' that add
- hyperlinks to a given label or a given page number. This works in
- the PDF backend only. All entries to the table of contents now
- automatically add hyperlinks to the pages they are referring to.
-
- * Compound time signatures are now supported by the `\compoundMeter'
- command, which can be used instead of `\time':
-
- [image of music]
-
- * Lyrics above a staff must have their `staff-affinity' set to
- `DOWN' or must have their `alignAboveContext' property set in
- order to be properly aligned. For more information, see *note
- Placing lyrics vertically: (lilypond-notation)Placing lyrics
- vertically.
-
- * `stringTunings' property values have changed from a list of
- semitones above middle C to a list of LilyPond pitch values.
- convert-ly will handle the change automatically where the value of
- `stringTunings' is set to a Scheme constant value.
-
- New commands `makeStringTuning' and `contextStringTuning' allow
- the creation of string tunings in the form of a Lilypond chord
- construct.
-
- * By using `\cueDuringWithClef', cue notes can now also have their
- own clef, which is correctly reset at the end of the cue notes.
- At the begin of each line, the standard clef is still displayed,
- but the cue clef is shown after the time/key signature in smaller
- size.
-
- [image of music]
-
- * Note names can be selected with a new `\language "italiano"'
- command, which can be used in safe mode. The old `\include
- "italiano.ly"' syntax is still supported for now, but will be
- deprecated in the future.
-
- * autobeaming is now disabled by `\cadenzaOn' and enabled by
- `\cadenzaOff'. Beaming in cadenzas should be indicated manually.
- Also, if a cadenza is used in a piece with autobeaming disabled, it
- will need to be disabled again after the cadenza.
-
- * The user is now able to specify the name of the predefined
- fretboard table. This allows the use of multiple tables, with
- switching between them based on user input.
-
- * The part-combiner's decision to combine/not combine notes can now
- be customized
-
- [image of music]
-
-
- * Tablature staves show fret numbers only by default. To get the
- former style, `\tabFullNotation' is provided.
-
- * Funk-style and Walker-style shape notes have been added.
-
- * Rests will no longer keep a staff alive if
- `\RemoveEmptyStaffContext' is used.
-
- * New option `-dinclude-settings=INCLUDEFILE.ly', which causes
- lilypond to include the given file before the score is processed.
- This allows the user to change global settings without the need to
- change the score itself. That way, several different
- editions/version (e.g. different page sizes) can be generated from
- a file without having to modify the score for each version.
-
- * The autobeaming settings syntax has been changed. beatLength,
- beatGrouping, beamSettings, and measureGrouping have all been
- eliminated. Autobeaming is now controlled by baseMoment,
- beatStructure, and beamExceptions. Default settings for each of
- these properties can be stored for any time signature in
- time-signature-settings, so that when the time signature is
- changed, the autobeaming will automatically change. The new
- syntax should be much easier and require fewer overrides.
-
- * The SVG backend has optional support for WOFF fonts
- (http://www.w3.org/Submission/WOFF). Using the Scheme option `-d
- svg-woff' together with the SVG backend selection `-d
- backend=svg', produces SVG output with CSS WOFF font selection.
-
- * The LilyPond G clef has been rotated 1.5 degrees clockwise for
- improved balance. The old and new versions can be compared by
- looking at the documentation: old version
- (http://lilypond.org/doc/v2.12/Documentation/user/lilypond/The-Feta-font.html#Clef-glyphs),
- new version
- (http://lilypond.org/doc/v2.14/Documentation/notation/the-feta-font.html#Clef-glyphs).
-
- * Text crescendo spanners can now be added directly using `\cresc',
- `\dim' and `\decresc'.
-
- [image of music]
-
-
- * The documented syntax of `lilypond' environments in the LaTeX mode
- of `lilypond-book' has been changed to conform with standard LaTeX
- syntax: options now come after the environment name:
- \begin{lilypond}[OPTIONS] ...
-
- The previous syntax with options after `\begin' is still accepted
- by `lilypond-book' but deprecated. Something like
- sed -i '/begin\[/s/begin\(\[[^]]*]\)\({lilypond}\)/begin\2\1/'
+ In combination with the previously mentioned changes, this allows
+ setting and referencing pseudovariables like âviolin.1â.
- might do the trick for conversion.
+ ⢠LilyPond source files may now be embedded inside the generated PDF
+ files. This experimental feature is disabled by default and may be
+ regarded as unsafe, as PDF documents with hidden content tend to
+ present a security risk. Please note that not all PDF viewers have
+ the ability to handle embedded documents (if not, the PDF output
+ will appear normally and source files will remain invisible). This
+ feature only works with the PDF backend.
- * Aesthetics of shape note heads have been enhanced. Variable line
- thicknesses have been implemented. All note widths have been made
- consistent. Minor shape note commands that use the relative major
- key for scale steps have been added.
+ ⢠French note names are now defined specifically instead of being
+ aliased to Italian note names: in addition to the generic
+ Italian-derived syntax, the D pitch may be entered as âréâ. Double
+ sharps may also be entered using the â-xâ suffix.
- * A variant of the Segno sign is provided:
+ ⢠Additional bass strings (for lute tablature) are supported.
+ m = { f'4 d' a f d a, g, fis, e, d, c, \bar "|." }
- [image of music]
-
-
- * Context modifications (`\with' blocks) can be stored in variables
- and inserted into contexts or other `\with' blocks:
-
- coloredheads = \with { \override NoteHead #'color = #red }
- noclef = \with { \remove "Clef_engraver" }
\score {
- \new Staff {
- \new Voice \with { \coloredheads } \relative c' { c4 e g c }
- }
+ \new TabStaff \m
\layout {
\context {
- \Staff
- \noclef
+ \Score
+ tablatureFormat = #fret-letter-tablature-format
+ }
+ \context {
+ \TabStaff
+ stringTunings = \stringTuning
+ additionalBassStrings = \stringTuning
+ fretLabels = #'("a" "b" "r" "d" "e" "f" "g" "h" "i" "k")
}
}
}
- [image of music]
-
-
- * A half-open articulation was added:
+ image of music
+
+ ⢠The markup-list-command â\tableâ is now available. Each column may
+ be aligned differently.
+ \markuplist {
+ \override #'(padding . 2)
+ \table
+ #'(0 1 0 -1)
+ {
+ \underline { center-aligned right-aligned center-aligned left-aligned }
+ one "1" thousandth "0.001"
+ eleven "11" hundredth "0.01"
+ twenty "20" tenth "0.1"
+ thousand "1000" one "1.0"
+ }
+ }
+ image of music
+
+ ⢠A new markup-command, â\with-dimensions-fromâ, makes
+ â\with-dimensionsâ easier to use by taking the new dimensions from
+ a markup object, given as first argument.
+ \markup {
+ \pattern #5 #Y #0 "x"
+ \pattern #5 #Y #0 \with-dimensions-from "x" "f"
+ \pattern #5 #Y #0 \with-dimensions-from "x" "g"
+ \override #'(baseline-skip . 2)
+ \column {
+ \pattern #5 #X #0 "n"
+ \pattern #5 #X #0 \with-dimensions-from "n" "m"
+ \pattern #5 #X #0 \with-dimensions-from "n" "!"
+ }
+ }
+ image of music
+
+ ⢠There are two new page breaking functions. âly:one-page-breakingâ
+ automatically adjusts the height of the page to fit the music, so
+ that everything fits on one page.
+ âly:one-line-auto-height-breakingâ is like âly:one-line-breakingâ,
+ placing the music on a single line and adjusting the page width
+ accordingly, however it also automatically adjusts the page height
+ to fit the music.
+
+ ⢠Markup-command â\draw-squiggle-lineâ is now available. Customizing
+ is possible with overrides of âthicknessâ, âangularityâ, âheightâ
+ and âorientationâ
+ \markup
+ \overlay {
+ \draw-squiggle-line #0.5 #'(3 . 3) ##t
+
+ \translate #'(3 . 3)
+ \override #'(thickness . 4)
+ \draw-squiggle-line #0.5 #'(3 . -3) ##t
+
+ \translate #'(6 . 0)
+ \override #'(angularity . -5)
+ \draw-squiggle-line #0.5 #'(-3 . -3) ##t
+
+ \translate #'(3 . -3)
+ \override #'(angularity . 2)
+ \override #'(height . 0.3)
+ \override #'(orientation . -1)
+ \draw-squiggle-line #0.2 #'(-3 . 3) ##t
+ }
+ image of music
- [image of music]
+ ⢠A new command, â\RemoveAllEmptyStavesâ, has been made available,
+ which acts exactly like â\RemoveEmptyStavesâ, except for also
+ removing empty staves on the first system in a score.
+ ⢠Markup-commands â\undertieâ and â\overtieâ are now available, as
+ well as the generic markup-command â\tieâ.
+ \markup {
+ \undertie "undertied"
+ \overtie "overtied"
+ }
- This is sometimes used to indicate half-open hi-hats.
+ m = {
+ c''1 \prall -\tweak text \markup \tie "131" -1
+ }
- * The Unicode Bidirectional Algorithm is now fully supported for
- single-line markup due to enhanced integration with Pango.
+ { \voiceOne \m \voiceTwo \m }
+ image of music
- * LilyPond is now licensed under the GNU GPL v3+.
+ ⢠âTabStaffâ is now able to print micro-tones for bendings etc.
+ \layout {
+ \context {
+ \Score
+ supportNonIntegerFret = ##t
+ }
+ }
- * In tablature, frets can be indicated with labels other than
- numbers:
+ mus = \relative { c'4 cih d dih }
- \new TabStaff
- \with {
- stringTunings = #`(,(ly:make-pitch 1 3 NATURAL)
- ,(ly:make-pitch 1 1 NATURAL)
- ,(ly:make-pitch 0 5 NATURAL)
- ,(ly:make-pitch 0 3 NATURAL)
- ,(ly:make-pitch 0 1 NATURAL)
- ,(ly:make-pitch -1 5 NATURAL))
- tablatureFormat = #fret-letter-tablature-format
+ <<
+ \new Staff << \clef "G_8" \mus >>
+ \new TabStaff \mus
+ >>
+ image of music
+
+ ⢠Two new styles of whiteout are now available. The âoutlineâ style
+ approximates the contours of a glyphâs outline, and its shape is
+ produced from multiple displaced copies of the glyph. The
+ ârounded-boxâ style produces a rounded rectangle shape. For all
+ three styles, including the default âboxâ style, the whiteout
+ shapeâs âthicknessâ, as a multiple of staff-line thickness, can be
+ customized.
+
+ \markup {
+ \combine
+ \filled-box #'(-1 . 15) #'(-3 . 4) #1
+ \override #'(thickness . 3)
+ \whiteout whiteout-box
+ }
+ \markup {
+ \combine
+ \filled-box #'(-1 . 24) #'(-3 . 4) #1
+ \override #'(style . rounded-box)
+ \override #'(thickness . 3)
+ \whiteout whiteout-rounded-box
+ }
+ \markup {
+ \combine
+ \filled-box #'(-1 . 18) #'(-3 . 4) #1
+ \override #'(style . outline)
+ \override #'(thickness . 3)
+ \whiteout whiteout-outline
}
- \new TabVoice {
- \set fretLabels = #`(,(markup #:with-color red "a")
- "b"
- ,(markup #:italic #:smaller "c"))
- 4. 8 4
+ \relative {
+ \override Staff.Clef.whiteout-style = #'outline
+ \override Staff.Clef.whiteout = 3
+ g'1
}
- [image of music]
+ image of music
+
+ ⢠All of â\overrideâ, â\revertâ, â\setâ, and â\unsetâ now work with
+ the â\onceâ prefix for making one-time settings.
+ \relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \once \override NoteHead.color = #green
+ g4 a
+ \once \revert NoteHead.color
+ b c |
+ \revert NoteHead.color
+ f2 c |
+ }
+ image of music
+
+ ⢠When outputting MIDI, LilyPond will now store the âtitleâ defined
+ in a scoreâs â\headerâ block (or, if there is no such definition on
+ the â\scoreâ level, the first such definition found in a â\headerâ
+ block of the scoreâs enclosing â\bookpartâ, â\bookâ, or top-level
+ scope) as the name of the MIDI sequence in the MIDI file.
+ Optionally, the name of the MIDI sequence can be overridden using
+ the new âmidititleâ â\headerâ field independently of âtitleâ (for
+ example, in case âtitleâ contains markup code which does not render
+ as plain text in a satisfactory way automatically).
+
+ ⢠Music (and scheme and void) functions and markup commands that just
+ supply the final parameters to a chain of overrides, music function
+ and markup command calls can now be defined in the form of just
+ writing the expression cut short with â\etcâ.
+
+ bold-red-markup = \markup \bold \with-color #red \etc
+ highlight = \tweak font-size 3 \tweak color #red \etc
+
+ \markup \bold-red "text"
+ \markuplist \column-lines \bold-red { One Two }
+
+ { c' \highlight d' e'2-\highlight -! }
+ image of music
+
+ ⢠LilyPond functions defined with âdefine-music-functionâ,
+ âdefine-event-functionâ, âdefine-scheme-functionâ and
+ âdefine-void-functionâ can now be directly called from Scheme as if
+ they were genuine Scheme procedures. Argument checking and
+ matching will still be performed in the same manner as when calling
+ the function through LilyPond input. This includes the insertion
+ of defaults for optional arguments not matching their predicates.
+ Instead of using â\defaultâ in the actual argument list for
+ explicitly skipping a sequence of optional arguments,
+ â*unspecified*â can be employed.
+
+ ⢠Current input location and parser are now stored in GUILE fluids
+ and can be referenced via the function calls â(*location*)â and
+ â(*parser*)â. Consequently, a lot of functions previously taking
+ an explicit âparserâ argument no longer do so.
+
+ Functions defined with âdefine-music-functionâ,
+ âdefine-event-functionâ, âdefine-scheme-functionâ and
+ âdefine-void-functionâ no longer use âparserâ and âlocationâ
+ arguments.
+
+ With those particular definitions, LilyPond will try to recognize
+ legacy use of âparserâ and âlocationâ arguments, providing
+ backwards-compatible semantics for some time.
+
+ ⢠In the "english" notename language, the long notenames for pitches
+ with accidentals now contain a hyphen for better readability. You
+ now have to write
+ \key a-flat \major
+ instead of the previous
+ \key aflat \major
+
+ Double accidentals do not get another hyphen, so the Dutch âcisisâ
+ has the long English notename âc-sharpsharpâ.
+
+ ⢠The visual style of tremolo slashes (shape, style and slope) is now
+ more finely controlled.
+ image of music
+
+ ⢠Multi-measure rests have length according to their total duration,
+ under the control of âMultiMeasureRest.space-incrementâ.
+ image of music
+
+ ⢠Page numbers may now be printed in roman numerals, by setting the
+ âpage-number-typeâ paper variable.
+
+ ⢠It is now possible to use â\timeâ and â\partialâ together to change
+ the time signature in mid measure.
+
+ \override Score.BarNumber.break-visibility = #end-of-line-invisible
+ \partial 4 \time 3/4 f4 | 2 4 | 2 \bar "||"
+ \time 9/8 \partial 4. f8 8 8 | 2. 8 8 8 |
+ image of music
+
+ ⢠It is now possible to override the âtextâ property of chord names.
+
+ <<
+ \new ChordNames \chordmode {
+ a' b c:7
+ \once \override ChordName.text = #"foo"
+ d
+ }
+ >>
+ image of music
+ ⢠Improved horizontal alignment when using âTextScriptâ, with
+ âDynamicTextâ or âLyricTextâ.
- * Layout objects can be printed over a white background, which
- whites-out objects in lower layers which lie beneath:
+ ⢠A new command â\magnifyStaffâ has been added which scales staff
+ sizes, staff lines, bar lines, beamlets and horizontal spacing
+ generally at the âStaffâ context level. Staff lines are prevented
+ from being scaled smaller than the default since the thickness of
+ stems, slurs, and the like are all based on the staff line
+ thickness.
- \time 3/4
- \override Staff.StaffSymbol #'layer = #4
- \once \override Tie #'layer = #2
- b'2.~
- \once \override Staff.TimeSignature #'whiteout = ##t
- \once \override Staff.TimeSignature #'layer = #3
- \time 5/4
- b4
- [image of music]
+ ⢠âInstrumentNameâ now supports âtext-interfaceâ.
+ ⢠There is now support for controlling the âexpression levelâ of MIDI
+ channels using the âStaff.midiExpressionâ context property. This
+ can be used to alter the perceived volume of even sustained notes
+ (albeit in a very âlow-levelâ way) and accepts a number value
+ between â0.0â and â1.0â.
- * Chords can be repeated using the `q' shortcut:
+ \score {
+ \new Staff \with {
+ midiExpression = #0.6
+ midiInstrument = #"clarinet"
+ }
+ <<
+ { a'1~ a'1 }
+ {
+ \set Staff.midiExpression = #0.7 s4\f\<
+ \set Staff.midiExpression = #0.8 s4
+ \set Staff.midiExpression = #0.9 s4
+ \set Staff.midiExpression = #1.0 s4
+
+ \set Staff.midiExpression = #0.9 s4\>
+ \set Staff.midiExpression = #0.8 s4
+ \set Staff.midiExpression = #0.7 s4
+ \set Staff.midiExpression = #0.6 s4\!
+ }
+ >>
+ \midi { }
+ }
- 8.-^ q16 q4-^
- [image of music]
+ ⢠Support for making it easier to use alternative âmusicâ fonts other
+ than the default Emmentaler in LilyPond has been added. See
+ for more information.
+ ⢠Grobs and their parents can now be aligned separately allowing more
+ flexibility for grob positions. For example the âleftâ edge of a
+ grob can now be aligned on the âcenterâ of its parent.
- * With two-sided mode, margins for odd and even pages can be set
- using `inner-margin' and `outer-margin':
+ ⢠Improvements to the â\partialâ command have been made to avoid
+ problems when using multiple, parallel contexts.
- \paper {
- two-sided = ##t
- inner-margin = 10 \mm
- outer-margin = 20 \mm
- }
+ ⢠â\chordmodeâ can now use â< >â and â<< >>â constructs.
- * Paper margin defaults, as specified in
- `ly/paper-defaults-init.ly', apply to the default paper size (a4)
- and are automatically scaled according to the paper size chosen.
+ ⢠A new command â\tagGroupâ has now been added. This complements the
+ existing â\keepWithTagâ and â\removeWithTagâ commands. For
+ Example:
- * All combinations of `left-margin', `right-margin' and `line-width'
- work now. There is no more need to set `line-width' manually
- unless you explicitly want to.
+ \tagGroup #'(violinI violinII viola cello)
- * Support for using an alternative music font, such as Gonville, is
- now added.
+ declares a list of âtagsâ that belong to a single âtag groupâ.
- * In addition to the existing `\hspace' markup command, a new
- `\vspace' command has been added to provide an easy and flexible
- way to add vertical space in markups.
+ \keepWithTag #'violinI
- * The direction of manual beams can be set with `^[' and `_['.
+ Is now only concerned with âtagsâ from âviolinIââs tag group.
- * A version of the breve note head has been added with two vertical
- lines on each side.
+ Any element of the included music tagged with one or more tags from
+ the group, but _not_ with VIOLINI, will be removed.
- [image of music]
+ ⢠The â\addlyricsâ function now works with arbitrary contexts
+ incuding âStaffâ.
+ ⢠String numbers can now also be used to print roman numerals (e.g.
+ for unfretted string instruments).
+ c2\2
+ \romanStringNumbers
+ c\2
+ \arabicStringNumbers
+ c1\3
+ image of music
- * Instrument names and vocal names now take into account the extent
- of system start delimiters in other staves for their positioning,
- resulting in improved default alignment for left-, center- and
- right-aligned names.
+ ⢠The âthin-kernâ property of the âBarLineâ grob has been renamed to
+ âsegno-kernâ.
- [image of music]
+ ⢠âKeyCancellationâ grobs now ignore cue clefs (like âKeySignatureâ
+ grobs do).
+ ⢠Add support for â\once \unsetâ
- * Braces in markup can now be selected by point size using the
- markup commands `\left-brace' and `\right-brace'.
+ ⢠It is now possible to individually color both the dots and
+ parentheses in fret diagrams when using the â\fret-diagram-verboseâ
+ markup command.
- [image of music]
+ \new Voice {
+ c1^\markup {
+ \override #'(fret-diagram-details . (
+ (finger-code . in-dot))) {
+ \fret-diagram-verbose #'((mute 6)
+ (place-fret 5 3 1 red)
+ (place-fret 4 5 2 inverted)
+ (place-fret 3 5 3 green)
+ (place-fret 2 5 4 blue inverted)
+ (place-fret 1 3 1 violet)
+ (barre 5 1 3 ))
+ }
+ }
+ c1^\markup {
+ \override #'(fret-diagram-details . (
+ (finger-code . below-string))) {
+ \fret-diagram-verbose #'((mute 6)
+ (place-fret 5 3 1 red parenthesized)
+ (place-fret 4 5 2 yellow
+ default-paren-color
+ parenthesized)
+ (place-fret 3 5 3 green)
+ (place-fret 2 5 4 blue )
+ (place-fret 1 3 1)
+ (barre 5 1 3))
+ }
+ }
+ }
+ image of music
+
+ ⢠Two new properties have been added for use in
+ âfret-diagram-detailsâ when using the â\fret-diagram-verboseâ
+ markup command; âfret-label-horizontal-offsetâ which affects the
+ âfret-label-indicationâ and âparen-paddingâ which controls the
+ space between the dot and the parentheses surrounding it.
+
+ \new Voice {
+ c1^\markup {
+ \fret-diagram-verbose #'((mute 6)
+ (place-fret 5 3 1)
+ (place-fret 4 5 2)
+ (place-fret 3 5 3)
+ (place-fret 1 6 4 parenthesized)
+ (place-fret 2 3 1)
+ (barre 5 2 3))
+ }
+ c1^\markup {
+ \override #'(fret-diagram-details . (
+ (fret-label-horizontal-offset . 2)
+ (paren-padding . 0.25))) {
+ \fret-diagram-verbose #'((mute 6)
+ (place-fret 5 3 1)
+ (place-fret 4 5 2)
+ (place-fret 3 5 3)
+ (place-fret 1 6 4 parenthesized)
+ (place-fret 2 3 1)
+ (barre 5 2 3))
+ }
+ }
+ }
+ image of music
+
+ ⢠A new markup command â\justify-lineâ has been added. Similar to
+ the â\fill-lineâ markup command except that instead of setting
+ _words_ in columns, the â\justify-lineâ command balances the
+ whitespace between them ensuring that when there are three or more
+ words in a markup, the whitespace is always consistent.
+
+ \markup \fill-line {oooooo oooooo oooooo oooooo}
+ \markup \fill-line {ooooooooo oooooooo oo ooo}
+ image of music
+
+ \markup \justify-line {oooooo oooooo oooooo oooooo}
+ \markup \justify-line {ooooooooo oooooooo oo ooo}
+ image of music
+
+ ⢠A new command â\magnifyMusicâ has been added, which allows the
+ notation size to be changed without changing the staff size, while
+ automatically scaling stems, beams, and horizontal spacing.
+
+ \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
+ }
+ }
+ >>
+ image of music
+
+ ⢠A new flexible template suitable for a range of choral music, is
+ now provided. This may be used to create simple choral music, with
+ or without piano accompaniment, in two or four staves. Unlike
+ other templates, this template is âbuilt-inâ, which means it does
+ not need to be copied and edited: instead it is simply â\includeââd
+ in the input file. For details, see *note
+ (lilypond-learning)Built-in templates::.
+
+ ⢠The positioning of tuplet numbers for kneed beams has been
+ significantly improved. Previously, tuplet numbers were placed
+ according to the position of the tuplet bracket, even if it was not
+ printed. This could lead to stranded tuplet numbers. Now they are
+ now positioned closer to the kneed-beam when an appropriate beam
+ segment exists for its placement and when the bracket is not drawn.
+
+ Collision detection is also added, offsetting horizontally if too
+ close to an adjoining note column but preserving the numberâs
+ vertical distance from the kneed beam. If the number itself is too
+ large to fit in the available space the original, bracket-based,
+ positioning system is used instead; and in the event of a collision
+ (e.g. with an accidental) the tuplet number is moved vertically
+ away instead.
+ \time 3/4
+ \override Beam.auto-knee-gap = 3
+ \tuplet 3/2 4 {
+ g8 c'' e,
+ c'8 g,, e''
+ g,,8 e''' c,,
+ }
+ image of music
- * Intermediate .ps files which are created by LilyPond during
- compilation are now deleted by default. To keep them, add the
- following line to your input files:
- #(ly:set-option 'delete-intermediate-files #f)
+ The original kneed-beam tuplet behavior is still available through
+ an â\overrideâ via a new, âknee-to-beamâ property.
- * Dashed and dotted slurs, phrasing slurs, and ties have been made
- variable thickness, and partially dashed slurs are now available:
+ \time 3/4
+ \override Beam.auto-knee-gap = 3
+ \override TupletNumber.knee-to-beam = ##f
+ \tuplet 3/2 4 {
+ g8 c'' e,
+ c'8 g,, e''
+ g,,8 e''' c,,
+ }
+ image of music
- [image of music]
+ ⢠â\lyricstoâ and â\addLyricsâ have been âharmonizedâ. Both now
+ accept the same kind of delimited argument list that â\lyricsâ and
+ â\chordsâ accept. Backward compatibility has been added so music
+ identifiers (i.e. â\musâ) are permitted as arguments. A
+ âconvert-lyâ rule has been added that removes redundant uses of
+ â\lyricmodeâ and rearranges combinations with context starters such
+ that â\lyricstoâ in general is applied last (i.e. like
+ â\lyricmodeâ would be).
+ ⢠Scheme functions and identifiers can now be used as output
+ definitions.
- * An eyeglasses markup was added, indicating strongly to look at the
- conductor for instructions:
+ ⢠Scheme expressions can now be used as chord constituents.
- [image of music]
+ ⢠Improved visual spacing of small and regular âMIâ Funk and Walker
+ noteheads so they are now the same width as other shaped notes in
+ their respective sets. âSOLâ noteheads are also now visually
+ improved when used with both the normal Aiken and Sacred Harp
+ heads, as well as with the thin variants.
+ ⢠âLeftEdgeâ now has a definable âY-extentâ (i.e.vertical). See
+ *note (lilypond-internals)LeftEdge::.
- * A snap-pizzicato (also known as Bartok-pizzicato) articulation was
- added:
+ ⢠Added a new âmake-path-stencilâ function that supports all âpathâ
+ commands both relative and absolute:
- [image of music]
+ âlinetoâ, ârlinetoâ, âcurvetoâ, ârcurvetoâ, âmovetoâ, ârmovetoâ,
+ âclosepathâ. The function also supports âsingle-letterâ syntax
+ used in standard SVG path commands:
+ âLâ, âlâ, âCâ, âcâ, âMâ, âmâ, âZâ and âzâ. The new command is also
+ backward-compatible with the original âmake-connected-path-stencilâ
+ function. Also see âscm/stencil.scmâ.
- * Tuplet number formatting functions are now available to print
- other fractions and to add notes to the number or fraction:
+ ⢠Context properties named in the âalternativeRestoresâ property are
+ restored to their value at the start of the _first_ alternative in
+ all subsequent alternatives.
- [image of music]
+ Currently the default set restores âcurrent meterâ;
+ \time 3/4
+ \repeat volta 2 { c2 e4 | }
+ \alternative {
+ { \time 4/4 f2 d | }
+ { f2 d4 | }
+ }
+ g2. |
+ image of music
- * FretBoards now have a chordChanges property to keep repeated
- FretBoard objects from being typeset.
+ âmeasure positionâ;
- * The vertical spacing engine has been drastically changed, making
- it more flexible and easier to control. The spacing between
- staves within a system can now change to better use the space on
- the page. User-defined contexts may participate in this flexible
- spacing, depending on how their `staff-affinity' is defined. Some
- page formatting variables (`page-top-space', `between-system-space
- -padding', and `before- between- after-title-space') have been
- replaced by flexible vertical dimensions.
+ \time 3/4
+ \repeat volta 2 { c2 e4 | }
+ \alternative {
+ { \time 4/4
+ \set Timing.measurePosition = #(ly:make-moment -1/2)
+ f2 | }
+ { f2 d4 | }
+ }
+ g2. |
+ image of music
+ and âchord changesâ;
+ <<
+ \new ChordNames {
+ \set chordChanges = ##t
+ \chordmode { c1:m d:m c:m d:m }
+ }
+ \new Staff {
+ \repeat volta 2 { \chordmode { c1:m } }
+ \alternative {
+ { \chordmode { d:m } }
+ { \chordmode { c:m } }
+ }
+ \chordmode { d:m }
+ }
+ >>
+ image of music
+
+ ⢠Improved MIDI output for breathe marks. After tied notes, breaths
+ take time _only_ from the last note of the tie; e.g. â{ c4~ c8
+ \breathe }â performs as â{ c4~ c16 r }â instead of â{ c4 r8 }â.
+ This is more consistent with articulations and how humans interpret
+ breaths after ties. It now also makes it easier to align
+ simultaneous breathe marks over multiple parts, all with different
+ note lengths.
+
+ ⢠A new note head style for Tabulature has been added;
+ âTabNoteHead.style = #'slashâ.
+
+ ⢠Four new Clef glyphs have been added _Double G_, _Tenor G_,
+ _Varpercussion_ and _varC_ and their related tessitura.
+ \override Staff.Clef.full-size-change = ##t
+
+ \clef "GG" c c c c
+ \clef "tenorG" c c c c
+ \clef "varC" c c c c
+ \clef "altovarC" c c c c
+ \clef "tenorvarC" c c c c
+ \clef "baritonevarC" c c c c
+ \clef "varpercussion" c c c c
+
+ \break
+ \override Staff.Clef.full-size-change = ##f
+
+ \clef "GG" c c c c
+ \clef "tenorG" c c c c
+ \clef "varC" c c c c
+ \clef "altovarC" c c c c
+ \clef "tenorvarC" c c c c
+ \clef "baritonevarC" c c c c
+ \clef "varpercussion" c c c c
+ image of music
+
+ ⢠Isolated durations in music sequences now stand for unpitched
+ notes. This may be useful for specifying rhythms to music or
+ scheme functions. When encountered in the final score, the pitches
+ are provided by the preceding note or chord. Here are two examples
+ where this makes for readable input:
+
+ \new DrumStaff \with { \override StaffSymbol.line-count = 1 }
+ \drummode {
+ \time 3/4
+ tambourine 8 \tuplet 3/2 { 16 16 16 }
+ 8 \tuplet 3/2 { 16 16 16 } 8 8 |
+ }
+ image of music
+
+ \new Staff { r16 c'16 ~ 8 ~ 4 ~ 2 | }
+ image of music
+
+ ⢠â\displayLilyMusicâ and its underlying Scheme functions no longer
+ omit redundant note durations. This makes it easier to reliably
+ recognize and format standalone durations in expressions like
+ { c4 d4 8 }
+
+ ⢠Beaming exceptions can now be constructed using the
+ â\beamExceptionsâ scheme function. One can now write
+
+ \time #'(2 1) 3/16
+ \set Timing.beamExceptions =
+ \beamExceptions { 32[ 32] 32[ 32] 32[ 32] }
+ c16 c c |
+ \repeat unfold 6 { c32 } |
+ image of music
+
+ with multiple exceptions separated with â|â bar checks (writing the
+ exception pattern without pitches is convenient but not mandatory).
+ Previously, setting the beam exceptions would have required writing
+
+ \set Timing.beamExceptions =
+ #'( ;start of alist
+ (end . ;entry for end of beams
+ ( ;start of alist of end points
+ ((1 . 32) . (2 2 2)) ;rule for 1/32 beams -- end each 1/16
+ )))
+
+ ⢠The most common articulations are now reflected in MIDI output.
+ Accent and marcato make notes louder; staccato, staccatissimo and
+ portato make them shorter. Breath marks shorten the previous note.
+
+ This behavior is customizable through the âmidiLengthâ and
+ âmidiExtraVelocityâ properties on âArticulationEventâ. See
+ âscript-init.lyâ for examples.
+
+ ⢠The PostScript functionality of stroke adjustment is no longer
+ applied automatically but left to the discretion of the PostScript
+ device (by default, Ghostscript uses it for resolutions up to
+ 150dpi when generating raster images). When it is enabled, a more
+ complex drawing algorithm designed to benefit from stroke
+ adjustment is employed mostly for stems and bar lines.
+
+ Stroke adjustment can be forced by specifying the command line
+ option â-dstrokeadjustâ to LilyPond. When generating âPDFâ files,
+ this will usually result in markedly better looking âPDFâ previews
+ but significantly larger file size. Print quality at high
+ resolutions will be unaffected.
+
+ ⢠Default text fonts have been changed from âCentury Schoolbook Lâ,
+ âsans-serifâ, and âmonospaceâ.
+
+ For âsvgâ backend:
+ Family Default font
+ -----------------------------------
+ _roman_ âserifâ
+ _sans_ âsans-serifâ
+ _typewriter_âmonospaceâ
+
+ âserifâ, âsans-serifâ, and âmonospaceâ are âgeneric-familyâ in SVG
+ and CSS specifications.
+
+ For other backends:
+ Family Default font (alias) Alias definition lists
+ ----------------------------------------------------------------------------
+ _roman_ âLilyPond Serifâ TeX Gyre Schola, C059, Century
+ SchoolBook URW, Century Schoolbook L,
+ DejaVu Serif, ..., serif
+ _sans_ âLilyPond Sans TeX Gyre Heros, Nimbus Sans, Nimbus
+ Serifâ Sans L, DejaVu Sans, ..., sans-serif
+ _typewriter_âLilyPond Monospaceâ TeX Gyre Cursor, Nimbus Mono PS,
+ Nimbus Mono, Nimbus Mono L, DejaVu
+ Sans Mono, ..., monospace
+
+ âLilyPond Serifâ, âLilyPond Sans Serifâ, and âLilyPond Monospaceâ
+ are font aliases defined in the LilyPond dedicated FontConfig
+ configuration file â00-lilypond-fonts.confâ. Where a character
+ dosenât exist in the first font listed, the next font listed will
+ be used instead for that character. For details of alias
+ definitions, please see to â00-lilypond-fonts.confâ under the
+ installed directory.
-
-Local Variables:
-coding: utf-8
-End: