Interested Article - LilyPond

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

Процесс создания партитуры в LilyPond напоминает программирование : выходной файл компилируется в соответствии с текстом, набранным по определённым правилам. Освоение этого «языка» требует некоторых навыков. Программа создаёт несколько файлов: сначала промежуточный (в формате PostScript , SVG , TeX и др.), который затем преобразуется в 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' }
{ 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 — языка разметки музыкальной нотации music XML .
    • etf2ly — нотного редактора Finale .
    • midi2ly — MIDI .

Взаимодействие с другими программами

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

Существует — плагин для текстового редактора kate , упрощающий набор партитур в kate. Для KDE 4 существует отдельная программа — Frescobaldi.

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

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

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

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

Примечания

  1. Hahnfeld J. — 2023.
  2. Hahnfeld J. — 2024.
  3. — 2006.
  4. . Дата обращения: 19 июля 2012. 24 января 2013 года.
  5. . Дата обращения: 19 июля 2012. 4 августа 2012 года.
  6. . Дата обращения: 16 марта 2010. 24 января 2012 года.
  7. (англ.) . GNU LilyPond — The music typesetter . Дата обращения: 14 ноября 2017. 8 декабря 2017 года.

Ссылки

  • — брошюра авторов программы (Han-Wen Nienhuys, Jan Nieuwenhuizen); PDF )
  • , плагин для jEdit с поддержкой LilyPond.
Источник —

Same as LilyPond