lilypond-user
[Top][All Lists]
Advanced

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

Re: parallelMusic and repeat


From: Alexander Kobel
Subject: Re: parallelMusic and repeat
Date: Tue, 08 Dec 2009 18:40:20 +0100
User-agent: Thunderbird 2.0.0.23 (X11/20090817)

David Kastrup wrote:
Alexander Kobel <address@hidden> writes:
-Eluze <address@hidden> writes:
i think \parallelMusic is just thought for a quick and easy input -
without sophisticated structuring of a piece!
Although it's an example of a functionality that IMHO is to valuable
to be hidden inside the LSR without mentioning it in the NR,

If it is valuable, doing it properly should be a priority.  The current
workflow does not seem to make the requisite bug reports/tasks appear in
parallel with the first draft implementation of a feature.

I also can't remember an enhancement request asking for, say, \vspace. It was written by someone (Nicolas?) who needed it, someone found it, thought: Hey, that's cool, and well, now it's there, without standardization. I'd not be surprised if you can find errors there, or "unspecified behaviour" - e.g., what's the width of this "invisible object"? - but that does not impair its right to exist.

and having it in the core at least gives a /little bit/ of
standardization.

Standardization does not mean "let's call the current inconsistent
ad-hoc behavior standard".  A standard needs to make sense of its own,
not just be a side-effect of a particular implementation.

Ah, come on. Of course your reasoning is correct, I know. I do believe in standards, as well, and as often as I can I try to use and propagate them. But there's a whole bunch of great standards, which deeply lack one thing: proper implementation and support (remember CSS and XHTML?). And there's a bunch of great features, as well, which don't follow a well-defined standard, but are incredibly valuable from a practical point of view. It's one thing to try to refine the latter, but as long as they get me my work done, I surely won't reject them for purely ideological reasons, and rather stick to defaults than standards.

The current position is that I can write scores /far/ more easily /and/ readable (like in uncluttered and "in situ", compared to traditional input of one voice after another), as long as I don't try to do everything inside \parallelMusic. This includes voice changes, staff changes, articulations, dynamics (if you don't factor them out anyway), ..., but not structural settings (repeat, context instantiation, settings like \time or \key for higher-level contexts than a Voice, although those should work, too). /I/ go nuts when I have to enter a piano score, switching between 2 to 5 voices, and either have to write << >> all over the place or scroll back a hundreds of lines to see where that voice 3 ended up ten measures ago.

And it's being in the core means I have more-or-less well defined behaviour, which I can rely on even when reading code from others or myself, later on. Note that the same would be true for a LSR snippet, like \changePitch, in almost every means but checking for several versions in history, which I can do with the old manuals.


The proper order of things is to _first_ make something work
consistently, _then_ elevate it to the level of "standard".  Calling it
"standard" before means you have to support something (for example in
convert-ly) that is not really coherent.

Admitted. I guess there's different intentions already. You want it to work with structures like the repeat? Well, this essentially means that you split the input before parsing/interpretation of the tokens. You most probably will expand the namespace by another separator token. You have to code very low-level routines to deal with it. You might run into problems with checking the coherence of lengths of the voice sections, or giving feedback about the location - possible to deal with, of course, but another potential source of trouble. And, after all, maybe there's not as much use for it as you imagine in the first place. You can write fancy stuff in C++ as well, but you don't do so usually (well, at least most programmers don't), and for the rare occasions you could also think of a more conventional approach. (E.g., make your higher-than-Voice-level input in variables of their own.)


I'm not saying it's not worth it, but it's quite an involved task.
And I really don't get why we demonize the current state. I mean, although it's a hack: What actually /is/ bad about \parallelMusic? There's exactly one thing in my mind, so far: it's not quite as convenient as it could be to use relative mode.


Cheers,
Alexander




reply via email to

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