3.1.1 Bevezetés a LilyPond fájlok szerkezetébe
A LilyPond bemeneti fájlok szerkezetére egy tipikus példa:
\version "2.22.2"
\header { }
\score {
...összetett zenei kifejezés... % ide jön a zene!
\layout { }
\midi { }
}
Ennek az alapvető mintának sok változata lehetséges, de ez a példa jó kiindulási alapot jelent.
Eddig egyik példa sem használta a \score{} parancsot. Ennek oka, hogy
a LilyPond automatikusan hozzáadja az egyszerű bemenethez a szükséges
parancsokat. A következő bemenet például:
\relative {
c''4 a d c
}
a következő rövidítése:
\book {
\score {
\new Staff {
\new Voice {
\relative {
c''4 a b c
}
}
}
\layout { }
}
}
Más szóval, ha a bemenet egyetlen zenei kifejezést tartalmaz, a LilyPond úgy értelmezi a fájlt, mintha a zenei kifejezés körül már szerepelnének a fenti parancsok.
Figyelem! A dokumentációban sok példa nem tartalmazza a
\new Staff és \new Voice parancsokat, így azok implicite kerülnek
létrehozásra. Ez egyszerű példáknál jól működik, de bonyolultabb esetekben,
főleg, ha más parancsokat is használunk, a kontextusok implicit létrehozása
meglepő kimenetet eredményezhet, például nemkívánatos kottasorok jelenlétét.
A kontextusok explicit megadásának módja a Kontextusok és ábrázolók c.
részben olvasható.
Figyelem: Többszólamú zeneművek esetén ajánlott explicit módon létrehozni a kottasorokat és az azon belüli szólamokat.
Egyelőre térjünk vissza az első példánkhoz, és vizsgáljuk meg csak a
\score parancsot.
A \score blokkon belül először pontosan egy zenei kifejezésnek kell
következnie.
Emlékezzünk arra, hogy egy zenei kifejezés lehet egy hang is, de akár
egy olyan nagy összetett kifejezés is, mint:
{
\new StaffGroup <<
...egy teljes Wagner-opera zenei anyaga...
>>
}
Mivel mindez egy { ... } blokkban szerepel, egy zenei
kifejezésnek számít.
Ahogy korábban láttuk, a \score blokk a zenén kívül más definíciókat is
tartalmazhat, mint például:
\score {
{ c'4 a b c' }
\header { }
\layout { }
\midi { }
}
Ez a három parancs – \header, \layout és \midi –
speciális: az eddigi parancsokkal ellentétben nem zenei kifejezések, és
nem azok részei. A \score blokkon belül vagy kívül is elhelyezkedhetnek
– például a \header (fejléc) blokk, melyben a kotta adatait (pl. cím,
szerző stb.) lehet megadni, legtöbbször a \score parancs előtt szerepel,
ahogy a szakasz elején található példában is látható.
A két további, még ismeretlen parancs: \layout {} és
\midi {}. Ezek ebben a formában rendre azt jelentik, hogy a LilyPond
kottaképet, ill. hangzó anyagot állítson elő. Teljes leírásuk a Kottaírás
Kézikönyvében található, a
Score layout és a
Creating MIDI files szakaszokban.
Egy fájlban több \score blokk lehet. Mindegyik egy-egy zeneművet
vagy tételt jelöl, de ezek egy kimeneti fájlban fognak megjelenni. Nem
szükséges \book blokkba foglalni őket – ez implicite megtörténik.
Ha azonban több kimeneti fájlt szeretnénk kapni egy forrásfájlból, akkor több
\book blokkot kell megadnunk – kimeneti fájlonként egyet-egyet.
Összegezve:
Minden \book blokk külön kimeneti fájlt eredményez (pl. egy-egy PDF
állományt). Ha nem szerepel explicit módon a forráskódban, akkor a LilyPond
körülveszi az egész forráskódot egy \book blokkal.
Egy \book blokkon belül minden \score blokk különálló zenei
egységet jelöl.
Minden \layout blokk arra a \score vagy \book blokkra
érvényes, amelyben szerepel – tehát egy \score blokkon belüli
\layout blokk csakis arra az egy \score blokkra vonatkozik,
de egy \score blokkon kívüli \layout blokk a \score
blokkot tartalmazó (akár explicit, akár implicit) \book blokkon belüli
minden \score blokkra érvényes.
A részletek a Multiple scores in a book c. részben olvashatók.
Fájljainkat áttekinthetőbbé tehetjük változók definiálásával (ld. Művek szervezettebbé tétele változók segítségével). Minden sablonban ezt a módszert használjuk:
dallam = \relative {
c'4 a b c
}
\score {
\dallam
}
Amikor a LilyPond feldolgozza ezt a fájlt, a dallam változó értékét
(azaz mindent az egyenlőségjel utáni zenei kifejezésből) beszúrja mindenhova,
ahol \dallam hivatkozást lát. A változók nevére nincs sok megkötés – a
következők mind helyes példák: dallam, jobbkéz, fuvola,
BII stb. A Kevesebb gépelés változókkal és függvényekkel c.
szakasz további információkat tartalmaz. Mindössze annyi a korlátozás, hogy a
változónevek csak betűket tartalmazhatnak, és nem ütközhetnek a
LilyPond parancsok neveivel. A pontos szabályok a
File structure c.
részben vannak leírva.
Lásd még
A bemeneti formátum teljes definíciója a File structure c. szakaszban található.