wiki:lessons/LilyPondVsWYSIWYG

Сравнение LilyPond с WYSIWYG-редакторами

LilyPond — это средство нотной гравировки, в котором нотный текст набирается с помощью разметки, напоминающей разметку популярной издательской системы LaTeX. WYSIWYG (What You See Is What You Get, "что видишь, то и получишь") — это обозначение интерфейсов, в которых документ отображается так, как он будет выглядеть на печати. Этот текст объясняет, почему для набора нот правильно использовать именно LilyPond.

Если коротко — потому, что LilyPond удобнее и проще WYSIWYG-редакторов. Даже если вам кажется, что это не так, я берусь убедить вас в обратном. Но для этого придётся разобраться с тем, что такое "удобство" и "простота".

Удобство

Можно ли объективно оценить то, насколько программа удобна, или всё, что здесь можно сказать — "на вкус и цвет все фломастеры разные"? Оказывается, можно. Специалисты по эргономике (например, Джеф Раскин, разрабатывавший интерфейс первых "Макинтошей", долгое время считавшийся эталоном "дружественности к пользователю") предлагают считать удобной ту программу, которая:

  • во-первых, требует от пользователя меньше действий для выполнения какой-то задачи, чем другие программы;
  • во-вторых, позволяет большее количество действий сделать рефлекторными, автоматическими.

Согласитесь, разумные критерии. Действительно, программу, в которой для часто повторяющегося действия надо каждый раз искать нужный пункт в баобабообразном меню с двадцатью уровнями вложенности или нажимать последовательность из десяти клавиш, трудно назвать удобной. То же и с привычками — например, если одно и то же действие в похожих ситуациях приводит к совершенно разным результатам, вы почти наверняка будете путаться и раздражаться, правда?

Давайте посмотрим, как обстоят дела с удобством LilyPond.

Что касается количества действий, то здесь LilyPond явно обгоняет WYSIWYG-редакторы. Там, где WYSIWYG-интерфейс требует выбрать из палитры нужный знак, попасть курсором в нужное место и нажать на левую кнопку мыши, в LilyPond достаточно нажать несколько кнопок на клавиатуре. Проверьте сами — что у вас получится быстрее, набрать гамму фа-мажор в любом доступном вам WYSIWYG-редакторе или напечатать строчку "f g a b c d e f"?

Кроме того, в WYSIWYG-редакторах много времени приходится тратить на растаскивание наезжающих друг на друга знаков, а LilyPond большую часть таких проблем решает автоматически (подробнее об этом ниже).

Что же касается привычек, то человек, знающий LilyPond, набирает большие блоки кода (например, последовательность нот с лигой) так же автоматически, как мы набираем слова и предложения в обычном тексте. А вот в WYSIWYG-редакторах с возможностью сформировать привычки гораздо хуже — точное попадание мышкой нельзя сделать автоматическим, это в LilyPond "c" всегда означает "нота до в текущей позиции", а вот в визуальных редакторах текущая позиция каждый раз разная.

Люди, которые говорят, что LilyPond неудобен, путают удобство и привычность. Причём привычен для них при этом как раз неудобный интерфейс. Ну, запретить им продолжать его использовать мы не можем, но если уж изучать средство нотного набора с нуля, то лучше то, которое действительно удобнее, не так ли?

Простота

А можно ли оценить простоту использования программы? На самом деле, тоже да:

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

(Будет кто-то спорить? По-моему, опять же довольно очевидные утверждения.)

Разберёмся сначала с количеством информации, которую надо усвоить, чтобы научиться набирать ноты в LilyPond и в визуальных редакторах. На первый взгляд, здесь WYSIWYG-средства гравировки выигрывают с большим отрывом: бери мышь да тыкай, вот и всё изучение. Но нотный текст, особенно песенный, состоит не только из отдельных нот: в нём есть сложные группировки, аккорды (спасибо, если без аккордовых сеток), обозначения аппликатуры, текст, репризы и прочие знаки сокращения, возможно, мелизмы и варианты мелодии! И вот при попытке всё это набрать визуальные редакторы обеспечат вам увлекательнейшие часы, проведённые за чтением документации и форумов.

LilyPond, в свою очередь, требует для старта некоторых (впрочем, на самом деле не слишком значительных) усилий. Но единожды приложив эти усилия, вы сходу сможете набирать даже не самые простые партитуры. И (что гораздо важнее), понять, как сделать какие-то более сложные вещи, вам будет куда проще, чем в случае использования визуальных редакторов. Можно сравнить LilyPond и WYSIWYG-редакторы, используя понятие "кривой обучения". Так называют график, отражающий (в обсуждаемом нами случае) зависимость количества усилий, которые пользователь должен вложить в освоение программы, от сложности задачи, которую ему нужно решить (т.е. от того, какая часть предоставляемых программой инструментов нужна пользователю). Для визуальных редакторов кривая обучения выглядит примерно так:

Кривая обучения для WYSIWYG-редакторов

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

А кривая обучения для LilyPond выглядит примерно так:

Кривая обучения для !LilyPond

Усилия придётся приложить сопоставимые. Но динамика кривой обучения в этом случае гораздо приятнее — чем дальше, тем меньше нам нужно изучать для того, чтобы продолжать развиваться. Более того, природа LilyPond такова, что нет чёткой грани между созданием документов с хитрой разметкой и дописыванием самой программы, то есть мы не ограничены теми возможностями, которые нам предоставили авторы — в общем-то, LilyPond позволяет сделать всё, что физически представимо на листе бумаги: к бесконечности стремятся ваши возможности, а не прилагаемые вами усилия.

Людям свойственно путать простоту и пологость начального отрезка "кривой обучения". Но задумайтесь, что если вы имеете дело с нотами чуть сложнее "Чижика-пыжика", рано или поздно вам придётся продвинуться дальше начального отрезка. И учиться придётся, с каким бы редактором вы не имели дело. Как сказал однажды человек, кое-что, по слухам, понимавший в интерфейсах: «The only "intuitive" interface is the nipple. After that it's all learned.»

Любая программа требует изучения. Но не всякая программа стóит изучения. LilyPond изучения стóит.

Теперь разберёмся с наглядностью. На первый взгляд уж здесь-то WYSIWYG явно выигрывает у языков разметки вроде LilyPond. Но это только на первый взгляд. На самом деле, структура нотного текста обычно сложнее, чем его внешний вид. Например, принадлежность ноты к тому или иному голосу далеко не всегда однозначно определяется при взгляде на нотный текст. Кроме того, временно скрыть при работе над нотами какие-то элементы изображения (скажем, аппликатуру) в WYSIWYG-редакторе можно только удалив их, а в LilyPond мы можем, например, породить из одного файла и ноты для солирующего инструмента, и клавир, и оркестровую партитуру — в WYSIWYG-средствах не решить такую задачу без множественных copy/paste из файла в файл, ошибок и мучений.

Разметка LilyPond — более наглядное отображение структуры нотного текста, чем сами печатные ноты. По ней проще отслеживать и изменять структуру нотного текста и проводить с ним сложные трансформации.

Не будем для простоты обсуждать тему генерации MIDI, мы всё-таки говорим о средствах нотной гравировки — но очевидно, что для MIDI-специфичных вещей интерфейс создания бумажного листа совершенно непригоден. Правда, если надо породить действительно сложный MIDI-файл, лучше использовать специализированные программы-секвенсоры, например, Rosegarden (кстати, в Rosegarden есть экспорт в LilyPond).

И это ещё не всё

И это ещё не всё! Есть ещё множество причин использовать для нотной гравировки именно LilyPond.

LilyPond выдаёт очень качественные ноты

И, что важно, выдаёт автоматически, в большинстве простых случаев не требуя или почти не требуя перемещения элементов нотной страницы вручную. Вот ссылки на сравнение с Finale и Sibelius. Во всех случаях авторы приходят к выводу, что и Finale, и Sibelius уступают LilyPond в качестве результата.

http://habrahabr.ru/post/127238/

Здесь разбирается простенький нотный текст, набранный в Finale, Sibelius и LilyPond. Набранный в LilyPond вариант смотрится приятнее всего (по ссылке есть табличка, подсказывающая, на что обратить внимание).

http://lilypond.org/doc/v2.14/Documentation/essay/automated-engraving#getting-things-right

Здесь Finale и Sibelius сравнивают сами авторы LilyPond на материале короткого отрывка из Баха. В Finale обнаруживается масса уродливо выглядящих фрагментов и даже одна ошибка; вариант, набранный в LilyPond, неплохо выглядит даже без ручного вмешательства.

http://www.musicbyandrew.ca/info.html

Это самая интересная ссылка. Автор, опытный пользователь Finale, провёл целое небольшое исследование, включавшее общий анализ Finale и LilyPond, гравировку сложного фрагмента из Рахманинова, проверку работы с песенным текстом и проверку скорости набора. Результат — убедительная победа LilyPond.

Я, правда, не видел сравнений качества вывода LilyPond с программой SCORE, применяемой издательством Bärenreiter, но SCORE тоже не является WYSIWYG-редактором и во многом ближе к LilyPond, чем к Finale и Sibelius.

LilyPond создаётся не программистами для покупателей, а музыкантами для собственных нужд

Авторы LilyPond — музыканты, пишущие программу прежде всего для себя. Поэтому LilyPond развивается быстрее и умеет больше, чем проприетарные WYSIWYG-редакторы.

LilyPond — это переносимое ПО, работающее на множестве платформ

Вы можете перейти с Windows на Mac OS X, а потом с Mac OS X на Linux, продолжая использовать одну и ту же программу.

LilyPond — это свободное ПО

"Свободное" значит не просто "бесплатное" (хотя возможность скачать программу в любой момент, не заморачиваясь торрентами и постоянно меняющимися ссылками на файлообменники это тоже ценно). Проприетарная программа обычно прекращает развиваться, когда её забрасывает исходный разработчик. Свободную программу будут развивать, исправлять и переносить на новые платформы, пока вокруг неё существует заинтересованное сообщество (а вокруг LilyPond оно существует). Кроме того, именно благодаря тому, что LilyPond — свободный продукт, его используют как средство нотного набора, встроенное в разные сайты и программы: так, именно LilyPond используется для встраивания нот в движке MediaWiki, на котором сделана Википедия.

Вы, на самом деле, можете использовать WYSIWYG

А если уж вам так нужен WYSIWYG, то существуют средства визуального набора с экспортом в LilyPond (хотя хочется надеяться, что после прочтения этого текста вы не захотите ими пользоваться). Также есть возможность вводить разметку LilyPond с помощью MIDI-клавиатуры. Но если вы не любите командную строку, я советую первым делом посмотреть на средства удобного набора LilyPond с возможностью одной кнопкой просмотреть набираемые ноты, которые позволят вам сочетать удобство набора в LilyPond с возможностью WYSIWYG-редакторов всё время держать перед глазами результат.

Специально для LilyPond разработана замечательная программа Frescobaldi, интерфейс которой выглядит примерно вот так:

Средства удобного набора в !LilyPond — Frescobaldi

Кроме того, к популярному текстовому редактору jEdit есть плагин LilyPondTool, установка и использование которого описаны у нас на сайте.

Средства удобного набора в !LilyPond — jEdit LilyPond Tool

Last modified 12 years ago Last modified on Feb 23, 2013, 11:52:17 AM

Attachments (5)

Download all attachments as: .zip