Uso delle etichette

Il comando \tag #'parteA contrassegna un’espressione musicale col nome parteA. Le espressioni contrassegnate in questo modo possono essere incluse o rimosse in base al loro nome successivamente, usando \keepWithTag #'nome oppure \removeWithTag #'nome. Il risultato dell’applicazione di questi filtri alla musica etichettata è il seguente:

FiltroRisultato
Musica etichettata preceduta da \keepWithTag #'nome o \keepWithTag #'(nome1 nome2…)Viene inclusa la musica non etichettata e quella etichettata con uno dei nomi specificati; la musica etichettata con un nome etichetta diverso viene esclusa.
Musica etichettata preceduta da \removeWithTag #'nome o \removeWithTag #'(nome1 nome2…)Viene inclusa la musica non etichettata e quella non etichettata con uno dei nomi specificati; la musica etichettata con uno dei nomi specificati viene esclusa.
Musica etichettata non preceduta da \keepWithTag o \removeWithTagViene inclusa tutta la musica etichettata e non etichettata.

Gli argomenti dei comandi \tag, \keepWithTag e \removeWithTag devono essere un simbolo o una lista di simboli (come #'score o #'(violinoI violinoII), seguiti da un’espressione musicale. Se e solo se i simboli sono identificatori LilyPond validi (solo caratteri alfabetici, nessun numero, trattino o trattino basso) che non possono essere confusi con le note, si può omettere il #' e, come scorciatoia, una lista di simboli può usare il punto come separatore: quindi \tag #'(violinoI violinoII) può essere riscritto come \tag violinoI.violinoII. Lo stesso vale per \keepWithTag e \removeWithTag.

Nell’esempio seguente, vediamo due versioni di un brano musicale, una che mostra i trilli con la notazione abituale e l’altra con i i trilli espansi esplicitamente:

musica = \relative {
  g'8. c32 d
  \tag #'trilli { d8.\trill }
  \tag #'espandi { \repeat unfold 3 { e32 d } }
  c32 d
 }

\score {
  \keepWithTag #'trilli \musica
}
\score {
  \keepWithTag #'espandi \musica
}

[image of music]

Altrimenti, talvolta è più facile escludere sezioni musicali:

musica = \relative {
  g'8. c32 d
  \tag #'trilli { d8.\trill }
  \tag #'espandi {\repeat unfold 3 { e32 d } }
  c32 d
 }

\score {
  \removeWithTag #'espandi
  \musica
}
\score {
  \removeWithTag #'trilli
  \musica
}

[image of music]

Il filtro delle etichette può essere applicato a articolazioni, testo, etc. scrivendo

-\tag #'tua-etichetta

prima di un’articolazione. L’esempio seguente definisce una nota con un’indicazione di diteggiatura condizionale e una nota con un commento condizionale:

c1-\tag #'dito ^4
c1-\tag #'attenzione ^"Fai attenzione!"

Varie etichette possono essere associate a delle espressioni tramite molteplici \tag, o unendo molteplici etichette in una lista di simboli:

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

[image of music]

Si possono applicare molteplici filtri \removeWithTag a una singola espressione musicale per togliere varie sezioni etichettate con nomi diversi. Altrimenti si può usare un solo \removeWithTag seguito da una lista di etichette.

musica = \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
  \musica
  \removeWithTag #'(B C)
  \musica
}

[image of music]

Applicando due o più filtri \keepWithTag su una singola espressione musicale toglieranno tutte le sezioni etichettate. Il primo filtro toglie tutto tranne la sezione menzionata e qualsiasi filtro successivo toglie il resto. Usando un singolo comando \keepWithTag con una lista di varie etichette vengono rimosse soltanto le sezioni etichettate non specificate in quella lista.

music = \relative c'' {
  \tag #'violinoI { a4 a a a }
  \tag #'violinoII { b4 b b b }
  \tag #'viola { c4 c c c }
  \tag #'cello { d4 d d d }
}

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

[image of music]

farà apparire le etichette violinoI e violinoII ma non viola o cello.

Mentre \keepWithTag è comodo con un gruppo di alternative, la rimozione di musica contrassegnata con etichette indipendenti è problematico se si usano le etichette con diverse finalità. In questo caso, è possibile dichiarare ‘gruppi’ di etichette:

\tagGroup #'(violinoI violinoII viola cello)

dichiara che queste etichette appartengono a un gruppo.

\keepWithTag #'violinoI …

ora mostrerà soltanto la musica contrassegnata con le etichette presenti nel gruppo cui appartiene violinoI e verrà tolta la musica contrassegnata con una delle altre etichette.

music = \relative {
  \tagGroup #'(violinoI violinoII viola cello)
  \tag #'violinoI { c''4^"violinI" c c c }
  \tag #'violinoII { a2 a }
  \tag #'viola { e8 e e2. }
  \tag #'cello { d'2 d4 d }
  R1^"non contrassegnato"
}

\new Voice {
  \keepWithTag #'violinoI
  \music
}

[image of music]

Quando si usa il comando \keepWithTag, sono visibili solo le etichette provenienti dai gruppi cui appartengono le etichette specificate dopo il comando.

Talvolta si ha necessità di combinare insieme della musica in un punto preciso di un’espressione musicale esistente. \pushToTag e \appendToTag permettono di aggiungere materiale prima o dopo gli elementi di un costrutto musicale esistente. Non tutti i costrutti musicali hanno elementi, ma nel caso di musica sequenziale e simultanea si può esserne sicuri:

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

{
  \pushToTag #'qui c'
  \pushToTag #'qui e'
  \pushToTag #'qui g' \music
  \appendToTag #'qui c'
  \appendToTag #'qui e'
  \appendToTag #'qui g' \music
}

[image of music]

Entrambi i comandi prendono tre argomenti: un’etichetta, il materiale da combinare ad ogni occorenza dell’etichetta e l’espressione contrassegnata.

Vedi anche

Manuale di apprendimento: Organizzare i brani con le variabili.

Guida alla notazione: Combinazione automatica delle parti, Inclusione di file LilyPond.

Problemi noti e avvertimenti

Se si usa \relative prima di un’espressione musicale ottenuta filtrando la musica con \keepWithTag o \removeWithTag, i rapporti di ottava potrebbero cambiare, perché verranno considerate solo le altezze rimaste nell’espressione filtrata. Per evitare questo rischio, usare \relative prima di \keepWithTag o \removeWithTag, in modo che \relative agisca su tutte le altezze prima del filtro.


Guida alla Notazione di LilyPond v2.25.15 (ramo di sviluppo).