GNU LilyPond

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
GNU LilyPond
Офіційний логотип LilyPond
ТипНотний редактор
АвториHan-Wen Nienhuys, Jan Nieuwenhuizen
РозробникиКоманда розробки LilyPond[1]
Перший випуск1996
Стабільний випуск2.18.2 (23 травня2014;10 років тому(2014-05-23))
Нестабільний випуск2.19.7 (25 травня2014;10 років тому(2014-05-25))
Операційна системаБагатоплатформна
Мова програмуванняScheme,C++,Metafont,PostScript,Python
Розмір20 МБ, 100 МБ разом з документацією
Доступні мовиголландська,англійська,французька,німецька,японська,іспанська,угорська,італійська
Стан розробкиактивний
ЛіцензіяGNU GPL
Стандарт(и)MusicXML,SVG
Онлайн-документаціяlilypond.org/manuals.html
Репозиторійgitlab.com/lilypond/lilypond.git
Вебсайтlilypond.org

GNU LilyPondвільнийнотний редактор,розробленийголландськимипрограмістами та призначений для створення музичнихпартитуршляхомкомпіляціїфайлуз особливим чином набраним текстом (подібно до документівLaTeX). Програма спочатку була розрахована на роботу підGNU/Linux,існують також версії дляMicrosoft WindowsтаApple Mac OS.LilyPond написаний наC++і в своїй роботі використовує бібліотеку мовиScheme.

Основні принципи

[ред.|ред. код]

На відміну від іншихнотних редакторів(Finale,Sibeliusта ін.) LilyPond побудовано за ідеологієюWYSIWYM,а неWYSIWYG.Не маючи власногографічного інтерфейсу,натомість він надає гнучку мову опису партитур: ви описуєтещо самеви хотіли б бачити, а програма самостійно визначає оптимальне розташування елементів партитури на сторінці (наприклад, кількість тактів в рядку або відстань між нотами), тобто відбувається відокремленняописувласне музики від їїоформлення.При необхідності є можливість керувати розміщенням, вказуючи необхідні параметри у файлі.

Таким чином, процес створення партитури в LilyPond нагадуєпрограмуваннячикомп'ютерну версткуза допомогоюLaTeX.Для створення партитури за правилами мови опису партитури набирається вхіднийтекстовий файл,який компілюється для отримання вихідних файлів. Освоєння цієї мови, як імов розмітки даних,вимагає деяких навичок.

В процесі компіляції програма створює кілька файлів: спочатку проміжний (у форматіPostScript,SVG,TeX,залежно від обраного типу виходу), який потім перетвориться уPDFчи інші формати (PNG,DVI). LilyPond також здатний створюватиMIDI-файли, вказівка на створення файлу задається в самому файлі з нотами, а не у вигляді параметракомандного рядка.

LilyPond працює із кодуваннямUTF-8,що дозволяє використовувати текст різними мовами (наприклад, українською, старослов'янською, грецькою, івритом, японською) в одному і тому ж файлі. Важливо переконатися, що текст справді зберігається в кодуванні UTF-8; в іншому випадку наявність будь-яких не-ASCIIсимволів викличе помилку.

Приклади роботи

[ред.|ред. код]

Приклад найпростішої партитури

[ред.|ред. код]
У будь-якому текстовому редакторі (наприклад, у блокноті) необхідно набрати текст
{a b c d}
Найпростіша партитура

Файл потрібно зберегти з розширенням*.ly,після чого запустити зкомандного рядкакоманду lilypondім’я файлуабо просто перетягнути файл мишкою на значок програми. Якщо при наборі не було допущено помилок, буде згенерований pdf-файл з готовими нотами. У процесі генерації файлу автоматично створюєтьсяlog-файл,в якому у разі помилки буде вказано причину, через яку згенерувати файл не вдалося. Результат показано на малюнку.

Складний приклад

[ред.|ред. код]

Використовуваний синтаксис

[ред.|ред. код]

Текст, що йде за знаком відсотка (%) — цекоментар.Подвійні знаки відсотку використовуються тут для легкості читання.

У LilyPond ноти вводяться у форматінота,октавататривалість;октава задається серією ком чи апострофів, кожен з яких, відповідно, знижує або підвищує ноту на одну октаву. Наприклад,a'4позначає нотуля(A), на октаву вище від базової, тривалістю в одну четверту. Синтаксисом передбачено правило:усіінші модифікатори — у тому числі відкриваючі дужки, які за звичайними правилами повинні були б бутидоноти — додаютьсяпісляноти, так щоd8 [c]означає пару восьмих нот, з'єднаних загальним ребром, що позначається квадратними дужками.

Джерельний текст

[ред.|ред. код]
#!lilypond firebreathers.ly -*- coding: utf-8; -*-
%% Тема для „Fire Breathers “, доморощеної NES-гри, що постійно
%% знаходиться у розробці. Композитор Урпо Ланкін {Urpo Lankinen}.

%% Примітка: композитор зробив цей джерельний код доступним
%% для Вікіпедії під ліцензією GFDL. Деякі попередні версії
%% цього коду можуть також бути доступними за ліцензією CC BY-SA.

%% У цьому файлі використовуються позначення нот, прийняті в Європі і в Україні
%% (наприклад, замість вживаних американцями „F# “та „Bb “,
%% використані „Fis “та „B “відповідно).
%% За умовчанням використовуються голландські імена нот.
\include"suomi.ly"

%% Додатковий помічник поновлення мови.
\version"2.6.0"

%% Заголовки.
\header{
title = "Theme for ``Fire Breathers!''"
instrument = "For the 2A03 or SID"
composer = "Urpo Lankinen"
enteredby = "Urpo Lankinen"
updatedby = "Jan Nieuwenhuizen"
date = "June 2005"
}

Melody =\relativec''{
\cleftreble
\time3/4
\keya\minor

%% П’єса починається з затакту довжиною у чверть, „\partial 4 “
%% на це і вказує.
\partial4
a4 | e'4.( d8[ c]) r8 | d4.( c8[ h]) r8 | a2. | e2
a4 | e'4.( d8[ c]) r8 | d4.( e8[ f]) r8 | e2. | r2
e4 | f4.( e8[ d]) r8 | d4.( c8[ h]) r8 | a2. | e2
a4 | e'4.( d8[ c]) r8 | d4.( c8[ h]) r8 | a2. ~ a2 r4 |\bar"|."
}

%% Другий голос.
SecondVoice =\relativec{
\clefbass
\time3/4
\keya\minor

\partial4
r4 | e2. | d2. | a2. | e2
a4 | e'2. | d2 f4 | e2. | r2.
| f2. | d2. | a2. | e2
a4 | e'2. | d2 h4 | a2. ~ a2 r4 |\bar"|."
}

%% Мелодії, тексти пісень та акорди можуть бути віднесені до змінних, а потім
%% можуть бути *повторно використані* в іншому місці. Тут є три різних
%% шаблони акомпанементу, які використовуються для мелодії акомпанементу.
AccompA =\relativec{a4 e'8 a, e' a, |}
AccompB =\relativec{g4 d'8 g, d' g, |}
AccompC =\relativec{e,4 h'8 e, h' e, |}

Accompaniment ={
\clefbass
\time3/4
\keya\minor

\partial4
r4 |\AccompA\AccompB\AccompA\AccompA
\AccompA\AccompB\AccompA\AccompA
\AccompC\AccompC\AccompA\AccompA
\AccompA\AccompB\AccompA| a2 r4 |\bar"|."
}

%% Верхній рівень означення музики.
<<
\newStaff\Melody
\newStaff\Accompaniment
\newStaff\SecondVoice
>>

Результат роботи

[ред.|ред. код]

Результат обробки складного прикладу

Використання у Вікіпедії

[ред.|ред. код]

Можна писати джерельний код LilyPond безпосередньо у тексті сторінки; наприклад, нижче набрано початок «Херувимської пісні»Максима Березовського:

Результат

Не вдалося компілювати вхідний файл LilyPond:

line 37 - column 30:
syntax error, unexpected \lyricmode, expecting \sequential or \simultaneous or << or '{'
--------
line 42 - column 8:
wrong type for argument 1. Expecting pitch, found "b"
--------
line 48 - column 15:
syntax error, unexpected \rest
--------
line 56 - column 16:
syntax error, unexpected \rest
--------
line 63 - column 21:
syntax error, unexpected \lyricmode, expecting \sequential or \simultaneous or << or '{'
--------
line 6 - column 1:
errors found, ignoring music expression
--------
line 81 - column 1:
Unfinished main input

При цьому клацання на зображенні дає змогу звантажити звук у форматіmidi.

Таке використання має обмежені можливості, проте цілком придатне для набирання коротких нотних фрагментів, у тому числі поліфонічних.

Переваги програми

[ред.|ред. код]
  • можливість створювати високоякісні партитури практично будь-якого рівня — від простих одноголосних мелодій до великих оркестрових партитур;
  • мале споживання системних ресурсів;
  • невеликий розмір вхідних файлів; вихідний pdf-файл також у кілька разів менший від аналогічного відсканованого зображення;

Творці програми провели велику роботу над музичними шрифтами, нотами та знаками, які використовуються в програмі, а також над взаємним розміщенням елементів на сторінці: за основу було взято найкращі (на думку авторів) зразки гравіювання нот майстрами переважно першої половини XX-го століття (Bärenreiter, Duhem, Durand, Hofmeister, Peters та Schott)[3].

Недоліки програми

[ред.|ред. код]
  • відносна складність в освоєнні «мови» написання вихідних файлів;
  • досить слабка реалізація механізму конвертаціїMIDI.

Взаємодія з іншими програмами

[ред.|ред. код]

Для набирання нот, перегляду, прослуховування існує окрема програма з графічним інтерфейсом —Frescobaldi[en](є версії для ОСLinuxтаWindows)[4].

Деякі графічні нотні редактори, такі якCanorus,Denemo,MuseScore,NoteEdit[en],RosegardenтаTuxGuitar,можуть експортувати файли у форматі LilyPond. MuseScore може також імпортувати такі файли.

Для текстового редактораkateє плагінLilyKDE.Для текстового редактораjEditє плагінLilyPondTool.За допомогою модуляOOoLilyPondможлива інтеграція файлу Lilypond в документOpenOffice.org.

Sib2ly— комплекс з плагіна доSibeliusі програми наRuby,що дозволяють конвертувати партитури у формат LilyPond. У цей час реалізовано лише частину можливостей Sibelius.[5]

До складу LilyPond входить програма lilypond-book, що дозволяє використовувати розмітку LilyPond вLaTeX,HTML,TexinfoіDocBook:lilypond-book витягує розмітку LilyPond, генерує зображення нотних фрагментів у форматіPostScript,PDFчиPNG,після чого замінює розмітку командами вставки відповідних зображень[6].

Примітки

[ред.|ред. код]
  1. Автори.Команда розробки LilyPond.Архіворигіналу за 8 липня 2013.Процитовано 16 лютого 2010.
  2. абA Bibliographic Scan of Digital Scholarly Communication InfrastructureEducopia Institute,2020.
  3. Essay on automated music engraving[Архівовано7 грудня 2015 уWayback Machine.]на сайті проекту.
  4. Сайт проекту Frescobaldi.Архіворигіналуза 15 квітня 2013.Процитовано 24 квітня 2013.
  5. Сайт проекту на SourceForge.Архіворигіналуза 24 січня 2012.Процитовано 3 листопада 2010.
  6. lilypond-book:Integrating text and music.GNU LilyPond — The music typesetter(англійською).Архіворигіналу за 8 липня 2013.Процитовано 23 січня 2010.

Див. також

[ред.|ред. код]

Посилання

[ред.|ред. код]