% Шаблон для набору нот для акордеона чи баяна в LilyPond
% Докладніше: https://ivaniura.org.ua/soft/linux/lilypond-accordion-scores
%
% Заголовок: заміни Title і Composer у блоці \header на назву твору та автора.
%
% Права рука (RightHand) пишеться відносно (\relative), ліва (LeftHand) – абсолютно, у басовому ключі.
%
% БАСИ – звичайні ноти лівої руки: c4, f4, g,4 (кома – на октаву нижче).
%
% АКОРДИ – готові функції нижче, вони самі ставлять акорд у верхню частину басового стану:
%   \majorC c4   – мажорний акорд до
%   \minorA a8   – мінорний акорд ля
%   \septG g4    – септакорд соль
% Нота після функції задає лише тривалість, її висота не важлива.
% Позначки над акордом, штрихи й динаміку пиши після цієї ноти: \majorC c4^"M", \majorC c8-., \majorC c4\p
% Назви тональностей: Cis – до-дієз, Es – мі-бемоль, Bes – сі-бемоль тощо.
%
% АКОРД ВІД ІНШОГО БАСУ – перед акордом пиши \otherBass і ноту ряду, з якого береться акорд:
%   e4 \otherBass c \majorC c4   – бас мі, акорд до мажор: перед акордом з'явиться маленька (c) у дужках
%
% МІХ: \acpull – розжим, \acpush – зжим (пиши перед нотою правої руки).
%
% Приклад лівої руки:
%   c4 \majorC c4 | e4 \otherBass c \majorC c4 | g,4 \septG g4 | c4 \majorC c4 |

\version "2.26.0"

\header {
  title = "Title"
  composer = "Composer"
  tagline = ##f
  copyright = "ivaniura.org.ua"
}

% Акорди
majorCes = #(define-music-function (note) (ly:music?) #{ <ges ces' es'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorC = #(define-music-function (note) (ly:music?) #{ <g c' e'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorCis = #(define-music-function (note) (ly:music?) #{ <gis cis' eis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorDes = #(define-music-function (note) (ly:music?) #{ <as des' f'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorD = #(define-music-function (note) (ly:music?) #{ <a d' fis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorDis = #(define-music-function (note) (ly:music?) #{ <fisis ais dis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorEs = #(define-music-function (note) (ly:music?) #{ <g bes es'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorE = #(define-music-function (note) (ly:music?) #{ <gis b e'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorEis = #(define-music-function (note) (ly:music?) #{ <gisis bis eis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorFes = #(define-music-function (note) (ly:music?) #{ <fes as ces'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorF = #(define-music-function (note) (ly:music?) #{ <f a c'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorFis = #(define-music-function (note) (ly:music?) #{ <fis ais cis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorGes = #(define-music-function (note) (ly:music?) #{ <ges bes des'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorG = #(define-music-function (note) (ly:music?) #{ <g b d'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorGis = #(define-music-function (note) (ly:music?) #{ <gis bis dis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorAs = #(define-music-function (note) (ly:music?) #{ <as c' es'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorA = #(define-music-function (note) (ly:music?) #{ <a cis' e'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorAis = #(define-music-function (note) (ly:music?) #{ <ais cisis' eis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorBes = #(define-music-function (note) (ly:music?) #{ <bes d' f'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorB = #(define-music-function (note) (ly:music?) #{ <b dis' fis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
majorBis = #(define-music-function (note) (ly:music?) #{ <fisis bis disis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})

minorCes = #(define-music-function (note) (ly:music?) #{ <ges ces' eses'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorC = #(define-music-function (note) (ly:music?) #{ <g c' es'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorCis = #(define-music-function (note) (ly:music?) #{ <gis cis' e'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorDes = #(define-music-function (note) (ly:music?) #{ <as des' fes'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorD = #(define-music-function (note) (ly:music?) #{ <a d' f'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorDis = #(define-music-function (note) (ly:music?) #{ <ais dis' fis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorEs = #(define-music-function (note) (ly:music?) #{ <bes es' ges'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorE = #(define-music-function (note) (ly:music?) #{ <g b e'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorEis = #(define-music-function (note) (ly:music?) #{ <gis bis eis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorFes = #(define-music-function (note) (ly:music?) #{ <ases ces' fes'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorF = #(define-music-function (note) (ly:music?) #{ <as c' f'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorFis = #(define-music-function (note) (ly:music?) #{ <a cis' fis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorGes = #(define-music-function (note) (ly:music?) #{ <beses des' ges'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorG = #(define-music-function (note) (ly:music?) #{ <g bes d'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorGis = #(define-music-function (note) (ly:music?) #{ <gis b dis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorAs = #(define-music-function (note) (ly:music?) #{ <as ces' es'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorA = #(define-music-function (note) (ly:music?) #{ <a c' e'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorAis = #(define-music-function (note) (ly:music?) #{ <ais cis' eis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorBes = #(define-music-function (note) (ly:music?) #{ <bes des' f'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorB = #(define-music-function (note) (ly:music?) #{ <b d' fis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
minorBis = #(define-music-function (note) (ly:music?) #{ <fisis bis dis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})

septCes = #(define-music-function (note) (ly:music?) #{ <beses ces' es'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septC = #(define-music-function (note) (ly:music?) #{ <bes c' e'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septCis = #(define-music-function (note) (ly:music?) #{ <b cis' eis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septDes = #(define-music-function (note) (ly:music?) #{ <ces' des' f'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septD = #(define-music-function (note) (ly:music?) #{ <c' d' fis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septDis = #(define-music-function (note) (ly:music?) #{ <fisis cis' dis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septEs = #(define-music-function (note) (ly:music?) #{ <g des' es'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septE = #(define-music-function (note) (ly:music?) #{ <gis d' e'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septEis = #(define-music-function (note) (ly:music?) #{ <gisis dis' eis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septFes = #(define-music-function (note) (ly:music?) #{ <as eses' fes'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septF = #(define-music-function (note) (ly:music?) #{ <a es' f'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septFis = #(define-music-function (note) (ly:music?) #{ <ais e' fis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septGes = #(define-music-function (note) (ly:music?) #{ <ges bes fes'>$(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) #})
septGis = #(define-music-function (note) (ly:music?) #{ <gis bis fis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septAs = #(define-music-function (note) (ly:music?) #{ <as c' ges'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septA = #(define-music-function (note) (ly:music?) #{ <g a cis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septAis = #(define-music-function (note) (ly:music?) #{ <gis ais cisis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septBes = #(define-music-function (note) (ly:music?) #{ <as bes d'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septB = #(define-music-function (note) (ly:music?) #{ <a b dis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})
septBis = #(define-music-function (note) (ly:music?) #{ <ais bis disis'>$(ly:music-property note 'duration) $@(ly:music-property note 'articulations) #})

% Акорд від іншого басу
otherBass =
#(define-music-function (note) (ly:music?)
  #{
    \once \hide Staff.Stem
    \grace
    \parenthesize
    #note
  #})

% Керування міхом
acpull = \mark \markup { \musicglyph #"accordion.pull" }
acpush = \mark \markup { \musicglyph #"accordion.push" }

% Права рука
RightHand =  \relative c' {
  \clef "treble"
  \key c \major
  \time 2/4
  \tempo "Allegretto"
  \acpull
  \acpush

}

% Ліва рука
LeftHand = {
  \clef "bass"
  \key c \major
  \time 2/4
}


% The score definition
\score {
  <<
    \new PianoStaff <<
      \context Staff = "1" <<
        \context Voice = "RightHand" { \RightHand }
      >> \context Staff = "2" <<
        \context Voice = "LeftHand" { \LeftHand }
      >>
    >>

  >>
  \layout {
    % Без відступів зліва на назви партій
    indent = 0
    short-indent = 0
    % Останній рядок на всю ширину
    ragged-right = ##f
  }
}
\paper {
  #(set-paper-size "a4")
  top-margin = 10
  left-margin = 15
  right-margin = 15
  bottom-margin = 10
}