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ó.


LilyPond — Tankönyv v2.24.4 (stable-branch).