@c -*- coding: utf-8; mode: texinfo; documentlanguage: hu -*- @ignore Translation of GIT committish: ef7ee24e2aee81dd97888b4533ab7eae038ce666 When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' Guide, node Updating translation committishes.. @end ignore @include included/generating-output.itexi @c \version "2.19.21" @node Első lecke @chapter Első lecke @translationof Tutorial Tankönyvünk első leckéje bemutatja a LilyPond nyelvét, és elmagyarázza, hogyan kell nyomtatható kottát előállítani. @menu * Fájlok fordítása:: * Bemeneti fájlok írása:: * Hibák kezelése:: * Hogyan olvassuk a dokumentációt?:: @end menu @node Fájlok fordítása @section Fájlok fordítása @translationof Compiling a file @menu * Zene bevitele:: * Mac OS X:: * Windows:: * Parancssor:: @end menu @node Zene bevitele @subsection Zene bevitele @translationof Entering input @cindex fordítás @cindex első példa @cindex kis- és nagybetűk különbsége @menu * Kimenet előállítása:: @end menu A LilyPond bemeneti fájljai egyszerű szöveges állományok. Egy kotta létrehozásához egy bemeneti fájlban (másnéven forrásfájlban) kell azt szöveges formában leírni. @qq{Fordítás} a neve annak a folyamatnak, melynek során egy LilyPond formátumú forrásfájlból egy nyomtatható kotta és (szabadon választhatóan) egy meghallgatható MIDI fájl áll elő. Első példánk megmutatja, hogy néz ki egy egyszerű bemenet. A LilyPond forrásfájlba ezt írva: @example \version "@w{@version{}}" @{ c' e' g' e' @} @end example @noindent az alábbi eredményt kapjuk: @c in this case we don't want verbatim @lilypond[quote] { c' e' g' e' } @end lilypond @warning{A LilyPondban a hangok és a dalszöveg köré mindig @strong{@{ kapcsos zárójeleket @}} kell írni. A kapcsos zárójeleket legtöbbször szóközzel vesszük körül, hacsak a sor elején vagy végén nem állnak, hogy környezetükkel ne folyjanak egybe, így kétértelműséget okozván. A tankönyv példáiban olykor a rövidség kedvéért elhagyjuk a kapcsos zárójeleket, de a forrásfájlokban nem szabad elfelejteni kitenni őket! A @ref{Hogyan olvassuk a dokumentációt?} c. fejezetben olvasható több információ a tankönyv példáiról és megjelenítésük módjáról.} Továbbá a LilyPond bemenete @strong{érzékeny a kis- és nagybetűk különbségére}: @w{@code{@{ c d e @}}} érvényes bemenet; @w{@code{@{ C D E @}}} hibát eredményez. @smallspace @node Kimenet előállítása @unnumberedsubsubsec Kimenet előállítása @translationof Producing output @cindex PDF fájl @cindex megtekintés @cindex szövegszerkesztők Ez a szakasz arról szól, hogy milyen parancsokat kell futtatni a kotta előállításához és a kimenet megtekintéséhez a felhasználó operációs rendszerétől függően. @itemize @item @ref{MacOS X, @sourceimage{logo-macosx,,,}} @ref{MacOS X, MacOS X} (graphical) @item @ref{Windows, @sourceimage{logo-windows,,,}} @ref{Windows, Microsoft Windows} (graphical) @item @ref{Parancssor, @sourceimage{logo-linux,,,} @sourceimage{logo-freebsd,,,} @sourceimage{logo-macosx,,,} @sourceimage{logo-windows,,,} } @ref{Parancssor, Minden operációs rendszr} (parancssor) @end itemize Bizonyos szövegszerkesztőkbe beépíthető LilyPond támogatás, ami hatékonyabb szerkesztést tesz lehetővé; erről a @rprogram{Text editor support} c. fejezet ír. @warning{Amikor a LilyPond első alkalommal fut, egy-két percig várni kell, amíg megvizsgálja a rendszer betűtípusait. Ezután természetesen sokkal gyorsabban fog futni!} @node Mac OS X @subsection Mac OS X @translationof MacOS X @cindex LilyPond futtatása MacOS X-en @cindex MacOS X, LilyPond futtatása @lilypadOSX @node Windows @subsection Windows @cindex LilyPond futtatása Windows-on @cindex Windows, LilyPond futtatása @lilypadWindows @node Parancssor @subsection Parancssor @translationof Command-line @cindex LilyPond futtatása Unixon @cindex Unix, LilyPond futtatása @lilypadCommandLine @node Bemeneti fájlok írása @section Bemeneti fájlok írása @translationof How to write input files @menu * Egyszerű kottázás:: * A bemeneti fájlok jellemzői:: @end menu @node Egyszerű kottázás @subsection Egyszerű kottázás @translationof Simple notation @cindex egyszerű lejegyzés @cindex lejegyzés, egyszerű @menu * Hangmagasság:: * Ritmusérték:: * Szünetek:: * Ütemmutató:: * Tempójelzés:: * Kulcs:: * Mindez együtt:: @end menu A LilyPond bizonyos elemeket automatikusan hozzáad a kottához. A következő példában csak négy hangmagasságot adunk meg, de a LilyPond kirakja a kulcsot és az ütemmutatót, valamint a hangok hosszúságát alapértelmezetten negyednek veszi. @lilypond[verbatim,quote] { c' e' g' e' } @end lilypond @noindent Természetesen minden megváltoztatható, de a legtöbb esetben az alapbeállítás megfelelő. @node Hangmagasság @unnumberedsubsubsec Hangmagasság @translationof Pitches @cindex hangmagasság @cindex relatív mód @cindex aposztróf @cindex vessző @cindex módosítójelek és relatív mód @funindex \relative @funindex relative @funindex ' @funindex , Fogalomtár: @rglos{pitch}, @rglos{interval}, @rglos{scale}, @rglos{middle C}, @rglos{octave}, @rglos{accidental}. A hangok beírásának legegyszerűbb módja a @code{\relative} mód. Ebben a módban minden hang automatikusan abba az oktávba kerül, melyben az előző hanghoz a legközelebb áll, vagyis legfeljebb kvárt távolságra. Ennek szemléltetésére gépeljünk be egy zenei alapformulát, egy @notation{skálát}, melyben minden hang szekund távolságra van az előzőtől. (Figyelem: mivel angolul a h hang neve b, ezért a LilyPond forrásban is alapesetben b-t kell írni h helyett!) @c KEEP LY @lilypond[verbatim,quote] % megadjuk, hogy az első viszonyítási hang az egyvonalas c legyen \relative { c' d e f g a b c } @end lilypond Itt a relatív mód első viszonyítási hangja az @notation{egyvonalas c}. Minden hang az előzőhöz a lehető legközelebb helyezkedik el: az első @code{c} az egyvonalas c-hez legközelebb eső c hangot jelenti, vagyis az egyvonalas c-t. A második, d hang ehhez a hanghoz esik legközelebb, vagyis ugyanúgy az egyvonalas oktávba kerül. Legfeljebb kvárt nagyságú hangközöket tartalmazó dallamok táplálhatók be így a legegyszerűbben. @lilypond[verbatim,quote] \relative { d' f a g c b f d } @end lilypond @noindent Természetesen nem szükséges, hogy a relatív mód első viszonyítási hangja megegyezzen a tényleges első hanggal, ahogy az előző példában is láttuk, ahol az első hang -- a @code{d} -- az egyvonalas c-hez legközelebb eső hang, az egyvonalas d. A @code{@w{\relative c'}} parancsban megadott első viszonyítási hanghoz @code{'} vagy @code{,} karaktereket hozzáadva vagy elvéve változtatható a kezdőoktáv: @c KEEP LY @lilypond[verbatim,quote] % kétvonalas oktáv \relative { e'' c a c } @end lilypond A relatív mód kezdetben bonyolultnak tűnhet, de valójában a legtöbb dallamot így lehet legkönnyebben bevinni. Nézzük, hogyan néz ki a relatív hangmagasság-számítás a gyakorlatban. A h hangról egy kvárton belül felfelé a c, d és e hangok helyezkednek el, míg lefelé az a, g és f hangok. Tehát ha egy h-t követő hang c, d vagy e, akkor a h fölé, míg ha a, g vagy f, akkor a h alá kerül. @lilypond[verbatim,quote] \relative { b' c % felfelé szekund, lefelé szeptim, így: felső c b d % felfelé terc, lefelé szext, így: felső d b e % felfelé kvárt, lefelé kvint, így: felső e b a % felfelé szeptim, lefelé szekund, így: alsó a b g % felfelé szext, lefelé terc, így: alsó g b f % felfelé kvint, lefelé kvárt, így: alsó f } @end lilypond Pontosan ugyanez marad a működés, ha bármelyik hang előtt kereszt vagy bé áll. A @notation{módosítójelek} a relatív magasságszámítás során @strong{egyáltalán nem számítanak}. A számítás során csak a vonalrendszerben elfoglalt pozíciónak (azaz a diatonikus magasságnak) van szerepe. Kvártnál nagyobb hangközugrást úgy érhetünk el, hogy @code{'} vagy @code{,} karaktereket helyezünk a hang után. Az @code{'} egy @notation{oktáv}nyi emelkedést, a @code{,} egy oktávnyi süllyedést jelent. @lilypond[verbatim,quote] \relative { a' a, c' f, g g'' a,, f' } @end lilypond @noindent Amennyi karaktert használunk, annyi oktáv különbséget érhetünk el, pl. @code{''} vagy @code{,,} két oktávnyi emelést, ill. süllyesztést jelent -- de vigyázzunk, soha ne használjunk idézőjelet (@code{"}) két aposztróf (@code{''}) helyett! Ez ugyanaz a mechanizmus, amivel a relatív mód első viszonyítási hangját módosíthatjuk. @node Ritmusérték @unnumberedsubsubsec Ritmusérték @translationof Durations (rhythms) @cindex hanghosszúság @cindex hosszúság @cindex ritmus @cindex egészkotta @cindex félkotta @cindex negyedkotta @cindex pontozás @cindex hosszúság jelzése Fogalomtár: @rglos{beam}, @rglos{duration}, @rglos{whole note}, @rglos{half note}, @rglos{quarter note}, @rglos{dotted note}. A hangok @notation{ritmusértékét} a hangmagasság után írt számmal határozhatjuk meg. @code{1} jelenti az egészkottát, @code{2} a félkottát, @code{4} a negyedkottát és így tovább. A @notation{gerendázást} automatikusan elvégzi a LilyPond. Ha nincs megadva a hosszúság, az előző hang hossza marad érvényben. Az első hang alapértelmezetten negyed hosszúságú. @lilypond[verbatim,quote] \relative { a'1 a2 a4 a8 a a16 a a a a32 a a a a64 a a a a a a a a2 } @end lilypond A @notation{pontozott hangok} után annyi pontot (@code{.}) kell írni, ahányszoros a pontozás. A pontozott hangok ritmusértékét mindig meg kell adni számmal. @lilypond[verbatim,quote] \relative { a' a a4. a8 a8. a16 a a8. a8 a4. } @end lilypond @node Szünetek @unnumberedsubsubsec Szünetek @translationof Rests @cindex szünet @cindex szünet jelzése Fogalomtár: @rglos{rest}. A @notation{szünetek} megadása hasonlóképpen történik, mint a hangoké, csak a hangmagasság megjelölése helyett @code{r}@tie{} betűt kell írni: @lilypond[verbatim,quote] \relative { a' r r2 r8 a r4 r4. r8 } @end lilypond @node Ütemmutató @unnumberedsubsubsec Ütemmutató @translationof Time signature @cindex ütemmutató @funindex \time @funindex time Fogalomtár: @rglos{time signature}. Az @notation{ütemmutató} beállítására a @code{\time} parancs szolgál: @lilypond[verbatim,quote] \relative { \time 3/4 a'4 a a \time 6/8 a4. a \time 4/4 a4 a a a } @end lilypond @node Tempójelzés @unnumberedsubsubsec Tempójelzés @translationof Tempo marks @cindex tempójelzés @cindex metronómjelzés @funindex \tempo @funindex tempo Fogalomtár: @rglos{tempo indication}, @rglos{metronome}. Az @notation{tempójelzés} és @notation{metronómjelzés} a @code{\tempo} parancs segítségével álítható be: @lilypond[verbatim,quote] \relative c'' { \time 3/4 \tempo "Andante" a4 a a \time 6/8 \tempo 4. = 96 a4. a \time 4/4 \tempo "Presto" 4 = 120 a4 a a a } @end lilypond @node Kulcs @unnumberedsubsubsec Kulcs @translationof Clef @cindex kulcs @cindex violinkulcs @cindex altkulcs @cindex tenorkulcs @cindex basszuskulcs @funindex \clef @funindex clef Fogalomtár: @rglos{clef}. A @notation{kulcs} beállítása a @code{\clef} paranccsal lehetséges: @lilypond[verbatim,quote] \relative { \clef treble c'1 \clef alto c1 \clef tenor c1 \clef bass c1 } @end lilypond @node Mindez együtt @unnumberedsubsubsec Mindez együtt @translationof All together Alább látható egy rövid példa, mely az eddig tanult elemeket mutatja be: @lilypond[verbatim,quote] \relative { \clef "bass" \time 3/4 \tempo "Andante" 4 = 120 c,2 e8 c' g'2. f4 e d c4 c, r } @end lilypond @seealso Referencia: @ruser{Writing pitches}, @ruser{Writing rhythms}, @ruser{Writing rests}, @ruser{Time signature}, @ruser{Clef}. @node A bemeneti fájlok jellemzői @subsection A bemeneti fájlok jellemzői @translationof Working on input files @cindex kapcsos zárójelek @cindex megjegyzés @cindex egysoros megjegyzés @cindex többsoros megjegyzés @cindex kis- és nagybetűk különbsége @cindex kifejezések @cindex verzió @cindex verziószám @funindex \version @funindex { ... } @funindex % @funindex %@{ ... %@} A LilyPond bemeneti fájljai sok tekintetben hasonlítanak a programkódokhoz. Tartalmaznak verziószámot, érzékenyek a kis- és nagybetűk különbségére, az üres helyek (szóközök, újsorok, tabulátorok stb.) pedig nem számítanak. Ún. kifejezéseket lehet alkotni kapcsos zárójelek @{ @} segítségével, megjegyzéseket pedig @code{%} után vagy @w{@code{%@{ ... %@}}} közé lehet írni. Ha esetleg nem lennének világosak a fenti mondatok, sebaj! Magyarázatuk részletesen a következő: @itemize @item @strong{Verzió kezelés}: Minden LilyPond fájlnak tartalmaznia kell egy verziószámot. Ez a verziószám írja le azt, hogy az adott fájl a LilyPond melyik verziójával készült. A verziószámot az alábbi módon adhatjuk meg: @example \version "@w{@version{}}" @end example A verziószámot a LilyPond fájl elején szokás megadni. A verzió megadásának két fontos oka van. Az első az, hogy lehetővé teszi, hogy a bemeneti fájl automatikusan frissüljön, amikor a LilyPond szintakszisa (nyelve) változik. Másodsorban a fájlból í]y kiderül, hogy milyen verziójú LilyPond szükséges a fordításához. Ha a verziószám hiányzik a bemeneti fájlból, a LilyPond fordításkor figyelmeztető üzenetet ír ki. @item @strong{Verzió kezelés}: Minden LilyPond fájlnak tartalmaznia kell egy verziószámot. Ez a verziószám írja le azt, hogy az adott fájl a LilyPond melyik verziójával készült. A verziószámot az alábbi módon adhatjuk meg: @example \version "@w{@version{}}" @end example A verziószámot a LilyPond fájl elején szokás megadni. A verzió megadásának két fontos oka van. Az első az, hogy lehetővé teszi, hogy a bemeneti fájl automatikusan frissüljön, amikor a LilyPond szintakszisa (nyelve) változik. Másodsorban a fájlból így kiderül, hogy milyen verziójú LilyPond szükséges a fordításához. Ha a verziószám hiányzik a bemeneti fájlból, a LilyPond fordításkor figyelmeztető üzenetet ír ki. @item @strong{Érzékeny a kis- és nagybetűk különbségére}: nem mindegy, hogy kisbetűket vagy nagybetűket használunk (pl. @w{@code{a, b, s, t}} nem ugyanaz, mint @w{@code{A, B, S, T}}). A hangneveket mindig kisbetűvel kell írni: @w{@code{@{ c d e @}}} helyes, @w{@code{@{ C D E @}}} hibás bemenet. @item @strong{Az üres helyek nem számítanak}: mindegy, hogy hova hány szóköz, tabulátor vagy újsor kerül. @w{@code{@{ c d e @}}} ugyanazt jelenti, mint @w{@code{@{ c @tie{} @tie{} @tie{} d e @}}} vagy: @example @{ c d e @} @end example @noindent Természetesen ez így nehezen olvasható. Érdemes a blokkokat beljebb kezdeni egy tabulátorral vagy két szóközzel: @example @{ c4 d e @} @end example Azonban az üres helyek @emph{szükségesek}, hogy a nyelv elemeit elkülönítsük. Más szavakkal: üres helyeket @emph{adhatunk} hozzá, de nem mindig @emph{hagyhatunk el}. Mivel hiányzó üres helyek furcsa hibákhoz vezethetnek, ajánlott minden nyelvi elem elé és mögé beilleszteni egyet, például minden kapcsos zárójel elé és mögé. @item @strong{Kifejezések}: a LilyPond bemenete @strong{@{ kapcsos zárójelek @}} között álló @emph{zenei kifejezésekből} épül fel (ezekről később lesz szó), akárcsak a zárójelek @code{()} közé zárt matematikai kifejezések. A kapcsos zárójelek köré javasolt szóközt tenni, hacsak nem a sor elején vagy végén szerepelnek. Egy @code{\} karakterrel kezdődő LilyPond parancs az azt követő kapcsos zárójelpár tartalmával együtt ugyancsak egy zenei kifejezésnek számít (mint például a @q{@w{@code{@bs{}relative @{ @dots{} @}}}}). @cindex megjegyzések @cindex egysoros megjegyzés @cindex többsoros megjegyzés @item @strong{Megjegyzések}: a megjegyzések az emberi olvasó számára írt útmutatók; a LilyPond ezeket figyelmen kívül hagyja, így nem jelennek meg a kimenetben. Kétfajta megjegyzés van. A százalékjel @code{%} egy olyan megjegyzést kezd, mely a sor végéig tart. Egy egysoros megjegyzés mindig az @emph{utána levő} sorral kapcsolatos. @example a4 a a a % most jön a két h hang b2 b @end example A többsoros megjegyzés (megjegyzésblokk) több sort is közrefoghat. A @code{%@{} és @code{%@}} jelek között minden megjegyzésnek számít. Figyelem, a megjegyzésblokkok nem ágyazhatóak egymásba! Ez azt jelenti, hogy nem lehet egy megjegyzésblokkot egy másikon belülre tenni, mert az első @code{%@}} jelnél véget ér @emph{mindkét} megjegyzésblokk. A következő részlet a megjegyzések használatára mutat példát: @example % Ez itt a "Hull a pelyhes fehér hó" dallama c4 c g' g a a g2 %@{ Ez a sor és az alatta levők nem számítanak bele a kimenetbe, mert megjegyzésblokkban szerepelnek. f f e e d d c2 %@} @end example @end itemize @node Hibák kezelése @section Hibák kezelése @translationof Dealing with errors @cindex troubleshooting Sometimes LilyPond doesn't produce the output you expect. This section provides some links to help you solve the problems you might encounter. @menu * General troubleshooting tips:: * Some common errors:: @end menu @node General troubleshooting tips @subsection General troubleshooting tips Troubleshooting LilyPond problems can be challenging for people who are used to a graphical interface, because invalid input files can be created. When this happens, a logical approach is the best way to identify and solve the problem. Some guidelines to help you learn to do this are provided in @rprogram{Troubleshooting}. @node Some common errors @subsection Some common errors @cindex common errors @cindex errors, common There are a few common errors that are difficult to troubleshoot based simply on the error messages that are displayed. These are described in @rprogram{Common errors}. @node Hogyan olvassuk a dokumentációt? @section Hogyan olvassuk a dokumentációt? @translationof How to read the manuals @menu * Kapcsos zárójelek elhagyása:: * Kattintható példák:: * A dokumentáció áttekintése:: @end menu @node Kapcsos zárójelek elhagyása @subsection Kapcsos zárójelek elhagyása @translationof Omitted material @cindex hogyan olvassuk a kézikönyvet @cindex kézikönyv @cindex példák @cindex sablonok @cindex tippek A LilyPond bemenete vagy @code{@{ @}} jelek között, vagy pedig egy @q{@w{@code{@bs{}relative @{ @dots{} @}}}} blokkban kell, hogy álljon, ahogy azt a @ref{A bemeneti fájlok jellemzői} c. fejezetben láttuk. A tankönyv további részében a legtöbb példában ezt elhagyjuk. A példák kipróbálásához a kimenet kimásolható és beilleszthető, de mindig köré @strong{kell} rakni a @code{@{ @}} blokkot, ha nem szerepel benne: @example @{ @dots{}a példa ide kerül@dots{} @} @end example Emellett ne felejtsük el, hogy minden LilyPond fájlban fel kell tüntetni a @code{\version}számot is. Mivel a kézikönyv példái csak kódrészletek, nem fájlok, nem tartalmazzák a @code{\version}számot, de mi ne feledkezzünk el feltüntetni a fájlok elején. @node Kattintható példák @subsection Kattintható példák @translationof Clickable examples A legtöbb ember úgy tanul bele egy program használatába, hogy a gyakorlatban próbálgatja azt, és játszadozik vele. Ez a LilyPonddal is lehetséges. A kézikönyv HTML változatában bármelyik képre kattintva megtekinthető a pontos bemenet, amelyből a LilyPond a képet generálta. Ez az alábbi példán kipróbálható: @c no verbatim here @lilypond[quote] \relative { c''4-\markup { \bold \huge { Click here. } } } @end lilypond A @qq{ly snippet} kezdetű szakasz kimásolásával és beillesztésével már rendelkezésre áll egy kiindulópont a kísérletezéshez. A kép egy az egyben előáll (ugyanakkora méretben), ha a @qq{Start cut-&-pastable section} résztől kezdve a fájl végéig kimásoljuk a szöveget. @ignore This is item 825 @n ode Keyboard navigation @s ubsection Keyboard navigation @warning{Ez a lehetőség csak a HTML kézikönyvben elérhető,} @c TODO: once this is figured out, insert it here. We are currently working on this feature. @end ignore @node A dokumentáció áttekintése @subsection A dokumentáció áttekintése @translationof Overview of manuals A LilyPondhoz nagyon sok dokumentáció áll rendelkezésre. Az új felhasználóknak emiatt gyakran nem világos, hogy mely részeket kell elolvasniuk, és olykor alapvető fontosságú részeket hagynak ki. @warning{A dokumentáció fontos részeit erősen ajánlott elolvasni, különben a későbbi részek megértése jóval nehezebb lesz.} @itemize @item @strong{@emph{Legelőször is}}: a tankönyvből az @ref{Első lecke}, majd az @ref{Elemi kottaírás} fejezeteket kell elolvasni. Amennyiben egy zenei fogalom jelentése nem világos, a @rglosnamed{Top, Zenei fogalomtárban} lehet megkeresni. @item @strong{Egy teljes darab írása előtt}: a tankönyv @ref{Alapfogalmak} c. fejezetét javasolt elolvasni. Ezután a @rusernamed{Top, Kottaírás kézikönyvében} lehet az előforduló kottaelemek beviteli módját megnézni. @item @strong{Az alapértelmezett kimenet megváltoztatása előtt}: @ref{A kimenet finomhangolása} olvasandó el. @item @strong{Egy nagy mű bevitele előtt}: a program használatának kézikönyvéből a @rprogramnamed{Suggestions for writing files, Tanácsok LilyPond bemeneti fájlok írásához} c. fejezetet érdemes elolvasni. @end itemize