lilypond-devel
[Top][All Lists]
Advanced

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

Re: Auto-beaming infrastructure redo


From: Hans Aberg
Subject: Re: Auto-beaming infrastructure redo
Date: Sat, 3 Jul 2010 00:55:27 +0200

On 2 Jul 2010, at 23:11, Carl Sorensen wrote:

By CPP, do you mean Common Practice Period, i.e. western European Baroque,
Classical, and Romantic?

Yes, it is sort of practical when discussing music; used a lot in rec.music.theory.

For other types of music, one would like to depart from that, viewing
the time signature as a derivative of the meter.

My current plan is to have LilyPond as a default derive the meter from the time signature. However, I hope that one will be able to override those
defaults to arrive at any meter/time-signature combination desired.

I'm speaking about the underlying mechanism, so having a default is no problem.

To focus a bit, take Bulgarian 9/16 which exists in forms 3+2+2+2, 2+3+2+2, 2+2+2+3. They normally just write time signature 9/16 as one can see the rest from the beaming, though Bartok might write 4+2+3 or something.

I think that the beaming structure is the same for expressing non-
metric accents, only that it applies locally so a segment of music.
There, the current LilyPond syntax does not admit full level accent
level nesting in a convenient way.


I don't understand the meaning of this paragraph. But I'm willing to try.

If you have a Kopanitsa metric accent pattern like (2+2)+3+(2+2) it is hard to do that in LilyPond. Likewise if you as a part of regular music would have a quintuplet and want to specify a 2+3 pattern. Essentially the same problem.

And so I'd like some feedback about (a) names of properties, and
(b) the ideas I have for use of properties.

I found it necessary to in part invent a new, more clearly defined
terminology, in the absence of a generally accepted one. So I guess
you will have to likewise.

There is a Germanic-Latin divide in terminology, between Germany and
France going up and down in Europe. On the Latin side, "duple" and
"triple" refers to structure of the music, but not the metric accents.
On the Germanic side, those are 2- and 3-time meters. Best to avoid
this term.

The terms I use are from music engraving, not music performance.  They
appear to be consistent across Stone, Read, and Ross.

But I gather they are English, right?

I have checked on the German Wikipedia and Swedish books. Hindemith, "EDlemetary Training", p.30 says that he says that 2/4, 3/4, 4/4 are called simple meters.

The English or Latin definition is here:
  http://en.wikipedia.org/wiki/Simple_meter#Simple_meter

So one generally seems to think of meters built up by fundamental
components rather than divisions from a higher value. This is
complicated by tuplets, which can be metrical, though rare. But adding
it will make the structure the same as for non-metric accents.

The simplest unit is "in one". If it has subdivisions, one beams it as
fully as possible, as there is no subaccent structure to indicate.
Though there are some defaults: 3 is in 3, 6 is in 2. Then "in k",
where k is an integer > 1, means a group where the first subgroup has
a strong accent, and the other subgroups weaker accents. All else is
unspecific, subject to interpretation. Specifically, this is k units
followed by a note value; mathematically a pair (k, n), where n is a
note.

How do you propose beaming to indicate "in k"? I understand "in one"; it
means to connect all the notes to a common beam, i.e. beam the "beat"
together.

Then the "in k" structure should be expressed I think by breaking up the level it represents.

In your mind, is "6 in 2" different from "3 in 1" + "3 in 1"?

The only difference is that "3 in 1" + "3 in 1" or (1, 3/q) + (1, 3/q) for some denominator q, tells how the 6 should be broken up. It can also be broken up as 2+2+2 or any other combination that sums up to 6, or by setting it tuplets. So + is more specific.

One can define more complicated subgroups by the use of +,
parenthesizes, and "in k" groups.

In your earlier email (which I didn't understand before, but I think I
figured it out now), you proposed a working notation with ' indicating "in one". But then every specific proposal you wrote used ', so I wasn't able
to understand the difference between "in one" and "not in one".

I did not use that here sorry. Let's try this again.

Start with p/q. If in one, it can be written as (1, p/q); if in p, it can be written as (p, 1/q). So since I introduced these pairs, the ' notation is not needed.

I think it is complicated by tuplets. Triplets are by default in 3 (tripartite), and sextuplets in 2 (bipartite) [Hindemith, "Elementary Training", p. 116].

So in addition to +, parenthesizes, (k, n) pairs, one has to add p:q tuplets.

It could be used for meters as well: there is a popular Macedonian meter 12 = 3+2+2+3+2, where the 3's have quadruplets as metric default.

Then I ended up defining two concepts: simple and compound meters. The simple meters are just those "in k", a pair (k, n), which does not use
+ or parenthesizes.

Then one might define a regular meter as one which can be rewritten
into a simple meter by means of a substitution. For example, the
common 6/8 can be rewritten into 2/4 which is the pair (2, 1/4).

I really don't understand this. How does 6/8 map into 2/4? The only way I
can see to do this is by the use of triplets.  What am I missing?

Nothing it seems, by using triplets as necessary, 6/8 can be rewritten into 2/4, and by using duplets and quadruplets as necessary, 2/4 can be rewritten into 6/8. They are musically equivalent. As a meter, 2/4 is simpler; so define 6/8 rewritten into 2/4 as a "reduction". Then the regular meters are those that can be reduced into a simple meter, disregarding the problem of the two metric interpretations of 4-time. Just a mathematical definition.

Those that are not regular are irregular. I don't think this concept
of regular-irregular helps the beaming question though.

Note the complication of the meter 4/4: there are two interpretations,
as the simple meter (4, 1/4) and as the compound meter (2, 1/4) + (2,
1/4). It think the French Wikipedia indicated both. Strictly speaking, one has two different meters here, that might require different beaming.

According to the engraving books, these aren't really two different meters. They're just two different ways of notating the music. But that's just the
engraving books.

Yes, I suspect you can trust the engraving books with the musical interpretation.

But 4-time has special typesetting rules. Hindemith, p. 18 says that beams must be such that the two halves are recognizable. So this suggests a 2+2 division. He then says that it may not always be possible to do this.

But it may be easier to use a 2+2 for some note patterns and in 4 for others.

Regular meters can be classified according to the number of beats per
measure.  Duple meters have two, triple meters have three, quadruple
meters
have four, and so on.  These terms are really not important for
beaming (at
least as far as I can tell) so I won't discuss them more here.

This is the Germanic way (from Scandinavia down to the Balkans). Look
into the ENglish Wikipedia, and you will find another definition.
People seem to be rather emotional when they discover the difference.

I can't understand the extra meaning of duple meter (1.5 times the basic
duration) given in the English Wikipedia.

I think they just mean duplets, which can be used divide 3 notes. (This may require different beaming that rewriting it using dotted notes.)

The main point is that the English terminology does ont refer to metric accent structure, but to overall note values.

The clearest explanation of meters that I have found is Chapter 10 of Read.

I don't have that.

But I suspect that all of this discussion is largely tangential. What I
most care about is proper beaming patterns.

Yes, that is just the fixing of a terminology. Beaming should mostly express accent patterns. When people want to depart from that, it may still work as a simulation model-

Regular meters can also be classified as simple meters or compound
meters.
Simple meters have beats that are regularly divided into two equal
parts;
compound meters have beats that are regularly divided into three equal
parts.

Here it seems you are shifting to a Latin terminology. In Germanic
tradition, 2, 3, 4 are simple, and others, like 6 are compound.\

No, I'm not shifting.  I'm just using Read's terminology.

Then that is the English terminology. This difference is very confusing when encountering both, like Hindemith who uses German convention in English.

Other divisions are possible, but for purposes of this discussion we
will consider those other divisions to be part of the irregular (or
complex)
meters.

For numbers that are multiples only has factors 2 and 3, the CPP
default is assuming they have this subdivision. Otherwise, one has to
indicate the subdivision using +. For example, 5 is 2+3 or 3+2. One
can divide 6 as 2+2+2; I have an example in Bulgarian music where it
used along with a 7.

There is a complication that one can have "in one". Finale has such an
option, I am told. Beethoven's 5th is normally performed in one,
though written in 2. In Balkan music, one can have 7 = 2+2+1+2 or 9 =
2+2+2+1+2, for example.

For simple meters, the fundamental unit is the same as the beat.  So
the
beat in 4/4 time is 1/4, and the fundamental unit in 4/4 time is 1/4.
Hence, it is common to think of the beat as the fundamental unit.

However, for compound meters, the fundamental unit is *not* the same
as the
beat.  For example, in 6/8 time, the fundamental unit is 1/8, while
the beat
is 3/8.

If one uses the nesting with +, parenthesizes and simple pairs (k, n)
one comes down to the lowest level of (k, n) pairs. Then then work
upwards first with number of beams until beam groups, possibly with
different dotted bars, and even a metric shift structure.

I don't think one needs pairs (k,n).  But I'm willing to be convinced.

This is the traditional way to think of the meters. I have discussions in rec.music.thoery about this; Webber who wrote the Mozart typesetting program could not accept this view, but all musicians and composers agreed on it. (Hindemith is careful never using "/" when writing time signatures.)

I think of it as in physics: there is a time unit which is repeated.

So you are free to invent something yourself - Webber evidently did. It might work.

So there are really to 4, (using Germanic terminology) the simple 4
and the compound 2+2.

Actually, according to the engraving references, there is no difference in the metric structure. It's just that beams having fewer than three stems can be combined across the 1-2 and 3-4 boundaries (in the case of 4/4), and that beams of repeating rhythms or equal notes can be comined for all three
beats, or 1 and 2, or 2 and 3 (in the case of 3/4).  According to the
engraving references, it's *not* reflecting a difference in the meter.

I think the story is that is not currently engraving 4 as to reflect any difference between the 4 and 2+2 patterns. But one could, just as one could rewrite Beethoven's 5th from 2/4 into 1/2. The 1 is not used explicitly in CPP typesetting. I think that might be part of the reason that the Bulgarian musicologists write Eleno Mome in 13/16, 13 = 4+4+2+3 instead of the 7/8, 7 = 2+2+1+2 as one mostly play it in. If writing it as 2+2+1+2, music engraver will change it into 2+2+3.

Engraving practices do not conform strictly the the idea of expressing metric accent patterns. So if one ties metric accent pattern to beaming, one will have to expect to use more than one metric accent pattern to express the traditional beaming pattern.

Then there is needed a mechanism to decide for note pattern which metric accent pattern to apply.

For 3/4 time, beats 1
and 2; or 2 and 3; or 1, 2, and 3 can be combined to form a unit
(but only
if the unit includes *all* of beat 2; if beat 2 is split, 3/4 looks
like
6/8).  This level of combination is not supported at all in
LilyPond, and so
we try to make it work with custom beaming rules.

And as for 3, there are also meters: the simple 3, and the "in one"
three. With the notation above, 3/4 can be (3, 1/4) or (1, 3/4).

Again, what id the difference of the simple 3 (which, as I understand it, has an accent on beat 1) and the "in one" 3 (which, as I understand it, has
an accent on the first metric unit)?

Oh, sorry, the simple 3 is in 3 - otherwise it could be rewritten in 1. So it has a primary accent on the first beat and secondary accents on the beats following it.

So for each k and each note time n, there is exactly one simple meter (k, n).

Users must specify which one the want to have. They may want more to
have in effect more than one subaccent meter, determined by say note
values or other properties.


So I think you need to somehow capture the nested structure of +,
parenthesizes and pairs (k, n), where k is an integer >= 1, and the
note value n is a rational number indicating is tome value. Then to
each level in the tree it defines, one should attach a subbeaming
construct: number of beams, space between groups, various dotted bars
or even metric shifts. The number of beams is standard. The dotted
beam structure must be specified by the user.

One possibilty I've thought of is to specify a context property called (for
the sake of argument) fundamentalMoment.  Then we could define a beat
structure as a nested list.  The list would represent groupings of
fundamentalMoments. Each group at the top level of the list would be beamed together, with beams divided between the groups. If there were a sublist, the total of all the elements in the sublist would be beamed together, and then the indvidual elements of the sublist would be subdivided. This could
go on arbitrarily.

Yes, there is something like that, only that I think of a tree. But each level of + can be collected to a list. Then position of sublists are expressed syntactically by parenthesizes.

Before each sublist, there can be p:q tuplet notation. If there is no sublist in an entry, it must be a (k, n) pair, where k >= 1 is an integer, and n is a rational number, which I think must be of the form p/2^i, as the beaming structure only expresses 2^i denominators; other denominators must be expressed through the tuplet notation.

Here, there might be weakness in LilyPond, because note values can expressed as merely note values, without grouping tuplets together properly. This might make correct beaming difficult.

So, for example, we could have a fundamental unit of 1/8, and then for a
time signature of 15/8, we might have a beat structure of

(2 3 (2 (3 2)) 3)

The first two eighth notes would be beamed together, as would the third through fifth, and the sixth through twelfth, and the thirteenth through
fifteenth.  There would be a subdivision at 16th notes at 7/8, and a
subdivision at 32nd notes at 11/8. This would try to demonstrate the metric
relationship implicit in the beat structure.

If I were to implement something like this, it would make sense to call the context property beatStructure. And actually, that might make sense anyway. Perhaps the name beatStructure is clearer than anything else I've thought
of.

So there would be something like that, only that one has to think about how to blend in tuplets.

Your example might be written as
  2+3+(2+(3+2))+3 * 1/8
where * 1/8 is the eight note time unit. Using the pair notation, it can be moved in a to become
  (2, 1/8) + (3, 1/8) + ((2, 1/8) + ((3, 1/8) + (2, 1/8))) + (3, 1/8)

when parsing it, on builds an AST (abstract syntax tree) which expresses the relation between the operators and their arguments:
         +
         |
    [(2, 1/8), (3, 1/8), +, (3, 1/8)]
                         |
                [(2, 1/8), ((3, 1/8), (2, 1/8)]

Now you see you do not need the pairs if you never want to have a mixture of time units. But I suspect using tuplets will force that. But otherwise, the structure would be the same.

If I throw in tuplets in this AST, setting them to 1:1, I get:
         +
         |
    (1:1, [(2, 1/8), (3, 1/8), +, (3, 1/8)])
                         |
                (1:1, [(2, 1/8), ((3, 1/8), (2, 1/8)])

That is, the tuplet p:q just appears as a pair (p, q) attached to the list.

So something like that.

  Hans





reply via email to

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