Создание табулатуры для гармошки

Введение

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

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

Установка

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

  • 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)\LilyPond\usr\bin\lilypond-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)\LilyPond\usr\bin\)
  • в ней найти файл 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

 

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

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

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

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