Создание табулатуры для гармошки с помощью программы Lilypond

Создание табулатуры для гармошки с помощью программы Lilypond

Введение

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

Идея: почему бы не совместить музыкальную нотацию, по которой можно играть на любом инструменте и которая не требует сопровождения аудио/видео материалами, с простой для восприятия табулатурой.

Установка

Для решения проблемы нам понадобится:

  • Lilypond (http://www.lilypond.org/windows.html) – консольная утилита, которая умеет генерировать музыкальную нотацию и midi-файлы из специально оформленных текстовых файлов.
  • Frescobaldi (http://frescobaldi.org/download.html) – графический интерфейс для Lilypond со всякими удобными плюшками, например, подсветка синтаксиса
  • Плагин для Lilypond (http://ubuntuone.com/7As8a1Jq9S7KpDLMdA7oHu) – дополняет функционал Lilypond для генерации табов

Данные программулины работают еще и в Linux, пользователям онного лучше воспользоваться  штатным пакетным менеджером для установки вышеперечисленного(плагин таки придется скачать).

Устанавливаем все по стандартным путям или куда захочется, главное запоминаем, куда поставили Lilypond.

Настройка

В системе Windows Frescobaldi не знает ничего о расположении Lilypond, поэтому нам придется ручками ткнуть, для этого его необходимо запустить, нажать на меню “Правка” -> “Настройки” и в открывшемся окне выбрать “Настройки Lilypond”. В группе элементов “Версии Lilypond” нажимаем кнопку “Добавить…” и в новом окне в поле “Команда Lilypond” вводим адрес или нажимаем кнопочку справа от текстового поля и ищем файл lilypond-windows.exe(адрес примерно такой: C:Program Files (x86)LilyPondusrbinlilypond-windows.exe). Все, осталось только понажимать кнопочки OK, увидеть, что в списке “Версии LilyPond” появилась соответствующая запись и закрыть настройки. Frescobaldi готов.

Frescobaldi

  1. Редактор: в него пишем код Lilypond
  2. Журнал: здесь появляется информация о ходе генерации и вывод ошибок синтаксиса
  3. Предпросмотр: отображение результата генерации
  4. Кнопка запуска генерации
  5. Midi-проигрыватель: будет проигрывать только если мы укажем генератору о необходимости создания midi-файла

Остальные его функции останутся за пределами данной статьи.

Да, снимок сделан в Ubuntu, но в Windows все выглядит и работает точно также.

Синтаксис Lilypond

Писать будем в редакторе Frescobaldi

Синтаксис рассмотрим на отрывке уже готовой мелодии:

version "2.16.0"
include "harptab.ly"

header {
title = “Always with me”
}
MyMelody = relative c” {
time 3/4
tempo 4=110
r4 f8 g8 a f c’4. ( | a8 ) g4 c | g f8 d a’4. | f8
}
HarmonicaTab “C” “richter” MyMelody

Теперь отдельно по каждому элементу:
version "2.16.0"
указание версии LilyPond, обязательная строка
include "harptab.ly"
подключение плагина, чтоб данный пример сработал, нужно положить плагин в папку с проектом

header {
title = "Always with me"
}

заголовок, название композиции, будет отображаться на сгенерированном файле

MyMelody = relative c'' {
time 3/4
tempo 4=110
r4 f8 g8 a f c'4. ( | a8 ) g4 c | g f8 d a'4. | f8
}

здесь переменной с именем MyMelody присваивается мелодия, мы сохраняем мелодию в переменную, и в дальнейшем сможем подставлять мелодию в разные места просто указав имя переменной(например, сделать табы, без табов и с гитарными аккордами на разных страницах)
сама мелодия заключена в фигурные скобки

relative c''

режим относительных высот с указанием ключа, ключ используется как начальная точка отсчета высот, с помощью него можно поднять/опустить на целое количество октав всю мелодию

time 3/4

вемя такта

tempo 4=110

темп метронома(влияет на скорость миди файла), здесь указано сколько длится четвертная нота

r4 f8 g8 a f c'4. ( | a8 ) g4 c | g f8 d a'4. | f8

непосредственно мелодия

r

пауза

c d e f g a b

ноты

ces cis

полутона, в данном примере нота C, -es обозначает спуск на пол тона(бемоль), -is обозначает подъем на пол тона(диез)

f8

цифра указывает длину ноты, 0 для целой, 2 для половинной, 4 для четвертной и т.д.

c'4

одинарная кавычка поднимает ноду на октаву, ,(запятая) опустит ноту на октаву
в режиме relative действуют на все последующие ноты

c'4.

точка сделает ноту длиннее на половину своей длины

c'4. ( | a8 )

скобки указывают легато, причем начинается легато с ноты перед скобками и заканчивается последней нотой внутри скобок

c | g

вертикальная черта – barcheck, не влияет на отображение, служит для проверки генератором соответствия длин нот длине такта, в случае ошибки выведет сообщение в журнале и подсветит строку, можно не использовать, тогда генератор не будет производить проверку

HarmonicaTab "C" "richter" MyMelody

обработчик из плагина, в качестве параметров передается ключ гармошки, строй и обрабатываемая мелодия(в данном примере мелодия представлена переменной, в которую мы поместили мелодию ранее)
Результат генерации:

Все бы ничего, но ноты у нас в основном высокие и расположены сверху, можно их опустить(правильнее не опустить ноты, а поднять нотный стан, что не изменит высот,  повлияет только на отображение) с помощью команды
clef "treble^8"
которая должна находится внутри мелодии:

MyMelody = relative c'' {
clef "treble^8"
time 3/4
tempo 4=110
r4 f8 g8 a f c'4. ( | a8 ) g4 c | g f8 d a'4. | f8
}

символ ^ поднимает, а _ опустает нотный стан на несколько шагов(в нашем случае 8)
Теперь все хорошо:

Транспонирование

Транспонирование мелодии производится с помощью команды

transpose <from> <to> <melody>

Пример:

MyMelody = transpose c ces relative c'' {

clef “treble^8”

time 3/4

tempo 4=110

r4 f8 g8 a f c’4. ( | a8 ) g4 c | g f8 d a’4. | f8

}

В данном примере происходит транспонирование всех нот мелодии на расстояние равное расстоянию между нотой C и C-бемоль, иначе говоря, спуск на пол тона.

Параметры плагина


В качестве ключа плагин принимает следующие значения:

  • “G”
  • “Ab”
  • “A”
  • “Bb”
  • “B”
  • “C”
  • “Db”
  • “D”
  • “Eb”
  • “E”
  • “F”
  • “F#”

В качестве строя:

  • “richter”
  • “natminor”

Кому мало одного ключа

Благодаря гибкости языка LilyPond можно создать табы сразу для гармошек разных ключей или строя, делается это очень просто: заворачиваем команду HarmonicaTab в другую команду HarmonicaTab

Пример:

HarmonicaTab “G” “richter” HarmonicaTab “C” “richter” MyMelody

Получаем:

верхней строкой идут ноты для ключа C, второй строкой для G, аналогично можно во второй команде поменять строй.

Создание MIDI

Для того, чтобы Lilypond создавал MIDI-файл, который можно прослушать с помощью встроенного проигрывателя во Frescobaldi, необходимо в конец нашего проекта добавить следующий код:

score {

new Staff with {

midiInstrument = “flute”

} MyMelody

midi {

}

}

где midiInstrument = “harmonica” – название инструмента, звуками которого будет играть проигрыватель, если гармошка не играет, скорее всего ее нет в вашем банке звуков, тогда инструмент можно заменить, например, на violin или flute

MyMelody – переменная, в которую мы поместили мелодию

Теперь при нажатии на кнопку генерации будет создаваться и обновляться MIDI-файл в папке с проектом.

Импорт из MIDI

Для импорта из MIDI с проектом Lilypond идет консольная утилитка, которая называется midi2ly,

Порядок действий такой:

  • запустить консоль(нажать Win+R, ввести cmd и нажать Enter)
  • открыть папку с установленным lilypond(адрес примерно такой: C:Program Files (x86)LilyPondusrbin)
  • в ней найти файл midi2ly.py(расширение может быть скрыто)
  • мышью перетащить за этот файлик в консоль, там появится полный путь к этому файлу
  • жмякнуть на пробел в консоли
  • аналогично бросить туда файлик .midi, добавится полный путь до миди-файла
  • нажать Enter

После данных махинаций в домашней папке(папка с именем пользователя или в WinXp “Мои документы”) появится файл с именем как у MIDI-файла и расширением ly.

Если все так и произошло, теперь можно его открыть во Frescobaldi, добавить include для плагина, сам плагин разместить в той же папке, что и файл проекта, ну и найти там подходящее место для вызова команды HarmonicaTab

Для пользователей Linux запустить терминал, ручками набрать команду midi2ly, поставить пробел и перетащить MIDI-файл в терминал, нажать Enter

Заключение

Данная статья раскрывает далеко не все возможности языка LilyPond.

Полное описание можно найти на официальном сайте: http://www.lilypond.org/doc/v2.16/Documentation/notation-big-page

Автор статьи: zeal18
2013-06-16

Комментарии

  1. Способ №2
    Нам понадобится:
    1) Принтер
    2) Мозг
    3) Ручка
    Печатаем ноты, ставим над ними дырочки и все!
    Честно говоря не хочется разбираться во всем этом. Тем, у кого с нотами проблемы это не поможет. А те, кто нотки кое – как хоть знают не будут заморачиваться с прогами

  2. да, а чтоб транспонировать, можем еще распечатать листочек, а другу “Почтой России” отправим, старая закалка – это хорошо, но мы в век цифровых технологий живем, и использование этих технологий открывает ряд преимуществ, думаю, все и так знают каких

  3. Человек написал статью, поделился знаниями, показал как можно. За это ему БОЛЬШОЕ СПАСИБО. Это +1 способ. Нравится – используем, есть лучше – используем лучше. В чем проблема?
    П.С. Вдвойне приятно, что все есть под Линух.

  4. Переломал весь моСк и пальцы.
    Детёныш взялся за гармонику. Ноты в табулары гармоники переложить не могу.
    ___ _Пример С ОШИБКАМИ_ ___
    __ _Выложи, плз, архивом._ ___
    Кавычки: не те.
    Ошибка: \HarmonicaTab “C” “richter”
    Ошибка: сама строка мелодии.
    \include “harptab.ly” в той же папке – не работают “циферьки”. Нет их под нотами

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

    Дмитрий.
    [win7x64]
    mr-dx (a) yandex.ru

Добавить комментарий