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

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

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

さらに整えます。

タイトルと作曲者とリズムの文字をもうちょい大きくする

こんな感じで。

\header {
  title =  \markup {\fontsize #3 "Moment's Notice"}
  composer = \markup {\fontsize #3 "John Coltrane"}
  meter = \markup {\fontsize #3 "Swing"}
  tagline = ""
  copyright = ""
}
コーダを書く

コーダを書き忘れてました。コーダの音符やリズムは通常どおり書きます。そしてリハーサルマークとして、Toコーダと、コーダマークを書きます。LilyJazzを適用したLilyPondの標準だとサイズ等がフィットしないので、myToCodamyCodaという2つのオリジナルのマークを定義します。

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 = {
  \mark \markup { \fontsize #-3 \musicglyph #"scripts.coda"}
}

そして、譜面コードの中で\myToCoda\myCodaと指定します。

リハーサルマークももうちょい大きくする

リハサールマークをもうちょい大きくします。こな感じで書けばOKです。

\mark \markup {\box \fontsize #1 "A"}

でも、毎回これを書くのは面倒なので、オリジナルのコマンドを定義します。ついでに、ボックス囲みを、角が丸いタイプに変更します。

myMark =
#(define-music-function
  (reharthalText)
  (markup?)
  #{
    \mark \markup {\rounded-box \fontsize #1 #reharthalText }
  #})

このコマンドを使うには、譜面コードの中で\myMark "A"と書きます。

セーニョマークを書く

Codaマークと同様に以下のオリジナルのマークを定義します。

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

使い方は、譜面コードの中で\mySegnoと指定します。

多くの場合、セーニョマークはリハーサルマークと位置が重なりますが、\mySegno \myMark "B"のように書いても、後者は無視されちゃいます。そこで、セーニョマーク付きのリハーサルマークのコマンドを新たに定義します。

myMarkWithSegno =
#(define-music-function
  (reharthalText)
  (markup?)
  #{
    \mark \markup {\fontsize #-3 \musicglyph #"scripts.segno"
                   \raise #-1.4 \rounded-box \fontsize #2 #reharthalText }
  #})

このコマンドを使うには、譜面コードの中で\myMarkwithSegno "A"と書きます。

ところで、セーニョマーク→リハーサルマークの順番が一般的なんですよね?

ダルセーニョを書く

これは、譜面の音符や休符の後ろに_"D.S. al Coda."のように書きます。なお、ToCodaは5線の上に書くけど、D.S.は5線の下に書く、という流儀でやってます。

まとめる

今までのところをまとめると、以下のようなソースコード(MomentsNotice_v4.ly)になります。ついでに一部コード間違えていたところを修正。

\version "2.19.82"

#(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 = {
  \mark \markup { \fontsize #-3 \musicglyph #"scripts.coda"}
}

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

myMark =
#(define-music-function
  (reharthalText)
  (markup?)
  #{
    \mark \markup {\rounded-box \fontsize #1 #reharthalText }
  #})


myMarkWithSegno =
#(define-music-function
  (reharthalText)
  (markup?)
  #{
    \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
}

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 | 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 |
}


\score {
  <<
    \new ChordNames {
      \myHarmonies
    }
    \new Voice  {
      \myMelody
    }
  >>
  \layout {
    \override Score.BarNumber.break-visibility = #all-invisible
    \override Score.Clef.break-visibility = #all-invisible
    \override Score.KeySignature.break-visibility = #all-invisible
    \override Score.SystemStartBar.collapse-height = #1
    
    \set Score.startRepeatType = "[|:"
    \set Score.endRepeatType = ":|]"
    \set Score.doubleRepeatType = ":|][|:"
  }
}

これをコンパイルすると以下のようになりました。

f:id:kamebass:20190325231941p:plain
Mometnt's Notice 楽譜ver.4 (page 1)
f:id:kamebass:20190325232033p:plain
Mometnt's Notice 楽譜ver.4 (page 2)

リハーサルマークBやCと、1括弧や2括弧の線の関係が気に食わないですね~。これは、他の要素(リズム指定など)を追加した後に検討します。