3.1.1 Uvedení do stavby souboru v LilyPondu
Základní příklad vstupního souboru pro LilyPond zní:
\version "2.22.2"
\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.