[linux-audio-announce] LilyPond 1.8 - make beautiful music prints

Han-Wen Nienhuys hanwen at cs.uu.nl
Thu Aug 7 05:41:40 EDT 2003

Dear music enthousiasts,

LilyPond is an automated music engraving system: it is used to make
gorgeous sheet music.  Use it for your music too!

Information, examples and documentation are available from the
completely redesigned website, which is at


This release is focused on internal and external cleanups: Scheme and
LilyPond input can now be seamlessly mixed. Entry and layout of texts,
chord names and chords has been revised and cleaned up entirely.

Happy music printing!

Han-Wen Nienhuys & Jan Nieuwenhuizen
(core development team)

New features in 1.8 since 1.6

   * The chord entry code has been completely rewritten. It is now
     cleaner and more flexible.

   * A new syntax has been added for text entry.  This syntax is more
     friendly than the old mechanism, and it is implemented in a more
     robust and modular way. For more information, refer to the section
     on "Text markup" in the notation manual.

   * The integration of the input language and Scheme has been made
     deeper: you can now use LilyPond identifiers in Scheme, and use
     Scheme expressions instead of LilyPond identifiers.

   * The internal representation of music has been cleaned up completely
     and converted to Scheme data structures.  The representation may be
     exported as XML.

   * A new uniform postfix syntax for articulation has been introduced.
     A beamed slurred pair of eighth notes can be entered as

          	c8-[-( d8-]-)

     In version 2.0, postfix syntax will be the only syntax available,
     and the dashes will become optional.

     This will simplify the language: all articulations can be entered
     as postfix, in any order.

   * A new syntax has been added for chords:

          	<< PITCHES >>

     It is not necessary to update files to this syntax, but it will be
     for using LilyPond version 2.0.  In version 2.0, this syntax will
     be changed to

            < PITCHES >  for chords


            \simultaneous { .. }

     for simultaneous music.

     To convert your files from <PITCHES> to <<PITCHES>>, use the script
     included in buildscripts/convert-new-chords.py

     This change was introduced for the following reasons

        * It solves the "start score with chord" problem, where you
          have to   state \context Voice explicitly when a chord was
          the start of a   Staff or Score.

        * With the new syntax, it is possible to distinguish between
          articulations (or fingerings) which are for a single chord
          note,   and which are for the entire chord. This allows for
          per-note   fingerings, and is more logical on the whole.

   * User code may now be executed during interpreting.  The syntax for
     this code is

          	\applycontext #SCHEME-FUNCTION

   * User code may now be executed on arbitrary grobs during
     interpreting.  The syntax for this feature is

          	\applyoutput #SCHEME-FUNCTION
     SCHEME-FUNCTION takes a single argument, and is called for every
     grob that is created in the current context.

   * New algorithms for chord-name formatting have been installed. They
     can be tuned and have ergonomic syntax for entering exceptions.

   * Texts may now be put on multimeasure rests, eg.

          	R1*20^\markup { "GP" }

   * Ancient notation now prints ligatures in Gregorian square neumes
     notation, roughly following the typographical style of the Liber
     hymnarius of Solesmes, published in 1983.  Ligatures are still
     printed without the proper line breaking and horizontal spacing.

   * Glissandi can now be printed using the zigzag style.

   * LilyPond can now print clusters. The syntax is:

          	\apply #notes-to-clusters { NOTE NOTE .. }

   * For irregular meters, beat grouping marks can be printed. The
     syntax for this is

          	#(set-time-signature 7 8 '(3 2 2))

   * Nested horizontal brackets for music analysis can now be printed.


   * Ottava brackets are now fully supported as a feature.  The syntax

          	#(set-octavation 1)

   * Metronome markings are printed when a \tempo command is processed.

   * Fingerings can be put on chords horizontally.

   * The appearance of various glyphs has been fine-tuned.

   * Different types of percent style repeats may now be nested.

   * The emacs support has been extended.

   * The manual has been completely revised and extended.


Han-Wen Nienhuys   |   hanwen at cs.uu.nl   |   http://www.xs4all.nl/~hanwen 

More information about the Linux-audio-announce mailing list