]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/topdocs/NEWS.texi
*** empty log message ***
[lilypond.git] / Documentation / topdocs / NEWS.texi
1 \input texinfo @c -*-texinfo-*-
2 @setfilename NEWS.info
3 @settitle NEWS
4
5 @node Top, , , 
6 @top
7
8 @chapter New features in 2.1 since 2.0
9
10 Unreleased:
11
12 @itemize
13 @item  Features of spanner contexts, like Staff, can now be changed easily:
14
15 @example
16   \new Staff \with @{
17      StaffSymbol \set #'line-count = #4
18   @} @{
19     c'4
20   @}
21 @end example
22
23 @noindent
24 puts a quarter note C on a staff with 4 lines.  
25
26 @end itemize
27
28 Version 2.1.7
29
30 @itemize @bullet
31
32 @item Multi measure rests are now truly centered between the
33 clefs/barlines of the staff, independent of symbols on the other staffs.
34
35 @item Collision resolution for dots in chords has been improved greatly. 
36
37 @item
38 Spacing following barlines was improved for widely stretched lines.
39
40 @item
41 Lyric hyphens and extenders now conform to standard typesetting
42 practice.
43
44 @item
45 Lyrics are now aligned under note heads conforming to engraving
46 standards. The responsible code has been rewritten, and is drastically
47 simpler from the previous version. To aid this rewrite, the syntactic
48 function of the extender line ( __ ) has been changed: it is now
49 attached to the lyric syllable.
50
51 @item
52 When redefining a context, the associated identifier is also
53 updated. For example, after reading following the snippet,
54 @example
55  \translator @{
56         \ScoreContext
57         autoBeaming = ##f
58  @}
59 @end example
60 the definition of @code{ScoreContext} is updated to include the changed
61 setting.
62
63
64 @item
65 The weight of the stafflines is now heavier at smaller staff sizes.
66 The font has been modified to match this look: at smaller sizes, the
67 font is heavier and the note heads are more rounded.
68
69 @item Processing scores is now done while parsing the file. New
70 Scheme functions give more flexibility: for example, it is now possible
71 interpret a score, collecting synchronized musical events in a list, and
72 manipulate that information using inline Scheme. For an example, see
73 @file{input/no-notation/recording.ly}.
74
75 @item Font sizes can now truly be scaled continuously: the  @code{font-size}
76 is similar to the old @code{font-relative-size}, but may be set to
77 fractional values; the closest design size will be scaled to achieve
78 the desired size. As a side-effect, there are now no longer
79 limitations in using smaller fonts (eg. grace notes) at small staff
80 sizes.
81
82 @item The appearance of stem tips is now also engraved with rounded corners.
83
84 @item
85 The placement of accidentals on chords and ledgered notes is improved.
86
87 @end itemize
88
89
90 @chapter New features in 2.0 since 1.8
91
92 @itemize
93
94 @item
95 Crescendos can now be drawn dotted or dashed.
96
97 @item
98 Quarter tones are now supported. They are entered by suffixing
99 @code{ih} for a half-sharp and @code{eh} for a half-flat. Hence, the
100 following is an ascending list of pitches:
101
102 @example
103   ceses ceseh ces ceh c cih cis cisih cisis
104 @end example
105
106 @item
107 The following constructs have been removed from the syntax:
108
109 @example
110   \duration #SCHEME-DURATION
111   \pitch #SCHEME-PITCH
112   \outputproperty @var{func} @var{symbol} = @var{value}
113 @end example
114
115 For @code{\outputproperty}, the following may be substituted:
116
117 @example
118    \applyoutput #(outputproperty-compatibility @var{func}
119                   @var{symbol} @var{value}) 
120 @end example 
121
122 @item
123 Clefs may now be transposed arbitrarily, for example
124
125 @example
126   \clef "G_8"
127   \clef "G_15"
128   \clef "G_9"
129 @end example
130
131
132 @item
133 The syntax for chords and simultaneous music have changed.
134 Chords are entered as
135
136 @example
137    <@var{pitches}>
138 @end example
139
140 while simultaneous music is entered as
141
142 @example
143    <<@var{..music list..}>>
144 @end example
145
146 In effect, the meanings of both have been swapped relative to their 1.8
147 definition.  The syntax for lists in @code{\markup} has changed
148 alongside, but figured bass mode was not  changed, i.e.:
149
150 @example
151   \markup @{ \center <@var{..list of markups..}> @}
152   \figure @{ <@var{figures}> @}
153 @end example
154
155 As chords the more often used than simultaneous music, this change will
156 save keystrokes.
157
158 @item
159 Each music expression can now be tagged, to make different printed
160 versions from the same music expression.  In the following example,
161 we see two versions of a piece of music, one for the full score, and
162 one with cue notes for the instrumental part:
163
164 @example
165 << \tag #'part <<
166      @{ c4 f2 g4 @}      % in the part, we have cue-notes  
167      \\ R1 >>
168   \tag #'score R1  % in the score: only a rest
169 >>
170 @end example
171  
172 The same can be applied to articulations, texts, etc.: they are
173 made by prepending
174
175 @example
176         -\tag #@var{your-tags} 
177 @end example
178
179 to an articulation, for example, 
180
181 @example
182         c4-\tag #'with-fingerings -4 -\tag #'with-strings \6
183 @end example
184
185 This defines a note, which has a conditional fingering and a
186 string-number indication.
187
188 @item
189 The settings for chord-fingering are more flexible. You can specify a
190 list where fingerings may be placed, eg.
191
192 @example
193         \property Voice.fingeringOrientations = #'(left down)
194 @end example
195
196 This will put the fingering for the lowest note below the chord, and the
197 rest to the left.
198
199 @item
200 The script previously known as @code{ly2dvi} has been renamed to
201 @code{lilypond}. The binary itself is now installed as
202 @code{lilypond-bin}.
203
204 @item
205 Markup text (ie. general text formatting) may now be used for lyrics too. 
206
207 @item
208 Two new commands for grace notes have been added, @code{\acciaccatura}
209 and @code{\appoggiatura},
210
211 @example
212   \appoggiatura f8 e4
213   \acciaccatura g8 f4
214 @end example
215
216 Both reflect the traditional meanings of acciaccatura and appogiatura,
217 and both insert insert a slur from the first grace note to the main
218 note.
219
220 @item 
221 Layout options for grace notes are now stored in a context property,
222 and may now be set separately from musical content.
223
224 @item
225 The @code{\new} command will create a context with a unique
226 name automatically. Hence, for multi-staff scores, it is no longer
227 necessary to invent arbitrary context names. For example, a two-staff
228 score may be created by
229
230 @example
231   \simultaneous @{
232     \new Staff @{ @var{notes for 1st staff} @}
233     \new Staff @{ @var{notes for 2nd staff} @}
234   @}
235 @end example
236
237
238
239 @item
240 Octave checks make octave errors easier to correct.
241 The syntax is 
242
243 @example
244   \octave @var{pitch}
245 @end example
246
247 This checks that @var{pitch} (without octave) yields @var{pitch} (with
248 octave) in \relative mode. If not, a warning is printed, and the
249 octave is corrected.
250
251 @item
252 All articulations must now be entered postfix. For example,
253
254 @example
255         c8[( d8]) 
256 @end example
257
258 @noindent
259 is a pair of beamed slurred eighth notes.
260
261 @item
262 The definition of @code{\relative} has been simplified.  Octaves are
263 now always propagated in the order that music is entered. In the
264 following example,  
265
266 @example
267   PRE
268   \repeat "unfold" 3  BODY \alternative @{ ALT1 ALT2 @}
269   POST
270 @end example
271
272 @noindent
273 the octave of BODY is based on PRE, the starting octave of ALT1 on
274 BODY, the starting octave of ALT2 on ALT1, and the starting octave of
275 POST on ALT2.
276
277 The same mechanism is used for all other music expressions, except the
278 chord. Backwards compatibility is retained through a special program option,
279 which is set through 
280
281 @example
282   #(ly:set-option 'old-relative)
283 @end example
284
285 @item
286 Windows users can double click a @code{.ly} file to process and view
287 it automagically through the new @code{lily-wins} frontend.
288
289 @end itemize
290
291
292
293
294 @chapter New features in 1.8 since 1.6
295
296 @itemize
297
298 @item 
299 The chord entry code has been completely rewritten. It is now
300 cleaner and more flexible.
301
302 @item 
303 A new syntax has been added for text entry.  This syntax is more
304 friendly than the old mechanism, and it is implemented in a more
305 robust and modular way. For more information, refer to the section on
306 "Text markup" in the notation manual.
307
308 @item 
309 The integration of the input language and Scheme has been made deeper:
310 you can now use LilyPond identifiers in Scheme, and use Scheme
311 expressions instead of LilyPond identifiers.
312
313 @item 
314 The internal representation of music has been cleaned up completely
315 and converted to Scheme data structures.  The representation may be
316 exported as XML.
317
318 @item 
319 A new uniform postfix syntax for articulation has been introduced.
320 A beamed slurred pair of eighth notes can be entered as
321
322 @example
323         c8-[-( d8-]-) 
324 @end example
325
326 In version 2.0, postfix syntax will be the only syntax
327 available, and the dashes will become optional.
328
329 This will simplify the language: all articulations can be entered as
330 postfix, in any order.
331
332 @item 
333 A new syntax has been added for chords:
334
335
336 @example
337         << PITCHES >>
338 @end example 
339
340 It is not necessary to update files to this syntax, but it will be for
341 using LilyPond version 2.0.  In version 2.0, this syntax will be
342 changed to
343
344 @example
345         < PITCHES >
346 @end example
347
348 for chords, and
349
350 @example
351         \simultaneous @{ .. @} 
352 @end example
353
354 for simultaneous music.
355
356 To convert your files from <PITCHES> to <<PITCHES>>, use the script
357 included in buildscripts/convert-new-chords.py
358
359 This change was introduced for the following reasons
360
361 @itemize @bullet
362 @item
363 It solves the "start score with chord" problem, where you have to
364   state \context Voice explicitly when a chord was the start of a
365   Staff or Score.
366 @item
367 With the new syntax, it is possible to distinguish between
368   articulations (or fingerings) which are for a single chord note,
369   and which are for the entire chord. This allows for per-note
370   fingerings, and is more logical on the whole.
371 @end itemize
372
373 @item 
374 User code may now be executed during interpreting.  The syntax for
375 this code is
376
377 @example
378         \applycontext #SCHEME-FUNCTION
379 @end example
380
381 @item 
382 User code may now be executed on arbitrary grobs during interpreting.
383 The syntax for this feature is
384
385 @example
386         \applyoutput #SCHEME-FUNCTION
387 @end example
388
389 @noindent
390 SCHEME-FUNCTION takes a single argument, and is called for every grob
391 that is created in the current context.
392
393 @item 
394 New algorithms for chord-name formatting have been installed. They
395 can be tuned and have ergonomic syntax for entering exceptions.
396
397 @item 
398 Texts may now be put on multimeasure rests, e.g.
399
400 @example
401         R1*20^\markup @{ "GP" @}
402 @end example
403
404 @item
405 Ancient notation now prints ligatures in Gregorian square neumes
406 notation, roughly following the typographical style of the Liber
407 hymnarius of Solesmes, published in 1983.  Ligatures are still printed
408 without the proper line breaking and horizontal spacing.
409
410 @item 
411 Glissandi can now be printed using the zigzag style.
412
413 @item 
414 LilyPond can now print clusters. The syntax is
415
416 @example
417         \apply #notes-to-clusters @{ NOTE NOTE .. @}
418 @end example
419
420 @item
421 For irregular meters, beat grouping marks can be printed. The
422 syntax for this is
423
424 @example
425         #(set-time-signature 7 8 '(3 2 2))
426 @end example
427
428
429 @item 
430 Nested horizontal brackets for music analysis can now be printed:
431
432 @example
433         NOTE-\startGroup
434                 ..
435         NOTE-\stopGroup
436 @end example
437
438
439 @item  Ottava brackets are now fully supported as a feature.  The syntax
440 is
441
442 @example
443         #(set-octavation 1)
444 @end example
445
446
447 @item  Metronome markings are printed when a \tempo command is processed.
448
449
450
451 @item Fingerings can be put on chords horizontally.
452
453
454
455 @item  The appearance of various glyphs has been fine-tuned.
456
457
458
459 @item  Different types of percent style repeats may now be nested.
460
461
462
463 @item  The emacs support has been extended.
464
465
466 @item 
467 The manual has been completely revised and extended.
468
469 @end itemize
470
471 @chapter New features in 1.6 since 1.4
472
473
474 @itemize @bullet
475
476 @item
477 Support for figured bass and tablature.
478
479 @item
480 Completely rewritten beam formatting: provides much better output
481 now.
482
483
484 @item
485 Completely revised and improved music font.
486
487
488 @item
489 Completely rewritten MIDI import support.
490
491 @item
492 Completely rewritten grace note support. Practically speaking this
493 means that grace notes can be slurred to normal normal notes.
494
495
496 @item
497 Improved accidental handling and formatting: styles for producing
498 cautionaries may vary, and complex collisions between accidentals of a
499 chord are handled much better.
500
501 @item
502 Better spacing: both globally and locally. This includes subtle
503 details like optical stem spacing.
504
505 @item
506 More support for ancient notation: mensural ligatures, ambitus
507 (pitch range) of voices, more shapes, etc.
508
509 @item
510 More support for piano notation: bracket pedals, directed arpeggios,
511 arpeggio brackets.
512
513 @item
514 Easier music polyphonic music entry.
515
516 @item
517 More extensibility, many speedups and bugfixes
518
519 @item
520 The manual has been thoroughly revised.
521
522 @item
523 Development is now hosted at http://savannah.gnu.org, and sources
524 can be downloaded through anonymous CVS.
525
526 @item
527 Support for windows: LilyPond is part of the cygwin distribution,
528 which comes with a user-friendly installer.
529
530 @end itemize