lilypond-devel
[Top][All Lists]
Advanced

[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




reply via email to

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