GNU LilyPond — свободный нотный набор
Уже с конца 1980-х годов музыкальные издательства постепенно оставляли ручной и переходили на компьютерный нотный набор. На данный момент список нотных редакторов огромен, но профессионалы используют Finale и Sibelius.
Холивары о том, кто из них лучше, не утихают уже лет десять, авторитетное издательство Bärenreiter (музыканты его очень любят, хоть и ругаются на дорогие ноты) тем временем используют написанную на Фортране SCORE, а музыканты — любители свободных программ смотрят на LilyPond и ужасаются, потому что как же обычному человеку жить без WYSIWYG'а?
Если бы не TeX-подобный синтаксис, я уверен, многие бы использовали этот engraver. Именно engraver — переводы «гравировщик» и «наборщик» не подходят здесь, потому что этими словами обозначаются профессии. LilyPond лучше других коммерческих и бесплатных программ располагает нотный текст равномерно по странице.
Сравнение с популярными программамиЭто мелодия небезызвестной темы, набранная в трёх разных программах (LilyPond, Finale, Sibelius)
В LilyPond не делалось ничего кроме набора, в Сибелиусе и Finale удалены лишние такты, также в последней ноты принудительно автоматически расставлены по горизонтали.
Рассмотрим некоторые детали: Sibelius LilyPond Finale 1. Шрифт Современный Под XIX век, особенно скрипичный ключ Современный 2. Вертикальное расположение систем Немного распадаются Системы не распадаются и не сливаются Сильно распадаются 3. Горизонтальное расположение элементов на нотной строке Приемлемо (хотя я бы раздвинул бы последние две ноты на первой строке) Практически идеально Шестнадцатые после восьмой с точкой везде прилеплены к следующей ноте 4. Устойчивость горизонтального распределения Первая строка сжата, вторая нормальная, третья растянутая Равномерное, расстояния на 2-й и 3-й строках практически одинаковые Равномерное, хотя строки выглядят чересчур сжатыми 5. Расстояния вокруг тактовой черты Хорошие, когда нет знаков альтерации (см., например, границу 7 и 8 тактов), иначе страдает правое поле Практически везде одинаковые справа и слева Страдает левое поле, если там шестнадцатая
В этом совсем небольшом примере, который использует только самые простые элементы нотографики, уже заметна разница. Авторы программы тоже перемалывают косточки Finale (это старая версия документа, в новой тоже есть сравнение), а некий Andrew Hawryluk, перейдя с Finale на LilyPond на своём сайте занимается примерно тем же. Кстати, на том сайте можно посмотреть на LilyPond'овский набор.
Внимание! Следующий раздел содержит технические подробности, и для начального обучения совсем даже не нужны.
Как это работаетНам ничего не известно о внутренней работе Sibelius'а или Finale, но, судя по результату, им не мешало бы кое-чему научиться у разработчиков LilyPond.
SchemeПоловина LilyPond написана на Scheme, а исполняемый файл использует GUILE для запуска этой половины. Что даёт такое разделение? TeX-подобная разметка (после проверки синтаксиса, естественно) отправляется на обработку, которая в конечном счёте выдаёт «программу» на Scheme, задающую уже части на C++ все параметры (в основном те, которые выставлены по умолчанию) и собственно ноты, но как уже команды языка программирования, а не разметки. Такой подход позволяет, с одной стороны, более эффективно искать ошибки в той или иной части, а с другой стороны даёт возможность определить команды, выполняющие практически любое действие.
Контексты- Контекст партитуры. Единственный в файле, он содержит те части, которые одинаковы для всей партитуры, например, размер, темп, повторы etc. Только один.
- Контекст группы станов. Их может быть несколько вложенных, и содержат специфичные для группы вещи (например, акколада у фортепианного стана — технически это тоже группа).
- Контекст стана. Несколько разновидностей нотных станов удовлетворят самые разные потребности — в том числе и для набора григорианских хоралов и мензурально нотированной музыки. Может быть вложен как в группу станов, так и в партитуру.
- Контекст голоса. Их может быть неограниченное число на стане, только бы в глазах не путались.
Графические объекты (обозначаемые в документации словом grob :-) ) и их engraver'ы, performer'ы и единственный Timing_translator (части, отвечающие за рисование, создание MIDI и синхронизатор ритма на всех станах) строго распределены по контекстам. Среди их свойств обычно немало отвечающих за расположение по вертикали и горизонтали. Полный список гробов можно посмотреть в соответствующей части документации.
ПлохостьЭтот забавный перевод слова badness означает степень отклонения расположения от идеального для каждого элемента (такой механизм пришёл из TeX'а).
Документация гласит: В целом процедура распределения происходит в четыре этапа. Во-первых, эластичные пробелы («пружины») выбираются на основе длительности. Во-вторых, проверяются все возможные комбинации переноса строк, и для каждого рассчитывается «плохость». В-третьих, оценивается высота каждой системы. Наконец, разрывы страниц и сочетания выбираются так, чтобы горизонтальные и вертикальные промежутки не слишком растягивались или сжимались. [источник]
СинтаксисУчебник в картинках взят с официального сайта.
Команды начинаются с обратного слеша, буквы это ноты, а цифры — длительности.
Знаки альтерации и аккорды не вызывают проблем. Примечание: русскому музыканту привычнее немецкие или английские названия нот. Для этого можно использовать \language "deutsch" или \language "english"
Партитура и партии могут быть сделаны из одного файла — для этого используются переменные.
Можно по-отдельности, а можно и вместе:
За дальнейшими разъяснениями просьба обращаться в окошко №27 к официальному мануалу (он достаточно хорошо написан).
ИспользованиеКонечно, можно набирать код в блокноте и запускать LilyPond командной строкой. Тем не менее, существуют программы, призванные облегчить жизнь кодеру.
jEditК этому популярному кроссплатформенному редактору существует плагин LilyPondTool, который добавляет подсветку синтаксиса, просмотр, PointAndClick (щелкнул на элемент партитуры — попал в соответствующее место исходника) и несколько удобных штук (типа диалогов для задания типичных свойств). Практически единственный удобный инструмент для Windows.
Штатный редактор KDE дружит с LilyPond'ом, хотя не так продвинуто, как следующая программа.
FrescobaldiЭто специализированный именно на LilyPond'е редактор под KDE (хотя замечательно запускается и в GNOME) обладает более существенной поддержкой. Доступно побольше примочек, и работать с ним лично мне куда приятнее.
Также возможно прикрутить экспорт из Sibelus (sib2ly), встроен импорт MIDI и MusicXML.
Приятное известие для любителей TeX'а — LilyPond содержит в своём составе утилиту LilyBook, с помощью которой можно запросто встраивать нотные примеры прямо в TeX'овский документ.