4.1.1 Introducció a l’estructura dels fitxers del LilyPond
Un exemple bàsic de fitxer d’entrada del LilyPond és el següent:
\version "2.25.22" \header { } \score { … expressió musical composta … % tota la música va aquí \layout { } \midi { } }
Hi ha moltes variacions d’aquest esquema bàsic, però l’exemple constitueix un punt de partida útil.
Fins al moment, cap dels exemples que heu pogut veure utilitza la
instrucció \score{}
. Això és així perquè el LilyPond
afegeix automàticament les ordres addicionals que es requereixen
quan li proporcionem una entrada senzilla. El LilyPond tracta una
entrada com aquesta:
\relative { c''4 a d c }
com una abreviatura d’aquesta altra:
\book { \score { \new Staff { \new Voice { \relative { c''4 a b c } } } \layout { } } }
En altres paraules, si l’entrada consta d’una única expressió musical, el LilyPond interpreta el fitxers com si l’expressió musical estigués rodejada per un embolcall fet per les instruccions que acabem de veure.
¡Advertiment! Molts dels exemples que apareixen a la
documentació del LilyPond ometen les instruccions \new
Staff
i \new Voice
, deixant que es creïn de forma
implícita. Això funciona bé per a exemples senzills, però per a
exemples més complicats, especialment quan s’usen instruccions
addicionals, la creació implícita dels contextos poden donar lloc
a resultats inesperats, fins i tot en ocasions crear pentagrames
no desitjats. La forma de crear contextos de forma explícita
s’explica a Contextos i gravadors.
Nota: Quan s’escriuen més d’unes poques línies de música, es recomana crear sempre els pentagrames i les veus de forma explícita.
En tot cas, per ara anem a tornar al primer exemple per examinar
l’ordre \score
, deixant les altres en la seva forma
predeterminada.
Un bloc \score
sempre ha de contenir una expressió musical
única, que ha d’aparèixer immediatament després de la instrucció
\score
. Recordeu que una expressió musical pot ser
qualsevol cosa, des d’una sola nota fina una enorme expressió
composta com ara
{ \new StaffGroup << … inseriu aquí la partitura completa d'una òpera de Wagner … >> }
A causa que tot es troba dins de { … }
, compta com
una expressió musical.
Com hem vist anteriorment, el bloc \score
pot contenir
altres coses, com ara
\score { { c'4 a b c' } \header { } \layout { } \midi { } }
Observeu que aquestes tres instruccions (\header
,
\layout
i \midi
) són especials: a diferència de la
resta de les instruccions que comencen amb una barra invertida
(\
), no són expressions musicals i no formen part de
cap expressió musical. Per tant, es poden posar dins d’un bloc
\score
o a fora d’ell. De fet, aquestes instruccions se
situen en general fora del bloc \score
(per exemple,
\header
se sol col·locar abans de la instrucció
\score
, com mostra l’exemple que apareix al principi de la
secció.)
Dues instruccions més que no hem vist són \layout { }
i \midi { }
. Si apareixen tal i com es mostren aquí, fan
que el LilyPond produeixi una sortida impresa i una sortida MIDI,
respectivament. Es descriuen amb tot detall al manual de
Referència de la notació, a Disposició de la partitura
i a Creació de sortida MIDI.
Podem escriure diversos blocs \score
. Cada un d’ells rebrà
el mateix tractament que una partitura independent, però es
combinaran tots junts a un fitxer de sortida únic. No fa falta
cap instrucció \book
, es crearà un implícitament. No
obstant, si voleu fitxers de sortida separats a partir d’un únic
fitxer .ly, aleshores cal utilitzar l’ordre
\book
per separar les diferents seccions: cada bloc
\book
produeix un fitxer de sortida diferent.
En resum:
Cada bloc \book
crea un fitxer de sortida diferent (per
exemple, un fitxer PDF). Si no hem escrit un de forma explícita,
el LilyPond envolta tot el nostre codi d’entrada dins d’un bloc
\book
de forma implícita.
Cada bloc \score
és un tros de música separat dins d’un
bloc \book
.
Cada bloc \layout
afecta el bloc \score
o
\book
dins del qual apareix (és a dir, un bloc
\layout
dins d’un bloc \score
) afecta solament a
aquest bloc \score
, però un bloc \layout
fora d’un
bloc \score
(que per això està dins d’un bloc
\book
, ja sigui explícit o implícitament) afecta als blocs
\score
que estan dins d’aquest \book
.
Per veure més detalls, consulteu Diverses partitures a un llibre.
Una altra magnifica drecera és la possibilitat de definir variables com es mostra a Organitzar les peces mitjançant variables. Totes les plantilles fan servir el següent:
melodia = \relative { c'4 a b c } \score { \melodia }
Quan el LilyPond examina aquest fitxer, agafa el valor de
melodia
(tot el que hi ha després del signe igual) i
l’insereix a tot arreu que veu \melodia
. No es requereix
una cura especial amb el nom (pot ser melodia
,
global
, CompasArmadura
, madretadelpiano
o
fulanet
o qualsevol altre). Recordeu que pot ser gairebé
qualsevol nom que se us acudeixi, sempre i quan contingui sols
caràcters alfabètics i sigui diferent a qualsevol dels noms
d’instrucció del LilyPond. Per veure més detalls, consulteu
Estalvi de tecleig mitjançant variables i funcions. Les
limitacions exactes que afecten els noms de variable es detallen a
Estructura del fitxer.
Vegeu també
Per veure una definició completa del format del codi d’entrada, consulteu Estructura del fitxer.