[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: temporarily disable Dot_column_engraver?
From: |
Mike Solomon |
Subject: |
Re: temporarily disable Dot_column_engraver? |
Date: |
Mon, 23 Jun 2014 09:48:03 +0300 |
On Jun 23, 2014, at 4:25 AM, Mark Polesky <address@hidden> wrote:
> Normally, the dots on dotted notes in different voices
> should be aligned (hence the Dot_column_engraver), but when
> one of the voices is engraved in a smaller notation size,
> the standard practice seems to be to discard the usual
> alignment, so that the dot on the smaller note is not so far
> from its note head.
>
> The attached scans demonstrate this; they are taken from:
>
> Franz Liszt: Chasse-neige (measure 4)
> no.12 from Etudes d’Exécution Transcendante
> Breitkopf & Härtel, 1910-11
> Peters, 1913-1917
>
> To achieve this in LilyPond, at first I thought to just move
> the Dot_column_engraver out of the Staff context and into
> the Voice contexts. That worked perfectly, except that if I
> need subsequent dots to be aligned, they won't be. Is there
> some override to tell LilyPond: In this voice, stop using
> the staff's Dot_column_engraver, and start using the Voice's
> *own* Dot_column_engraver, which I could then revert when
> I'm done with the small notes? If not, is there some way to
> implement this (without manual tweaks, of course)?
>
> Thanks!
> - Mark
>
> \version "2.19.9"
There may be a way to temporarily silence engravers now in LilyPond (I’m not
sure), but if that hasn’t been implemented yet, here is how I got around a
similar problem in the past.
If you’re OK rolling a custom engraver and reading a bit of C++, the Dot_column
engraver is very short (one of the shortest) and can be reimplemented in Scheme.
At that point, you can include two separate dot column engravers - one for
voice and one for staff. You can control which one is activated based by
screening based on the function ly:context-current-moment.
scheme-engraver.ly in the regression tests gives info on how to make a custom
engraver.
Cheers.
MS