| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Tweaking basics
| 4.1.1 Introducció a l’ajustament | ||
| 4.1.2 Objectes i interfícies | ||
| 4.1.3 Convencions de noms d’objectes i propietats | ||
| 4.1.4 Mètodes d’ajustament |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Introduction to tweaks
L’‘ajustament’ és un terme del LilyPond que s’usa pels diversos mètodes que l’usuari té a la seva disposició per modificar el procés d’interpretació del fitxer d’entrada i canviar l’aparença de la sortida impresa. Alguns ajustos són mols fàcils d’usar; d’altres són complexos. Però en conjunt, els mètodes d’ajustament disponibles possibiliten aconseguir gairebé qualsevol aparença que desitgem a la música impresa.
En aquesta secció estudiarem els conceptes bàsics que calen per entendre l’ajustament. Més tard donarem un ampli ventall d’ordres llistes per usar, que podreu simplement copiar per obtenir el mateix efecte a les vostres partitures, i al mateix temps mostrarem la forma de construir aquestes ordres perquè pugueu aprendre com desenvolupar els vostres propis ajustaments.
Abans de començar aquest capítol, potser vulgueu donar una ullada a la secció Contextos i gravadors, atès que els contextos, els gravadors i les propietats que es contenen en aquests elements són fonamentals per comprendre i construir els ajustaments.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Objects and interfaces
L’ajustament consisteix en modificar el funcionament i estructure interna del programa LilyPond, per la qual cosa en primer lloc introduirem alguns termes que es fan servir per descriure aquestes operacions i estructures internes.
El terme ‘Objecte’ és un terme genèric que s’usa per referir-se
A les múltiples estructures que el LilyPond construeix durant el
processat d’un fitxer d’entrada. D’aquesta manera, quan es troba
una instrucció com ara \new Staff, es construeix un objecte
nou de tipus Staff. Aleshores, aquest objecte Staff
conté totes les propietats associades amb aquest pentagrama en
particular, per exemple, el seu nom i armadura, a més d’altres
detalls dels gravadors que s’han assignat perquè operin dins del
context del pentagrama. De forma semblant, hi ha objectes que
emmagatzemen les propietats de tota la resta de contextos, com ara
objectes de Voice, objectes de Score, objectes de
Lyrics, així com objectes que representen tots els elements
de notació com ara línies divisòries, caps de les notes,
lligadures, indicacions dinàmiques, etc. Cada objecte té el seu
propi conjunt de valors de propietat.
Certs tipus d’objectes reben noms especials. Els objectes que representen elements de notació sobre la sortida impresa com ara caps de notes, pliques, lligadures d’expressió i d’unió, digitacions, claus, etc., reben el nom de ‘Objectes de presentació’, sovint coneguts com ‘Objectes gràfics’, o abreujadament ‘Grobs’. Encara són objectes, en el sentit genèric que hem mencionat, i també tots ells tenen propietats associades, com la seva posició, mida, color, etc.
Certs objectes de presentació són encara més especialitzats, Les lligadures de fraseig, els reguladores, les indicacions d’octava alta i baixa, i mols altres objectes gràfics no estan situats en un sol lloc: tenen un punt d’inici, un punt final, i un potser altres propietats relacionades amb la seva forma. Els objectes amb una forma estesa com aquests, reben el nom d’«objectes d’extensió» o ‘Spanners’.
Els «spanners» no es poden ajustar després d’haver-se creat. Això
inclou tant a StaffSymbol com a LedgerLineSpanner,
que continuen al llarg de tota la partitura (excepte si si se’ls
dóna fi amb l’ordre \stopStaff i es tornen a crear amb
l’ordre \startStaff.
Encara més, hi ha objectes gràfics ‘abstractes’ que no
imprimeixen res per sí mateixos, sinó que en realitat el que fan
és que recopilen, posicionen i gestionen a altres objectes
gràfics. El exemples habituals són DynamicLineSpanner,
BreakAlignment, NoteColumn,
VerticalAxisGroup, NonMusicalPaperColumn i
semblants. Més tard veurem com s’usen alguns d’ells.
Encara falta explicar què són les ‘Interfícies’. Molts
objectes, tot i que són força diferents, comparteixen
funcionalitats que s’han de processar de la mateixa manera. Per
exemple, tots els objectes gràfics tenen un color, una mida, una
posició, etc., i totes aquestes propietats es processen de la
mateixa forma durant la interpretació del fitxer d’entrada per
part del LilyPond. Per simplificar aquestes operacions internes,
aquestes accions i propietats comunes s’agrupen a un objecte
anomenat grob-interface, interfície d’objecte gràfic. Hi ha
moltes altres agrupacions de propietats comunes com aquesta, i
cadascuna rep un nom que acaba en interface. En total hi
ha més de 100 interfícies d’aquestes. Veurem més endavant perquè
és interessant i d’utilitat per a l’usuari.
Aquests són, en definitiva, els termes principals relatius als objectes que utilitzarem a aquest capítol.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Naming conventions of objects and properties
Ja hem vist certes convencions de nomenclatura d’objectes, a la secció Contextos i gravadors. Aquí, per a una referència més fàcil, presentem una llista dels tipus d’objectes i propietats més comuns, junt amb les convencions segons les quals reben el seu nom, i un parell d’exemples de noms reals. Hem fet servir una ‘A’ majúscula per denotar qualsevol caràcter alfabètic en majúscules, i ‘aaa’ per qualsevol nombre de caràcters alfabètics en minúscula. Altres caràcters es fan servir literalment com estan.
| Objecte o tipus de propietat | Convenció de nomenclatura | Exemples |
|---|---|---|
| Contextos | Aaaa o AaaaAaaaAaaa | Staff, GrandStaff |
| Objecte de presentació | Aaaa o AaaaAaaaAaaa | Slur, NoteHead |
| Gravadors | Aaaa_aaa_engraver | Clef_engraver, Note_heads_engraver |
| Interfícies | aaa-aaa-interface | grob-interface, break-aligned-interface |
| Propietats de contextos | aaa o aaaAaaaAaaa | alignAboveContext, skipBars |
| Propietats d’objectes de presentació | aaa o aaa-aaa-aaa | direction, beam-thickness |
Com podrem veure a la brevetat, les propietats dels diferents tipus d’objecte es poden modificar mitjançant diferents ordres; així doncs, és útil poder reconèixer els tipus d’objectes i propietats a partir dels seus noms.
Referencia de la notació: (notation)Modificació de les propietats section ‘Modificació de les propietats’ in Referència de la notació
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Tweaking methods
L’ordre \override
L’ordre \override | ||
L’ordre \revert | ||
El prefix \once | ||
L’ordre \overrideProperty | ||
L’ordre \tweak | ||
El prefix \single |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\override@translationof The override command
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 (extending)LilyPond Scheme syntax section ‘Sintaxi de l’Scheme del LilyPond’ in Extensions.
\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 | }
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\revert@translationof The revert command
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 | }
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\once@translationof The once prefix
\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 | }
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) | }
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\overrideProperty@translationof The overrideProperty command
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
(extending)Difficult tweaks section ‘Ajustaments difícils’ in Extensions.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\tweak@translationof The tweak command
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 }
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 }
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"
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''>
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] } } }
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] } } }
Referència de la notació: (notation)L’ordre tweak section ‘L'ordre tweak’ in Referència de la notació.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\single@translationof The single prefix
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 | }
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 }
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.
Manual de aprenentatge:
L’ordre \tweak,
Ús de variables per als ajustaments de disposició.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] |
This document was generated by gub on Juliol 13, 2020 using texi2html 1.82.
Altres idiomes: English, česky, deutsch, español, français, italiano, 日本語, nederlands.
Quant a la selecció automàtica de la llengua.