Лилипруд - LilyPond

Лилипруд
LilyPond-logo-with-music.png
Состав Фибоначчи.svg
Разработчики)Давид Каструп, Вернер Лемберг, Хан-Вен Ниенхейс, Ян Ньювенхайзен, Карл Соренсен, Янек Вархол, и другие.[1]
изначальный выпуск1996; 24 года назад (1996)
Стабильный выпуск2.20.0 (1 марта 2020 г.; 9 месяцев назад (2020-03-01)[2]) [±]
Предварительный выпуск2.21.7 (11 октября 2020 г.; 56 дней назад (2020-10-11)[3]) [±]
Репозиторий Отредактируйте это в Викиданных
Написано вC ++, Схема, Метафонт, PostScript, Python[4]
Операционная система
Размер20–100 МБ
Стандарт (s)EPS, MIDI, MusicXML, PDF, PS, SVG
Доступно вАнглийский, каталонский, голландский, французский, немецкий, венгерский, итальянский, японский, испанский
ТипМузыкальное программное обеспечение, автор партитуры
ЛицензияGPLv3[6]
Интернет сайтлилии.org

Лилипруд это компьютерная программа и формат файла за музыкальная гравюра. Одна из основных целей LilyPond - создавать партитуры с выгравированными традиционными правилами компоновки, отражающими эпоху, когда партитуры гравировали вручную.

LilyPond - это кросс-платформенный, и доступен для нескольких распространенных операционные системы; выпущен в соответствии с условиями Стандартная общественная лицензия GNU, LilyPond - это свободное программное обеспечение.

История

Проект LilyPond был начат в 1996 году Хан-Веном Ниенхейсом и Яном Ньювенхёйзеном после того, как они решили отказаться от работы над MPP (MusiXTeX PreProcessor), над которым они начали сотрудничать в 1995 году.[7][8] Его название было вдохновлено как Сад роз Проект и знакомый Nienhuys и Nieuwenhuizen по имени Сюзанна, имя, которое означает лилия на иврите (שׁוּשָׁן).[9]

Версия 1.0

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

Версия 2.0

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

дизайн

Скриншот LilyPond, работающего в Linux

LilyPond в основном написан на C ++ и использует Схема (интерпретируется GNU Guile ) в качестве языка расширения, позволяющего настраивать пользователя.[12] У него относительно большая кодовая база; по состоянию на 10 марта 2017 г. исходный код включает более 600 000 строк C ++, 140000 строк Scheme и 120 000 строк кода Python.[13]

Для ввода музыки используется простая текстовая нотация, которую LilyPond интерпретирует и обрабатывает в несколько этапов.[14] На заключительном этапе нотная запись выводится в PDF (через PostScript ) или другие графические форматы, такие как SVG или PNG. LilyPond также может производить MIDI файлы, соответствующие нотной записи.

LilyPond - это текстовое приложение, поэтому он не содержит собственных графический интерфейс пользователя чтобы помочь с созданием партитуры. (Однако графический интерфейс пользователя LilyPad на основе текстового редактора для Windows и MacOS включен по умолчанию в эти системы.) Однако он имеет гибкий язык ввода, который стремится быть простым, облегчая кривая обучения для новых пользователей. LilyPond придерживается WYSIWYM парадигма; рабочий процесс набора нот с помощью LilyPond аналогичен процессу подготовки документов с помощью Латекс.

LilyPond поддерживает экспериментальные нотная запись. Поддержка гитарного оборудования альтернативные настройки, такие как настройка мажорной трети.[15]

Возможности программного обеспечения

Бетховен с Симфония No. 5 нотный лист, напечатанный из файла PDF с цифровой гравировкой, созданного LilyPond; выпущен Проект Мутопия

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

  • Оптическое масштабирование шрифтов: в зависимости от размера нотоносца немного изменяется дизайн музыкального шрифта; это особенность, которая Дональда Кнута Компьютер Модерн шрифт известен. В результате головки нот становятся более округлыми, а линии нотоносца - толще.
  • Оптическое расстояние: направление стержня учитывается при размещении последующих нот.
  • Обработка строк специальной бухгалтерской книги: строки книги укорачиваются, когда поблизости находятся случайные предметы, что улучшает читаемость.
  • Пропорциональный интервал: notes можно расположить таким образом, чтобы именно так отражает их продолжительность. Например, при этой настройке интервал между последовательными четвертные ноты в четыре раза больше, чем между последовательными шестнадцатые ноты.[17]

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

Родной язык ввода для LilyPond является всеобъемлющим и состоит из множества команд, необходимых для выражения любого вида артикуляции, динамики, измерения и т. Д. Он похож на язык ввода в LilyPond. TeX. Возможность встраивать код схемы в исходный файл LilyPond позволяет произвольно расширять язык ввода и помогает с алгоритмическая композиция. Некоторые общие синтаксические особенности перечислены ниже.

  • Одна линия Комментарии начать со знака процента %.[18]
  • Примечания представлены в продолжительность подачи формат: подача указывается с Обозначение высоты тона Гельмгольца, и продолжительность указывается с цифра основанная система. Семантика продолжительность подачи изменение формата в зависимости от активного режима ввода; это подробно объясняется в руководстве LilyPond. Например, в абсолютном режиме а'4 - ля, расположенная на октаву выше основной ля (A3 в научная нотация звука ), длиной четверть.[19]
  • Команды обычно начинаются с обратной косой черты (например, время, или slurUp). Функция рассматриваемой команды определяет место размещения команды; например, если команда используется для обозначения фиксированного динамичный на конкретном примечании помещается после заметка.[20]
  • Некоторые общие команды представлены символически для облегчения набора текста. Один пример с оскорбления, где ( и ) указывают начало и конец оскорбления соответственно.[21] Другой пример - с ручным сияющий, где [ и ] указать протяженность луча.[22]

Интерфейс LilyPond с Панго требует ввода кодировка символов быть UTF-8.[23] Одним из преимуществ этого является то, что в один исходный файл можно включить более одного языка.

Пример входного файла LilyPond

версия "2.19.82"включают "english.ly" заголовок {  title =  разметка { «Отрывок из»  курсив "фибоначчи" }  composer = "Патрик Маккарти" % copyright =  разметка  fontsize # -5   %  {  % Авторские права © 2009.  % Набор с помощью GNU LilyPond.  % Передано композитором в общественное достояние.  %  }}бумага {  высота бумаги = 4,6в  ширина бумаги = 8,5в  отступ = # 0 system-count = # 2}счет {  новый PianoStaff = "pianostaff" << новый Персонал = "RH" относительный c ' {       randomalStyle Score.piano ключ "тройной" время 2/4      набор Score.currentBarNumber = # 51 темп "Медленно и стабильно" 4 = 60 <например,> 4  acciaccatura { cs16 [ds] } <например,> 4 | % м. 51       4  acciaccatura { e16 [ds] }  4 | % м. 52       4  acciaccatura { ds16 [cs] }  4 | % м. 53       4  acciaccatura { ds16 [e] }  4 | % м. 54      <например,> 4  acciaccatura { cs16 [ds] } e16 f gs a | % м. 55       8  acciaccatura { as16 [gs] }       8 ~  16 ds b as | % м. 56      b16 d8 bf32 f 'g16 af bf c | % м. 57       16 (c af)  (ds b)  (ds | % м. 58      время 3/4  16)  noBeam d, 16 f gs a16 e f b c16 d, (f gs | % м. 59      a16 b) e, (f gs16 b c) f, (gs16 as b c) | % м. 60    }    новый Dynamics = "Динамика"_ПФ" {      s4 п \< s4 | % м. 51      s4 s4 | % м. 52      s4  mp \> s4 | % м. 53      s4 s4 \! | % м. 54      s4 п s4 | % м. 55      s1 * 2/4 | % м. 56      s4 \< s4 | % м. 57      s4 s4 | % м. 58       переопределить DynamicText.extra-spacing-width = # '(- 0,75. 0,75) s16  mf s16 п s8 s4 s4 | % м. 59      s2. | % м. 60    }    новый Персонал = "LH" относительный c, {      ключ "бас" время 2/4 cs4. cs8 | % м. 51      cs4. d8 | % м. 52      f4. a8 | % м. 53      f4. d8 | % м. 54      cs4. cs8 | % м. 55      d4 ds | % м. 56      GS4. bf, 8 | % м. 57      f'4 b, | % м. 58      время 3/4 d4. d8 ~ d4 | % м. 59      ef2 f4 | % м. 60    }  >>}

Соответствующий вывод

Визуализированный вывод

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

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

Отрывок из «Клавирстюк II» Штокхаузена в качестве примера визуализации

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

Первый меры из Адесте Фиделес, созданный LilyPond.

Несколько графических счетчики -такие как Сад роз, ПримечаниеПравить, Канор, Денемо, и TuxGuitar - можно экспортировать файлы прямо в формат LilyPond. Другие графические приложения служат интерфейсом для LilyPond, включая Фрескобальди и плагин LilyPondTool для jEdit. Денемо объединяет PDF вывод LilyPond на его дисплей, что позволяет редактировать окончательную партитуру.

В Проект Мутопия, который распространяет бесплатный контент ноты, использует LilyPond для набора своей музыки, как и Musipedia, совместная музыкальная энциклопедия.

Emacs ' орг-режим содержит поддержку для встраивания оценок LilyPond в документы.[24]

OOoLilyPond, а LibreOffice Расширение обеспечивает поддержку вызова LilyPond для встраивания оценок в документы.[25]

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

Lilypond доступен в MediaWiki через Увеличение очков code.Это, например, преобразует обозначение

<оценка звук ="1"> relative c '{f d f a d f e d cis a cis e a g f e}</score>

в

Музыкальные партитуры временно отключены.

Приведенный выше отрывок представляет собой упрощенную версию сольфеджио до минор автора. C.P.E. Бах. Более сложные партитуры, включая тексты песен, также доступны в MediaWikis. Увидеть Времяпрепровождение в хорошей компании для примера.

Интеграция в текст с помощью кувшинок

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

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

Для интеграции в Латекс система подготовки документов, лыLuaTеX был разработан как LuaLаТеИкс пакет для встраивания музыкальных элементов в текст. Он включает в себя функции для согласования макета и внешнего вида музыкальных элементов с окружающим текстовым документом.[27] Музыкальные элементы могут состоять из музыкальных символов, текстов песен, диаграмм гитарных аккордов, отрывков, музыкальных отрывков, гитарных табулатур или многостраничных партитур.

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

Финал и Сибелиус два проприетарный Авторы партитуры часто сравнивают с LilyPond. Эндрю Гаврилюк, пользователь LilyPond, написал серию статей, сравнивающих качество вывода между Finale и LilyPond.[28]

Еще один составитель партитур с функциями, сопоставимыми с LilyPond, - это ГОЛ, но SCORE полагается на ручное позиционирование больше, чем Lilypond.

Смотрите также Сравнение авторов партитуры.

Смотрите также

использованная литература

  1. ^ "Авторы". Команда разработчиков LilyPond. Получено Двадцать первое марта, 2015.
  2. ^ «LilyPond - Ноты для всех». 3 марта 2020 г.. Получено 6 марта, 2020.
  3. ^ «LilyPond - Ноты для всех». 11 октября 2020 г.. Получено 11 октября, 2020.
  4. ^ "Архив с исходным кодом". lilypond.org. Получено 4 марта, 2016.
  5. ^ "Загрузки для LilyPond 2.18.2". lilypond.org. Получено 4 марта, 2016.
  6. ^ "КОПИРОВАНИЕ - lilypond.git - GNU LilyPond". git.savannah.gnu.org.
  7. ^ "Учебное пособие по GNU LilyPond: предисловие". Получено 23 декабря, 2017.
  8. ^ "README препроцессора MusiXTeX". Получено 31 марта, 2010.
  9. ^ Крогер, Педро (2004). "Re: Происхождение названия кувшинок". список рассылки пользователей lilypond. lists.gnu.org. Получено 19 марта, 2014.
  10. ^ Ниенхуйс, Хан-Вэнь (31 июля 1998 г.). «Выпущен GNU LilyPond 1.0». Гну-музыка-обсуждение (Список рассылки). Получено 16 февраля, 2010.
  11. ^ Ниенхейс, Хан-Вэнь (24 сентября 2003 г.). «LilyPond 2.0 - создавайте красивые нотные принты». информационный пруд (Список рассылки). Получено 16 февраля, 2010.
  12. ^ "Языки программирования LilyPond". Получено Двадцать первое марта, 2015.
  13. ^ "Наборщик музыки GNU LilyPond - Анализ кода". Получено 25 июля, 2017.
  14. ^ «Обзор архитектуры LilyPond». Получено Двадцать первое марта, 2015.
  15. ^ Гриванк, Андреас (4 января 2010 г.). «Настройка гитар и чтение нот в мажорных третях». Препринты Matheon. Берлин, Германия: Исследовательский центр DFG "MATHEON, Математика для ключевых технологий". 695. Получено 14 января, 2020.
  16. ^ «LilyPond - Очерк автоматической гравировки нот». Получено 23 декабря, 2017.
  17. ^ «Пропорциональное обозначение». Получено Двадцать первое марта, 2015.
  18. ^ «Учебное пособие по LilyPond: 1.2.2 Работа с входными файлами». Получено Двадцать первое марта, 2015.
  19. ^ «Ссылка на LilyPond Notation: 1.1.1 Написание нот». Получено Двадцать первое марта, 2015.
  20. ^ «Ссылка на LilyPond Notation: 1.3.1 Выразительные знаки, прикрепленные к нотам». Получено Двадцать первое марта, 2015.
  21. ^ «Ссылка на обозначения LilyPond: 1.3.2 Выразительные знаки в виде кривых». Получено Двадцать первое марта, 2015.
  22. ^ "Ссылка на обозначения LilyPond: 1.2.4 Лучи". Получено Двадцать первое марта, 2015.
  23. ^ «Ссылка на LilyPond Notation: 3.3.3 Кодирование текста». Получено Двадцать первое марта, 2015.
  24. ^ "org-babel lilypond language module". 17 декабря 2018 г.. Получено 30 ноября, 2019 - через GitHub.
  25. ^ Клаус Блюм (18 апреля 2017 г.). «OOoLilyPond: Создание музыкальных фрагментов в документах LibreOffice». Получено 12 октября, 2017.
  26. ^ Сообщество LilyPond, (1996–2020). "Руководство по использованию LilyPond".CS1 maint: лишняя пунктуация (ссылка на сайт)
  27. ^ Перон, о. Жак; Лиска, Урс; Springuel, Br. Самуэль (27 мая 2019 г.). «LyLuaTeX 1.0f» (PDF). Комплексная сеть архивов TeX (CTAN). Получено 16 апреля, 2020.
  28. ^ Гаврилюк, Андрей. «Финал и пруд с лилиями». Получено 15 февраля, 2010.

внешняя ссылка