[ << Input e output ] | [Top][Contents][Index] | [ Gestione dello spazio >> ] |
[ < Uso delle variabili ] | [ Up : Edizioni diverse da un unico sorgente ] | [ Impostazioni globali > ] |
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:
Filtro | Risultato |
---|---|
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
\removeWithTag | Viene 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 }
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 }
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 >>
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 }
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 }
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 }
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 }
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.
[ << Input e output ] | [Top][Contents][Index] | [ Gestione dello spazio >> ] |
[ < Uso delle variabili ] | [ Up : Edizioni diverse da un unico sorgente ] | [ Impostazioni globali > ] |