Введение

LilyPond — это компьютерная программа и формат файла для музыкальной гравировки. Одной из главных целей LilyPond является создание нотных партитур, выполненных в традиционном стиле, отражающем эпоху ручной гравировки. LilyPond является кроссплатформенным и доступен для ряда распространенных операционных систем; распространяется по лицензии GNU General Public License, что делает LilyPond свободным программным обеспечением и частью проекта GNU.

История

Проект LilyPond был начат в 1996 году Ханом Вэнь Нинхёйсом и Яном Нювенхёйзеном после того, как они решили прекратить работу над MPP (MusiXTeX PreProcessor), проектом, над которым они начали сотрудничать в 1995 году. Название проекта было вдохновлено проектом Rosegarden и знакомой Нинхёйса и Нювенхёйзена по имени Сюзанна, имя которой на иврите означает «лилия» ([[wikt:שושנה]]).

Версия 1.0

LilyPond 1.0 был выпущен 31 июля 1998 года, ознаменовав разработку специализированного музыкального шрифта Feta и полное отделение LilyPond от MusiXTeX.

Версия 2.0

LilyPond 2.0 был выпущен 24 сентября 2003 года, ознаменовав упрощенную модель синтаксиса и значительно более полный набор инструментов для нотации музыки различных стилей.

Дизайн

LilyPond в основном написан на C++ и использует Scheme (интерпретируемый GNU Guile) в качестве языка расширения, позволяя пользователям его настраивать. Он обладает довольно большим объемом кода: по состоянию на 10 марта 2017 года, в исходном коде содержится более 600 000 строк C++, 140 000 строк Scheme и 120 000 строк кода Python. LilyPond использует простую текстовую нотацию для ввода музыкальных данных, которую он интерпретирует и обрабатывает последовательно, на нескольких этапах. На заключительном этапе музыкальная нотация выводится в PDF (через PostScript) или другие графические форматы, такие как SVG или PNG. LilyPond также способен генерировать MIDI-файлы, соответствующие выходной музыкальной нотации. LilyPond – это текстовое приложение, поэтому не имеет встроенного графического пользовательского интерфейса для помощи в создании нот. (Однако, на системах Windows и MacOS по умолчанию включен графический интерфейс "LilyPad", основанный на текстовом редакторе.) Тем не менее, он предлагает гибкий язык ввода, стремящийся к простоте, что облегчает освоение программы для новых пользователей. LilyPond следует парадигме WYSIWYM; рабочий процесс набора музыкальной нотации в LilyPond аналогичен процессу подготовки документов в LaTeX. LilyPond поддерживает экспериментальную музыкальную нотацию. Его возможности для гитары включают поддержку альтернативных строев, например, строя в мажорных терциях.

Особенности программного обеспечения

Основная цель LilyPond — создавать ноты, сопоставимые с профессионально выгравированными партитурами, а не с механически и компьютерно сгенерированными. В эссе на сайте LilyPond, написанном разработчиками программы, объясняются некоторые типографские проблемы, которые решает LilyPond:

Оптическое масштабирование шрифта: в зависимости от размера нотного стана, дизайн музыкального шрифта незначительно изменяется; эта особенность характерна для шрифта Computer Modern Дональда Кнута. В результате головки нот становятся более округлыми, а линии нотного стана — более толстыми. Оптическое кернение: при расстановке последующих нот учитывается направление ножек. Специальная обработка дополнительных линеек: дополнительные линейки укорачиваются вблизи знаков альтерации, что повышает читаемость. Пропорциональное расстояние: ноты могут располагаться таким образом, чтобы точно соответствовать их длительности. Например, при данной настройке расстояние между последовательными четвертными нотами в четыре раза больше, чем между последовательными шестнадцатыми нотами.

Обзор входного синтаксиса

Родной язык ввода для LilyPond является всеобъемлющим и состоит из множества команд, необходимых для выражения любых видов артикуляции, динамики, размера и т. д. Он схож с языком TeX. Возможность встраивать код Scheme в исходный файл LilyPond позволяет произвольно расширять язык ввода и помогает при алгоритмическом сочинении. Ниже перечислены некоторые общие синтаксические особенности. Однострочные комментарии начинаются со знака процента (%). Ноты представляются в формате "высота-длительность": высота звука указывается с использованием нотации Гельмгольца, а длительность – с помощью численной системы. Семантика формата "высота-длительность" меняется в зависимости от активного режима ввода; это подробно описано в руководстве LilyPond. Например, в абсолютном режиме a'4 обозначает Ля, на одну октаву выше базовой Ля (A3 в научной нотации высоты звука), длительностью в четверть. Команды обычно начинаются с обратной косой черты (например, \time или \slurUp). Функция команды определяет, где она должна быть размещена; например, если команда используется для указания фиксированной динамики для конкретной ноты, она размещается после этой ноты. Некоторые часто используемые команды представлены символически для удобства ввода. Например, скобки ( и ) обозначают начало и конец лиги соответственно. Другой пример – ручное соединение нот лигами, где квадратные скобки [ и ] указывают протяженность лиги. Интерфейс LilyPond с Pango требует, чтобы входная кодировка символов была UTF-8. Одним из преимуществ этого является возможность включения нескольких языков в один исходный файл.

Более сложный выход

Lilypond также может создавать выводы с широкими возможностями настройки. Примером служит короткий отрывок из фортепианной пьесы Карлхайнца Штокхаузена, представленный ниже.

Сотрудничество с другими проектами

Несколько графических программ для нотной записи, таких как Rosegarden, NoteEdit, Canorus, Denemo и TuxGuitar, могут экспортировать файлы непосредственно в формат LilyPond. Другие графические приложения служат интерфейсом к LilyPond, включая Frescobaldi и плагин LilyPondTool для jEdit. Denemo интегрирует PDF-вывод LilyPond в свой интерфейс, позволяя выполнять некоторые операции редактирования над готовой набранной партитурой. Проект Mutopia, распространяющий бесплатные ноты, использует LilyPond для набора музыки, как и Musipedia, совместная музыкальная энциклопедия. Режим org в Emacs поддерживает встраивание нот LilyPond в документы. OOoLilyPond, расширение LibreOffice, обеспечивает возможность вызова LilyPond для встраивания нот в документы.

Интеграция в текст с помощью lilypond-book

Интеграция музыкальных элементов LilyPond в различные форматы документов (в том числе в системы на основе TeX, такие как LaTeX и Texinfo, а также DocBook и HTML-страницы) осуществляется непосредственно с помощью сопутствующей программы lilypond book, разработанной и поддерживаемой сообществом LilyPond. Это позволяет пользователям включать музыкальные элементы в тексты, например, в работы по музыковедению, сборники песен, учебные материалы и школьные экзаменационные работы.

Интеграция в LaTeX

Для интеграции в систему подготовки документов LaTeX, lyLuaTeX был разработан как пакет LuaLaTeX для встраивания музыкальных элементов в текст. Он предоставляет возможности для согласования расположения и внешнего вида музыкальных элементов с окружающим текстовым документом. Музыкальные элементы могут включать в себя музыкальные символы, тексты песен, схемы аккордов для гитары, лид-листы, музыкальные фрагменты, гитарные табулатуры или многостраничные ноты.

Сравнение с другими композиторами

Финале и Сибелиус – два проприетарных редактора нот, которые часто сравнивают с LilyPond. Эндрю Ховрилук, пользователь LilyPond, написал серию статей, сравнивающих качество нотной записи, полученной в Finale и LilyPond. Другой редактор нот с сопоставимыми возможностями – SCORE, но SCORE в большей степени полагается на ручное позиционирование, чем LilyPond. См. также Сравнение редакторов нот.