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-u...@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))))))))