[Top][All Lists]
[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