lilypond-user
[Top][All Lists]
Advanced

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

Re: uniform-stretching


From: Trevor Bača
Subject: Re: uniform-stretching
Date: Mon, 4 Dec 2006 14:46:10 -0600

On 12/4/06, Trevor Bača <address@hidden> wrote:
On 12/4/06, Trevor Bača <address@hidden> wrote:
> On 12/4/06, Orm Finnendahl <address@hidden> wrote:
> > Hi,
> >
> > I tried the uniform-stretching property but couldn't get it to work as
> > expected. If I understand this property correctly, it should stretch
> > out bars according to their time-signature regardless of skips or
> > rests within.
> >
> > This fails (e.g. the first measure should be much wider than the
> > second, the last and the one before the last measure should have the
> > same width ...):
> >
> > \version "2.11.0"
> >
> > \score {
> >     \new Staff {
> >         \relative {
> >             \override Score.SpacingSpanner #'uniform-stretching = ##t
> >             \set Score.proportionalNotationDuration = #(ly:make-moment 8 50)
> >             \time 4/4 r1
> >             \time 3/8 r4.
> >             \time 5/4 r1 r4
> >             \time 5/16 r4 r16
> >             \time 5/8 s2 s8
> >             \time 5/8 r2 r8
> >         }
> >     }
> >     \layout {
> >         ragged-right = ##t
> >     }
> > }
> >
> > Can someone help? Trevor?
>
> Hi Orm,
>
> OK, I'm spinning out some combinations of different settings, and
> getting closer.
>
> We definitely need uniform-stretching = ##t (as you have here in your 
example).
>
> I think we also need \remove Separating_line_group_engraver, as
> Han-Wen mentioned in a mail yesterday. (Separating_line_group_engraver
> lives in the Staff context, BTW; make sure to place the \remove there
> or else Lily will silently pass over your incorrect engraver removal,
> never letting you know that you've failed to remove what you thought
> you were removing.)
>
> So I've put together four score pairs; each pair comprises first notes
> and then rests.
>
> The first pair has no tweaks and shows that notes and rests of like
> duration space differently by default.
>
> The second pair removes Separating_line_group_engraver from the Staff context.
>
> The third pair sets uniform-stretching = ##t.
>
> The fourth pair performs both tweaks.
>
> These examples provide a couple of useful conclusions but don't yet
> solve the problem. The conclusions are:
>
> 1. Notes and rests of like duration space differently by default (as
> mentioned above)
>
> 2. uniform-stretching = ##t spaces notes and rests of like duration
> identically (which is what we want)
>
> 3. removing Separating_line_group_engraver by itself is not enough to
> cause even spacing; but I'm including the examples with removing
> Separating_line_group_engraver because other testfiles seem to show
> that the removal is necessary to get true proportional spacing
>
>
> More tests coming later today ...

AHA. There *is* a genuine bug as relates to spaces screwing up
proportional notation under the circumstance that a skip *appears as
the first item in a measure*. I'll crosspost to the bug list.

Hi Orm,

So, in the meantime you can use replace skips with transparent rests
as a workaround to the measure-initial skip bug. The last two measures
in 5/8 are uneven with skips (in the first score) and completely even
with transparent rests (in the second score).

%%% BEGIN %%%

\version "2.11.0"

\layout {
  ragged-right = ##t
}

\score {
  \new Staff \with {
     \remove Separating_line_group_engraver
  } {
      \relative {
          \override Score.SpacingSpanner #'uniform-stretching = ##t
          \set Score.proportionalNotationDuration = #(ly:make-moment 8 50)
          \time 4/4 r1
          \time 3/8 r4.
          \time 5/4 r1 r4
          \time 5/16 r4 r16
          \time 5/8 s2 s8 % Uneven
          \time 5/8 r2 r8   % Uneven
      }
  }
}

\score {
  \new Staff \with {
     \remove Separating_line_group_engraver
  } {
      \relative c' {
          \override Score.SpacingSpanner #'uniform-stretching = ##t
          \set Score.proportionalNotationDuration = #(ly:make-moment 8 50)
          \time 4/4 r1
          \time 3/8 r4.
          \time 5/4 r1 r4
          \time 5/16 r4 r16
          \override Rest #'transparent = ##t
          \time 5/8 r2 r8
          \revert Rest #'transparent
          \time 5/8 r2 r8
      }
  }
}

%%% END %%%

So the transparent rest workaround should help until we can fix the
measure-initial skip bug.

What's odd, though, is how short that first measure in 4/4 is ... can
we get a minimal (one- or two-measure) example that shows that overly
shortened first measure?


--
Trevor Bača
address@hidden

Attachment: transparent-rests.png
Description: PNG image


reply via email to

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