Am 27.12.2011 14:45, schrieb Marc Hohl:
Hello list,
in another thread, my problems with command line arguments were
solved (or workarounds provided), but now I am stuck with
another but similar problem:
I want to transpose some music and tell lilypond the 'to' pitch
in the command line:
lilypond -dpitch="e'" myfile.ly
where myfile.ly is
\version "2.15.24"
optionalTranspose = #(define-music-function (parser location music)
(ly:music?)
(let ((mypitch (ly:get-option 'pitch)))
#{ \transpose c $mypitch $music #}))
melody = { c'4 d' e'2 }
\score {
\new Staff {
\new Voice { \optionalTranspose \melody }
}
}
Lilypond refuses to see mypitch as a pitch. I tried to convert it
with (ly:music-property mypitch 'pitch), but lilypond soesn't take
the command line argument as a music expression, too.
Is there any chance to convince lilypond to accept a pitch on
the command line?
To answer my own request: I got around the problem by using
three command line options:octave, note and alteration.
optionalTranspose = #(define-music-function (parser location music)
(ly:music?)
(let* ((octave (or (ly:get-option 'octave) -1))
(note (or (ly:get-option 'note) 0))
(alteration (or (ly:get-option 'alteration) 0))
(to (ly:make-pitch octave note alteration)))
#{ \transpose c $to $music #}))
music = {
\key c \major
c'4 d' e'2
}
\score {
\new Staff {
\new Voice {
\optionalTranspose { \music }
}
}
}
This works with
lilypond -doctave=-1 test.ly
lilypond -dnote=1 -dalteration=-1/2 test.ly
and so on.
Regards,
Marc
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user