lilypond-devel
[Top][All Lists]
Advanced

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

Re: [proposal] easy triplets and tuplets - Draft 3


From: Joseph Rushton Wakeling
Subject: Re: [proposal] easy triplets and tuplets - Draft 3
Date: Tue, 09 Oct 2012 01:16:22 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20121003 Thunderbird/15.0.1

On 10/08/2012 10:44 PM, Janek Warchoł wrote:
First, we shouldn't mix content and presentation.  I think it's a very
important rule; one of the best things in LilyPond is that she allows
to separate music from its layout.

Yes, fair point. But one thing to be careful of particularly as regards contemporary music is that where in earlier music it's often possible to define "standardized" engraving rules, a lot of more recent works frequently switch between different stylistic choices as a means of indicating nuance. If you can't do those switches quickly and easily from the syntax, you have a problem.

Looking at it a slightly different way, what may be merely presentation in earlier music, can actually be content for contemporary music.

I could give quite a lot of examples, but let's stick for now with the tuplets.

I think that what Joseph suggested is mostly a matter of layout.
Thus, it shouldn't require any additional user input.
For example, displaying the total duration of the tuplet can be done
in an automated way - i'm sure LilyPond can calculate it.  So, instead
of having an additional optional argument that the user would have to
provide, we should just create some property of TupletNumber (e.g.
display-total-duration) that would print these when set to true.

That's broadly what I mean, although I don't think you can do it without _any_ additional user input. What we're certainly in agreement on is that it shouldn't be about manual overrides of what literally appears; I want to be able to easily choose between different stylistic options _and have the precise notation calculated automatically and correctly_.

You _do_ need to provide extra information about the stylistic choices, though (more on that below, following your suggestions).

We could then go as far as to create a function that would evaluate a
tuplet and set this property to true if the tuplet was complicated
enough.

That's a nice suggestion in and of itself, and would probably simplify a lot of notational issues. You can probably specify some broad stylistic properties for tuplet notation such as number-only, ratio-when-nonstandard (e.g. you display 3, 5, 7, 11, 12 for respectively 3:2, 5:4, 7:4, 11:8 and 12:8, but ratios for other cases), always-use-ratio, and so on.

Similarly, deciding what should be displayed inside the TupletBracket
is another layout decision - it seems doable to define several styles
(e.g. denominator only, ratio with slash, ratio with colon, ratio with
noteheads etc) and choose between them using 'style properrty of the
TupletNumber.

Just bear in mind that \once \override is almost unbearably verbose and confusing if you're doing it very regularly.

Joseph mentioned scores in which tuplet style changes all the time.  I
think that a proper solution to this problem is to create custom
shortcuts for overriding TupletNumber style - this way you still have
layout separated from score (i.e. one can easily turn these functions
off; the layout decisions aren't hardcoded in the music code itself.

Yes, that's probably fair, though I think with frequency even a short, easily-legible shortcut can become irritating, which is why I tried to develop a more flexible syntax for \tuplet itself.

From a strictly user point of view (not necessarily a developer's!), the ideal would probably be an ability to put in place detailed stylistic rules that depend on the precise tuplet ratios, the position in a nested tuplet hierarchy (top-level, 2nd-level, 3rd ... ?), whether or not the tuplet's beginning and end both coincide with a barline, and probably other factors besides; and then combine that with custom shortcuts for the few cases that slip through the cracks.

Secondly, there is a general design principle which says that
different things shouldn't be too similar.  Because of that i think
that we shouldn't allow \tuplet {} (without ratio argument) to mean a
triplet - it would be confusing (to say the least).

Indeed, but you could reasonably allow

     \tuplet n {}

... to be used for an n-tuplet for values of n that have a definitively standardized interpretation. (Might be more trouble than it's worth though.)

In my opinion, we need a powerful function that can be used to notate
any conceiveable tuplet - that would be \tuplet x/y {}.  In addition
to this, we may define some shorthands, but it's crucial that they are
distinct from \tuplet x/y.  It should be obvious for everyone,
including all LilyPond beginners right from the start, that \tuplet
x/y is THE way to enter tuplets, and everything else is just a
shorthand.

One remark -- this concept of a \tuplet is basically just an inversion of \times, but you do have other opportunities here. A tuplet is in practice not just a ratio but is a ratio _of note values_. So there is a _content_ value in giving the user the opportunity to specify not just x/y but x/y "of what?" (Or, "x of what to y of what?"), whether or not you display the "what" visibly in the engraved score.

That feature incidentally should make it easier to check a tuplet for 
correctness.

Finally, another cool thing about LilyPond is that she is logical,
precise and the syntax is fairly unambiguous - *unlike* musical
notation itself.  I remember one user writing something like "LilyPond
forces me to write the music in logical and structured manner - if
some notation is particularly difficult to code, i often end up
realizing that it was not a good notation at all".

There's a truth to that, but bear in mind that creative use of notational ambiguity is one of a composer's most valuable tools. "Logical and structured" notation is an aesthetic as well as functional choice.

Please forgive me for saying this, but in my opinion
musicians are somewhat prone to this "bad intuitions"; some
established music notations are ambiguous for no good reason.  For
example, a lot of guitar music is written in treble clef *without* 8
below the clef.  From my point of view, this is extremely confusing,
and a foolish thing to do.  You gain nothing by omitting the 8 - why
hide the fact that the music is transposed?

... and the piccolo is written in \treble not \treble^8, the contrabass in \bass and not \bass_8, etc. ... OK, you tempted me with a fun notational excursion. :-)

I would say it's because it is not actually ambiguous in practice, and further, that being explicit as you suggest introduces alternative, more problematic ambiguities. A guitar has a certain range that it's convenient to notate across a treble clef staff, whatever the base octave; the distinction between \treble and \treble_8 is irrelevant because you don't change clefs during the music and even if you did you wouldn't change between these two.

If you _did_ insist on the distinction between those clefs being important, it would be very problematic because then as a guitarist (or piccolist, or bass player, or conductor) you'd have to spend lots of time worrying about whether the omission of that "8" on the clef actually meant something or was just a typo. Whereas as things are, you can just ignore it.

Now think about extending that to other transposing instruments. Should a bass clarinet be notated in \treble sounding a 12th below what is written, or in \treble_8 sounding a 2nd below? Isn't the important thing (as player or conductor) that you never have to worry about it?

So to me, in practice the "ambiguity" of clefs ignoring whole-octave transpositions is in general a safety feature, albeit with some problems in fringe areas -- and those fringe areas would probably be made worse, not better, by specific octave notation.

The exception to this is of course choral music where the _8 on the clef for the tenor part adds a useful visual hint to emphasize which part is which.

In LilyPond, if you use the treble clef without 8, you'll get
literally what you wrote - there will be no silent transposition.  You
have to use the proper (i.e. unambiguous) clef to get what you want
(or you have to use override trickery, but then you know that you're
cheating).  I believe that this quality of LilyPond is very noble.

Agreed, it's a very useful feature, although a whole-octave transposition isn't trickery ;-) But you have to be careful with precision. Formal mathematical notation is of course extremely precise but that can lead to nightmares when you make small slips in writing it down -- simple graphical notations that aren't precise or rigorous in the strictest sense can sometimes offer a much better way of working things out in practice.

This is even more true of music, where it's very often the ambiguities in notation that are most interesting in provoking different musical interpretations. This is just as true for Ferneyhough, Dillon, Barrett, etc. with their fearsomely "specific" notation, as it is for Mozart or Beethoven.

Back to tuplets ...

So, i believe that LilyPond shouldn't always follow her users'
intuition, even if they are professional musicians.  In this case, i
think that \tuplet 2/3 is better than \tuplet 3/2 (for 3 notes in time
of 2), because it corresponds to mathematical ratio, and is similar to
scaling durations.

You have a point, but this is one where I think the musicians' intuitive notation is worth following. It's just a ratio; arguing over which way round it should be is a bit like arguing over whether the football score was 1-0 or 0-1, the answer depends on which order you list the teams. ;-) As musicians have settled on a robust answer for how the tuplet ratio should be written, and it's both logical _and_ intuitively comprehensible, Lilypond might as well follow it.

Whoah, that was a long email.

Don't know about you, but I find they always seem to be most tempting to write whenever I have something else really important (work, study, planning, big life change ...) upcoming that I should really be concentrating on :-P




reply via email to

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