GNU LilyPond
Тип | Нотний редактор |
---|---|
Автори | Han-Wen Nienhuys, Jan Nieuwenhuizen |
Розробники | Команда розробки LilyPond[1] |
Перший випуск | 1996 |
Стабільний випуск | 2.18.2 (23 травня2014 ) |
Нестабільний випуск | 2.19.7 (25 травня2014 ) |
Операційна система | Багатоплатформна |
Мова програмування | 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 безпосередньо у тексті сторінки; наприклад, нижче набрано початок «Херувимської пісні»Максима Березовського:
<score vorbis= "1" lang= "lilypond" > %{ Набрав Д. Редчук. 24 квітня 2013 р. 16 грудня 2015: ChorStaff → ChoirStaff; назви інструментів. %} \new ChoirStaff \with { % не працює?.. \consists "Span_bar_engraver" \override SpanBar.break-visibility = #'all-visible } << \new Staff = "upper" << \set Staff.instrumentName = \markup\column{ "С." "А." } \key b \minor \new Voice = "soprano" \relative d'' { \voiceOne \autoBeamOff % \set Score.tempoHideNote = ##t \tempo "Adagio" 4 = 60 % d4 d d d d4( cis) d a-- ~ a8. b16 cis8 d e4 d \once \override MultiMeasureRest.staff-position = #2 R1 } \new Voice = "alto" \relative a' { \voiceTwo \autoBeamOff a4 a b a b4( a) a fis-- ~ fis8. g16 e8 fis g4 fis \once \override MultiMeasureRest.staff-position = #2 R1 } >> \new Lyrics \lyricsto "alto" \lyricmode { І -- же Хе -- ру -- ви -- ми, і -- же Хе -- ру -- ви -- ми, } \new Staff = "lower" << \set Staff.instrumentName = \markup\column{ "Т." "Б." } \key b \minor \clef "bass" \new Voice = "tenor" \relative c' { \voiceOne \autoBeamOff fis4 fis g fis e2 fis4 d,\rest d2\rest d4\rest a'-- ~ a8. b16 cis8 d e4 d } \new Voice = "bass" \relative c' { \voiceTwo \autoBeamOff d4 cis b fis g4( a) d, d\rest d2\rest d4\rest fis-- ~ fis8. g16 e8 fis g4 fis } >> \new Lyrics \with { % alignAboveContext = "lower" } \lyricsto "tenor" \lyricmode { \repeat "unfold" 6 { \skip 1 } і -- же Хе -- ру -- ви -- ми, } >> %{ % \layout дублює \layout?-) \layout { \context { \ChoirStaff \override SpanBar.break-visibility = #'all-visible } } %} % % \header ігнорується?.. \header { title = "Херувимська пісня" composer = "Максим Березовський (1745–1777)" } </score>
- Результат
При цьому клацання на зображенні дає змогу звантажити звук у форматі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].
- ↑Автори.Команда розробки LilyPond.Архіворигіналу за 8 липня 2013.Процитовано 16 лютого 2010.
- ↑абA Bibliographic Scan of Digital Scholarly Communication Infrastructure—Educopia Institute,2020.
- ↑Essay on automated music engraving[Архівовано7 грудня 2015 уWayback Machine.]на сайті проекту.
- ↑Сайт проекту Frescobaldi.Архіворигіналуза 15 квітня 2013.Процитовано 24 квітня 2013.
- ↑Сайт проекту на SourceForge.Архіворигіналуза 24 січня 2012.Процитовано 3 листопада 2010.
- ↑lilypond-book:Integrating text and music.GNU LilyPond — The music typesetter(англійською).Архіворигіналу за 8 липня 2013.Процитовано 23 січня 2010.
- ABC.
- Офіційний сайт LilyPond
- «Lilypond, a system for automated music engraving»— брошура авторів програми (Han-Wen Nienhuys, Jan Nieuwenhuizen);PDF
- Форум по LilyPond
- Офіційний сайт редактора Frescobaldi[Архівовано15 квітня 2013 уWayback Machine.]
- Вікі по LilyPond
- The LilyPond Report
- Репозитарій уривків на LilyPond
- Архів нот, набраних за допомогою LilyPond[Архівовано8 листопада 2008 уWayback Machine.]
- Denemo — графічний інтерфейс для LilyPond[Архівовано15 серпня 2010 уWayback Machine.].
- LilyPondTool,плагін дляjEditз підтримкою LilyPond.
- Музипедія, вільна енциклопедія, яка використовує LilyPond[Архівовано7 березня 2017 уWayback Machine.]