]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/topdocs/NEWS.texi
bf4aacc5c62f17e4d0dfa4c44394c8b98cfa9e7d
[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 1.9 since 1.8
9
10 @itemize
11
12 @item
13 Each music expression can now be tagged, to make different printed
14 versions from the same music expression.  In the following example,
15 we see two versions of a piece of music, one for the full score, and
16 one with cue notes for the instrumental part:
17 @example
18 < \tag #'part <
19   @{ c4 f2 g @}      % in the part, we have cue-notes  
20   \\ R1 >
21   \tag #'score R1  % in the score: only a rest
22 >
23 @end example
24  
25 The same can be applied to articulations, texts, etc.: they are
26 made by prepending
27 @example
28         -\tag #@var{your-tag(s)} 
29 @end example
30 to an articulation, for example, 
31 @example
32         c4-\tag #'with-fingerings -4 -\tag #'with-strings \6
33 @end example
34
35 This defines a note, which has a fingering and a string-number
36 indication. 
37
38
39
40 @item
41 Markup text (ie. general text formatting) may now be used for lyrics too. 
42
43 @item
44 Two new commands for grace notes have been added, @code{\acciaccatura}
45 and @code{\appoggiatura},
46
47 @example
48   \appoggiatura f8 e4
49   \acciaccatura g8 f4
50 @end example
51
52 Both reflect the traditional meanings of acciaccatura and appogiatura,
53 and both insert insert a slur from the first grace note to the main
54 note.
55
56 @item 
57 Layout options for grace notes are now stored in a context property,
58 and may now be set separately from musical content.
59
60 @item
61 The @code{\new} command will create a context with a unique
62 name automatically. Hence, for multi-staff scores, it is no longer
63 necessary to invent arbitrary context names. For example, a two-staff
64 score may be created by
65
66 @example
67   \simultaneous @{
68     \new Staff @{ @var{notes for 1st staff} @}
69     \new Staff @{ @var{notes for 2nd staff} @}
70   @}
71 @end example
72
73
74
75 @item
76 Octave checks make octave errors easier to correct.
77 The syntax is 
78
79 @example
80   \octave @var{pitch}
81 @end example
82
83 This checks that @var{pitch} (without octave) yields @var{pitch} (with
84 octave) in \relative mode. If not, a warning is printed, and the
85 octave is corrected.
86
87 @item
88 All articulations must now be entered postfix. For example,
89
90 @example
91         c8[( d8]) 
92 @end example
93
94 @noindent
95 is a pair of beamed slurred eighth notes.
96
97 @item
98 The definition of @code{\relative} has been simplified.  Octaves are
99 now always propagated in the order that music is entered. In the
100 following example,  
101
102 @example
103   PRE
104   \repeat "unfold" 3  BODY \alternative @{ ALT1 ALT2 @}
105   POST
106 @end example
107
108 @noindent
109 the octave of BODY is based on PRE, the starting octave of ALT1 on
110 BODY, the starting octave of ALT2 on ALT1, and the starting octave of
111 POST on ALT2.
112
113 The same mechanism is used for all other music expressions, except the
114 chord. Backwards compatibility is retained through a special program option,
115 which is set through 
116
117 @example
118   #(ly:set-option 'old-relative)
119 @end example
120
121 @end itemize
122
123
124
125
126 @chapter New features in 1.8 since 1.6
127
128 @itemize
129
130 @item 
131 The chord entry code has been completely rewritten. It is now
132 cleaner and more flexible.
133
134 @item 
135 A new syntax has been added for text entry.  This syntax is more
136 friendly than the old mechanism, and it is implemented in a more
137 robust and modular way. For more information, refer to the section on
138 "Text markup" in the notation manual.
139
140 @item 
141 The integration of the input language and Scheme has been made deeper:
142 you can now use LilyPond identifiers in Scheme, and use Scheme
143 expressions instead of LilyPond identifiers.
144
145 @item 
146 The internal representation of music has been cleaned up completely
147 and converted to Scheme data structures.  The representation may be
148 exported as XML.
149
150 @item 
151 A new uniform postfix syntax for articulation has been introduced.
152 A beamed slurred pair of eighth notes can be entered as
153
154 @example
155         c8-[-( d8-]-) 
156 @end example
157
158 In version 2.0, postfix syntax will be the only syntax
159 available, and the dashes will become optional.
160
161 This will simplify the language: all articulations can be entered as
162 postfix, in any order.
163
164 @item 
165 A new syntax has been added for chords:
166
167
168 @example
169         << PITCHES >>
170 @end example 
171
172 It is not necessary to update files to this syntax, but it will be for
173 using LilyPond version 2.0.  In version 2.0, this syntax will be
174 changed to
175
176 @example
177         < PITCHES >
178 @end example
179
180 for chords, and
181
182 @example
183         \simultaneous @{ .. @} 
184 @end example
185
186 for simultaneous music.
187
188 To convert your files from <PITCHES> to <<PITCHES>>, use the script
189 included in buildscripts/convert-new-chords.py
190
191 This change was introduced for the following reasons
192
193 @itemize @bullet
194 @item
195 It solves the "start score with chord" problem, where you have to
196   state \context Voice explicitly when a chord was the start of a
197   Staff or Score.
198 @item
199 With the new syntax, it is possible to distinguish between
200   articulations (or fingerings) which are for a single chord note,
201   and which are for the entire chord. This allows for per-note
202   fingerings, and is more logical on the whole.
203 @end itemize
204
205 @item 
206 User code may now be executed during interpreting.  The syntax for
207 this code is
208
209 @example
210         \applycontext #SCHEME-FUNCTION
211 @end example
212
213 @item 
214 User code may now be executed on arbitrary grobs during interpreting.
215 The syntax for this feature is
216
217 @example
218         \applyoutput #SCHEME-FUNCTION
219 @end example
220
221 @noindent
222 SCHEME-FUNCTION takes a single argument, and is called for every grob
223 that is created in the current context.
224
225 @item 
226 New algorithms for chord-name formatting have been installed. They
227 can be tuned and have ergonomic syntax for entering exceptions.
228
229 @item 
230 Texts may now be put on multimeasure rests, e.g.
231
232 @example
233         R1*20^\markup @{ "GP" @}
234 @end example
235
236 @item
237 Ancient notation now prints ligatures in Gregorian square neumes
238 notation, roughly following the typographical style of the Liber
239 hymnarius of Solesmes, published in 1983.  Ligatures are still printed
240 without the proper line breaking and horizontal spacing.
241
242 @item 
243 Glissandi can now be printed using the zigzag style.
244
245 @item 
246 LilyPond can now print clusters. The syntax is
247
248 @example
249         \apply #notes-to-clusters @{ NOTE NOTE .. @}
250 @end example
251
252 @item
253 For irregular meters, beat grouping marks can be printed. The
254 syntax for this is
255
256 @example
257         #(set-time-signature 7 8 '(3 2 2))
258 @end example
259
260
261 @item 
262 Nested horizontal brackets for music analysis can now be printed:
263
264 @example
265         NOTE-\startGroup
266                 ..
267         NOTE-\stopGroup
268 @end example
269
270
271 @item  Ottava brackets are now fully supported as a feature.  The syntax
272 is
273
274 @example
275         #(set-octavation 1)
276 @end example
277
278
279 @item  Metronome markings are printed when a \tempo command is processed.
280
281
282
283 @item Fingerings can be put on chords horizontally.
284
285
286
287 @item  The appearance of various glyphs has been fine-tuned.
288
289
290
291 @item  Different types of percent style repeats may now be nested.
292
293
294
295 @item  The emacs support has been extended.
296
297
298 @item 
299 The manual has been completely revised and extended.
300
301 @end itemize
302
303 @chapter New features in 1.6 since 1.4
304
305
306 @itemize @bullet
307
308 @item
309 Support for figured bass and tablature.
310
311 @item
312 Completely rewritten beam formatting: provides much better output
313 now.
314
315
316 @item
317 Completely revised and improved music font.
318
319
320 @item
321 Completely rewritten MIDI import support.
322
323 @item
324 Completely rewritten grace note support. Practically speaking this
325 means that grace notes can be slurred to normal normal notes.
326
327
328 @item
329 Improved accidental handling and formatting: styles for producing
330 cautionaries may vary, and complex collisions between accidentals of a
331 chord are handled much better.
332
333 @item
334 Better spacing: both globally and locally. This includes subtle
335 details like optical stem spacing.
336
337 @item
338 More support for ancient notation: mensural ligatures, ambitus
339 (pitch range) of voices, more shapes, etc.
340
341 @item
342 More support for piano notation: bracket pedals, directed arpeggios,
343 arpeggio brackets.
344
345 @item
346 Easier music polyphonic music entry.
347
348 @item
349 More extensibility, many speedups and bugfixes
350
351 @item
352 The manual has been thoroughly revised.
353
354 @item
355 Development is now hosted at http://savannah.gnu.org, and sources
356 can be downloaded through anonymous CVS.
357
358 @item
359 Support for windows: LilyPond is part of the cygwin distribution,
360 which comes with a user-friendly installer.
361
362 @end itemize