]> git.donarmstrong.com Git - lilypond.git/commitdiff
Doc-hu: translated first section of Fundamental concepts
authorDénes Harmath <harmathdenes@gmail.com>
Tue, 31 Aug 2010 21:27:08 +0000 (23:27 +0200)
committerDénes Harmath <harmathdenes@gmail.com>
Tue, 31 Aug 2010 21:27:08 +0000 (23:27 +0200)
Documentation/hu/learning/fundamental.itely

index b01a29e6a290170739a2a4f5212855f6502a43b3..a4241f8640e98109674ff4770624d061e418b4de 100644 (file)
@@ -16,8 +16,9 @@
 @translationof Fundamental concepts
 @translationof Fundamental concepts
 
-@untranslated
-
+Miután megtanultuk, hogyan állíthatunk elő gyönyörű kottákat egyszerű szöveges
+fájlokból, ebben a szakaszban megismerjük azokat a fogalmakat és technikákat,
+amelyek segítségével hasonlóan gyönyörű, de bonyolultabb kottákat készíthetünk.
 
 @menu
 * Hogyan működnek a LilyPond bemeneti fájlok?::
 @translationof How LilyPond input files work
 @translationof How LilyPond input files work
 
-@untranslated
-
+A LilyPond bemeneti formátuma meglehetősen rugalmas, így a tapasztalt
+felhasználóknak nagy szabadságot ad abban, hogyan strukturálják a
+forrásfájljaikat. De ez a rugalmasság az újdonsült felhasználók számára
+bonyolult lehet. Ez a szakasz elmagyarázza a struktúra nagy részét, az
+egyszerűség kedvéért bizonyos részleteket elnagyolva. A bemeneti formátum
+felépítésének teljes leírása a @ruser{File structure} c. szakaszban olvasható.
 
 @menu
 * Bevezetés a LilyPond fájlok szerkezetébe::
 @translationof Introduction to the LilyPond file structure
 @translationof Introduction to the LilyPond file structure
 
-@untranslated
-
-
-@c index input format
-@c index file structure
-@c index book
-@c index score
-@c ode{\score@{@}} command.  This is because LilyPond automatically
-@c index implicit contexts
-@c index contexts, implicit
-@ref{Kontextusok és ábrázolók}.
-@c ode{\score} command, leaving the others to default.
-@c index header
-@c index layout
-@c index midi
-@c ode{\midi} -- are special: unlike many other commands which begin
-@c ode{\header} is often placed above the @code{\score} command, as the
-@c ode{\layout @{ @}} and @code{\midi @{@}}.  If these appear as
-@c index scores, multiple
-@c index book block, implicit
-@c index implicit book block
-@c ode{\book} command should be used to separate the different
-@c ode{\book} block.
-@c index layout block, effect of location
-@c ode{\book} block in which it appears -- i.e., a @code{\layout}
-@c index variables
-@ref{Művek szervezettebbé tétele változók segítségével}.  All the templates use this
-@c ode{melody} (everything after the equals sign) and inserts it
-@c ode{TimeKey},
-@c ode{pianorighthand}, or @code{foofoobarbaz}.  For more details,
+@c index bemeneti formátum
+@c index fájlstruktúra
+
+A LilyPond bemeneti fájlok szerkezetére egy tipikus példa:
+
+@example
+\version @w{"@version{}"}
+
+\header @{ @}
+
+\score @{
+  @var{...összetett zenei kifejezés...}  % ide jön a zene!
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+@noindent
+Ennek az alapvető mintának sok változata lehetséges, de ez a példa jó
+kiindulási alapot jelent.
+
+@funindex \book
+@funindex book
+@funindex \score
+@funindex score
+@cindex book
+@cindex score
+
+Eddig egyik példa sem használta a @code{\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:
+
+@example
+\relative c'' @{
+  c4 a d c
+@}
+@end example
+
+@noindent
+a következő rövidítése:
+
+@example
+\book @{
+  \score @{
+    \new Staff @{
+      \new Voice @{
+        \relative c'' @{
+          c4 a b c
+        @}
+      @}
+    @}
+    \layout @{ @}
+  @}
+@}
+@end example
+
+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.
+
+@cindex implicit kontextusok
+
+@strong{Figyelem!} A dokumentációban sok példa nem tartalmazza a
+@code{\new Staff} és @code{\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 @ref{Kontextusok és ábrázolók} c.
+részben olvasható.
+
+@warning{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
+@code{\score} parancsot.
+
+A @code{\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:
+
+@example
+@{
+  \new StaffGroup <<
+    @var{...egy teljes Wagner-opera zenei anyaga...}
+  >>
+@}
+@end example
+
+@noindent
+Mivel mindez egy @code{@{ ... @}} blokkban szerepel, egy zenei
+kifejezésnek számít.
+
+Ahogy korábban láttuk, a @code{\score} blokk a zenén kívül más definíciókat is
+tartalmazhat, mint például:
+
+@example
+\score @{
+  @{ c'4 a b c' @}
+  \header @{ @}
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+@funindex \header
+@funindex header
+@funindex \layout
+@funindex layout
+@funindex \midi
+@funindex midi
+@cindex header
+@cindex layout
+@cindex midi
+
+@noindent
+Ez a három parancs -- @code{\header}, @code{\layout} és @code{\midi} --
+speciális: az eddigi parancsokkal ellentétben @emph{nem} zenei kifejezések, és
+nem azok részei. A @code{\score} blokkon belül vagy kívül is elhelyezkedhetnek
+-- például a @code{\header} (fejléc) blokk, melyben a kotta adatait (pl. cím,
+szerző stb.) lehet megadni, legtöbbször a @code{\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: @code{\layout @{ @}} és
+@code{\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 @ruser{Score layout} és a
+@ruser{Creating MIDI files} szakaszokban.
+
+@cindex több kotta
+@cindex implicit book blokk
+@funindex \book
+@funindex book
+
+Egy fájlban több @code{\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 @code{\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
+@code{\book} blokkot kell megadnunk -- kimeneti fájlonként egyet-egyet.
+
+Összegezve:
+
+Minden @code{\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 @code{\book} blokkal.
+
+Egy @code{\book} blokkon belül minden @code{\score} blokk különálló zenei
+egységet jelöl.
+
+@cindex layout blokk helye
+
+Minden @code{\layout} blokk arra a @code{\score} vagy @code{\book} blokkra
+érvényes, amelyben szerepel -- tehát egy @code{\score} blokkon belüli
+@code{\layout} blokk csakis arra az egy @code{\score} blokkra vonatkozik,
+de egy @code{\score} blokkon kívüli @code{\layout} blokk a @code{\score}
+blokkot tartalmazó (akár explicit, akár implicit) @code{\book} blokkon belüli
+minden @code{\score} blokkra érvényes.
+
+A részletek a @ruser{Multiple scores in a book} c. részben olvashatók. 
+
+@cindex változók
+
+Fájljainkat áttekinthetőbbé tehetjük változók definiálásával (ld.
+@ref{Művek szervezettebbé tétele változók segítségével}). Minden sablonban ezt
+a módszert használjuk:
+
+@example
+dallam = \relative c' @{
+  c4 a b c
+@}
+
+\score @{
+  \dallam
+@}
+@end example
+
+Amikor a LilyPond feldolgozza ezt a fájlt, a @code{dallam} változó értékét
+(azaz mindent az egyenlőségjel utáni zenei kifejezésből) beszúrja mindenhova,
+ahol @code{\melody}. hivatkozást lát. A változók nevére nincs sok megkötés -- a
+következők mind helyes példák:  @code{dallam}, @code{jobbKez}, @code{fuvola},
+@code{BII} stb. A @ref{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 az angol abc betűit tartalmazhatják, és nem ütközhetnek a
+LilyPond parancsok neveivel. A pontos szabályok a @ruser{File structure} c.
+részben vannak leírva.
+
+@seealso
+A bemeneti formátum teljes definíciója a
+@ruser{File structure} c. szakaszban található.
+
 @node A kotta egy összetett zenei kifejezés
 @subsection A kotta egy összetett zenei kifejezés
 @translationof Score is a (single) compound musical expression
 @translationof Score is a (single) compound musical expression
 
-@untranslated
+@funindex \score
+@funindex score
+@cindex score
+@cindex összetett zenei kifejezés
 
+Az előző szakaszban (@ref{Bevezetés a LilyPond fájlok szerkezetébe}) már láttuk
+a LilyPond fájlok általános felépítését. De a legfontosabb részt mintha
+átugrottuk volna: mi kerüljön a @code{\score} blokk belsejébe?
+
+Valójában ez sokkal egyszerűbb, mint gondolnánk. Ez a mondat mindent
+megmagyaráz:
 
-@c index score
-@c index contents of a score block
-@c index score block, contents of
-@c index compound music expression
-@c index music expression, compound
 @quotation
+@emph{A @code{\score} blokknak egy összetett zenei kifejezéssel kell
+kezdődnie.}
 @end quotation
-@ref{A zenei kifejezés fogalma}.  In that section, we saw how to
-@c ode{StaffGroup} for this ensemble, which simply groups a number
-@c ode{text} variable are interpreted as lyrics we preface them with
-@c ode{\lyricmode}.  Like @code{\addlyrics}, this switches the input
+
+@noindent
+Az összetett zenei kifejezés fogalmát már tisztáztuk
+@ref{A zenei kifejezés fogalma} c. részben. Láttuk, hogy építhetünk fel nagy
+zenei kifejezéseket kis részekből -- először hangokból, aztán akkordokból stb.
+Most egy összetett zenei kifejezést vizsgálunk meg felülről lefelé. Az
+egyszerűség kedvéért egy zongorakíséretes dal lesz a példánk. Először is
+szükségünk van az énekes és a zongorista szólamára.
+
+@example
+\score @{
+  <<
+    \new Staff = "enek" <<
+    >>
+    \new PianoStaff = "zongora" <<
+    >>
+  >>
+  \layout @{ @}
+@}
+@end example
+
+Elneveztük a két szólamot @qq{enek} és @qq{zongora} néven. Ez nem kötelező,
+de jó szokás, hogy első pillantásra lássuk, melyik szólam mire szolgál.
+
+Emlékezzünk arra, hogy @code{<< ... >>} szolgál több szólam jelölésére. Ennek
+hatására az ének- és a zongoraszólam egymás alatt fog megjelenni a kottában.
+A zongoraszólam két kottasort fog tartalmazni, az énekszólam pedig egy
+kottasort és egy dalszöveget, így mindkettőhöz @code{<< ... >>} blokk kell.
+A dalszöveghez az @code{\addlyrics} parancsot fogjuk használni. Ha szükséges
+feleleveníteni, az @ref{Egyszerű dalok kottázása} c. részben olvashatunk róla.
+
+@lilypond[verbatim,quote,ragged-right]
+\score {
+  <<
+    \new Staff = "enek" <<
+      \new Voice = "dallam" { c'1 }
+      \addlyrics { Szólt }
+    >>
+    \new PianoStaff = "zongora" <<
+      \new Staff = "jobbkez" { c'1 }
+      \new Staff = "bal" { c'1 }
+    >>
+  >>
+  \layout { }
+}
+@end lilypond
+
+Most megvan a teljes struktúra. Az énekszólam egy @code{Voice} kontextust
+tartalmaz a hangoknak, és egy strófányi dalszöveget. A zongoraszólam pedig
+a jobb- és balkéz kottasorait tartalmazza. 
+
+Most elkezdhetjük kitölteni a hangokat. Elkezdhetnénk közvetlenül a Voice
+kontextus belsejébe beleírni, hogy
+
+@example
+\relative c'' @{
+  r4 d8\noBeam g, c4 r
+@}
+@end example
+
+De ha ezt tennénk, a @code{\score} blokk nagyon bonyolult lenne, és nem lehetne
+átlátni a szólamok szerkezetét. Így érdemes változókat használni. A dalszöveg
+változóként való megadására a @code{\lyricmode} parancsot kell használni, hogy
+a LilyPond dalszövegként és ne hangokként értelmezze a változó tartalmát.
+(A dalszöveg egy külön beviteli mód, ezekből még több is van, ld. az
+@ruser{Input modes} c. részt.)
+
+Tehát miután definiáltuk a megfelelő változókat, hivatkoztunk rájuk, és
+basszuskulccsal láttuk el a balkezet, kész egy valódi mű kezdete:
+
+@lilypond[verbatim,quote,ragged-right]
+dallam = \relative c'' { r4 d8\noBeam g, c4 r }
+dalszoveg = \lyricmode { Szólt az Úr, }
+jobbkez = \relative c'' { <g d g,>2~ <g d g,> }
+balkez = \relative c { b2 e2 }
+
+\score {
+  <<
+    \new Staff = "enek" <<
+      \new Voice = "dallam" { \melody }
+      \addlyrics { \dalszoveg }
+    >>
+    \new PianoStaff = "zongora" <<
+      \new Staff = "jobbkez" { \jobbkez }
+      \new Staff = "balkez" {
+        \clef "bass"
+        \balkez
+      }
+    >>
+  >>
+  \layout { }
+}
+@end lilypond
+
+Amikor a @code{\score} blokkot írjuk vagy olvassuk, mindig lassan, gondosan
+járjunk el. Haladjunk kívülről befelé, a magas szintű felépítéstől a részletek
+felé haladva. Nagyban segít, ha ügyelünk a behúzásokra -- minden blokk
+kezdődjön egy tabulátorral beljebb, így az egy szinten levő blokkok ugyanolyan
+mértékben lesznek behúzva.
+
+@seealso
+Referencia: @ruser{Structure of a score}.
+
+
 @node Zenei kifejezések egymásba ágyazása
 @subsection Zenei kifejezések egymásba ágyazása
 @translationof Nesting music expressions
-@translationof Nesting music expressions
 
-@untranslated
+@cindex ideiglenes kottasorok
+@cindex ossia
+
+Ossiák bevitelekor jön jól, hogy kottasorok bármikor, darab közben is
+kezdődhetnek, és bármikor végződhetnek. Álljon itt erre egy példa:
+
+@lilypond[verbatim,quote,ragged-right]
+\new Staff {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f c c }
+      \new Staff {
+        f8 f c
+      }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+@noindent
+Figyeljük meg, hogy a kulcs mérete némileg kisebb, mint a sor elején szereplő
+kulcsé (mint ahogy kulcsváltásnál is).
+
+@cindex kottasorok pozíciója
+
+Az ossia a kottasor fölött is elhelyezkedhet:
+
+@lilypond[verbatim,quote,ragged-right]
+\new Staff = "main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f c c }
+      \new Staff \with {
+        alignAboveContext = #"main" }
+      { f8 f c }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+Ebben a példában a még ismeretlen @code{\with} parancsot használtuk, amelyet
+később ismertetünk. Most elég annyi, hogy a kottasor bizonyos tulajdonságainak
+módosítására szolgál. Itt egy olyan tulajdonságot adunk meg, ami azt mondja,
+hogy az új kottasor a @qq{main} nevű kottasor felett helyezkedjen el
+(ahelyett, hogy alatta helyezkedne el, ami az alapértelmezés).
+
+
+@seealso
+Az ossiákat általában kulcs és ütemmutató nélkül, valamint kisebb méretben
+szedjük. Ehhez további új parancsok kellenek; ld. az @ref{Size of objects} és
+@ruser{Ossia staves} szakaszokat.
 
 
-@c index staves, temporary
-@c index temporary staves
-@c index ossias
-@c index staff, positioning
 @node A gerendák és ívek átfedhetik egymást
 @subsection A gerendák és ívek átfedhetik egymást
 @translationof On the un-nestedness of brackets and ties
-@translationof On the un-nestedness of brackets and ties
 
-@untranslated
+@cindex zárójeltípusok
+@cindex zárójelek egymásba ágyazása
+
+Már sok zárójelfajtával találkoztunk a LilyPond fájlok írása közben. Ezekre
+különböző szabályok vonatkoznak, amelyeket érdemes tisztázni. Ismételjük át
+ezeket a típusokat.
+
+@need 50
+@multitable @columnfractions .3 .7
+@headitem Zárójelfajta
+  @tab Szerep
+@item @code{@{ .. @}}
+  @tab Egymás után megszólaló hangokat tartalmaz
+@item @code{< .. >}
+  @tab Egy akkord hangjait tartalmazza
+@item @code{<< .. >>}
+  @tab Egyszerre megszólaló zenei kifejezéseket tartalmaz
+@item @code{( .. )}
+  @tab Egy ív kezdetét és végét jelöli
+@item @code{\( .. \)}
+  @tab Egy frazeálóív kezdetét és végét jelöli
+@item @code{[ .. ]}
+  @tab Egy kézi gerenda kezdetét és végét jelöli
+@end multitable
+
+A LilyPond világán kívül a különböző fajtájú zárójeleket megfelelően egymásba
+kell ágyazni, pl. így: @code{<< [ @{ ( .. ) @} ] >>}. Tehát a záró
+zárójeleknek pontosan fordított sorrendben kell állniuk, mint a nyitó
+zárójeleknek. A fenti táblázatban szereplő első három típusnál (a blokkoknál)
+ezt a LilyPond is megköveteli. A többi parancsnál ez nem követelmény.
+Valójában ezekre nem is úgy érdemes gondolni, mint a zárójelekre, hanem olyan
+jelzésekre, amelyek zenei elemek kezdetét és végét jelölik.
+
+Tehát például egy frazeálóív kezdődhet egy kézzel megadott gerenda előtt, és
+befejeződhet a gerenda vége előtt -- lehet, hogy nem a legzeneibb megoldás, de
+lehetséges:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+ { g8\( a b[ c b\) a] }
+@end lilypond
+
+Általánosságban az ívek, frazeálóívek, kötőívek és gerendák átnyúlhatnak
+a triolák és előkék határain. A következő példában az 1. sorban egy gerenda,
+a 2. sorban egy kötőív nyúl bele egy triolába, a 3. és 4. sorban pedig
+mindezek mellett még egy kötőív is található két triola között, valamint egy
+frazeálóív, amely túlnyúlik a triolán. 
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+  r16[ g16 \times 2/3 {r16 e'8] }
+  g16( a \times 2/3 {b d) e' }
+  g8[( a \times 2/3 {b d') e'~]}
+  \times 4/5 {e'32\( a b d' e'} a'4.\)
+}
+@end lilypond
 
 
-@c index brackets, nesting
-@c index bracket types
-@c index brackets, enclosing vs. marking
-@c attempt to force this onto a new page
 @node A szólamok zenét tartalmaznak
 @section A szólamok zenét tartalmaznak
 @translationof Voices contain music
-@translationof Voices contain music
 
-@untranslated
 
+Singers need voices to sing, and so does LilyPond.
+The actual music for all instruments in a score
+is contained in Voices -- the most fundamental
+of all LilyPond's concepts.
 
 @menu
 * Hangzatos szólamok::
 @node Hangzatos szólamok
 @subsection Hangzatos szólamok
 @translationof I'm hearing Voices
-@translationof I'm hearing Voices
 
-@untranslated
-
-
-@c index polyphony
-@c index layers
-@c index multiple voices
-@c index voices, multiple
-@c index Voice context
-@c index context, Voice
-@c index simultaneous music
-@c index music, simultaneous
-@c index concurrent music
-@c index music, concurrent
-@c index voices vs. chords
-@c index chords vs. voices
-@c ode{\\}, to place them in separate voices.  Without these, the
-@c index voices, naming
-@c index voices crossing brackets
-@c index slurs crossing brackets
-@c index ties crossing brackest
-@ref{Változók felhasználása a finomhangoláshoz}.
-@c index polyphony and relative note entry
-@c index relative note entry and polyphony
-@c ode{\relative @{ @}} block.  Each note is still calculated
-@c ode{noteB} is relative to @code{noteA}                      @*
-@c ode{noteC} is relative to @code{noteB}, not @code{noteA};   @*
-@c ode{noteD} is relative to @code{noteB}, not @code{noteA} or
-@c ode{noteC};                                                 @*
-@c ode{noteE} is relative to @code{noteD}, not @code{noteA}.
+
+@cindex polyphony
+@cindex layers
+@cindex multiple voices
+@cindex voices, multiple
+@cindex Voice context
+@cindex context, Voice
+@cindex simultaneous music
+@cindex music, simultaneous
+@cindex concurrent music
+@cindex music, concurrent
+@cindex voices vs. chords
+@cindex chords vs. voices
+
+The lowest, most fundamental or innermost layers in a LilyPond
+score are called @q{Voice contexts} or just @q{Voices} for short.
+Voices are sometimes called @q{layers} in other notation
+packages.
+
+In fact, a Voice layer or context is the only one which can contain
+music.  If a Voice context is not explicitly declared one is created
+automatically, as we saw at the beginning of this chapter.  Some
+instruments such as an Oboe can play only one note at a time.  Music
+written for such instruments is monophonic and requires just a single
+voice.  Instruments which can play more than one note at a time like
+the piano will often require multiple voices to encode the different
+concurrent notes and rhythms they are capable of playing.
+
+A single voice can contain many notes in a chord, of course,
+so when exactly are multiple voices needed?  Look first at
+this example of four chords:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+\key g \major
+<d g>4 <d fis> <d a'> <d g>
+@end lilypond
+
+This can be expressed using just the single angle bracket chord
+symbols, @code{< ... >}, and for this just a single voice is
+needed.  But suppose the F-sharp were actually an eighth-note
+followed by an eighth-note G, a passing note on the way to the A?
+Now we have two notes which start at the same time but have
+different durations: the quarter-note D and the eighth-note
+F-sharp.  How are these to be coded?  They cannot be written as
+a chord because all the notes in a chord must have the same
+duration.  And they cannot be written as two sequential notes
+as they need to start at the same time.  This is when two
+voices are required.
+
+Let us see how this is done in LilyPond input syntax.
+
+@funindex << \\ >>
+@funindex \\
+
+The easiest way to enter fragments with more than one voice on a
+staff is to enter each voice as a sequence (with @code{@{...@}}),
+and combine them simultaneously with angle brackets, @code{<<...>>}.
+The fragments must also be separated with double backward slashes,
+@code{\\}, to place them in separate voices.  Without these, the
+notes would be entered into a single voice, which would usually
+cause errors.  This technique is particularly suited to pieces of
+music which are largely monophonic with occasional short sections
+of polyphony.
+
+Here's how we split the chords above into two voices and add both
+the passing note and a slur:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\key g \major
+%    Voice "1"                  Voice "2"
+<< { g4 fis8( g) a4 g }  \\  { d4 d d d }  >>
+@end lilypond
+
+Notice how the stems of the second voice now point down.
+
+Here's another simple example:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\key d \minor
+%    Voice "1"             Voice "2"
+<< { r4 g g4. a8 }    \\ { d,2 d4 g }       >>
+<< { bes4 bes c bes } \\ { g4 g g8( a) g4 } >>
+<< { a2. r4 }         \\ { fis2. s4 }       >>
+@end lilypond
+
+It is not necessary to use a separate @code{<< \\ >>} construct
+for each bar. For music with few notes in each bar this layout
+can help the legibility of the code, but if there are many
+notes in each bar it may be better to split out each voice
+separately, like this:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\key d \minor
+<< {
+  % Voice "1"
+  r4 g g4. a8 |
+  bes4 bes c bes |
+  a2. r4 |
+} \\ {
+  % Voice "2"
+  d,2 d4 g |
+  g4 g g8( a) g4 |
+  fis2. s4 |
+} >>
+@end lilypond
+
+
+@cindex voices, naming
+@cindex voices crossing brackets
+@cindex slurs crossing brackets
+@cindex ties crossing brackest
+
+This example has just two voices, but the same construct may be
+used to encode three or more voices by adding more back-slash
+separators.
+
+The Voice contexts bear the names @code{"1"}, @code{"2"}, etc.
+In each of these contexts, the vertical direction of slurs,
+stems, ties, dynamics etc., is set appropriately.
+
+@lilypond[quote,verbatim,fragment]
+\new Staff \relative c' {
+  % Main voice
+  c16 d e f
+  %    Voice "1"     Voice "2"                 Voice "3"
+  << { g4 f e } \\ { r8 e4 d c8~ } >>
+  << { d2 e2 }  \\ { c8 b16 a b8 g~ g2 } \\ { s4 b4 c2 } >>
+}
+@end lilypond
+
+These voices are all separate from the main voice that contains
+the notes just outside the @code{<< .. >>} construct.  Let's call
+this the @emph{simultaneous construct}.  Slurs and ties may only
+connect notes within the same voice, so slurs and ties cannot go
+into or out of a simultaneous construct.  Conversely,
+parallel voices from separate simultaneous constructs on the same
+staff are the same voice.  Other voice-related properties also
+carry across simultaneous constructs.  Here is the same example,
+with different colors and note heads for each voice.  Note that
+changes in one voice do not affect other voices, but they do
+persist in the same voice later.  Note also that tied notes may be
+split across the same voices in two constructs, shown here in the
+blue triangle voice.
+
+@lilypond[quote,verbatim]
+\new Staff \relative c' {
+  % Main voice
+  c16 d e f
+  <<  % Bar 1
+    {
+      \voiceOneStyle
+      g4 f e
+    }
+  \\
+    {
+      \voiceTwoStyle
+      r8 e4 d c8~
+    }
+  >>
+  <<  % Bar 2
+     % Voice 1 continues
+    { d2 e2 }
+  \\
+     % Voice 2 continues
+    { c8 b16 a b8 g ~ g2 }
+  \\
+    {
+      \voiceThreeStyle
+      s4 b4 c2
+    }
+  >>
+}
+@end lilypond
+
+@funindex \voiceOneStyle
+@funindex \voiceTwoStyle
+@funindex \voiceThreeStyle
+@funindex \voiceFourStyle
+@funindex \voiceNeutralStyle
+
+The commands @code{\voiceXXXStyle} are mainly intended for use in
+educational documents such as this one.  They modify the color
+of the note head, the stem and the beams, and the style of the
+note head, so that the voices may be easily distinguished.
+Voice one is set to red diamonds, voice two to blue triangles,
+voice three to green crossed circles, and voice four (not used
+here) to magenta crosses;  @code{\voiceNeutralStyle} (also not
+used here) reverts the style back to the default.
+We shall see later how commands like these may be created by the
+user.
+See @ref{Visibility and color of objects} and
+@ref{Using variables for tweaks}.
+
+@cindex polyphony and relative note entry
+@cindex relative note entry and polyphony
+
+Polyphony does not change the relationship of notes within a
+@code{\relative @{ @}} block.  Each note is still calculated
+relative to the note immediately preceding it, or to the first
+note of the preceding chord.  So in
+
+@example
+\relative c' @{ noteA << < noteB noteC > \\ noteD >> noteE @}
+@end example
+
+@noindent
+@code{noteB} is relative to @code{noteA}                      @*
+@code{noteC} is relative to @code{noteB}, not @code{noteA};   @*
+@code{noteD} is relative to @code{noteB}, not @code{noteA} or
+@code{noteC};                                                 @*
+@code{noteE} is relative to @code{noteD}, not @code{noteA}.
+
+An alternative way, which may be clearer if the notes in the
+voices are widely separated, is to place a @code{\relative}
+command at the start of each voice:
+
+@example
+\relative c' @{ noteA ... @}
+<<
+  \relative c'' @{ < noteB noteC > ... @}
+\\
+  \relative g' @{ noteD ... @}
+>>
+\relative c' @{ noteE ... @}
+@end example
+
+Let us finally analyze the voices in a more complex piece of music.
+Here are the notes from the first two bars of the second of Chopin's
+Deux Nocturnes, Op 32.  This example will be used at later stages in
+this and the next chapter to illustrate several techniques for
+producing notation, so please ignore for now anything in the
+underlying code which looks mysterious and concentrate just on the
+music and the voices -- the complications will all be explained in
+later sections.
+
 @c The following should appear as music without code
+@lilypond[quote,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<  % Voice one
+    { c2 aes4. bes8 }
+  \\  % Voice two
+    { aes2 f4 fes }
+  \\  % No voice three
+  \\  % Voice four
+    {
+      % Ignore these for now - they are explained in Ch 4
+      \once \override NoteColumn #'force-hshift = #0
+      <ees c>2
+      \once \override NoteColumn #'force-hshift = #0.5
+      des2
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+The direction of the stems is often used to indicate the continuity of
+two simultaneous melodic lines.  Here the stems of the highest notes
+are all pointing up and the stems of the lower notes are all pointing
+down.  This is the first indication that more than one voice is
+required.
+
+But the real need for multiple voices arises when notes
+which start at the same time have different durations.
+Look at the notes which start at beat three in the first
+bar.  The A-flat is a dotted quarter note, the F is a
+quarter note and the D-flat is a half note.  These
+cannot be written as a chord as all the notes in a chord
+must have the same duration.  Neither can they be written
+as sequential notes, as they must start at the same time.
+This section of the bar requires three voices, and the
+normal practice would be to write the whole bar as three
+voices, as shown below, where we have used different note heads
+and colors for the three voices.  Again, the code behind this
+example will be explained later, so ignore anything you do
+not understand.
+
 @c The following should appear as music without code
 @c The three voice styles should be defined in -init
-@c index stem down
-@c index voices and stem directions
-@c index stem directions and voices
-@c index stem up
+@lilypond[quote,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    {  % Voice one
+      \voiceOneStyle
+      c2 aes4. bes8
+    }
+  \\  % Voice two
+    { \voiceTwoStyle
+      aes2 f4 fes
+    }
+  \\  % No Voice three (we want stems down)
+  \\  % Voice four
+    { \voiceThreeStyle
+      % Ignore these for now - they are explained in Ch 4
+      \once \override NoteColumn #'force-hshift = #0
+      <ees c>2
+      \once \override NoteColumn #'force-hshift = #0.5
+      des2
+    }
+  >>
+  <c ees aes c>1
+}
+@end lilypond
+
+
+Let us try to encode this music from scratch.  As we
+shall see, this encounters some difficulties.  We begin as
+we have learnt, using the @code{<< \\  >>} construct to
+enter the music of the first bar in three voices:
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des2 }
+  >>
+  <c ees aes c>1
+}
+@end lilypond
+
+@cindex stem down
+@cindex voices and stem directions
+@cindex stem directions and voices
+@cindex stem up
+
+The stem directions are automatically assigned with the
+odd-numbered voices taking upward stems and the even-numbered
+voices downward ones.  The stems for voices 1 and 2 are right,
+but the stems in voice 3 should go down in this particular piece
+of music.  We can correct this by skipping voice three
+and placing the music in voice four. This is done by simply
+adding another pair of @code{\\}.
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<  % Voice one
+    { c2 aes4. bes8 }
+  \\  % Voice two
+    { aes2 f4 fes }
+  \\  % Omit Voice three
+  \\  % Voice four
+    { <ees c>2 des2 }
+  >>
+  <c ees aes c>1
+}
+@end lilypond
+
+@noindent
+We see that this fixes the stem direction, but exposes a problem
+sometimes encountered with multiple voices -- the stems of the notes
+in one voice can collide with the note heads in other voices.  In
+laying out the notes, LilyPond allows the notes or chords from two
+voices to occupy the same vertical note column provided the stems are
+in opposite directions, but the notes from the third and fourth voices
+are displaced, if necessary, to avoid the note heads colliding.  This
+usually works well, but in this example the notes of the lowest voice
+are clearly not well placed by default. LilyPond provides several ways
+to adjust the horizontal placing of notes.  We are not quite ready yet
+to see how to correct this, so we shall leave this problem until a
+later section --- see the @code{force-hshift} property in @ref{Fixing
+overlapping notation}.
+
+
+@seealso
+Notation Reference: @ruser{Multiple voices}.
+
+
 @node Szólamok kézi létrehozása
 @subsection Szólamok kézi létrehozása
 @translationof Explicitly instantiating voices
-@translationof Explicitly instantiating voices
 
-@untranslated
 
+@funindex \voiceOne
+@funindex voiceOne
+@funindex \voiceTwo
+@funindex voiceTwo
+@funindex \voiceThree
+@funindex voiceThree
+@funindex \voiceFour
+@funindex voiceFour
+@funindex \oneVoice
+@funindex oneVoice
+@funindex \new Voice
+@cindex voice contexts, creating
+
+Voice contexts can also be created manually
+inside a @code{<< >>} block to create polyphonic music, using
+@code{\voiceOne} ... @code{\voiceFour} to indicate the required
+directions of stems, slurs, etc.  In longer scores this method
+is clearer, as it permits the voices to be separated and to be
+given more descriptive names.
+
+Specifically, the construct @code{<< \\ >>} which we used in
+the previous section:
+
+@example
+\new Staff @{
+  \relative c' @{
+    << @{ e4 f g a @} \\ @{ c,4 d e f @} >>
+  @}
+@}
+@end example
+
+@noindent
+is equivalent to
+
+@example
+\new Staff <<
+  \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @}
+  \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @}
+>>
+@end example
+
+Both of the above would produce
 
-@c index voice contexts, creating
-@c ode{\voiceOne} ... @code{\voiceFour} to indicate the required
 @c The following example should not display the code
-@c index voices, reverting to single
-@c index reverting to a single voice
-@c ode{\voiceFour} make them point downwards.  These commands also
-@c ode{\oneVoice}, @code{\voiceOne} and @code{voiceTwo} have on
-@c index nesting music expressions
-@c index nesting simultaneous constructs
-@c index nesting voices
-@c index voices, temporary
-@c index voices, nesting
-@c index spacing notes
-@subsubheading Hangoszlopok
-@c index note column
-@c index note collisions
-@c index collisions, notes
-@c index shift commands
-@c ode{\shiftOff} commands specify the degree to which notes and
-@c ode{\shiftOnn} and @code{\shiftOnnn} define further shift
+@lilypond[ragged-right,quote]
+\new Staff <<
+  \new Voice = "1" { \voiceOne \relative c' { e4 f g a } }
+  \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } }
+>>
+@end lilypond
+
+@cindex voices, reverting to single
+@cindex reverting to a single voice
+
+The @code{\voiceXXX} commands set the direction of stems, slurs,
+ties, articulations, text annotations, augmentation dots of dotted
+notes, and fingerings.  @code{\voiceOne} and @code{\voiceThree}
+make these objects point upwards, while @code{\voiceTwo} and
+@code{\voiceFour} make them point downwards.  These commands also
+generate a horizontal shift for each voice when this is required
+to avoid clashes of note heads.  The command @code{\oneVoice}
+reverts the settings back to the normal values for a single voice.
+
+Let us see in some simple examples exactly what effect
+@code{\oneVoice}, @code{\voiceOne} and @code{voiceTwo} have on
+markup, ties, slurs, and dynamics:
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{
+  % Default behavior or behavior after \oneVoice
+  c d8~ d e4( f g a) b-> c
+}
+@end lilypond
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{
+  \voiceOne
+  c d8~ d e4( f g a) b-> c
+  \oneVoice
+  c, d8~ d e4( f g a) b-> c
+}
+@end lilypond
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{
+  \voiceTwo
+  c d8~ d e4( f g a) b-> c
+  \oneVoice
+  c, d8~ d e4( f g a) b-> c
+}
+@end lilypond
+
+Now let's look at three different ways to notate the same passage
+of polyphonic music, each of which is advantageous in different
+circumstances, using the example from the previous section.
+
+An expression that appears directly inside a @code{<< >>} belongs
+to the main voice (but, note, @strong{not} in a @code{<< \\ >>}
+construct).  This is useful when extra voices appear while the
+main voice is playing.  Here is a more correct rendition of our
+example.  The red diamond-shaped notes
+demonstrate that the main melody is now in a single voice context,
+permitting a phrasing slur to be drawn over them.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' {
+  \voiceOneStyle
+  % The following notes are monophonic
+  c16^( d e f
+  % Start simultaneous section of three voices
+  <<
+    % Continue the main voice in parallel
+    { g4 f e | d2 e2) | }
+    % Initiate second voice
+    \new Voice {
+      % Set stems, etc., down
+      \voiceTwo
+      r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
+    }
+    % Initiate third voice
+    \new Voice {
+      % Set stems, etc, up
+      \voiceThree
+      s2. | s4 b4 c2 |
+    }
+  >>
+}
+@end lilypond
+
+@cindex nesting music expressions
+@cindex nesting simultaneous constructs
+@cindex nesting voices
+@cindex voices, temporary
+@cindex voices, nesting
+
+More deeply nested polyphony constructs are possible, and if a
+voice appears only briefly this might be a more natural way to
+typeset the music:
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' {
+  c16^( d e f
+  <<
+    { g4 f e | d2 e2) | }
+    \new Voice {
+      \voiceTwo
+      r8 e4 d c8~
+      <<
+        { c8 b16 a b8 g~ g2 }
+        \new Voice {
+          \voiceThree
+          s4 b4 c2
+        }
+      >>
+    }
+  >>
+}
+@end lilypond
+
+@cindex spacing notes
+
+This method of nesting new voices briefly is useful
+when only small sections of the music
+are polyphonic, but when the whole staff is largely polyphonic
+it can be clearer to use multiple voices throughout, using
+spacing notes to step over sections where the voice is silent,
+as here:
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' <<
+  % Initiate first voice
+  \new Voice {
+    \voiceOne
+    c16^( d e f g4 f e | d2 e2) |
+  }
+  % Initiate second voice
+  \new Voice {
+    % Set stems, etc, down
+    \voiceTwo
+    s4 r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
+  }
+  % Initiate third voice
+  \new Voice {
+    % Set stems, etc, up
+    \voiceThree
+    s1 | s4 b4 c2 |
+  }
+>>
+@end lilypond
+
+@subsubheading Note columns
+
+@cindex note column
+@cindex note collisions
+@cindex collisions, notes
+@cindex shift commands
+@funindex \shiftOff
+@funindex shiftOff
+@funindex \shiftOn
+@funindex shiftOn
+@funindex \shiftOnn
+@funindex shiftOnn
+@funindex \shiftOnnn
+@funindex shiftOnnn
+
+Closely spaced notes in a chord, or notes occurring at the same
+time in different voices, are arranged in two, occasionally more,
+columns to prevent the note heads overlapping.  These are called
+note columns.  There are separate columns for each voice, and
+the currently specified voice-dependent shift is applied to the
+note column if there would otherwise be a collision.  This can
+be seen in the example above.  In bar 2 the C in voice two is
+shifted to the right relative to the D in voice one, and in the
+final chord the C in voice three is also shifted to the right
+relative to the other notes.
+
+The @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, and
+@code{\shiftOff} commands specify the degree to which notes and
+chords of the voice should be shifted if a collision
+would otherwise occur. By default, the outer voices (normally
+voices one and two) have @code{\shiftOff} specified, while the
+inner voices (three and four) have @code{\shiftOn} specified.
+When a shift is applied, voices one and three are shifted to
+the right and voices two and four to the left.
+
+@code{\shiftOnn} and @code{\shiftOnnn} define further shift
+levels which may be specified temporarily to resolve collisions
+in complex situations -- see @ref{Real music example}.
+
+A note column can contain just one note (or chord) from a voice
+with stems up and one note (or chord) from a voice with stems
+down.  If notes from two voices which have their stems in the
+same direction are placed at the same position and both voices
+have no shift or the same shift specified, the error message
+@qq{Too many clashing note columns} will be produced.
+
+
+@seealso
+Notation Reference: @ruser{Multiple voices}.
+
+
 @node Szólamok és vokális zene
 @subsection Szólamok és vokális zene
 @translationof Voices and vocals
-@translationof Voices and vocals
 
-@untranslated
-
-
-@c index Lyrics context, creating
-@c index lyrics, linking to voice
-@c index lyrics and beaming
-@c index beaming and lyrics
-@c ode{\autoBeamOff} to turn off the automatic beaming.
-@c index vocal score structure
-@c index choir staff
-@c ode{\lyricmode} to ensure they are interpreted as lyrics
-@c index hymn structure
-@c index SATB structure
-@c index vocal scores with multiple verses
-@c index multiple vocal verses
-@c index verses, multiple vocal
-@c index verse and refrain
-@c index book, example of using
-@c ode{\score} blocks within an implicit @code{\book} block, as
+Vocal music presents a special difficulty: we need to combine two
+expressions -- notes and lyrics.
+
+@funindex \new Lyrics
+@funindex \lyricsto
+@funindex lyricsto
+@funindex Lyrics
+@cindex Lyrics context, creating
+@cindex lyrics, linking to voice
+
+You have already seen the @code{\addlyrics@{@}} command, which
+handles simple scores well.  However, this technique is
+quite limited.  For more complex music, you must introduce the
+lyrics in a @code{Lyrics} context using @code{\new Lyrics} and
+explicitly link
+the lyrics to the notes with @code{\lyricsto@{@}}, using the
+name assigned to the Voice.
+
+@lilypond[quote,verbatim,fragment]
+<<
+  \new Voice = "one" \relative c'' {
+    \autoBeamOff
+    \time 2/4
+    c4 b8. a16 g4. f8 e4 d c2
+  }
+  \new Lyrics \lyricsto "one" {
+    No more let sins and sor -- rows grow.
+  }
+>>
+@end lilypond
+
+Note that the lyrics must be linked to a @code{Voice} context,
+@emph{not} a @code{Staff} context.  This is a case where it is
+necessary to create @code{Staff} and @code{Voice} contexts
+explicitly.
+
+@cindex lyrics and beaming
+@cindex beaming and lyrics
+@funindex \autoBeamOff
+@funindex autoBeamOff
+
+The automatic beaming which LilyPond uses by default works well
+for instrumental music, but not so well for music with lyrics,
+where beaming is either not required at all or is used to indicate
+melismata in the lyrics.  In the example above we use the command
+@code{\autoBeamOff} to turn off the automatic beaming.
+
+@funindex \new ChoirStaff
+@funindex ChoirStaff
+@funindex \lyricmode
+@funindex lyricmode
+@cindex vocal score structure
+@cindex choir staff
+
+Let us reuse the earlier example from Judas Maccabæus to
+illustrate this more flexible technique.  We first recast
+it to use variables so the music and lyrics can be separated
+from the staff structure.  We also introduce a ChoirStaff
+bracket.  The lyrics themselves must be introduced with
+@code{\lyricmode} to ensure they are interpreted as lyrics
+rather than music.
+
+@lilypond[quote,verbatim]
+global = { \time 6/8 \partial 8 \key f \major}
+SopOneMusic = \relative c'' {
+  c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 | }
+SopTwoMusic = \relative c' {
+  r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' | }
+SopOneLyrics = \lyricmode {
+  Let | flee -- cy flocks the | hills a -- dorn, __ | }
+SopTwoLyrics = \lyricmode {
+  Let | flee -- cy flocks the | hills a -- dorn, | }
+
+\score {
+  \new ChoirStaff <<
+    \new Staff <<
+      \new Voice = "SopOne" {
+        \global
+        \SopOneMusic
+      }
+      \new Lyrics \lyricsto "SopOne" {
+        \SopOneLyrics
+      }
+    >>
+    \new Staff <<
+      \new Voice = "SopTwo" {
+        \global
+        \SopTwoMusic
+      }
+      \new Lyrics \lyricsto "SopTwo" {
+        \SopTwoLyrics
+      }
+    >>
+  >>
+}
+@end lilypond
+
+This is the basic structure of all vocal scores.  More staves may be
+added as required, more voices may be added to the staves, more verses
+may be added to the lyrics, and the variables containing the music can
+easily be placed in separate files should they become too long.
+
+@cindex hymn structure
+@cindex SATB structure
+@cindex vocal scores with multiple verses
+@cindex multiple vocal verses
+@cindex verses, multiple vocal
+
+Here is an example of the first line of a hymn with four
+verses, set for SATB.  In this case the words for all four
+parts are the same.  Note how we use variables to separate the
+music notation and words from the staff structure.  See too
+how a variable, which we have chosen to call @q{TimeKey}, is used
+to hold several commands for use within the two staves.  In other
+examples this is often called @q{global}.
+
+@lilypond[quote,verbatim]
+TimeKey = { \time 4/4 \partial 4 \key c \major}
+SopMusic   = \relative c' { c4 | e4. e8 g4  g  | a a g | }
+AltoMusic  = \relative c' { c4 | c4. c8 e4  e  | f f e | }
+TenorMusic = \relative c  { e4 | g4. g8 c4. b8 | a8 b c d e4 | }
+BassMusic  = \relative c  { c4 | c4. c8 c4  c  | f8 g a b c4 | }
+VerseOne   = \lyricmode {
+  E -- | ter -- nal fa -- ther, | strong to save, | }
+VerseTwo   = \lyricmode {
+  O | Christ, whose voice the | wa -- ters heard, | }
+VerseThree = \lyricmode {
+  O | Ho -- ly Spi -- rit, | who didst brood | }
+VerseFour  = \lyricmode {
+  O | Tri -- ni -- ty of | love and pow'r | }
+
+\score {
+  \new ChoirStaff <<
+    \new Staff <<
+      \clef "treble"
+      \new Voice = "Sop"  { \voiceOne \TimeKey \SopMusic }
+      \new Voice = "Alto" { \voiceTwo \AltoMusic }
+      \new Lyrics \lyricsto "Sop" { \VerseOne   }
+      \new Lyrics \lyricsto "Sop" { \VerseTwo   }
+      \new Lyrics \lyricsto "Sop" { \VerseThree }
+      \new Lyrics \lyricsto "Sop" { \VerseFour  }
+    >>
+    \new Staff <<
+      \clef "bass"
+      \new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic }
+      \new Voice = "Bass"  { \voiceTwo \BassMusic }
+    >>
+  >>
+}
+@end lilypond
+
+@cindex verse and refrain
+
+We end with an example to show how we might code a solo verse which
+continues into a two-part refrain in two staves.  The positioning
+of the sequential and simultaneous sections to achieve this within
+a single score is quite tricky, so follow the explanation carefully!
+
+Let's start with a score block containing a @code{ChoirStaff}, as
+we would like the brace to appear at the start of the chorus.
+Normally you would need angle brackets after @code{\new ChoirStaff}
+to bring in all the staves in parallel, but here we want to
+defer the parallelism during the solo so we use braces, although
+angle brackets here wouldn't hurt.  Inside the @code{ChoirStaff} we
+want first the staff which will contain the verse.  This must
+contain notes and lyrics in parallel, so here we need angle
+brackets around the @code{\new Voice} and @code{\new Lyrics} to
+start them at the same time:
+
+@lilypond[quote,verbatim,ragged-right]
+versenotes = \relative c'' {
+  \clef "treble"
+  \key g \major
+  \time 3/4
+  g g g | b b b |
+}
+versewords = \lyricmode {
+  One two three four five six
+}
+\score {
+  \new ChoirStaff {
+    \new Staff <<
+      \new Voice = "verse" {
+        \versenotes \break
+      }
+      \new Lyrics \lyricsto verse {
+        \versewords
+      }
+    >>
+  }
+}
+@end lilypond
+
+That gives the verse line.
+
+Now we want to continue with refrainA on the same staff while a
+second staff is introduced in parallel with it for refrainB, so
+this is a parallel section which must be positioned immediately
+following the @code{\break} in the verse Voice.  Yes, @emph{within}
+the verse Voice!  Here's that parallel section.  More staves
+could be introduced here in the same way.
+
+@example
+<<
+  \refrainnotesA
+  \new Lyrics \lyricsto verse @{
+    \refrainwordsA
+  @}
+  \new Staff <<
+    \new Voice = "refrainB" @{
+      \refrainnotesB
+    @}
+    \new Lyrics \lyricsto "refrainB" @{
+      \refrainwordsB
+    @}
+  >>
+>>
+@end example
+
+Here's the final result with two staves in the chorus showing
+how the parallel section is positioned within the verse Voice:
+
+@lilypond[quote,verbatim, ragged-right]
+versenotes = \relative c'' {
+  \clef "treble"
+  \key g \major
+  \time 3/4
+  g g g | b b b |
+}
+refrainnotesA = \relative c'' {
+  \time 2/4
+  c c | g g \bar "|."
+}
+refrainnotesB = \relative c {
+  \clef "bass"
+  \key g \major
+  c e | d d |
+}
+versewords = \lyricmode {
+  One two three four five six
+}
+refrainwordsA = \lyricmode {
+  la la la la
+}
+refrainwordsB = \lyricmode {
+  dum dum dum dum
+}
+\score {
+  \new ChoirStaff {
+    \new Staff <<
+      \new Voice = "verse" {
+        \versenotes \break
+        <<
+          \refrainnotesA
+          \new Lyrics \lyricsto "verse" {
+            \refrainwordsA
+          }
+          \new Staff <<
+            \new Voice = "refrainB" {
+              \refrainnotesB
+            }
+            \new Lyrics \lyricsto "refrainB" {
+              \refrainwordsB
+            }
+          >>
+        >>
+      }
+      \new Lyrics \lyricsto "verse" {
+        \versewords
+      }
+    >>
+  }
+}
+@end lilypond
+
+@cindex book, example of using
+@funindex \book
+@funindex book
+
+However, although this is an interesting and useful exercise to
+help you to understand how sequential and simultaneous blocks work,
+in practice one would perhaps choose to code this as two
+@code{\score} blocks within an implicit @code{\book} block, as
+follows:
+
+@lilypond[quote,verbatim,ragged-right]
+versenotes = \relative c'' {
+  \clef "treble"
+  \key g \major
+  \time 3/4
+  g g g | b b b |
+}
+refrainnotesA = \relative c'' {
+  \time 2/4
+  c c | g g \bar "|."
+}
+refrainnotesB = \relative c {
+  \clef "bass"
+  \key g \major
+  c e | d d |
+}
+versewords = \lyricmode {
+  One two three four five six
+}
+refrainwordsA = \lyricmode {
+  la la la la
+}
+refrainwordsB = \lyricmode {
+  dum dum dum dum
+}
+\score {
+  \new Staff <<
+    \new Voice = "verse" {
+      \versenotes
+    }
+    \new Lyrics \lyricsto "verse" {
+      \versewords
+    }
+  >>
+}
+
+\score {
+  \new ChoirStaff <<
+    \new Staff <<
+      \new Voice = "refrainA" {
+        \refrainnotesA
+      }
+      \new Lyrics \lyricsto "refrainA" {
+        \refrainwordsA
+      }
+    >>
+    \new Staff <<
+      \new Voice = "refrainB" {
+        \refrainnotesB
+      }
+      \new Lyrics \lyricsto "refrainB" {
+        \refrainwordsB
+      }
+    >>
+  >>
+}
+@end lilypond
+
+
+@seealso
+Notation Reference: @ruser{Vocal music}.
+
+
 @node Kontextusok és ábrázolók
 @section Kontextusok és ábrázolók
 @translationof Contexts and engravers
-@translationof Contexts and engravers
 
-@untranslated
+
+Kontextusok és ábrázolók have been mentioned informally
+in earlier sections; we now must look at
+these concepts in more detail, as they are important
+in the fine-tuning of LilyPond output.
 
 
 @menu
 @node A kontextus fogalma
 @subsection A kontextus fogalma
 @translationof Contexts explained
-@translationof Contexts explained
-
-@untranslated
 
+@cindex contexts explained
+
+When music is printed, many notational elements which do not
+appear explicitly in the input file must be added to the
+output.  For example, compare the input and output of the
+following example:
+
+@lilypond[quote,verbatim,relative=2,fragment]
+cis4 cis2. g4
+@end lilypond
+
+The input is rather sparse, but in the output, bar lines,
+accidentals, clef, and time signature have been added.  When
+LilyPond @emph{interprets} the input the musical information
+is parsed from left to right, similar to the way a performer
+reads the score.  While reading the input, the program remembers
+where measure boundaries are, and which pitches require explicit
+accidentals.  This information must be held on several levels.
+For example, an accidental affects only a single staff, while
+a bar line must be synchronized across the entire score.
+
+Within LilyPond, these rules and bits of information are grouped in
+@emph{Contexts}.  We have already introduced the @code{Voice} context.
+Others are the @code{Staff} and @code{Score} contexts.  Contexts are
+hierarchical to reflect the hierarchical nature of a musical score.
+For example: a @code{Staff} context can contain many @code{Voice}
+contexts, and a @code{Score} context can contain many @code{Staff}
+contexts.
 
-@c index contexts explained
 @quotation
 @sourceimage{context-example,5cm,,}
 @end quotation
-@c ode{Score} and @code{Staff} contexts.
-@c ode{Voice} contexts there are contexts which fit between
-@c ode{PianoStaff} and @code{ChoirStaff} contexts.  There
-@c ode{GregorianTranscriptionStaff}.
+
+Each context has the responsibility for enforcing some notation rules,
+creating some notation objects and maintaining the associated
+properties.  For example, the @code{Voice} context may introduce an
+accidental and then the @code{Staff} context maintains the rule to
+show or suppress the accidental for the remainder of the measure.
+
+As another example, the synchronization of bar lines is, by default,
+handled in the @code{Score} context.
+However, in some music we may not want the bar lines to be
+synchronized -- consider a polymetric score in 4/4 and 3/4 time.
+In such cases, we must modify the default settings of the
+@code{Score} and @code{Staff} contexts.
+
+For very simple scores, contexts are created implicitly, and you need
+not be aware of them.  For larger pieces, such as anything with more
+than one staff, they must be
+created explicitly to make sure that you get as many staves as you
+need, and that they are in the correct order.  For typesetting pieces
+with specialized notation, it is usual to modify existing, or
+even to define totally new, contexts.
+
+In addition to the @code{Score,} @code{Staff} and
+@code{Voice} contexts there are contexts which fit between
+the score and staff levels to control staff groups, such as the
+@code{PianoStaff} and @code{ChoirStaff} contexts.  There
+are also alternative staff and voice contexts, and contexts for
+lyrics, percussion, fret boards, figured bass, etc.
+
+The names of all context types are formed from one or more
+words, each word being capitalized and joined immediately to the
+preceding word with no hyphen or underscore, e.g.,
+@code{GregorianTranscriptionStaff}.
+
+
+@seealso
+Notation Reference: @ruser{A kontextus fogalma}.
+
+
 @node Kontextusok létrehozása
 @subsection Kontextusok létrehozása
 @translationof Creating contexts
-@translationof Creating contexts
-
-@untranslated
 
 
-@c index new contexts
-@c index creating contexts
-@c index contexts, creating
-@c ode{Staff} contexts may also be left to be created automatically,
-@c ode{Voice}).  This command creates a new context, and starts
-@c ode{\with} block in which one or more score-wide default values
-@c ode{\with} blocks can be found under the heading
+@funindex \new
+@funindex new
+@cindex new contexts
+@cindex creating contexts
+@cindex contexts, creating
+
+In an input file a score block, introduced with a @code{\score}
+command, contains a single music expression and an associated
+output definition (either a @code{\layout} or a @code{\midi} block).
+The @code{Score} context is usually left to be created automatically
+when the interpretation of that music expression starts.
+
+For scores with only one voice and one staff, the @code{Voice} and
+@code{Staff} contexts may also be left to be created automatically,
+but for more complex scores it is necessary to create them by hand.
+The simplest command that does this is @code{\new}.  It is prepended
+to a music expression, for example
+
+@example
+\new @var{type} @var{music-expression}
+@end example
+
+@noindent
+where @var{type} is a context name (like @code{Staff} or
+@code{Voice}).  This command creates a new context, and starts
+interpreting the @var{music-expression} within that context.
+
+(Note that a @code{\new Score} command is not normally required,
+as the essential top-level @code{Score} context is created
+automatically when the music expression within the @code{\score}
+block is interpreted.  The only reason for creating a @code{Score}
+context explicitly using @code{\new Score} is to introduce a
+@code{\with} block in which one or more score-wide default values
+of context properties may be specified.  Information on using
+@code{\with} blocks can be found under the heading
+@qq{Setting context properties with @code{\\with} } in
 @ref{Kontextusok tulajdonságainak módosítása}.)
-@c ode{Staff} and @code{Voice} contexts in earlier sections, but
-@c index contexts, naming
-@c index naming contexts
-@c ode{Staff}, @code{Voice}, etc, and the identifying name of a
+
+You have seen many practical examples which created new
+@code{Staff} and @code{Voice} contexts in earlier sections, but
+to remind you how these commands are used in practice, here's an
+annotated real-music example:
+
+@lilypond[quote,verbatim,ragged-right]
+\score {  % start of single compound music expression
+  <<  % start of simultaneous staves section
+    \time 2/4
+    \new Staff {  % create RH staff
+      \key g \minor
+      \clef "treble"
+      \new Voice {  % create voice for RH notes
+        \relative c'' {  % start of RH notes
+          d4 ees16 c8.
+          d4 ees16 c8.
+        }  % end of RH notes
+      }  % end of RH voice
+    }  % end of RH staff
+    \new Staff <<  % create LH staff; needs two simultaneous voices
+      \key g \minor
+      \clef "bass"
+      \new Voice {  % create LH voice one
+        \voiceOne
+        \relative g {  % start of LH voice one notes
+          g8 <bes d> ees, <g c>
+          g8 <bes d> ees, <g c>
+        }  % end of LH voice one notes
+      }  % end of LH voice one
+      \new Voice {  % create LH voice two
+        \voiceTwo
+        \relative g {  % start of LH voice two notes
+          g4 ees
+          g4 ees
+        }  % end of LH voice two notes
+      }  % end of LH voice two
+    >>  % end of LH staff
+  >>  % end of simultaneous staves section
+}  % end of single compound music expression
+@end lilypond
+
+(Note how all the statements which open a block with either a
+curly bracket, @code{@{}, or double angle brackets, @code{<<},
+are indented by two further spaces, and the corresponding
+closing bracket is indented by exactly the same amount.  While
+this is not required, following this practice will greatly
+reduce the number of @q{unmatched bracket} errors, and is
+strongly recommended.  It enables the structure of the music to
+be seen at a glance, and any unmatched brackets will be obvious.
+Note too how the LH staff is created using double angle brackets
+because it requires two voices for its music, whereas the RH staff
+is created with a single music expression surrounded by curly
+brackets because it requires only one voice.)
+
+@cindex contexts, naming
+@cindex naming contexts
+
+The @code{\new} command may also give an identifying name to the
+context to distinguish it from other contexts of the same type,
+
+@example
+\new @var{type} = @var{id} @var{music-expression}
+@end example
+
+Note the distinction between the name of the context type,
+@code{Staff}, @code{Voice}, etc, and the identifying name of a
+particular instance of that type, which can be any sequence of letters
+invented by the user.  Digits and spaces can also be used in the
+identifying name, but then it has to be placed in quotes,
+i.e. @code{\new Staff = "MyStaff 1" @var{music-expression}}.
+The identifying name is used to
+refer back to that particular instance of a context.  We saw this in
+use in the section on lyrics, see @ref{Szólamok és vokális zene}.
+
+
+@seealso
+Notation Reference: @ruser{Kontextusok létrehozása}.
+
+
 @node Az ábrázoló fogalma
 @subsection Az ábrázoló fogalma
-@translationof Engravers explained
-@translationof Engravers explained
+@subsection Az ábrázoló fogalma
 
-@untranslated
+@cindex engravers
+
+Every mark on the printed output of a score produced by LilyPond
+is produced by an @code{Engraver}.  Thus there is an engraver
+to print staves, one to print note heads, one for stems, one for
+beams, etc, etc.  In total there are over 120 such engravers!
+Fortunately, for most scores it is not necessary to know about
+more than a few, and for simple scores you do not need to know
+about any.
+
+Engravers live and operate in Contexts.  Engravers such as the
+@code{Metronome_mark_engraver}, whose action and output apply to the
+score as a whole, operate in the highest level context -- the
+@code{Score} context.
+
+The @code{Clef_engraver} and @code{Key_engraver} are to be
+found in every @code{Staff} Context, as different staves may require
+different clefs and keys.
+
+The @code{Note_heads_engraver} and @code{Stem_engraver} live
+in every @code{Voice} context, the lowest level context of all.
+
+Each engraver processes the particular objects associated
+with its function, and maintains the properties that relate
+to that function.  These properties, like the properties
+associated with contexts, may be modified to change the
+operation of the engraver or the appearance of those elements
+in the printed score.
+
+Engravers all have compound names formed from words which
+describe their function.  Just the first word is capitalized,
+and the remainder are joined to it with underscores.  Thus
+the @code{Staff_symbol_engraver} is responsible for creating the
+lines of the staff, the @code{Clef_engraver} determines and sets
+the pitch reference point on the staff by drawing a clef symbol.
+
+Here are some of the most common engravers together with their
+function.  You will see it is usually easy to guess the function
+from the name, or vice versa.
+
+@multitable @columnfractions .3 .7
+@headitem Engraver
+  @tab Function
+@item Accidental_engraver
+  @tab Makes accidentals, cautionary and suggested accidentals
+@item Beam_engraver
+  @tab Engraves beams
+@item Clef_engraver
+  @tab Engraves clefs
+@item Completion_heads_engraver
+  @tab Splits notes which cross bar lines
+@c The old Dynamic_engraver is deprecated. -jm
+@item New_dynamic_engraver
+  @tab Creates hairpins and dynamic texts
+@item Forbid_line_break_engraver
+  @tab Prevents line breaks if a musical element is still active
+@item Key_engraver
+  @tab Creates the key signature
+@item Metronome_mark_engraver
+  @tab Engraves metronome marking
+@item Note_heads_engraver
+  @tab Engraves note heads
+@item Rest_engraver
+  @tab Engraves rests
+@item Staff_symbol_engraver
+  @tab Engraves the five (by default) lines of the staff
+@item Stem_engraver
+  @tab Creates stems and single-stem tremolos
+@item Time_signature_engraver
+  @tab Creates time signatures
+@end multitable
+
+@smallspace
+
+We shall see later how the output of LilyPond can be changed
+by modifying the action of Engravers.
+
+
+@seealso
+Internals reference: @rinternals{Engravers and Performers}.
 
 
-@c index engravers
-@c ode{Metronome_mark_engraver}, whose action and output apply to the
-@c ode{Score} context.
-@c The old Dynamic_engraver is deprecated. -jm
 @node Kontextusok tulajdonságainak módosítása
 @subsection Kontextusok tulajdonságainak módosítása
 @translationof Modifying context properties
-@translationof Modifying context properties
 
-@untranslated
+@cindex context properties
+@cindex context properties, modifying
+@cindex modifying context properties
+@funindex \set
+@funindex set
+@funindex \unset
+@funindex unset
+
+Contexts are responsible for holding the values of a number of
+context @emph{properties}.  Many of them can be changed to
+influence the interpretation of the input and so change the
+appearance of the output.  They are changed by the
+@code{\set} command.  This takes the form
+
+@example
+\set @emph{ContextName}.@emph{propertyName} = #@emph{value}
+@end example
+
+Where the @emph{ContextName} is usually @code{Score},
+@code{Staff} or @code{Voice}.  It may be omitted,
+in which case the current context (typically @code{Voice}) is assumed.
+
+The names of context properties consist of words joined
+together with no hyphens or underscores, all except the
+first having a capital letter.  Here are a few examples
+of some commonly used ones.  There are many more.
 
-
-@c index context properties
-@c index context properties, modifying
-@c index modifying context properties
-@c ode{\set} command.  This takes the form
-@c ode{Staff} or @code{Voice}.  It may be omitted,
 @c attempt to force this onto a new page
-@c index properties operating in contexts
-@c index setting properties within contexts
-@c ode{instrumentName} clearly lives in the @code{Staff} context, since
-@c ode{\set} command set the property @code{instrumentName} in the
-@c ode{Voice} context to @qq{Alto}, but as LilyPond does not look
-@c ode{\set} or @code{\unset} again.  Let's try changing the
-@c ode{##t} and @code{##f}, with two hash signs.  A text property
-@subsubheading Kontextusok tulajdonságainak beállítása a @code{\with} paranccsal
-@c index context properties, setting with \with
-@c ode{\new Score} command, like this:
-@c ode{\set} and returned to the default value set in the
-@c ode{\with} block with @code{\unset}.
-@c index fontSize, default and setting
-@c ode{\unset fontSize} command.
-@subsubheading Kontextusok tulajdonságainak beállítása a @code{\context} paranccsal
-@c index context properties, setting with \context
-@c ode{\with} block, introduced above.  It is placed in a
-@c ode{\context} block within a @code{\layout} block.  Each
-@c ode{\context} block will affect all contexts of the type specified
-@c ode{\layout} block appears.  Here is a example to show the format:
-@c ode{\set} commands embedded in music statements.
-@c FIXME
-@c uncomment when backslash-node-name issue is resolved -pm
-@c @ruser{The set command}.
+@need 50
+@multitable @columnfractions .25 .15 .45 .15
+@headitem propertyName
+  @tab Type
+  @tab Function
+  @tab Example Value
+@item extraNatural
+  @tab Boolean
+  @tab If true, set extra natural signs before accidentals
+  @tab @code{#t}, @code{#f}
+@item currentBarNumber
+  @tab Integer
+  @tab Set the current bar number
+  @tab @code{50}
+@item doubleSlurs
+  @tab Boolean
+  @tab If true, print slurs both above and below notes
+  @tab @code{#t}, @code{#f}
+@item instrumentName
+  @tab Text
+  @tab Set the name to be placed at the start of the staff
+  @tab @code{"Cello I"}
+@item fontSize
+  @tab Real
+  @tab Increase or decrease the font size
+  @tab @code{2.4}
+@item stanza
+  @tab Text
+  @tab Set the text to print before the start of a verse
+  @tab @code{"2"}
+@end multitable
+
+@noindent
+where a Boolean is either True (@code{#t}) or False (@code{#f}),
+an Integer is a positive whole number, a Real is a positive
+or negative decimal number, and text is enclosed in double
+apostrophes.  Note the occurrence of hash signs,
+(@code{#}), in two different places -- as part of the Boolean
+value before the @code{t} or @code{f}, and before @emph{value}
+in the @code{\set} statement.  So when a Boolean is being
+entered you need to code two hash signs, e.g., @code{##t}.
+
+@cindex properties operating in contexts
+@cindex setting properties within contexts
+
+Before we can set any of these properties we need to know
+in which context they operate.  Sometimes this is obvious,
+but occasionally it can be tricky.  If the wrong context
+is specified, no error message is produced, but the expected
+action will not take place.  For example, the
+@code{instrumentName} clearly lives in the @code{Staff} context, since
+it is the staff that is to be named.
+In this example the first staff is labelled, but not the second,
+because we omitted the context name.
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    \set Staff.instrumentName = #"Soprano"
+    c4 c
+ }
+  \new Staff \relative c' {
+  \set instrumentName = #"Alto"  % Wrong!
+  d4 d
+ }
+>>
+@end lilypond
+
+Remember the default context name is @code{Voice}, so the second
+@code{\set} command set the property @code{instrumentName} in the
+@code{Voice} context to @qq{Alto}, but as LilyPond does not look
+for any such property in the @code{Voice} context, no
+further action took place.  This is not an error, and no error
+message is logged in the log file.
+
+Similarly, if the property name is mis-spelt no error message is
+produced, and clearly the expected action cannot be performed.  In
+fact, you can set any (fictitious) @q{property} using any name you
+like in any context that exists by using the @code{\set} command.  But
+if the name is not known to LilyPond it will not cause any action to
+be taken.  Some text editors with special support for LilyPond input
+files document property names with bullets when you hover them with
+the mouse, like JEdit with LilyPondTool, or highlight unknown property
+names differently, like ConTEXT.  If you do not use an editor with
+such features, it is recommended to check the property name in the
+Internals Reference: see @rinternals{Tunable context properties}, or
+@rinternals{Contexts}.
+
+The @code{instrumentName} property will take effect only
+if it is set in the @code{Staff} context, but
+some properties can be set in more than one context.
+For example, the property @code{extraNatural} is by
+default set to ##t (true) for all staves.
+If it is set to ##f (false) in one particular @code{Staff}
+context it applies just to the accidentals on that staff.
+If it is set to false in the @code{Score} context
+it applies to all staves.
+
+So this turns off extra naturals in one staff:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    ais4 aes
+  }
+  \new Staff \relative c'' {
+    \set Staff.extraNatural = ##f
+    ais4 aes
+  }
+>>
+@end lilypond
+
+@noindent
+and this turns them off in all staves:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    ais4 aes
+  }
+  \new Staff \relative c'' {
+    \set Score.extraNatural = ##f
+    ais4 aes
+  }
+>>
+@end lilypond
+
+As another example, if @code{clefOctavation} is set in
+the @code{Score} context this immediately changes the value
+of the octavation in all current staves and sets a new default
+value which will be applied to all staves.
+
+The opposite command, @code{\unset}, effectively removes the
+property from the context, which causes most properties to
+revert to their default value.  Usually @code{\unset} is not
+required as a new @code{\set} command will achieve what is
+wanted.
+
+The @code{\set} and @code{\unset} commands can appear anywhere
+in the input file and will take effect from the time they are
+encountered until the end of the score or until the property is
+@code{\set} or @code{\unset} again.  Let's try changing the
+font size, which affects the size of the note heads (among
+other things) several times.  The change is from the default
+value, not the most recently set value.
+
+@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
+c4
+% make note heads smaller
+\set fontSize = #-4
+d e
+% make note heads larger
+\set fontSize = #2.5
+f g
+% return to default size
+\unset fontSize
+a b
+@end lilypond
+
+We have now seen how to set the values of several different types of
+property.  Note that integers and numbers are always preceded by a
+hash sign, @code{#}, while a true or false value is specified by
+@code{##t} and @code{##f}, with two hash signs.  A text property
+should be enclosed in double quotation signs, as above, although we
+shall see later that text can actually be specified in a much more
+general way by using the very powerful @code{\markup} command.
+
+@subsubheading Setting context properties with @code{\with}
+
+@funindex \with
+@funindex with
+@cindex context properties, setting with \with
+
+The default value of context properties may be set at the time the
+context is created.  Sometimes this is a clearer way of setting a
+property value if it is to remain fixed for the duration of
+the context.  When a context is created with a @code{\new}
+command it may be followed immediately by a @code{\with @{ .. @}}
+block in which the default property values are set.  For example,
+if we wish to suppress the printing of extra naturals for the
+duration of a staff we would write:
+
+@example
+\new Staff \with @{ extraNatural = ##f @}
+@end example
+
+@noindent
+like this:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff
+  \relative c'' {
+    gis ges aes ais
+  }
+  \new Staff \with { extraNatural = ##f }
+  \relative c'' {
+    gis ges aes ais
+  }
+>>
+@end lilypond
+
+Or, if the property override is to be applied to all staves
+within the score, it may be appended to an explicit
+@code{\new Score} command, like this:
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+  \new Score \with { extraNatural = ##f } <<
+    \new Staff {
+      \relative c'' {
+        gis ges aes ais
+      }
+    }
+    \new Staff {
+      \relative c'' {
+        gis ges aes ais
+      }
+    }
+  >>
+}
+@end lilypond
+
+Properties set in this way may still be changed dynamically using
+@code{\set} and returned to the default value set in the
+@code{\with} block with @code{\unset}.
+
+@cindex fontSize, default and setting
+
+So if the @code{fontSize} property is set in a @code{\with} clause
+it sets the default value of the font size.  If it is later changed
+with @code{\set}, this new default value may be restored with the
+@code{\unset fontSize} command.
+
+@subsubheading Setting context properties with @code{\context}
+
+@cindex context properties, setting with \context
+@funindex \context
+@funindex context
+
+The values of context properties may be set in @emph{all} contexts
+of a particular type, such as all @code{Staff} contexts, with a single
+command.  The context type is identified by using its
+type name, like @code{Staff}, prefixed by a back-slash: @code{\Staff}.
+The statement which sets the property value is the same as that in a
+@code{\with} block, introduced above.  It is placed in a
+@code{\context} block within a @code{\layout} block.  Each
+@code{\context} block will affect all contexts of the type specified
+throughout the @code{\score} or @code{\book} block in which the
+@code{\layout} block appears.  Here is a example to show the format:
+
+@lilypond[verbatim,quote]
+\score {
+  \new Staff {
+    \relative c'' {
+      cis4 e d ces
+    }
+  }
+  \layout {
+    \context {
+      \Staff
+      extraNatural = ##t
+    }
+  }
+}
+@end lilypond
+
+@noindent
+Context properties set in this way may be overridden for particular
+instances of contexts by statements in a @code{\with} block, and by
+@code{\set} commands embedded in music statements.
+
+
+@seealso
+Notation Reference:
+@ruser{Changing context default settings}.
+@ruser{The set command}.
+
+Internals Reference:
+@rinternals{Contexts},
+@rinternals{Tunable context properties}.
+
+
 @node Ábrázolók hozzáadása és eltávolítása
 @subsection Ábrázolók hozzáadása és eltávolítása
 @translationof Adding and removing engravers
-@translationof Adding and removing engravers
 
-@untranslated
-
-
-@c index engravers, adding
-@c index adding engravers
-@c index engravers, removing
-@c index removing engravers
-@subsubheading Egyetlenegy kontextus módosítása
-@c ode{\with} command placed immediately after the context creation
-@c index ambitus engraver
-@c ode{\consists @var{Engraver_name}},
-@c ode{Ambitus_engraver}, which is not normally included in any
-@c ode{Staff} context, it calculates the range from all
-@subsubheading Azonos típusú kontextusok módosítása
-@c ode{\set} command in a @code{\context} block in the
+@cindex engravers, adding
+@cindex adding engravers
+@cindex engravers, removing
+@cindex removing engravers
+
+@funindex \consists
+@funindex consists
+@funindex \remove
+@funindex remove
+
+We have seen that contexts each contain several engravers, each
+of which is responsible for producing a particular part of the
+output, like bar lines, staves, note heads, stems, etc.  If an
+engraver is removed from a context, it can no longer produce its
+output.  This is a crude way of modifying the output, but it
+can sometimes be useful.
+
+@subsubheading Changing a single context
+
+To remove an engraver from a single context we use the
+@code{\with} command placed immediately after the context creation
+command, as in the previous section.
+
+As an illustration, let's repeat an example from the previous section
+with the staff lines removed.  Remember that the staff lines are
+produced by the @code{Staff_symbol_engraver}.
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \with {
+  \remove Staff_symbol_engraver
+}
+\relative c' {
+  c4
+  \set fontSize = #-4  % make note heads smaller
+  d e
+  \set fontSize = #2.5  % make note heads larger
+  f g
+  \unset fontSize  % return to default size
+  a b
+}
+@end lilypond
+
+@cindex ambitus engraver
+
+Engravers can also be added to individual contexts.
+The command to do this is
+
+@code{\consists @var{Engraver_name}},
+
+@noindent
+placed inside a @code{\with} block.  Some vocal scores have an ambitus
+placed at the beginning of a staff to indicate the range of notes in
+that staff -- see @rglos{ambitus}.  The ambitus is produced by the
+@code{Ambitus_engraver}, which is not normally included in any
+context.  If we add it to the @code{Voice} context, it calculates the
+range from that voice only:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff <<
+  \new Voice \with {
+    \consists Ambitus_engraver
+  }
+  \relative c'' {
+    \voiceOne
+    c a b g
+  }
+  \new Voice
+  \relative c' {
+    \voiceTwo
+    c e d f
+  }
+>>
+@end lilypond
+
+@noindent
+but if we add the ambitus engraver to the
+@code{Staff} context, it calculates the range from all
+the notes in all the voices on that staff:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \with {
+    \consists Ambitus_engraver
+  }
+  <<
+  \new Voice
+  \relative c'' {
+    \voiceOne
+    c a b g
+  }
+  \new Voice
+  \relative c' {
+    \voiceTwo
+    c e d f
+  }
+>>
+@end lilypond
+
+@subsubheading Changing all contexts of the same type
+
+@funindex \layout
+@funindex layout
+
+The examples above show how to remove or add engravers to
+individual contexts.  It is also possible to remove or add
+engravers to every context of a specific type by placing the
+commands in the appropriate context in a @code{\layout}
+block.  For example, if we wanted to show an ambitus for every
+staff in a four-staff score, we could write
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+  <<
+    \new Staff <<
+      \relative c'' {
+        c a b g
+      }
+    >>
+    \new Staff <<
+      \relative c' {
+        c a b g
+      }
+    >>
+    \new Staff <<
+      \clef "G_8"
+      \relative c' {
+        c a b g
+      }
+    >>
+    \new Staff <<
+      \clef "bass"
+      \relative c {
+        c a b g
+      }
+    >>
+  >>
+  \layout {
+    \context {
+      \Staff
+      \consists Ambitus_engraver
+    }
+  }
+}
+@end lilypond
+
+@noindent
+The values of context properties may also be set
+for all contexts of a particular type by including the
+@code{\set} command in a @code{\context} block in the
+same way.
+
+
+@seealso
+Notation Reference: @ruser{Modifying context plug-ins},
+@ruser{Changing context default settings}.
+
+
 @node A sablonok kibővítése
 @section A sablonok kibővítése
 @translationof Extending the templates
-@translationof Extending the templates
-
-@untranslated
 
+You've read the tutorial, you know how to write music, you
+understand the fundamental concepts.  But how can you
+get the staves that you want?  Well, you can find lots of
+templates (see @ref{Templates}) which may give you a start.
+But what if you want something that isn't covered there?  Read on.
 
 @menu
 * Szoprán és cselló::
 @node Szoprán és cselló
 @subsection Szoprán és cselló
 @translationof Soprano and cello
-@translationof Soprano and cello
 
-@untranslated
+@cindex template, modifying
+@cindex modifying templates
+
+Start off with the template that seems closest to what you want to
+end up with.  Let's say that you want to write something for
+soprano and cello.  In this case, we would start with the
+@q{Notes and lyrics} template (for the soprano part).
+
+@example
+\version @w{"@version{}"}
+melody = \relative c' @{
+  \clef treble
+  \key c \major
+  \time 4/4
+  a4 b c d
+@}
+
+text = \lyricmode @{
+  Aaa Bee Cee Dee
+@}
+
+\score @{
+  <<
+    \new Voice = "one" @{
+      \autoBeamOff
+      \melody
+    @}
+    \new Lyrics \lyricsto "one" \text
+  >>
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+Now we want to add a cello part.  Let's look at the @q{Notes only} example:
+
+@example
+\version @w{"@version{}"}
+melody = \relative c' @{
+  \clef treble
+  \key c \major
+  \time 4/4
+  a4 b c d
+@}
+
+\score @{
+  \new Staff \melody
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+We don't need two @code{\version} commands.  We'll need the
+@code{melody} section.  We don't want two @code{\score} sections
+-- if we had two @code{\score}s, we'd get the two parts separately.
+We want them together, as a duet.  Within the @code{\score}
+section, we don't need two @code{\layout} or @code{\midi}.
+
+If we simply cut and paste the @code{melody} section, we would
+end up with two @code{melody} definitions.  This would not generate
+an error, but the second one would be used for both melodies.
+So let's rename them to make them distinct.  We'll call the
+section for the soprano @code{sopranoMusic} and the section for
+the cello @code{celloMusic}.  While we're doing this, let's rename
+@code{text} to be @code{sopranoLyrics}.  Remember to rename both
+instances of all these names -- both the initial definition (the
+@code{melody = \relative c' @{ } part) and the name's use (in the
+@code{\score} section).
+
+While we're doing this, let's change the cello part's staff --
+celli normally use bass clef.  We'll also give the cello some
+different notes.
+
+@example
+\version @w{"@version{}"}
+sopranoMusic = \relative c' @{
+  \clef treble
+  \key c \major
+  \time 4/4
+  a4 b c d
+@}
+
+sopranoLyrics = \lyricmode @{
+  Aaa Bee Cee Dee
+@}
+
+celloMusic = \relative c @{
+  \clef bass
+  \key c \major
+  \time 4/4
+  d4 g fis8 e d4
+@}
+
+\score @{
+  <<
+    \new Voice = "one" @{
+      \autoBeamOff
+      \sopranoMusic
+    @}
+    \new Lyrics \lyricsto "one" \sopranoLyrics
+  >>
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+This is looking promising, but the cello part won't appear in the
+score -- we haven't used it in the @code{\score} section.  If we
+want the cello part to appear under the soprano part, we need to add
+
+@example
+\new Staff \celloMusic
+@end example
+
+@noindent
+underneath the soprano stuff.  We also need to add @code{<<} and
+@code{>>} around the music -- that tells LilyPond that there's
+more than one thing (in this case, two @code{Staves}) happening
+at once.  The @code{\score} looks like this now:
 
-
-@c index template, modifying
-@c index modifying templates
-@c ode{melody} section.  We don't want two @code{\score} sections
-@c ode{text} to be @code{sopranoLyrics}.  Remember to rename both
-@c ode{melody = \relative c' @{ } part) and the name's use (in the
-@c ode{\score} section).
-@c ode{>>} around the music -- that tells LilyPond that there's
 @c Indentation in this example is deliberately poor
+@example
+\score @{
+  <<
+    <<
+      \new Voice = "one" @{
+        \autoBeamOff
+        \sopranoMusic
+      @}
+      \new Lyrics \lyricsto "one" \sopranoLyrics
+    >>
+    \new Staff \celloMusic
+  >>
+  \layout @{ @}
+  \midi @{ @}
+@}
+@end example
+
+@noindent
+This looks a bit messy; the indentation is messed up now.  That is
+easily fixed.  Here's the complete soprano and cello template.
+
+@lilypond[quote,verbatim,ragged-right,addversion]
+sopranoMusic = \relative c' {
+  \clef treble
+  \key c \major
+  \time 4/4
+  a4 b c d
+}
+
+sopranoLyrics = \lyricmode {
+  Aaa Bee Cee Dee
+}
+
+celloMusic = \relative c {
+  \clef bass
+  \key c \major
+  \time 4/4
+  d4 g fis8 e d4
+}
+
+\score {
+  <<
+    <<
+      \new Voice = "one" {
+        \autoBeamOff
+        \sopranoMusic
+      }
+      \new Lyrics \lyricsto "one" \sopranoLyrics
+    >>
+    \new Staff \celloMusic
+  >>
+  \layout { }
+  \midi { }
+}
+@end lilypond
+
+
+@seealso
+The starting templates can be found in the @q{Templates} appendix,
+see @ref{Single staff}.
+
+
 @node Négyszólamú vegyeskar
 @subsection Négyszólamú vegyeskar
 @translationof Four-part SATB vocal score
-@translationof Four-part SATB vocal score
 
-@untranslated
+@cindex template, SATB
+@cindex SATB template
 
+Most vocal scores of music written for four-part mixed choir
+with orchestral accompaniment such as Mendelssohn's Elijah or
+Handel's Messiah have the choral music and words on four
+staves, one for each of SATB, with a piano reduction of the
+orchestral accompaniment underneath.  Here's an example
+from Handel's Messiah:
 
-@c index template, SATB
-@c index SATB template
 @c The following should appear as music without code
-@c ode{\voiceXXX} commands should be removed.  We also need to specify
+@lilypond[quote,ragged-right]
+global = { \key d \major \time 4/4 }
+sopranoMusic = \relative c'' {
+  \clef "treble"
+  r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+}
+sopranoWords = \lyricmode {
+  Wor -- thy is the lamb that was slain
+}
+altoMusic = \relative a' {
+  \clef "treble"
+  r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
+}
+altoWords = \sopranoWords
+tenorMusic = \relative c' {
+  \clef "G_8"
+  r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+}
+tenorWords = \sopranoWords
+bassMusic = \relative c' {
+  \clef "bass"
+  r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+}
+bassWords = \sopranoWords
+upper = \relative a' {
+  \clef "treble"
+  \global
+  r4 <a d fis>2 <a e' a>4
+  <d fis d'>4. <d fis d'>8 <a d a'>2
+  <g cis g'>4 <a d fis> <a cis e>2
+}
+lower = \relative c, {
+  \clef "bass"
+  \global
+  <d d'>4 <d d'>2 <cis cis'>4
+  <b b'>4. <b' b'>8 <fis fis'>2
+  <e e'>4 <d d'> <a' a'>2
+}
+
+\score {
+  <<  % combine ChoirStaff and PianoStaff in parallel
+    \new ChoirStaff <<
+      \new Staff = "sopranos" <<
+        \set Staff.instrumentName = #"Soprano"
+        \new Voice = "sopranos" {
+          \global
+          \sopranoMusic
+        }
+      >>
+      \new Lyrics \lyricsto "sopranos" {
+        \sopranoWords
+      }
+      \new Staff = "altos" <<
+        \set Staff.instrumentName = #"Alto"
+        \new Voice = "altos" {
+          \global
+          \altoMusic
+        }
+      >>
+      \new Lyrics \lyricsto "altos" { \altoWords }
+      \new Staff = "tenors" <<
+        \set Staff.instrumentName = #"Tenor"
+        \new Voice = "tenors" {
+          \global
+          \tenorMusic
+        }
+      >>
+      \new Lyrics \lyricsto "tenors" { \tenorWords }
+      \new Staff = "basses" <<
+        \set Staff.instrumentName = #"Bass"
+        \new Voice = "basses" {
+          \global
+          \bassMusic
+        }
+      >>
+      \new Lyrics \lyricsto "basses" {
+        \bassWords
+      }
+    >>  % end ChoirStaff
+    \new PianoStaff <<
+      \set PianoStaff.instrumentName = #"Piano"
+      \new Staff = "upper" \upper
+      \new Staff = "lower" \lower
+    >>
+  >>
+}
+@end lilypond
+
+None of the templates provides this layout exactly.  The nearest is
+@q{SATB vocal score and automatic piano reduction} -- see @ref{Vocal
+ensembles} -- but we need to change the layout and add a piano
+accompaniment which is not derived automatically from the vocal parts.
+The variables holding the music and words for the vocal parts are
+fine, but we shall need to add variables for the piano reduction.
+
+The order in which the contexts appear in the ChoirStaff of the
+template do not correspond with the order in the vocal score shown
+above.  We need to rearrange them so there are four staves with the
+words written directly underneath the notes for each part.  All the
+voices should be @code{\voiceOne}, which is the default, so the
+@code{\voiceXXX} commands should be removed.  We also need to specify
+the tenor clef for the tenors.  The way in which lyrics are specified
+in the template has not yet been encountered so we need to use the
+method with which we are familiar.  We should also add the names of
+each staff.
+
+Doing this gives for our ChoirStaff:
+
+@example
+    \new ChoirStaff <<
+      \new Staff = "sopranos" <<
+        \set Staff.instrumentName = #"Soprano"
+        \new Voice = "sopranos" @{
+          \global
+          \sopranoMusic
+        @}
+      >>
+      \new Lyrics \lyricsto "sopranos" @{
+        \sopranoWords
+     @}
+      \new Staff = "altos" <<
+        \set Staff.instrumentName = #"Alto"
+        \new Voice = "altos" @{
+          \global
+          \altoMusic
+        @}
+      >>
+      \new Lyrics \lyricsto "altos" @{
+        \altoWords
+      @}
+      \new Staff = "tenors" <<
+        \set Staff.instrumentName = #"Tenor"
+        \new Voice = "tenors" @{
+          \global
+          \tenorMusic
+        @}
+      >>
+      \new Lyrics \lyricsto "tenors" @{
+        \tenorWords
+      @}
+      \new Staff = "basses" <<
+        \set Staff.instrumentName = #"Bass"
+        \new Voice = "basses" @{
+          \global
+          \bassMusic
+        @}
+      >>
+      \new Lyrics \lyricsto "basses" @{
+        \bassWords
+      @}
+    >>  % end ChoirStaff
+@end example
+
+Next we must work out the piano part.  This is
+easy - we just pull out the piano part from the
+@q{Solo piano} template:
+
+@example
+\new PianoStaff <<
+  \set PianoStaff.instrumentName = #"Piano  "
+  \new Staff = "upper" \upper
+  \new Staff = "lower" \lower
+>>
+@end example
+
+and add the variable definitions for @code{upper}
+and @code{lower}.
+
+The ChoirStaff and PianoStaff must be combined
+using angle brackets as we want them to be
+stacked one above the other:
+
+@example
+<<  % combine ChoirStaff and PianoStaff one above the other
+  \new ChoirStaff <<
+    \new Staff = "sopranos" <<
+      \new Voice = "sopranos" @{
+        \global
+        \sopranoMusic
+      @}
+    >>
+    \new Lyrics \lyricsto "sopranos" @{
+      \sopranoWords
+     @}
+    \new Staff = "altos" <<
+      \new Voice = "altos" @{
+        \global
+        \altoMusic
+      @}
+    >>
+    \new Lyrics \lyricsto "altos" @{
+      \altoWords
+    @}
+    \new Staff = "tenors" <<
+      \clef "G_8"  % tenor clef
+      \new Voice = "tenors" @{
+        \global
+        \tenorMusic
+      @}
+    >>
+    \new Lyrics \lyricsto "tenors" @{
+      \tenorWords
+    @}
+    \new Staff = "basses" <<
+      \clef "bass"
+      \new Voice = "basses" @{
+        \global
+        \bassMusic
+      @}
+    >>
+    \new Lyrics \lyricsto "basses" @{
+      \bassWords
+    @}
+  >>  % end ChoirStaff
+
+  \new PianoStaff <<
+    \set PianoStaff.instrumentName = #"Piano"
+    \new Staff = "upper" \upper
+    \new Staff = "lower" \lower
+  >>
+>>
+@end example
+
+Combining all these together and adding the music
+for the three bars of the example above gives:
+
+@lilypond[quote,verbatim,ragged-right,addversion]
+global = {
+  \key d \major
+  \time 4/4
+}
+sopranoMusic = \relative c'' {
+  \clef "treble"
+  r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+}
+sopranoWords = \lyricmode {
+  Wor -- thy is the lamb that was slain
+}
+altoMusic = \relative a' {
+  \clef "treble"
+  r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
+}
+altoWords = \sopranoWords
+tenorMusic = \relative c' {
+  \clef "G_8"
+  r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+}
+tenorWords = \sopranoWords
+bassMusic = \relative c' {
+  \clef "bass"
+  r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+}
+bassWords = \sopranoWords
+upper = \relative a' {
+  \clef "treble"
+  \global
+  r4 <a d fis>2 <a e' a>4
+  <d fis d'>4. <d fis d'>8 <a d a'>2
+  <g cis g'>4 <a d fis> <a cis e>2
+}
+lower = \relative c, {
+  \clef "bass"
+  \global
+  <d d'>4 <d d'>2 <cis cis'>4
+  <b b'>4. <b' b'>8 <fis fis'>2
+  <e e'>4 <d d'> <a' a'>2
+}
+
+\score {
+  <<  % combine ChoirStaff and PianoStaff in parallel
+    \new ChoirStaff <<
+      \new Staff = "sopranos" <<
+        \set Staff.instrumentName = #"Soprano"
+        \new Voice = "sopranos" {
+          \global
+          \sopranoMusic
+        }
+      >>
+      \new Lyrics \lyricsto "sopranos" {
+        \sopranoWords
+      }
+      \new Staff = "altos" <<
+        \set Staff.instrumentName = #"Alto"
+        \new Voice = "altos" {
+          \global
+          \altoMusic
+        }
+      >>
+      \new Lyrics \lyricsto "altos" {
+        \altoWords
+      }
+      \new Staff = "tenors" <<
+        \set Staff.instrumentName = #"Tenor"
+        \new Voice = "tenors" {
+          \global
+          \tenorMusic
+        }
+      >>
+      \new Lyrics \lyricsto "tenors" {
+        \tenorWords
+      }
+      \new Staff = "basses" <<
+        \set Staff.instrumentName = #"Bass"
+        \new Voice = "basses" {
+          \global
+          \bassMusic
+        }
+      >>
+      \new Lyrics \lyricsto "basses" {
+        \bassWords
+      }
+    >>  % end ChoirStaff
+
+    \new PianoStaff <<
+      \set PianoStaff.instrumentName = #"Piano  "
+      \new Staff = "upper" \upper
+      \new Staff = "lower" \lower
+    >>
+  >>
+}
+@end lilypond
+
+
 @node Kotta létrehozása az alapoktól
 @subsection Kotta létrehozása az alapoktól
 @translationof Building a score from scratch
-@translationof Building a score from scratch
 
-@untranslated
+@cindex template, writing your own
+@cindex example of writing a score
+@cindex writing a score, example
+@cindex score, example of writing
+
+After gaining some facility with writing LilyPond code, you
+may find that it is easier to build a score from scratch
+rather than modifying one of the templates.  You can also
+develop your own style this way to suit the sort of music you
+like.  Let's see how to put together the score for an organ
+prelude as an example.
+
+We begin with a header section.  Here go the title, name
+of composer, etc, then come any variable definitions, and
+finally the score block.  Let's start with these in outline
+and fill in the details later.
+
+We'll use the first two bars of Bach's prelude
+based on @emph{Jesu, meine Freude} which is written for two
+manuals and pedal organ.  You can see these two bars of music
+at the bottom of this section.  The top manual part has two voices,
+the lower and pedal organ one each.  So we need four
+music definitions and one to define the time signature
+and key:
+
+@example
+\version @w{"@version{}"}
+\header @{
+  title = "Jesu, meine Freude"
+  composer = "J S Bach"
+@}
+TimeKey = @{
+  \time 4/4
+  \key c \minor
+@}
+ManualOneVoiceOneMusic = @{ s1 @}
+ManualOneVoiceTwoMusic = @{ s1 @}
+ManualTwoMusic = @{ s1 @}
+PedalOrganMusic = @{ s1 @}
+
+\score @{
+@}
+@end example
+
+For now we've just used a spacer note, @code{s1},
+instead of the real music.  We'll add that later.
+
+Next let's see what should go in the score block.
+We simply mirror the staff structure we want.
+Organ music is usually written on three staves,
+one for each manual and one for the pedals.  The
+manual staves should be bracketed together, so we
+need to use a PianoStaff for them.  The first
+manual part needs two voices and the second manual
+part just one.
+
+@example
+  \new PianoStaff <<
+    \new Staff = "ManualOne" <<
+      \new Voice @{
+        \ManualOneVoiceOneMusic
+      @}
+      \new Voice @{
+        \ManualOneVoiceTwoMusic
+      @}
+    >>  % end ManualOne Staff context
+    \new Staff = "ManualTwo" <<
+      \new Voice @{
+        \ManualTwoMusic
+      @}
+    >>  % end ManualTwo Staff context
+  >>  % end PianoStaff context
+@end example
+
+Next we need to add a staff for the pedal organ.
+This goes underneath the PianoStaff, but it must
+be simultaneous with it, so we need angle brackets
+around the two.  Missing these out would generate
+an error in the log file.  It's a common mistake
+which you'll make sooner or later!  Try copying
+the final example at the end of this section,
+remove these angle brackets, and compile it to
+see what errors it generates.
+
+@example
+<<  % PianoStaff and Pedal Staff must be simultaneous
+  \new PianoStaff <<
+    \new Staff = "ManualOne" <<
+      \new Voice @{
+        \ManualOneVoiceOneMusic
+      @}
+      \new Voice @{
+        \ManualOneVoiceTwoMusic
+      @}
+    >>  % end ManualOne Staff context
+    \new Staff = "ManualTwo" <<
+      \new Voice @{
+        \ManualTwoMusic
+      @}
+    >>  % end ManualTwo Staff context
+  >>  % end PianoStaff context
+  \new Staff = "PedalOrgan" <<
+    \new Voice @{
+      \PedalOrganMusic
+    @}
+  >>
+>>
+@end example
+
+It is not necessary to use the simultaneous construct
+@code{<< .. >>} for the manual two staff and the pedal organ staff,
+since they contain only one music expression, but it does no harm,
+and always using angle brackets after @code{\new Staff} is a good
+habit to cultivate in case there are multiple voices.  The opposite
+is true for Voices: these should habitually be followed by braces
+@code{@{ .. @}} in case your music is coded in several variables
+which need to run consecutively.
+
+Let's add this structure to the score block, and adjust the indenting.
+We also add the appropriate clefs, ensure stems, ties and slurs in
+each voice on the upper staff point to the right direction with
+@code{\voiceOne} and @code{\voiceTwo}, and enter the time signature
+and key to each staff using our predefined variable, @code{\TimeKey}.
+
+@example
+\score @{
+  <<  % PianoStaff and Pedal Staff must be simultaneous
+    \new PianoStaff <<
+      \new Staff = "ManualOne" <<
+        \TimeKey  % set time signature and key
+        \clef "treble"
+        \new Voice @{
+          \voiceOne
+          \ManualOneVoiceOneMusic
+        @}
+        \new Voice @{
+          \voiceTwo
+          \ManualOneVoiceTwoMusic
+        @}
+      >>  % end ManualOne Staff context
+      \new Staff = "ManualTwo" <<
+        \TimeKey
+        \clef "bass"
+        \new Voice @{
+          \ManualTwoMusic
+        @}
+      >>  % end ManualTwo Staff context
+    >>  % end PianoStaff context
+    \new Staff = "PedalOrgan" <<
+      \TimeKey
+      \clef "bass"
+      \new Voice @{
+        \PedalOrganMusic
+      @}
+    >>  % end PedalOrgan Staff
+  >>
+@}  % end Score context
+@end example
+
+That completes the structure.  Any three-staff organ music
+will have a similar structure, although the number of voices
+may vary.  All that remains now
+is to add the music, and combine all the parts together.
+
+@lilypond[quote,verbatim,ragged-right,addversion]
+\header {
+  title = "Jesu, meine Freude"
+  composer = "J S Bach"
+}
+TimeKey = {
+  \time 4/4
+  \key c \minor
+}
+ManualOneVoiceOneMusic = \relative g' {
+  g4 g f ees
+  d2 c2
+}
+ManualOneVoiceTwoMusic = \relative c' {
+  ees16 d ees8~ ees16 f ees d c8 d~ d c~
+  c c4 b8 c8. g16 c b c d
+}
+ManualTwoMusic = \relative c' {
+  c16 b c8~ c16 b c g a8 g~ g16 g aes ees
+  f ees f d g aes g f ees d e8~ ees16 f ees d
+}
+PedalOrganMusic = \relative c {
+  r8 c16 d ees d ees8~ ees16 a, b g c b c8
+  r16 g ees f g f g8 c,2
+}
+
+\score {
+  <<  % PianoStaff and Pedal Staff must be simultaneous
+    \new PianoStaff <<
+      \new Staff = "ManualOne" <<
+        \TimeKey  % set time signature and key
+        \clef "treble"
+        \new Voice {
+          \voiceOne
+          \ManualOneVoiceOneMusic
+        }
+        \new Voice {
+          \voiceTwo
+          \ManualOneVoiceTwoMusic
+        }
+      >>  % end ManualOne Staff context
+      \new Staff = "ManualTwo" <<
+        \TimeKey
+        \clef "bass"
+        \new Voice {
+          \ManualTwoMusic
+        }
+      >>  % end ManualTwo Staff context
+    >>  % end PianoStaff context
+    \new Staff = "PedalOrgan" <<
+      \TimeKey
+      \clef "bass"
+      \new Voice {
+        \PedalOrganMusic
+      }
+    >>  % end PedalOrgan Staff context
+  >>
+}  % end Score context
+@end lilypond
 
 
-@c index template, writing your own
-@c index example of writing a score
-@c index writing a score, example
-@c index score, example of writing
-@c ode{<< .. >>} for the manual two staff and the pedal organ staff,
-@c ode{@{ .. @}} in case your music is coded in several variables
-@c ode{\voiceOne} and @code{\voiceTwo}, and enter the time signature
 @node Kevesebb gépelés változókkal és függvényekkel
 @subsection Kevesebb gépelés változókkal és függvényekkel
 @translationof Saving typing with variables and functions
-@translationof Saving typing with variables and functions
-
-@untranslated
 
+@cindex variables
+@cindex variables
+
+By this point, you've seen this kind of thing:
+
+@lilypond[quote,verbatim,ragged-right]
+hornNotes = \relative c'' { c4 b dis c }
+\score {
+  {
+    \hornNotes
+  }
+}
+@end lilypond
+
+You may even realize that this could be useful in minimalist music:
+
+@lilypond[quote,verbatim,ragged-right]
+fragmentA = \relative c'' { a4 a8. b16 }
+fragmentB = \relative c'' { a8. gis16 ees4 }
+violin = \new Staff {
+  \fragmentA
+  \fragmentA
+  \fragmentB
+  \fragmentA
+}
+\score {
+  {
+    \violin
+  }
+}
+@end lilypond
+
+However, you can also use these variables (also known as
+macros, or user-defined commands) for tweaks:
 
-@c index variables
-@c index variables
 @c TODO Avoid padtext - not needed with skylining
+@lilypond[quote,verbatim,ragged-right]
+dolce = \markup { \italic \bold dolce }
+padText = { \once \override TextScript #'padding = #5.0 }
+fthenp=_\markup { \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p }
+violin = \relative c'' {
+  \repeat volta 2 {
+    c4._\dolce b8 a8 g a b
+    \padText
+    c4.^"hi there!" d8 e' f g d
+    c,4.\fthenp b8 c4 c-.
+  }
+}
+\score {
+  {
+    \violin
+  }
+\layout { ragged-right=##t }
+}
+@end lilypond
+
+These variables are obviously useful for saving
+typing.  But they're worth considering even if you
+only use them once -- they reduce complexity.  Let's
+look at the previous example without any
+variables.  It's a lot harder to read, especially
+the last line.
+
+@example
+violin = \relative c'' @{
+  \repeat volta 2 @{
+    c4._\markup @{ \italic \bold dolce @} b8 a8 g a b
+    \once \override TextScript #'padding = #5.0
+    c4.^"hi there!" d8 e' f g d
+    c,4.\markup @{ \dynamic f \italic \small @{ 2nd @}
+      \hspace #0.1 \dynamic p @}
+    b8 c4 c-.
+  @}
+@}
+@end example
+
 @c TODO Replace the following with a better example  -td
 @c Skylining handles this correctly without padText
-@c ode{padtext=}).
-@node Partitúra és szólamkották
-@subsection Partitúra és szólamkották
-@translationof Scores and parts
-@translationof Scores and parts
 
-@untranslated
+So far we've seen static substitution -- when LilyPond
+sees @code{\padText}, it replaces it with the stuff that
+we've defined it to be (ie the stuff to the right of
+@code{padtext=}).
+
+LilyPond can handle non-static substitution, too (you
+can think of these as functions).
+
+@lilypond[quote,verbatim,ragged-right]
+padText =
+#(define-music-function (parser location padding) (number?)
+  #{
+    \once \override TextScript #'padding = #$padding
+  #})
+
+\relative c''' {
+  c4^"piu mosso" b a b
+  \padText #1.8
+  c4^"piu mosso" d e f
+  \padText #2.6
+  c4^"piu mosso" fis a g
+}
+@end lilypond
+
+Using variables is also a good way to reduce work if the
+LilyPond input syntax changes (see
+@rprogram{Updating files with convert-ly}).  If
+you have a single definition (such as @code{\dolce}) for all your
+input files (see @ref{Style sheets}), then if the syntax changes, you
+only need to update your single @code{\dolce} definition,
+instead of making changes throughout every @code{.ly} file.
 
 
-@c ode{\transpose f@tie{}c'} indicates that the argument, being
-@c ode{\hornNotes}, should be transposed by a fifth upwards.  Sounding
-@c ode{f} is denoted by notated @code{c'}, which corresponds with the
-@c ode{Score} context to true (@code{##t}).  Prepending the rest and
+@node Partitúra és szólamkották
+@subsection Partitúra és szólamkották
+@translationof Scores and parts
 
+In orchestral music, all notes are printed twice.  Once in a part for
+the musicians, and once in a full score for the conductor.  Variables can
+be used to avoid double work.  The music is entered once, and stored in
+a variable.  The contents of that variable is then used to generate
+both the part and the full score.
+
+It is convenient to define the notes in a special file.  For example,
+suppose that the file @file{horn-music.ly} contains the following part
+of a horn/@/bassoon duo
+
+@example
+hornNotes = \relative c @{
+  \time 2/4
+  r4 f8 a cis4 f e d
+@}
+@end example
+
+@noindent
+Then, an individual part is made by putting the following in a file
+
+@example
+\include "horn-music.ly"
+\header @{
+  instrument = "Horn in F"
+@}
+
+@{
+ \transpose f c' \hornNotes
+@}
+@end example
+
+The line
+
+@example
+\include "horn-music.ly"
+@end example
+
+@noindent
+substitutes the contents of @file{horn-music.ly} at this position in
+the file, so @code{hornNotes} is defined afterwards.  The command
+@code{\transpose f@tie{}c'} indicates that the argument, being
+@code{\hornNotes}, should be transposed by a fifth upwards.  Sounding
+@code{f} is denoted by notated @code{c'}, which corresponds with the
+tuning of a normal French Horn in@tie{}F.  The transposition can be seen
+in the following output
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+  \time 2/4
+  r4 f8 a cis4 f e d
+}
+@end lilypond
+
+In ensemble pieces, one of the voices often does not play for many
+measures.  This is denoted by a special rest, the multi-measure
+rest.  It is entered with a capital @code{R} followed by a duration
+(@code{1}@tie{}for a whole note, @code{2}@tie{}for a half note,
+etc.).  By multiplying the
+duration, longer rests can be constructed.  For example, this rest
+takes 3@tie{}measures in 2/4 time
+
+@example
+R2*3
+@end example
+
+When printing the part, multi-rests
+must be condensed.  This is done by setting a run-time variable
+
+@example
+\set Score.skipBars = ##t
+@end example
+
+@noindent
+This command sets the property @code{skipBars} in the
+@code{Score} context to true (@code{##t}).  Prepending the rest and
+this option to the music above, leads to the following result
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+  \time 2/4
+  \set Score.skipBars = ##t
+  R2*3
+  r4 f8 a cis4 f e d
+}
+@end lilypond
+
+
+The score is made by combining all of the music together.  Assuming
+that the other voice is in @code{bassoonNotes} in the file
+@file{bassoon-music.ly}, a score is made with
+
+@example
+\include "bassoon-music.ly"
+\include "horn-music.ly"
+
+<<
+  \new Staff \hornNotes
+  \new Staff \bassoonNotes
+>>
+@end example
+
+@noindent
+leading to
+
+@lilypond[quote,ragged-right]
+\relative c <<
+  \new Staff {
+    \time 2/4
+    R2*3
+    r4 f8 a cis4 f e d
+  }
+  \new Staff {
+    \clef bass
+    r4 d,8 f | gis4 c | b bes |
+    a8 e f4 | g d | gis f |
+  }
+>>
+@end lilypond
\ No newline at end of file