Maurits Lamers

Table of Contents

Table of Contents

  • Handleiding en introductie Lilypond en Lybra
    • Benodigdheden
      • Screenreader
    • Wat kan ik verwachten?
      • Download en installatie Lilypond
      • Download en installatie Frescobaldi
      • De installatie van Libra
      • Het bijwerken van Libra
      • Plaats van je Lilypond bestanden
      • Gebruik van Libra
  • De structuur van Lilypond-code
      • Nog een opmerking aan het eind:
  • Gebruik Frescobaldi
  • Partij

Lilypond

  • Handleiding
  • Lybra

Andere zaken

  • Oefentools
  • Leren programmeren
Maurits Lamers
Docs » lybra:start

Handleiding en introductie Lilypond en Lybra

Lybra is een toevoeging aan het open source notatie-programma Lilypond. Lilypond is een muzieknotatieprogramma waarbij je datgene wat je wilt noteren moet ingeven als tekst, de zogeheten broncode of Lilypondcode. Het Lilypond-programma interpreteert deze tekst en zet deze om in een grafische weergave en indien gewenst ook een MIDI-bestand. Met behulp van Lybra is ook een export naar muziekbraille mogelijk, al is deze op dit moment nog beperkt tot eenstemmigheid.

Benodigdheden

  • Lilypond moet op je computer geïnstalleerd staan.
  • Frescobaldi moet op je computer geïnstalleerd staan
  • libra.zip, krijg je per mail toegestuurd
  • Een basale kennis van muziek-braille

Screenreader

Wij raden NVDA aan als schermlezer. De Lilypondcode gebruikt veel leestekens, en daarvoor is het belangrijk dat je deze leestekens moet kunnen lezen of horen. Je kunt bepalen welke tekens de stem van NVDA moet voorlezen, door in het Spraakmenu van NVDA via de opties (Insert+N, Opties, Instellingen en dan Spraak) met de tab-toets naar de optie Interpunctie te gaan. Indien je ook een brailleregel gebruikt kun je deze optie op 'Sommige tekens' zetten, omdat het een beetje te veel kan zijn als alle tekens worden voorgelezen. Als je wel graag wil dat alle leestekens worden voorgelezen, zet deze optie dan op 'Alle tekens'.

Wat kan ik verwachten?

Lilypond is een zogeheten generator: je geeft het een bestand met daarin Lilypond-code in en Lilypond genereert daaruit een PDF met zwart-wit-notatie, een MIDI-bestand of beide. De braille-engraver voor Lilypond voegt daar nog een bestand aan toe, namelijk een platte-tekstbestand, met daarin de muziekbraille. Dit tekstbestand wordt opgeslagen in dezelfde map waar je Lilypond-bestand staat. De muziekbraille wordt op dit moment nog weggeschreven als US-ASCII, en heeft dus de Amerikaanse brailletabel nodig.

Het maakt niet zoveel uit met welk programma je je Lilypond-code schrijft, zolang dat programma een platte-tekst document kan wegschrijven. Wij raden aan het programma Frescobaldi hiervoor te gebruiken, omdat dit programma veel extra's bevat omdat het speciaal gemaakt is om Lilypond-code mee te schrijven.

Zoals al eerder geschreven maakt de Lilypondcode gebruik van veel leestekens, zoals aanhalingstekens, komma's en punten voor muzikale aanduidingen. Het is daarom belangrijk dat je in staat bent deze tekens te lezen of te horen. Voor zover op dit moment bekend doet alleen NVDA dit. Als je een screenreader gebruikt die dit niet doet, en je wilt liever niet overstappen, controleer dan datgene dat je invoert op deze tekens. Er komt anders mogelijk iets anders uit dan je bedoelde.

Download en installatie Lilypond

Lybra werkt met alle recente Lilypond-versies, maar de manier van installeren is veranderd sinds versie 2.24.

Lilypond versie 2.24 en hoger

Volg voor het installeren van Lilypond 2.24 en hoger het volgende stappenplan:

  • Download het pakket van https://lilypond.org/download.html.
  • Kies voor het generieke pakket (generic package) voor jouw besturingssysteem.
  • Sla de te downloaden zip op in "Mijn documenten".
  • Open de Mijn documenten-map en open het context-menu door met de rechtermuisknop te klikken op het bestand dat je gedownload hebt.
  • Kies in het context-menu voor "Alles uitpakken".
  • Je krijgt nu een dialoogvenster, waarin gevraagd wordt waar het bestand uitgepakt moet worden. Windows stelt voor om het uit te pakken in de map die eindigt met "lilypond-2.24.1-mingw-x86_64" of iets vergelijkbaars. Verander deze tekst naar "lilypond".
  • Kies nu voor uitpakken.

De volgende stappen voer je uit nadat je Frescobaldi geinstalleerd hebt, of al geïnstalleerd hebt staan:

  • Open Frescobaldi
  • Kies uit het menu "Bewerken" de optie "Voorkeuren". Er opent een dialoogvenster "Voorkeuren".
  • Kies uit het menu de optie "Lilypond voorkeuren".
  • Klik op de knop "Toevoegen". Er opent nu een dialoogvenster, waar op het tabblad "Algemeen" een knop "Bladeren" staat.
  • Klik op de knop "Bladeren".
  • Navigeer naar "Mijn documenten" en open de map "lilypond".
  • Open in deze Lilypondmap de map met de versie van Lilypond die je gedownload hebt en open daarin de "bin" map.
  • Selecteer in deze map het bestand "lilypond.exe" en klik op de knop "Open".
  • Dit sluit het blader-dialoogvenster en brengt je terug naar het dialoogvenster met het tabblad "Algemeen".
  • Zorg dat de optie "Meenemen in automatisch versie-selectie" aangevinkt staat
  • Klik op OK. Dit brengt ons terug naar het dialoogvenster "Lilypond voorkeuren".
  • Klik op OK.

Lilypond versies tot en met 2.22

De Lilypond-versies tot en met 2.22 bevatten een installeer-programma die Lilypond installeert in de "Programma's" map. Je kunt versie 2.20 downloaden via de volgende links:

  • voor Windows: http://lilypond.org/download/binaries/mingw/lilypond-2.20.0-1.mingw.exe
  • voor Mac: http://lilypond.org/download/binaries/darwin-x86/lilypond-2.20.0-1.darwin-x86.tar.bz2
Installeren

Zoek het gedownloade bestand en dubbelklik het om het te installeren. Volg de instructies op die de installer je geeft; wij raden je aan alle installatiekeuzes aangevinkt te laten en de standaard aangegeven locatie te gebruiken. Klik op de ‘Finish’ knop als de installer klaar is. LilyPond is nu geïnstalleerd.

Download en installatie Frescobaldi

Download van de website van Frescobaldi de laatste versie voor jouw systeem: https://www.frescobaldi.org. Zoek naar de link genaamd "Downloads" en klik erop. Kies hier de laatste stabiele versie voor jouw besturingssysteem.

De installatie van Libra

Maak voor het werken met Libra (en Lilypond) een aparte map aan in je Documenten map, genaamd lilypond. Zet het bestand libra.zip daar in, en pak deze uit (context-menu optie "Alles uitpakken"). Windows stelt vervolgens een map voor waar de zip uitgepakt moet worden, deze eindigt met "Documenten/lilypond/libra". Kies "Uitpakken".

Het bijwerken van Libra

Als je een nieuwe versie van Libra krijgt toegestuurd, kun je twee dingen doen. Je kunt de oude map libra verwijderen, en libra op dezelfde manier installeren zoals in het vorige kopje omschreven. Mocht je de oude versie graag nog willen bewaren, kun je de map libra ook hernoemen, zodat je nog terug kunt naar oudere versies als dat nodig is.

Plaats van je Lilypond bestanden

Het is belangrijk dat je je Lilypond bestanden (de bestanden met je muziek erin) uitsluitend in de map lilypond houdt. Als je een nieuwe versie van Libra krijgt, kun je je oude bestanden opnieuw omzetten en daarmee meteen gebruik maken van verbeteringen in de nieuwe versie.

Gebruik van Libra

Om de braille-omzetting van Libra te activeren is een extra commando nodig dat op een aparte regel geplaatst moet worden zover mogelijk bovenin het Lilypond-bestand. Deze regel is

\include "libra/braille_engraver.ly"

Hierdoor wordt er naast de PDF ook een tekstbestand gegenereert met de muziek in US ASCII tekst formaat.

NB: Het gebruik van een spatie in je bestandsnaam kan ervoor zorgen dat er geen braille-bestand geschreven wordt! Gebruik een liggende streep (underscore) in plaats van een spatie.

De structuur van Lilypond-code

Het lijkt wat merkwaardig om over de structuur te beginnen, maar het is belangrijk om de relatie te begrijpen tussen muzieknotatie aan de ene kant en Lilypond-code aan de andere kant.

NB: Zorg dat je de Amerikaanse braille-tabel hebt aangezet, zodat je de juiste braille te lezen krijgt

We gaan eerst kijken naar een klein stukje notatie:

#4%#D4 
"$]\: ?W"P<K

Op de eerste regel staan 4 kruizen (de toonsoort) en een vierkwarts-maatsoort. Op de tweede lezen we een kwartnoot e boven de centrale C, daarna een kwartnoot fis, kwartnoot gis, kwartnoot dis die onder de gis ligt, een maatstreep, dan een kwartnoot cis, een kwartnoot b en een halve noot e boven de b, en als laatste een afsluitende dubbele maatstreep.

Je kunt het ook zien als een melodie, die genoteerd staat in een partij met een toonsoort- en maatsoortaanduiding. Dit geheel vormt het geheel van de genoteerde muziek.

Elk van deze zaken kun je beschouwen als een context. Ook kun je zien dat deze contexten een bepaalde rangschikking hebben en dat contexten andere contexten kunnen bevatten. Het is ook zo dat bepaalde contexten alleen maar betekenis hebben binnen andere contexten. De context van een melodie bijvoorbeeld heeft alleen betekenis als deze binnen de context van een balk gebruikt wordt. Al deze contexten vormen dus lagen die elkaar aanvullen en samen een stuk genoteerde muziek voorstellen.

In een Lilypond-bestand wordt een laag geformuleerd door een accolade-openen, gevolgd door de inhoud van die laag en daarachter een accolade-sluiten. Een laag (of context) kan een extra betekenis krijgen door er een commando voor te zetten. Een commando begint altijd met een backslash. Bijvoorbeeld:

\score {
  
}

Het commando \score maakt van de gegeven laag het geheel van genoteerde muziek van een bepaald muziekstuk. Het maakt daarbij niet uit hoe lang dat stuk is, of uit hoeveel partijen dat stuk bestaat: alle delen van dat stuk moeten opgenomen worden in de ruimte tussen de twee accolades. Let er goed op dat Lilypond-code hoofdletter-gevoelig is, dus als je \Score zou schrijven op deze plek, zal dit niet het gewenste effect hebben, als het al geen foutmelding oplevert.

Kijkend naar de lagen die we daarnet hadden, is de balk of partij de volgende laag. Dit geven we in Lilypond aan met de commando-combinatie \new Staff:

\score {
  \new Staff {

  }
}

Hiermee wordt een nieuwe partij, balk of in het geval van muziek voor toetsinstrumenten een "hand" toegevoegd aan het geheel van de genoteerde muziek. Merk op dat in het voorbeeld de nieuwe Staff-laag ingesprongen is ten opzichte van de score laag. Het inspringen van elke nieuwe laag is een goed gebruik omdat je op deze manier veel sneller in de gaten hebt waar je je in de code bevindt. Zelfs met hele kleine voorbeelden als deze zul je al zien dat ingesprongen code gemakkelijker lezen is dan code waarbij alles tegen de linkerkantlijn staat.

In print staat er bij een partij altijd een sleutel, omdat dat notatie-systeem in principe relatief is: zowel de naam als het octaaf van een noot wordt bepaald door welke sleutel ervoor staat. In muziekbraille heeft een noot altijd al een naam en wordt door middel van de octaaf-prefix de hoogte van een noot definitief bepaald. Daarmee vervalt de functie van de sleutel. Omdat Lilypond een systeem is voor print, is het van belang wel een sleutel op te geven. Indien je dit niet doet, wordt standaard de G-sleutel genoteerd. (In de braille-output wordt (nog) geen sleutel genoteerd).

De sleutel wordt bepaald door het commando \clef met daarachter de naam van de sleutel. Voor een G-sleutel is dit treble. Ook voor de maatsoort en de toonsoort bestaan commando's, respectievelijk \key en \time.

Het key-commando verwacht een toonnaam plus een toonsoort-bepaling, zoals majeur of mineur, in de vorm van een commando. In dit voorbeeld staan 4 kruizen, wat de toonsoort E majeur is. Het hele toonsoort-commando wordt daarmee: \key e \major.

Het time-commando verwacht twee getallen met een (forward) slash ertussen. Ondanks dat dit er uit ziet als een breuk, is een maatsoort-aanduiding zowel in print als in muziekbraille dat niet. Dit brengt ons tot:

\score {
  \new Staff {
    \clef treble
    \key e \major
    \time 4/4
  }
}

We zijn nu zover dat de we melodie kunnen gaan invoeren. We doen dit met het commando \new Voice. Dit commando maakt van de context die er op volgt een stem.

We krijgen nu:

\score {
  \new Staff {
    \clef treble
    \key e \major
    \time 4/4
    \new Voice {

    }
  }
}

We kunnen nu de noten zelf gaan invoeren. Noten voer je in door middel van de naam, een octaafteken en een lengte. De standaard voor notennamen in Lilypond zijn de Nederlandse notennamen. Voortekens zijn dus een onderdeel van de nootnaam. Als octaaftekens worden de ' (apostrof) en , (komma) gebruikt. Als het octaafteken wordt weggelaten, wordt aangenomen dat de noot zich in het klein octaaf bevindt: het octaaf van de C onder de centrale C tot aan de B erboven. Met een apostrof wordt dat bereik 1 octaaf verhoogd, met een komma 1 octaaf verlaagd. De lengte van een noot wordt aangegeven met cijfers: een 4 is een kwartnoot, een 8 een achtste enz. Een gepuncteerde noot wordt geschreven met een of meer punten achter de lengte.

Dit brengt ons tot het volgende:

\score {
  \new Staff {
    \clef treble
    \key e \major
    \time 4/4
    \new Voice {
      e'4 fis'4 gis'4 dis'4 |
      cis'4 b4 e'2 \bar "|."
    }
  }
}

In dit voorbeeld staat bij elke noot de lengte, maar dit is geen verplichting. Als de lengte wordt weggelaten, zal Lilypond de lengte nemen van de noot ervoor. De standaard-lengte is een kwartnoot. Je zou de noten kunnen schrijven als:

      e fis gis dis |
      cis b e2 \bar "|."

Je kunt hetzelfde doen met de lengte: door alleen de lengte op te geven, zal Lilypond de hoogte van de vorige noot nemen.

Er staan twee zaken in de code hierboven die niet eerder zijn uitgelegd: het poort-teken aan het einde van de eerste maat en het bar-commando. Deze twee zaken hebben alletwee met maatstrepen te maken.

In Lilypond heb je geen controle over waar maatstrepen komen te staan. Lilypond zet deze zelf op basis van de noten die je opgeeft. Als je daar fouten in maakt - door bijvoorbeeld een achtste te veel of te weinig in een maat te zetten - zal Lilypond zelf de maatstreep zetten, en alles wat erachter komt verschuiven. Dit zal voor braille niet zo'n probleem vormen, maar voor print kan dit wel problematisch zijn. In print mag een regel alleen afgebroken worden op een maatstreep en als dat niet kan omdat er noten doorklinken loopt de regel door, of er nu ruimte is op de pagina of niet. Om te voorkomen dat dit gebeurt, kun je gebruik maken van de poort-tekens. Deze zorgen ervoor dat Lilypond een waarschuwing zal genereren wanneer je maat onvolledig of overvolledig is. Bij een VS-toetsenbord en veel andere toetsenbord-indelingen kun je het poort-teken maken met 'Shift-\'.

Het bar-commando geeft je de mogelijkheid om het type maatstreep te bepalen voor de eerstvolgende maatstreep. Er zijn nogal wat mogelijkheden, maar hier is de eindstreep weergegeven.

Voordat we dit eerste deel afsluiten, kijken we nog even naar de manier waarop noten worden ingevoerd. Hoewel de standaardmanier uitstekend voldoet voor kleine stukjes voorbeeld, is het voor grotere stukken vaak onhandig omdat het wat foutgevoelig is: je slaat snel onbedoeld een octaaf-teken over.

Er is een speciaal commando dat toegepast kan worden op een laag met noten erin genaamd \relative. In die laag kun je de octaaf-tekens weglaten. De definitieve hoogte van elke noot wordt dan bepaald door te kijken naar de vorige noot en dan de dichtstbijzijnde te nemen. Met dichtstbijzijnde wordt bedoeld dat de volgende noot binnen een kwart boven of onder de vorige komt te liggen. Je kunt vervolgens met een komma of apostrof forceren dat een andere noot genomen moet worden. Voor de eerste noot geef je een referentie-noot op.

Als voorbeeld: bij \relative c' { c g } wordt voor de g automatisch de g onder de c gekozen, omdat die g een kwart onder de c ligt en dus dichterbij is dan de g boven de c. Om de g boven de c te krijgen, gebruik je een apostrof: \relative c' { c g' }. Let op dat dit ook geldt voor alle afgeleide intervallen: \relative c' { c ges } levert de ges onder de c en \relative c' { c fis } de fis boven de c.

Het notatie-voorbeeld nog een keer, maar nu met het gebruik van het relative-commando:

\score {
  \new Staff {
    \clef treble
    \key e \major
    \time 4/4
    \new Voice {
      \relative c' {
        e4 fis gis dis |
        cis b e2 \bar "|."
      }
    }
  }
}

Tot slot nog: om ervoor te zorgen dat je Lilypond-bestanden ook met toekomstige versies van Lilypond gebruikt kunnen worden, is het belangrijk om aan te geven voor welke versie van Lilypond het bestand gemaakt is. Lilypond bevat namelijk een automatische upgrade-tool genaamd "convert-ly", waarmee je code automatisch kunt laten upgraden naar een nieuwere versie. Je kunt een versie opgeven met behulp van het \version commando. Indien je je bestand gemaakt hebt met versie 2.18.2, schrijf je \version "2.18.2". Voor versie 2.20.0 gebruik je \version "2.20.0".

Nog een opmerking aan het eind:

Als je de officiële Lilypondhandleiding bekijkt zul je zien dat veel van de commando's die hierboven gebruikt worden in de simpele voorbeelden worden weggelaten. Dat kan omdat Lilypond ze in dat geval voor je invult. Dat gaat vaak goed, maar zodra het een beetje ingewikkelder wordt kan het zijn dat Lilypond ineens een andere afweging maakt dan daarvoor. In dat geval gaat Lilypond plotseling klagen dat er iets mis is. Om dat te corrigeren moet je dan alsnog de bovenstaande structuur gaan gebruiken. Vandaar dat deze handleiding met opzet wel alle zaken noemt: als je je vanaf het begin af aanwendt om het op de bovenstaande manier te doen, is de kans erg klein dat je tegen dergelijke problemen aanloopt.

Gebruik Frescobaldi

Frescobaldi is een Lilypond-editor. Dat wil zeggen dat je binnen dit programma de mogelijkheid hebt om Lilypond-code te maken. Het voordeel van Frescobaldi is dat het allerlei handige functies bevat die er voor zorgen dat je je bij het noteren van de muziek vrijwel alleen hoeft te focussen op de muzikale onderdelen en niet op de zaken rondom lay-out e.d. Dit laatste kan Frescobaldi voor je doen: je kunt met één druk op de knop balken, commando's, partituren, leadsheets e.d. maken. Super handig dus!

De mogelijkheden die ik tot nu toe heb gebruikt zijn het maken van een leadsheet en het maken van een individuele partij. Het maken van een eenvoudige leadsheet is heel makkelijk: open Frescobaldi en ga met Alt naar de menubalk, klap het tabblad 'Bestand' met pijl naar beneden uit en ga op zoek naar de optie 'Nieuw'. Zodra je deze gevonden hebt, vouw je hem uit met pijl naar rechts en blader je met pijl omlaag door het menu. Ga op zoek naar de knop 'Eenvoudige leadsheet'. Geef hier een enter op. Je krijgt nu een scherm voor je waarin alle contexten (verschillende onderdelen die de structuur van een Lilypond-bestand bepalen en nodig zijn om de code goed om te kunnen zetten) van een leadsheet al voorgeprogrammeerd zijn. In dit geval zijn dat de melodie en de akkoorden. Het enige wat je hoeft te doen is het invoeren van de muzikale onderdelen: melodie, akkoorden, dynamiek etc. Ook hoef je het pdf- en midicommando niet meer te noteren, dus wanneer je het bestand opslaat wordt er (mits er geen gekke dingen aan de hand zijn in je bestand) meteen een pdf-bestand en een midi-bestand gegenereerd.

Partij

Het maken van een individuele partij is ook niet moeilijk. Het begin van deze procedure is zelfs hetzelfde als bij het maken van een leadsheet. Ook hier ga je naar de menubalk en naar 'Nieuw'. Het enige verschil is dat je nu de eerste optie moet kiezen: 'Partituur opzetten...'. Als je deze optie eenmaal hebt aangeklikt, kom je in een venster met 3 tabbladen. Het eerste tabblad dat je tegenkomt is 'Titels en koppen'. Als je hier doorheen tabt, kun je voor je partituur dingen instellen die (geloof ik) voor een ziende aan de bovenkant van een partituur staan: componist, opdracht etc. Dit is niet per se noodzakelijk. Het volgende tabblad is 'Partijen'. Als je hier doorheen tabt, kun je de verschillende instrumenten selecteren voor je partituur/partijen. Als je met Tab de goede instrumentgroep hebt gevonden, ga je met pijl rechts een niveau verder en blader je met pijl omlaag door de instrumenten heen. Druk op enter als je het instrument naar je keuze hebt gevonden. Met pijl links ga je naar het vorige niveau. Ook in deze situatie geldt dat de contexten van een bepaalde partij al aanwezig zijn en dat je alleen nog maar de muzikale onderdelen hoeft toe te voegen.

Previous Next