ЛилиПруд
Разработчик(и) | Дэвид Каструп, Вернер Лемберг, Хан-Вен Ниенхейс, Ян Ньювенхейзен, Карл Соренсен, Янек Варчол и др. [1] |
---|---|
Первоначальный выпуск | 1 августа 1997 г |
Стабильная версия | 2.24.4 [2] / 21 июля 2024 г. |
Предварительный выпуск | 2.25.18 [3] / 14 июля 2024 г. |
Репозиторий | |
Написано в | C++ , Схема , Метафонт , PostScript , Python [4] |
Операционная система |
|
Размер | 20–100 МБ |
Стандарт (ы) | EPS , MIDI , MusicXML , PDF , PS , SVG |
Доступно в | каталанский, голландский, английский, французский, немецкий, венгерский, итальянский, японский, испанский |
Тип | Музыкальное программное обеспечение , автор партитуры |
Лицензия | GPL-3.0 или новее [6] |
Веб-сайт | кувшинок |
LilyPond — это компьютерная программа и формат файлов для гравировки музыки . Одна из главных целей LilyPond — производить партитуры, гравированные по традиционным правилам макета, что отражает эпоху, когда партитуры гравировались вручную.
LilyPond является кроссплатформенным и доступен для нескольких распространенных операционных систем ; LilyPond , выпущенный на условиях Стандартной общественной лицензии GNU , является свободным программным обеспечением и частью проекта GNU .
История
[ редактировать ]Проект LilyPond был начат в 1996 году Хан-Вэнь Ниенхейсом и Яном Ньювенхейзеном после того, как они решили отказаться от работы над MPP ( MusiXTeX PreProcessor), проектом, над которым они начали сотрудничать в 1995 году. [7] [8] Его название было вдохновлено как проектом Rosegarden , так и знакомой Ниенхейса и Ньювенхейзена по имени Сюзанна, имя, которое на иврите означает лилия ( שׁוֹשַׁנָּה ). [9]
Версия 1.0
[ редактировать ]LilyPond 1.0 был выпущен 31 июля 1998 года, ознаменовав разработку специального музыкального шрифта Feta и полное отделение LilyPond от MusiXTeX. [10]
Версия 2.0
[ редактировать ]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]
- Оптическое масштабирование шрифта : в зависимости от размера нотоносца немного меняется оформление музыкального шрифта; Это особенность, которой Дональда Кнута Computer Modern известен шрифт . В результате головки нот становятся более округлыми, а линии нотного стана — толще.
- Оптическое расстояние : направления стеблей учитываются при размещении последующих нот.
- Специальная обработка строк книги : строки книги укорачиваются, когда рядом находятся случайные слова, что повышает читаемость.
- Пропорциональный интервал : ноты можно расположить таким образом, чтобы точно отражать их продолжительность. Например, при этой настройке интервал между последовательными четвертными нотами будет в четыре раза больше, чем между последовательными шестнадцатыми нотами . [17]
Обзор синтаксиса ввода
[ редактировать ]Собственный язык ввода для LilyPond является всеобъемлющим и состоит из множества команд, необходимых для выражения любого вида артикуляции, динамики, метра и т. д. Он аналогичен языку TeX . Возможность встраивания кода Scheme в исходный файл LilyPond допускает произвольные расширения языка ввода и помогает при составлении алгоритмов . Некоторые общие синтаксические особенности перечислены ниже.
- Однострочные комментарии начинаются со знака процента.
%
. [18] - Ноты представлены в формате высоты тона : высота указана с помощью обозначения высоты тона Гельмгольца , а длительность указана с помощью числовой системы. Семантика формата высоты тона меняется в зависимости от активного режима ввода; это подробно объяснено в руководстве LilyPond. Например, в абсолютном режиме
a'4
— это ля, расположенная на одну октаву выше базовой ля (A3 в научной нотации ), длиной четвертной ноты. [19] - Команды обычно начинаются с обратной косой черты (например,
\time
, или\slurUp
). Функция рассматриваемой команды определяет, где размещается команда; например, если команда используется для указания фиксированной динамики конкретной ноты, она помещается после ноты. [20] - Некоторые распространенные команды представлены символически, чтобы облегчить ввод. Одним из примеров являются оскорбления , где
(
и)
обозначают начало и конец лига соответственно. [21] Другой пример — ручное лучевое излучение , где[
и]
указать протяженность луча. [22]
Интерфейс LilyPond с Pango требует, чтобы кодировка входных символов была UTF-8 . [23] Одним из преимуществ этого является то, что в один исходный файл можно включить более одного языка.
Пример входного файла LilyPond
[ редактировать ]\version "2.22.2" \include "english.ly" \header { title = \markup { "Отрывок из" \italic "fibonacci" } композитор = "Патрик Маккарти" % Copyright = \markup \fontsize #-5 % { % Copyright © 2009. % Набрано с помощью GNU LilyPond. % Выпущено композитором в общественное достояние. % } } \paper { paper-height = 4,6 \in paper-width = 8,5 \in indent = # 0 system-count = # 2 } \score { \new PianoStaff = "pianostaff" << \new Staff = "RH" \relative c' { \accidentalStyle Оценка . фортепиано \clef "treble" \time 2/4 \set Score . currentBarNumber = # 51 \tempo «Медленно и устойчиво» 4 = 60 < e gs, > 4 \acciaccatura { cs 16 [ ds ] } < e gs, > 4 | % м. 51 < ds gs, > 4 \acciaccatura { e 16 [ ds ] } < cs gs > 4 | % м. 52 < cs gs > 4 \acciaccatura { ds 16 [ cs ] } < c g > 4 | % м. 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 | % м. 55 < gs c, > 8 \acciaccatura { as 16 [ gs ] } < es b > 8 ~ < es b > 16 ds b as | % м. 56 б 16 д 8 бф 32 ж' г 16 аф бф с | % м. 57 < df df, > 16 ( c af ) < e' e, > ( ds b ) < g' g, > ( ds | % m. 58 \time 3/4 < gs gs, > 16 ) \noBeam d, 16 f gs a 16 e f b c 16 d, ( f gs | % m. 59 a 16 b ) e, ( f gs 16 b c ) f, ( gs 16 as b c ) | % м. 60 } \new Dynamics = "Dynamics_pf" { s 4 \p \< s 4 | % м. 51 с 4 с 4 | % м. 52 с 4 \mp \> с 4 | % м. 53 с 4 с 4 \! | % м. 54 с 4 \ p с 4 | % м. 55 с 1 * 2/4 | % м. 56 с 4 \< с 4 | % м. 57 с 4 с 4 | % м. 58 \override DynamicText . ширина дополнительного интервала = # ' ( -0,75 . 0,75 ) с 16 \mf с 16 \p с 8 с 4 с 4 | % м. 59 с 2. | % м. 60 } \new Staff = "LH" \relative c, { \clef "bass" \time 2/4 cs 4. cs 8 | % м. 51 сс 4. д 8 | % м. 52 ж 4. а 8 | % м. 53 ж 4. д 8 | % м. 54 КС 4. КС 8 | % м. 55 д 4 дс | % м. 56 гс 4. бф, 8 | % м. 57 ж' 4 б, | % м. 58 \time 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, совместная музыкальная энциклопедия.
содержит Emacs Режим организации поддержку встраивания результатов LilyPond в документы. [24]
OOoLilyPond, расширение LibreOffice, обеспечивает поддержку вызова LilyPond для встраивания партитур в документы. [25]
Интеграция в MediaWiki
[ редактировать ]Lilypond доступен в MediaWiki через код расширения Score .Это, например, преобразует обозначения
<score sound= "1" > \relative c' { f d f a d f e d cis a cis e a g f e } </score>
в
Приведенный выше отрывок представляет собой упрощенную версию Сольфеджио до минор К.П.Е. Баха . Более сложные партитуры, включая тексты песен, также возможны в вики MediaWiki.
Интеграция в текст с помощью lilypond-book
[ редактировать ]Интеграция музыкальных элементов LilyPond в различные форматы документов (как в системах на основе TeX , таких как LaTeX и Texinfo , так и в DocBook и HTML- страницах) изначально поддерживается посредством сопутствующей программы lilyPond-book , разработанной и поддерживаемой сообществом LilyPond. [26] Это позволяет пользователям встраивать музыкальные элементы в тексты, такие как музыковедение, буклеты с песнями, рабочие листы для преподавания и школьные экзамены.
Интеграция в LaTeX
[ редактировать ]Для интеграции в систему подготовки документов LaTeX был разработан lyLuaTeX как пакет LuaLaTeX для встраивания музыкальных элементов в тексты. Он включает в себя функции сопоставления макета и внешнего вида музыкальных элементов с окружающим текстовым документом. [27] Музыкальные элементы могут состоять из музыкальных символов, текстов песен, диаграмм гитарных аккордов, нотных листов, музыкальных отрывков, гитарных табулатур или многостраничных партитур.
Сравнение с другими авторами партитуры
[ редактировать ]Finale и Sibelius — два собственных автора партитур, которые часто сравнивают с LilyPond. Эндрю Гаврилюк, пользователь LilyPond, написал серию статей, сравнивающих качество вывода между Finale и LilyPond. [28]
Еще одним автором оценок с функциями, сравнимыми с LilyPond, является SCORE , но SCORE больше полагается на ручное позиционирование, чем Lilypond.
См. также Сравнение составителей партитур .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Авторы» . Команда разработчиков LilyPond . Проверено 21 марта 2015 г.
- ^ Ошибка: невозможно правильно отобразить ссылку. смотрите в документации . Подробности
- ^ Ошибка: невозможно правильно отобразить ссылку. смотрите в документации . Подробности
- ^ «Исходный архив» . lilypond.org . Проверено 4 марта 2016 г.
- ^ «Загрузки для LilyPond 2.18.2» . lilypond.org . Проверено 4 марта 2016 г.
- ^ «ЛИЦЕНЗИЯ — lilypond.git — GNU LilyPond» . git.savannah.gnu.org .
- ^ «Руководство по обучению GNU LilyPond: Предисловие» . Проверено 23 декабря 2017 г.
- ^ «README препроцессора MusiXTeX» . Гитхаб . Проверено 31 марта 2010 г.
- ^ Крогер, Педро (2004). «Re: Происхождение названия лилипонд» . Список рассылки пользователей lilypond . lists.gnu.org . Проверено 19 марта 2014 г.
- ^ Ниенхейс, Хань-Вэнь (31 июля 1998 г.). «Выпущен GNU LilyPond 1.0» . gnu-music-discuss (список рассылки) . Проверено 16 февраля 2010 г.
- ^ Ниенхейс, Хан-Вэнь (24 сентября 2003 г.). «LilyPond 2.0 – создавайте красивые музыкальные отпечатки» . информация-lilypond (список рассылки) . Проверено 16 февраля 2010 г.
- ^ «Языки программирования LilyPond» . Проверено 21 марта 2015 г.
- ^ «GNU LilyPond Music Typesetter – Анализ кода» . Проверено 25 июля 2017 г.
- ^ «Обзор архитектуры LilyPond» . Проверено 21 марта 2015 г.
- ^ Гриванк, Андреас (4 января 2010 г.). «Настройка гитар и чтение нот в мажорных терциях» . Препринты Матеона . 695 . Берлин, Германия: Исследовательский центр DFG «МАТЕОН, Математика для ключевых технологий» . Проверено 14 января 2020 г.
- ^ «LilyPond - Очерк автоматизированной гравировки музыки» . Проверено 23 декабря 2017 г.
- ^ «Пропорциональная запись» . Проверено 21 марта 2015 г.
- ^ «Обучающее руководство LilyPond: 1.2.2 Работа с входными файлами» . Проверено 21 марта 2015 г.
- ^ «Справочник по обозначениям LilyPond: 1.1.1 Написание тональности» . Проверено 21 марта 2015 г.
- ^ «Справочник по обозначениям LilyPond: 1.3.1 Выразительные знаки, прикрепленные к нотам» . Проверено 21 марта 2015 г.
- ^ «Справочник по обозначениям LilyPond: 1.3.2 Выразительные знаки в виде кривых» . Проверено 21 марта 2015 г.
- ^ «Справочник по обозначениям LilyPond: 1.2.4 Балки» . Проверено 21 марта 2015 г.
- ^ «Справочник по нотации LilyPond: 3.3.3 Кодирование текста» . Проверено 21 марта 2015 г.
- ^ «языковой модуль org-babel lilypond» . 17 декабря 2018 года . Получено 30 ноября 2019 г. - через GitHub.
- ^ Клаус Блюм (18 апреля 2017 г.). «OOoLilyPond: Создание музыкальных фрагментов в документах LibreOffice» . Проверено 12 октября 2017 г. [ постоянная мертвая ссылка ]
- ^ Сообщество LilyPond (1996–2020 гг.). «Руководство по использованию LilyPond» .
- ^ Перон, о. Жак; Лиска, Урс; Спрингуэль, Бр. Самуэль (27 мая 2019 г.). «LyLuaTeX 1.0f» (PDF) . Комплексная сеть архивов TeX (CTAN) . Проверено 16 апреля 2020 г.
- ^ Гаврилюк, Андрей. «Финал и ЛилиПруд» . Проверено 15 февраля 2010 г.
Внешние ссылки
[ редактировать ]- Официальный сайт
- «lyluatex — команды для включения оценок лилипонда в документ (Lua)LATEX» . Проверено 16 апреля 2020 г.
- ЛилиПруд
- программное обеспечение 1996 года
- Кроссплатформенное программное обеспечение
- Бесплатное музыкальное программное обеспечение
- Бесплатное программное обеспечение, написанное на C++.
- Бесплатное программное обеспечение для верстки
- Программное обеспечение проекта GNU
- Форматы файлов нотной записи
- Авторы партитур
- Сценарии для Linux