lilypond-user
[Top][All Lists]
Advanced

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

Re: stacking whole notes of different size


From: Thomas Morley
Subject: Re: stacking whole notes of different size
Date: Wed, 2 Sep 2015 00:16:49 +0200

2015-09-01 7:21 GMT+02:00 Marc Hohl <address@hidden>:
> Am 31.08.2015 um 19:09 schrieb Stephen MacNeil:
>>
>> \override NoteColumn.force-hshift = #.65 works but you would have to
>> create a new voice i believe.
>
>
> Yup, creating a new Voice and applying force-hshift works, but the last
> tie looks quite different than the other ones:
>
> a2. fis4 | a1 |
>   <<
>      { \voiceTwo g1 | fis | e | d~ | 1~ | 1~ | 2  }
>      \new Voice \with { fontSize = #-3 } {
>           \override NoteColumn.force-hshift = #0.15
>           \voiceOne b'1 | h! | cis | d~ | 1~ | 1~ | 2
>      }
>   >>
>
> see attached picture.
>
> Marc
>>
>>
>>
>> Stephen
>>
>
>
> _______________________________________________
> lilypond-user mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>

Hi Marc,

I wrote some test

m =
\relative c' {
  c1~ 1~ 2 s2
  \bar "||"
  c1~ 1~ 1
  \bar "||"
  c2~ 2~ 2~ 2~ 2~ 2
  \bar "||"
}

\transpose c c  \m
\transpose c d  \m
\transpose c e  \m
\transpose c f  \m
\transpose c g  \m
\transpose c a  \m
\transpose c b  \m
\transpose c c' \m
\transpose c d' \m
\transpose c e' \m
\transpose c f' \m
\transpose c g' \m

looks like the Ties are different only, if a whole note and one of a
different value are involved _and_ if they are on a staff-line.
With \voiceOne/Two Ties at the bottom and top-lines are affected as well.
The test-code above does not contain this, you may want to play around
with voiceXxx, though.
png attached.

I've found the `intra-space-threshold' form `Tie.details' can be
tweaked to improve the situation:


\version "2.19.25"

#(define (tie-tweak intra-space-threshold-value)
"
 Set @code{intra-space-threshold} of @code{tie}'s @code{details}-property to
 @var{intra-space-threshold-value}.
 Apply it only if the tied note is on a line.
 Limitation: works for default five-line-staff only.
"
  (lambda (grob)
    (let* ((right-bound (ly:spanner-bound grob RIGHT))
           (staff-pos (ly:grob-property right-bound 'staff-position)))
    ;; apply it only if the right-bound is on a line!!
    (if (member staff-pos '(-4 -2 0 2 4)) ;; works only for default-staff-symbol
        (begin
          ;; for testing, set color:
          ;(ly:grob-set-property! right-bound 'color red)
          (ly:grob-set-nested-property! grob
            '(details intra-space-threshold)
            intra-space-threshold-value))) ;; default 1.25
        )))

%%%%%%%%%%%%%%%%
%% TEST-EXAMPLES
%%%%%%%%%%%%%%%%

m =
\relative c' {
  c1~ 1~ 2 s2
  \bar "||"
  c1~ 1~ 1
  \bar "||"
  c2~ 2~ 2~ 2~ 2~ 2
  \bar "||"
}

\layout { \override Tie.after-line-breaking = #(tie-tweak 0.25) }

\transpose c c  \m
\transpose c d  \m
\transpose c e  \m
\transpose c f  \m
\transpose c g  \m
\transpose c a  \m
\transpose c b  \m
\transpose c c' \m
\transpose c d' \m
\transpose c e' \m
\transpose c f' \m
\transpose c g' \m

%%%%%%%%%%%%%%%%
%% Your EXAMPLE
%%%%%%%%%%%%%%%%

\relative c'' {
  a2. fis4 | a1 |
  <<
     { \voiceTwo g1 | fis | e | d~ | 1~ | 1~ | 2  }
     \new Voice
     \with {
       fontSize = #-3
       \override Tie.after-line-breaking = #(tie-tweak 10.25)
     }
     {
          \override NoteColumn.force-hshift = #0.15
          \voiceOne bes'1 | b! | cis | d~ | 1~ | 1~ | 2
     }
  >>
}



I hope it helps a bit, although I've found no convincing general value.
png with your example is attached as well.


Cheers,
 Harm

Attachment: different-ties-test.png
Description: PNG image

Attachment: different-ties-example-marc.png
Description: PNG image


reply via email to

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