On Sun, 2024-01-21 at 13:31 +0100, Andreas Schneider wrote:
With my incipit script I have the problem that lyrics are not
displayed.
Looking into the lilypond code, I notice that the problem is that the
incipit is inserted before the opening brace in the voice and not
after.
This can be seen in attached score, in which the incipit is inserted
directly after \new Voice = "MvmntIVoiceI" while the correct position
would be after the opening brace
where is that (in terms of the LilyPond syntax). That is, have you
worked out the LilyPond syntax you need to get what you want. You have
to do this before you can hope to write a script that generates it (of
course).
I used the Customize Score Layout option in the LilyPond View
(continuous typesetting off, click on the "Score Layout Options"
button) and the moved the incipit to after
\new ChoirStaff <<
and this created an extra staff. You can ask on lilypond-user@gnu.org
if the docs don't help.
HTH
Richard
ps I haven't had a chance to investigate your script yet, I'll try to
get to it as you said there was some undesirably hard coded value in
it.
that now follows the incipit. What do I
need to change in the script to insert the incipit at the correct
place?
You find the script below.
Thanks in advance
Andreas
;;;StaffIncipit
(let ((tag "StaffIncipit") (current "") (lengthInput "15")
(incipitLength 15) (indent "20.0") (indentLength 20) )
(set! current (d-DirectiveGet-voice-data tag))
(if (not (string? current)) (set! current ""))
(set! current (d-GetUserInput (_ "Incipit") (_ "Give incipit for
current
staff:") current))
(if (string? current)
(begin
(set! lengthInput (d-GetUserInput (_ "Incipit") (_ "Give incipit
length for current staff:") lengthInput))
(if (and (string? indent) (string->number lengthInput))
(set! incipitLength (string->number lengthInput)))
(d-DirectivePut-voice-data tag current)
(d-DirectivePut-voice-prefix tag (string-append "\\incipit { "
current " }"))
(d-DirectivePut-layout-postfix tag (string-append " incipit-
width
= " (number->string incipitLength) "\n"))
(set! indent (d-DirectiveGet-score-data "ScoreIndent"))
(if (and (string? indent) (string->number indent))
(begin
(set! indentLength (string->number indent))
(if (> incipitLength indentLength)
(d-ScoreIndent (+ incipitLength indentLength))))))))