[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Alignment of metronome marks
From: |
Neil Puttock |
Subject: |
Re: Alignment of metronome marks |
Date: |
Mon, 23 Jun 2008 23:57:13 +0100 |
2008/6/23 Reinhold Kainhofer <address@hidden>:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Am Montag, 23. Juni 2008 schrieben Sie:
>> Quoting Reinhold Kainhofer <address@hidden>:
>> > One thing I noticed is that the regression test
>> > input/regression/metronome-marking.ly says:
>> >
>> > "The marking is left aligned with the time signature, if there is one."
>> >
>> > Unfortunately, this is not true, the metronome marking is now always
>> > aligned with the following note... Is this a bug/regression?
>>
>> Can't this alignment be determined using break-align-symbols, just as
>> it is done for rehearsal marks, for example?
>
> Probably, but I have no idea how this works. I simply asked, because the
> regtest clearly stated something that was not true with the current version,
> so either lilypond or that comment should be changed...
It appears to have changed between versions 2.0 and 2.2; as it was
originally implemented, the Metronome_mark_engraver checked for time
signatures and bar lines when setting alignment.
> Also, I have tried copying the settings from RehearsalMark and from BarNumber
> to MetronomeMark, but the following grob definition (where I copied
> break-align-symbols, X-offset and self-alignment-X, and also added the
> break-alignable-interface and the self-alignment-interface) does not make any
> difference:
> (MetronomeMark
> . (
> (stencil . ,ly:text-interface::print)
> (Y-offset . ,ly:side-position-interface::y-aligned-side)
> (direction . ,UP)
> (padding . 0.8)
> (side-axis . ,Y)
> (extra-spacing-width . (+inf.0 . -inf.0))
> (outside-staff-priority . 1000)
> (break-align-symbols . (time-signature staff-bar))
> (X-offset . ,(ly:make-simple-closure
> `(,+
> ,(ly:make-simple-closure
> (list
> ly:break-alignable-interface::self-align-callback))
> ,(ly:make-simple-closure
> (list
> ly:self-alignment-interface::x-aligned-on-self)))))
> (self-alignment-X . ,LEFT)
> (meta . ((class . Item)
> (interfaces . (text-interface
> side-position-interface
> font-interface
> break-alignable-interface
> metronome-mark-interface
> self-alignment-interface))))))
>
>
> Any idea what might be wrong? Also, I don't know which settings for
> break-align-symbols is needed to align (1) above the time signature or (2) on
> the next note if no time signature is printed at that position in time...
There's no acknowledger for break alignment in the engraver, so the
break-alignable-interface callback won't work.
Judging by the code in
Metronome_mark_engraver::stop_translation_timestep (), the text is
aligned to the nearest NoteColumn by reading the property
currentMusicalColumn.
Regards,
Neil