Richard Shann wrote:
> My problem is that the syntax for ly:make-pitch is
> difficult to generate, but I can't seem to find anything
> to convert a string like "cis'" to an ly:pitch? datum.
Richard,
I'm having trouble visualizing what you're trying to
accomplish, couldn't you just do this?
**********************
myPitch = cis'
myfunc =
#(define-music-function
(parser location arg)
(ly:music?)
#{ \transpose c' #myPitch #arg #})
{
c' d' e'
\myfunc { c' d' e' }
}
**********************
Otherwise, if for some reason you really need to convert
a string to a pitch object, here's one way to do it:
**********************
stringToPitch =
#(define-scheme-function
(parser location str)
(string?)
(let* ((clone (ly:parser-clone parser '() location))
(expr (ly:parse-string-expression clone str)))
(ly:make-pitch (ly:pitch-octave expr)
(ly:pitch-notename expr)
(ly:pitch-alteration expr))))
myPitch = \stringToPitch #"cis'"
myfunc =
#(define-music-function
(parser location arg)
(ly:music?)
#{ \transpose c' #myPitch #arg #})
{
c' d' e'
\myfunc { c' d' e' }
}
**********************
Hope this helps,
Mark
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user