GNU LilyPond — свободный нотный редактор и язык разметки, разработанный голландскими программистами и музыкантами — валторнистом Хан-Веном Нинхуисом и скрипачом Яном Ньюенхайзеном — и предназначенный для создания музыкальных партитур путём компиляции а из текста, набранного особым образом (используется технология ). Программа изначально рассчитана на работу под GNU/Linux, существуют также версии для Microsoft Windows и Apple Mac OS. LilyPond написан на C++ и в своей работе использует библиотеку языка Scheme.

Процесс создания партитуры в LilyPond напоминает программирование: выходной файл компилируется в соответствии с текстом, набранным по определённым правилам. Освоение этого «языка» требует некоторых навыков. Программа создаёт несколько файлов: сначала промежуточный (в формате PostScript, SVG, и др.), который затем преобразуется в PDF или другие форматы (PNG, DVI). LilyPond также способен создавать MIDI-файлы (указание на создание файла задаётся в самом файле с нотами, а не в виде параметра командной строки).

В отличие от других нотных редакторов (Finale, Sibelius и др.) LilyPond не имеет графического интерфейса и не поддерживает WYSIWYG: программа сама определяет оптимальное расположение элементов партитуры на странице (например, количество тактов в строке или расстояние между нотами); при этом есть возможность управления вёрсткой с помощью указателей необходимых параметров в исходном файле.

Единственная кодировка, которую понимает LilyPond, — UTF-8. Это позволяет использовать текст на разных языках (например, на русском, греческом, иврите, японском) в одном и том же файле. Первая строка сообщает редактору Emacs, что этот файл следует читать и записывать в UTF-8. Если использовать не Emacs, а какой-либо другой редактор, важно убедиться, что текст действительно сохраняется в кодировке UTF-8; в противном случае наличие любых не-ASCII символов вызовет ошибку.

Примеры кода Пример 1 Гамма «До мажор»: { c'8 d' e' f' g' a' b' c'' c'' b' a' g' f' e' d' c' }

Код языка LilyPond можно написать в любом текстовом редакторе. Имя файла указывается с расширением .ly.

Пример 2 Текст, идущий за знаком процента (%) — это комментарий. Двойные знаки процента используются здесь для удобочитаемости.

В LilyPond ноты вводятся в формате нота, октава и длительность; октава задаётся серией запятых или апострофов, каждый из которых, соответственно, понижает или повышает ноту на одну октаву. Например, a'4 обозначает ноту ля (A), на октаву выше базовой, длительностью в одну четвёртую. Синтаксисом предусмотрено правило: все остальные модификаторы — в том числе открывающие скобки, которые по обычным правилам должны были бы быть до ноты — добавляются после ноты, так d8[ c] означает пару восьмых нот, соединённых общим ребром, что обозначается квадратными скобками. %% Тема из "Огнедышащих", самодельной игры NES, находящейся в вечной %% разработке. Композитор Urpo Lankinen.

%% Примечание: Композитор сделал этот исходный код доступным Википедии под %% лицензией GFDL. Некоторые предыдущие версии этого кода могут также быть %% доступны под лицензией CC BY-SA.

%% В этом файле используются обозначения нот, принятые в Европе и в России %% (например, вместо употребляемых американцами "F#" и "Bb", использованы %% "Fis" и "Bes" соответственно). %% Голландские названия нот используются по умолчанию. \include "suomi.ly"

%% Необязательная подсказка для обновления языка. \version "2.18.0"

%% Заголовки. \header { title = "Theme to ``Fire Breathers!''" instrument = "For the 2A03 or SID" composer = "Urpo Lankinen" enteredby = "Urpo Lankinen" updatedby = "Jan Nieuwenhuizen" date = "June 2005" }

Melody = \relative c'' { \clef treble \time 3/4 \key a \minor

%% Пьеса начинается с затакта длиной в четверть, "\partial 4" %% на это и указывает. \partial 4 a4 | e'4.( d8[ c]) r8 | d4.( c8[ h]) r8 | a2. | e2 a4 | e'4.( d8[ c]) r8 | d4.( e8[ f]) r8 | e2. | r2 e4 | f4.( e8[ d]) r8 | d4.( c8[ h]) r8 | a2. | e2 a4 | e'4.( d8[ c]) r8 | d4.( c8[ h]) r8 | a2. ~ a2 r4 | \bar "|." }

%% Второй голос. SecondVoice = \relative c { \clef bass \time 3/4 \key a \minor

\partial 4 r4 | e2. | d2. | a2. | e2 a4 | e'2. | d2 f4 | e2. | r2. | f2. | d2. | a2. | e2 a4 | e'2. | d2 h4 | a2. ~ a2 r4 | \bar "|." }

%% Мелодии, слова и аккорды могут присваиваться переменной и затем %% *повторно использоваться* где-либо ещё. Здесь представлены три %% различных шаблона аккомпанемента используемые для сопровождения %% всей мелодии. AccompA = \relative c { a4 e'8 a, e' a, | } AccompB = \relative c { g4 d'8 g, d' g, | } AccompC = \relative c { e,4 h'8 e, h' e, | }

Accompaniment = { \clef bass \time 3/4 \key a \minor

\partial 4 r4 | \AccompA \AccompB \AccompA \AccompA \AccompA \AccompB \AccompA \AccompA \AccompC \AccompC \AccompA \AccompA \AccompA \AccompB \AccompA | a2 r4 | \bar "|." }

%% Высокоуровневое определение музыки. << \new Staff \Melody \new Staff \Accompaniment \new Staff \SecondVoice >>

Пример 3 Простая мелодия для скрипки, тут показана возможность использования вывода MIDI и затакта.%% Указание версии lilypond и Английской системы названия нот \version "2.24.2" \language "english"

%% Заглавие и композитор указаны здесь \header { title = "Violin Piece №1" composer = "Пользователь Русской Википедии Mister Belegro" } %% Глобальные настройки (в основном необходимо для партитур с больше, %% чем одним инструментом.) global = { \key c \major \time 4/4 \partial 8 }

%% Мелодия для скрипки написана здесь scoreAViolinI = \relative c'' { \global c e g a,8 b c4 e g d8 e c4 e g d8 e c4 g a2 a8 b c1 }

%% Настройки MIDI scoreAViolinIPart = \new Staff \with { midiInstrument = "violin" } \scoreAViolinI

%% Сбор всего воедино \score { << \scoreAViolinIPart >> \layout { } \midi { \tempo 4=100

Особенности Достоинства Возможность создавать высококачественные партитуры практически любого уровня — от простых одноголосных мелодий до больших оркестровых партитур; Возможность быстро изменять содержимое файла, просто редактируя текст; Малое потребление системных ресурсов; Небольшой размер входящих файлов; исходящий pdf-файл также в несколько раз меньше соответствующего отсканированного изображения;

Создатели программы провели большую работу над музыкальными шрифтами, нотами и знаками, используемыми в программе: за основу были взяты издательские технологии XIX века.

Ещё одной из уникальных особенностей GNU LilyPond является тот факт, что работа в нём возможна даже для людей со значительными ограничениями здоровья, например, для полностью слепых, тогда как альтернативными графическими редакторами такие люди пользоваться не имеют возможности.

Доступность программы для людей с ограниченными возможностями является официально декларируемой особенностью продукта, которая отдельно подчёркивается самими разработчиками.

Недостатки Относительная сложность в освоении «языка» написания исходных файлов; Достаточно слабая реализация механизма конвертации MIDI

Набор утилит LilyPond включает в себя несколько утилит: convert-ly — конвертер файлов старых версий LilyPond в новые. lilymidi. lilypond — выводит результат обработки кода в форматы PDF, PNG, PS. lilypond-book. lilypond-invoke-editor. lilysong. Конвертеры некоторых файлов в формат LilyPond: abc2ly — языка разметки музыкальной нотации ABC. musicxml2ly — языка разметки музыкальной нотации musicXML. etf2ly — нотного редактора Finale. midi2ly — MIDI.

Взаимодействие с другими программами Некоторые графические нотные редакторы, такие как Canorus, Denemo, NoteEdit, Rosegarden — могут экспортировать файлы в формате LilyPond. Прежние версии MuseScore могли экспортировать файлы в формате LilyPond, в нынешних такая возможность убрана — вместо неё предлагается экспорт в MusicXML. MuseScore может также импортировать такие файлы.

В 2007 был выпущен LilyKDE — плагин для текстового редактора kate, упрощающий набор партитур в kate. К 2008 году он развился в отдельную программу — , изначально работавшую в KDE 4, но к 2011 переписанную с нуля и ставшую кроссплатформенной.

С помощью модуля OOoLilyPond возможна интеграция файла Lilypond в документ OpenOffice.org.

Существует плагин LilyPondTool к редактору jEdit.

sib2ly — комплекс из плагина к Sibelius и программы на Ruby, позволяющих конвертировать партитуры в формат LilyPond. На данный момент реализована только часть возможностей Sibelius.

В состав LilyPond входит программа lilypond-book, позволяющая использовать разметку LilyPond в LaTeX, HTML, Texinfo и DocBook: lilypond-book извлекает разметку LilyPond, генерирует изображения нотных фрагментов в формате PostScript либо PNG, после чего заменяет разметку командами вставки соответствующих изображений.

Примечания

Ссылки

Официальный сайт «Lilypond, a system for automated music engraving» — брошюра авторов программы (Han-Wen Nienhuys, Jan Nieuwenhuizen); PDF) Форум по LilyPond Архив нот, набранных с помощью LilyPond LilyPondTool, плагин для jEdit с поддержкой LilyPond. Музипедия, свободная энциклопедия, использующая LilyPond

Категория:Свободные музыкальные редакторы LilyPond, GNU Категория:Кроссплатформенное программное обеспечение Категория:Свободное программное обеспечение, написанное на C++ Категория:Программное обеспечение для Linux Категория:Программное обеспечение для Windows Категория:Программное обеспечение для macOS Категория:Программное обеспечение с лицензией GNU GPL Категория:Программное обеспечение проекта GNU Категория:Музыкальные языки разметки Категория:TeX