[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