4.1.1 Uvedení do stavby souboru v LilyPondu

Základní příklad vstupního souboru pro LilyPond zní:

\version "2.24.4"

\header { }

\score {
  ...složený hudební výraz...  % Celé noty přijdou sem!
  \layout { }
  \midi { }
}

Na základě pružnosti LilyPond je mnoho obměn tohoto schématu, ale tento příklad slouží jako jednoduchý výchozí bod.

Až dosud ještě žádný z příkladů příkaz \score{} nepoužil, neboť LilyPond takové dodatečné příkazy automaticky vkládá v případě potřeby, když má vstupní soubor jednoduchou stavbu.

Podívejme se na jeden takový jednoduchý příklad:

\relative {
  c''4 a d c
}

Na pozadí k tomu přichází ještě několik rovin: LilyPondovský kód v hořejší podobě je ve skutečnosti zestručněním. I když by se takové soubory daly napsat a také správně zapsat, znamená úplný kód, který je zde míněn, vlastně:

\book {
  \score {
    \new Staff {
      \new Voice {
        \relative {
          c''4 a b c
        }
      }
    }
    \layout { }
  }
}

Jinými slovy: Když vstupní soubor obsahuje nějaký jednoduchý výraz, LilyPond bude soubor vykládat tak, jakoby byl onen výraz zadán uvnitř výše ukázaných příkazů. Tato nutná stavba je vytvořena automaticky v paměti při vyvolání LilyPondu, aniž by si uživatel něčeho z toho všiml.

Slovo varování je však vysloveno! Mnohé z příkladů v dokumentaci k LilyPondu vědomě vynechávají příklady \new Staff a \new Voice k vytvoření notové osnovy a hlasu (obojí je v LilyPondu tak zvané prostředí), aby byla LilyPondem v paměti vytvořena skrytě. Pro jednoduché dokumenty to obecně pracuje velmi dobře, u složitějších notových zápisů z toho ale mohou povstat neočekávané výsledky, částečně dokonce neočekávané prázdné notové osnovy. Jak otevřeně vytvářet odpovídající prostředí v takovém případě, se podívejte na prostředí a rytce.

Pozor: Když se zadává více jak dvojice notových řádků, doporučuje se vytvořit notové osnovy a hlasy vždy otevřeně pomocí \new Staff a \new Voice.

V této chvíli se ale chceme vrátit k našemu prvnímu příkladu a blíže se podívat jen na příkaz \score.

Notový zápis (\score) musí vždy začínat nějakým hudebním výrazem. To je koneckonců každá hudba, počínaje jednotlivou notou až po rostoucí notový zápis s mnoha notovými osnovami (zde označeno pomocí GrandStaff):

{
  \new GrandStaff <<
    ...zde celý notový zápis...
  >>
}

Protože se vše nachází uvnitř složených závorek { ... }, zachází se s tím jako s jediným hudebním výrazem.

Jak již bylo řečeno předtím, může blok \score obsahovat i jiné věci, jako například

\score {
  { c'4 a b c' }
  \layout { }
  \midi { }
  \header { }
}

Jak je vidět, jsou ty tři příkazy \header, \layout a \midi zvláštní povahy: V protikladu k mnoha jiným příkazům, které také začínají zpětným lomítkem \, nejsou hudebním výrazem a také nejsou částí nějakého hudebního výrazu. Z toho důvodu mohou být umístěny jak dovnitř bloku \score tak mimo něj. Ve skutečnosti jsou tyto příkazy většinou umisťovány mimo blok \score, například se příkaz \header nachází velice často nad prostředím \score, jak ukazuje příklad na začátku tohoto oddílu. Pracuje to právě tak dobře.

Dvěma dosud neviděnými příkazy jsou \layout { } a \midi {}. Když se objeví v nějakém souboru, vede to k tomu, že LilyPond vytvoří tisknutelný soubor PDF popřípadě soubor MIDI. Přesněji jsou popsány v uživatelské příručce - notace – Rozvržení notového zápisu a Vytváření souborů MIDI.

Váš LilyPondovský kód může obsahovat více bloků \score. Každý z nich je vykládán jako samostatný notový zápis, ovšem všechny jsou umístěny v tomtéž výstupním souboru. Příkaz \book není otevřeně nezbytný – je vytvořen skrytě. Když však má být vytvořen pro každý blok \score v souboru ‘.ly’ vlastní výstupní soubor, potom se musí každý z těchto bloků zapsat do vlastního bloku \book: Každý blok \book pak vytváří vlastní výstupní soubor.

Shrnutí:

Každý blok \book vytváří vlastní výstupní soubor (např. soubor PDF). Pokud jste otevřeně žádný takový blok nezadali, LilyPond celý obsah souboru zapíše dovnitř jednoho jediného skrytého bloku \book.

Každý blok \score popiseje jeden samostatný hudební kus uvnitř bloku \book.

Každý blok \layout ovlivňuje \score nebo \book, ve kterém se vyskytuje. Tak působí například blok \layout uvnitř bloku \score jen na tento jeden blok a celý jeho obsah, blok \layout mimo blok \score (a proto uvnitř skrytě vytvořeného otevřeně zadaného bloku \book) však na všechny bloky \score uvnitř tohoto bloku \book.

Více podrobností se nachází v části Více notových zápisů v knize.

Dobrou možností pro zjednodušení jsou vlastní vymezené proměnné, jak je to také ukázáno v Pořádání děl pomocí proměnných. Všechny předlohy používají tuto možnost:

melodie = \relative {
  c'4 a b c
}

\score {
  { \melodie }
}

Když LilyPond zpracovává tento soubor, bere obsah z melodie (vše po rovnítku) a vkládá to, kdykoli vidí \melodie. Názvy jsou volně volitelné, proměnná se právě tak dobře může jmenovat melodie, GLOBAL, praváRukaKlavír, nebo cokoliDalšího. Jako název proměnné se dá použít skoro jakýkoli oblíbený název, musí se v něm ovšem vyskytovat jen písmena (takže žádná čísla, podtržítka, zvláštní znaky, atd.) a nesmí znít jako příkaz pro LilyPond. Pro více informací se podívejte na úsporu psaní na stroji pomocí proměnných a funkcí. Přesně jsou tato omezení popsána v části Stavba souboru.

Podívejte se také na

Úplné vymezení vstupního souboru se nachází v Stavba souboru.


LilyPond – Learning Manual v2.24.4 (Stálá větev).