4.1.4 Mètodes d’ajustament

L’ordre \override


L’ordre \override

Ja hem vist les ordres \set i \with, que s’usen per canviar les propietats dels contextos i per treure i posar gravadors, a Modificar les propietats dels contextos i Afegir i eliminar gravadors. Ara hem d’examinar algunes altres ordres importants.

L’ordre que canvia les propietats dels objectes de presentació és \override. Atès que aquesta ordre ha de modificar propietats internes que es troben a un lloc profund dins del LilyPond, la seva sintaxi no és tan simple com la de la resta de les ordres que hem fet servir fins ara. Heu de saber exactament quina propietat de quin objecte i a quin context s’ha de modificar, i quin ha de ser el seu nou valor. Anem a veure com es fa.

La sintaxi genèrica d’aquesta ordre és:

\override Context.ObjecteDePresentació.propietat-de-presentació =
#valor

Això establirà la propietat de nom propietat-de-presentació de l’objecte de presentació amb el nom ObjecteDePresentació, que es membre del context Context, al valor valor.

El Context es pot ometre (i normalment és així) quan el context requerit es troba implicat sense ambigüitat i és un dels contextos del nivell més baix, és a dir: Voice, ChordNames o Lyrics, i l’ometrem en molts dels exemples següents. Més endavant veurem quan cal especificar-lo

Les últimes seccions tracten de forma exhaustiva les propietats i els seus valors, vegeu Tipus de propietats. Però en aquesta secció usarem sols unes quantes propietats i valors senzills que siguin fàcils d’entendre, per il·lustrar el format i la utilització d’aquestes instruccions.

Les expressions principals del LilyPond són elements musicals com notes, duracions, i elements marcatge. Les expressions més bàsiques com ara números, cadenes de caràcters i llistes, es processen al ‘mode de l’Scheme’, que s’invoca mitjançant del prefix ‘#’ escrit abans del valor. Tot i que els valors poden tenir a vegades una representació vàlida al mode de música del LilyPond, aquest manual utilitza sempre ‘#’ per a l’escriptura, per coherència. Per obtenir més informació sobre el mode de l’Scheme, consulteu Sintaxi de l’Scheme del LilyPond.

\override és l’ordre d’ús més comú dins de l’ajustament, i durant la major part de la resta d’aquest capítol presentarem exemples sobre el seu ús. A continuació hi ha un exemple senzill per canviar el color d’un cap:

\relative {
  c'4 d
  \override NoteHead.color = #red
  e4 f |
  \override NoteHead.color = #green
  g4 a b c |
}

[image of music]


L’ordre \revert

Un cop sobreescrita, la propietat reté el seu nou valor fins que se sobreescriu de o es troba una ordre \revert. L’ordre té la sintaxi següent i causa que el valor de la propietat torni al seu valor predeterminat original; observeu que no és al seu valor previ si s’han fet servir diverses ordres \override.

\revert Context.ObjecteDePresentació.propietat-de-presentació

Un cop més, igual que Context dins de l’ordre \override, freqüentment no és necessari especificar el Context. S’ometrà en molts dels exemples següents. Aquí retornem el color del cap al valor predeterminat per a les últimes dues notes:

\relative {
  c'4 d
  \override NoteHead.color = #red
  e4 f |
  \override NoteHead.color = #green
  g4 a
  \revert NoteHead.color
  b4 c |
}

[image of music]


El prefix \once

\override, \revert, \set i \unset es poden fer precedir per \once. Això fa que l’ordre sigui efectiva sols durant el temps musical en curs i abans que la propietat torni a tenir un altre cop el seu valor anterior (que pot ser diferent al seu valor predeterminat i encara s’està aplicant una altra ordre \override de sobreescriptura). Utilitzant el mateix exemple, podem canviar el color d’una sola nota de la manera següent:

\relative {
  c'4 d
  \override NoteHead.color = #red
  e4 f |
  \once \override NoteHead.color = #green
  g4 a
  \once \revert NoteHead.color
  b c |
  \revert NoteHead.color
  f2 c |
}

[image of music]

El prefix \once també es pot usar davant de moltes ordres predefinides per limitar el seu efecte a un sol moment musical:

\relative {
  c'4( d)
  \once \slurDashed
  e4( f) |
  g4( a)
  \once \hideNotes
  b( c) |
}

[image of music]


L’ordre \overrideProperty

Hi ha una altra forma per a l’ordre de sobreescriptura, \overrideProperty, que ocasionalment és necessària. La mencionem aquí amb un propòsit d’exhaustivitat, però per veure més detalls consulteu Ajustaments difícils.


L’ordre \tweak

L’última ordre d’ajustament que està disponible és \tweak. S’ha de fer servir quan diversos objectes s’usen en el mateix moment musical, però sols volem canviar les propietats d’alguns d’ells, per exemple una sola nota dins d’un acord. L’ús de \override per a la sobreescriptura afectaria a totes les notes de l’acord, mentre que \tweak sols afecta a l’element següent del flux d’entrada.

Vet aquí un exemple. Suposeu que volem canviar la mida del cap de la nota intermèdia (el Mi) a un acord de Do major. En primer lloc, vejam el fa faria \once \override:

\relative {
  <c' e g>4
  \once \override NoteHead.font-size = #-3
  <c e g>4
  <c e g>4
}

[image of music]

Veiem que la sobreescriptura amb override afecta a totes els caps de les notes de l’acord. Això és així perquè totes les notes d’un acord tenen lloc en el mateix moment musical, i l’acció de \once és aplicar la sobreescriptura a tots els objectes de presentació del tipus especificat que tenen lloc en el mateix moment musical que la pròpia ordre de sobreescriptura \override.

L’ordre \tweak pera de una manera diferent. Actua sobre l’element immediatament següent dins del flux d’entrada. En la seva forma més senzilla és efectiu sols sobre objectes que es creen directament a partir de l’element següent, en essència els caps i les articulacions.

Així doncs, tornant al nostre exemple, la mida de la nota intermèdia es canviaria de la forma següent:

\relative {
  <c' e g>4
  <c \tweak font-size #-3 e g>4
}

[image of music]

Observeu que la sintaxi de \tweak no és igual que la de \override. El context no s’ha d’especificar; de fet, generaria un error fer-lo. Tant el context com l’objecte de presentació estan implícits per l’element següent del flux d’entrada. Observeu també que no ha d’haver un signe d’igual. Així que la sintaxi de l’ordre \tweak en la seva forma senzilla és:

\tweak propietat-de-presentació #valor

Una ordre \tweak també es pot usar per modificar sols una d’una sèrie d’articulacions, com es mostra aquí:

a'4^"Black"
  -\tweak color #red ^"Red"
  -\tweak color #green _"Green"

[image of music]

Observeu que l’ordre \tweak ha de venir precedida d’una marca d’articulació perquè la pròpia expressió ajustada ha d’aplicar-se com una articulació. En el cas de més d’una sobreescriptura de direcció (^ o _), guanya la sobreescriptura situada més a l’esquerra perquè s’aplica a l’últim lloc.

Els objectes com ara pliques i alteracions accidentals es creen més tard, i no directament a partir de l’esdeveniment que ve a continuació. Encara és possible utilitzar \tweak sobre aquests objectes creats indirectament mitjançant el nomenat explícit de l’objecte de presentació, sempre i quan el LilyPond pugui rastrejar el seu origen fins l’esdeveniment original:

<\tweak Accidental.color #red   cis''4
 \tweak Accidental.color #green es''
 g''>

[image of music]

Aquesta forma extensa de l’ordre \tweak es pot descriure com

\tweak LayoutObject.layout-property #value
"ABANS" \tweak objecte-de-presentació.propietat-de-presentació valor

L’ordre \tweak també s’ha d’usar per canviar l’aparença d’un sol d’un conjunt de grups especials niuats que comencin al mateix instant musical. A l’exemple següent, la clau de treset llarg i el primer de les tres claus curtes comencen al mateix moment musical, i per això qualsevol ordre \override s’aplicaria als dos. A l’exemple s’usa \tweak per distingir entre ells. La primera ordre \tweak especifica que la clau del treset llarg s’ha de col·locar per sobre de les notes i el segon especifica que el nombre del treset s’ha d’imprimir en vermell sobre la clau del primer treset curt.

\relative c'' {
  \tweak direction #up
  \tuplet 3/4 {
    \tweak color #red
    \tuplet 3/2 { c8[ c c] }
    \tuplet 3/2 { c8[ c c] }
    \tuplet 3/2 { c8[ c c] }
  }
}

[image of music]

Si els grups niuats no comencen al mateix moment, la seva aparença es pot modificar de la forma usual mitjançant ordres \override:

\relative {
  \tuplet 3/2 { c'8[ c c] }
  \once \override TupletNumber.text = #tuplet-number::calc-fraction-text
  \tuplet 3/2 {
    c8[ c]
    c8[ c]
    \once \override TupletNumber.transparent = ##t
    \tuplet 3/2 { c8[ c c] }
    \tuplet 3/2 { c8[ c c] }
  }
}

[image of music]

Vegeu també

Referència de la notació: L'ordre tweak.


El prefix \single

Suposem que volem emfatitzar el cap d’algunes notes dibuixant-les amb color i incrementant la seva mida, i suposem també que hem programat una funció per fer la tasca més còmoda:

emphNoteHead = {
  \override NoteHead.color = #red
  \override NoteHead.font-size = 2
}
\relative {
  c''4 a \once \emphNoteHead f d |
}

[image of music]

El \once previ funciona perfectament per emfatitzar notes úniques o acords complets, però no es pot usar per emfatitzar una sola nota dins d’un acord. Anteriorment vam veure com es pot usar l’ordre \tweak per fer-lo, vegeu L’ordre \tweak. Però \tweak no es pot fer servir amb una funció; aquí és on entra l’ordre \single:

emphNoteHead = {
  \override NoteHead.color = #red
  \override NoteHead.font-size = 2
}
\relative {
   <c'' a \single \emphNoteHead f d>4
}

[image of music]

En resum, \single converteix les característiques fetes amb \override en ajustaments fets amb \tweak de tal manera que quan hi ha diversos objectes al mateix instant de temps musical (com ara les notes d’un acord), \single afecta a una única nota, la que es genera per l’expressió que afecta a una única nota, la que es genera per l’expressió que segueix immediatament, a diferencia de \once que afecta a tots aquests objectes.

L’ús de \single d’aquesta forma amb una funció qualsevol que contingui sols sobreescriptures, pot aplicar-se a les notes individuals d’un acord. Malgrat això, \single no converteix \revert, \set ni \unset en ajustaments de \tweak.

Vegeu també

Manual de aprenentatge: L’ordre \tweak, Ús de variables per als ajustaments de disposició.


LilyPond — Manual d’aprenentatge v2.23.10 (branca de desenvolupament).