Fragments del LilyPond: Repeats

# 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' } }
    >>

## 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
      }
    >>

## 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 "|."
    }

## 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
          }
        }
      }
    >>

## 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 }
    }

## 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
    }

## 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 }
      }
    >>

## 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
    }

## 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 }
    }

## 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 }
    }

## 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.

    {
      \relative c'' {
        c4 c c c c c c c c c c c
        \repeat segno 2 {
          c4 c c c c c c c
          \alternative {
            \volta 1 {
              c4 c c c c c c c c c c c
              % If you don't use \break at Coda, use \noBreak here
              % and after \bar "" below.
              \noBreak
              \section % double bar line
              \cadenzaOn % pause bar count
              \stopStaff % remove staff lines
              % Increasing the unfold counter will expand the staff-free space
              \repeat unfold 6 {
                s1
                \bar ""
              }
              % Place JumpScript where the staff would normally be.
              \once \override Score.JumpScript.outside-staff-priority = ##f
              \once \override Score.JumpScript.Y-offset = 0
              \startStaff % resume bar count
              \cadenzaOff % show staff lines again
            }
          }
        }
        \sectionLabel "Coda"
        % Show Coda on a new line
        \break
        \repeat unfold 8 { c4 c c c }
        \fine
      }
    }

## 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 }
    }

## 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 }
      }
    }

## 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"
        }
      }
    }

## 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
      >>
    >>

## 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))
    }

#### LilyPond — Fragments v2.24.4 (branca estable).