Referència de la notació del GNU LilyPond: 3.3.2 Diferents edicions a partir d'una mateixa font

### 3.3.2 Diferents edicions a partir d’una mateixa font

Es posen usar diversos mètodes per generar la producció de diferents versions d’una partitura a partir de la mateixa font musical. Les variables són potser el més útil per combinar seccions extenses de música i/o anotacions. Les etiquetes són més útils per seleccionar una secció d’entre diverses seccions de música alternatives, més curtes, i es poden usar també per dividir peces de música en diferents trossos.

Qualsevol que sigui el mètode utilitzat, la separació de la notació de l’estructura de la partitura farà que sigui més fàcil canviar l’estructura deixant intacta la notació.

#### Ús de les variables

Si les seccions de la música es defineixen dins de variables, es poden reutilitzar en diferents parts de la partitura, vegeu Organitzar les peces mitjançant variables. Per exemple, una partitura vocal a cappella freqüentment inclou una reducció de piano de les parts per assajar que és idèntica a la música vocal, per la qual cosa aquesta partitura sols s’ha d’escriure una vegada. Es pot combinar sobre un sol pentagrama la música de dues variables, vegeu Combinació automàtica de les parts. Vegeu aquí un exemple:

>     sopranoMusic = \relative { a'4 b c b8( a) }
>     altoMusic = \relative { e'4 e e f }
>     tenorMusic = \relative { c'4 b e d8( c) }
>     bassMusic = \relative { a4 gis a d, }
>     allLyrics = \lyricmode { King of glo -- ry }
>     <<
>       \new Staff = "Soprano" \sopranoMusic
>       \new Lyrics \allLyrics
>       \new Staff = "Alto" \altoMusic
>       \new Lyrics \allLyrics
>       \new Staff = "Tenor" {
>         \clef "treble_8"
>         \tenorMusic
>       }
>       \new Lyrics \allLyrics
>       \new Staff = "Bass" {
>         \clef "bass"
>         \bassMusic
>       }
>       \new Lyrics \allLyrics
>       \new PianoStaff <<
>         \new Staff = "RH" {
>           \partCombine \sopranoMusic \altoMusic
>         }
>         \new Staff = "LH" {
>           \clef "bass"
>           \partCombine \tenorMusic \bassMusic
>         }
>       >>
>     >>

Es poden produir partitures diferents que presenten sols les parts vocals o sola la part de piano, canviant sols els enunciats estructurals, sense modificar la notació musical.

Per partitures extenses, les definicions de variable es poden posar a fitxers separats que s’inclouen més tard, vegeu Inclusió de fitxers del LilyPond.

#### Ús d’etiquetes

L’ordre `\tag #'parteA` marca una expressió musical amb el nom parteA. Les expressions etiquetades d’aquesta manera es poden seleccionar o filtrar més tard pel seu nom, usant o bé `\keepWithTag #'nom` o bé `\removeWithTag #'nom`. El resultat de l’aplicació d’aquests filtres a la música etiquetada és com segueix:

Filtre | Resultat
--- | ---
Música etiquetada precedida de `\keepWithTag #'nom` o de `\keepWithTag #'(nom1 nom2…)` | S’inclou la música no etiquetada i la música etiquetada amb el nom o noms d’etiquetes donats; s’exclou la música etiquetada amb qualsevol altre nom d’etiqueta.
Música etiquetada precedida de `\removeWithTag #'nom` o `\removeWithTag #'(nom1 nom2…)` | S’inclou la música no etiquetada i la música que no està etiquetada amb cap dels noms d’etiqueta donats; s’exclou la musica etiquetada amb els noms d’etiqueta donats.
Música etiquetada no precedida de `\keepWithTag` ni de `\removeWithTag` | S’inclou la música etiquetada i no etiquetada.

Els arguments de les ordres `\tag`, `\keepWithTag` i `\removeWithTag` han de ser un símbol o llista de símbols (com `#'score` o `#'(violiI violiII`), seguida d’una expressió musical. Si i sols si els símbols són identificadors del LilyPond vàlids (caràcters alfabètics sols, sense números, guions baixos ni guions normals) que no poden confondre’s amb notes, la porció `#'` es pot ometre i, com abreviatura, una llista de símbols pot usar el separador de punt, és a dir: `\tag #'(violiI violiII)` es pot escriure com `\tag violiI.violiII`. Val el mateix per a `\keepWithTag` i `\removeWithTag`.

A l’exemple següent veiem dues versions d’una peça musical, una que mostra trins amb la notació usual i una altra amb els trins expandits explícitament:

>     music = \relative {
>       g'8. c32 d
>       \tag #'trills { d8.\trill }
>       \tag #'expand { \repeat unfold 3 { e32 d } }
>       c32 d
>      }

>     \score {
>       \keepWithTag #'trills \music
>     }
>     \score {
>       \keepWithTag #'expand \music
>     }

De forma alternativa, a vegades és més fàcil excloure seccions de música:

>     music = \relative {
>       g'8. c32 d
>       \tag #'trills { d8.\trill }
>       \tag #'expand {\repeat unfold 3 { e32 d } }
>       c32 d
>      }

>     \score {
>       \removeWithTag #'expand
>       \music
>     }
>     \score {
>       \removeWithTag #'trills
>       \music
>     }

El filtrat d’etiquetes es pot aplicar a articulacions, textos, etc., anteposant

>     -\tag #'la-meva-etiqueta

a una articulació. Per exemple, això defineix una nota amb una indicació opcional de digitació i una nota amb una anotació condicional:

>     c1-\tag #'finger ^4
>     c1-\tag #'warn ^"Alerta!"

Es poden posar diverses etiquetes sobre expressions amb diverses entrades de `\tag`, o combinant diverses etiquetes en una llista de símbols:

>     music = \relative c'' {
>       \tag #'a \tag #'both { a4 a a a }
>       \tag #'(b both) { b4 b b b }
>     }
>     <<
>     \keepWithTag #'a \music
>     \keepWithTag #'b \music
>     \keepWithTag #'both \music
>     >>

Es poden aplicar diversos filtres `\removeWithTag` a una sola expressió musical per treure diverses seccions etiquetades amb noms diferents. De forma alternativa, podem usar una sola ordre `\removeWithTag` amb una llista d’etiquetes.

>     music = \relative c'' {
>       \tag #'A { a4 a a a }
>       \tag #'B { b4 b b b }
>       \tag #'C { c4 c c c }
>       \tag #'D { d4 d d d }
>     }
>     \new Voice {
>       \removeWithTag #'B
>       \removeWithTag #'C
>       \music
>       \removeWithTag #'(B C)
>       \music
>     }

L’ús de dos o més filtres `\keepWithTag` sobre una sola expressió musical produeix l’eliminació de totes les seccions etiquetades. El primer filtre treu totes excepte la que es nombra, i qualsevol filtre posterior elimina el reste. Usant una sola ordre `\keepWithTag` amb una llista de diverses etiquetes se suprimiran sols les seccions etiquetades que no apareixen especificades a la llista.

>     music = \relative c'' {
>       \tag #'violiI { a4 a a a }
>       \tag #'violiII { b4 b b b }
>       \tag #'viola { c4 c c c }
>       \tag #'violoncel { d4 d d d }
>     }

>     \new Staff {
>       \keepWithTag #'(violinI violinII)
>       \music
>     }

imprimirà `\tag`s violiI i violiII però no viola o violoncel.

Tot i que `\keepWithTag` és útil per a la gestió de un sol conjunt d’alternatives, l’eliminació de música etiquetada amb altres etiquetes no relacionades és problemàtica si s’utilitza per més d’un propòsit. En aquest cas poden declarar-se ‘grups d’etiquetes’:

>     \tagGroup #'(violiI violiII viola violoncel)

Ara totes les etiquetes pertanyen a un sol ‘grup d’etiquetes’. Observeu que les etiquetes individuals no poden ser membres de més d’un grup d’etiquetes.

>     \keepWithTag #'violiI …

mostrarà sols la música etiquetada a partir del grup d’etiquetes de `violiI` i qualsevol fragment musical etiquetada amb una de les altres etiquetes resultarà suprimit.

>     music = \relative {
>       \tagGroup #'(violiI violiII viola violoncel)
>       \tag #'violiI { c''4^"violiI" c c c }
>       \tag #'violiII { a2 a }
>       \tag #'viola { e8 e e2. }
>       \tag #'violoncel { d'2 d4 d }
>       R1^"untagged"
>     }

>     \new Voice {
>       \keepWithTag #'violiI
>       \music
>     }

En usar l’ordre `\keepWithTag` sols són visibles les etiquetes dels grups d’aquelles etiquetes que s’inclouen a l’ordre.

A vegades podem desitjar dividir la música en un determinat lloc dins d’una expressió musical existent. Podem usar `\pushToTag` i `\appendToTag` per afegir material davant o al final dels `elements` d’una construcció musical existent. No tota construcció musical té la part `elements`, però les músiques seqüencials i simultànies són dues apostes segures:

>     music = { \tag #'here { \tag #'here <<c''>> } }

>     {
>       \pushToTag #'here c'
>       \pushToTag #'here e'
>       \pushToTag #'here g' \music
>       \appendToTag #'here c'
>       \appendToTag #'here e'
>       \appendToTag #'here g' \music
>     }

Les dues ordres admeten una etiqueta, el material que divideix en cada aparició de l’etiqueta, i l’expressió etiquetada.

#### Vegeu també

Manual d’aprenentatge: Organitzar les peces mitjançant variables.

Referència de la notació: Combinació automàtica de les parts, Inclusió de fitxers del LilyPond.

#### Advertiments i problemes coneguts

En cridar a `\relative` sobre una expressió musical obtinguda mitjançant el filtratge de música amb les ordres `\keepWithTag` o `\removeWithTag`, podria passar que canviessin les altures de les notes que efectivament romanen a l’expressió filtrada. L’aplicació de `\relative` en primer lloc, abans de `\keepWithTag` o de `\removeWithTag`, evita aquest perill perquè en aquest cas `\relative` actua sobre totes les notes tal i com s’introdueixen.

#### Ús d’ajustaments globals

Es poden incloure ajustos globals a partir d’un fitxer diferent:

>     lilypond -dinclude-settings=ELS_MEUS_AJUSTAMENTS.ly LA_MEVA_PARTITURA.ly

A fitxers diferents es poden emmagatzemar grups d’ajustaments com la mida de la pàgina o les fonts tipogràfiques. Això permet fer diferents edicions de la mateixa partitura així com aplicar ajustaments estàndard a moltes partitures, simplement per mitjà de l’especificació del fitxer d’ajustaments adequat.

Aquesta tècnica també funciona bé amb l’ús de fulls d’estil, com s’estudia a Fulls d'estil.

#### Vegeu també

Manual d’aprenentatge: Organitzar les peces mitjançant variables. Fulls d'estil.

Referència de la notació: Inclusió de fitxers del LilyPond.

#### LilyPond — Referència de la notació v2.22.2 (branca estable).