GNU LilyPond
GNU LilyPond — вільний нотний редактор, розроблений голландськими програмістами та призначений для створення музичних партитур шляхом компіляції файлу з особливим чином набраним текстом (подібно до документів LaTeX). Програма спочатку була розрахована на роботу під GNU/Linux, існують також версії для Microsoft Windows та Apple Mac OS. LilyPond написаний на C++ і в своїй роботі використовує бібліотеку мови Scheme. Основні принципиНа відміну від інших нотних редакторів (Finale, Sibelius та ін.) LilyPond побудовано за ідеологією WYSIWYM, а не WYSIWYG. Не маючи власного графічного інтерфейсу, натомість він надає гнучку мову опису партитур: ви описуєте що саме ви хотіли б бачити, а програма самостійно визначає оптимальне розташування елементів партитури на сторінці (наприклад, кількість тактів в рядку або відстань між нотами), тобто відбувається відокремлення опису власне музики від її оформлення. При необхідності є можливість керувати розміщенням, вказуючи необхідні параметри у файлі. Таким чином, процес створення партитури в LilyPond нагадує програмування чи комп'ютерну верстку за допомогою LaTeX. Для створення партитури за правилами мови опису партитури набирається вхідний текстовий файл, який компілюється для отримання вихідних файлів. Освоєння цієї мови, як і мов розмітки даних, вимагає деяких навичок. В процесі компіляції програма створює кілька файлів: спочатку проміжний (у форматі PostScript, SVG, TeX, залежно від обраного типу виходу), який потім перетвориться у PDF чи інші формати (PNG, DVI). LilyPond також здатний створювати MIDI-файли, вказівка на створення файлу задається в самому файлі з нотами, а не у вигляді параметра командного рядка. LilyPond працює із кодуванням UTF-8, що дозволяє використовувати текст різними мовами (наприклад, українською, старослов'янською, грецькою, івритом, японською) в одному і тому ж файлі. Важливо переконатися, що текст справді зберігається в кодуванні UTF-8; в іншому випадку наявність будь-яких не-ASCII символів викличе помилку. Приклади роботиПриклад найпростішої партитури
Файл потрібно зберегти з розширенням Складний прикладВикористовуваний синтаксисТекст, що йде за знаком відсотка ( У LilyPond ноти вводяться у форматі нота, октава та тривалість; октава задається серією ком чи апострофів, кожен з яких, відповідно, знижує або підвищує ноту на одну октаву. Наприклад, Джерельний текст#!lilypond firebreathers.ly -*- coding: utf-8; -*-
%% Тема для „Fire Breathers“, доморощеної NES-гри, що постійно
%% знаходиться у розробці. Композитор Урпо Ланкін {Urpo Lankinen}.
%% Примітка: композитор зробив цей джерельний код доступним
%% для Вікіпедії під ліцензією GFDL. Деякі попередні версії
%% цього коду можуть також бути доступними за ліцензією CC BY-SA.
%% У цьому файлі використовуються позначення нот, прийняті в Європі і в Україні
%% (наприклад, замість вживаних американцями „F#“ та „Bb“,
%% використані „Fis“ та „B“ відповідно).
%% За умовчанням використовуються голландські імена нот.
\include "suomi.ly"
%% Додатковий помічник поновлення мови.
\version "2.6.0"
%% Заголовки.
\header {
title = "Theme for ``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
>>
Результат роботиВикористання у ВікіпедіїМожна писати джерельний код LilyPond безпосередньо у тексті сторінки; наприклад, нижче набрано початок «Херувимської пісні» Максима Березовського: Приклад набору тегу <score> у тілі статті
<score vorbis="1" lang="lilypond"> %{ Набрав Д. Редчук. 24 квітня 2013 р. 16 грудня 2015: ChorStaff → ChoirStaff; назви інструментів. %} \new ChoirStaff \with { % не працює?.. \consists "Span_bar_engraver" \override SpanBar.break-visibility = #'all-visible } << \new Staff = "upper" << \set Staff.instrumentName = \markup\column{ "С." "А." } \key b \minor \new Voice = "soprano" \relative d'' { \voiceOne \autoBeamOff % \set Score.tempoHideNote = ##t \tempo "Adagio" 4 = 60 % d4 d d d d4( cis) d a-- ~ a8. b16 cis8 d e4 d \once \override MultiMeasureRest.staff-position = #2 R1 } \new Voice = "alto" \relative a' { \voiceTwo \autoBeamOff a4 a b a b4( a) a fis-- ~ fis8. g16 e8 fis g4 fis \once \override MultiMeasureRest.staff-position = #2 R1 } >> \new Lyrics \lyricsto "alto" \lyricmode { І -- же Хе -- ру -- ви -- ми, і -- же Хе -- ру -- ви -- ми, } \new Staff = "lower" << \set Staff.instrumentName = \markup\column{ "Т." "Б." } \key b \minor \clef "bass" \new Voice = "tenor" \relative c' { \voiceOne \autoBeamOff fis4 fis g fis e2 fis4 d,\rest d2\rest d4\rest a'-- ~ a8. b16 cis8 d e4 d } \new Voice = "bass" \relative c' { \voiceTwo \autoBeamOff d4 cis b fis g4( a) d, d\rest d2\rest d4\rest fis-- ~ fis8. g16 e8 fis g4 fis } >> \new Lyrics \with { % alignAboveContext = "lower" } \lyricsto "tenor" \lyricmode { \repeat "unfold" 6 { \skip 1 } і -- же Хе -- ру -- ви -- ми, } >> %{ % \layout дублює \layout?-) \layout { \context { \ChoirStaff \override SpanBar.break-visibility = #'all-visible } } %} % % \header ігнорується?.. \header { title = "Херувимська пісня" composer = "Максим Березовський (1745–1777)" } </score>
При цьому клацання на зображенні дає змогу звантажити звук у форматі midi. Таке використання має обмежені можливості, проте цілком придатне для набирання коротких нотних фрагментів, у тому числі поліфонічних. Переваги програми
Творці програми провели велику роботу над музичними шрифтами, нотами та знаками, які використовуються в програмі, а також над взаємним розміщенням елементів на сторінці: за основу було взято найкращі (на думку авторів) зразки гравіювання нот майстрами переважно першої половини XX-го століття (Bärenreiter, Duhem, Durand, Hofmeister, Peters та Schott)[3]. Недоліки програми
Взаємодія з іншими програмамиДля набирання нот, перегляду, прослуховування існує окрема програма з графічним інтерфейсом — Frescobaldi[en] (є версії для ОС Linux та Windows)[4]. Деякі графічні нотні редактори, такі як Canorus, Denemo, MuseScore, NoteEdit[en], Rosegarden та TuxGuitar, можуть експортувати файли у форматі LilyPond. MuseScore може також імпортувати такі файли. Для текстового редактора kate є плагін LilyKDE. Для текстового редактора jEdit є плагін LilyPondTool. За допомогою модуля OOoLilyPond можлива інтеграція файлу Lilypond в документ OpenOffice.org. Sib2ly — комплекс з плагіна до Sibelius і програми на Ruby, що дозволяють конвертувати партитури у формат LilyPond. У цей час реалізовано лише частину можливостей Sibelius.[5] До складу LilyPond входить програма lilypond-book, що дозволяє використовувати розмітку LilyPond в LaTeX, HTML, Texinfo і DocBook: lilypond-book витягує розмітку LilyPond, генерує зображення нотних фрагментів у форматі PostScript, PDF чи PNG, після чого замінює розмітку командами вставки відповідних зображень[6]. Примітки
Див. також
Посилання
|