lilypond-user
[Top][All Lists]
Advanced

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

Re: Concepts that may be missing (or are at least hidden) in LilyPond


From: Urs Liska
Subject: Re: Concepts that may be missing (or are at least hidden) in LilyPond
Date: Mon, 27 Apr 2015 15:23:05 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.6.0



Am 27.04.2015 um 15:00 schrieb Carl Sorensen:
On 4/26/15 10:55 PM, "Andrew Bernard" <address@hidden> wrote:

In what way are measures missing? Half the world calls them Œbars¹ by the
way - that¹s what they are under in the index. Are you simply referring
to terminology in the documentation?
LilyPond creates bars (the things that divide measures) just fine.
LilyPond has a Timing engraver that keeps track of the current time within
a measure (so you get warnings if you place a bar check that doesn't
coincide with the end of a measure).

But if you look, for example, at the Music Encoding Initiative (MEI), they
have a container called the measure, which contains musical elements over
a certain period of time[1]. So notes are placed into measures.
Presumably this then allows a text parser to search through the data
schema, find measures, and eliminate them.

LilyPond has no data structure for a measure.  The only timing
relationships in the LilyPond model are sequential (one note follows a
previous note) and simultaneous (two notes start at the same time).  The
full timing of the score is worked out by Iterators when the score is
produced.

There are some advantages to the LilyPond way of doing it.  LilyPond
easily supports different time signatures in different staffs.  Music is
easily copied, because it has no absolute timing information.

There are also disadvantages to the LilyPond way.  It is common for people
to think things like "the crescendo should cover measures 2-4".  There is
no way to express this kind of relationship in LilyPond.

I'm not convinced that LilyPond should add a "measure" object to its
language.

I would strongly oppose to *replacing* the current approach with a container based approach (I don't think you are even considering that, I just want to make that clear). Apart from the polymetrics stuff the container imposes significant limitations with regard to items crossing the measure boundaries. Or (in the case of Finale and Sibelius at least) with incomplete measures. AFAICS from blog post etc. it is really painful to talk one of these programs into writing tuplets over bars (maybe even beams over barlines?), and when you try to edit existing music and delete something from a measure you can't really leave that measure without the program complaining (or doing stupid things).

For a concept of "measures 2-4" we already have a powerful technology right before us: the edition-engraver. It is not fully mature and ready to be included in LilyPond itself. But apart from providing means to completely separate content from separation it is also good at injecting stuff "measure-wise".

For example right now it is possible to write:
\editionModList full-score Score
  \break
  #'(7 16 22 (27 2/4) 30)
to apply line breaks (or whatever) at this list of measures (including partial measures)

What would be good to have is a notion of "select everything in measures 2-4 - over all possible parts" as this is something that is currently more or less impossible.

Urs

But I am convinced that LilyPond really doesn't have the
concept of a "measure" object in its schema right now.

Thanks,

Carl

1. http://music-encoding.org/documentation/guidelines2013/cmn#cmnMeasures



_______________________________________________
lilypond-user mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user




reply via email to

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