lilypond-user
[Top][All Lists]
Advanced

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

Re: Handling of objects near barlines


From: David Sumbler
Subject: Re: Handling of objects near barlines
Date: Thu, 08 Oct 2015 17:48:28 +0100

Thanks to Harm and Simon for their responses, which were much as I
expected.  I still can't see why others don't think my idea is a good
one, since it makes some things easier to do and makes nothing more
difficult than it is currently - unless Simon is really being serious
when he says he doesn't know where clef signs etc. should go.

But, ho hum, as I said the response was only what I expected.  I can
live with that!  And I can live with the occasional ungainly overrides
too.  Lilypond is still a fantastic program.

David


On Mon, 2015-10-05 at 23:30 +0200, Thomas Morley wrote:
> 2015-10-05 19:49 GMT+02:00 David Sumbler <address@hidden>:
> > For a while I have been thinking about something which I feel could be a
> > useful modification of Lilypond's behaviour.
> >
> > Lilypond defaults to standard choices for musical notation, which
> > generally saves a lot of work - for instance, it assumes that when we
> > write c4 we want a standard crotchet to appear on the page.  It saves a
> > lot of time not having to specify that that is what we want, yet we can
> > still change the appearance of the note into something else if we want
> > to, with a bit of extra work.
> >
> > However, I have had a few problems with items near barlines lately, some
> > of which I had help with from the list, and it occurs to me that
> > Lilypond is being unnecessarily "helpful" in this area.
> >
> > Lilypond defaults to putting clef-change signs before the barline, key-
> > and time-signature after the barline regardless of whether they are
> > before or after a possible bar check marking.  For instance, the clef,
> > key signature and time signature changes in the following all appear in
> > their conventional positions, even though they are (perversely) written
> > in reverse order, and with a bar check between two of the items.
> >
> > \version "2.19.24"
> >
> > \relative c'
> > \displayMusic {
> >   \key g \major c1 \time 3/4 \key f \major |
> >   \clef "bass" c2. |
> > }
> >
> > Even when we write the opposite, Lilypond still conforms to the standard
> > practice - which is very nice of it, but unnecessary.  Lilypond is a
> > practical tool, not an educational one, and people using it know the
> > conventions and can just as easily type a key change etc. before or
> > after the bar check.  Lilypond's insistence on orthodoxy does not save
> > us any effort whatsoever.
> >
> > Now I realise that the bar checks are not generally required in
> > Lilypond, and they don't really represent barlines anyway, even if they
> > look like them.  But I think it would be useful if we could use them to
> > aid the positioning of these various items.
> >
> > What I am suggesting is that if you don't use a bar check, then Lilypond
> > would sensibly put items in their conventional positions.  But if you do
> > use a bar check, and put the time change or whatever on the
> > unconventional side of it, then Lilypond should respect that.  It would
> > increase the versatility of the program without losing anything useful.
> >
> > And it is not necessarily because we are being perverse that we need to
> > do these apparently strange things: sometimes it is to cope with a
> > situation which is unusual but which Lilypond doesn't currently cope
> > with.  For instance, one of my recent problems concerned a clef change
> > during the "first-time bar" section of a repeated passage; this meant
> > that at the start of the "second-time" bar it was necessary to have a
> > clef sign to avoid ambiguity - but it made no sense to have it before
> > the bar line (i.e. at the end of the first-time section): of necessity
> > it needed to come after the barline, at the start of the second-time
> > section.  If Lilypond had understood that
> >
> > | \clef "bass"
> >
> > meant that the clef sign should come after the barline, it would have
> > saved me having to type
> >
> > \once \override Score.BreakAlignment #'break-align-orders =
> > #(make-vector 3 '(staff-bar clef key-signature)) \clef "bass"
> >
> > I think it would also be useful, at least for those of us perverse
> > enough to want to do such things, if we could actually anchor items to
> > barlines, simply by attaching them to the bar check - I am thinking
> > particularly about such things as dynamics (notably the \! to end a
> > hairpin) and fermataMarkup.
> >
> > Perhaps this feature could be considered for a future version of
> > Lilypond.  It would not inconvenience those users who don't see the
> > desirability for it in any way.
> >
> > David
> 
> A BarCheck is per default nothing else than (make-music 'BarCheck).
> You suggest that LilyPond depending on your typed order and the
> presence or absence of a BarCheck should order items on the fly.
> 
> I've no idea, whether it's possible at all. But please consider that
> some items have and should have _different_ order at line-end and
> line-begin. How to deal with this situation, if the order should
> depend on your typing? I can't see any way to make that work.
> 
> At least on the fly.
> 
> Though, you can re- and pre-define the pipe-symbol, replacing or
> combining the BarCheck with other commands. See this (crazy) example:
> 
> \version "2.19.28"
> 
> "|" = {
>   $(make-music 'BarCheck)
>   \once \override Score.BreakAlignment #'break-align-orders =
>     #(make-vector 3
>       '(staff-bar time-signature clef key-signature key-cancellation))
>   \once \override Score.TimeSignature.space-alist.clef =
>     #'(extra-space . 2.0)
>   \once \override Score.KeySignature.space-alist.key-cancellation =
>     #'(extra-space . 0.2)
> }
> 
> \relative c' {
>   \key g \major
>   c1
>   \time 3/4
>   \key f \major
>   |
>   \clef "bass"
>   c2.
>   |
> }
> 
> No need to change the source code at all. ;)
> 
> N.b. For line-breaking situation the above (make-vector 3 '(...)) will
> likely be not sufficient, you will have to spell out the lists three
> times then.
> 
> Cheers,
>   Harm

On Mon, 2015-10-05 at 20:52 +0200, Simon Albrecht wrote:
Hello David,
> 
> On 05.10.2015 19:49, David Sumbler wrote:
> > Even when we write the opposite, Lilypond still conforms to the
standard
> > practice - which is very nice of it, but unnecessary.  Lilypond is a
> > practical tool, not an educational one, and people using it know the
> > conventions
> 
> I don’t and I’m glad Lily does it right for me.
> Part of the point in automated typesetting is to disable people from 
> making errors – which, as can be seen in many publications even from 
> major houses, happens very easily.
> 
> >   and can just as easily type a key change etc. before or
> > after the bar check.  Lilypond's insistence on orthodoxy does not
save
> > us any effort whatsoever.
> 
> It saves having to remember and stick to the correct order for
anybody 
> using bar checks.
> 
> I am getting your point, and I hear in your writing the anxiety to
make 
> the proposal at all, for which I feel sorry. Flexibility and striving 
> for perfection do not easily go together…
> 
> What about doing it only with explicit \bar "" commands? (That is no 
> comment on technical feasibility; others need to judge about that.)
> 
> Yours, Simon




reply via email to

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