Changes between Version 5 and Version 6 of lessons/LilyPondGuitar


Ignore:
Timestamp:
Oct 2, 2009, 2:06:05 AM (15 years ago)
Author:
uri
Comment:

Доделывать пока не буду

Legend:

Unmodified
Added
Removed
Modified
  • lessons/LilyPondGuitar

    v5 v6  
    11= Набор гитарных нот в !LilyPond =
    22
    3 В этом уроке я расскажу, как можно добавлять к нотам обозначения гитарной аппликатуры. В качестве примера мы возьмём упражнение 189 из классического учебника Петра Спиридоновича Агафошина "Школа игры на шестиструнной гитаре". В учебнике ноты выглядят вот так:
     3== О чём этот урок ==
     4
     5В этом уроке я расскажу, как можно добавлять к нотам обозначения гитарной аппликатуры: пальцы правой и левой руки, номера струн, позиции. В качестве примера мы возьмём упражнение 189 из классического учебника Петра Спиридоновича Агафошина "Школа игры на шестиструнной гитаре". В учебнике ноты выглядят вот так:
    46
    57[[Image(Agafoshin189-source.jpeg)]]
     8
     9== Сам нотный текст ==
    610
    711Наберём сами ноты. Это несложно, надо только обратить внимание на направление штилей в третьем такте и вид некоторых тактовых черт:
     
    5357[[Image(Agafoshin189-initial.png)]]
    5458
     59== Пальцы левой руки ==
     60
    5561Теперь начнём добавлять аппликатурные обозначения. Начнём с самого простого — указания пальцев левой руки. Для этого достаточно после каждой ноты поставить дефис и номер пальца, вот так:
    5662
     
    7581[[Image(Agafoshin189-left-fingers.png)]]
    7682
    77 Теперь добавим обозначения позиции. Так как мы хотим, чтобы (как и в исходных нотах, набранных вручную) вдоль нот, которые надо играть в указанной позиции, тянулся пунктир, нам придётся переопределить стандартное значение переменной {{{TextSpanner}}}. Делается это совсем просто: там, где нужно расположить указание позиции, даём команду {{{\override TextSpanner #'(bound-details left text) = "II "}}}, где {{II}} — это номер нужной позиции; после ноты, с которой должен начинаться пунктир, даём команду {{{\startTextSpan}}}, а после ноты, на которой пунктир должен закончиться — команду {{{\stopTextSpan}}}.
     83== Обозначения позиций ==
     84
     85Теперь добавим обозначения позиции. Так как мы хотим, чтобы (как и в исходных нотах, набранных вручную) вдоль нот, которые надо играть в указанной позиции, тянулся пунктир, нам придётся переопределить стандартное значение переменной {{{TextSpanner}}}. Делается это совсем просто: там, где нужно расположить указание позиции, даём команду {{{\override TextSpanner #'(bound-details left text) = "II "}}}, где {{{II}}} — это номер нужной позиции; после ноты, с которой должен начинаться пунктир, даём команду {{{\startTextSpan}}}, а после ноты, на которой пунктир должен закончиться — команду {{{\stopTextSpan}}}.
    7886
    7987Пунктир, предлагаемый !LilyPond по умолчанию, показался мне крупноватым, и я сделал его более мелким командой {{{\override TextSpanner #'dash-period = #2}}}. Кроме того, в книжке он выровнен вертикально по центру римской цифры, обозначающей позицию; добиться того же в !LilyPond можно командой {{{\override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER}}}.
     
    106114
    107115[[Image(Agafoshin189-positions.png)]]
     116
     117== Номера струн ==
     118
     119Добавить одиночные обозначения струн (там, где они указаны в книжке — к аккорду во втором такте) совсем несложно: для этого достаточно написать номер струны после ноты через обратный слэш:
     120{{{
     121...
     122<d\4 fis\3 a\2>
     123...
     124}}}
     125
     126А вот с обозначениями струн, которые захватывают несколько нот, всё несколько хитрее. На данный момент (октябрь 2009 года, я использую версию 2.12.1) в !LilyPond ещё не добавили для этого специальную команду, хотя такие разговоры ведутся. Поэтому нам придётся определить собственный макрос:
     127{{{
     128stringNumberSpanner =
     129#(define-music-function (parser location StringNumber) (string?)
     130  #{
     131    \override TextSpanner #'style = #'dashed-line
     132    \override TextSpanner #'dash-period = #1
     133    \override TextSpanner #'font-size = #-5
     134    \override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER
     135    \override TextSpanner #'(bound-details left text) = \markup { \circle \number $StringNumber }
     136  #})
     137}}}
     138
     139*Текст всё ещё дорабатывается, не стоит пока его использовать как руководство к действию =)*