Design
LilyPond is mostly written in C++ and uses Scheme (interpreted by GNU Guile) as its extension language, allowing for user customization. It has a relatively large codebase; as of February 2010, the source comprises over 68,000 lines of C++ and 23,000 lines of Scheme code.
It uses a simple text notation for music input, which LilyPond interprets and processes in a series of stages. In the final stage, music notation is output to PDF (via PostScript) or other graphical formats, such as SVG or PNG. LilyPond also has the facility to generate MIDI files that correspond to the music notation output.
LilyPond is a text-based application, so it does not contain its own graphical user interface to assist with score creation. It does, however, have a flexible input language that strives to be simple, easing the learning curve for new users. LilyPond adheres to the WYSIWYM paradigm; the workflow for typesetting music notation with LilyPond is similar to that of preparing documents with LaTeX.
LilyPond supports experimental musical notation. Its guitar facilities support alternative tunings, such as major-thirds tuning.
Read more about this topic: GNU LilyPond
Famous quotes containing the word design:
“If I knew for a certainty that a man was coming to my house with the conscious design of doing me good, I should run for my life ... for fear that I should get some of his good done to me,some of its virus mingled with my blood.”
—Henry David Thoreau (18171862)
“A good scientist is a person with original ideas. A good engineer is a person who makes a design that works with as few original ideas as possible. There are no prima donnas in engineering.”
—Freeman Dyson (b. 1923)
“To nourish children and raise them against odds is in any time, any place, more valuable than to fix bolts in cars or design nuclear weapons.”
—Marilyn French (20th century)