Am 06.03.2015 14:35, schrieb David Nalesnik:
On Fri, Mar 6, 2015 at 7:24 AM, David Nalesnik
<[email protected] <mailto:[email protected]>> wrote:
\version "2.19.16"
#(set! default-script-alist
(append default-script-alist
(list
`("weakbeat"
. (
(script-stencil . (feta . ("weakbeat" . "weakbeat")))
; any other properties
(toward-stem-shift-in-column . 0.0)
(padding . 0.20)
(avoid-slur . around)
(direction . ,UP))))))
weakbeat = #(make-articulation "weakbeat")
{ c\weakbeat }
\layout {
\context {
\Score
scriptDefinitions = #default-script-alist
}
}
%%%
Here's my conclusion:
When using append, we are setting default-script-alist to a list which
doesn't necessarily share structure with the original
default-script-alist. scriptDefinitions is bound to the original
default-script-alist unless you reassign it to the concatenated list.
append! destructively modifies the list that scriptDefinitions is
bound to, so there is no need for the set in the context block.
There is not even the need for the set! in the original definition. That is:
#(append! default-script-alist
(list
`("weakbeat"
. ((script-stencil . (feta . ("weakbeat" . "weakbeat")))
; any other properties
(toward-stem-shift-in-column . 0.0)
...
works already.
Hm, I took this idiom from assoc-set! where the manual says it is not
guaranteed that the original alist is actually modified, so it suggest
#(set! an-alist
(assoc-set! an-alist
...
In any case, it works now, and when including the file that loads the
new font there are some new articulations defined automatically :-)
So this is possible:
\include "arnold.ily"
{
c ^\weakbeat
}
Best
Urs
--David
--
Urs Liska
[email protected]
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user