1.4 Gyakori hibák

Az alábbi hibajelenségek gyakran előfordulnak, ugyanakkor az okuk nem mindig egyértelmű vagy könnyen megtalálható. Ha azonban egyszer megértjük a természetüket, gyorsan meg lehet rájuk találni a megoldást.


A kotta nem fér ki az oldalra

Ha a kotta jobb oldalra „lefolyik” az oldalról, vagy rendkívül össze van sűrítve, szinte mindig hibás hanghosszúságról van szó, amely miatt egy ütemben az utolsó hang túlnyúlik az ütemvonalom. Ez nem számít hibának, de ha sok ilyen van egymás után, akkor a sor nem tud megtörni, mert sortörés csak olyan ütemek végén helyezkedhet el, amelyek végén nem nyúlik túl hang.

A hibás ritmus könnyen megtalálható ütemhatár-ellenőrzésekkel: ld. a Bar and bar number checks c. szakaszt.

Ha sok ilyen rendhagyó ütemre van szükség, akkor láthatatlan ütemvonalat kell oda beszúrni, ahol a sortörés megengedett. Ennek módját a Bar lines c. szakasz írja le.


Egy kottasorral több van a kelleténél

Ha a kontextusokat nem explicite hozzuk létre a \new paranccsal, akkor minden figyelmeztetés nélkül létrejön egy új kontextus ott, ahol olyan parancs fordul elő, amely a létező kontextusban nem alkalmazható. Egyszerű kottákban a kontextusok automatikus létrehozása hasznos, és a legtöbb példa hasznát veszi ennek az egyszerűsítésnek. De olykor ez nem várt kottasorok vagy tételek megjelenését eredményezheti. Például a következő kódtól azt várnánk, hogy a kottasorban minden kottafej piros lesz, miközben valójában az eredmény két kottasor, mely közül az alsóban alapértelmezett színű, fekete kottafejek lesznek.

\override Staff.NoteHead.color = #red
\new Staff { a }

[image of music]

Ez azért történik, mert a Staff kontextus nem létezik az \override parancs helyén, így létrejön, a finomhangolás pedig az így létrehozott kottasorra fog vonatkozni, nem a \new Staff paranccsal létrehozott kottasorra. A példa helyesen:

\new Staff {
  \override Staff.NoteHead.color = #red
  a
}

[image of music]

Másik példánkban egy \relative blokk szerepel egy \repeat blokkon belül, ami két kottasort eredményez, amely közül a második később kezdődik, mint az első, mert a \repeat parancs hatására két \relative blokk keletkezik, amik implicit módon létrehoznak egy-egy Staff és Voice kontextust.

\repeat unfold 2 {
  \relative { c' d e f }
}

[image of music]

A megoldás a \repeat és a \relative parancsok felcserélése, a következő módon:

\relative {
  \repeat unfold 2 { c' d e f }
}

[image of music]


Hiba a ../ly/init.ly fájlban

Különféle rejtélyes hibaüzenetek jelenhetnek meg, melyek a ‘../ly/init.ly’ fájlban található szintaktikai hibára utalnak, ha a forrásfájl nem jól formált, például nem egyezik a nyitó és csukó kapcsos zárójelek vagy idézőjelek száma.

A leggyakoribb hiba a hiányzó } karakter egy blokk, pl. \score blokk végén. A megoldás kézenfekvő: ellenőrizni kell, hogy minden kapcsos zárójelnek megvan-e a párja. A Hogyan működnek a LilyPond bemeneti fájlok? lecke írja le a forrásfájlok helyes szerkezetét. Egy olyan szövegszerkesztő használatával, mely kiemeli a zárójelpárokat, elkerülhetőek az ilyen hibák.

Egy másik gyakori ok az, hogy nincs szóköz a dalszöveg utolsó szótagja és a dalszöveg blokk záró kapcsos zárójele között. Enélkül az elválasztás nélkül a kapcsos zárójel a szótag részének számít. Emellett minden kapcsos zárójel körül érdemes szóközt vagy sortörést hagyni. A jelenség magyarázata a Lyrics explained c. szakaszban olvasható.

A hiba akkor is előfordulhat, amikor egy záró idézőjel (") hiányzik. Ebben az esetben a hiba egy közeli sorban jelentkezik. A pár nélküli idézőjel általában néhány sorral feljebb található.


Unbound variable % hibaüzenet

Ez a hiba akkor fordul elő (egy „GUILE signaled an error ...” hibaüzenettel együtt), amikor a LilyPondba ágyazott Scheme kód LilyPond formátumú megjegyzést tartalmaz Scheme formátumú helyett.

A LilyPondban a megjegyzések százalékjellel (%) kezdődnek, és nem használhatóak Scheme kódon belül. A Scheme kódban a megjegyzések pontosvesszővel (;) kezdődnek.


FT_Get_Glyph_Name hibaüzenet

Ez a hiba azt jelzi, hogy a bemeneti fájl egy nem ASCII karaktert tartalmaz, ugyanakkor nem UTF-8 karakterkódolással lett elmentve. Részletekért ld. a Text encoding c. szakaszt.


LilyPond — Használat v2.23.82 (development-branch).