lilypond-user
[Top][All Lists]
Advanced

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

Re: Tweaking confusion


From: Mats Bengtsson
Subject: Re: Tweaking confusion
Date: Wed, 09 Jan 2008 14:03:22 +0100
User-agent: Thunderbird 2.0.0.5 (X11/20070716)



Reilly wrote:
Borrowing heavily from the LSR and the archive, I created a Tempo Mark I could use in my scores. The trick was to make an initial tempo mark (Allegro con moto with a metronome mark) print left justified with the time signature. I succeeded with the following code:

    tempoOne = {
\override Score.RehearsalMark #'break-align-symbol = #'time-signature
        \once \override Score.RehearsalMark #'self-alignment-X = #-1
\mark \markup{ \bold "Allegro con moto" { \smaller { \note #"4" #1 = 112 } } }
        \override Score.MetronomeMark #'transparent = ##t
        \tempo 4 = 112
     }

There was one problem, however. Although I specified self-alignment left justified, the tempo mark was NOT left justified. I was able to tweak it into a left justified position by adding:

        \once \override Score.RehearsalMark #'X-offset = #7
Strange! When I try your definition above, it certainly gives left alignment.

So far, so good.

However, the tempo mark was too high above the staff. So I tried to move it lower with the following code:
Better: try to figure out why it is too high! If you try to comment out the line
       \override Score.MetronomeMark #'transparent = ##t
you will notice that it's the (invisible) normal metronome mark that pushes
your markup upwards. This is a general "feature" of setting #'transparent = ##t on some object, namely that it is just made transparent but that the layout is still done as if the object was printed. To completely remove the object so that it doesn't
affect the spacing of other things, you should instead do
       \override Score.MetronomeMark #'stencil = ##f


So, I did some more research and discovered the following code:

(a) \once \override Score.RehearsalMark #'break-align-symbols = #' ( time-signature )

which is ever so slightly different from my code line

(b) \override Score.RehearsalMark #'break-align-symbol = #'time-signature

(Note especially the 's' on the end of symbols.) Why two "slightly" different code? Is one more correct than the other? Or are they different code?
This is something that has changed from version 2.10 to version 2.11.
The property break-align-symbol is for version 2.10 whereas break-align-symbols is for version 2.11. In general, if you pick up a solution from LSR or the mailing list archives or whatever, please always try to figure out what LilyPond version it was written for and then use the convert-ly utility to automatically upgrade
the code to your current LilyPond version. This would automatically have
handled this specific incompatibility, for example.

Code (a) actually worked great and left justified the tempo mark without using the X-offset =#7.

But, I still cannot lower the tempo mark.

Although I was able to left justify the tempo mark with code (a), in the manual I read that I should use the following code:

\once \override Staff.TimeSignature #'break-align-anchor-alignment = #LEFT

I thought this "simple" (ahem, ahem) tweak, would be a good illustration of precisely how baffled I am by Lilypond code. I really don't know what I am doing and batter my music into the right form by dint of research and lots of trial and error. I don't want to do it this way.

In one of the model snippets for a tempo mark, the author included the following line of code:

           \once \override Score . RehearsalMark #'no-spacing-rods = ##t
Again, that's outdated if you use version 2.11. Ufortunately, this is one aspect that convert-ly does not take care of, since so few users have used this specific
property.
3. Why can I left justify with Score.RehearsalMark #'break-align-symbol while the manual suggests that I use Staff.TimeSignature #'break-align-anchor-alignment?
If you have set the alignment of the markup to be left aligned, the
break-align-anchor-alignment is used to specify if the left edge of the markup should be aligned with the left edge, center or right edge of the time signature
(which is why this property is set on the TimeSignature object).
If you carefully read the manual again, you'll notice that this is exactly what it says. If you have any proposal on how to reformulate the instructions to make this point even clearer, please see "Small Additions" at http://lilypond.org/web/devel/participating/documentation-adding

   /Mats




reply via email to

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