|
From: | Phil Holmes |
Subject: | Re: Adds incipit section to NR (issue 108270043 by address@hidden) |
Date: | Thu, 21 Aug 2014 11:20:58 +0100 |
Cc: <address@hidden>; <address@hidden> Sent: Wednesday, August 20, 2014 9:40 PMSubject: Re: Adds incipit section to NR (issue 108270043 by address@hidden)
On 2014/08/20 08:17:01, email_philholmes.net wrote:>> ly/property-init.ly:303: ragged-last = ##f >> wouldn't we also want system-count = 1 here? >> >> https://codereview.appspot.com/108270043/ > > Possibly. I'd be happy to add that prior to push. > > -- > Phil HolmesActually, I've just checked. System-count has no effect: the incipitisalways a single line.Take the following example: \layout { indent = 3\cm } \new Staff \with { instrumentName = "Tenor" } { \incipit \relative c' { \time 6/1 \partial 1*2 e1 d \bar "|" c d e d c e } \relative c' { \time 6/8 \partial 4 e8( d) c( d e d c e) | d2. } } Without the system-count restriction, its reaction to the small indent is quite out of line.
I'd concluded something similar yesterday - but it was difficult to check since I was on the motorbike at the time!
The difference between our two pices of music used to check the effect is that you included a bar line, allowing Lily somewhere to break the line: I hadn't. In practice, whether the system-count = #1 is there or not makes no difference to whether acceptable output is produced. Because of http://code.google.com/p/lilypond/issues/detail?id=766 both look poor. I've attached examples of both: I believe it's worth adding the line and will do so, but it's rather like "putting lipstick on a pig".
This example shows some more problems: Outcommenting the assignment to indent leads to a strange error message. Outcommenting the assignment to instrumentName lets the incipit disappear completely.
Not convinced the error message is strange: "error: unknown escaped string: `\indent' line-width = \indent". So clearly it is complaining that where we assign the value of line-width to the variable \indent, that variable doesn't exist. It seems we have three options.
a) Document the needs to set indent explicitlyb) Re-use the rather ugly '(or (false-if-exception (- indent incipit-width)) (* 0.5 indent))) syntax to set indent to a default for incipits c) If \indent does not exist, use the default value of indent set in paper-defaults. I'd assume this will need the same code as b)
c) would seem best, if I can get it working?As to the incipit disappearing: I assume that this happens because we're over-riding the code that sets instrument name, but since we never tell Lily that there is an instrument name, she never calls that code. This can be fixed by using instrumentName = "". It's a bit ugly, but unless there is a better answer, then this should be documented.
Now taking your last reply into accountDon't agree at all. I'd accept it if you proposed an alternative thatleft aligned the instrument name as a possible option, but as it is, Ibelieve right alignment is the correct option here. It should requireanoverride to change that. Don't accept this change should delaypushingthis patch.I think that our basic disagreement here has more or less grown over the history of this patch which makes it somewhat sad that nobody else chimed in.
I'll pick up on the right/left alignment issue first. I believe I concluded right-aligned to be the correct answer because we are effectively reusing the \indent value to set the width of the incipit, including instrument name. Now, if someone wishes to have the first line actually indented, this makes it impossible. See the 3rd image attached as an example.
See? The instrument name ("Altus") is stuck to the left margin and it's impossible to adjust its position. Right align it, however, and the first line can be indented to the value desired (with a little experimentation). The fourth image shows this. This is surely far better?
I think it boils down to a mismatch between your original intent reflected in the patch title "Adds incipit section to NR" and the course I am trying to take it. To me it looks like you want a section in the NR (rather than some snippet) that produces an incipit like the one you can see in your scores. And it would appear that everything which happened in between is a distraction and an annoyance to you since it does not actually change the image that appears while causing additional work.
Not at all. I wanted a section in the NR that shows how to do incipits. Period. No-one else had picked this up and so we have the shitty state that currently exists. A section that just says "TBC". What help is that?
I did not try to recreate the incipits I see in my current scores: almost all of those use modern notation, which seems wrong to me - they probably do it because of the inability to use mensural. What I actually did was take the code for incipits that already existed (http://lsr.di.unimi.it/LSR/Snippet?id=582 and regression/incipt.ly), remove some code that seemed over-complex to me, fix the layout issues and go with that. I personally find the result pleasing and do now use it, but there has never been any attempt on my part to slavishly recreate incipits "like the one you can see in your scores".
As to my occasional irritation. I am driven solely by my desire to improve Lilypond, and particularly currently the documentation for ancient music. I believe that this can be an incremental process: if what I have proposed is better than the status quo ante, then I believe it should be pushed and then subsequently improved where not perfect. This is the basis of Agile development: make incremental improvements, let everyone (not just developers who understand the output from a review cycle) see the result, and improve further. I took on board wholeheartedly the need to create an incipit command and implemented one. That was over a week ago. If constructive comments had been made then, I could have pushed this and started work on the "Ancient and modern from one source" section, which also says TBC and is thus similarly useless. However, that will require incipits, and so I can't start. Similarly, if my patch were in the code base, you could have shown code for review that would have improved it, as opposed to simply disagreeing with what I had proposed.
However, we are changing from what was "just a snippet" into functionality built into LilyPond. In a snippet, hardwiring some instrument alignment for the outcome desired for a particular graphic is quite fine: the user who wants a different alignment can just change the snippet code. But when we are creating built-in functionality for LilyPond, we don't want decisions hardwired into code that is no longer user-maintained. We also don't want surprising changes of defaults. The last proposals of mine were for a) changing the normal instrumentName placement to the default placement without incipit
See my comment above. I explained why I did this, but it apparently remains wrong simply because it's not the default.
b) giving the \incipit command the facility to conveniently override such defaults with a context modification The intended graphic end result after all this effort would indeed be exactly the same result you already have, but with the alignment choices differing from the default explicitly specified by the code.
There's nothing wrong in changing a poor default to a good one, and then allowing the user to restore the poor one.
Now obviously one can commit and document one interface now and fix stuff up afterwards. But then that kind of documentation patchwork is done by different authors and checked in and translated at different times. I would prefer to get stuff as correct and complete at the first go as we can manage. Of course, once you throw up your hands in disgust, the work we can hope to get achieved from one author in one go is over. And naturally, there is not much of a point to exhaust your enthusiasm for LilyPond over a single issue. I'd still be glad if we could get the code and documentation at least to a state where we don't need to touch the translatable part in the NR (example use and description) any more for a large variation of different applications, even if it will fall to my lot to do further work on the \incipit definition in property-init.ly itself in order to have it work in more situations. https://codereview.appspot.com/108270043/
As I explained above, I believe in a kind of "push and show" approach. I am severely discouraged by continual "this is wrong, no it's not" bickering. I (as you may note today) can recover my enthusiasm despite this, but I find it wearing, as I know others do. I believe we need to work from a standpoint that we accept the view of the creator of the patch unless there is _proof_ that what is being proposed is wrong in terms of code quality or other damage to the code base. The two you cited above (missing indent, missing incipit) are examples of proof that there is something wrong and I will work to get rid of them. "I think the instrument name should be on the left" is not.
All the best, --Phil Holmes
IncipitTest8.png
Description: PNG image
IncipitTest8.png
Description: PNG image
IncipitTest7.png
Description: PNG image
IncipitTest7.png
Description: PNG image
[Prev in Thread] | Current Thread | [Next in Thread] |