X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=NEWS.txt;fp=NEWS.txt;h=64fcff492d4d7d3a8e6590d501f4a474e2efaab1;hb=941dff9d2a67080e0dd8474f1e70f0c72ace6424;hp=1a11d9b769fbd20ee8bba600ad28b85d95df37c4;hpb=5a22d6233a39d3164e1ca043244794c268be4ad0;p=lilypond.git diff --git a/NEWS.txt b/NEWS.txt index 1a11d9b769..64fcff492d 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -1,286 +1,392 @@ -New features in 2.12 since 2.10 +New features in 2.14 since 2.12 ******************************* - * Fret diagrams can now have variable string thickness: + * 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. - [image of music] + * 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... + >> - * A new fret diagram orientation, opposing-landscape, is available: + * Single beat repeats for sixteenth or shorter notes and beat + repeats for measures containing notes of varying durations are now + supported. - [image of music] + [image of music] + * Lilypond now engraves woodwind fingering charts. - * Unbeamed 128th notes are now supported: + [image of music] - [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. - * Extending LilyPond's existing support for microtones, there are - now arrowed accidentals for the notation of microtonal alterations. - To use them, redefine the `glyph-name-alist' property of - `Accidental' as in the following example which uses quartertones - to typeset arrowed accidentals. Alternatively, it is possible to - define separate names for all notes with arrowed accidentals (see - `ly/makam.ly' for boilerplate code). + * 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. - [image of music] + * 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 - * Straight flags (used in old scores of e.g. Bach, but also in - different form in modern scores of e.g. Stockhausen) are now - implemented: + * MIDI-files with more than 32 tracks are now handled - [image of music] + * 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 - * `\bookpart' blocks may be used to split a book into several parts, - separated by a page break, in order to ease the page breaking, or - to use different `\paper' settings in different parts. + * new -include-header option for setting titles - \bookpart { - \header { - title = "Book title" - subtitle = "First part" + * 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 + \layout { + \context { + \Voice + \remove "Note_heads_engraver" + \consists "Completion_heads_engraver" + \remove "Rest_engraver" + \consists "Completion_rest_engraver" } - \score { ... } - ... } - \bookpart { - \header { - subtitle = "Second part" - } - \score { ... } - ... + This feature was sponsored by Image-Line Software for FL Studio. + + * Dots can be added to the table of contents items using: + \paper { + tocItemMarkup = \tocItemWithDotsMarkup } - * Nested contexts of the same type are now allowed. This deprecates - `InnerStaffGroup' and `InnerChoirStaff'. + * New markup commands `\pattern' and `\fill-with-pattern' are + available. [image of music] - [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] - * Percent repeat counters can be shown at regular intervals using the - context property `repeatCountVisibility'. + * Added minimal support for black mensural notation. - [image of music] + * Enhanced support for obliqua shapes within white mensural + ligatures. + [image of music] - * In addition to the already existing `showLastLength' property, - `showFirstLength' can now be set as well, rendering only the first - measures of a piece. Both properties may be set at the same time: + * 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. - [image of music] + * Compound time signatures are now supported by the `\compoundMeter' + command, which can be used instead of `\time': + [image of music] - * The file extension for MIDI can be set using the command-line - program default `midi-extension'. For Windows, the default - extension has been changed to `.mid'. + * 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. - * Two variations on the default double repeat bar line are now - available. + * `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. - [image of music] + 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. - * Four automatic accidentals rules have been added: `neo-modern', - `neo-modern-cautionary', `dodecaphonic' and `teaching'. The - following example illustrates `neo-modern' rule. + [image of music] - [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. - * Flags can now be generated with Scheme-code using the `'flag' - `Stem' grob property. Existing scores will work without change. + * The part-combiner's decision to combine/not combine notes can now + be customized [image of music] - * Harp pedalling diagrams were added: + * Tablature staves show fret numbers only by default. To get the + former style, `\tabFullNotation' is provided. - [image of music] + * Funk-style and Walker-style shape notes have been added. + * Rests will no longer keep a staff alive if + `\RemoveEmptyStaffContext' is used. - * Predefined, user-configurable, transposable fret diagrams are now - available in the `FretBoards' context: + * 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. - [image of music] + * 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 following syntax changes were made, in chronological order. In - addition, fret diagram properties have been moved to - `fret-diagram-details', and the `#'style' property is used to - select solid/dashed lines instead of `#'dash-fraction'. - - 'break-align-symbol -> 'break-align-symbols - scripts.caesura -> scripts.caesura.curved - \setEasyHeads -> \easyHeadsOn - \easyHeadsOff (new command) - \fatText -> \textLengthOn - \emptyText -> \textLengthOff - \set hairpinToBarline -> \override Hairpin #'to-barline - \compressMusic -> \scaleDurations - \octave -> \octaveCheck - \arpeggioUp -> \arpeggioArrowUp - \arpeggioDown -> \arpeggioArrowDown - \arpeggioNeutral -> \arpeggioNormal - \setTextCresc -> \crescTextCresc - \setTextDecresc -> \dimTextDecresc - \setTextDecr -> \dimTextDecr - \setTextDim -> \dimTextDim - \setHairpinCresc -> \crescHairpin - \setHairpinDecresc -> \dimHairpin - \sustainUp -> \sustainOff - \sustainDown -> \sustainOn - \sostenutoDown -> \sostenutoOn - \sostenutoUp -> \sostenutoOff - 'infinite-spacing-height -> 'extra-spacing-height - #(set-octavation oct) -> \ottava #oct - \put-adjacent markup axis dir markup -> \put-adjacent axis dir markup markup - \pointAndClickOn (new command) - \pointAndClickOff (new command) - \center-align -> \center-column - \hcenter -> \center-align - printallheaders -> print-all-headers - \bigger -> \larger (already existing command) - systemSeparatorMarkup -> system-separator-markup - - Moreover, some files in the `ly/' directory have been renamed; the - *-init.ly filenames are now only used for files that are - automatically included, while such files as `makam-init.ly' or - `gregorian-init.ly' have been renamed to `makam.ly' or - `gregorian.ly'. - - * The "tex" and "texstr" backends have been removed. Font are now - accessed via the fontconfig library; the Pango library is used to - display text strings. - - * Metronome marks can now also contain a textual description. The - duration and count (if given) are shown in parentheses after the - text. + * 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] - * In figured bass you can now also use a backslash through a number - to indicate a raised 6th step. + * 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] ... - [image of music] + 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/' + + might do the trick for conversion. + * 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. - * Arpeggios may now use "parenthesis" style brackets: + * A variant of the Segno sign is provided: [image of music] - * Single-system scores are now naturally spaced instead of being - stretched to fill the line width. This can be changed by setting - `ragged-right = ##f'. + * Context modifications (`\with' blocks) can be stored in variables + and inserted into contexts or other `\with' blocks: - * Enclosing text within boxes with rounded corners is now possible, - using the `\rounded-box' markup command. + coloredheads = \with { \override NoteHead #'color = #red } + noclef = \with { \remove "Clef_engraver" } + \score { + \new Staff { + \new Voice \with { \coloredheads } \relative c' { c4 e g c } + } + \layout { + \context { + \Staff + \noclef + } + } + } + [image of music] - * `lilypond-book' can run any program instead of `latex' to guess - the line width, thanks to `--latex-program' command line option. - * Underlining is now possible with the `\underline' markup command. + * A half-open articulation was added: - * It is now possible to specify, using the `page-count' variable in - the paper block, the number of pages that will be used. + [image of music] - * A new page breaking function, `ly:minimal-breaking', is dedicated - to books with many pages or a lot of text. - * A table of contents is included using `\markuplines - \table-of-contents'. Elements are added to it using the - `\tocItem' command. + This is sometimes used to indicate half-open hi-hats. - * Text spreading over several pages is entered using the - `\markuplines' keyword. Builtin markup list commands, such as - `\justified-lines' or `\wordwrap-lines' may be used, and new ones - created using the `define-markup-list-command' Scheme macro. + * The Unicode Bidirectional Algorithm is now fully supported for + single-line markup due to enhanced integration with Pango. - * Particular points of a book may be marked with the `\label' - command. Then, the page where these points are placed can be - referred to using the `\page-ref' markup command. + * LilyPond is now licensed under the GNU GPL v3+. - * Page breaking and page turning commands (`\pageBreak', - `\noPageBreak', etc.) can be used at top-level, between scores and - top-level markups. + * In tablature, frets can be indicated with labels other than + numbers: - * The following options are now changed as a `-d' sub-option: - `--backend', `--safe', `--preview' and `--no-pages' (which became - `-dno-print-pages'). The `-b' option does not exist any more. + \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 TabVoice { + \set fretLabels = #`(,(markup #:with-color red "a") + "b" + ,(markup #:italic #:smaller "c")) + 4. 8 4 + } + [image of music] - * Improved testing procedures now catch changes in CPU and memory - performance, page layout, MIDI results and warnings. This helps to - reduce the number of regression errors during development, - resulting in more stable releases. - See `INSTALL.html#Testing-LilyPond' for more information. + * Layout objects can be printed over a white background, which + whites-out objects in lower layers which lie beneath: - * Nested properties, such as `'details' in `Slur', can be reverted - as well. The syntax for this is + \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] - \revert Slur #'(details closeness-factor) - * All line spanners are more flexible now in the configuration of - their end points. This includes glissando, voice followers, text - crescendos and other text spanners. The old syntax for setting - text on line spanners is no longer valid. + * Chords can be repeated using the `q' shortcut: - [image of music] + 8.-^ q16 q4-^ + [image of music] - This feature was sponsored by Trevor Bača. + * With two-sided mode, margins for odd and even pages can be set + using `inner-margin' and `outer-margin': - * The environment variable `LILYPONDPREFIX' has been renamed - `LILYPOND_DATADIR'. + \paper { + two-sided = ##t + inner-margin = 10 \mm + outer-margin = 20 \mm + } - * Notes or rests, such as a typical end note, that fill an entire - measure are preceded by some more space. + * 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. - [image of music] + * 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. + * Support for using an alternative music font, such as Gonville, is + now added. - * All `\score's in a lilypond-book fragment are now inserted into - the document. Also, toplevel markups don't result in an entire - page. + * 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. - * Alterations (such as a sharp or flat) may now be arbitrary - fractions. This allows some forms of microtonal music. For - example, Turkish makam music uses 1/9th tone alterations. + * The direction of manual beams can be set with `^[' and `_['. + + * A version of the breve note head has been added with two vertical + lines on each side. [image of music] - * Tie directions may be set with `^~' and `_~'. + * 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. + + [image of music] - * Tablature now supports harmonics and slides: + + * Braces in markup can now be selected by point size using the + markup commands `\left-brace' and `\right-brace'. [image of music] - This feature was sponsored by Mike Amundsen + * 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) + + * Dashed and dotted slurs, phrasing slurs, and ties have been made + variable thickness, and partially dashed slurs are now available: - * Horizontal spacing now follows object outlines more accurately. - This allows tighter horizontal spacing. + [image of music] + + + * An eyeglasses markup was added, indicating strongly to look at the + conductor for instructions: [image of music] - * Objects that belong outside of the staff are now positioned - automatically to avoid collisions. + * A snap-pizzicato (also known as Bartok-pizzicato) articulation was + added: [image of music] - * Staves are spaced vertically using a skyline algorithm. This helps - prevent uneven vertical spacing. + * Tuplet number formatting functions are now available to print + other fractions and to add notes to the number or fraction: [image of music] + * FretBoards now have a chordChanges property to keep repeated + FretBoard objects from being typeset. + + * 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. +