= Набор ритмических "ниток" в !LilyPond = == Что мы учимся делать == Время от времени возникает необходимость записать только ритм, безо всякой мелодии --- это может быть упражнение, партия ударного инструмента или ритмическая фигура для импровизации. [wiki:lessons/LilyPond LilyPond] позволяет красиво набрать такой кусок достаточно простыми средствами. == Набор нот == Набор звуков без высоты в !LilyPond'е не сложнее, чем нот --- для многих перкуссионных звуков есть свои обозначения. Например, четыре клика метронома длиной в одну четверть мы можем набрать вот так: {{{ \drummode {cl cl cl cl} }}} Команда `\drummode` включает режим работы с ударными. Каждая команда `cl` добавляет клик метронома. == Компиляция == Для получения результата достаточно сказать в коммандной строке: {{{ lilypond percussion.ly }}} Здесь `percussion.ly` --- имя вашего исходного файла. Результат зависит от настроек, но в любом случае, если мы набрали файл без ошибок, это будет результат в каком-то из многочисленных выходных форматов !LilyPond. В моём случае получаются ноты в PDF и !PostScript. Выглядит это примерно вот так: [[Image(lilypond-rhythm-00-simple-notes.png)]] Совсем просто, правда? == Нотный стан в одну линейку == Наш фрагмент не содержит высоту нот, поэтому пять линеек на нотном стане нам явно много. Оставить единственную линейку мы можем переопределением значения отвечающей за количество линеек переменной (''да'', вы можете таким путём получить две линейки; ''да'', и восемь тоже; ''нет'', для набора гитарной табулатуры есть другой путь, гораздо проще): {{{ \new DrumStaff \with { \override StaffSymbol #'line-count = #1 } \drummode {cl cl cl cl} }}} Заново откомпилируем наш файл и полюбуемся на результат. [[Image(lilypond-rhythm-01-single-line-staff.png)]] Вот так, например, результат выглядит у меня. == Длительности == Чтобы изменить время звучания ноты, нужно подписать после неё её длительность. Целая нота обозначается единицей, половинка --- двойкой, четверть --- четвёркой и т.д. Длительность с точкой обозначается... точкой! После того, как одной ноте задана длительность, все последующие будут такими же, пока не будет явно задана новая длительность. Немного поиграем с длительностями. {{{ \new DrumStaff \with { \override StaffSymbol #'line-count = #1 } \drummode {cl4. cl cl8 cl} }}} Это будет выглядеть вот как: [[Image(lilypond-rhythm-02-duration.png)]] Обратите внимание --- ко второму клику не надо подписывать обозначение четверти с точкой, у него та же длительность, что и у первого клика. То же касается второй восьмой. == Размер == У любого музыкального произведения бывает размер. В !LilyPond он задаётся вполне интуитивным образом: дробь, две цифры через слеш ("/"): {{{ \new DrumStaff \with { \override StaffSymbol #'line-count = #1 } \drummode { \time 8/8 cl4. cl cl8 cl } }}} Вот что получится: [[Image(lilypond-rhythm-03-time-signature.png)]] Для этого фрагмента мы указали размер "восемь восьмых". == Тактовые черты == По умолчанию тактовые черты на нотном стане в одну линию будут получаться слишком короткими. Чтобы их было лучше видно, переопределим значение переменной, хранящей длину тактовой черты: {{{ \new DrumStaff \with { \override BarLine #'bar-size = #3 \override StaffSymbol #'line-count = #1 } \drummode { \time 8/8 cl4. cl cl8 cl } }}} Получается: [[Image(lilypond-rhythm-04-bar-line.png)]] Теперь тактовая черта видна гораздо лучше. == Несколько тактов == Раз уж теперь у нас есть красивые тактовые черты, наберём ещё один такт нашего ритмического фрагмента: {{{ \new DrumStaff \with { \override BarLine #'bar-size = #3 \override StaffSymbol #'line-count = #1 } \drummode { \time 8/8 cl4. cl cl8 cl cl4 cl4. cl } }}} Синтаксис !LilyPond этого не требует, но я пишу такты один под другим, так их легче найти при редактировании. А в результате получается примерно вот что: [[Image(lilypond-rhythm-05-two-measures.png)]] Обратите внимание на то, что тактовые черты расставляются автоматически. == Паузы == Паузы в !LilyPond обозначаются буквой `r`. Длительности пауз задаются так же, как длительности нот. {{{ \new DrumStaff \with { \override BarLine #'bar-size = #3 \override StaffSymbol #'line-count = #1 } \drummode { \time 8/8 cl4. cl cl8 cl cl4 cl4. cl r8 cl r2. } }}} Выглядит это вот так: [[Image(lilypond-rhythm-06-rests.png)]] Длительность пауз влияет на длительность следующих за паузой нот. == Триоли == Задать триоль (квинтоль, секстоль, септоль и т.д.) тоже очень просто: достаточно дать команду `\times` для объединяемой в триоль группы нот. А перед группой нот нужно записать дробь (через слеш), у которой в числителе будет длительность, на протяжении которой звучит группа, а в знаменателе --- количество нот в группе: {{{ \new DrumStaff \with { \override BarLine #'bar-size = #3 \override StaffSymbol #'line-count = #1 } \drummode { \time 8/8 cl4. cl cl8 cl cl4 cl4. cl r8 cl \times 4/3 {cl [cl cl]} cl cl } }}} Квадратные скобки здесь нужны для правильной группировки нот. [[Image(lilypond-rhythm-07-tuplet.png)]] == Добавляем звук == Выглядит это замечательно, но хочется всё-таки и послушать то, что мы набрали, правда? Сделать это очень просто. Достаточно воспользоваться командой `\score`, позволяющей задавать выходные форматы набранной музыки: {{{ \score { \new DrumStaff \with { \override BarLine #'bar-size = #3 \override StaffSymbol #'line-count = #1 } \drummode { \time 8/8 cl4. cl cl8 cl cl4 cl4. cl r8 cl \times 4/3 {cl [cl cl]} cl cl } \midi{} \layout{} } }}} В результате очередной компиляции мы получим не только графические файлы с нотами, но и MIDI-файл с музыкой... э-э-э, со звучанием того, что мы набрали, если быть точным. == Указываем версию == Внимательный и неленивый читатель, набравший и откомпилировавший все примеры, мог заметить, что при каждой компиляции !LilyPond выдавал что-то вроде: {{{ GNU LilyPond 2.11.61 Processing `drums.ly' Разбираю... drums.ly:0: предупреждаю: : no \version statement found, please add \version "2.11.61" for future compatibility }}} Авторы !LilyPond меняют синтаксис от версии к версии --- именно благодаря этому !LilyPond настолько удобен, но беспроблемной работы будущих версий !LilyPond с вашими файлами никто обещать не может. Чтобы обеспечить совместимость, надо указать версию с помощью команды `\version`. В моём случае версия !LilyPond --- 2.11.61, её я и указываю. Вот что получается в результате: {{{ \version "2.11.61" \score { \new DrumStaff \with { \override BarLine #'bar-size = #3 \override StaffSymbol #'line-count = #1 } \drummode { \time 8/8 cl4. cl cl8 cl cl4 cl4. cl r8 cl \times 4/3 {cl [cl cl]} cl cl } \midi{} \layout{} } }}} == Заключение == !LilyPond при первом знакомстве может напугать пользователя. Как и TeX, на основе которого он построен, !LilyPond предпочитает логичность и единообразие синтаксиса простоте освоения для новичка. Однако, как и в случае с TeX/LaTeX, после того, как вы освоили несколько базовых принципов, самые разные по уровню задачи, в том числе запредельно сложные для пользователей традиционных нотных редакторов, вы будете решать одинаково легко. Кроме того, непревзойдённое качество результата с лихвой окупает усилия по освоению. Существуют средства, позволяющие набирать ноты в !LilyPond с помощью WYSIWYG-интерфейса, но я не рекомендую ими пользоваться, по крайней мере, пока вы не освоитесь с основными приёмами набора и вёрстки в "чистом" !LilyPond. Тут как с другим языком разметки, HTML --- ни одна машина не способна сравниться с человеком в качестве кода, о читаемости и возможности дальнейшего редактирования уже не говорю. Кроме того, WYSIWYG-редакторы удобны только для небольших и простых нотных партий --- чем больше объём набираемого текста и чем он сложнее, тем очевиднее становятся преимущества !LilyPond. Попробуйте набирать музыку в !LilyPond, и через некоторое время вам уже не захочется возвращаться к визуальным нотным редакторам --- логичность, изящество и мощь !LilyPond захватывают каждого, кто его освоил. ---- [wiki:LessonsFiles Назад в раздел "Учебные материалы"] [wiki:WikiStart Назад на главную страницу]