Hi Pierre,

of course. As I mentioned in the just sent mail to Markus, repeatTie is kind of a misuse, but repeatSlur doesn't exist. I most times use \shape or some derivate like in the snippet from the list, I found in my archive.

Cheers,
Jan-Peter

Am 04.03.2015 um 16:09 schrieb Pierre Perol-Schneider:
Hi Jan-Peter,

I know that this is a standard solution ; personnally, I'm not a big fan simply because this tie looks like... a tie ;)
So I'd suggest two options :
1. With \repeatTie plus a vertical tweak
2. With a hidden grace note.

So here it goes:

\version "2.18.2"

%% option 1:
{
  % I want a slur from the b to the c in 1) and to the a in 2)
  \repeat volta 2 { b'1 ( }
  \alternative
  {
    { c''1 ) }
    {
      a'1
      -\tweak Y-offset #0.2 % <= for a better 'slur' look.
      ^\repeatTie

      %% Description:
      \tweak self-alignment-X #RIGHT
      \mark\markup
        \with-color #red
        \fontsize #-2 {
          Alternative slur with
          \bold\typewriter\with-color #blue  "\\repeatTie"
          :
        }
    }
  }
}

%% Option 2
{
  % I want a slur from the b to the c in 1) and to the a in 2)
  \repeat volta 2 { b'1 ( }
  \alternative
  {
    { c''1 ) }
    {
      \acciaccatura {          % <= slured grace note
        \once\slurUp           % slur shows 'up'
        \once\hideNotes b'1     % <= hide starting note
      }
      a'1

      %% Description:
      \tweak self-alignment-X #RIGHT
      \mark\markup
        \with-color #red
        \fontsize #-2 { Here with a hidden grace note: }
    }
  }
}

Cheers,
Pierre

2015-03-04 15:04 GMT+01:00 Jan-Peter Voigt <jp.vo...@gmx.de <mailto:jp.vo...@gmx.de>>:

    Sorry ... I was too fast ;)

    I meant
    { a'1\repeatTie }


    Am 04.03.2015 um 15:01 schrieb Jan-Peter Voigt:

        Hi Markus,

        you can use
        { a'1\repeatSlur }

        HTH
        Jan-Peter


        Am 04.03.2015 um 14:58 schrieb lyuser.theg...@spamgourmet.com
        <mailto:lyuser.theg...@spamgourmet.com>:

            Hello,

            Being quite a rookie in music notation and lilypond in
            general, I have a
            problem:

            \version "2.18.2"

            {
               % I want a slur from the b to the c in 1) and to the a
            in 2)
               \repeat volta 2 { b'1 ( }
               \alternative
               {
                 { c''1 ) }
                 { a'1  ) }
               }
            }

            This gives me a warning:

            slur_to_next_alternative.ly:9
            <http://slur_to_next_alternative.ly:9>:12: warning: cannot
            end slur
                 { a'1
                        ) }

            What I would like to have is a slur - indication in 2)
            like I have it in the
            sheet that I'm trying to set in lilypond.

            Oh, and the final result will be part of a choir rehearsal
            - maybe that's
            important for the solution?

            Thanks for your help,



        _______________________________________________
        lilypond-user mailing list
        lilypond-user@gnu.org <mailto:lilypond-user@gnu.org>
        https://lists.gnu.org/mailman/listinfo/lilypond-user



    _______________________________________________
    lilypond-user mailing list
    lilypond-user@gnu.org <mailto:lilypond-user@gnu.org>
    https://lists.gnu.org/mailman/listinfo/lilypond-user



%%%%%%%%%%%%%%%%%%%%%%%%

\version "2.15.40"

shapeTieColumn =
#(define-music-function (parser location all-offsets) (list?)
   #{
     \once \override TieColumn #'after-line-breaking =
     #(lambda (grob)
        (let ((ties (ly:grob-array->list (ly:grob-object grob 'ties))))
          (for-each
           (lambda (tie offsets-for-broken-pair)
             (let* ((orig (ly:grob-original tie))
                    (siblings (ly:spanner-broken-into orig)))
               (for-each
                (lambda (piece offsets-for-piece)
                  (if (pair? offsets-for-piece)
                      (set! (ly:grob-property piece 'control-points)
                            (map
                             (lambda (x y) (coord-translate x y))
                             (ly:tie::calc-control-points piece)
                             offsets-for-piece))
                      ))
                (if (null? siblings)
                    (list orig)
                    siblings)
                offsets-for-broken-pair)))
           ties all-offsets)))
   #})
shapeLaissezVibrerTieColumn =
#(define-music-function (parser location all-offsets) (list?)
   #{
     \once \override LaissezVibrerTieColumn #'before-line-breaking =
     #(lambda (grob)
        (let ((ties (ly:grob-array->list (ly:grob-object grob 'ties))))
          (for-each
           (lambda (tie offsets-for-piece)
                  (if (pair? offsets-for-piece)
                      (set! (ly:grob-property tie 'control-points)
                            (map
                             (lambda (x y) (coord-translate x y))
                             (ly:tie::calc-control-points tie)
                             offsets-for-piece))
                      ))
           ties all-offsets)
          #t
          ))
   #})
shapeRepeatTieColumn =
#(define-music-function (parser location all-offsets) (list?)
   #{
     \once \override RepeatTieColumn #'before-line-breaking =
     #(lambda (grob)
        (let ((ties (ly:grob-array->list (ly:grob-object grob 'ties))))
          (for-each
           (lambda (tie offsets-for-piece)
                  (if (pair? offsets-for-piece)
                      (set! (ly:grob-property tie 'control-points)
                            (map
                             (lambda (x y) (coord-translate x y))
                             (ly:tie::calc-control-points tie)
                             offsets-for-piece))
                      ))
           ties all-offsets)
          #t
          ))
   #})

confShapeTieColumn =
#(define-music-function (parser location conf all-offsets)(list? list?)
   (let ((alb-func (lambda (grob)
                     (let ((ties (ly:grob-array->list (ly:grob-object grob 'ties))))
                       (for-each
                        (lambda (tie offsets-for-broken-pair)
                          (let* ((orig (ly:grob-original tie))
                                 (siblings (ly:spanner-broken-into orig)))
                            (for-each
                             (lambda (piece offsets-for-piece)
                               (if (pair? offsets-for-piece)
                                   (set! (ly:grob-property piece 'control-points)
                                         (map
                                          (lambda (x y) (coord-translate x y))
                                          (ly:tie::calc-control-points piece)
                                          offsets-for-piece))
                                   ))
                             (if (null? siblings)
                                 (list orig)
                                 siblings)
                             offsets-for-broken-pair)))
                        ties all-offsets)))
           ))
     (make-music 'SequentialMusic
       'elements (list
                  (make-music 'ContextSpeccedMusic
                    'context-type 'Bottom
                    'element (make-music 'OverrideProperty
                               'once #t 'pop-first #t
                               'grob-property-path '(tie-configuration)
                               'grob-value conf 'symbol 'TieColumn))
                  (make-music 'ContextSpeccedMusic
                    'context-type 'Bottom
                    'element (make-music 'OverrideProperty
                               'once #t 'pop-first #t
                               'grob-property-path '(after-line-breaking)
                               'grob-value alb-func 'symbol 'TieColumn))
                  ))
     ))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{
  <d' e' g' a'>1 ~
  \confShapeTieColumn 
  #'( (-6 . 1) (-4 . 1) (-2 . 1) (0 . 1) )
  #'(
     ( ((0 . 0)(0 . 0)(0 . 0)(0 . 0)) )
     )
  q
  q ~
  \shapeTieColumn #'(
                     ( ((0 . 0) (0 . -1) (0 . -1) (0 . 0)) ) ; (bottom) first half only
                     () ; or ( () () )  =  skip
                     ( ((0 . 0) (-0.25 . 0.5) (0.25 . 0.5) (0 . 0))
                       ((0 . 0) (-0.25 . 0.5) (0.25 . 0.5) (0 . 0)) ) ; both halves
                     ( () ((0 . 0) (0 . 1) (0 . 1) (0 . 0)) ) ; (top) second half only
                     )
  \break
  q
  
  \shapeLaissezVibrerTieColumn #'(
                                     ((0 . 0)(2 . 0)(4 . 0)(6 . 0))
                                     ((0 . 0)(2 . 0)(4 . 0)(6 . 0))
                                     ((0 . 0)(2 . 0)(4 . 0)(6 . 0))
                                     ((0 . 0)(2 . 0)(4 . 0)(6 . 0))
                                     )
  q\laissezVibrer
  \shapeRepeatTieColumn #'(
                                     ((-6 . 0)(-4 . 0)(-2 . 0)(0 . 0))
                                     ((-6 . 0)(-4 . 0)(-2 . 0)(0 . 0))
                                     ((-6 . 0)(-4 . 0)(-2 . 0)(0 . 0))
                                     ((-6 . 0)(-4 . 0)(-2 . 0)(0 . 0))
                                     )
  q\repeatTie
}

\layout {
  ragged-right = ##t
}
%%%%%%%%%%%%%%%%%%%%%%%

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

Reply via email to