@c -*- coding: utf-8; mode: texinfo; fill-column: 60 -*- @ignore Translation of GIT committish: b603992938d150b2a60de448721f054e0b614ac6 When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' Guide, node Updating translation committishes.. @end ignore @include included/generating-output.itexi @c \version "2.12.0" @node Leerboek @translationof Tutorial @chapter Leerboek Dit hoofdstuk is de basisinleiding voor het werken met LilyPond. @menu * Het compileren van een bestand:: * Het schrijven van invoerbestanden:: * Het lezen van de handleidingen:: @end menu @node Het compileren van een bestand @translationof Compiling a file @section Het compileren van een bestand Deze paragraaf introduceert het @qq{compileren}---het verwerken van LilyPond-invoerbestanden (geschreven door jouzelf) voor het produceren van uitvoerbestanden. @menu * Invoer schrijven:: * MacOS X:: * Windows:: * Commandoregel:: @end menu @node Invoer schrijven @translationof Entering input @subsection Invoer schrijven @cindex compileren @cindex eerste voorbeeld @cindex voorbeeld, eerste @cindex hoofdlettergevoelig @qq{Compileren} is de term die gebruikt wordt voor het verwerken van een invoerbestand in LilyPond-formaat voor het produceren van één of meer uitvoerbestanden. Uitvoerbestanden zijn gewoonlijk PDF (om te printen of te bekijken), MIDI (om af te spelen), en PNG (for online gebruik). LilyPond-invoerbestanden zijn gewone tekstbestanden. Dit is een voorbeeld van een eenvoudig invoerbestand: @example \version "@w{@version{}}" @{ c' e' g' e' @} @end example De grafische uitvoer is: @c in this case we don't want verbatim @lilypond[quote] { c' e' g' e' } @end lilypond @warning{Noten en liedteksten in LilyPond invoer moeten altijd binnen @w{@strong{@{ accolades @}}} staan. Om ambiguïteit te voorkomen moeten deze accolades altijd los staan, d.w.z. omgeven zijn door witruimte, of aan het begin of einde van een regel staan. In sommige voorbeelden in deze handleiding zijn ze weggelaten, maar vergeet ze niet te gebruiken in je eigen muziek! Voor meer informatie over hoe voorbeelden worden afgebeeld in deze handleiding, zie @ref{Het lezen van de handleidingen}.} LilyPond-invoer is @strong{hoofdlettergevoelig}. @w{@code{@{ c d e @}}} is geldige invoer; @w{@code{@{ C D E @}}} zal een foutmelding geven. @smallspace @subheading Het produceren van uitvoer @cindex PDF-bestand @cindex muziek weergeven @cindex tekst-editors Hoe je uitvoer produceert, is afhankelijk van je operating systeem en van de programma's die je gebruikt. @itemize @item @ref{MacOS X, @sourceimage{logo-macosx,,,}} @ref{MacOS X, MacOS X} (grafisch) @item @ref{Windows, @sourceimage{logo-windows,,,}} @ref{Windows, Microsoft Windows} (grafisch) @item @ref{Commandoregel, @sourceimage{logo-linux,,,} @sourceimage{logo-freebsd,,,} @sourceimage{logo-macosx,,,} @sourceimage{logo-windows,,,} } @ref{Commandoregel, Alle operating systemens} (commandoregel) @end itemize Er zijn verscheidene andere tekst-editors beschikbaar met specifieke LilyPond-ondersteuning. Voor meer informatie, zie @rweb{Eenvoudiger bewerken}. @warning{Als je LilyPond voor de allereerste keer draait, kan dat een minuut of twee duren omdat alle systeemfonts eerst moeten worden geanalyseerd. De volgende keer draait LilyPond veel sneller!} @node MacOS X @subsection MacOS X @cindex draaien van LilyPond onder MacOS X @cindex MacOS X, draaien van LilyPond @lilypadOSX @node Windows @subsection Windows @cindex draaien van LilyPond onder Windows @cindex Windows, draaien van LilyPond @lilypadWindows @node Commandoregel @translationof Command-line @subsection Commandoregel @cindex draaien van LilyPond onder Unix @cindex Unix, draaien van LilyPond @lilypadCommandLine @node Het schrijven van invoerbestanden @translationof How to write input files @section Het schrijven van invoerbestanden Deze paragraaf introduceert de LilyPond basissyntax om je op weg te helpen bij het schrijven van invoerbestanden. @menu * Eenvoudige notatie:: * Werken met invoerbestanden:: @end menu @node Eenvoudige notatie @translationof Simple notation @subsection Eenvoudige notatie @cindex eenvoudige notatie @cindex notatie, eenvoudig LilyPond kan bepaalde notatie-elementen automatisch toevoegen. In het volgende voorbeeld hebben we slechts vier toonhoogten ingevoerd, maar LilyPond heeft een muzieksleutel, een maatsoort, en nootlengtes toegevoegd. @lilypond[verbatim,quote] { c' e' g' e' } @end lilypond @noindent Dit gedrag kan worden veranderd, maar in de meeste gevallen zijn deze automatische waarden heel handig. @subheading Toonhoogten @cindex toonhoogten @cindex relatieve modus @cindex apostrof, enkel aanhalingsteken @cindex komma @cindex toevallige tekens en relatieve modus @cindex relatieve modus, en toevallige tekens @funindex \relative @funindex relative @funindex ' @funindex , Terminologie: @rglos{pitch}, @rglos{interval}, @rglos{scale}, @rglos{middle C}, @rglos{octave}, @rglos{accidental}. De meest eenvoudige manier voor het invoeren van noten is de @code{\relative} modus. In deze modus wordt het octaaf automatisch gekozen door de aanname dat een opvolgende noot altijd zo dicht mogelijk bij de vorige noot geplaatst moet worden, d.w.z., hij wordt geplaatst in het octaaf dat binnen drie notenbalk-ruimtes ten opzichte van de vorige noot valt. We beginnen met het invoeren van het meest elementaire stuk muziek, een @notation{toonladder}, waarin elke noot precies één notenbalk-ruimte hoger is dan de vorige noot. @lilypond[verbatim,quote] % zet het beginpunt op de centrale C \relative c' { c d e f g a b c } @end lilypond De eerste noot is de @notation{centrale C}. Elke volgende noot wordt zo dicht mogelijk geplaatst ten op zichte van de vorige noot -- of anders gezegd, de eerste @code{c} is de C het dichtst bij de centrale C. Die wordt gevolgd door dichtstbijzijnde D ten opzichte van de vorige noot. We kunnen melodieën maken die grotere intervallen hebben, nog steeds uitsluitend gebruikmakend van de {\relative} modus: @lilypond[verbatim,quote] \relative c' { d f a g c b f d } @end lilypond @noindent De eerste noot van de melodie hoeft niet te beginnen met de noot die de begintoonhoogte aangeeft. In bovenstaand voorbeeld is de eerste noot -- de @code{d} -- de dichtstbijzijnde D bij de centrale C. Door het toevoegen (of weghalen) van apostrofs @code{'} of komma's @code{,} van het @code{@w{\relative c' @{}}-commando, kunnen we het beginoctaaf veranderen: @lilypond[verbatim,quote] % één octaaf boven de centrale C \relative c'' { e c a c } @end lilypond Relatieve modus kan aanvankelijk wat verwarrend zijn, maar het is de eenvoudigste manier om melodieën in te voeren. Laten we eens kijken hoe het uitrekenen van relatieve afstanden in de praktijk werkt. Beginnend met een B, die in de vioolsleutel op de middelste lijn staat, kan je een C, D en E bereiken binnen 3 notenbalk-ruimten omhoog, een een A, G en F binnen 3 notenbalk-ruimten omlaag. Dus als de noot na een B een C, D of E is, wordt aangenomen dat die hoger is dan de B, en van een A, G of F wordt aangenomen dat hij lager is. @lilypond[verbatim,quote] \relative c'' { b c % c is 1 notenbalk-ruimte omhoog, dus de c hoger b d % d is 2 omhoog of 5 omlaag, dus de d hoger b e % e is 3 omhoog of 4 omlaag, dus de e hoger b a % a is 6 omhoog of 1 omlaag, dus de a lager b g % g is 5 omhoog of 2 omlaag, dus de g lager b f % f is 4 omhoog of 3 omlaag, dus de f lager } @end lilypond Precies hetzelfde gebeurt als een van deze noten verhoogd of verlaagd is met een kruis of mol. @notation{Toevallige tekens} worden @strong{volledig genegeerd} in de berekening van de relatieve positie. Exact dezelfde notenbalkruimte-telling wordt gedaan voor een noot op willekeurig welke andere plaats op de notenbalk. Om intervallen te gebruiken die groter zijn dan drie notenbalk-ruimten, kunnen we het @notation{octaaf} verhogen door een apostrof @code{'} (of enkel aanhalingsteken) aan de notenaam toe te voegen. We kunnen het octaaf verlagen door een komma @code{,} aan de notenaam toe toe voegen. @lilypond[verbatim,quote] \relative c'' { a a, c' f, g g'' a,, f' } @end lilypond @noindent Voor het veranderen van een noot met twee (of meer!) octaven gebruiken we meerdere @code{''} of @code{,,} -- maar let op dat je twee enkele apostrofs of aanhalingstekens gebruikt @code{''} en niet één dubbel aanhalingsteken @code{"}@tie{}! De beginwaarde in @code{@w{\relative c'}} kan ook op deze manier worden veranderd. @c " - keeps quotes in order for context-sensitive editor -td @subheading Nootlengten (ritmen) @cindex nootlengten @cindex lengten @cindex ritmen @cindex hele noot @cindex halve noot @cindex kwartnoot @cindex gepuncteerde noot @cindex lengten noteren Terminologie: @rglos{beam}, @rglos{duration}, @rglos{whole note}, @rglos{half note}, @rglos{quarter note}, @rglos{dotted note}. De @notation{lengte} van een noot wordt aangegeven door een getal na de notenaam: @code{1} voor een @notation{hele noot}, @code{2} voor een @notation{halve noot}, @code{4} voor een @notation{kwartnoot} enzovoorts. @notation{Waardestrepen} worden automatisch toegevoegd. Als je geen lengte aangeeft, word te vorige lengte ook gebruikt voor de volgende noot. De lengte van de eerste noot is standaard een kwartnoot. @lilypond[verbatim,quote] \relative c'' { a1 a2 a4 a8 a a16 a a a a32 a a a a64 a a a a a a a a2 } @end lilypond Voor het maken van @notation{gepuncteerde noten} voeg je een punt @code{.} toe aan het lengte-getal. De lengte van een gepuncteerde noot moet expliciet worden aangegeven (d.w.z., altijd ook met een getal). @lilypond[verbatim,quote] \relative c'' { a a a4. a8 a8. a16 a a8. a8 a4. } @end lilypond @subheading Rusten @cindex rust @cindex rusten noteren Terminologie: @rglos{rest}. Een @notation{rust} voer je in net zoals een noot met de naam @code{r}@tie{}: @lilypond[verbatim,quote] \relative c'' { a r r2 r8 a r4 r4. r8 } @end lilypond @subheading Maatsoort @cindex maatsoort @funindex \time @funindex time Terminologie: @rglos{time signature}. De @notation{maatsoort} kun je aangeven met het @code{\time} commando: @lilypond[verbatim,quote] \relative c'' { \time 3/4 a4 a a \time 6/8 a4. a \time 4/4 a4 a a a } @end lilypond @subheading Sleutel @cindex sleutel @cindex viool @cindex sopraan @cindex alt @cindex tenor @cindex bas @funindex \clef @funindex clef Terminologie: @rglos{clef}. De @notation{sleutel} kun je aangeven met het @code{\clef} commando: @lilypond[verbatim,quote] \relative c' { \clef treble c1 \clef alto c1 \clef tenor c1 \clef bass c1 } @end lilypond @subheading Alles samen Hier is een klein voorbeeld dat al deze onderdelen samen toont: @lilypond[verbatim,quote] \relative c, { \time 3/4 \clef bass c2 e8 c' g'2. f4 e d c4 c, r4 } @end lilypond @seealso Notatiehandleiding: @ruser{Writing pitches}, @ruser{Writing rhythms}, @ruser{Writing rests}, @ruser{Time signature}, @ruser{Clef}. @node Werken met invoerbestanden @translationof Working on input files @subsection Werken met invoerbestanden @cindex accolades @cindex haakjes, gekruld @cindex commentaar @cindex regelcommentaar @cindex commentaar, regel @cindex blokcommentaar @cindex commentaar, blok @cindex hoofdlettergevoelig @cindex witruimteongevoelig @cindex expressies @cindex versie aangeven @cindex versie @cindex versienummer @funindex \version @funindex { ... } @funindex % @funindex %@{ ... %@} LilyPond-invoerbestanden lijken op broncodebestanden van de meest gebruikte programmeertalen. Ze bevatten een versie-uitdrukking, zijn hoofdlettergevoelig, en witruimte wordt grotendeels genegeerd. Expressies worden gevormd met accolades @{ @}, en commentaren worden aangegeven met @code{%} of @w{@code{%@{ ... %@}}}. Als de vorige alinea totale onzin lijkt, geen probleem! We leggen hieronder uit wat al deze termen betekenen: @itemize @item @strong{Versie-uitdrukking}: Elk LilyPond-bestand zou een versie-uitdrukking moeten hebben. Een versie-uitdrukking is een regel die aangeeft voor welke versie van LilyPond het bestand is geschreven, zoals in onderstaand voorbeeld: @example \version "@w{@version{}}" @end example De versie-uitdrukking wordt altijd helemaal bovenin het LilyPond-bestand gezet. Er zijn twee redenen waarom de versie-uitdrukking belangrijk is. Ten eerste maakt het een automatische update van het invoerbestand mogelijk voor wanneer de syntax van een nieuwere LilyPond-versie verandert. Ten tweede geeft het de LilyPond-versie aan die nodig is om het bestand te compileren. Als de versie-uitdrukking wordt weggelaten uit een invoerbestand, zal LilyPond een waarschuwing geven tijdens het compileren van het bestand. @item @strong{Hoofdlettergevoelig}: het maakt uit of je een letter als kleine letter typt (bijv. @w{@code{a, b, s, t}}) of als hoofdletter (bijv. @w{@code{A, B, S, T}}). Noten zijn met een kleine letter: @w{@code{@{ c d e @}}} is geldige invoer; @w{@code{@{ C D E @}}} geeft een foutmelding. @item @strong{Witeruimteongevoelig}: het maakt niet uit hoeveel spaties (of tabs of nieuwe regels) je invoegt. @w{@code{@{ c d e @}}} betekent hetzelfde als @w{@code{@{ c @tie{}} @tie{} @tie{} d e @}} en als: @example @{ c d e @} @end example @noindent Het laatste voorbeeld leest natuurlijk erg lastig. Een goede vuistregel is om blokken code in te springen met een tab of twee spaties: @example @{ c d e @} @end example Echter, vele syntactische elementen @emph{moeten} van elkaar gescheiden worden door witruimte. Anders gezegd, witruimte kan altijd worden @emph{ingevoegd}, maar niet altijd worden @emph{weggehaald}. Omdat ontbrekende witruimte voor vreemde foutmeldingen kan zorgen, is het verstandig altijd witruimte te gebruiken voor en na elk syntactisch element, bijvoorbeeld, voor en na elke accolade. @item @strong{Uitdrukkingen}: om elk stuk LilyPond-invoer moeten @strong{@{ accolades @}} heen staan. Deze haakjes vertellen LilyPond dat de invoer een enkele muziekuitdrukking is, net als de haakjes @code{()} bij wiskunde. De accolades moeten altijd los staan, d.w.z. omgeven zijn door witruimte, of aan het begin of einde van een regel staan om ambiguïteiten te voorkomen. Een LilyPond-commando gevolgd door een enkele uitdrukking tussen accolades (zoals @w{@code{\relative @{ @}}}) telt ook als een enkele muziekuitdrukking. @cindex commentaren @cindex regercommentaar @cindex blokcommentaar @item @strong{Commentaren}: een commentaar is een opmerking voor de lezer van de muziekinvoer; het wordt genegeerd tijdens het verwerken, dus het heeft geen effect op de geprinte uitvoer. Er zijn twee soorten commentaar. Het procentteken @code{%} markeert het begin van een regelcommentaar; alles na een @code{%} op die regel wordt genegeerd. Een regelcommentaar wordt altijd @emph{boven} de regel geplaatst waar hij bij hoort. @example a4 a a a % dit commentaar slaat op de B's b2 b @end example Een blokcommentaar markeert een heel stuk van de muziekinvoer als commentaar. Alles wat tussen @code{%@{} en @code{%@}} staat, wordt genegeerd. Echter, blockcommentaren kunnen niet worden ge@q{nest}. Dat betekent dat je een blokcommentaar niet binnen een ander blokcommentaar kunt zetten. Als je dat toch probeert, zal de eerste @code{%@}} @emph{beide} blokcommentaren sluiten. Het volgende fragment toont het gebruik van commentaren: @example % noten voor twinkle twinkle volgen c4 c g' g a a g2 %@{ Deze regel, en de noten hieronder worden genegeerd, omdat ze in een blokcommentaar staan. f f e e d d c2 %@} @end example @end itemize @node Het lezen van de handleidingen @translationof How to read the manuals @section Het lezen van de handleidingen Deze paragraaf laat zien hoe je de documentatie efficient kunt lezen, en introduceert enkele nuttige interactieve functies die beschikbaar zijn in de online-versie. @menu * Weggelaten materiaal:: * Klikbare voorbeelden:: * Overzicht van handleidingen:: @end menu @node Weggelaten materiaal @translationof Omitted material @subsection Weggelaten materiaal @cindex hoe de handleidingen te lezen @cindex handleiding, lezen @cindex het lezen van de handleiding @cindex voorbeelden, aanklikbaar @cindex klikbare voorbeelden @cindex tips voor het bouwen van bestanden @cindex sjablonen @cindex bouwen van bestanden, tips @cindex bestanden, tips om te maken LilyPond-invoer moet tussen @{ @}-tekens of @code{@w{\relative c'' @{ ... @}}} staan, zoals we gezien hebben in @ref{Werken met invoerbestanden}. Vanaf nu zullen we dit weglaten uit de meeste voorbeelden in de handleiding. Als je die voorbeelden wilt gebruiken, kun je you de getoonde invoer kopiëren en plakken, maar je @strong{moet} zelf wel @code{@w{\relative c'' @{ @}}} toevoegen, dus: @example \relative c'' @{ ... plak hier het voorbeeld ... @} @end example Waarom laten we die accolades weg? De meeste voorbeelden in deze handleiding kunnen midden in een langer stuk muziek worden ingevoegd. Bij zulke voorbeelden is het onzinnig om @code{@w{\relative c'' @{ @}}} toe te voegen -- je moet een @code{\relative} niet binnen een ander @code{\relative} zetten! Als we @code{@w{\relative c'' @{ @}}} om elk voorbeeld heen zouden zetten, zou je een klein documentatievoorbeeld niet zomaar kunnen kopiëren en in een langer stuk kunnen plakken. De meeste mensen willen materiaal toevoegen aan een bestaand stuk, dus zorgen we dat de handleiding daarvoor het meest geschikt is. Verder moet elk LilyPond-bestand eigenlijk ook een @code{@bs{}version}-uitdrukking hebben. Omdat de voorbeelden in de handleidingen fragmenten zijn, en geen volledige bestanden, wordt de @code{@bs{}version}-uitdrukking weggelaten. Maar je zou er een gewoonte van moeten maken ze in je bestanden op te nemen. @node Klikbare voorbeelden @translationof Clickable examples @subsection Klikbare voorbeelden @warning{Deze functie is uitsluitend beschikbaar in de HTML-handleidingen.} Veel mensen leren programma's door te proberen en er wat mee te prutsen. Dat kan ook goed met LilyPond. Als je op een afbeelding in de HTML-versie van deze handleiding klikt, zie je de exacte LilyPond-invoer die gebruikt is om die afbeelding te genereren. Probeer het maar met deze afbeelding: @c no verbatim here @lilypond[quote] \relative c'' { c-\markup { \bold \huge { Klik hier. } } } @end lilypond Door het knippen en plakken van het gehele @qq{ly snippet}-gedeelte, heb je een sjabloon om je experiment mee te beginnen. Om precies dezelde uitvoer te krijgen (inclusief regelbreedte en alles), kopiëer alles vanaf @qq{Start cut-&-pastable section} tot aan het einde van het bestand. @ignore This is item 825 @n ode Keyboard navigation @s ubsection Keyboard navigation @warning{This features is only available in the HTML manuals.} @c TODO: once this is figured out, insert it here. We are currently working on this feature. @end ignore @node Overzicht van handleidingen @translationof Overview of manuals @subsection Overzicht van handleidingen Er is veel documentatie voor LilyPond. Nieuwe gebruikers weten soms niet helemaal wat ze nu wel en niet zouden moeten lezen, en soms slaan ze essentiële delen over. @warning{Sla liever geen belangrjke delen van de documentatie over. Dat maakt het veel lastiger vinden om het vervolg te begrijpen.} @itemize @item @strong{Voordat je ook maar @emph{iets}} probeert: lees uit de Beginnershandleiding het @ref{Leerboek}, en @ref{Algemene notatie}. Als je muziektermen tegenkomt die je niet herkent, zoek ze dan op in de @rglosnamed{Top, Terminologie}. @item @strong{Voordat je een heel muziekstuk probeert te schrijven}: lees uit de Beginnershandleiding de @ref{Fundamental concepts}. Daarna wil je wellicht de relevante delen van de @rusernamed{Top, Notatiehandleiding} bekijken. @item @strong{Voordat je de standaarduitvoer probeert te veranderen}: lees uit de Beginnershandleiding over @ref{Tweaking output}. @item @strong{Voordat je een groot project begint}: lees uit de Gebruikershandleiding @rprogram{Suggestions for writing files}. @end itemize