4.6.3 スタイル シート

LilyPond が作り出す出力にはさまざまな変更を加えることができます (詳細は 出力を調整する を参照してください)。しかしながら、調整を加えたい入力ファイルがたくさんあるとしたらどうでしょう?また、単に調整を実際の音楽表記から分離したいとしたらどうでしょう?これはとても簡単なことです。

以下の例を見てみましょう。#() を持つ部分を理解できなくても心配しないでください。Scheme を用いた高度な調整 で説明されています。

mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
  #:line(#:dynamic "mp" #:text #:italic "dolce" )))
tempoMark = #(define-music-function (parser location markp) (string?)
#{
  \once \override Score . RehearsalMark #'self-alignment-X = #left
  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
  \mark \markup { \bold $markp }
#})

\relative c'' {
  \tempo 4=50
  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
  \tempoMark "Poco piu mosso"
  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
}

[image of music]

この例には出力が重なり合うという問題がいくつかあり、オブジェクトを移動させる のテクニックを使ってそれらを修正しています。そこで、さらに mpdolce 定義と tempoMark 定義に関して何かしてみましょう。それらは望みの出力を作り出していますが、それらを別の楽曲で使いたいとします。単純にそれらを各ファイルの先頭部分にカット&ペーストすることもできますが、わずらわしいです。その方法では定義は依然として入力ファイルの中にあり、私は個人的にすべての #() は何か醜いと感じます。それらを他のファイルの中に隠すことにしましょう:

%%% save this to a file called "definitions.ly"
%%% これを "definitions.ly" というファイル名で保存してください
mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
  #:line(#:dynamic "mp" #:text #:italic "dolce" )))
tempoMark = #(define-music-function (parser location markp) (string?)
#{
  \once \override Score . RehearsalMark #'self-alignment-X = #left
  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
  \mark \markup { \bold $markp }
#})

今度は音楽ファイルを変更しましょう (このファイルを ‘"music.ly"’ として保存してください)。

\include "definitions.ly"

\relative c'' {
  \tempo 4=50
  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
  \once \override Score.RehearsalMark #'padding = #2.0
  \tempoMark "Poco piu mosso"
  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
}

[image of music]

これで前よりも良くなりましたが、いくつか変更を加えることにします。グリッサンド (訳者: 第 1 小節の C シャープと A の間) は見え難いので、もっと太く、符頭に近づけます。メトロノーム記号を、最初の音符の上ではなく、音部記号の上に持ってきます。最後に、私の作曲の先生は ‘C’ 拍子記号を嫌っているので、‘4/4’ に変更した方が良さそうです。

music.ly’ には変更を加えないでください。‘definitions.ly’ を以下のように書き換えます:

%%%  definitions.ly
mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
tempoMark = #(define-music-function (parser location markp) (string?)
#{
  \once \override Score . RehearsalMark #'self-alignment-X = #left
  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
  \mark \markup { \bold $markp }
#})

\layout{
  \context { \Score
    \override MetronomeMark #'extra-offset = #'(-9 . 0)
    \override MetronomeMark #'padding = #'3
  }
  \context { \Staff
    \override TimeSignature #'style = #'numbered
  }
  \context { \Voice
    \override Glissando #'thickness = #3
    \override Glissando #'gap = #0.1
  }
}

[image of music]

もっと良くなりました!今度はこれを公表したいとします。私の作曲の先生は ‘C’ 拍子記号を嫌っていますが、私は幾分好きです。現在の definitions.lyweb-publish.ly にコピーして、それにを変更を加えてみましょう。この音楽はスクリーンに表示される PDF を作り出すことを意図したものなので、出力のフォントを全体に大きくすることにします。

%%%  definitions.ly
mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
tempoMark = #(define-music-function (parser location markp) (string?)
#{
  \once \override Score . RehearsalMark #'self-alignment-X = #left
  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
  \mark \markup { \bold $markp }
#})

#(set-global-staff-size 23)
\layout{
  \context { \Score
    \override MetronomeMark #'extra-offset = #'(-9 . 0)
    \override MetronomeMark #'padding = #'3
  }
  \context { \Staff
  }
  \context { \Voice
    \override Glissando #'thickness = #3
    \override Glissando #'gap = #0.1
  }
}

[image of music]

音楽ファイルの中では、単に \include "definitions.ly"\include "web-publish.ly" に置き換えるだけです。もちろん、これをもっと便利なようにすることができます。‘definitions.ly’ ファイルには mpdolcetempoMark の定義だけを持たせて、‘web-publish.ly’ ファイルには上で記述した \layout セクションだけを持たせ、‘university.ly’ ファイルには私の先生の好む出力を作り出すための調整だけを持たせます。‘music.ly’ の先頭部分は以下のようになります:

\include "definitions.ly"

%%%  Only uncomment one of these two lines!
\include "web-publish.ly"
%\include "university.ly"

このアプローチは、あなたがパーツ一式を作っているだけだとしても役に立つ可能性があります。私は自分のプロジェクトのために半ダースの ‘スタイル シート’ ファイルを使います。私はそれぞれの音楽ファイルを \include "../global.ly" で始め、‘gloval.ly’ には以下の内容を記述しています:

%%%   global.ly
\version "2.13.45"
#(ly:set-option 'point-and-click #f)
\include "../init/init-defs.ly"
\include "../init/init-layout.ly"
\include "../init/init-headers.ly"
\include "../init/init-paper.ly"

他の言語: English, deutsch, español, français, nederlands

LilyPond — 学習マニュアル

inserted by FC2 system