Kame(b)の音楽にまつわる何か

Kame(b)の主に音楽にまつわる適当なことを記します。

Moment's Noticeの楽譜を書く(6)

リズムを追加します。五線の上と下の両方にリズムを書けるようにテンプレート化。でも、そのせいで上下の間隔が変になることがあるので、例えば下側しか書かないなら上側に関係する記載は削除またはコメントアウトするのが良さげですね。具体的には、\Scoreの中の\new RhythmicStaff \with {ごにょごにょ}を削除またはコメントアウトすればOK。

あとmyCodaとかmyMarkですが微調整を簡単にするための文章を入れています(現在はコメントアウト中)。必要に応じてコメント化を解除して弄ります。

面倒なのでコンパイル後の画像は省略!リハーサルマークBやCと、1括弧や2括弧の線の関係が気に食わないですが、面倒なのでこの曲に関してはひとまずこれで完成かな。

\version "2.19.83"

#(set-global-staff-size 24)

\include "incld/lilyjazz.ily"
\include "incld/jazzchords.ily"
\include "incld/jazzextras.ily"

myToCoda = {
  \once \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
  \once \override Score.RehearsalMark.self-alignment-X = #RIGHT
  \mark \markup {\fontsize #3 "to" \raise #1.4 
                 \fontsize #-3 \musicglyph #"scripts.coda" }
}

myCoda = {
  %\once \override Score.RehearsalMark.self-alignment-X = #RIGHT
  \mark \markup { \fontsize #-3 \musicglyph #"scripts.coda"}
}

mySegno = {
  \mark \markup { \fontsize #-3 \musicglyph #"scripts.segno"}
}

myMark =
#(define-music-function
  (reharthalText)
  (markup?)
  #{
    %\once \override Score.RehearsalMark.self-alignment-X = #RIGHT
    %\once \override Score.RehearsalMark.X-offset = #-3
    \mark \markup {\rounded-box \fontsize #1 #reharthalText }
  #})


myMarkWithSegno =
#(define-music-function
  (reharthalText)
  (markup?)
  #{
    %\once \override Score.RehearsalMark.self-alignment-X = #RIGHT
    %\once \override Score.RehearsalMark.X-offset = #-3
    \mark \markup {\fontsize #-3 \musicglyph #"scripts.segno"
                   \raise #-1.4 \rounded-box \fontsize #2 #reharthalText }
  #})


\header {
  title =  \markup {\fontsize #3 "Moment's Notice"}
  composer = \markup {\fontsize #3 "John Coltrane"}
  meter = \markup {\fontsize #3 "Swing"}
  tagline = ""
  copyright = ""
}

\paper {
  indent = 0
  left-margin = 15\mm
}

myMelody = \relative c'' {
  \clef treble
  \key ees \major
  \time 4/4

  \myMark "Intro"
  r8 g4. g4-. g-. | g4. f8 g f r bes~ | bes1 | R | \break
  r8 f4. f4-. f-. | f4. ees8 f ees r aes~ | aes1 | g2 f | \break
  ees1 | c' | bes2 g | ees f| \break
  g2 ees | f4. ees8 d ees f g | \bar "||"

  ees1 | f | g | f| \break
  ees2 f | g f | ees4 r r2 | R1 | \break

  \myMarkWithSegno "A"
  \repeat volta 2 {
    r8 g4. g4-. r8 g~ | g4 g-. r8 g-. r4 | r8 g4. aes4-. bes-. | bes4. aes8~ aes2 | \break
    r8 f4. f4-. r8 f~ | f4 f-. r8 f-. r4 | r8 f4. g4-. aes-. |  g2 f |  \bar "||" \break
  }
  \alternative {
    {
      \myMark "B"
      ees1 | c' | bes2 g | ees f | \break
      r4 g aes2 | bes2 ces4. des8 ~ | des4. bes8 ges ees ges ees~ | ees4. f8~ f4 r | \break
    }
    {
      \myMark "C"
      ees1 | c' | bes2 g | ees f |  \break
      g2 ees | ees f | \bar "||"
    }
  }

  \myMark "D"
  ees1 | f | g | f | \myToCoda \break
  ees2 f | g f | ees4 r r2 | R1_"D.S. al Coda." \bar "||" \break
  
  \myCoda
  ees2 f | g f | ges1\fermata | R1 \bar "|."
  
}


myHarmonies = \chordmode {  
  e2:min7 a:7 | f:m7 bes:7 |ees1:maj7 |aes2:min7 des:7 |
  d2:min7 g:7 | ees:m7 aes:7 | des1:maj7 | d2:min7.5- g:7 |
  c1:min7 | bes2:m7 ees:7 | aes1:maj7 |des:7 |
  g2:7 c:7 | f:min7 bes:7 |
  ees1/bes | f:min/bes | g:min/bes | f:min/bes | ees2/bes f:min/bes | g:min/bes f:min/bes | ees1 | R1 |

  \repeat volta 2 {
    e2:min7 a:7 | f:m7 bes:7 |ees1:maj7 |aes2:min7 des:7 |
    d2:min7 g:7 | ees:m7 aes:7 | des1:maj7 | d2:min7.5- g:7 |
  }
  \alternative {
    {
      c1:min7 | bes2:m7 ees:7 | aes1:maj7 |des:7 |
      g1:min7 | aes2:m7 des:7 | ges1:maj7 | f2:min7 bes:7 |
    }
    {
      c1:min7 | bes2:m7 ees:7 | aes1:maj7 |des:7 |
      g2:min7 c:7 | f:min7 bes:7|    
    }
  }  

  ees1/bes | f:min/bes | g:min/bes | f:min/bes |
  ees2/bes f:min/bes | g:min/bes f:min/bes | ees1 | R1 |

  ees2/bes f:min/bes | g:min/bes f:min/bes | ees1:9+ | R1 |
}

myUpperRhythm = {
  s1*14
  r8 c8 r4 c2 | r8 c8 r4 c2 | r8 c8 r4 c2 | r8 c8 r4 c2 |
  r4 c4 r4 c4 | r4 c4 r4 c4 | c4 s2.| s1
  s1*8
  s1*8
  s1*6
  r8 c8 r4 c2 | r8 c8 r4 c2 | r8 c8 r4 c2 | r8 c8 r4 c2 |
  r4 c4 r4 c4 | r4 c4 r4 c4 | c4 s2.| s1
  r8 c8 r4 c2
  r8 c8 r4 c2
}

myLowerRhythm = {
}


\score {
  <<
    %コード
    \new ChordNames {
      \myHarmonies
    }
    %譜の上に記載するリズム
    \new RhythmicStaff  \with{      %リズム譜をベースにする
      \remove "Time_signature_engraver"     %拍子記号を消す
      \remove "Staff_symbol_engraver"       %譜の線を消す
      \override VerticalAxisGroup.staff-staff-spacing.padding = #0.5    %下の譜との間隔を小さく
      \override NoteHead.style = #'slash    %符頭はリズム用のマーク
      \override Stem.length = #2.5      %符幹を短く
      fontSize = #-6                %音符小さく
    }{
      \myUpperRhythm                %リズム本体(上記参照)
    }
    %譜本体
    \new Staff \with {
      \override VerticalAxisGroup.staff-staff-spacing.padding = #0.5    %下の譜との間隔を小さく
    }{
      \new Voice  {
         \myMelody              %音符本体(上記参照)
      }
    }
    %譜の下に記載するリズム
    \new RhythmicStaff  \with{      %リズム譜をベースにする
      \remove "Time_signature_engraver"     %拍子記号を消す
      \remove "Staff_symbol_engraver"       %譜の線を消す
      \override VerticalAxisGroup.staff-staff-spacing.padding = #0.5    %下の譜との間隔を小さく
      \override NoteHead.style = #'slash    %符頭はリズム用のマーク
      \override Stem.length = #2.5      %符幹を短く
      fontSize = #-6                %音符小さく
      \override Stem.direction = #down      %符幹は下向き
    }{
      \myLowerRhythm                %リズム本体(上記参照)
    }
  >>
  
  \layout {
    \override Score.BarNumber.break-visibility = #all-invisible %小節番号を消す
    \override Score.Clef.break-visibility = #all-invisible      %2段目以降音部記号を消す
    \override Score.KeySignature.break-visibility = #all-invisible  %2段目以降調性記号を消す
    \override Score.SystemStartBar.collapse-height = #1     %左端の縦線を書く
    
    \set Score.startRepeatType = "[|:"      %リピートの開始マークは、髭付き
    \set Score.endRepeatType = ":|]"        %リピートの終了マークは、髭付き
    \set Score.doubleRepeatType = ":|][|:"  %リピートの開始・終了が隣り合うところも、髭付き
  }
}