lilypond-user
[Top][All Lists]
Advanced

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

Re: Three voices plus tie in RH - notation best practice?


From: Jan-Peter Voigt
Subject: Re: Three voices plus tie in RH - notation best practice?
Date: Wed, 19 Oct 2011 14:26:13 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.23) Gecko/20110921 Lightning/1.0b2 Thunderbird/3.1.15

Hello James,

this is a question, that really can take hours, nights or whatever ...

Elaine Gould says, Ties shall almost touch the note head and they shall not fall onto a stave-line (pp. 60) Here are two techniques I usally use to solve such problems. First it is a scheme-destillation to shape ties (and slurs) with 8 numbers (4 times x y offset), wich moves the control points. The other one is an override of the staff-position. The first technique I only use for more difficult pieces: I shortend the a-tie, pushed it downwards and flattened it a little bit. Most times an override of the staff-position does it: I placed the cis-tie so that it doesn't lies on the stave-line and nearer to the note-heads. For this shape-thing I sometimes use a shortcut that only takes one number to move the two middle-control-points horizontal.

HTH.
Cheers,
Jan-Peter

--snip--
\version "2.14.2"
\include "english.ly"

%%% take care ... some scheme is on the way ...
#(define ((alter-tie offsets) grob)
        ;; get default control-points
        (let ((coords (ly:tie::calc-control-points grob))
              (n 0))
             ;; add offsets to default coordinates
             (define loop (lambda (n)
                       (set-car! (list-ref coords n)
                                 (+ (list-ref offsets (* 2 n))
                                    (car (list-ref coords n))))
                       (set-cdr! (list-ref coords n)
                                 (+ (list-ref offsets (1+ (* 2 n)))
                                    (cdr (list-ref coords n))))
                       (if (< n 3)
                           (loop (1+ n)))))
             ;; return altered coordinates
             (loop n)
             coords))

%%% shape slurs, phrasing slurs and ties
shapeSlur = #(define-music-function (parser location offsets) (list?)
  #{
    \once \override Slur #'control-points = #(alter-curve $offsets)
#})
shapePhSlur = #(define-music-function (parser location offsets) (list?)
  #{
    \once \override PhrasingSlur #'control-points = #(alter-curve $offsets)
#})
shapeTie = #(define-music-function (parser location offsets) (list?)
  #{
    \once \override Tie #'control-points = #(alter-tie $offsets)
#})

%%% OK, back to normal

\score {
  \new PianoStaff <<
    \new Staff {
      \key d \major
      \numericTimeSignature
<<
        \new Voice \relative c'' {
          \voiceOne
%%% try staff-position
          r2 r8 \once \override Tie #'staff-position = #1.8 cs?4.~ cs2
        }
        \new Voice \relative c'' {
          \voiceTwo
a16 fs e fs \repeat tremolo 2 { e fs } \repeat tremolo 2 { e fs } a16 fs e fs
          \repeat tremolo 4 { e fs }
        }
        \new Voice \relative c'' {
          \voiceThree
%%% try to shape the tie a little bit
          a2. \shapeTie #'(0 -0.5 0 -0.7 -1 -0.7 -1.5 -0.5) a4^~ a2
        }
>>
      r2
    }
    \new Staff {
      \key d \major \clef bass
      \numericTimeSignature
<<
        \new Voice \relative c' {
          \voiceOne
g16 b c b \repeat tremolo 2 { c b } \repeat tremolo 2 { c b } g16 b c b
          \repeat tremolo 4 { c b }
        }
        \new Voice \relative c' {
          \voiceTwo
          g2.\sustainOn g4~\sustainOn g2
        }
>>
      r2\sustainOff
    }
>>
}
--snip--


Am 19.10.2011 10:27, schrieb James Harkins:
Hi, a "notational correctness" question rather than a lilypond technical 
question, hope that's okay.

A student brought in some work today, some of which calls for three voices in 
the right hand of a PianoStaff. Minus expressive marks, the lilypond example 
below gets the point across, but I wonder if there's a better way? The 
collision at the beginning of bar 2, between the a4~ a2 tie and the c# in voice 
1, seems inevitable but it isn't pretty. (\tieDown looks even worse.)

So, those of you with a notation reference or two in your library, how would 
you handle this?

Thanks!
James

PS Sorry for the non-tiny example. In this case, the voicing is complex enough 
that I wanted to be explicit about all the new voices.


\version "2.14.2"
\include "english.ly"

\score {
   \new PianoStaff<<
     \new Staff {
       \key d \major
       \numericTimeSignature
       <<
        \new Voice \relative c'' {
          \voiceOne
          r2 r8 cs?4.~ cs2
        }
        \new Voice \relative c'' {
          \voiceTwo
          a16 fs e fs \repeat tremolo 2 { e fs } \repeat tremolo 2 { e fs } a16 
fs e fs
          \repeat tremolo 4 { e fs }
        }
        \new Voice \relative c'' {
          \voiceThree
          a2. a4~ a2
        }
       >>
       r2
     }
     \new Staff {
       \key d \major \clef bass
       \numericTimeSignature
       <<
        \new Voice \relative c' {
          \voiceOne
          g16 b c b \repeat tremolo 2 { c b } \repeat tremolo 2 { c b } g16 b c 
b
          \repeat tremolo 4 { c b }
        }
        \new Voice \relative c' {
          \voiceTwo
          g2.\sustainOn g4~\sustainOn g2
        }
       >>
       r2\sustainOff
     }
   >>
}


--
James Harkins /// dewdrop world
address@hidden
http://www.dewdrop-world.net

"Come said the Muse,
Sing me a song no poet has yet chanted,
Sing me the universal."  -- Whitman

blog: http://www.dewdrop-world.net/words
audio clips: http://www.dewdrop-world.net/audio
more audio: http://soundcloud.com/dewdrop_world/tracks

_______________________________________________
lilypond-user mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user





reply via email to

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