lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Best practices for Da Capo/Dal Segno/al Fine/etc.


From: Joel C. Salomon
Subject: Re: Best practices for Da Capo/Dal Segno/al Fine/etc.
Date: Thu, 22 Feb 2018 02:42:19 -0500
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

On 2018-02-20 5:21 PM, I asked:
> … what is the current (2.19) best practice for typesetting the Da
> Capo/‌Dal Segno/‌al Fine/‌etc. repeat marks?

I’m having some trouble extracting a readable-but-useful minimal example
from my code, but this excerpt might help the next fellow:

\include "poly-mark-engraver.ly"        % from
<http://lsr.di.unimi.it/LSR/Item?id=976>
\tagGroup #'(midi-only score-only)

…
lowerVI = {
  \clef bass
  \globalVI

  % \repeat coda 2 {
  \lowerVIabac
  % }                   % \repeat coda

  % \alternative {
  %   {                 % \repeat coda
  \lowerVId
  %   }
  %   {}  % }                   % \repeat coda

  % Manual repeat unfold for MIDI
  \tag #'midi-only \lowerVIabac
}

dynamicsVI = {
  <>\p
  % \repeat coda 2 {
  #(skip-of-length upperVIabac)
  % }                   % \repeat coda

  \polyMark #'DCFine \markup \italic "Fine"
  \polyMark #'Fermata \markup \fermata
  \bar "|."

  % \alternative {
  %   {                 % \repeat coda
  #(skip-of-length upperVId)
  %   }
  %   {}
  % }                   % \repeat coda

  % Manual repeat unfold for MIDI
  \tag #'midi-only #(skip-of-length upperVIabac)

  % Manual mark for \repeat coda
  \polyMark #'DCFine \markup \italic "D.C. al Fine"
  \bar "||"
}

…

scoreVI = \score {
  \keepWithTag #'score-only
  <<
    \new Staff = "upper" \upperVI
    \new Dynamics = "dynamics" \dynamicsVI
    \new Staff = "lower" \lowerVI
  >>
  \layout {
    \context { \Score
      polyMarkOptions = #`((DCFine
                             (direction        . ,DOWN)
                             (self-alignment-X . 1.0)
                             (break-visibility . ,begin-of-line-invisible))
                           (Fermata
                             (direction        . ,UP)
                             (self-alignment-X . 0.0)
                             (break-visibility . ,begin-of-line-invisible)))
    }
  }
}

midiVI = \score {
  \new PianoStaff
  \keepWithTag #'midi-only
  <<
    \new Staff = "upper" <<
      \unfoldRepeats \upperVI
      \dynamicsVI
    >>
    \new Staff = "lower" <<
      \unfoldRepeats \lowerVI
      \dynamicsVI
    >>
  >>
  \midi {}
}


There’s nothing here that isn’t already in
<http://lsr.di.unimi.it/LSR/Item?id=976>, and a good deal is missing
here which that snippet includes, but I think it does illustrate this
particular usage without invoking the full power of \polyMark.

––Joel C. Salomon



reply via email to

[Prev in Thread] Current Thread [Next in Thread]