lilypond-user
[Top][All Lists]
Advanced

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

Re: Flexible lyric alignment


From: Jean Abou Samra
Subject: Re: Flexible lyric alignment
Date: Sat, 12 Nov 2022 01:35:13 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1

Le 12/11/2022 à 00:23, Carl Sorensen a écrit :
IIUC, columns are spaced with springs and rods considering collisions between adjacent columns.

The hope was that one could create negative space in the column with no lyricText, thus allowing the adjacent column to overlap the column with no lyrics and not have it be considered a collision.  Then the standard spacing rules could be followed, but the columns could overlap.

Maybe this makes no sense at all (I'm clearly not at expert -- or even a novice -- in the spacing engine).  It was just a thought of a way to try to approach the problem by changing grobs, instead of the spacing engine.



Preventing the spacing engine from seeing a collision somewhere is
not a problem. You can use extra-spacing-width for that. The problem
is that in this situation:



       |                     |                       |
    lyric_word   exceedingly_long_lyric_word another_lyric_word
       |                     |                       |
       |                     |                       |

   column 1               column 2                column 3


If what you need is less space between column 1 and column 2,
you can keep the long lyric word aligned on the right, making
for a small space:


Possibility 1
==============

      |         |                             |
    lyric_word  exceedingly_long_lyric_word   another_lyric_word
      |         |                             |
      |         |                             |

   column 1   column 2                   column 3


If, on the other hand, what you need is less space between
columns 2 and 3, you will do

Possibility 2
=============

     |                               |         |
   lyric_word    exceedingly_long_lyric_word  another_lyric_word
     |                               |         |
     |                               |         |
  column 1                     column 2     column 3



In order to prevent the lyric words from colliding, you normally
need to set up a minimum distance from column 1 to column 2
and from column 2 to column 3. If you want to keep both
alignment possibilities open in order to leave the spacing
engine more freedom for spacing notes equally, the minimum
distance from column 1 to column 2 needs to be as small
as the distance there is in the first possibility. Otherwise,
you will just prevent that possibility from happening
by forcing columns 1 and 2 to be too far from each other.
Similarly, the minimum distance from column 2 to column 3
needs to be no larger than the distance there is in possibility 2.
The issue is that this doesn't tell the spacing engine that
the distances from 1 to 2 and from 2 to 3 can both be
small, but cannot be small *at the same time*. So, it might
choose to do


       collision           collision
         |                    |
         v                    v
   |          |        |
  lyric_word  |      another_lyric_word
   |  exceedingly_long_lyric_word
   |          |        |
 column 1  column 2   column 3



I hope it's clearer explained in this way.

Best,
Jean

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

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