Portál AbcLinuxu, 11. května 2024 22:26

GNU Lilypond - The music Typesetter - I

19. 11. 2002 | Tomáš Kopeček
Články - GNU Lilypond - The music Typesetter - I  

Jak efektivně na sázení not pod Linuxem.

Takže popořádku -- co, proč, kdy a kde?

Logo Skalní TeXisté toužící sázet kromě téměř dokonalých textů také téměř dokonalou hudbu kdysi dávno napsali MusiXTeX - sadu maker pro TeX, které byly schopny sázet velmi kvalitní hudbu, ovšem za použití velmi hrůzných postupů. Možná jste se s ním někdo setkal a pokud ano, tak bych se věru nedivil, že vás odradil a už jste zase sázeli notičky v nějakém klikacím programu.

Něco podobného se stalo také jistému Janu Nieuwenhuizenovi (to jméno se mi snad nikdy nepodařilo vyslovit). Ten se však nenechal odradit a začal psát preprocesor pro MusiXTeX (tedy něco, v čem se bude psát podstatně jednodušeji a výstupem bude vstup pro MusiXTeX). Tento projekt se jmenoval MPP (MusiXTeX preprocessor). A pak to řekl kamarádovi a ten mu to rozmluvil, že takhle teda rozhodně nee. Pak se spolu s ním (Han-Wen Nienhuys) pustili do pořádného projektu pro sazbu hudby. To všechno se stalo někdy mezi lety 1995-96. O šest let později vychází GNU Lilypond již ve verzích 1.6.x (stabilní řada) a zároveň jede na plné obrátky další vývoj. Ale dost už historie - takže o čem to celé je.

GNU Lilypond je překladač z popisu hudby ve vlastním formátu do několika výstupních formátů. Původním výstupním formátem byl TeXový zdrojový kód. Postupem let se přidaly možnosti výstupu přímo do PostScriptu, Scheme a poněkud pofidérně i do ASCIIartu. Zatím stále nejjistějším a nejpoužívanějším je TeXový výstup. Tímto způsobem lze získat jak kvalitní PostScript, tak PDF. Lilypond je schopen kompletního zpracování tiskové strany pomocí skriptu ly2dvi (.ly je standardní přípona Lilypondu, .dvi je pak device independent formát pocházející z TeXu). Druhou variantou je začlenění zdrojového kódu pro Lilypond přímo do dokumentu v jiném jazyce. Tak můžeme získat kousky notového partu téměř kdekoli. Tímto způsobem jsou podporovány formáty LaTeX, HTML a TeXinfo.

V současnosti se Lilypond snaží zcela oprostit od závislosti na TeXu jako finálním sázecím prostředku a hledá se možnost nějakého univerzálnějšího prostředku pro popis sazby. Uvažuje se například i o XML. Ale to vše je hudbou budoucích verzí. Zatím je stále nejjistějším způsobem průchod přes TeX, který už je doveden téměř k dokonalosti a i tudy se dostaneme ke všem nabízeným výstupním formátům.

A proč vlastně neklikat? Aspoň pro mne je výrazně rychlejší něco psát, než klikat myší někam do osnovy (ovšem i pro Lilypond existuje jakýsi grafický frontend Denemo. Bohužel mám pocit, že se na něm již delší dobu nepracuje). A abych uklidnil alespoň nějakou část myší veřejnosti, tak existuje fičurka point-and-click, která alespoň umožní kliknutím v prohlížeči (xdvi) výsledného souboru odskočit na patřičné místo ve zdrojovém textu. A druhý důvod je celkem nasnadě - výstup Lilypondu je opravdu kvalitní a plně ovladatelný. Lilypond je propracovaný překladač. Ostatně binárka má svých 16 MB. No dobře, po ostripování se dostaneme na 2,5 MB. Nicméně ani základní dokumentace není z nejmenších - má 164 stran.

A abych vás dlouho nenapínal, tak krátký kousek kódu pro Lilypond může vypadat třeba takto:

\key c \minor c'8
[picture of music]

Nyní se možná rozpomenou někteří "trackisté". Podobnou syntaxi pro zápis not totiž používaly svého času snad všechny hlavní programy pro psaní modulů (FastTracker, ScreamTracker, atd.) Než se ovšem pustíme do složitějšího příkladu, bylo by dobré vědět, jak Lilypond nainstalujeme, takže:

Instalace

Lilypond pracuje jak na unix-like systémech, tak na MS Windows (pomocí Cygwinu). Nutnou prerekvizitou je především interpret jazyka scheme a to je v tomto případě guile. Většina nových distribucí ignoruje vývoj tohoto interpretu, ač je použit na mnoha místech (např. GIMP). Bude tedy pravděpodobné, že si jej budete muset stáhnout sami (nebo sáhnout po starší verzi Lilypondu). Další potřebné programy pro běh jsou TeX, ghostscript a python. Pro prohlížení výstupu pak ideálně xdvi (součást většiny distribucí TeXu). Na serveru se čas odčasu dá narazit i na aktuální RPM či deb. Pokud to není váš případ, tak následuje stažení aktuální verze a klasický postup: configure; make; make install. Ovšem ke kompilaci je potřeba o něco více programů než ke běhu. Jsou to: gcc (c++), make, flex, bison a TeXinfo (kvůli dokumentaci).

Dokumentaci lze vygenerovat pomocí make web-doc (pro korektní zpracování tohoto cíle budou zapotřebí ještě programy autotrace, pktrace a t1asm - všechny jsou dosažitelné ze serveru Lilypondu). Nainstalují se tyto spustitelné soubory:

V adresáři /usr/local/share/lilypond/cislo_verze/scm (tedy pokud jste pomocí configure nezměnili --prefix) se nacházejí všechny inicializační soubory pro scheme. Je to vhodné místo pro náhled jak vypadají například definice jmen akordů. Poblíž v adresáři ly se nacházejí všechny soubory, které byste mohli chtít vložit do své skladby (definice formátů papíru, jiné názvy not - pro nás je aktuální soubor deutsch.ly).

Teď vám nechám trochu času na vydýchání a kompilaci a příště se pustíme do nějaké větší skladby.

Související články

GNU Lilypond - II
GNU Lilypond - III
GNU Lilypond - IV

Odkazy a zdroje

Hlavní stránka projektu
Projekt GUILE
A něco pro nalákání (PS)

Seriál GNU Lilypond (dílů: 4)

První díl: GNU Lilypond - The music Typesetter - I, poslední díl: GNU Lilypond - IV.
Následující díl: GNU Lilypond - II

Další články z této rubriky

Linuxové foto novinky: nejen darktable 2.2 a Rawtherapee 5
Linuxové foto novinky: GIMP konečně prolomil 8bit mez
DLNA v praxi: Android
Technologie DLNA na Linuxu v praxi – PS3 Media Server
Technologie DLNA na Linuxu v praxi – 1

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.