Unmetered music: An alternative to \cadenzaOn: Difference between revisions

Created page with "If your music is unmetered, you might use <code>\cadenzaOn</code>. But <code>\cadenzaOn</code> will disable automatic measure demarcation, and when it is applied, the <code>\bar</code> command will ''not'' start a new measure. <u>If you want the features that come with measure demarcation</u> (e.g., resetting '''accidentals''', automatic '''bar numbering''', automatic '''beaming'''), the following approach may be useful. It combines <code>\omit TimeSignature</code> with..."
 
I changed the music example.
 
(One intermediate revision by the same user not shown)
Line 6: Line 6:


See also [https://lilypond.org/doc/v2.24/Documentation/notation/displaying-rhythms#unmetered-music “Unmetered music” in the Notation Reference] and the snippet [[Free meter – increasing the bar number wherever you want]].
See also [https://lilypond.org/doc/v2.24/Documentation/notation/displaying-rhythms#unmetered-music “Unmetered music” in the Notation Reference] and the snippet [[Free meter – increasing the bar number wherever you want]].
This approach is useful for opera recitative, as demonstrated in the following example from ''Patience'' by Gilbert & Sullivan.


<lilypond version="2.24">
<lilypond version="2.24">
\header {
\header {
   title = "Example from an Anglican chant"
   title = "Example from a recitative"
   subtitle = "Double chant in D major (second half)"
   subtitle = \markup \concat {
   subsubtitle = "Composed by John Soaper (1743–1794)"
    "“Still brooding on their mad infatuation”"
    " from " \italic Patience
  }
   subsubtitle = "Source: IMSLP #251595"
  poet = Gilbert
  composer = Sullivan
}
}


Line 17: Line 24:
   \context {
   \context {
     \Staff
     \Staff
     \omit TimeSignature
     % If you enable the following line,
    % you will see that \measures works
    % to create measure boundaries
    % for automatic accidentals:
    % \accidentalStyle dodecaphonic-first
   }
   }
   \context {
   \context {
     \ChoirStaff
     \Score
     \accidentalStyle choral-cautionary
    forbidBreakBetweenBarLines = ##f
     \override BarNumber.break-visibility = ##(#f #t #t)
   }
   }
}
}


%% Define a variable that will go in a Devnull context:  
%% Define a variable that will go in a Devnull context:
measures = {
measures = {
   \time 8/4 s1*2 \bar "||"
  % The source has a common time signature. To reproduce it:
   \time 13/4 s4*13 \bar "|."
  % Have LilyPond print a text grob instead of a usual time signature:
   % Continue adding time signatures, spacer rests,  
  \once \override Score.TimeSignature.stencil = #ly:text-interface::print
   % and (if desired) custom bar lines  
  % Specify that the text grob should be the symbol for common time:
   % for each subsequent “measure” of your music:  
  \once \override Score.TimeSignature.text = \markup \musicglyph "timesig.C44"
   \time 17/8 s8*17
 
  % measure 2:
  \omit Score.TimeSignature
   \time 13/8 s8*13
 
  % measure 3:
  \time 4/4 s4*4
 
  % measure 4:
  \time 8/4 s4*8
 
  % measures 5 and 6:
  \time 4/4
 
   % Continue adding time signatures, spacer rests,
   % and (if desired) custom bar lines
   % for each subsequent “measure” of your music:
   % \time XX/4 s4*XX
   % \time XX/4 s4*XX
}
}


global = {
global = {
   \key d \major
   \key f \major
   % Notice that if you enable \cadenzaOn,  
   % Notice that if you enable \cadenzaOn,
   % you will lose the features of  
   % you will lose the features of
   % automatic measure demarcation:  
   % automatic measure demarcation:
   % \cadenzaOn
   % \cadenzaOn
}
}
Line 45: Line 75:
soprano = \relative c'' {
soprano = \relative c'' {
   \global
   \global
   a2 a4 gis4 fis1 |  
   \autoBeamOff
   % Barchecks with | are helpful  
  r4 c bes8 a r a bes c c d e g4 f |
   % to confirm that your \measures variable  
   % Barchecks with | are helpful
   % has correct durations in it  
   % to confirm that your \measures variable
   a1 d2 g,4 fis4 e4 d1 |  
   % has correct durations in it
   r4 f8 f8. f,16 f4 r8 f
  ees' ees d8. c16 |
  d8 r r4 r2 |
  d4 d8 d f4 d8 d16 d
  c8 d c bes r bes c d |
  d8. g,16 g8 g f'4. e8 |
  c4 r r2 |
}
}


alto = \relative c' {
text = \lyricmode {
   \global
   Still brood -- ing on their
   fis2 fis4 eis4 fis1 |
  mad in -- fat -- u -- a -- tion!
   fis1 fis2 e4 d4 cis4 d1 |
  I thank thee, Love, thou
  com -- est not to me;
  Far hap -- pier I, free from
  thy min -- is -- tra -- tion,
   Than dukes or duch -- es -- ses
   who love, can be!
}
}


tenor = \relative c' {
pianoRH = \relative c' {
   \global
   \global
   cis2 cis4 b4 a1 |  
   <f a,>8 r r4 s4 r1 s4. |
   d1 d2 b4 a4 a8 g8 fis1 |  
   <f c>2 s4. r2 s4 |
   \tweak direction #DOWN \tweak font-size #-1
   r4 <d bes> r2 |
   \textEndMark "Real Anglican chant; music altered slightly for illustrative purposes"
  r2 s2 r2 s2 |
  <f d>2 r2 |
   r4 <e c> r2 |
}
}


bass = \relative c {
pianoLH = \relative {
   \global
   \global
   fis2 cis4 cis4 fis1 |  
   \clef bass
   d1 b2 g4 a4 a4 d1 |  
  <f f,>8 r r4 s4 r1 s4. |
  <f a,>2 s4. r2 s4 |
  r4 <f bes,> r2 |
  r2 s2 r2 s2 |
  <g b,>2 r2 |
   r4 <g c,>4 r2 |
}
}


\score {
\score {
   \new ChoirStaff <<
   <<
     %% Add your variable to a Devnull context:  
     %% Add your variable to a Devnull context:
     \new Devnull \measures
     \new Devnull \measures
     \new Staff <<
     \new Staff <<
       \new Voice = "soprano" { \voiceOne \soprano }
       \new Voice = "soprano" \soprano
       \new Voice = "alto" { \voiceTwo \alto }
       \new Lyrics \lyricsto "soprano" \text
     >>
     >>
     \new Staff <<
     \new PianoStaff <<
      \clef bass
       \new Staff = "right" \pianoRH
       \new Voice = "tenor" { \voiceOne \tenor }
       \new Staff = "left" { \clef bass \pianoLH }
       \new Voice = "bass" { \voiceTwo \bass }
     >>
     >>
   >>
   >>
}
}
</lilypond>
</lilypond>
[[Category:Rhythms]]
[[Category:Workaround]]
[[Category:Snippet]]
[[Category:Real music]]