On Sun, 2024-01-21 at 14:13 +0100, Andreas Schneider wrote: > Yes, that is what I tried to describe. The correct syntax would be > > \new Voice = "MvmntIVoiceI" { \incipit { \clef "mensural-c1" \key g > \dorian r2 g'8 a' bes' c'' } > \clef treble \key d \minor \time 2/2 \MvmntIVoiceI } > > instead of > > \new Voice = "MvmntIVoiceI" \incipit { \clef "mensural-c1" \key g > \dorian r2 g'8 a' bes' c'' } { > \clef treble \key d \minor \time 2/2 \MvmntIVoiceI }
In the samples directory is a score AllDenemoDirectiveOutputs.denemo and loading this and looking in the LilyPond view you can see the directive needed to put text there: [..................] %Start of Staff \new Staff = "Part 1" %{staff prefix%} << %{staff postfix%} \new Voice = "MvmntIVoiceI" %{voice prefix%} { %{voice postfix%} %{clef prefix%} \clef treble %{clef postfix%} \key c \major \time 4/4 \MvmntIVoiceI } %End of voice >> %End of Staff [.......] The one you want is marked %{voice postfix%} the one you have is marked %{voice prefix%} so all you need to do is replace prefix with postfix in the procedure call (d-DirectivePut-voice-prefix tag (string-append "\\incipit { " current " }")) and all should be well. Richard > > that is the incipit is after the opening brace of the voice instead > before. > > Andreas > > > On 21.01.24 13:58, Richard Shann wrote: > > 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)))))))) > > > >