lilypond-user
[Top][All Lists]
Advanced

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

Re: Two similar articulations on one note in one voice


From: Thomas Morley
Subject: Re: Two similar articulations on one note in one voice
Date: Sat, 5 Nov 2016 10:29:53 +0100

2016-11-05 2:50 GMT+01:00 Andrew Bernard <address@hidden>:
> Can one add two tenutos, say, or two of any articulation on a note, one
> above and one below? For example
>
>
>
> {
>
> c’’^-_-
>
> }
>
>
>
> That can be done if there are two different articulations involved, but when
> they are the same, the second gets ignored. I understand the musical
> explanation for such behaviour, but the composer I set scores for often has
> two marks on a note, for emphasis, which strikes me as perfectly reasonable.
>
>
>
> Andrew


Hi Andrew,

a possible workaround is putting the note in an event-chord, then set
the tenuto for the note and for the chord:

{ <c''^->_- }

Other methods are thinkable, but have more disadvantages:

(1) use << \\ >>

{ << \oneVoice c''^- \\ s_- >> }
With the need to tweak the Y-position of the tenuto assigened to the SkipEvent

(2) redefine tenuto, giving it another name. Involves some scheme coding:

\version "2.19.49"

%% work with a copy
#(define my-script-alist default-script-alist)

#(define my-tenuto-stil
  (lambda (grob)
    (ly:font-get-glyph (ly:grob-default-font grob) "scripts.tenuto")))

#(define my-tenuto-props-list
  `("my-tenuto"
    . (
       (avoid-slur . inside)
       (padding . 0.20)
       (side-relative-direction . ,DOWN)
       (stencil . ,my-tenuto-stil)
       (direction . ,DOWN))))

%% A macro setting the lists from above in the copy of `default-script-alist´
#(define-macro (set-my-script-alist! ls-1 ls-2)
"Creates a new key-value-pair, taken from ls-2, in ls-1"
 `(set! ,ls-1
    (if (and (pair? ,ls-2) (pair? (cadr ,ls-2)))
        (assoc-set! ,ls-1 (car ,ls-2) (cdr ,ls-2))
        (begin
          (ly:warning (_"Unsuitable list\n\t~a \n\tdetected, ignoring. ") ,ls-2)
          ,ls-1))))

#(set-my-script-alist! my-script-alist my-tenuto-props-list)

\layout {
    \context {
        \Score
        scriptDefinitions = #my-script-alist
    }
}

my-tenuto = #(make-articulation "my-tenuto")


{
  c''^\my-tenuto_-
}


HTH,
  Harm



reply via email to

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