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.