ЛилиПруд
Разработчик(и) | Дэвид Каструп, Вернер Лемберг, Хан-Вен Ниенхейс, Ян Ньювенхейзен, Карл Соренсен, Янек Варчол и др. [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 { "Excerpt from" \italic "fibonacci" }
composer = "Patrick McCarty"
% copyright = \markup \fontsize #-5
% {
% Copyright © 2009.
% Typeset with GNU LilyPond.
% Released into public domain by the composer.
% }
}
\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 Score.piano
\clef "treble"
\time 2/4
\set Score.currentBarNumber = #51
\tempo "Slow and steady" 4 = 60
<e gs,>4 \acciaccatura { cs16[ ds] } <e gs,>4 | % m. 51
<ds gs,>4 \acciaccatura { e16[ ds] } <cs gs>4 | % m. 52
<cs gs>4 \acciaccatura { ds16[ cs] } <c g>4 | % m. 53
<cs gs>4 \acciaccatura { ds16[ e] } <es bs gs>4 | % m. 54
<e gs,>4 \acciaccatura { cs16[ ds] } e16 f gs a | % m. 55
<gs c,>8 \acciaccatura { as16[ gs] }
<es b>8 ~ <es b>16 ds b as | % m. 56
b16 d8 bf32 f' g16 af bf c | % m. 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
a16 e f b
c16 d, ( f gs | % m. 59
a16 b ) e, ( f
gs16 b c ) f, (
gs16 as b c ) | % m. 60
}
\new Dynamics = "Dynamics_pf" {
s4 \p \< s4 | % m. 51
s4 s4 | % m. 52
s4 \mp \> s4 | % m. 53
s4 s4 \! | % m. 54
s4 \p s4 | % m. 55
s1 * 2/4 | % m. 56
s4 \< s4 | % m. 57
s4 s4 | % m. 58
\override DynamicText.extra-spacing-width = #'(-0.75 . 0.75)
s16 \mf s16 \p s8 s4 s4 | % m. 59
s2. | % m. 60
}
\new Staff = "LH" \relative c, {
\clef "bass"
\time 2/4
cs4. cs8 | % m. 51
cs4. d8 | % m. 52
f4. a8 | % m. 53
f4. d8 | % m. 54
cs4. cs8 | % m. 55
d4 ds | % m. 56
gs4. bf,8 | % m. 57
f'4 b, | % m. 58
\time 3/4
d4. d8 ~ d4 | % m. 59
ef2 f4 | % m. 60
}
>>
}
Соответствующий вывод
[ редактировать ]Более сложный вывод
[ редактировать ]Lilypond также может создавать широко настраиваемые выходные данные. Примером может служить короткий отрывок из фортепианной пьесы Карлхайнца Штокхаузена ниже.
Сотрудничество с другими проектами
[ редактировать ]Некоторые графические редакторы партитур , такие как Rosegarden , NoteEdit , Canorus, Denemo и TuxGuitar , могут экспортировать файлы непосредственно в формат LilyPond. Другие графические приложения служат внешним интерфейсом для LilyPond, включая Frescobaldi и плагин LilyPondTool для jEdit . Denemo интегрирует вывод PDF-файла LilyPond в свой дисплей, позволяя выполнять некоторые операции редактирования окончательной партитуры.
Проект Mutopia Project , который распространяет бесплатные ноты , использует 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