| Version 7 (modified by uri, 16 years ago) (diff) |
|---|
Текст всё ещё дорабатывается, не стоит пока его использовать как руководство к действию =)
Набор гитарных нот в LilyPond
О чём этот урок
В этом уроке я расскажу, как можно добавлять к нотам обозначения гитарной аппликатуры: пальцы правой и левой руки, номера струн, позиции. В качестве примера мы возьмём упражнение 189 из классического учебника Петра Спиридоновича Агафошина "Школа игры на шестиструнной гитаре". В учебнике ноты выглядят вот так:
Сам нотный текст
Наберём сами ноты. Это несложно, надо только обратить внимание на направление штилей в третьем такте и вид некоторых тактовых черт:
\version "2.12.1"
% European system (A B H C D E F G)
\include "deutsch.ly"
global = {
\key d \major
\time 2/4
}
One = \new Voice {\relative c'' {
\voiceOne
a16 h cis d e fis g a
h8 <d, fis a> <d fis a> r
\bar "||"
\stemDown
c'16 a fis e dis fis dis h
\stemUp
c a fis e dis fis dis h
\bar "|."
}}
Two = \new Voice {\relative c' {
\voiceTwo
a4 a
d2.
}}
\score {
\new Staff
<<
\global
\One
\\
\Two
>>
\layout{}
\midi{}
}
Должно получиться что-то примерно такое:
Пальцы левой руки
Теперь начнём добавлять аппликатурные обозначения. Начнём с самого простого — указания пальцев левой руки. Для этого достаточно после каждой ноты поставить дефис и номер пальца, вот так:
...
One = \new Voice {\relative c'' {
\voiceOne
a16-2 h-4 cis-1 d-2 e-4 fis-1 g-2 a-4
h8-4 <d,-3 fis-2 a-1> <d fis a> r
\bar "||"
\stemDown
c'16-2 a-4 fis-1 e-3 dis-2 fis-1 dis h-3
\stemUp
c-4 a-1 fis-4 e-2 dis-1 fis-4 dis h-2
\bar "|."
}}
...
Выглядеть это станет вот так:
Обозначения позиций
Теперь добавим обозначения позиции. Так как мы хотим, чтобы (как и в исходных нотах, набранных вручную) вдоль нот, которые надо играть в указанной позиции, тянулся пунктир, нам придётся переопределить стандартное значение переменной TextSpanner. Делается это совсем просто: там, где нужно расположить указание позиции, даём команду \override TextSpanner #'(bound-details left text) = "II ", где II — это номер нужной позиции; после ноты, с которой должен начинаться пунктир, даём команду \startTextSpan, а после ноты, на которой пунктир должен закончиться — команду \stopTextSpan.
Пунктир, предлагаемый LilyPond по умолчанию, показался мне крупноватым, и я сделал его более мелким командой \override TextSpanner #'dash-period = #2. Кроме того, в книжке он выровнен вертикально по центру римской цифры, обозначающей позицию; добиться того же в LilyPond можно командой \override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER.
В результате соответствующий фрагмент исходника приобретает следующий вид:
...
One = \new Voice {\relative c'' {
\voiceOne
a16-2 h-4 cis-1 d-2 e-4 fis-1 g-2 a-4
h8-4 <d,-3 fis-2 a-1> <d fis a> r
\bar "||"
\stemDown
\textSpannerUp
\override TextSpanner #'dash-period = #2
\override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER
\override TextSpanner #'(bound-details left text) = "VII "
c'16-2\startTextSpan a-4 fis-1 e-3 dis-2 fis-1 dis h-3
\stemUp
c-4\stopTextSpan a-1
\override TextSpanner #'(bound-details left text) = "VI "
fis-4\startTextSpan e-2 dis-1 fis-4 dis h-2\stopTextSpan
\bar "|."
...
}}
В результате получается вот что:
Номера струн
Добавить одиночные обозначения струн (там, где они указаны в книжке — к аккорду во втором такте) совсем несложно: для этого достаточно написать номер струны после ноты через обратный слэш:
... <d\4 fis\3 a\2> ...
А вот с обозначениями струн, которые захватывают несколько нот, всё несколько хитрее. На данный момент (октябрь 2009 года, я использую версию 2.12.1) в LilyPond ещё не добавили для этого специальную команду, хотя такие разговоры ведутся. Поэтому нам придётся определить собственный макрос:
stringNumberSpanner =
#(define-music-function (parser location StringNumber) (string?)
#{
\override TextSpanner #'style = #'dashed-line
\override TextSpanner #'dash-period = #1
\override TextSpanner #'font-size = #-5
\override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER
\override TextSpanner #'(bound-details left text) = \markup { \circle \number $StringNumber }
#})
Текст всё ещё дорабатывается, не стоит пока его использовать как руководство к действию =)
Attachments (10)
-
Agafoshin189-source.jpeg
(25.3 KB) -
added by uri 16 years ago.
Агафошин, пример 189 --- исходные ноты в книжке
-
Agafoshin189-initial.png
(11.9 KB) -
added by uri 16 years ago.
Агафошин, пример 189 --- сам нотный текст
-
Agafoshin189-left-fingers.png
(13.9 KB) -
added by uri 16 years ago.
Агафошин, пример 189 --- добавлены обозначения пальцев левой руки
-
Agafoshin189-positions.png
(21.5 KB) -
added by uri 16 years ago.
Агафошин, пример 189 --- добавлены обозначения позиций
-
Agafoshin189-without-string-lines.png
(15.6 KB) -
added by uri 16 years ago.
Агафошин, пример 189 --- добавлены одиночные обозначения струн
-
Agafoshin189-with-string-lines.png
(15.5 KB) -
added by uri 16 years ago.
Агафошин, пример 189 --- добавлены обозначения струн для групп нот
-
Agafoshin189-collisions.png
(19.5 KB) -
added by uri 16 years ago.
Агафошин, пример 189 --- добавлены обозначения струн в третьем и четвёртом тактах
-
Agafoshin189.png
(19.2 KB) -
added by uri 16 years ago.
Агафошин, пример 189 --- добавлен готовый нотный пример
-
Agafoshin189-stem-support.png
(16.9 KB) -
added by uri 16 years ago.
Агафошин, пример 189 --- обозначения струн больше не наезжают на нотные штили
-
Agafoshin189.ly
(2.3 KB) -
added by uri 16 years ago.
Агафошин, пример 189 --- исходник
Download all attachments as: .zip




