Repeats

Repeats


Afegir claus de repetició i segona vegada a més pentagrames

El gravador Volta_engraver resideix de forma predeterminada dins del context de Score, i les claus de repetició‘s’imprimeixen així normalment sols a sobre el pentagrama superior. Aixo es pot ajustar afegint el gravador Volta_engraver al context de Staff el el qual han d’aparèixer les claus; vegeu també el fragment de codi “Volta multi staff”.

<<
  \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
  \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
  \new Staff \with { \consists "Volta_engraver" } { c'2 g' e' a' }
  \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
>>

[image of music]


Nombres de compàs centrats

Sovint, les partitures d’obres per a conjunts grnas tenen els nombres de compàs a sota del sistems i centrats horitzontalment sobre l’amplada del compàs. Aquest fragment de codi mostra com pot usar-se el gravador Measure_counter_engraver per simular aquesta pràctica de notació. Aquí hem afegit el gravador a un context Dynamics.

\layout {
  \context {
    \Dynamics
    \consists #Measure_counter_engraver
    \override MeasureCounter.direction = #DOWN
    \override MeasureCounter.font-encoding = #'latin1
    \override MeasureCounter.font-shape = #'italic
    % to control the distance of the Dynamics context from the staff:
    \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #2
  }
  \context {
    \Score
    \remove "Bar_number_engraver"
  }
}

pattern = \repeat unfold 7 { c'4 d' e' f' }

\new StaffGroup <<
  \new Staff {
    \pattern
  }
  \new Staff {
    \pattern
  }
  \new Dynamics {
    \startMeasureCount
    s1*7
    \stopMeasureCount
  }
>>

[image of music]


Changing the default bar lines

Default bar lines can be changed when re-defined in a score context.

% http://lsr.di.unimi.it/LSR/Item?id=964
%%=> http://lists.gnu.org/archive/html/lilypond-user/2014-03/msg00126.html
%%=> http://lilypond.1069038.n5.nabble.com/Changing-the-default-end-repeat-bracket-tc169357.html

\layout {
  \context {
    \Score
    %% Changing the defaults from engraver-init.ly
    measureBarType = #"!"
    startRepeatBarType = #"[|:"
    endRepeatBarType = #":|]"
    doubleRepeatBarType = #":|][|:"
  }
}

%% example:
{
  c'1
  \repeat volta 2 { \repeat unfold 2 c' }
  \repeat volta 2 { \repeat unfold 2 c' }
  \alternative {
    { c' }
    {
      %% v2.18 workaround
      \once\override Score.VoltaBracket.shorten-pair = #'(1 . -1)
      c'
    }
  }
  \bar "|."
}

[image of music]


Trèmolos de pentagrama creuat

Atès que \repeat tremolo espera exactament dos arguments musicals per als trèmolos d’acord, la nota o acord que canvia de pentagrama a un trèmolo que creua el pentagrama s’ha de col·locar dins de claus corbes junt a la seva ordre \change Staff.

\new PianoStaff <<
  \new Staff = "up" \relative c'' {
    \key a \major
    \time 3/8
    s4.
  }
  \new Staff = "down" \relative c'' {
    \key a \major
    \time 3/8
    \voiceOne
    \repeat tremolo 6 {
      <a e'>32
      {
        \change Staff = "up"
        \voiceTwo
        <cis a' dis>32
      }
    }
  }
>>

[image of music]


Trèmols amb barres flotants

Si la duració total d’un trèmol és menor d’una negra, o exactament d’una blanca, normalment es grava amb totes les barres de corxera tocant les pliques. Certs estils de notació de partitures composen algunes d’aquestes barres com a barres flotants centrades que no toquen les pliques de les figures. El nombre de barres flotants en aquest tipus de trèmol està controlat per la propietat 'gap-count del l’objecte Beam i la separació entre les barres i les pliques es fixa amb la propietat 'gap.

\relative c'' {
  \repeat tremolo 8 { a32 f }
  \override Beam.gap-count = #1
  \repeat tremolo 8 { a32 f }
  \override Beam.gap-count = #2
  \repeat tremolo 8 { a32 f }
  \override Beam.gap-count = #3
  \repeat tremolo 8 { a32 f }

  \override Beam.gap-count = #3
  \override Beam.gap = #1.33
  \repeat tremolo 8 { a32 f }
  \override Beam.gap = #1
  \repeat tremolo 8 { a32 f }
  \override Beam.gap = #0.67
  \repeat tremolo 8 { a32 f }
  \override Beam.gap = #0.33
  \repeat tremolo 8 { a32 f }
}

[image of music]


Símbols de percentatge aïllats

També es poden imprimir símbols de percentatge aïllats.

makePercent =
#(define-music-function (note) (ly:music?)
   "Make a percent repeat the same length as NOTE."
   (make-music 'PercentEvent
               'length (ly:music-length note)))

\relative c'' {
  \makePercent s1
}

[image of music]


Comptador de compassos

Aquest fragment de codi proporciona una solució alternativa a la producció de comptadors de compàs utilitzant repeticions transparents de tipus percentatge.

<<
  \context Voice = "foo" {
    \clef bass
    c4 r g r
    c4 r g r
    c4 r g r
    c4 r g r
  }
  \context Voice = "foo" {
    \set countPercentRepeats = ##t
    \hide PercentRepeat
    \override PercentRepeatCounter.staff-padding = #1
    \repeat percent 4 { s1 }
  }
>>

[image of music]


Numerar grups de compassos

Aquest fragment de codi mostra l’ús del gravador Measure_counter_engraver per numerar grups de compassos successius. Es pot numerar qualsevol període de compassos tant si té repeticions com si no.

S’ha d’afegir el gravador al context adequat. Aquí s’usa un context Staff; una altra possibilitat seria un context Dynamics.

El comptador s’inicia amb \startMeasureCount i finalitza amb \stopMeasureCount. La numeració comença amb 1, de forma predeterminada, però es pot modificar aquest comportament sobreescrivint la propietat count-from.

Quan un compàs s’estén més enllà d’un salt de línia, el número apareix dues vegades, la segona vegada entre parèntesi.

\layout {
  \context {
    \Staff
    \consists #Measure_counter_engraver
  }
}

\new Staff {
  \startMeasureCount
  \repeat unfold 7 {
    c'4 d' e' f'
  }
  \stopMeasureCount
  \bar "||"
  g'4 f' e' d'
  \override Staff.MeasureCounter.count-from = #2
  \startMeasureCount
  \repeat unfold 5 {
    g'4 f' e' d'
  }
  g'4 f'
  \bar ""
  \break
  e'4 d'
  \repeat unfold 7 {
    g'4 f' e' d'
  }
  \stopMeasureCount
}

[image of music]


Visibilitat del comptador de repeticions de tipus percentatge

Es poden mostrar els comptadors de les repeticions del tipus percentatge a intervals regulars mitjançant l’establiment de la propietat de context repeatCountVisibility.

\relative c'' {
  \set countPercentRepeats = ##t
  \set repeatCountVisibility = #(every-nth-repeat-count-visible 5)
  \repeat percent 10 { c1 } \break
  \set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
  \repeat percent 6 { c1 d1 }
}

[image of music]


Comptador de repeticions de tipus percentatge

Les repeticions de compassos complets de més en dues repeticions poden portar un comptador si s’activa la propietat adequada, com es veu en aquest exemple:

\relative c'' {
  \set countPercentRepeats = ##t
  \repeat percent 4 { c1 }
}

[image of music]


Posicionar els símbols de repetició segno i coda (amb salts de línia)

Si volem col·locar un símbol de segno de sortida i afegir text com “D.S. al Coda” al costat on normalment estan les línies del pentagrama, podem usar aquest codi. La coda continua en una línia nova. Hi ha una variant documentada en el fragment de codi, on la coda es manté en la mateixa línia.

{
  \clef treble
  \key g \major
  \time 4/4
  \relative c'' {
    \repeat unfold 4 {
      c4 c c c
    }

    % Set segno sign as rehearsal mark and adjust size if needed
    % \once \override Score.RehearsalMark.font-size = #3
    \mark \markup { \musicglyph "scripts.segno" }
    \repeat unfold 2 {
      c4 c c c
    }

    % Set coda sign as rehearsal mark and adjust size if needed
    \once \override Score.RehearsalMark.font-size = #4
    \mark \markup { \musicglyph "scripts.coda" }
    \repeat unfold 2 {
      c4 c c c
    }

    % Should Coda be on anew line?
    % Coda NOT on new line: use \nobreak
    % Coda on new line: DON'T use \nobreak
    % \noBreak

    \bar "||"

    % Set segno sign as rehearsal mark and adjust size if needed
    \once \override Score.RehearsalMark.break-visibility =
      #begin-of-line-invisible
    % \once \override Score.RehearsalMark.font-size = #3
    \mark \markup { \musicglyph "scripts.segno" }

    % Here begins the trickery!
    % \cadenzaOn will suppress the bar count
    % and \stopStaff removes the staff lines.
    \cadenzaOn
    \stopStaff
        % Some examples of possible text-displays

        % text line-aligned
        % ==================
        % Move text to the desired position
        % \once \override TextScript.extra-offset = #'( 2 . -3.5 )
        % | <>^\markup { D.S. al Coda } }

        % text center-aligned
        % ====================
        % Move text to the desired position
        % \once \override TextScript.extra-offset = #'( 6 . -5.0 )
        % | <>^\markup { \center-column { D.S. "al Coda" } }

        % text and symbols center-aligned
        % ===============================
        % Move text to the desired position
        % and tweak spacing for optimum text alignment
        \repeat unfold 1 {
          s1
          \bar ""
        }
        \once \override TextScript.extra-offset = #'( 0 . -3.0 )
        \once \override TextScript.word-space = #1.5
        <>^\markup { \center-column { "D.S. al Coda"
          \line {
            \musicglyph "scripts.coda"
            \musicglyph "scripts.tenuto"
            \musicglyph "scripts.coda"} } }

        % Increasing the unfold counter will expand the staff-free space
        \repeat unfold 3 {
          s1
          \bar ""
        }
        % Resume bar count and show staff lines again
    \startStaff
    \cadenzaOff

    % Should Coda be on new line?
    % Coda NOT on new line: DON'T use \break
    % Coda on new line: use \break
    \break

    % Show up, you clef and key!
    \once \override Staff.KeySignature.break-visibility = #end-of-line-invisible
    \once \override Staff.Clef.break-visibility = #end-of-line-invisible

    % Set coda sign as rehearsal mark and adjust size and position

    % Put the coda sign on top of the (treble-)clef
    % depending on coda's line-position

    % Coda NOT on new line, use this:
    % \once \override Score.RehearsalMark.extra-offset = #'( -2 . 1.75 )

    % Coda on new line, use this:
    \once \override Score.RehearsalMark.extra-offset = #'( -5 . .5 )

    \once \override Score.RehearsalMark.font-size = #5
    \mark \markup { \musicglyph "scripts.coda" }

    % The coda
    \repeat unfold 6 {
      c4 c c c
    }
    \bar"|."
  }
}

[image of music]


Establiment del tipus de repetició doble predeterminat per a la primera i la segona vegada

Hi ha tres estils diferents de repeticions dobles per a la primera i la segona vegada, que es poden ajustar utilitzant doubleRepeatType.

\relative c'' {
  \repeat volta 2 { c1 }
  \set Score.doubleRepeatBarType = #":..:"
  \repeat volta 2 { c1 }
  \set Score.doubleRepeatBarType = #":|.|:"
  \repeat volta 2 { c1 }
  \set Score.doubleRepeatBarType = #":|.:"
  \repeat volta 2 { c1 }
}

[image of music]


Fer més curts els corxets de primer i segona vegada

De forma predeterminada, els corxets de primera i segona vegada es tracen a sobre els finals alternatius complets, però és possible fer-los més curts establint un valor cer per a voltaSpannerDuration. A l’exemple següent, el corxet sols dura un compàs, que correspon a una duració de 3/4.

\relative c'' {
  \time 3/4
  c4 c c
  \set Score.voltaSpannerDuration = #(ly:make-moment 3/4)
  \repeat volta 5 { d4 d d }
  \alternative {
    {
      e4 e e
      f4 f f
    }
    { g4 g g }
  }
}

[image of music]


Corxets de primera i segona vegada a sota dels acords

Mitjançant l’addició del gravador Volta_engraver al pentagrama pertinent, es poden posar els corxets de primera i segona veu a sota dels acords.

\score {
  <<
    \chords {
      c1
      c1
    }
    \new Staff \with {
      \consists "Volta_engraver"
    }
    {
      \repeat volta 2 { c'1 }
      \alternative { c' }
    }
  >>
  \layout {
    \context {
      \Score
      \remove "Volta_engraver"
    }
  }
}

[image of music]


Caselles de repetició de diversos pentagrames

Mitjançant l’addició del gravador Volta_engraver al pentagrama adequat, les caselles de primera i segona vegada es poden posar sobre algun pentagrama diferent al més alt de la partitura.

voltaMusic = \relative c'' {
  \repeat volta 2 {
    c1
  }
  \alternative {
    d1
    e1
  }
}

<<
  \new StaffGroup <<
    \new Staff \voltaMusic
    \new Staff \voltaMusic
  >>
  \new StaffGroup <<
    \new Staff \with { \consists "Volta_engraver" }
      \voltaMusic
    \new Staff \voltaMusic
  >>
>>

[image of music]


Elements de marcatge per al text de les caselles de repetició usant repeatCommands

Tot i que les caselles de repetició s’especifiquen de forma òptima usant \repeat volta, s’ha d’usar la propietat de context repeatCommands en cas que el text de la casella requereixi un format més avançat amb \markup.

Atès que repeatCommands admet una llista, el mètode més senzill d’incloure elements de marcatge és usar un identificador per al text i inserir-lo a la llista d’ordres usant la sintaxi de l’Scheme #(list (list 'volta textIdentifier)). Les ordres de principi i fi de repetició es poden afegir com elements de llista independents:

voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }

\relative c'' {
  c1
  \set Score.repeatCommands = #(list (list 'volta voltaAdLib) 'start-repeat)
  c4 b d e
  \set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat)
  f1
  \set Score.repeatCommands = #'((volta #f))
}

[image of music]


LilyPond — Fragments v2.23.10 (branca de desenvolupament).