[icon]

GNU LilyPond

Welcome to the home of the GNU Music Typesetter

What is LilyPond
General information
Simple examples
Complex examples
Download
GNU/Linux binaries
Windows
Source code
Documentation
Tutorial
Manual
Glossary
other ...

Support
Mailing lists
Search
WikiWiki
FAQs

External sites
lilypond.org/development
lilypond.org/stable
ftp.lilypond.org
Mutopia
Other music online

Node:Internals, Next:, Previous:lilypond-book, Up:Top



Internals

When translating the input to notation, there are number of distinct phases. We list them here:


Parsing:
The LY file is read, and converted to a list of Scores, which each contain Music and paper/midi-definitions. Here Music, Pitch and Duration objects are created.
Interpreting music

All music events are "read" in the same order as they would be played (or read from paper). At every step of the interpretation, musical events are delivered to interpretation contexts, which use them to build Grobs (or MIDI objects, for MIDI output).

In this stage Music_iterators do a traversal of the Music structure. The music events thus encountered are reported to Translators, a set of objects that collectively form interpretation contexts.

Prebreaking

At places where line breaks may occur, clefs and bars are prepared for a possible line break.

Preprocessing

In this stage, all information that is needed to determine line breaking is computed.

Break calculation:
The lines and horizontal positions of the columns are determined.
Breaking
Relations between all grobs are modified to reflect line breaks: When a spanner, e.g. a slur, crosses a line-break, then the spanner is "broken into pieces", for every line that the spanner is in, a copy of the grob is made. A substitution process redirects all grob-reference so that each spanner grob will only reference other grobs in the same line.
Outputting:
All vertical dimensions and spanning objects are computed, and all grobs are output, line by line. The output is encoded in the form of Molecules

The data types that are mentioned here are all discussed in this section.

Go back to index of LilyPond.

Please send GNU LilyPond questions and comments to lilypond-user@gnu.org.

Please send comments on these web pages to lilypond@packages.debian.org

Copyright (c) 1997--2001 Han-Wen Nienhuys and Jan Nieuwenhuizen.

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.


This page was built from LilyPond-1.4.12 (stable-branch) by

Anthony Fok <lilypond@packages.debian.org>, Tue Mar 12 01:35:39 2002 HKT.