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 | title = "Example from a recitative" | ||
subtitle = " | subtitle = \markup \concat { | ||
subsubtitle = " | "“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 | ||
\ | % If you enable the following line, | ||
% you will see that \measures works | |||
% to create measure boundaries | |||
% for automatic accidentals: | |||
% \accidentalStyle dodecaphonic-first | |||
} | } | ||
\context { | \context { | ||
\ | \Score | ||
\ | 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 | % The source has a common time signature. To reproduce it: | ||
\time 13/4 s4* | % 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 | \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 | ||
\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 | ||
% 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 | | |||
} | } | ||
text = \lyricmode { | |||
Still brood -- ing on their | |||
mad in -- fat -- u -- a -- tion! | |||
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! | |||
} | } | ||
pianoRH = \relative c' { | |||
\global | \global | ||
<f a,>8 r r4 s4 r1 s4. | | |||
<f c>2 s4. r2 s4 | | |||
r4 <d bes> r2 | | |||
r2 s2 r2 s2 | | |||
<f d>2 r2 | | |||
r4 <e c> r2 | | |||
} | } | ||
pianoLH = \relative { | |||
\global | \global | ||
\clef bass | |||
<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 { | ||
<< | |||
%% 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" | \new Voice = "soprano" \soprano | ||
\new | \new Lyrics \lyricsto "soprano" \text | ||
>> | >> | ||
\new | \new PianoStaff << | ||
\new Staff = "right" \pianoRH | |||
\new | \new Staff = "left" { \clef bass \pianoLH } | ||
\new | |||
>> | >> | ||
>> | >> | ||
} | } | ||
</lilypond> | </lilypond> | ||
[[Category:Rhythms]] | |||
[[Category:Workaround]] | |||
[[Category:Snippet]] | |||
[[Category:Real music]] | |||