GNU 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. Приклади роботи

1.1. Приклад найпростішої партитури

Найпростіша партитура

У будь-якому текстовому редакторі (наприклад, у Блокноті) необхідно набрати текст

 {  abcd  } 

Файл потрібно зберегти з суфіксом .ly, після чого запустити з командного рядка команду lilypond имя файла або просто перетягнути файл мишею на значок програми. Якщо при наборі не було допущено помилок, буде згенеровано pdf-файл з готовими нотами. В процесі генерації файлу автоматично створюється log-файл, в якому в разі помилки буде вказана причина, по якій згенерувати файл не вдалося.

Результат представлений на малюнку.


1.2. Складний приклад

1.2.1. Використовуваний синтаксис

Текст, що йде за знаком відсотка (%) - це коментар. Подвійні знаки відсотки використовуються тут для зручності читання.

У LilyPond ноти вводяться у форматі нота, октава і тривалість; октава задається серією ком або апострофів, кожен з яких, відповідно, знижує або підвищує ноту на одну октаву. Наприклад, a'4 позначає ноту ля (A), на октаву вище базової, тривалістю в одну четверту. Синтаксисом передбачено правило: всі інші модифікатори - в тому числі відкривають дужки, які за звичайними правилами повинні були б бути до ноти - додаються після ноти, так d8[ c] означає пару восьмих нот, з'єднаних загальним ребром, що позначається квадратними дужками.


1.2.2. Оригінальний текст

 #! Lilypond firebreathers.ly - * - coding: utf-8; - * -  %% Тема з "вогнедишний", саморобної гри NES, що знаходиться у вічній  %% Розробці. Композитор Urpo Lankinen.  %% Примітка: Композитор зробив цей вихідний код доступним Вікіпедії під  %% Ліцензією GFDL. Деякі попередні версії цього коду можуть також бути  %% Доступні під ліцензією CC BY-SA.  %% У цьому файлі використовуються позначення нот, прийняті в Європі і в Росії  %% (Наприклад, замість вживаних американцями "F #" і "Bb", використані  %% "Fis" і "B" відповідно).  %% Голландські назви нот використовуються за замовчуванням.  \  include  "Suomi.ly"  %% Необов'язкова підказка для оновлення мови.  \ Version  "2.6.0"  %% Заголовки.  \ Header  {  title = "Тема з `` вогнедишних!''" instrument = "Для 2A03 або 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  >> 

1.2.3. Результат роботи

Результат обробки складного прикладу

2. Переваги програми

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

Творці програми провели велику роботу над музичними шрифтами, нотами і знаками, використовуваними в програмі: за основу були взяті видавничі технології XIX століття.

Ще однією з унікальних особливостей GNU LilyPond є той факт, що робота в ньому можлива навіть для людей зі значними обмеженнями здоров'я, наприклад, для повністю сліпих [1], тоді як альтернативними графічними редакторами такі люди користуватися не мають можливості.

Доступність програми для людей з обмеженими можливостями є офіційно декларованої особливістю продукту, яка окремо підкреслюється самими розробниками. [2]


3. Недоліки програми

  • Відносна складність в освоєнні "мови" написання вихідних файлів;
  • Досить слабка реалізація механізму конвертації MIDI

4. Взаємодія з іншими програмами

Деякі графічні нотні редактори, такі як Canorus, Denemo, MuseScore, NoteEdit, Rosegarden - можуть експортувати файли у форматі LilyPond. MuseScore може також імпортувати такі файли.

Існує LilyKDE - плагін для текстового редактора kate, що спрощує набір партитур в kate. Для KDE 4 існує окрема програма - Frescobaldi.

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

Існує плагін LilyPondTool до редактора jEdit.

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

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


Примітки

  1. Цейковец Н. - Нотний редактор GNU LilyPond: музика, стирающая кордону - tiflocomp.ru / docs / sound / lilypond_overview.php
  2. LilyPond - Music notation for everyone: Features - lilypond.org / features.html
  3. Сайт проекту на SourceForge - www.sourceforge.net/projects/sib2ly
  4. lilypond-book: Integrating text and music - lilypond.org/doc/v2.9/Documentation/user/lilypond/LilyPond_002dbook # LilyPond_002dbook (Англ.) . GNU LilyPond - The music typesetter. Читальний - www.webcitation.org/663Qo3WAB з першоджерела 10 березня 2012.