4.1.1 Bevezetés a LilyPond fájlok szerkezetébe
A LilyPond bemeneti fájlok szerkezetére egy tipikus példa:
\version "2.24.4" \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ó.