lilypond-devel
[Top][All Lists]
Advanced

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

Re: An overview of the system


From: Don Blaheta
Subject: Re: An overview of the system
Date: Mon, 12 Dec 2005 14:15:22 -0600
User-agent: Mutt/1.2.5.1i

Quoth Han-Wen Nienhuys:
> Don Blaheta wrote:
> > When you type something that produces a bit of music, that musical thing
> > is normally placed immediately after the thing you typed previously, and
> 
> only for sequential music. Try
> 
>   \score { << a b c d e >> }

As I pointed out later in that paragraph, "unless you explicitly say
that two things happen simultaneously".  The reason this is important
to say is that it was not at *all* clear to me until this second round
of summary that timing and contexts had nothing to do with each other,
and *only* the simultaneity constructs (just <<>> and <> I think,
they're certainly the main ones) make things happen at the same time
(or, stack vertically, if you're thinking in graphical terms).

> > [...] This means that the textual nesting (what you see when you
> > look at pairs of {}, <<>>, <>) may *not* reflect the logical
> > nesting.  If you open a named context, and a context
> 
> Textual nesting as such doesn't really exist, internally. << >> and { } 
> reflect time-wise relations between Music. Nothing more.

I believe it, but again, it's important to say that, because a lot of
users (well, me at least, but I think it's more general) will see the
textual nesting and assume it's more significant than it is.

> > * Side note: when trying to figure out whether Lyric contexts were
> > actually contained by Staffs or became siblings, I typed the following:
> >   \score {<<
> >     \new Staff {
> >       %\set Staff.fontSize = #3
> >       <<
> >         \new Voice { c }
> >         \new Lyrics \lyricmode { x }
> >         \new Lyrics \lyricmode { y }
> >       >>
> >     }
> >     \new Voice { f }
> >   >>}
> > and when the \set is uncommented, suddenly the lyrics move below the
> > second staff line.  Why is that?  (It certainly answered my question,
> > though not quite the way I expected.)  It doesn't seem to matter what I
> > \set there.
> 
> The order in which contexts appear on paper is the order in which they 
> are created.

This part is well established, and I understood it;

> By putting \set in a sequence, you force everying following it ( the
> << >> ) to be done after "opening" the outermost \new Staff .

but this is the nonobvious part.  The key observation is that despite
the name \new, the context isn't actually constructed right away, not
until the first musical expression is seen.  An important secondary
observation is that \set and \override count for the purpose.  Neither
is obvious.

> > Maybe not "subclass" then, but I wanted to see the hierarchy; for
> > example I can find out that a BeamEvent can be a general-music, event,
> > beam-event, or span-event, but not that an Event is related to a
> > BeamEvent, at least, not from the page on Event.  Even if you rearrange
> > and rename the internals, I assume there will be some sort of hierarchy
> > in there....
> 
> They are related through their 'types property. See 
> scm/define-music-types.scm for more information. Strictly speaking, 
> there is no hierarchy.

But there's an implicit hierarchy, and it's relevant, and it would be
useful to be able to find it in the docs.

-- 
-=-Don address@hidden<http://www.blahedo.org/>-=-
The reason computer chips are so small is computers don't eat much.




reply via email to

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