Urs Liska <[email protected]> writes:
> I'm interested in
> - general thoughts on the signature design (as I still lack experience
> with Scheme functions)
> % Plain signature of the function draft
> annotate =
> #(define-void-function (parser location grob type properties annotation)
> (string? string? list? string?)
> )
>
> \relative ges, {
> \key ges \major
> \clef bass
> \time 3/4
>
> \repeat tremolo 24 ges32-> -\markup { \dynamic "sfz" } \p \< |
> \annotate Script "critremark"
> #'(("voice" . "vc1")
> ("source" . "Ms. 2")
> ("author" . "Urs Liska")
> ("date" . "2013-06-06"))
> "Tenuto added as in Vc. 2"
If your first argument is something like Script, you might want to make
it of type symbol? instead. I actually have a syntax sanitizing patch
in limbo where unquoted words are not accepted as strings. It is not
going to make it into 2.18, but I don't promise I won't push it at some
later point of time.
It is probably worth considering to make properties of type context-mod?
(potentially optional), then you can write the argument as
\with {
voice = "vc1"
source = "Ms. 2"
author = "Urs Liska"
date = "2013-06-06"
}
Of course, you might get unsets and overrides and reverts slipped in
which you would want to weed out again, but list? is also prone to
permitting a lot that you don't want to see.
--
David Kastrup
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user