Набір нот для баяна чи акордеона має свою специфіку: треба розставити зміни міху, аплікатуру, регістри, а ще врахувати готову басову систему – тобто позначати акорди від іншого басу. У кожному нотному редакторі це робиться по-своєму, а сьогодні розберемо, як усе це зробити в LilyPond.

Якщо ти тільки знайомишся з програмою, спершу прочитай як набирати ноти в LilyPond: там є основи, зокрема й аплікатура. Усі приклади нижче я перевірив на свіжій версії LilyPond.

Зміна міху

У LilyPond уже є готові символи розжиму й зжиму міху, їх лише треба вивести:

\mark \markup { \musicglyph "accordion.pull" } % розжим
\mark \markup { \musicglyph "accordion.push" } % зжим

Щоб не писати щоразу такий довжелезний рядок заради одного символу, присвоюємо кожному з них коротку змінну. Змінні оголошуються на початку файлу, до нот:

acpull = \mark \markup { \musicglyph "accordion.pull" }
acpush = \mark \markup { \musicglyph "accordion.push" }

Тепер для зміни міху достатньо написати \acpull або \acpush перед потрібною нотою:

\relative c'' { \acpull c4 d e f \acpush g f e d \acpull c1 }

Позначки зміни міху в LilyPond

Ліва рука: баси й акорди

Партію лівої руки я пишу на окремому нотному стані в басовому ключі, і без \relative – абсолютно. Так октави завжди під контролем: баси лягають у нижню частину нотного стану, акорди – у верхню, як і заведено в нотах для акордеона.

Баси пишуться звичайними нотами: c4 – до малої октави, g,4 – соль великої (кома опускає на октаву). А от набирати щоразу акорд нота за нотою, наприклад <g c' e'>4, втомлює. Тому для кожного акорду я зробив окрему функцію:

majorC = #(define-music-function (note) (ly:music?) #{ <g c' e'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septG = #(define-music-function (note) (ly:music?) #{ <g b f'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})

Функція сама ставить потрібні ноти акорду, а від ноти після неї бере лише тривалість. Тепер акорд до мажор четвертною записується як \majorC c4, восьмою – \majorC c8. Висота цієї ноти не важлива, але я для наочності пишу ту саму літеру, що й назва акорду.

Друга частина функції, $@(ly:music-property note 'articulations), переносить на акорд усе, що написано після ноти. Тож позначки над акордом, штрихи й динаміку пишеш як завжди: \majorC c4^"M" поставить над акордом літеру «М», \majorC c8-. – стаккато, \majorC c4\p – піано. Без цієї частини функція мовчки відкидала б усі позначки.

Акорд від іншого басу

Буває, що акорд береться не від свого басу: наприклад, бас мі, а акорд до мажор. Щоб акордеоніст одразу бачив, з якого ряду брати акорд, перед ним ставлять маленьку ноту в дужках. Вона має бути без штиля і не враховуватися в розмір такту. Вручну це виглядало б так:

\once \hide Staff.Stem \grace \parenthesize c

Тут \once \hide Staff.Stem ховає штиль у однієї ноти, \grace робить її маленькою форшлаговою нотою, яка не враховується в розмір, а \parenthesize бере в дужки. Не дуже зручно, правда? Тож загортаємо все це в маленьку функцію:

otherBass =
#(define-music-function (note) (ly:music?)
  #{
    \once \hide Staff.Stem
    \grace
    \parenthesize
    #note
  #})

Тепер позначка «від іншого басу» ставиться прямо перед акордом: e4 \otherBass c \majorC c4 – бас мі, а потім акорд до мажор з маленькою (c) у дужках. Ось як це виглядає в партитурі для двох рук разом зі зміною міху:

\new PianoStaff <<
  \new Staff \relative c' {
    \clef "treble" \time 2/4
    \acpull e4 g | c2 | \acpush b4 g | e2 |
  }
  \new Staff {
    \clef "bass" \time 2/4
    c4 \majorC c4^"M" |            % бас до і акорд до мажор з позначкою
    e4 \otherBass c \majorC c4 |   % бас мі, акорд до мажор
    g,4 \septG g4 |                % бас соль, септакорд соль
    c4 \majorC c4 |
  }
>>

Баси, акорди і акорд від іншого басу в лівій руці акордеона в LilyPond

Колись я обіцяв зробити окрему функцію для кожного басу, щоб у нотах залишалися тільки короткі назви. Обіцянку виконую 😉 Готові функції для всіх мажорних, мінорних і септакордів є в моєму шаблоні, який можна завантажити наприкінці статті.

Регістри

Мало хто знає, але LilyPond уміє малювати й позначки регістрів акордеона – ті самі кружечки з крапками. Для цього на початку файлу підключаємо модуль регістрів, а потім перед нотами пишемо \discant з кодом регістра:

#(use-modules (lily accreg))

\relative c'' {
  \discant "10" c2 c
  \discant "121" c2 c
  \discant "1+0" c2 c
  \discant "131" c1
}

Позначки регістрів акордеона в LilyPond

Цифри в коді показують, скільки голосів якого ряду увімкнено, а «+» – додатковий голос. Для лівої клавіатури є аналогічні команди \stdBass та \freeBass. Повний перелік комбінацій є в документації LilyPond.

Готовий шаблон для акордеона

Усе описане вище я зібрав в один шаблон, з якого починаю кожну нову партитуру: дві руки на окремих нотних станах, функції для всіх мажорних, мінорних і септакордів, \otherBass, позначки міху, заголовок і поля сторінки. На початку файлу є короткий опис українською, як цим усім користуватися.

Шаблон для акордеона в LilyPond (accordion-template.ly) Звантажити

Відкрий його у Frescobaldi, допиши ноти в RightHand і LeftHand – і можна компілювати. А щоб шаблон завжди був під рукою, збережи його у Frescobaldi як сніпет: тоді він з'явиться в меню створення нового файлу.

Що далі

З цими кількома рядками на початку файлу набір нот для акордеона стає майже таким самим швидким, як і для будь-якого іншого інструмента. Ще більше можливостей LilyPond і порівняння з MuseScore – у статті про безкоштовні нотні редактори, а всі матеріали зібрані за позначками LilyPond та Набір нот.

А як ти позначаєш баси й міх у своїх нотах? Пиши в коментарях 🙂