Abjad?
======

Abjad is an interactive software system designed to help composers
build up complex pieces of music notation in an iterative and incremental way. 
Use Abjad to create a symbolic representation
of all the notes, rests, staves, tuplets, beams and slurs in any score.
Because Abjad extends the Python programming language,
you can use Abjad to make systematic changes to your music as you work.
And because Abjad wraps the powerful LilyPond music notation package, 
you can use Abjad to control the typographic details of the symbols on the page.


Abjad extends Python
--------------------

`Python <http://www.python.org>`__ is an open-source programming
language invented by Guido van Rossum and further developed by a team 
of programmers working in many countries around the world. 
Python is used for everything from scripting 
to the development of complex distributed systems. 
The dynamic language and interpreter features of Python are similar to Ruby
while the syntax of Python resembles C, C++ and Java.
Code written in Python scales well, tests well and develops quickly.


Abjad extends LilyPond
----------------------

`LilyPond <http://www.lilypond.org>`__ is an open-source music notation
package invented by Han-Wen Nienhuys and Jan Niewenhuizen and extended
by an international team of developers and musicians.
LilyPond differs from other music engraving programs in a number of ways.
LilyPond separates musical content from page layout.
LiyPond affords typographic control over almost everything. 
And LilyPond implements the rhythmic model of score correctly:
barline-crossing durations, broken tuplets and nonbinary meters 
all work correctly out of the box.
For more, see :doc:`/chapters/appendices/lilypond/index`.
