LilyPond — это компьютерная программа и формат файла для гравировки нот . Одной из основных целей LilyPond является создание партитур, гравированных по традиционным правилам компоновки, отражающим эпоху, когда партитуры гравировались вручную.
LilyPond является кроссплатформенным и доступен для нескольких распространенных операционных систем ; выпущенный на условиях GNU General Public License , LilyPond является свободным программным обеспечением и частью проекта GNU .
Проект LilyPond был начат в 1996 году Хан-Веном Ниенхёйсом и Яном Ниевенхёйзеном после того, как они решили отказаться от работы над MPP ( MusiXTeX PreProcessor), проектом, над которым они начали сотрудничать в 1995 году. [7] [8] Его название было вдохновлено как проектом Rosegarden , так и знакомой Ниенхёйса и Ниевенхёйзена по имени Сюзанна, имя, которое на иврите означает «лилия» ( שׁוֹשַׁנָּה ). [9]
LilyPond 1.0 был выпущен 31 июля 1998 года, ознаменовав разработку специального музыкального шрифта Feta и полное отделение LilyPond от MusiXTeX. [10]
LilyPond 2.0 был выпущен 24 сентября 2003 года, анонсируя упрощенную модель синтаксиса и гораздо более полный набор возможностей для записи различных стилей музыки. [11]
LilyPond в основном написан на C++ и использует Scheme (интерпретируемый GNU Guile ) в качестве языка расширения, что позволяет настраивать его под пользователя. [12] Он имеет относительно большую кодовую базу ; по состоянию на 10 марта 2017 года исходный код включает более 600 000 строк C++, 140 000 строк Scheme и 120 000 строк кода Python . [13]
Он использует простую текстовую нотацию для ввода музыки, которую LilyPond интерпретирует и обрабатывает в несколько этапов. [14] На последнем этапе нотная запись выводится в PDF (через PostScript ) или другие графические форматы, такие как SVG или PNG . LilyPond также может генерировать файлы MIDI , которые соответствуют выходным данным нотной записи.
LilyPond — это текстовое приложение , поэтому оно не содержит собственного графического пользовательского интерфейса для помощи в создании партитур. (Однако графический интерфейс пользователя «LilyPad» на основе текстового редактора для Windows и MacOS включен по умолчанию в эти системы.) Однако оно имеет гибкий язык ввода, который стремится быть простым, облегчая кривую обучения для новых пользователей. LilyPond придерживается парадигмы WYSIWYM ; рабочий процесс набора нот с помощью LilyPond аналогичен процессу подготовки документов с помощью LaTeX .
LilyPond поддерживает экспериментальную музыкальную нотацию . Его гитарные возможности поддерживают альтернативные настройки , такие как настройка мажорной терции . [15]
Основная цель LilyPond — производить продукцию, сопоставимую с профессионально выгравированными партитурами, а не продукцию, которая выглядит механической и сгенерированной компьютером. Эссе с веб-сайта LilyPond, написанное разработчиками LilyPond, объясняет некоторые типографские проблемы, которые решает LilyPond: [16]
Собственный язык ввода для LilyPond является всеобъемлющим и состоит из множества команд, необходимых для выражения любого вида артикуляции, динамики, метра и т. д. Он похож на TeX . Возможность встраивать код Scheme в исходный файл LilyPond допускает произвольные расширения входного языка и помогает с алгоритмической композицией . Некоторые общие синтаксические особенности перечислены ниже.
%
. [18]a'4
это A, на одну октаву выше от базовой A (A3 в научной нотации высоты тона ), длиной в четверть ноты. [19]\time
, , или \slurUp
). Функция рассматриваемой команды определяет, где она размещается; например, если команда используется для указания фиксированной динамики на определенной ноте, она размещается после ноты. [20](
и )
указывают начало и конец slur, соответственно. [21] Другой пример — с manual beaming , где [
и ]
указывают протяженность луча. [22]Интерфейс LilyPond с Pango требует, чтобы входная кодировка символов была UTF-8 . [23] Одним из преимуществ этого является то, что в один и тот же исходный файл можно включить более одного языка.
\версия "2.22.2" \include "english.ly" \header { title = \markup { "Отрывок из" \italic "fibonacci" } composer = "Patrick McCarty" % copyright = \markup \fontsize #-5 % { % Copyright © 2009. % Набрано с помощью GNU LilyPond. % Передано в общественное достояние композитором. % } } \paper { высота-бумаги = 4.6 \ ширина-бумаги = 8.5 \ отступ = # 0 количество-систем = # 2 } \score { \new PianoStaff = "pianostaff" << \new Staff = "RH" \relative c' { \accidentalStyle Score . piano \clef "treble" \time 2/4 \set Score . currentBarNumber = # 51 \tempo "Медленно и размеренно" 4 = 60 < e gs, > 4 \acciaccatura { cs 16 [ ds ] } < e gs, > 4 | % m. 51 < ds gs, > 4 \acciaccatura { e 16 [ ds ] } < cs gs > 4 | % m. 52 < cs gs > 4 \acciaccatura { ds 16 [ cs ] } < c g > 4 | % m. 53 < cs gs > 4 \acciaccatura { ds 16 [ e ] } < es bs gs > 4 | % м. 54 < e gs, > 4 \acciaccatura { cs 16 [ ds ] } e 16 f gs a | % m. 55 < gs c, > 8 \acciaccatura { as 16 [ gs ] } < es b > 8 ~ < es b > 16 ds b as | % m. 56 б 16 г 8 бф 32 ж' г 16 аф бф с | % м. 57 < дф дф, > 16 ( с аф ) < е' е, > ( дс б ) < г' г, > ( дс | % м. 58 \time 3/4 < gs gs, > 16 ) \noBeam d, 16 f gs a 16 e f b c 16 d, ( f gs | % m. 59 а 16 б ) е, ( ж гс 16 б в ) ж, ( жс 16 как б в ) | % м. 60 } \new Динамика = "Динамика_pf" { s 4 \p \< s 4 | % м. 51 s 4 s 4 | % м. 52 s 4 \mp \> s 4 | % м. 53 s 4 s 4 \! | % м. 54 s 4 \p s 4 | % м. 55 s 1 * 2/4 | % м. 56 s 4 \< s 4 | % м. 57 s 4 s 4 | % м. 58 \override DynamicText . extra-spacing-width = # ' ( -0.75 . 0.75 ) s 16 \mf s 16 \p s 8 s 4 s 4 | % м. 59 s 2. | % м. 60 } \new Staff = "LH" \relative c, { \clef "bass" \time 2/4 cs 4. cs 8 | % m. 51 cs 4. d 8 | % m. 52 f 4. a 8 | % m. 53 f 4. d 8 | % m. 54 cs 4. cs 8 | % м. 55 d 4 ds | % м. 56 gs 4. bf, 8 | % м. 57 f' 4 b, | % м. 58 \время 3/4 д 4. д 8 ~ д 4 | % м. 59 эф 2 ж 4 | % м. 60 } >> }
Lilypond также может создавать широко настраиваемый вывод. Примером может служить короткий отрывок из фортепианной пьесы Карлхайнца Штокхаузена ниже.
Несколько графических редакторов партитур — таких как Rosegarden , NoteEdit , Canorus, Denemo и TuxGuitar — могут экспортировать файлы напрямую в формат LilyPond. Другие графические приложения служат в качестве интерфейсов для LilyPond, включая Frescobaldi и плагин LilyPondTool для jEdit . Denemo интегрирует вывод PDF LilyPond в свой дисплей, позволяя выполнять некоторые операции редактирования в окончательно набранной партитуре.
Проект Mutopia , который распространяет бесплатный контент в виде нот, использует LilyPond для набора своей музыки, как и Musipedia, совместная музыкальная энциклопедия.
Режим org-mode в Emacs поддерживает встраивание оценок LilyPond в документы. [24]
OOoLilyPond, расширение LibreOffice, обеспечивает поддержку вызова LilyPond для встраивания результатов в документы. [25]
Lilypond доступен в MediaWiki через код расширения Score. Это, например, преобразует нотацию
<score sound= "1" > \relative c' {
\key d \major fis4 fis g a a g fis ed de fis fis4 . e8 e2 } </score>
в
Выше приведен отрывок из 9-й симфонии Людвига ван Бетховена, широко известной как «Ода к радости». Более сложные партитуры, включая тексты песен, также возможны в вики MediaWiki.
Интеграция музыкальных элементов LilyPond в различные форматы документов (как в системы на основе TeX, такие как LaTeX и Texinfo , так и в страницы DocBook и HTML ) изначально поддерживается с помощью сопутствующей программы lilypond-book , разработанной и поддерживаемой сообществом LilyPond. [26] Это позволяет пользователям встраивать музыкальные элементы в тексты, такие как музыковедение, песенники, рабочие листы для обучения и школьные экзамены.
Для интеграции в систему подготовки документов LaTeX был разработан lyLuaTeX как пакет LuaLaTeX для встраивания музыкальных элементов в тексты. Он включает функции для согласования макета и внешнего вида музыкальных элементов с окружающим текстовым документом. [27] Музыкальные элементы могут состоять из музыкальных символов, текстов песен, схем гитарных аккордов, нотных листов, музыкальных отрывков, гитарных табулатур или многостраничных партитур.
Finale и Sibelius — два фирменных партитуриста, которые часто сравнивают с LilyPond. Эндрю Гаврилюк, пользователь LilyPond, написал серию статей, сравнивающих качество вывода между Finale и LilyPond. [28]
Еще один редактор партитур с функциями, сопоставимыми с LilyPond, — это SCORE , но SCORE больше полагается на ручное позиционирование, чем Lilypond.
См. также Сравнение авторов партитур .