]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/misc/announce-v2.2.html
Fix whitespace of files in Documentation/misc.
[lilypond.git] / Documentation / misc / announce-v2.2.html
1 <!--
2     Translation of GIT committish: <FILL-IN-HEAD-COMMITTISH>
3
4     When revising a translation, copy the HEAD committish of the
5     version that you are working on.  Refer to `UPDATE A TRANSLATION'
6     in README for details.
7 !-->
8
9 <title>LilyPond version 2.2 released</title>
10 <pre>
11
12 Dear music enthusiasts,
13
14
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!
19
20
21
22 LilyPond version 2.2 was released today!
23
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.
27
28 In addition, it has numerous syntax simplifications, proper support
29 for 8va brackets, and a completely updated manual.
30
31 Go and grab it at
32
33   http://lilypond.org
34
35
36 A big thank-you goes out to our contributors:
37
38 David Bobroff, Edward Sanford Sutton, Heikki Junes, and Nicolas
39 Sceaux.
40
41 Also thanks to our bug-hunters:
42
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.
52
53
54
55 Happy music printing,
56
57
58
59
60 Han-Wen Nienhuys & Jan Nieuwenhuizen
61 (core development team)
62
63 </pre>
64
65
66 <h2 class="unnumbered">New features in 2.2</h2>
67
68      <ul>
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.
71
72      <li>The <code>Timing_engraver</code> now sets the <code>Timing</code> alias on
73 its containing context automatically.
74
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>.
79
80      <li>The pmx2ly script has been removed from the distribution.
81
82      <li>Pedal brackets will now run to the last bar of a piece if they are not
83 explicitly ended.
84
85      <li>Context definitions now use the word <code>\context</code> instead of <code>\translator</code>.
86
87      <li>Property functions may be used as an argument to <code>set!</code>,
88 for example
89
90      <pre class="example">            (set! (ly:grob-property grob 'beam) ... )
91      </pre>
92
93      <li>In anticipation of Emacs 21.4 or 22.1, the info documentation contains
94 images.
95
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,
99
100      <pre class="verbatim">
101      \addquote clarinet \notes\relative c' {
102        \transposition bes
103        fis4 fis fis fis
104      }
105
106      \score {
107          \notes \relative c'' {
108              c8 d8 \quote 2 oboe es8 gis
109          }
110      }
111 </pre>
112
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
116
117      <pre class="example">            \transposition es'
118      </pre>
119
120      <li>The naming of exported Scheme functions now follows Scheme conventions.
121 Changes be applied to Scheme files with
122
123      <pre class="example">                  convert-ly -e -n --from=2.1.24 --to=2.1.26 *.scm
124      </pre>
125
126      <li>Notes can  be excluded from auto-beaming, by  marking them with
127 <code>\noBeam</code>
128      <pre class="example">            c8 c \noBeam c c
129      </pre>
130
131      <p class="noindent">will print two separate eighth notes, and two beamed notes.
132
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:
137
138      <pre class="example">            \context Score \with {
139               ...
140             }
141      </pre>
142
143      <li>The number of staff lines  in Tablature notation is now
144 automatically deduced from the <code>stringTunings</code> property.
145
146      <li>The program reference has been cleaned up and revised.
147
148      <li>The syntax for setting properties has been simplified:
149 the following table lists the differences:
150
151      <pre class="example">                (old)                           (new)
152
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
158      </pre>
159
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>.
163
164      <p>Old:
165
166      <pre class="example">             \property Voice.autoBeaming = ##f
167              \property Staff.TimeSignature \set #'style = #'C
168      </pre>
169
170      <p>New:
171
172      <pre class="example">             \set autoBeaming = ##f
173              \override Staff.TimeSignature #'style = #'C
174      </pre>
175
176      <li>Tweaks  made with <code>\override</code> and <code>\revert</code> no longer
177 hide tweaks at higher context levels.
178
179      <li>Melismata in lyrics are also properly handled  in the MIDI output.
180
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.
185
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
188      </pre>
189
190      <li>The <code>LyricsVoice</code> context has been removed. Lyrics should only
191 be constructed in <code>Lyrics</code>.
192
193      <li>The <code>Thread</code> context has been removed. Note heads and rests
194 are now constructed at <code>Voice</code> level.
195
196      <li>Harmonic notes can now be entered as
197
198      <pre class="example">             &lt;c' g''\harmonic&gt;
199      </pre>
200
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:
204
205      <pre class="example">            \score {
206               \drums \new DrumStaff { hihat4 cowbell8 }
207             }
208      </pre>
209
210      <li>The automatic staff changer was internally rewritten. As a
211 result, the syntax has been simplified as well:
212
213      <pre class="example">            \autochange <var>the-music</var>
214      </pre>
215
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  }
221      </pre>
222
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>.
226
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.
232
233      <p>Warning: this does not protect against denial-of-service attacks using
234 Guile, TeX or PostScript.
235
236      <p>(This feature is still experimental.)
237
238      <li>There is now a Scheme macro for defining markup
239 commands. Special mark-up commands can be defined in user-files too.
240
241      <li>Many fixes for dimension scaling have been made,
242 resulting in correct results for scores that mix staves in different
243 sizes.
244
245      <li>Improved robustness when  layout properties are accidentally removed.
246
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>
250      </pre>
251
252      <p class="noindent">See <span class="file">input/regression/new-part-combine.ly</span> for an example.
253
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>.
259
260      <li>Formatting of ottava brackets has been much improved.
261
262      <li>Objects in the output can now be documented: the following fragment
263  boxes the note head, and adds the text &ldquo;heads or tails?&rdquo; three
264 spaces below the box.
265
266      <pre class="example">                 \context Voice \applyoutput #(add-balloon-text
267                                              'NoteHead "heads, or tails?"
268                                              '(0 . -3))
269
270
271                  c8
272      </pre>
273
274      <li>Default staff sizes are now scalable. There are two new mechanisms for
275 setting staff sizes. Both are demonstrated in this fragment:
276
277      <pre class="example">            #(set-global-staff-size 15)
278             \paper {
279               #(paper-set-staff-size (* 15 pt))
280             }
281      </pre>
282
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
285
286      <pre class="example">            #(set-default-paper-size "a4")
287             \paper {
288               #(set-paper-size "a4")
289             }
290      </pre>
291
292      <li>Warnings for bar check errors are more cleverly printed.  This
293 makes <code>barCheckSynchronize</code> superfluous, so it is now switched
294 off by default.
295
296      <p>Warning: this will cause problems in scores that use bar checks to
297 shorten measures.
298
299      <li>The black note head was made a little rounder, which causes a less
300  frantic graphic impression.
301
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,
305
306      <pre class="example">            \relative c'' { c='' b=' d,='' }
307      </pre>
308
309      <p class="noindent">the d will generate a warning, because a d&rdquo; is
310 expected, but a d' is found.
311 <!-- @code adds ` ', very confusing. -->
312
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>.
317
318      <li>Bar lines may now be dotted.
319
320      <li>The documentation now has links to a wiki, where everyone can
321 add personal comments to the manual.
322
323      <li>Contexts may now be changed locally for an isolated music
324 expression. For example,
325
326      <pre class="example">            \new Voice \with {
327                \consists "Pitch_squash_engraver"
328             } {
329               c'4
330             }
331      </pre>
332
333      <li>The syntax for changing staffs has changed. The keyword
334 <code>\change</code> should now be used, e.g.
335
336      <pre class="example">            \change Staff = up
337      </pre>
338
339      <li>Features of spanner contexts, like <code>Staff</code>, can now be changed
340   using <code>\set</code>, eg.
341
342      <pre class="example">            \new Staff {
343                  \override Staff.StaffSymbol #'line-count = #4
344                  c'4
345             }
346      </pre>
347
348      <p class="noindent">puts a quarter note C on a staff with 4 lines.
349
350      <li>Multi measure rests are now truly centered between the
351 clefs/barlines of the staff, their position is independent of symbols
352 on the other staffs.
353
354      <li>Collision resolution for dots in chords has been improved greatly.
355
356      <li>Spacing following barlines was improved for widely stretched lines.
357
358      <li>Lyric hyphens and extenders now conform to standard typesetting
359 practice.
360
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.
366
367      <li>When redefining a context, the associated identifier is also
368 updated. For example, after reading
369
370      <pre class="example">           \translator {
371                   \ScoreContext
372                   autoBeaming = ##f
373            }
374      </pre>
375
376      <p class="noindent">the definition of <code>ScoreContext</code> is updated to include the changed
377 setting.
378
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.
382
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>.
388
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
394 sizes.
395
396      <li>Stem tips are now also engraved with rounded corners.
397
398      <li>The placement of accidentals on chords and ledgered notes is improved.
399
400 </ul>