2 Translation of GIT committish: <FILL-IN-HEAD-COMMITTISH>
4 When revising a translation, copy the HEAD committish of the
5 version that you are working on. Refer to `UPDATE A TRANSLATION'
9 <title>LilyPond version 2.2 released</title>
12 Dear music enthusiasts,
15 LilyPond is a program for making beautiful music notation. It is
16 free/open source software, and is available for all popular operating
17 systems. It runs on most Unix flavors --including Linux and MacOS X-- and MS
18 Windows. Use it for your music too!
22 LilyPond version 2.2 was released today!
24 This release has completely revamped support for for orchestral score
25 formatting, cue notes, font size management, lyric formatting, drum
26 notation/playback and document integration.
28 In addition, it has numerous syntax simplifications, proper support
29 for 8va brackets, and a completely updated manual.
36 A big thank-you goes out to our contributors:
38 David Bobroff, Edward Sanford Sutton, Heikki Junes, and Nicolas
41 Also thanks to our bug-hunters:
43 Alexandre Beneteau, Andrew McNabb, Atte Andre Jensen , Bertalan Fodor,
44 Bruce McIntyre, Dave Symonds, David Bobroff, Darius, Delma Avers, Doug
45 Linhardt, Eric Wurbel, Erik Sandberg, Ferenc Wagner, Hans Forbrich,
46 John Williams, José Luis Cruz, Juergen Reuter, Kieren Richard
47 MacMillan, Laurent Martelli, Mats Bengtsson, Matthias Kilian, Nancho
48 Alvarez, Nick Busigin, Nicolas Sceaux , Olivier Guery, Patrick
49 Atamaniuk, Paul Scott, Pawel D, Pedro Kroger, Ray McKinney, Reuben
50 Thomas, Rob V, Stef Epardaud, Thomas Willhalm, Thomas Scharkowski, Tom
51 Bäckström, Werner Lemberg, and Will Oram.
60 Han-Wen Nienhuys & Jan Nieuwenhuizen
61 (core development team)
66 <h2 class="unnumbered">New features in 2.2</h2>
69 <li>Setting <code>raggedlast = ##t</code> in the <code>\paper</code> block
70 causes the last line to be set flush-left instead of justified.
72 <li>The <code>Timing_engraver</code> now sets the <code>Timing</code> alias on
73 its containing context automatically.
75 <li>The code for font selection has been rewritten. In addition to
76 existing font selection properties, the property <code>font-encoding</code>
77 has been added, which makes the switch between normal <code>text</code> and
78 other encodings like <code>braces</code>, <code>music</code> and <code>math</code>.
80 <li>The pmx2ly script has been removed from the distribution.
82 <li>Pedal brackets will now run to the last bar of a piece if they are not
85 <li>Context definitions now use the word <code>\context</code> instead of <code>\translator</code>.
87 <li>Property functions may be used as an argument to <code>set!</code>,
90 <pre class="example"> (set! (ly:grob-property grob 'beam) ... )
93 <li>In anticipation of Emacs 21.4 or 22.1, the info documentation contains
96 <li>Cue notes can be quoted directly from the parts that
97 contain them. This will take into account transposition of source and target
98 instrument. For example,
100 <pre class="verbatim">
101 \addquote clarinet \notes\relative c' {
107 \notes \relative c'' {
108 c8 d8 \quote 2 oboe es8 gis
113 <li>The transposition of an instrument can be specified using the
114 <code>\transposition</code> command. An
115 E-flat alto saxophone is specified as
117 <pre class="example"> \transposition es'
120 <li>The naming of exported Scheme functions now follows Scheme conventions.
121 Changes be applied to Scheme files with
123 <pre class="example"> convert-ly -e -n --from=2.1.24 --to=2.1.26 *.scm
126 <li>Notes can be excluded from auto-beaming, by marking them with
128 <pre class="example"> c8 c \noBeam c c
131 <p class="noindent">will print two separate eighth notes, and two beamed notes.
133 <li>Translators and contexts have been split. The result of this
134 internal cleanup is that <code>Score</code> no longer is the top context;
135 <code>Score</code> is contained in the <code>Global</code> context. Consequently,
136 it is possible to tweak <code>Score</code> as follows:
138 <pre class="example"> \context Score \with {
143 <li>The number of staff lines in Tablature notation is now
144 automatically deduced from the <code>stringTunings</code> property.
146 <li>The program reference has been cleaned up and revised.
148 <li>The syntax for setting properties has been simplified:
149 the following table lists the differences:
151 <pre class="example"> (old) (new)
153 \property A.B = #C \set A.B = #C
154 \property A.B \unset \unset A.B
155 \property A.B \set #C = #D \override A.B #C = #D
156 \property A.B \override #C = #D (removed)
157 \property A.B \revert #C \revert A.B #C
160 <p>Furthermore, if <code>A</code> is left out, the bottommost context is used
161 by default. In other words, it is no longer necessary to explicitly
162 mention <code>Voice</code>, <code>Lyrics</code> or <code>ChordNames</code>.
166 <pre class="example"> \property Voice.autoBeaming = ##f
167 \property Staff.TimeSignature \set #'style = #'C
172 <pre class="example"> \set autoBeaming = ##f
173 \override Staff.TimeSignature #'style = #'C
176 <li>Tweaks made with <code>\override</code> and <code>\revert</code> no longer
177 hide tweaks at higher context levels.
179 <li>Melismata in lyrics are also properly handled in the MIDI output.
181 <li>The lilypond-book script has been rewritten.
182 It is shorter, cleaner and faster. The special construct
183 <code>mbinclude</code> has been removed, plain <code>@include</code> or
184 <code>\input</code> can be used now.
186 <p>It now supports running convert-ly on the lilypond snippets,
187 <pre class="example"> lilypond-book --filter='convert-ly --from=2.0.0' my-book.tely
190 <li>The <code>LyricsVoice</code> context has been removed. Lyrics should only
191 be constructed in <code>Lyrics</code>.
193 <li>The <code>Thread</code> context has been removed. Note heads and rests
194 are now constructed at <code>Voice</code> level.
196 <li>Harmonic notes can now be entered as
198 <pre class="example"> <c' g''\harmonic>
201 <li>Drum notation is now supported as a regular feature:
202 percussion may be entered in <code>\drums</code> mode, and printed or
203 performed in a <code>DrumStaff</code> context:
205 <pre class="example"> \score {
206 \drums \new DrumStaff { hihat4 cowbell8 }
210 <li>The automatic staff changer was internally rewritten. As a
211 result, the syntax has been simplified as well:
213 <pre class="example"> \autochange <var>the-music</var>
216 <li>The ergonomic syntax of <code>\markup</code> now has an equivalent in
217 Scheme. The <code>markup*</code> macro creates such objects; the following
218 two markup commands are equivalent:
219 <pre class="example"> f4^#(markup* #:raise 0.2 #:bold "hi")
220 f4^\markup { \raise #0.2 \bold hi }
223 <li>Voice names, for vocal lines, have been added. They are similar
224 to instrument names. They can be set by defining <code>vocalName</code>
225 and <code>vocNam</code>.
227 <li>Safe mode has been reinstated for lilypond.
228 When lilypond is invoked with <code>--safe-mode</code>, TeX and
229 PostScript file output is disallowed, and lilypond-bin is invoked with
230 <code>--safe-mode</code>, the user's Guile expressions are evaluated in a
231 safe environment and file inclusion is not allowed.
233 <p>Warning: this does not protect against denial-of-service attacks using
234 Guile, TeX or PostScript.
236 <p>(This feature is still experimental.)
238 <li>There is now a Scheme macro for defining markup
239 commands. Special mark-up commands can be defined in user-files too.
241 <li>Many fixes for dimension scaling have been made,
242 resulting in correct results for scores that mix staves in different
245 <li>Improved robustness when layout properties are accidentally removed.
247 <li>A more cleanly constructed part combiner has been installed.
248 It is more robust and less buggy. The part-combiner can be used with
249 <pre class="example"> \partcombine <var>mus1</var> <var>mus2</var>
252 <p class="noindent">See <span class="file">input/regression/new-part-combine.ly</span> for an example.
254 <li>Formatting of rehearsal marks has been improved. The <code>\mark</code>
255 command now only does automatic incrementing for marks specified as
256 integer. For example, <code>\mark #1</code> will print an A in the default
257 style. See <span class="file">input/regression/rehearsal-mark-letter.ly</span>,
258 <span class="file">input/regression/rehearsal-mark-number.ly</span>.
260 <li>Formatting of ottava brackets has been much improved.
262 <li>Objects in the output can now be documented: the following fragment
263 boxes the note head, and adds the text “heads or tails?” three
264 spaces below the box.
266 <pre class="example"> \context Voice \applyoutput #(add-balloon-text
267 'NoteHead "heads, or tails?"
274 <li>Default staff sizes are now scalable. There are two new mechanisms for
275 setting staff sizes. Both are demonstrated in this fragment:
277 <pre class="example"> #(set-global-staff-size 15)
279 #(paper-set-staff-size (* 15 pt))
283 <p class="noindent">Both have the same effect on the global layout of a piece. Similarly,
284 the paper size may be changed as follows
286 <pre class="example"> #(set-default-paper-size "a4")
288 #(set-paper-size "a4")
292 <li>Warnings for bar check errors are more cleverly printed. This
293 makes <code>barCheckSynchronize</code> superfluous, so it is now switched
296 <p>Warning: this will cause problems in scores that use bar checks to
299 <li>The black note head was made a little rounder, which causes a less
300 frantic graphic impression.
302 <li>A more concise syntax for checking octaves was introduced. A note may
303 be followed by <code>=</code><var>quotes</var> which indicates what its absolute
304 octave should be. In the following example,
306 <pre class="example"> \relative c'' { c='' b=' d,='' }
309 <p class="noindent">the d will generate a warning, because a d” is
310 expected, but a d' is found.
311 <!-- @code adds ` ', very confusing. -->
313 <li>There is a new mechanism for putting lyrics to melodies.
314 With this mechanism, <code>Lyrics</code> lines can be put melodies
315 individually, allowing for different melismatic sections in every
316 <code>Lyrics</code>. See <span class="file">input/regression/lyric-combine-new.ly</span>.
318 <li>Bar lines may now be dotted.
320 <li>The documentation now has links to a wiki, where everyone can
321 add personal comments to the manual.
323 <li>Contexts may now be changed locally for an isolated music
324 expression. For example,
326 <pre class="example"> \new Voice \with {
327 \consists "Pitch_squash_engraver"
333 <li>The syntax for changing staffs has changed. The keyword
334 <code>\change</code> should now be used, e.g.
336 <pre class="example"> \change Staff = up
339 <li>Features of spanner contexts, like <code>Staff</code>, can now be changed
340 using <code>\set</code>, eg.
342 <pre class="example"> \new Staff {
343 \override Staff.StaffSymbol #'line-count = #4
348 <p class="noindent">puts a quarter note C on a staff with 4 lines.
350 <li>Multi measure rests are now truly centered between the
351 clefs/barlines of the staff, their position is independent of symbols
354 <li>Collision resolution for dots in chords has been improved greatly.
356 <li>Spacing following barlines was improved for widely stretched lines.
358 <li>Lyric hyphens and extenders now conform to standard typesetting
361 <li>Lyrics are now aligned under note heads conforming to engraving
362 standards. The responsible code has been rewritten, and is drastically
363 simpler from the previous version. To aid this rewrite, the syntactic
364 function of the extender line ( __ ) has been changed: it is now
365 attached to the lyric syllable.
367 <li>When redefining a context, the associated identifier is also
368 updated. For example, after reading
370 <pre class="example"> \translator {
376 <p class="noindent">the definition of <code>ScoreContext</code> is updated to include the changed
379 <li>The weight of the stafflines is now heavier at smaller staff sizes.
380 The font has been modified to match this look: at smaller sizes, the
381 font is heavier and the note heads are more rounded.
383 <li>Processing scores is now done while parsing the file. New
384 Scheme functions give more flexibility: for example, it is now possible
385 interpret a score, collecting synchronized musical events in a list, and
386 manipulate that information using inline Scheme. For an example, see
387 <span class="file">input/no-notation/recording.ly</span>.
389 <li>Font sizes can now truly be scaled continuously: the <code>font-size</code>
390 is similar to the old <code>font-relative-size</code>, but may be set to
391 fractional values; the closest design size will be scaled to achieve
392 the desired size. As a side-effect, there are now no longer
393 limitations in using smaller fonts (eg. grace notes) at small staff
396 <li>Stem tips are now also engraved with rounded corners.
398 <li>The placement of accidentals on chords and ledgered notes is improved.