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:55:50 +0100

2016-11-05 10:29 GMT+01:00 Thomas Morley <address@hidden>:
> 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:

Forgot to add:
Doesn't work properly for in-staff tenuto: Y-position seems to look
only on the parent, does not take the staff-lines into account.

>
> \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]