lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: An overview of the system


From: Han-Wen Nienhuys
Subject: Re: An overview of the system
Date: Mon, 12 Dec 2005 00:53:14 +0100
User-agent: Mozilla Thunderbird 1.0.7-1.1.fc4 (X11/20050929)

Erik Sandberg wrote:
Each syntactic thing you can do for actual music entry---i.e. most of
what you type inside \score other than managing contexts---is
interpreted as a musical expression, much as 3+4 might be interpreted as
a mathematical expression.  As each expression is read in, it is
classified as an Event (atomic events, e.g. NoteEvent) or a Music (for
expressions composed of other expressions?).  This music expression is
then handed off to an engraver.
* what is a Music really?


"Everything is Music". Events is a special case of Music (those that don't happen to have child expressions). The most useful way to describe it is as a

almost correct. Events don't have subtimings. An event causes an effect time=0 and time=length(event). NoteEvents does have children in the 'articulations field (Probably, the latter should be renamed to 'elements)

The created grobs have properties that can be modified just as for
contexts, except with \override instead of \set---the idea is that the
engraver would calculate values for each grob property, but you might
want to override its choices by some offset amount.  Here, unlike with
\set, you *must* say which kind of object you're overriding for (and
possibly also which context it's in).  (\revert to delete change)  These
properties control exactly where and how an object is laid out.
* When a 'direction property is labelled "Up or down, left or right?",
 and its value is a number, this is confusing.

-1 generally means down/left iirc (think time and octave)

Extra note: this is just a convention, based on the cartesian convention for 2D graphics (up / right = positive, down / left = negative). The point is that we can compute with directions, eg.

  for dir in left, right:
    x += dir * spanner->get_bound (dir)
                      ->extent (common, X_AXIS)[-direction]

puts the distance between inner edges of the bounds of SPANNER in X.


--
 Han-Wen Nienhuys - address@hidden - http://www.xs4all.nl/~hanwen




reply via email to

[Prev in Thread] Current Thread [Next in Thread]