[トップ][目次][インデックス] |
LilyPond — 記譜法リファレンス
このマニュアルは LilyPond バージョン 2.24.4 で提供されるすべての記譜法についての参照を提供します。このマニュアルは、読み手が 学習マニュアル で扱っている題材に慣れ親しんでいることを前提としています。 |
1. 音楽記譜法 | ほとんどすべての楽譜作成で使用される記譜法 | |
2. 専門的な記譜法 | 特別な目的でのみ使用される記譜法 | |
3. 入出力全般 | LilyPond 入力についての一般的な情報 | |
4. スペースの問題 | 出力の表示 | |
5. デフォルトを変更する | 出力の調整 | |
付録 | ||
---|---|---|
A. 付表 | 表と図 | |
B. カンニング ペーパー | LilyPond 構文についての要約 | |
C. GNU Free Documentation License | このドキュメントの使用許諾書 | |
D. LilyPond コマンド インデックス | ||
E. LilyPond インデックス |
このマニュアルと他のドキュメントの関係について、あるいは、このマニュアルを他の形式で読む方法についての情報は、 マニュアル を参照してください。 マニュアルのいずれかを見失ってしまった場合、https://lilypond.org/ にマニュアルがすべて揃っています。 |
[ << Top ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < Top ] | [ 上へ : Top ] | [ ピッチ > ] |
1. 音楽記譜法
この章では音楽表記を作成する方法について説明します。
1.1 ピッチ | 音符のピッチを記述、表示する | |
1.2 リズム | 音符の演奏時間を記述、表示する | |
1.3 発想記号 | 音符に表現を付け加える | |
1.4 繰り返し | 音楽の繰り返し | |
1.5 同時進行する音符 | 同時に複数の音符を演奏する | |
1.6 譜の記譜法 | 譜を表示する | |
1.7 編集者の注釈 | 可読性を良くするための特別な表記 | |
1.8 テキスト | 楽譜にテキストを追加する |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 音楽記譜法 ] | [ 上へ : 音楽記譜法 ] | [ ピッチを記述する > ] |
1.1 ピッチ
このセクションでは音符のピッチを指定する方法について議論します。このプロセスには 3 つのステップがあります: 入力、変更、出力です。
1.1.1 ピッチを記述する | ||
1.1.2 複数のピッチを変更する | ||
1.1.3 ピッチを表示する | ||
1.1.4 符頭 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < ピッチ ] | [ 上へ : ピッチ ] | [ 絶対オクターブ入力 > ] |
1.1.1 ピッチを記述する
このセクションではピッチを入力する方法について議論します。音符をオクターブの中に置くには 2 つの方法があります: 絶対モードと相対モードです。たいていの場合、相対モードの方が便利です。
絶対オクターブ入力 | ||
相対オクターブ入力 | ||
臨時記号 | ||
他の言語での音符名 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < ピッチを記述する ] | [ 上へ : ピッチを記述する ] | [ 相対オクターブ入力 > ] |
絶対オクターブ入力
ピッチ名は a
から g
までの小文字を使って指定されます。c
から b
までの音符名はミドル C の下のオクターブに譜刻されます。
{ \clef bass c4 d e f g4 a b c d4 e f g }
他のオクターブはシングル クォート ('
) またはカンマ (,
) 文字で指定されます。各 '
はピッチを 1 オクターブ上げます。一方、各 ,
はピッチを 1 オクターブ下げます。
{ \clef treble c'4 e' g' c'' c'4 g b c' \clef bass c,4 e, g, c c,4 g,, b,, c, }
共通して何度も用いられるオクターブ記号は、\fixed
の後に基準ピッチを入力し、その後の音楽を入力することで 1 度だけで済みます。
\fixed
の中にあるピッチは、基準ピッチよりもオクターブ上か下にある場合にのみ '
か ,
の記号が必要です。
{ \fixed c' { \clef treble c4 e g c' c4 g, b, c } \clef bass \fixed c, { c4 e g c' c4 g, b, c } }
\fixed
の後に続く音楽表記内のピッチは、外側にあるいかなる
\relative
の影響も受けません。次で説明します。
参照
音楽用語集: Pitch names
コード断片集: ピッチ
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 絶対オクターブ入力 ] | [ 上へ : ピッチを記述する ] | [ 臨時記号 > ] |
相対オクターブ入力
絶対オクターブ入力は、一つ一つの音符のオクターブを指定する必要があります。相対オクターブ入力は、対照的に、すぐ前の音符との関係で各オクターブを指定します。1 つの音符のオクターブを変更すると、続く音符のすべてに影響します。
相対音符モードは \relative
コマンドを使って明示的に入力する必要があります。
\relative startpitch musicexpr
相対モードでは、各音符は可能な限り前の音符の近くに配置されます。このことは、musicexp
の中にある各ピッチのオクターブが以下のように算出されるということを意味します:
- 音符に対してオクターブ変更記号が使用されていない場合、その音符のオクターブは前の音符との音程が 5 度よりも小さくなるよう算出されます。この音程は臨時記号を考慮せずに決定されます。
-
オクターブ変更記号
'
や,
を付け加えることによって、オクターブ記号無しの場合のピッチから、ピッチを 1 オクターブ上げ下げすることができます。 -
複数のオクターブ変更記号を使用することができます。例えば、
''
と,,
はピッチを 2 オクターブ変えます。 -
最初の音符のピッチは
startpitch
と相対関係で決定されます。startpitch は絶対オクターブ モードで指定されます。以下のどれがわかりやすいですか?-
c
のオクターブ c'
でミドル C を指定することは極めて基本的なため、c
のオクターブは、どちらかといえば素直です。あなたの音楽がc'''
より高いgis
で始まる場合、\relative c''' { gis' … }
のように書くことができます。- 内部の最初の音符のオクターブ
\relative gis''' { gis … }
と書くことで、内部の最初の音符の絶対ピッチを簡単に決めることができます。- 明示的な開始ピッチ無し
\relative { gis''' … }
の形式は前の選択肢のコンパクト版として機能します。内部の最初の音符は絶対ピッチで書かれます。(これは基準ピッチとしてf
を選択したのと同じです。)
このドキュメントは通常、最後の選択肢を使用します。
-
ここで、実際に相対モードの例を挙げます:
\relative { \clef bass c d e f g a b c d e f g }
オクターブ変更記号は 4 度よりも大きな音程に対して使用されます:
\relative { c'' g c f, c' a, e'' c }
音符の連なりはオクターブ変更記号が無い場合であっても大きな音程に広がる可能性があります:
\relative { c f b e a d g c }
\relative
ブロックがネストされている場合、最も内側の \relative
ブロックが、外側の \relative
とは独立した自身の参照ピッチで開始します。
\relative { c' d e f \relative { c'' d e f } }
\relative
は \chordmode
ブロックでは効果を持ちません。
\new Staff { \relative c''' { \chordmode { c1 } } \chordmode { c1 } }
\relative
を \chordmode
ブロックの中で使用することは認められません。
\transpose
ブロックの中では、\relative
を記述しない限り、絶対モードになります。
\relative { d' e \transpose f g { d e \relative { d' e } } }
前の要素が和音である場合、その和音の最初の音符が後に続く音符または和音の参照ポイントとして使用されます。和音の内部では、次の音符は常に 1 つ前の音符との相対関係になります。次の例を、c
の音符に気を付けて、注意深く検証してください。
\relative { c' <c e g> <c' e g'> <c, e, g''> }
上で説明したように、ピッチのオクターブは音符名のみを使って算出され、いかなる変更 (訳注: シャープやフラット) にも影響を受けません。そのため、B の後の E ダブル シャープは B よりも上に配置され、B の後の F ダブル フラットは B よりも下に配置されます。言い換えると、重増 4 度は重減 5 度よりも小さい – それぞれの音程に含まれる半音の数に関係無く – と見なされます。
\relative { c''2 fis c2 ges b2 eisis b2 feses }
状況が複雑であるときには、前の音符にかかわらず固定したピッチを指定するほうが有益かもしれません。これは \resetRelativeOctave
によって行うことができます。
\relative { << { c''2 d } \\ { e,,2 f } >> \resetRelativeOctave c'' c2 }
参照
音楽用語集: fifth, interval, Pitch names
記譜法リファレンス: オクターブ チェック
コード断片集: ピッチ
内部リファレンス: RelativeOctaveMusic
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 相対オクターブ入力 ] | [ 上へ : ピッチを記述する ] | [ 他の言語での音符名 > ] |
臨時記号
Note: LilyPond を始めたばかりのユーザはしばしば臨時記号と調号のことで混乱します。LilyPond では、音符名はピッチを指定します
– 調号と音部記号がこれらのピッチをどのように表示するかを決定します。c
のような変更を加えられていない音符は、調号や音部記号とは無関係に、‘C ナチュラル’ を意味します。更なる情報は、
ピッチと調号 を参照してください。
シャープのピッチは音符名に is
を付け加えることによって作られ、フラットのピッチは es
を付け加えることによって作られます。予想しているかもしれませんが、ダブル シャープやダブル フラットは isis
または eses
を付け加えることによって作られます。この構文はオランダ語の音符命名規約から派生しました。臨時記号に他の名前を使うには、他の言語での音符名 を参照してください。
\relative c'' { ais1 aes aisis aeses }
ナチュラルのピッチは単に音符名を入力します。接尾辞は必要ありません。ナチュラル記号は、前の臨時記号や調号の効果をキャンセルするのに必要な場合に表示されます。
\relative c'' { a4 aes a2 }
4 分音が付け加えられるかもしれません。以下の一連の C は左から順にピッチが増えていっています:
\relative c'' { ceseh1 ces ceh c cih cis cisih }
通常、臨時記号は自動的に譜刻されますが、手動で譜刻する場合もあるかもしれません。親切の臨時記号はピッチの後にエクスクラメーション記号 !
を付け加えることによって譜刻することができます。忠告の臨時記号 (つまり、括弧で囲まれた臨時記号) はピッチの後にクエスチョン記号 ?
を付け加えることによって譜刻することができます。これら追加の臨時記号を使ってナチュラル記号を作り出すこともできます。
\relative c'' { cis cis cis! cis? c c c! c? }
タイで結ばれた音符に付ける臨時記号は新しいシステム (訳者: 譜 1 行分のこと) の開始点でのみ譜刻されます:
\relative c'' { cis1~ 1~ \break cis }
Selected Snippets
タイで繋がれた音符が改行した際の臨時記号を隠す
タイで繋がれた音符が改行した際の臨時記号を隠す方法を示しています。
\relative c'' { \override Accidental.hide-tied-accidental-after-break = ##t cis1~ cis~ \break cis }
追加のナチュラル記号が自動で追加されないようにする
伝統的な譜刻のスタイルに合わせて、前に出現したダブルシャープやダブルフラットがシャープやフラットでキャンセルされた場合には、ナチュラル記号が表示されます。これを現代の慣習に合わせて変更するには、Staff
コンテキストの
extraNatural
プロパティを f
に設定します。
\relative c'' { aeses4 aes ais a \set Staff.extraNatural = ##f aeses4 aes ais a }
参照
音楽用語集: sharp, flat, double sharp, double flat, Pitch names, quarter tone
学習マニュアル: ピッチと調号
記譜法リファレンス: 自動臨時記号, 注釈的な臨時記号 (ムジカ・フィクタ), 他の言語での音符名
コード断片集: ピッチ.
内部リファレンス: Accidental_engraver, Accidental, AccidentalCautionary, accidental-interface
既知の問題と警告
4 分音臨時記号の表記の仕方で広く認められた標準はないため、LilyPond の記号はいかなる標準にも準拠しません。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 臨時記号 ] | [ 上へ : ピッチを記述する ] | [ 複数のピッチを変更する > ] |
他の言語での音符名
他のさまざまな言語での音符名と臨時記号名のセットが定義されています。通常、音符名の言語の選択はファイルの先頭で行います。 以下の例はイタリア語の音符名を使用します:
\language "italiano" \relative { do' re mi sib }
利用可能な言語ファイルとそれらが定義している音符名を挙げます:
言語
音符名
nederlands
c
d
e
f
g
a
bes
b
català
または
catalan
do
re
mi
fa
sol
la
sib
si
deutsch
c
d
e
f
g
a
b
h
english
c
d
e
f
g
a
bf
/b-flat
b
español
または
espanol
do
re
mi
fa
sol
la
sib
si
français
do
ré
/re
mi
fa
sol
la
sib
si
italiano
do
re
mi
fa
sol
la
sib
si
norsk
c
d
e
f
g
a
b
h
português
または
portugues
do
re
mi
fa
sol
la
sib
si
suomi
c
d
e
f
g
a
b
h
svenska
c
d
e
f
g
a
b
h
vlaams
do
re
mi
fa
sol
la
sib
si
音符名に加えて、臨時記号の接尾辞も言語によって異なる場合があります:
言語
シャープ
フラット
ダブル シャープ
ダブル フラット
nederlands
is
es
isis
eses
català
または
catalan
d
/s
b
dd
/ss
bb
deutsch
is
es
isis
eses
english
s
/-sharp
f
/-flat
ss
/x
/-sharpsharp
ff
/-flatflat
español
または
espanol
s
b
ss
/x
bb
français
d
b
dd
/x
bb
italiano
d
b
dd
bb
norsk
iss
/is
ess
/es
ississ
/isis
essess
/eses
português
または
portugues
s
b
ss
bb
suomi
is
es
isis
eses
svenska
iss
ess
ississ
essess
vlaams
k
b
kk
bb
オランダ語、ドイツ語、ノルウェー語、フィンランド語では、aes
は縮めて as
となりますが、オランダ語とノルウェー語については、LilyPond ではどちらの形式も認められます。これは es
と ees
、aeses
と ases
、eeses
と eses
でも同様です。
ドイツ語とフィンランド語については、LilyPond は
ases
よりよく使われる形である
asas
が使用できます。
\relative c'' { a2 as e es a ases e eses }
音楽の中には ‘通常の’ シャープやフラットの音の変化をさらに細かく分けた微分音を使用するものがあります。四分音 (訳者: シャープやフラットの半分の音の変化。4 分音符ではありません) の接尾辞を以下の表で挙げます。接頭辞 半- と 1.5- はそれぞれ ‘半分’ と ‘1 つ半’ を意味します。
元号
半-シャープ
半-フラット
1.5-シャープ
1.5-フラット
nederlands
ih
eh
isih
eseh
català
または
catalan
qd
/qs
qb
tqd
/tqs
tqb
deutsch
ih
eh
isih
eseh
english
qs
qf
tqs
tqf
español
または
espanol
cs
cb
tcs
tcb
français
sd
sb
dsd
bsb
italiano
sd
sb
dsd
bsb
norsk
ih
eh
issih
/isih
esseh
/eseh
português
または
portugues
sqt
bqt
stqt
btqt
suomi
ih
eh
isih
eseh
svenska
ih
eh
issih
esseh
vlaams
hk
hb
khk
bhb
ドイツ語では、微分音に対して、上記の通常の表記の他に、似た形の短縮形を使用することもできます。
\language "deutsch" \relative c'' { asah2 eh aih eisih }
ここに示されている大半の言語は西洋クラシック音楽 – Common Practice Period: 西暦1600年から1900年頃のバロック音楽、クラシック音楽、ロマン派音楽とも言えます – に関係があります。しかしながら、他のピッチやチューニング方法もサポートされています: 非西洋音楽の一般的な記譜法 を参照してください。
参照
音楽用語集: Pitch names, Common Practice Period.
記譜法リファレンス: 非西洋音楽の一般的な記譜法
あらかじめイストールされているファイル: ‘scm/define-note-names.scm’
コード断片集: ピッチ
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 他の言語での音符名 ] | [ 上へ : ピッチ ] | [ オクターブ チェック > ] |
1.1.2 複数のピッチを変更する
このセクションではピッチを変更する方法について議論します。
オクターブ チェック | ||
移調 | ||
反転 | ||
逆行 | ||
様式的な変形 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 複数のピッチを変更する ] | [ 上へ : 複数のピッチを変更する ] | [ 移調 > ] |
オクターブ チェック
相対モードでは、オクターブ変更記号を付け忘れることが容易に起こり得ます。オクターブ チェックは、予期しないオクターブの音符を見つけた場合に警告を表示してオクターブを修正することによって、そのようなエラーを見つけ出すことをより容易にします。
音符のオクターブをチェックするには、=
の後に絶対オクターブを指定します。以下の例は、2 番目の音符の絶対オクターブがオクターブ チェックによって示される d'
ではなく d''
であるため、警告を発し (そしてピッチを変更し) ます。
\relative { c''2 d='4 d e2 f }
音符のオクターブは
\octaveCheck controlpitch
コマンドでもチェックすることができます。controlpitch
は絶対モードで指定されます。これは前の音符と controlpitch
との間の音程が
4 度以内であるかどうかをチェックします
(つまり、通常の相対モードでの算出方法と同じです)。このチェックが失敗した場合、警告が表示されます。このチェックの前にある音符は変更されませんが、その後に続く音符はオクターブが修正されます。
\relative { c''2 d \octaveCheck c' e2 f }
以下の 2 小節を見てください。1 番目と 3 番目の \octaveCheck
は失敗していますが、2 番目のチェックは失敗していません。
\relative { c''4 f g f c4 \octaveCheck c' f \octaveCheck c' g \octaveCheck c' f }
参照
コード断片集: ピッチ
内部リファレンス: RelativeOctaveCheck.
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < オクターブ チェック ] | [ 上へ : 複数のピッチを変更する ] | [ 反転 > ] |
移調
音楽表記は \transpose
で移調させることができます。構文は以下の通りです:
\transpose frompitch topitch musicexpr
これは musicexpr
が frompitch
から
topitch
に移調されるということを意味します:
frompitch
のピッチの音符はすべて topitch
に変更され、他の音符もすべて同じ音程で移調されます。frompitch
と topitch
のピッチはどちらも絶対モードで指定されます。
Note: \transpose
ブロックの中にある音符は、そのブロックの中に \relative
が無い限り、絶対モードになります。
D-メジャーの調で書かれた楽曲を思い浮かべてください。この楽曲を E-メジャーに移調することができます。調号も自動的に移調されることに注意してください。
\transpose d e { \relative { \key d \major d'4 fis a d } }
C (通常の コンサート ピッチ) で書かれたパートを A のクラリネットで演奏する (そのため、A は C として表記され、演奏は表記されたものよりも 3 度低くなります) 場合、そのパート譜は以下のように作り出されます:
\transpose a c' { \relative { \key c \major c'4 d e g } }
\key c \major
を明示的に指定しているということに注意してください。調号を指定しなかった場合、音符は移調されますが、調号は譜刻されません。
\transpose
は同音異名のピッチを区別します:
\transpose c cis
と \transpose c des
はどちらも半音上に移調します。1 番目の移調はシャープを譜刻し、音符の五線譜上での位置は変わりません。2 番目の移調はフラットを譜刻し、音符の五線譜上での位置は上に上がります。
music = \relative { c' d e f } \new Staff { \transpose c cis { \music } \transpose c des { \music } }
\transpose
は上記とは異なる方法で用いることもでき、それによって移調楽器のために書かれた音符を入力することができます。前の例では C (またはコンサート ピッチ) でピッチを入力して、それらを移調楽器のために譜刻する方法を示しましたが、それとは正反対のことも可能です
– 例えば、移調楽器のパート譜から指揮譜を譜刻することです。例えば、E で始まる B-フラットのトランペットの音楽
(コンサート ピッチでは D で始まる音楽) を入力している場合に、指揮譜を作り出すには以下のように記述します:
musicInBflat = { e4 … } \transpose c bes, \musicInBflat
この音楽を F で譜刻する (例えば、フレンチ ホルンの楽譜にアレンジし直すために)
には、既存の音楽をもう 1 つの \transpose
で包み込みます:
musicInBflat = { e4 … } \transpose f c' { \transpose c bes, \musicInBflat }
移調楽器についての更なる情報は、楽器の移調 を参照してください。
Selected Snippets
臨時記号の数が最小になるようにピッチを移調する ("スマート" トランスポーズ)
この例は、臨時記号の数が最小になるように、異名同音を置き換える Scheme コードを使用しています。この場合、次のルールが適用されます:
ダブルシャープやダブルフラットは削除されます
B シャープ -> C
E シャープ -> F
C フラット -> B
F フラット -> E
このようにして、最も自然な異名同音が選ばれます。
#(define (naturalize-pitch p) (let ((o (ly:pitch-octave p)) (a (* 4 (ly:pitch-alteration p))) ;; alteration, a, in quarter tone steps, ;; for historical reasons (n (ly:pitch-notename p))) (cond ((and (> a 1) (or (eqv? n 6) (eqv? n 2))) (set! a (- a 2)) (set! n (+ n 1))) ((and (< a -1) (or (eqv? n 0) (eqv? n 3))) (set! a (+ a 2)) (set! n (- n 1)))) (cond ((> a 2) (set! a (- a 4)) (set! n (+ n 1))) ((< a -2) (set! a (+ a 4)) (set! n (- n 1)))) (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7)))) (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7)))) (ly:make-pitch o n (/ a 4)))) #(define (naturalize music) (let ((es (ly:music-property music 'elements)) (e (ly:music-property music 'element)) (p (ly:music-property music 'pitch))) (if (pair? es) (ly:music-set-property! music 'elements (map naturalize es))) (if (ly:music? e) (ly:music-set-property! music 'element (naturalize e))) (if (ly:pitch? p) (begin (set! p (naturalize-pitch p)) (ly:music-set-property! music 'pitch p))) music)) naturalizeMusic = #(define-music-function (m) (ly:music?) (naturalize m)) music = \relative c' { c4 d e g } \score { \new Staff { \transpose c ais { \music } \naturalizeMusic \transpose c ais { \music } \transpose c deses { \music } \naturalizeMusic \transpose c deses { \music } } \layout { } }
参照
記譜法リファレンス: 楽器の移調, 反転, 様式的な変形, 相対オクターブ入力, 逆行
コード断片集: ピッチ
内部リファレンス: TransposedMusic
既知の問題と警告
相対変換コマンドはその引数の中にある \transpose
, \chordmode
,
あるいは \relative
セクションには影響を及ぼしません。移調された音楽の中で相対モードを使用するには、\transpose
の中に \relative
を置く必要があります。
\transpose
を使用している場合、3 重の臨時記号は表示されません。代わりに ‘異名等価の’ ピッチが表示されます
(例えば e の 3 重フラットの代わりに d フラットが表示されます)。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 移調 ] | [ 上へ : 複数のピッチを変更する ] | [ 逆行 > ] |
反転
単一の操作で音楽表記を反転して、移調することができます:
\inversion around-pitch to-pitch musicexpr
The musicexpr
の音程は around-pitch
を中心に反転され、さらに around-pitch
が to-pitch
にマッピングされるように移調されます。
music = \relative { c' d e f } \new Staff { \music \inversion d' d' \music \inversion d' ees' \music }
Note: 反転されるモチーフは絶対オクターブ形式で記述するか、最初に絶対オクターブ形式に変換されるよう \relative
ブロックで囲む必要があります。
参照
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 反転 ] | [ 上へ : 複数のピッチを変更する ] | [ 様式的な変形 > ] |
逆行
音楽表記を後ろから前に演奏する逆行を作り出すことができます:
music = \relative { c'8. ees16( fis8. a16 b8.) gis16 f8. d16 } \new Staff { \music \retrograde \music }
既知の問題と警告
\retrograde
は非常に単純なツールです。多くのイベントは交換ではなく‘反転’するため、スパナの開始点にある調整や方向指示子は対応する終了点にも追加する必要があります。つまり、^(
は ^)
によって終了しなければならないということです。全ての \<
や \cresc
は \!
か
\endcr
で終わらなければならず、全ての \>
や \decr
は\enddecr
で終わらなければなりません。効果が永続するようなプロパティ変更のコマンドやオーバライドは予期しない結果を生み出すかもしれません。
参照
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 逆行 ] | [ 上へ : 複数のピッチを変更する ] | [ ピッチを表示する > ] |
様式的な変形
音階に基づく作曲では、モチーフはさまざまなやり方で頻繁に移調されます。これは、モチーフの開始の音程を変えるために 移調 する場合や、旋回点で 反転 する場合があります。 逆行 するために後戻りする場合もあります– 逆行 を参照してください。
Note: 与えられた音階の中に無い音符は、移調されません。
様式的な移調
以下により、与えられた音階でモチーフを移調させることができます:
\modalTranspose from-pitch to-pitch scale motif
motif の音符は scale 内を to-pitch と from-pitch 間の音程の度数の分だけシフトされます:
diatonicScale = \relative { c' d e f g a b } motif = \relative { c'8 d e f g a b c } \new Staff { \motif \modalTranspose c f \diatonicScale \motif \modalTranspose c b, \diatonicScale \motif }
上昇する音階の長さは任意であり、指定する音程も任意です:
pentatonicScale = \relative { ges aes bes des ees } motif = \relative { ees'8 des ges,4 <ges' bes,> <ges bes,> } \new Staff { \motif \modalTranspose ges ees' \pentatonicScale \motif }
半音階の音階を持つ \modalTranspose
を使った時の効果は
\transpose
と同じですが、使われる音符の名前を特定することが
できます:
chromaticScale = \relative { c' cis d dis e f fis g gis a ais b } motif = \relative { c'8 d e f g a b c } \new Staff { \motif \transpose c f \motif \modalTranspose c f \chromaticScale \motif }
様式的な反転
モチーフを与えられた音階に従って与えられた旋回点 (音符) で反転させて、 移調させることを 1 つの操作でできます:
\modalInversion around-pitch to-pitch scale motif
motif の音符は scale 内を around-pitch から元の音符までと同じ度数の分だけ逆向きに進んだ位置に配置され、それからその結果は scale 内を to-pitch と around-pitch 間の音程の度数分だけシフトされます。
そのため、単純に音階をある音符で反転させる場合は、around-pitch と to-pitch で同じ値を使用します:
octatonicScale = \relative { ees' f fis gis a b c d } motif = \relative { c'8. ees16 fis8. a16 b8. gis16 f8. d16 } \new Staff { \motif \modalInversion fis' fis' \octatonicScale \motif }
音階の中にある 2 つの音符の中間にある旋回点で反転させるには、2 つの音符の 1 つを旋回点として反転させて、音階の 1 度数分だけ移調させます。指定された 2 つの音符が旋回点を囲んでいると解釈することができます:
scale = \relative { c' g' } motive = \relative { c' c g' c, } \new Staff { \motive \modalInversion c' g' \scale \motive }
反転と逆行の操作を組み合わせると逆行-反転になります:
octatonicScale = \relative { ees' f fis gis a b c d } motif = \relative { c'8. ees16 fis8. a16 b8. gis16 f8. d16 } \new Staff { \motif \retrograde \modalInversion c' c' \octatonicScale \motif }
参照
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 様式的な変形 ] | [ 上へ : ピッチ ] | [ 音部記号 > ] |
1.1.3 ピッチを表示する
このセクションではピッチの出力を変更する方法について議論します。
音部記号 | ||
調号 | ||
オッターバ囲み | ||
楽器の移調 | ||
自動臨時記号 | ||
音域 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < ピッチを表示する ] | [ 上へ : ピッチを表示する ] | [ 調号 > ] |
音部記号
コマンドを明示しない場合、LilyPond のデフォルトの音部記号は高音部記号 (ト音記号) です。
c'2 c'
しかし、音部記号は \clef
コマンドと適切な音部記号の名前を用いることで変えることができます。以下のそれぞれの例の中にある音符はすべてミドル C です。
\clef treble c'2 c' \clef alto c'2 c' \clef tenor c'2 c' \clef bass c'2 c'
指定することのできる全ての音部記号の名前は 音部記号のスタイル にあります。
専門的な音部記号 – 例えば古代の音楽に用いられるもの – は 計量記譜法の音部記号 や グレゴリオ聖歌の音部記号 に説明してあります。タブ譜の音部記号が必要な音楽に関しては、 デフォルトのタブ譜 や カスタム タブ譜 に説明があります。
合図音符を用いる際の音部記号については、合図音符をフォーマットする の
\cueClef
や \cueDuringWithClef
コマンドを参照してください。
音部名に _8
または ^8
を付け加えることによって、音部はそれぞれ 1 オクターブ下/上に移調され、_15
または ^15
によって 2 オクターブ移調されます。音部名にアルファベット以外の文字が含まれる場合、音部名をダブル クォートで囲む必要があります。
\clef treble c'2 c' \clef "treble_8" c'2 c' \clef "bass^15" c'2 c' \clef "alto_2" c'2 c' \clef "G_8" c'2 c' \clef "F^5" c'2 c'
数字の引数を括弧や角括弧で囲むことで、オプションのオクターブを表示させることができます:
\clef "treble_(8)" c'2 c' \clef "bass^[15]" c'2 c'
ピッチは数字の引数が括弧で囲まれていない場合と同じです。
デフォルトでは、改行のタイミングで音部記号の変更が行われる時には、次の行の音部記号の他に、前の行の最後に予告の音部記号が表示されます。この予告の音部記号は表示しないようにすることができます。
\clef treble { c'2 c' } \break \clef bass { c'2 c' } \break \clef alto \set Staff.explicitClefVisibility = #end-of-line-invisible { c'2 c' } \break \unset Staff.explicitClefVisibility \clef bass { c'2 c' } \break
デフォルトでは、以前に表示された音部記号と同じ音部記号を \clef
コマンドで指定しても、再表示はされず無視されます。この挙動は
\set Staff.forceClef = ##t
で変更することができます。
\clef treble c'1 \clef treble c'1 \set Staff.forceClef = ##t c'1 \clef treble c'1
さらに正確に言うと、音部記号を表示するのは \clef
コマンドそのものではありません。代わりに、このコマンドは Clef_engraver
のプロパティを変更し、Clef_engraver
はそれによって現在の譜に音部記号を表示するかどうかを決定します。forceClef
プロパティはこの音部記号を表示するかの決定をその場で上書きします。
手動で音部記号が変更された場合、変更後の音部記号は通常より小さく表示されます。この挙動を変更することができます。
\clef "treble" c'1 \clef "bass" c'1 \clef "treble" c'1 \override Staff.Clef.full-size-change = ##t \clef "bass" c'1 \clef "treble" c'1 \revert Staff.Clef.full-size-change \clef "bass" c'1 \clef "treble" c'1
Selected Snippets
音部記号のプロパティを調整する
音部記号のグリフ、位置、オクターブ記号を変更するだけでは、変更後の音符の位置は変更されません。調号を正しい位置に表示するためには、middleCClefPosition
も設定する必要があります。これは、“ミドル C” の位置を、中央の譜線を 0、上方向を正、下方向を負として設定します。
例えば、\clef "treble_8"
は、clefGlyph
, clefPosition
,
(音部記号自体の縦位置) middleCPosition
, clefTransposition
を設定するのと同等です。これらのプロパティの (middleCPosition
を除く)
どれかが変更された場合、新たに音部記号が表示されます。
次の例は、これらのプロパティを手動でセットする方法を示しています。最初の行では音部記号と音符の位置関係は通常通りですが、次の行ではそうではありません。
{ % The default treble clef \key f \major c'1 % The standard bass clef \set Staff.clefGlyph = #"clefs.F" \set Staff.clefPosition = #2 \set Staff.middleCPosition = #6 \set Staff.middleCClefPosition = #6 \key g \major c'1 % The baritone clef \set Staff.clefGlyph = #"clefs.C" \set Staff.clefPosition = #4 \set Staff.middleCPosition = #4 \set Staff.middleCClefPosition = #4 \key f \major c'1 % The standard choral tenor clef \set Staff.clefGlyph = #"clefs.G" \set Staff.clefPosition = #-2 \set Staff.clefTransposition = #-7 \set Staff.middleCPosition = #1 \set Staff.middleCClefPosition = #1 \key f \major c'1 % A non-standard clef \set Staff.clefPosition = #0 \set Staff.clefTransposition = #0 \set Staff.middleCPosition = #-4 \set Staff.middleCClefPosition = #-4 \key g \major c'1 \break % The following clef changes do not preserve % the normal relationship between notes, key signatures % and clefs: \set Staff.clefGlyph = #"clefs.F" \set Staff.clefPosition = #2 c'1 \set Staff.clefGlyph = #"clefs.G" c'1 \set Staff.clefGlyph = #"clefs.C" c'1 \set Staff.clefTransposition = #7 c'1 \set Staff.clefTransposition = #0 \set Staff.clefPosition = #0 c'1 % Return to the normal clef: \set Staff.middleCPosition = #0 c'1 }
参照
記譜法リファレンス: 計量記譜法の音部記号, グレゴリオ聖歌の音部記号, デフォルトのタブ譜, カスタム タブ譜, 合図音符をフォーマットする
インストールされているファイル: ‘scm/parser-clef.scm’
コード断片集: ピッチ
内部リファレンス: Clef_engraver, Clef, ClefModifier, clef-interface
既知の問題と警告
音部記号に付けるオクターブ移動の数字は、個別のグラフィカル オブジェクトとして扱われます。このため、Clef に適用される \override
は、別の \override
で ClefModifier グラフィカル オブジェクトに適用する必要があります。
\new Staff \with { \override Clef.color = #blue \override ClefModifier.color = #red } \clef "treble_8" c'4
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 音部記号 ] | [ 上へ : ピッチを表示する ] | [ オッターバ囲み > ] |
調号
Note: LilyPond を始めたばかりのユーザはしばしば臨時記号と調号のことで混乱します。LilyPond では、音符名は未加工の入力です。調号と音部記号がこの未加工の入力をどのように表示するかを決定します。c
のような変更を加えられていない音符は、調号や音部記号とは無関係に、‘C ナチュラル’ を意味します。更なる情報は、
ピッチと調号 を参照してください。
調号は楽曲を演奏すべき調性を示します。調号は譜の先頭で変更記号 (フラットやシャープ) のセットによって示されます。調号は変更されることがあります:
\key pitch mode
調号を pitch
-メジャーや pitch
-マイナーにするには、mode
をそれぞれ \major
または \minor
にします。さらに標準のモード名
– チャーチ モード とも呼ばれます –
を使うこともできます:
\ionian
, \dorian
, \phrygian
, \lydian
,
\mixolydian
, \aeolian
それに \locrian
です。
\relative { \key g \major fis''1 f fis }
新たにモードを定義することができます – モードが C で始まる場合、C で始まる音階の各ステップに対する変更記号をリスト アップします。
freygish = #`((0 . ,NATURAL) (1 . ,FLAT) (2 . ,NATURAL) (3 . ,NATURAL) (4 . ,NATURAL) (5 . ,FLAT) (6 . ,FLAT)) \relative { \key c \freygish c'4 des e f \bar "||" \key d \freygish d es fis g }
KeySignature
のプロパティ flat-positions
と
sharp-positions
を用いて、調号の臨時記号を通常とは異なるオクターブに表示させたり、複数のオクターブに表示させることができます。これらのプロパティに渡される値は、臨時記号を表示させる譜ポジションの範囲を指定します。1 つの値だけを渡した場合、その譜ポジションで終了するオクターブの範囲に臨時記号が配置されます。
\override Staff.KeySignature.flat-positions = #'((-5 . 5)) \override Staff.KeyCancellation.flat-positions = #'((-5 . 5)) \clef bass \key es \major es g bes d' \clef treble \bar "||" \key es \major es' g' bes' d'' \override Staff.KeySignature.sharp-positions = #'(2) \bar "||" \key b \major b' fis' b'2
Selected Snippets
調号が変化する際にナチュラル記号が表示されないようにする
調号が変化する際、前の調号を打ち消すナチュラル記号が自動的に表示されます。これは Staff
コンテキストの printKeyCancellation
プロパティを
f
にセットすることで防止することができます。
\relative c' { \key d \major a4 b cis d \key g \minor a4 bes c d \set Staff.printKeyCancellation = ##f \key d \major a4 b cis d \key g \minor a4 bes c d }
非伝統的な調号
広く使われている \key
コマンドは、Staff
コンテキストの
keyAlterations
をセットしています。非標準な調号を作成するには、このプロパティを直接セットします。
コマンドの形式は以下のようなリストです:
\set Staff.keyAlterations = #`(((octave . step) . alter) ((octave
. step) . alter) ...)
が構文です。リストの各要素について、octave
がオクターブを指定し
(0 がミドル C からその上の B まで)、step
はオクターブ内の音階 (0 が C, 6 が B)、alter
が ,SHARP ,FLAT ,DOUBLE-SHARP
などです。
または、各要素についてより簡潔な形式があり、(step . alter)
は全てのオクターブに対して変化記号が適用されます。“シャープ” が 100 セントではない微分音のスケールでは、alter
を 200 セントの全音を 1 とした数値で指定できます。
\include "arabic.ly" \relative do' { \set Staff.keyAlterations = #`((0 . ,SEMI-FLAT) (1 . ,SEMI-FLAT) (2 . ,FLAT) (5 . ,FLAT) (6 . ,SEMI-FLAT)) %\set Staff.extraNatural = ##f re reb \dwn reb resd dod dob dosd \dwn dob | dobsb dodsd do do | }
参照
音楽用語集: church mode, scordatura
学習マニュアル: ピッチと調号
コード断片集: ピッチ
内部リファレンス: KeyChangeEvent, Key_engraver, Key_performer, KeyCancellation, KeySignature, key-signature-interface
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 調号 ] | [ 上へ : ピッチを表示する ] | [ 楽器の移調 > ] |
オッターバ囲み
オッターバ囲み は譜をオクターブ単位で移調します:
\relative a' { a2 b \ottava #-2 a2 b \ottava #-1 a2 b \ottava #0 a2 b \ottava #1 a2 b \ottava #2 a2 b }
Selected Snippets
オッターバ囲みのテキストを変更する
内部的には、\ottava
は ottavation
プロパティを
(例えば、8va
や 8vb
に) セットし、middleCPosition
プロパティを変更します。オッターバ囲みのテキストを変更するには、\ottava
の後に
ottavation
をセットするようにしてください。
オッターバ囲みが短い場合には、テキストを短くすると良いでしょう。
{ c'2 \ottava #1 \set Staff.ottavation = #"8" c''2 \ottava #0 c'1 \ottava #1 \set Staff.ottavation = #"Text" c''1 }
オッターバを単一のボイスに対して適用する
譜に 2 つ以上のボイスがある場合、オッターバを設定すると、囲みの中にある全てのボイスの音符が移動してしまいます。オッターバを単一のボイスに対して適用したい場合には、middleCPosition とオッターバ囲みを明示的にセットする必要があります。ヘ音記号の middleCPosition は本来 6 にセットされており、これは譜の中央の線から 6 つ上であることを示しています。このスニペットでは、オッターバ部分の middleCPosition を 7 加算して、1 オクターブ移動しています。
\layout { \context { \Staff \remove Ottava_spanner_engraver } \context { \Voice \consists Ottava_spanner_engraver } } { \clef bass << { <g d'>1~ q2 <c' e'> } \\ { r2. \ottava -1 <b,,, b,,>4 ~ | q2 \ottava 0 <c e>2 } >> }
オッターヴァのスパナの傾きを変更する
オッターヴァのスパナの傾きを変更することができます。
\relative c'' { \override Staff.OttavaBracket.stencil = #ly:line-spanner::print \override Staff.OttavaBracket.bound-details = #`((left . ((Y . 0) (attach-dir . ,LEFT) (padding . 0) (stencil-align-dir-y . ,CENTER))) (right . ((Y . 5.0) ; Change the number here (padding . 0) (attach-dir . ,RIGHT) (text . ,(make-draw-dashed-line-markup (cons 0 -1.2)))))) \override Staff.OttavaBracket.left-bound-info = #ly:horizontal-line-spanner::calc-left-bound-info-and-text \override Staff.OttavaBracket.right-bound-info = #ly:horizontal-line-spanner::calc-right-bound-info \ottava #1 c1 c'''1 }
参照
音楽用語集: octavation
コード断片集: ピッチ
内部リファレンス: Ottava_spanner_engraver, OttavaBracket, ottava-bracket-interface
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < オッターバ囲み ] | [ 上へ : ピッチを表示する ] | [ 自動臨時記号 > ] |
楽器の移調
楽器の移調を含む楽器を譜刻するとき、いくつかのパートはコンサート ピッチ とは異なるピッチで譜刻される可能性があります。このような場合、移調楽器 の調を指定すべきです。指定しなければ MIDI 出力や他のパートの出だしのピッチは誤ったものになります。引用についての更なる情報は 他のボイスを引用する を参照してください。
\transposition pitch
\transposition
で使用するピッチは、譜に書かれた c'
をその移調楽器で演奏したときに聴こえる実際の音に対応したものであるべきです。このピッチは絶対モードで入力します。ですから、楽譜よりも 1 度高い音を出す楽器は
\transposition d'
を使うべきです。\transposition
は、ピッチがコンサート ピッチでは ない ピッチで入力されている場合に のみ 使用すべきです。
バイオリンと B-フラットのクラリネットのための音符をいくつか挙げます。それぞれのパートは、それぞれが指揮譜に刻譜されるときに使用される音符と調を使って入力されています。2 つの楽器は斉奏で演奏しています。
\new GrandStaff << \new Staff = "violin" \with { instrumentName = "Vln" midiInstrument = "violin" } \relative c'' { % not strictly necessary, but a good reminder \transposition c' \key c \major g4( c8) r c r c4 } \new Staff = "clarinet" \with { instrumentName = \markup { Cl (B\flat) } midiInstrument = "clarinet" } \relative c'' { \transposition bes \key d \major a4( d8) r d r d4 } >>
\transposition
は楽曲の途中で変更されることもあります。例えば、クラリネット奏者は A のクラリネットから B-フラットのクラリネットに持ち替えなければならないことがあります。
flute = \relative c'' { \key f \major \cueDuring "clarinet" #DOWN { R1 _\markup\tiny "clarinet" c4 f e d R1 _\markup\tiny "clarinet" } } clarinet = \relative c'' { \key aes \major \transposition a aes4 bes c des R1^\markup { muta in B\flat } \key g \major \transposition bes d2 g, } \addQuote "clarinet" \clarinet << \new Staff \with { instrumentName = "Flute" } \flute \new Staff \with { instrumentName = "Cl (A)" } \clarinet >>
参照
音楽用語集: concert pitch, transposing instrument
記譜法リファレンス: 他のボイスを引用する, 移調
コード断片集: ピッチ
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 楽器の移調 ] | [ 上へ : ピッチを表示する ] | [ 音域 > ] |
自動臨時記号
臨時記号の譜刻の仕方には多くの異なる規約があります。LilyPond はどの臨時記号スタイルを使用するのかを指定するための関数を提供します。この関数は以下のように呼び出されます:
\new Staff << \accidentalStyle voice { … } >>
指定された臨時記号スタイルは、デフォルトでは、カレントの Staff
に適用されます
(スタイル piano
と piano-cautionary
は例外です。これらは以下で説明します)。オプションとして、この関数は 2 つ目の引数をとることができ、それによってスタイルを変更すべき範囲 (スコープ) を指定できます。例えば、カレントの StaffGroup
のすべての譜で同じスタイルを使うには、以下のようにします:
\accidentalStyle StaffGroup.voice
サポートされる臨時記号スタイルを以下で示します。それぞれのスタイルを実際に示すために、以下の例を使用します:
musicA = { << \relative { cis''8 fis, bes4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\ \relative { ais'2 cis, | fis8 b a4 cis2 | } >> } musicB = { \clef bass \new Voice { \voiceTwo \relative { <fis a cis>8[ <fis a cis> \change Staff = up cis' cis \change Staff = down <fis, a> <fis a>] \showStaffSwitch \change Staff = up dis'4 | \change Staff = down <fis, a cis>4 gis <f a d>2 | } } } \new PianoStaff { << \context Staff = "up" { \accidentalStyle default \musicA } \context Staff = "down" { \accidentalStyle default \musicB } >> }
両方の譜で同じ臨時記号スタイルを使うのなら、この例の最後のブロックを以下で置き換えられます:
\new PianoStaff { << \context Staff = "up" { %%% 次の行を変更したいスタイルに合わせて変更してください: \accidentalStyle Score.default \musicA } \context Staff = "down" { \musicB } >> }
-
default
-
これはデフォルトの譜刻の仕方です。これは 18 世紀の一般的な習慣と一致します: 臨時記号が有効なのは、その臨時記号が発生した小節の終わりまでで、かつ、その臨時記号が発生したオクターブの中だけです。そのため以下の例の中では、第 2 小節の
b
や最後のc
の前にはナチュラル記号は譜刻されていません: -
voice
-
通常の臨時記号の付け方では、臨時記号は
Staff
レベルで保持されます。しかしながらこのスタイルでは、臨時記号はそれぞれのボイスで別々に譜刻されます。それを除けば、このスタイルの規則はdefault
と同じです。結果として、あるボイスからの臨時記号は他のボイスでキャンセルされず、これはしばしば望まない結果となります: 以下の例では、2 番目の
a
をナチュラルで演奏するか、シャープで演奏するかを決定するのは困難です。そのため、voice
オプションは、それぞれのボイスが別々の演奏者によって個々に読まれる場合にのみ使用すべきです。譜が 1 人の演奏者によって使用される場合 (例えば、指揮者やピアノ譜の場合)、このスタイルの代わりにmodern
やmodern-cautionary
を使用すべきです。 -
modern
-
この規則は 20 世紀の一般的な臨時記号の付け方と一致します: この規則はいくつかの余分なナチュラル記号を省略します – 伝統的にダブル シャープの後のシャープに前置されるナチュラル記号と、ダブル フラットの後のフラットに前置されるナチュラル記号を省略します。
modern
規則の臨時記号の付け方はdefault
とほぼ同じですが、あいまいさを避けるための 2 つの規則が追加されます – 一時的な臨時記号が使われると、 その後の小節で (同じオクターブにある音符に対して) キャンセル記号が譜刻され、臨時記号が使われた小節では他のオクターブにある音符にもキャンセル記号が譜刻されます。そのため、上部譜の第 2 小節の中にあるb
とc
の前にはナチュラルが付けられています: -
modern-cautionary
-
この規則は
modern
と似ていますが、忠告的臨時記号として ‘追加の’ 臨時記号が (括弧付きで) 譜刻されます。これらの臨時記号は、AccidentalCautionary
のfont-size
プロパティをオーバライドすることで異なったサイズで表示することができます。 -
modern-voice
-
この規則は多声の臨時記号として使用されます。演奏家が複数の声部の中の 1 つの声部を演奏する場合にも、すべての声部を演奏する場合にも使用されます。臨時記号はそれぞれの声部に対して譜刻されますが、同じ
Staff
の中であっても声部をまたいでキャンセルされます。そのため、最後の小節でa
がキャンセルされています – なぜなら、前のキャンセルは異なる声部で行われたからです。さらに下部譜ではd
がキャンセルされています – その臨時記号は前の小節の異なる声部で付けられたものだからです: -
modern-voice-cautionary
-
この規則は
modern-voice
と同じですが、追加の臨時記号 (これはvoice
では譜刻されません) は忠告として譜刻されます。たとえdefault
で譜刻されるすべての臨時記号がこの規則でも譜刻されたとしても、それらの臨時記号のいくつかは忠告として譜刻されます。 -
piano
-
この規則は 20 世紀のピアノ譜の臨時記号のつけ方を反映しています。このスタイルは
modern
スタイルと非常によく似ています。しかしながらこのスタイルでは、同じGrandStaff
またはPianoStaff
の中にある譜をまたがって臨時記号はキャンセルされます。そのため、最後の和音ではすべての音符でキャンセルが行われています。この臨時記号スタイルは、デフォルトで、
GrandStaff
やPianoStaff
に適用されます。 -
piano-cautionary
-
この規則は
piano
と同じですが、追加の臨時記号は忠告として譜刻されます。 -
choral
-
このルールは
modern-voice
とpiano
の組み合わせです。これは自身のボイスのみを追う歌手にとって必要な全ての臨時記号を表示し、またChoirStaff
の全てのボイスを同時に追う読譜者のために追加の臨時記号も表示します。この臨時記号スタイルは
ChoirStaff
でデフォルトで適用されています。 -
choral-cautionary
-
この規則は
choral
と同じですが、追加の臨時記号は忠告として譜刻されます。 -
neo-modern
-
この規則は現代音楽での一般的な臨時記号の付け方を再現します: 臨時記号は
modern
と同じように譜刻されますが、同じ小節の中で臨時記号を付けられた音符と同じ音符が再び現れた場合、その音符にも臨時記号が譜刻されます – ただし、臨時記号を付けられた音符の直後に同じ音符が現れる場合は除きます (訳者: 第 1 小節の下部譜にある 2 つのf
には両方とも臨時記号が譜刻されていますが、第 1 小節の上部譜にある 2 つのミドル C は連続しているため、後のミドル C には臨時記号が譜刻されません)。 -
neo-modern-cautionary
-
この規則は
neo-modern
と似ていますが、追加の臨時記号は忠告の臨時記号として (括弧付きで) 譜刻されます。これらの臨時記号は、AccidentalCautionary
のfont-size
プロパティをオーバライドすることで異なったサイズで表示することができます。 -
neo-modern-voice
-
この規則は、1 つのボイスを演奏する音楽家とすべてのボイスを演奏する音楽家両方のための複数ボイスの臨時記号に使用されます。
neo-modern
と同様に、臨時記号は各ボイスに譜刻されますが、同じStaff
にあるボイスをまたがるとキャンセルされます。 -
neo-modern-voice-cautionary
-
この規則は
neo-modern-voice
と似ていますが、追加の臨時記号が忠告の臨時記号として譜刻されます。 -
dodecaphonic
-
この規則は 20 世紀初頭の作曲家たちによって導入された臨時記号の付け方を反映しています – ナチュラルの音符と非ナチュラルの音符 (訳者: ピアノの白鍵に対応する音符と黒鍵に対応する音符) 間にある上下関係を無効にしようとする試みです。このスタイルでは、すべて の音符にナチュラル記号を含む臨時記号が付けられます。
-
dodecaphonic-no-repeat
-
dodecaphonic
と似て、通常全ての 音符に臨時記号が譜刻されますが、同じ譜の中でピッチが直後に繰り返される場合には譜刻されません。 -
dodecaphonic-first
-
dodecaphonic
と似て、通常全ての 音符に臨時記号が譜刻されますが、小節内で最初に出現したものに限られます。オクターブが異なるものは新たに譜刻されますが、異なるボイスでも臨時記号の効果は持続します。 -
teaching
-
この規則は学生向けを意図したものであり、自動的に譜刻される忠告の臨時記号によって容易にスケール譜を作ることを容易にします。臨時記号は
modern
と同じように譜刻されます。しかしながら、調号によって指定されたすべてのシャープ音、フラット音に対して忠告の臨時記号が譜刻されます – ただし、前の音符の直後にある同じピッチの音符は例外です。 -
no-reset
-
この規則は
default
と同じですが、臨時記号の保持は小節内に限定されず、‘最後まで’ 保持されます: -
forget
-
この規則は
no-reset
と正反対です: 臨時記号はまったく保持されません – そのため、調号に対応しながら、前にある音楽とは無関係にすべての臨時記号が譜刻されます。
参照
コード断片集: ピッチ
内部リファレンス: Accidental, Accidental_engraver, GrandStaff, PianoStaff, Staff, AccidentalSuggestion, AccidentalPlacement, accidental-suggestion-interface
既知の問題と警告
同時発生する音符はシーケンシャル モードで入力されたものと見なされます。このことが意味するのは、和音の各音符は入力ファイルの中で記述された順に
1 つずつ発生するものとして、和音の臨時記号は譜刻されるということです。これは和音の中の臨時記号が互いに依存関係にある場合に問題となります
– この問題はデフォルトの臨時記号スタイルでは発生しません。この問題は、問題となる音符に !
や ?
を手動で付け加えることによって解決できます。
臨時記号の忠告的なキャンセルは 1 つ前の小節を見て行われます。しかしながら、\repeat volta N
セクションの後にくる
\alternative
ブロックでは、キャンセルの算出はその前に 譜刻された 小節ではなく、その前に 演奏された 小節を見て行われると演奏者は予想します。以下の例では、2 番目の差し替え小節の中にあるナチュラル c
にナチュラル記号は必要ありません。
以下の方法で解決できます:
局部的に臨時記号スタイルを forget
に変更する関数を定義します:
forget = #(define-music-function (music) (ly:music?) #{ \accidentalStyle forget #music \accidentalStyle modern #}) { \accidentalStyle modern \time 2/4 \repeat volta 2 { c'2 } \alternative { cis' \forget c' } }
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 自動臨時記号 ] | [ 上へ : ピッチを表示する ] | [ 符頭 > ] |
音域
用語 音域 (ambitus) は、音楽のある部分の中にあるボイスがとるピッチの範囲を示します。さらに、ある楽器が演奏することができるピッチ範囲を示すこともあるかもしれません。音域をボーカル パートに譜刻することによって、歌い手はそのパートの音域が歌い手の能力と一致するかどうかを容易に見極めることができます。
音域は、楽曲の開始点で、最初の音部記号の近くに記されます。範囲は最低ピッチと最高ピッチを表す 2 つの音符によってグラフィカルに示されます。臨時記号は、その臨時記号が調号の一部でない場合にのみ譜刻されます。
\layout { \context { \Voice \consists Ambitus_engraver } } \relative { aes' c e2 cis,1 }
Selected Snippets
音域をボイスごとに追加する
音域をボイスごとに追加することができます。この場合、衝突を避けるために
Ambitus
を手動で移動する必要があります。
\new Staff << \new Voice \with { \consists "Ambitus_engraver" } \relative c'' { \override Ambitus.X-offset = #2.0 \voiceOne c4 a d e f1 } \new Voice \with { \consists "Ambitus_engraver" } \relative c' { \voiceTwo es4 f g as b1 } >>
複数のボイスを持つ譜での音域
Staff
コンテキストに Ambitus_engraver
を追加すると、譜にボイスが複数ある場合でも、譜ごとに音域を表示します。
\new Staff \with { \consists "Ambitus_engraver" } << \new Voice \relative c'' { \voiceOne c4 a d e f1 } \new Voice \relative c' { \voiceTwo es4 f g as b1 } >>
音域の隙間を変更する
音域表示において、デフォルトの符頭と線との隙間を変更することができます。
\layout { \context { \Voice \consists "Ambitus_engraver" } } \new Staff { \time 2/4 % Default setting c'4 g'' } \new Staff { \time 2/4 \override AmbitusLine.gap = #0 c'4 g'' } \new Staff { \time 2/4 \override AmbitusLine.gap = #1 c'4 g'' } \new Staff { \time 2/4 \override AmbitusLine.gap = #1.5 c'4 g'' }
参照
音楽用語集: ambitus
コード断片集: ピッチ
内部リファレンス: Ambitus_engraver, Voice, Staff, Ambitus, AmbitusAccidental, AmbitusLine, AmbitusNoteHead, ambitus-interface
既知の問題と警告
複数のボイスがある場合にボイスごとに音域をとることによって生じる音域の衝突を処理するシステムはありません。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 音域 ] | [ 上へ : ピッチ ] | [ 特殊な符頭 > ] |
1.1.4 符頭
このセクションでは符頭を変更する方法について説明します。
特殊な符頭 | ||
演奏を容易にする記譜法の符頭 | ||
シェイプ ノートの符頭 | ||
即興 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 符頭 ] | [ 上へ : 符頭 ] | [ 演奏を容易にする記譜法の符頭 > ] |
特殊な符頭
符頭を変更することができます:
\relative c'' { c4 b \override NoteHead.style = #'cross c4 b \revert NoteHead.style a b \override NoteHead.style = #'harmonic a b \revert NoteHead.style c4 d e f }
すべての符頭スタイルを調べるには、符頭のスタイル を参照してください。
cross
スタイルはさまざまな音楽的意図を表すために使用されます。以下の定義済みコマンドは符頭を譜コンテキストとタブ譜コンテキストで変更し、何らかの音楽的意味を表すために使用することができます:
\relative { c''4 b \xNotesOn a b c4 b \xNotesOff c4 d }
この定義済みコマンドの音楽関数は、譜コンテキストやタブ譜コンテキストの和音の内外で使用して、符頭を×の形にすることができます:
\relative { c''4 b \xNote { e f } c b < g \xNote c f > b }
\xNote
, \xNotesOn
それに \xNotesOff
の同義語として
\deadNote
, \deadNotesOn
それに \deadNotesOff
を使用することができます。dead note という用語はギタリストが一般的に使用します。
また、ダイアモンド形のための似たような短縮記法があります:
\relative c'' { <c f\harmonic>2 <d a'\harmonic>4 <c g'\harmonic> f\harmonic }
定義済みコマンド
\harmonic
,
\xNotesOn
,
\xNotesOff
,
\xNote
.
参照
コード断片集: ピッチ
記譜法リファレンス: 符頭のスタイル, 和音の音符, ハーモニクスとデッド ノートの指示
内部リファレンス: note-event, Note_heads_engraver, Ledger_line_engraver, NoteHead, LedgerLineSpanner, note-head-interface, ledger-line-spanner-interface
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 特殊な符頭 ] | [ 上へ : 符頭 ] | [ シェイプ ノートの符頭 > ] |
演奏を容易にする記譜法の符頭
‘演奏を容易にする’ 符頭は、符頭の中に音符名を含みます。これは、初心者のための楽譜で使用されます。文字を読みやすくするために、大きなフォント サイズで譜刻すべきです。大きなフォントで譜刻する方法は、譜サイズを設定する を参照してください。
#(set-global-staff-size 26) \relative c' { \easyHeadsOn c2 e4 f g1 \easyHeadsOff c,1 }
定義済みコマンド
\easyHeadsOn
,
\easyHeadsOff
Selected Snippets
演奏を容易にする記譜法で数字を使用する
演奏を容易にする記譜法では、NoteHead
オブジェクトの note-names
プロパティを使用し、符頭の内側に表示される文字を決定しています。このプロパティをオーバライドすることで、スケールの度数を表す数字を符頭に表示することができます。
全ての符頭オブジェクトに対してこれを適用するために、簡単なエングラーバを作成することができます。
#(define Ez_numbers_engraver (make-engraver (acknowledgers ((note-head-interface engraver grob source-engraver) (let* ((context (ly:translator-context engraver)) (tonic-pitch (ly:context-property context 'tonic)) (tonic-name (ly:pitch-notename tonic-pitch)) (grob-pitch (ly:event-property (event-cause grob) 'pitch)) (grob-name (ly:pitch-notename grob-pitch)) (delta (modulo (- grob-name tonic-name) 7)) (note-names (make-vector 7 (number->string (1+ delta))))) (ly:grob-set-property! grob 'note-names note-names)))))) #(set-global-staff-size 26) \layout { ragged-right = ##t \context { \Voice \consists \Ez_numbers_engraver } } \relative c' { \easyHeadsOn c4 d e f g4 a b c \break \key a \major a,4 b cis d e4 fis gis a \break \key d \dorian d,4 e f g a4 b c d }
参照
記譜法リファレンス: 譜サイズを設定する
コード断片集: ピッチ
内部リファレンス: note-event, Note_heads_engraver, NoteHead, note-head-interface
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 演奏を容易にする記譜法の符頭 ] | [ 上へ : 符頭 ] | [ 即興 > ] |
シェイプ ノートの符頭
シェイプ ノート記譜法では、符頭の形状は音階の中での音符の位置付けに対応します。この表記は 19 世紀のアメリカの歌集で一般的なものです。シェイプ ノートの符頭は Sacred Harp、Southern Harmony、Funk (Harmonia Sacra)、Walker、それに Aiken (Christian Harmony) スタイルで使用されます:
\relative c'' { \aikenHeads c, d e f g2 a b1 c \break \aikenThinHeads c,4 d e f g2 a b1 c \break \sacredHarpHeads c,4 d e f g2 a b1 c \break \southernHarmonyHeads c,4 d e f g2 a b1 c \break \funkHeads c,4 d e f g2 a b1 c \break \walkerHeads c,4 d e f g2 a b1 c \break }
符頭の形状は音階の中での位置に対応し、音階のベースは \key
コマンドによって決まります。マイナーで記述している場合、符頭の形状を決定する音階ステップはメジャーの場合との相対関係になります:
\relative c'' { \key a \minor \aikenHeads a b c d e2 f g1 a \break \aikenHeadsMinor a,4 b c d e2 f g1 a \break \aikenThinHeadsMinor a,4 b c d e2 f g1 a \break \sacredHarpHeadsMinor a,2 b c d \break \southernHarmonyHeadsMinor a2 b c d \break \funkHeadsMinor a2 b c d \break \walkerHeadsMinor a2 b c d \break }
定義済みコマンド
\aikenHeads
,
\aikenHeadsMinor
,
\aikenThinHeads
,
\aikenThinHeadsMinor
,
\funkHeads
,
\funkHeadsMinor
,
\sacredHarpHeads
,
\sacredHarpHeadsMinor
,
\southernHarmonyHeads
,
\southernHarmonyHeadsMinor
,
\walkerHeads
,
\walkerHeadsMinor
Selected Snippets
Aiken head thin variant noteheads
Aiken head white notes get harder to read at smaller staff sizes, especially with ledger lines. Losing interior white space makes them appear as quarter notes.
\score { { \aikenHeads c''2 a' c' a % Switch to thin-variant noteheads \set shapeNoteStyles = ##(doThin reThin miThin faThin sol laThin tiThin) c'' a' c' a } }
音階に応じて異なる符頭のスタイルを適用する
shapeNoteStyles
プロパティは、音階
(調号と、tonic
プロパティによる) に応じて符頭の形を変化させるために用いることができます。このプロパティは形のセットを与える必要がありますが、(triangle
, cross
, xcircle
などの図形表現を用いて) 自由に定義できるほか、階名を使用して、アメリカの古い伝統の形を基に定義することができます (いくつかのラテン語の階名も使用することができます)。
古いアメリカの歌集を模倣するには、\aikenHeads
や
\sacredHarpHeads
といった定義済みのコマンドを符頭のスタイルとして用いることができます。
この例では、シェイプ ノートの符頭を得るいくつかの方法を示しています。また、和声機能と符頭の対応を維持しながらメロディを移調する機能も示しています。
fragment = { \key c \major c2 d e2 f g2 a b2 c } \new Staff { \transpose c d \relative c' { \set shapeNoteStyles = ##(do re mi fa #f la ti) \fragment } \break \relative c' { \set shapeNoteStyles = ##(cross triangle fa #f mensural xcircle diamond) \fragment } }
すべての符頭スタイルを調べるには、符頭のスタイル を参照してください。
参照
コード断片集: ピッチ
記譜法リファレンス: 符頭のスタイル
内部リファレンス: note-event, Note_heads_engraver, NoteHead, note-head-interface
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < シェイプ ノートの符頭 ] | [ 上へ : 符頭 ] | [ リズム > ] |
即興
即興はしばしばスラッシュ形の符頭で記されます。そのような表記では、演奏者は好みのピッチを選ぶことができますが、指定されたリズムに従って演奏する必要があります。このような符頭は以下のようにして作成することができます:
\new Voice \with { \consists Pitch_squash_engraver } \relative { e''8 e g a a16( bes) a8 g \improvisationOn e8 ~ 2 ~ 8 f4 f8 ~ 2 \improvisationOff a16( bes) a8 g e }
定義済みコマンド
\improvisationOn
,
\improvisationOff
参照
コード断片集: ピッチ
内部リファレンス: Pitch_squash_engraver, Voice, RhythmicStaff
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 即興 ] | [ 上へ : 音楽記譜法 ] | [ リズムを記述する > ] |
1.2 リズム
このセクションではリズム、休符、演奏時間、連桁、小節について議論します。
1.2.1 リズムを記述する | ||
1.2.2 休符を記述する | ||
1.2.3 リズムを表示する | ||
1.2.4 連桁 | ||
1.2.5 小節 | ||
1.2.6 特殊なリズム関連事項 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < リズム ] | [ 上へ : リズム ] | [ 演奏時間 > ] |
1.2.1 リズムを記述する
演奏時間 | ||
連符 | ||
演奏時間を変更する | ||
タイ |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < リズムを記述する ] | [ 上へ : リズムを記述する ] | [ 連符 > ] |
演奏時間
演奏時間は数とドットで指定されます。演奏時間はその演奏時間の逆数で入力されます。例えば、4 分音符は 4
で入力され (1/4 の音符だから)、半音符は 2
で入力されます (1/2 の音符だから)。全音符よりも長い音符を入力するには、\longa
コマンド (全音符の 4 倍)
と \breve
コマンド (全音符の 2 倍) を使う必要があります。128 分音符のような短い音符を指定することもできます。それよりも短い音価を指定することも可能ですが、必ず連桁付きの音符となります。
音符の演奏時間は数とドットで入力します。入力された数は音符の長さの逆数となります。例えば、4 分音符は 1/4 の長さを持つため、4
と入力します。2 分音符は 2
、8 分音符は 8
となります。1024
までの短い音符は入力できますが、それよりも短い音符は連桁で繋がれた状態でしか表示できません。連桁 を参照してください。
全音符よりも長い音符については、\longa
– ブレヴィスの 2 倍 –
や \breve
コマンドを使用してください。ブレヴィスの 4 倍の長さは
\maxima
コマンドで入力できますが、古代の記譜法でしか表示できません。古代の記譜法 を参照してください。
\relative { \time 8/1 c''\longa c\breve c1 c2 c4 c8 c16 c32 c64 c128 c128 }
同じ例で自動連桁を off にしてみます。
\relative { \time 8/1 \autoBeamOff c''\longa c\breve c1 c2 c4 c8 c16 c32 c64 c128 c128 }
独立した演奏時間 – ピッチを持たず、演奏時間だけの音符 – が音楽内に現れた場合、前の音符や和音からピッチを受け継ぎます。
\relative { \time 8/1 c'' \longa \breve 1 2 4 8 16 32 64 128 128 }
独立したピッチ – 演奏時間を持たず、ピッチだけの音符 – が音楽内に現れた場合、前の音符や和音から演奏時間を受け継ぎます。前の演奏時間が存在しない場合、デフォルトは 4
つまり 4 分音符となります。
\relative { a' a a2 a a4 a a1 a }
付点音符の演奏時間を得るには、演奏時間の後にドット (.
) を置きます。2 重付点音符は 2 つのドットを置き、3 重付点音符は 3 つのドットなどとなります。
\relative { a'4 b c4. b8 a4. b4.. c8. }
譜線を避けるために、音符のドットは通常上に移動されます。しかし、多声の場合では、必要ならば手動でドットの位置を譜線の上か下に移動することができます。Direction and placement
を参照してください。
演奏時間の中には数字とドットだけでは表せず、2 つ以上の音符をタイでつなげるしかない場合があります。詳細は タイ を参照してください。
歌詞音節と音符を揃えるために演奏時間を指定する方法については 声楽 を参照してください。
音符を演奏時間に比例させた間隔で配置することができます。プロポーショナル ノーテーション を参照してください。
定義済みコマンド
\autoBeamOn
,
\autoBeamOff
,
\dotsUp
,
\dotsDown
,
\dotsNeutral
Selected Snippets
二全音符を変更する
二全音符の表示を、符頭の左右に線が 1 本あるバロック式の表示から、2 本あるものに変更することができます。
\relative c'' { \time 4/2 c\breve | \override Staff.NoteHead.style = #'altdefault b\breve \override Staff.NoteHead.style = #'baroque b\breve \revert Staff.NoteHead.style a\breve }
音符ごとに付点の数を独立して変更する
音符ごとに、入力したドットの数とは独立して付点の数を変更することができます。
\relative c' { c4.. a16 r2 | \override Dots.dot-count = #4 c4.. a16 r2 | \override Dots.dot-count = #0 c4.. a16 r2 | \revert Dots.dot-count c4.. a16 r2 | }
参照
音楽用語集: breve, longa, maxima, note value, Duration names notes and rests
記譜法リファレンス: 連桁, タイ, 符幹, リズムを記述する, 休符を記述する, 声楽, 古代の記譜法, プロポーショナル ノーテーション
コード断片集: リズム
既知の問題と警告
休符の演奏時間には基本的に限界 (最大値や最小値) がありませんが、図柄の数には限界があり、1024
から \maxima
までの休符を譜刻することができます。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 演奏時間 ] | [ 上へ : リズムを記述する ] | [ 演奏時間を変更する > ] |
連符
連符は \tuplet
を使った音楽表記から作られ、音楽表記の速度に分数を掛け合わせます。
\tuplet fraction { music }
分数 (fraction) の分子が音符の上または下に譜刻され、オプションで囲みが付きます。最も一般的な連符は 3 連符です。(3 つの音符が音符 2 つ分の演奏時間で演奏されます。)
\relative { a'2 \tuplet 3/2 { b4 4 4 } c4 c \tuplet 3/2 { b4 a g } }
連符の長いパッセージを入力するとき、各グループに別々の \tuplet
コマンドを記述することは不便です。音楽の前に一つの連符グループの長さを直接指定することで、連符を自動的にグループ化することができます:
\relative { g'2 r8 \tuplet 3/2 8 { cis16 d e e f g g f e } }
連符囲みは手動で譜の上または下に配置することができます:
\relative { \tupletUp \tuplet 3/2 { c''8 d e } \tupletNeutral \tuplet 3/2 { c8 d e } \tupletDown \tuplet 3/2 { f,8 g a } \tupletNeutral \tuplet 3/2 { f8 g a } }
連符はネストすることができます:
\relative { \autoBeamOff c''4 \tuplet 5/4 { f8 e f \tuplet 3/2 { e[ f g] } } f4 }
ネストされた連符の演奏開始点が同時である場合に、それらの連符を変更するには
\tweak
を使う必要があります。
\tweak
コマンド を参照してください。
多くの古い版で好まれるように、連符囲みはスラーに置き換えることができます:
\relative { \tuplet 3/2 4 { \override TupletBracket.tuplet-slur = ##t c'4 e8 d4 f8 \override TupletBracket.bracket-visibility = ##t e f g f e d } c1 }
デフォルトでは、連符囲みは、それがまたがるすべての音符が連桁でつながれない場合にのみ譜刻されます。場合によっては (上記の例のようにスラーを使用するなど)、次のスニペットのいずれかで詳しく説明されているように、bracket-visibility
プロパティを使用して、その動作を変更することが望ましい場合があります。
より一般的には、オブジェクトの可視性 で説明されているように、
TupletBracket
オブジェクトと TupletNumber
オブジェクトのどちらかまたは両方を非表示または表示できます。しかしながら、連符囲みを譜刻せずに音符の演奏時間をより柔軟に変更する方法も
演奏時間を変更する で紹介されています。
定義済みコマンド
\tupletUp
,
\tupletDown
,
\tupletNeutral
.
Selected Snippets
一つの tuplet コマンドで複数の連符を入力する
tupletSpannerDuration
プロパティは、一つの \tuplet
コマンド内にある音符が、どれぐらいの長さで連符一つ分を作るかを指定します。これにより、一つの \tuplet
コマンドで多くの連続した連符を作成することができ、入力が簡潔になります。
tupletSpannerDuration
を設定する方法はいくつかあります。\tupletSpan
コマンドは、プロパティを与えられた長さにセットし、長さではなく \default
が与えられた場合はリセットします。もう一つの方法は、\tuplet
のオプション引数を用いることです。
\relative c' { \time 2/4 \tupletSpan 4 \tuplet 3/2 { c8^"\\tupletSpan 4" c c c c c } \tupletSpan \default \tuplet 3/2 { c8^"\\tupletSpan \\default" c c c c c } \tuplet 3/2 4 { c8^"\\tuplet 3/2 4 {...}" c c c c c } }
連符の数字を変更する
デフォルトでは、連符の上には \tuplet
の引数として与えられた数字のみが表示されます。
代わりに、3:2 のような形の数字を表示することができます。また、数字を非表示にすることもできます。
\relative c'' { \tuplet 3/2 { c8 c c } \tuplet 3/2 { c8 c c } \override TupletNumber.text = #tuplet-number::calc-fraction-text \tuplet 3/2 { c8 c c } \omit TupletNumber \tuplet 3/2 { c8 c c } }
デフォルトでない連符の数字
LilyPond は連符に表示される数字として、実際の音価の比率とは異なる値を整形して表示する関数が用意されています。連符の数や比だけでなく、音価を示す音符を表示することもできます。
\relative c'' { \once \override TupletNumber.text = #(tuplet-number::non-default-tuplet-denominator-text 7) \tuplet 3/2 { c4. c4. c4. c4. } \once \override TupletNumber.text = #(tuplet-number::non-default-tuplet-fraction-text 12 7) \tuplet 3/2 { c4. c4. c4. c4. } \once \override TupletNumber.text = #(tuplet-number::append-note-wrapper (tuplet-number::non-default-tuplet-fraction-text 12 7) (ly:make-duration 3 0)) \tuplet 3/2 { c4. c4. c4. c4. } \once \override TupletNumber.text = #(tuplet-number::append-note-wrapper tuplet-number::calc-denominator-text (ly:make-duration 2 0)) \tuplet 3/2 { c8 c8 c8 c8 c8 c8 } \once \override TupletNumber.text = #(tuplet-number::append-note-wrapper tuplet-number::calc-fraction-text (ly:make-duration 2 0)) \tuplet 3/2 { c8 c8 c8 c8 c8 c8 } \once \override TupletNumber.text = #(tuplet-number::fraction-with-notes (ly:make-duration 2 1) (ly:make-duration 3 0)) \tuplet 3/2 { c4. c4. c4. c4. } \once \override TupletNumber.text = #(tuplet-number::non-default-fraction-with-notes 12 (ly:make-duration 3 0) 4 (ly:make-duration 2 0)) \tuplet 3/2 { c4. c4. c4. c4. } }
連符の括弧の可視性をコントロールする
連符の括弧の可視性についての挙動は、デフォルトでは同じ長さの連桁がある場合に表示されないようになっています。これをコントロールするには、bracket-bisibility
プロパティを #t
(常に表示),
#'if-no-beam
(連桁が無い場合にのみ表示。デフォルトの振る舞い),
#f
(常に非表示) のいずれかにセットします。
3 つ目の選択肢は、実際には TupletBracket
オブジェクトを出力から完全に省略することに相当します。
music = \relative c'' { \tuplet 3/2 { c16[ d e } f8] \tuplet 3/2 { c8 d e } \tuplet 3/2 { c4 d e } } \new Voice { \relative c' { \override Score.TextMark.non-musical = ##f \textMark "default" \music \override TupletBracket.bracket-visibility = #'if-no-beam \textMark \markup \typewriter "'if-no-beam" \music \override TupletBracket.bracket-visibility = ##t \textMark \markup \typewriter "#t" \music \override TupletBracket.bracket-visibility = ##f \textMark \markup \typewriter "#f" \music \omit TupletBracket \textMark \markup \typewriter "omit" \music } }
連桁で繋がれた連符の途中で改行する
この作為的な例は、連桁で繋がれた連符の途中で手動あるいは自動の改行を許可する方法を示しています。ただし、拍に収まらない連符は手動で連桁を繋ぐ必要があります。
\layout { \context { \Voice % Permit line breaks within tuplets \remove "Forbid_line_break_engraver" % Allow beams to be broken at line breaks \override Beam.breakable = ##t } } \relative c'' { a8 \repeat unfold 5 { \tuplet 3/2 { c[ b a] } } % Insert a manual line break within a tuplet \tuplet 3/2 { c[ b \bar "" \break a] } \repeat unfold 5 { \tuplet 3/2 { c[ b a] } } c8 }
参照
音楽用語集: triplet, tuplet, polymetric
学習マニュアル: Tweaking methods
記譜法リファレンス:
向きと配置,
オブジェクトの可視性,
時間管理,
演奏時間を変更する,
\tweak
コマンド,
多拍子記譜法
コード断片集: Rhythms
内部リファレンス: TupletBracket, TupletNumber, TimeScaledMusic.
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 連符 ] | [ 上へ : リズムを記述する ] | [ タイ > ] |
演奏時間を変更する
*N/M
(または、M
が 1 の場合は *N
) を演奏時間の後に付け加えることによって、単一の音符、休符、和音の演奏時間を分数 N/M
倍することができます。要素は評価結果が数字または *#(ly:music-length music)
のような音楽的な長さとなる Scheme 表記を用いて加えることもできます。これは、音符や複数小節の休符の長さを音楽変数から導き出した長さにするために、
‘1’ の長さを調整するのに便利です。
要素の追加は作り出される音符や休符の見た目には影響を与えませんが、変更された演奏時間は小節の中での位置を算出するためと、MIDI 出力での演奏時間を決定するために使用されます。掛け合わせる要素は *L*M/N
のように組み合わせることができます。掛け合わせる要素は演奏時間の一部です: 音符の演奏時間が指定されていない場合、前の音符から取ったデフォルトの演奏時間に要素が掛け合わされます。
以下の例では、最初の 3 つの音符で 2 拍ですが、連符囲みは譜刻されていません。
\relative { \time 2/4 % 演奏時間を変更して 3 連符にします a'4*2/3 gis a % 通常の演奏時間 a4 a % 和音の演奏時間を 2 倍にします <a d>4*2 % 演奏時間は 4 分音符ですが、見た目は 16 分音符です b16*4 c4 }
空白休符の演奏時間も掛け算によって変更できます。これは s1*23
のように多くの小節をスキップする場合に役に立ちます。
同様の方法で分数を使うことで、長く伸びた音楽を圧縮することができます。それによりそれぞれの音符、和音、休符には分数が掛け合わせられたかのようになります。これは楽譜要素の見た目をそのままにして、要素の内部演奏時間に与えられた伸縮比の要素、たいていは分子/分母を掛け合わせます。ここで、音楽がどのように圧縮され、伸張されるかを示す例を挙げます:
\relative { \time 2/4 % 通常の演奏時間 <c'' a>4 c8 a % 2/3 を掛けます \scaleDurations 2/3 { <c a f>4. c8 a f } % 2 を掛けます \scaleDurations 2 { <c' a>4 c8 b } }
このコマンドの応用例の 1 つは多拍子記譜法での使用です。多拍子記譜法 を参照してください。
参照
コード断片集: Rhythms
既知の問題と警告
小節内での位置の計算はその小節の音符に適用される全ての演奏時間の伸縮や、それより前の小節からの計算結果を考慮する必要があります。この計算は分数を用いて行われています。計算の途中で分子あるいは分母が 2^30 を超えると、プログラムの実行と譜刻はその時点でエラーを発生せずに止まります。 (訳注: 内部的に、分子と分母をそれぞれ整数型として持つ分数型を用いているため、あまりに複雑な演奏時間の伸縮を行うと、計算の途中で分子や分母が2^30 を超えてしまい譜刻が途中で止まってしまうということです。)
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 演奏時間を変更する ] | [ 上へ : リズムを記述する ] | [ 休符を記述する > ] |
タイ
タイは同じピッチの隣り合う符頭を結び付けます。タイは音符の演奏時間を伸張する効果があります。
Note: タイを音楽的なフレーズを表す スラー や フレージング スラー と混同しないでください。タイは音符の演奏時間を伸ばす働きを持ち、音価を増やすドットに似ています。
タイは、結ばれる 2 つの音符の 1 つ目にチルド記号 (~
) を付加することで入力します。この記号は音符が次の音符とタイで結ばれるということを示し、次の音符は同じピッチでなければなりません。
{ a'2~ 4~ 16 r r8 }
タイでは、演奏時間のみを入力することで‘最後に明示されたピッチ’を用いることができます:
{ a'2~ 4~ 16 r r8 }
タイは、音符が小節線をまたがる場合か、リズムを表すためにドットを使うことができない場合に使用されます。さらに、以下の例のように音価が小節の区画をまたがる場合にも使用されます (訳者補足: 4/4 拍子では 1 小節は 1/4, 1/4, 1/4, 1/4 の区画に分けられます。下の例の第 2 小節では半音符が区画をまたがっているので良くない書き方であり、第 1 小節のように書くべきです。):
\relative { r8 c'4.~ 4 r4 | r8^"こうすべきではありません" c2~ 8 r4 }
小節線をまたいで多くの音符をタイで結び付ける必要がある場合、自動音符分割を使用したほうが簡単かもしれません – 自動音符分割 を参照してください。これは長い音符を自動的に分割して、小節線をまたがる音符をタイで結び付けます。
タイを和音に適用する場合、ピッチが一致する符頭すべてが結ばれます。一致する符頭が無い場合、タイは作成されません。和音の内部にタイを置くことによって、和音の一部だけをタイで結ぶことができます。
\relative c' { <c e g>2~ 2 | <c e g>4~ <c e g c> <c~ e g~ b> <c e g b> | }
繰り返しの 2 回目の差し替え部分はタイで結ばれた音符で始まっています。そのような繰り返し部分でのタイは以下のように指定する必要があります:
\relative { \repeat volta 2 { c'' g <c e>2~ } \alternative { % 1 番目の差し替え部分: 後に続く音符は通常通りタイで結ばれます { <c e>2. r4 } % 2 番目の差し替え部分: 後に続く音符にはリピート用のタイを付けます { <c e>2\repeatTie d4 c } } }
L.v. タイ (レセ ヴィブレ: laissez vibrer) は音符を終端で途切れさせないということを示します。ピアノ、ハープ、他の弦楽器、それに打楽器のための楽譜で使用されます。L.v. タイは以下のように入力します:
<c' f' g'>1\laissezVibrer
タイを手動で上向きまたは下向きに配置することができます。 向きと配置 を参照してください。
タイを破線、点線、実線と破線の組み合わせにすることができます。
\relative c' { \tieDotted c2~ 2 \tieDashed c2~ 2 \tieHalfDashed c2~ 2 \tieHalfSolid c2~ 2 \tieSolid c2~ 2 }
破線パターンのカスタマイズを指定することができます:
\relative c' { \tieDashPattern #0.3 #0.75 c2~ 2 \tieDashPattern #0.7 #1.5 c2~ 2 \tieSolid c2~ 2 }
タイの破線パターン定義の構造は、スラーの破線パターン定義と同じです。複雑な破線パターンについての更なる情報は スラー を参照してください。
タイとの間に隙間を作りたいオブジェクトには、whiteout レイアウト プロパティと layer レイアウト プロパティをオーバライドしてください。
\relative { \override Tie.layer = #-2 \override Staff.TimeSignature.layer = #-1 \override Staff.KeySignature.layer = #-1 \override Staff.TimeSignature.whiteout = ##t \override Staff.KeySignature.whiteout = ##t b'2 b~ \time 3/4 \key a \major b r4 }
定義済みコマンド
\tieUp
,
\tieDown
,
\tieNeutral
,
\tieDotted
,
\tieDashed
,
\tieDashPattern
,
\tieHalfDashed
,
\tieHalfSolid
,
\tieSolid
Selected Snippets
アルペジオにタイを使用する
タイはアルペジオを表記する際にも使われます。この場合、タイの始端となる複数の音符は同時である必要はありません。これは tieWaitForNote
プロパティを #t
にセットすることで実現できます。この機能は例えば、和音のトレモロにタイを繋ぐ場合などに有用ですが、通常の音符に対して用いることもできます。
\relative c' { \set tieWaitForNote = ##t \grace { c16[ ~ e ~ g] ~ } <c, e g>2 \repeat tremolo 8 { c32 ~ c' ~ } <c c,>1 e8 ~ c ~ a ~ f ~ <e' c a f>2 \tieUp c8 ~ a \tieDown \tieDotted g8 ~ c g2 }
タイを手動で譜刻する
タイは TieColumn
オブジェクトの tie-configuration
プロパティを変更することで手動で譜刻することができます。最初の数値が中央の譜線からの距離を譜スペースの半分の単位で表し、次の数値が向きを表します (1 = 上, -1 = 下)。
LilyPond は最初の数値の正確な値と不正確な値を区別することに注意してください。正確な値 (つまり、整数または (/ 4 5)
のような分数) を使用する場合、値はおおよその垂直位置として機能し、LilyPond によってさらに調整され、タイが譜線を避けるようにします。浮動小数点数のような不正確な値を使用する場合は、それ以上調整せずに垂直位置と見なされます。
\relative c' { <c e g>2~ <c e g> \override TieColumn.tie-configuration = #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1)) <c e g>2~ <c e g> \override TieColumn.tie-configuration = #'((0 . 1) (-2 . 1) (-4 . 1)) <c e g>2~ <c e g> }
参照
音楽用語集: tie, laissez vibrer
コード断片集: Expressive marks, Rhythms
内部リファレンス: LaissezVibrerTie, LaissezVibrerTieColumn, TieColumn, Tie
既知の問題と警告
タイがアクティブなときに譜を切り換えても斜めのタイは作られません。
タイの最中に音部記号やオクターブを変更することはきちんと定義されていません。そのような場合には、スラーを用いる方が好ましいです。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < タイ ] | [ 上へ : リズム ] | [ 休符 > ] |
1.2.2 休符を記述する
休符は音楽表記の中の音楽の一部として入力されます。
休符 | ||
不可視の休符 | ||
小節単位の休符 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 休符を記述する ] | [ 上へ : 休符を記述する ] | [ 不可視の休符 > ] |
休符
休符は音符名 r
を持つ音符として入力されます。全休符よりも長い演奏時間を持つ休符には以下に示す定義済みコマンドを使用します:
\new Staff { % この 2 行は例を見やすくするためのものです \time 16/1 \omit Staff.TimeSignature % 八全休符を譜刻します。二全休符 4 つと等価です r\maxima % 四全休符を譜刻します。二全休符 2 つと等価です r\longa % 二全休符を譜刻します。 r\breve r1 r2 r4 r8 r16 r32 r64 r128 }
全休符 – 小節の中心に置かれます – は複数小節の休符として入力する必要があります。複数小節の休符は多くの小節に対してと同様に単一の小節に対しても使用することができます。詳細は 小節単位の休符 を参照してください。
休符の垂直方向の位置を明示的に指定するには、音符の後に続けて \rest
を記述します。その音符が譜上で占める位置に、その音符の演奏時間を持つ休符が配置されます。これは多声部音楽を手動で精密にフォーマットすることを考慮したものです。なぜなら、自動休符フォーマットでは多声部音楽の休符の衝突を回避できないからです。
\relative { a'4\rest d4\rest }
Selected Snippets
休符のスタイル
休符には様々なスタイルが使用できます。
\new Staff \relative c { \omit Score.TimeSignature \cadenzaOn \override Staff.Rest.style = #'mensural r\maxima^\markup \typewriter { mensural } r\longa r\breve r1 r2 r4 r8 r16 s32 s64 s128 s128 \bar "" \break \override Staff.Rest.style = #'neomensural r\maxima^\markup \typewriter { neomensural } r\longa r\breve r1 r2 r4 r8 r16 s32 s64 s128 s128 \bar "" \break \override Staff.Rest.style = #'classical r\maxima^\markup \typewriter { classical } r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 s128 \bar "" \break \override Staff.Rest.style = #'z r\maxima^\markup \typewriter { z-style } r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 s128 \bar "" \break \override Staff.Rest.style = #'default r\maxima^\markup \typewriter { default } r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 s128 }
参照
記譜法リファレンス: 小節単位の休符
コード断片集: Rhythms
内部リファレンス: Rest
既知の問題と警告
休符の演奏時間には基本的に限界がありません (最大値としても、最小値としても)。しかしながら、図柄の数には限界があります: 1024 分から全音符の 8 倍までの休符を譜刻することができます。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 休符 ] | [ 上へ : 休符を記述する ] | [ 小節単位の休符 > ] |
不可視の休符
不可視の休符 (‘空白休符’ とも呼ばれます) は音符名 s
を持つ音符として入力することができます:
\relative c'' { c4 c s c | s2 c | }
空白休符は音符モードと和音モードでのみ利用可能です。他のモードでは、例えば歌詞を入力している場合、音楽モーメントをスキップするには
\skip
を使用します。\skip
は明示的な演奏時間を必要としますが、\addlyrics
や \lyricsto
を使っていて、歌詞が関係するメロディーの音符から演奏時間を得ている場合は無視されます。
<< { a'2 \skip2 a'2 a'2 } \new Lyrics { \lyricmode { foo2 \skip 1 bla2 } } >>
\skip
はコマンドであるため、s
とは異なり後に続く音符のデフォルト演奏時間には影響を与えません。
<< { \repeat unfold 8 { a'4 } } { a'4 \skip 2 a' | s2 a' } >>
空白休符は、音符や休符と同様に、Staff
や Voice
が存在しない場合に、それらを暗黙的に作成します:
{ s1 s s }
\skip
はただ音楽的な時間をスキップするだけです。これはいかなる種類の出力も作成しません。
% これは有効な入力ですが、何もしません { \skip 1 \skip1 \skip 1 }
参照
学習マニュアル: Visibility and color of objects
記譜法リファレンス: 隠された音符, オブジェクトの可視性
コード断片集: Rhythms
内部リファレンス: SkipMusic
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 不可視の休符 ] | [ 上へ : 休符を記述する ] | [ リズムを表示する > ] |
小節単位の休符
1 つまたは複数の小節に対する休符は音符名として大文字の ‘R’ を持つ音符として入力します。これらの演奏時間は、演奏時間を変更する で説明されているように、演奏時間の乗数を使用する機能を含めて、音符に使用される演奏時間表記と同じように入力されます。
% 休みの小節は 1 つの小節にまとめられます \compressMMRests { R1*4 R1*24 R1*4 b'2^"Tutti" b'4 a'4 }
上記の例は、空の小節を圧縮する で説明されているように、複数の空の小節を圧縮する方法も示しています。
複数小節にまたがる休符の演奏時間は、常に 1 つまたは複数の小節の長さに等しくなければなりません。したがって、一部の拍子記号では、ドットや分数を使う必要があります:
\compressMMRests { \time 2/4 R1 | R2 | \time 3/4 R2. | R2.*2 | \time 13/8 R1*13/8 | R1*13/8*12 | \time 10/8 R4*5*4 | }
1 小節分の休符は、拍子次第で全休符または二全休符のどちらかとして、小節の中央に譜刻されます。
\time 4/4 R1 | \time 6/4 R1*3/2 | \time 8/4 R1*2 |
マークアップを複数小節にまたがる休符に付け加えることができます。
\compressEmptyMeasures \time 3/4 R2.*10^\markup { \italic "ad lib." }
複数小節にまたがる休符が \partial
設定の直後にある場合、小節チェックの警告が表示されないかもしれません。
定義済みコマンド
\textLengthOn
,
\textLengthOff
,
\compressMMRests
Selected Snippets
複数小節にまたがる休符の長さをコントロールする
複数小節にまたがる休符の長さは、休符の長さに依存しますが、MultiMeasureRest.space-increment
によってコントロールされます。デフォルト値は 2.0
です。
\relative c' { \compressEmptyMeasures R1*2 R1*4 R1*64 R1*16 \override Staff.MultiMeasureRest.space-increment = 2.5 R1*2 R1*4 R1*64 R1*16 }
複数小節にまたがる休符の位置を変更する
通常の休符と異なり、音符に付加することによって複数小節にまたがる休符の位置を変更するコマンドは用意されていません。しかし、多声の音楽では、奇数番号のボイスと偶数番号のボイスで休符の位置が分けられます。複数小節にまたがる休符の位置は以下のようにコントロールできます:
\relative c'' { % Multi-measure rests by default are set under the fourth line R1 % They can be moved using an override \override MultiMeasureRest.staff-position = #-2 R1 \override MultiMeasureRest.staff-position = #0 R1 \override MultiMeasureRest.staff-position = #2 R1 \override MultiMeasureRest.staff-position = #3 R1 \override MultiMeasureRest.staff-position = #6 R1 \revert MultiMeasureRest.staff-position \break % In two Voices, odd-numbered voices are under the top line << { R1 } \\ { a1 } >> % Even-numbered voices are under the bottom line << { a1 } \\ { R1 } >> % Multi-measure rests in both voices remain separate << { R1 } \\ { R1 } >> % Separating multi-measure rests in more than two voices % requires an override << { R1 } \\ { R1 } \\ \once \override MultiMeasureRest.staff-position = #0 { R1 } >> % Using compressed bars in multiple voices requires another override % in all voices to avoid multiple instances being printed \compressMMRests << \revert MultiMeasureRest.direction { R1*3 } \\ \revert MultiMeasureRest.direction { R1*3 } >> }
複数小節にまたがる休符にマークアップを付加する
複数小節にまたがる休符に付加されるマークアップは、休符の上または下に中央揃えされます。マークアップが長い場合であっても、休符が広げられることはありません。休符をマークアップに合わせて広げる場合は、休符の前に空の和音を追加して、それにマークアップを付加してください。
このような方法で付加されたテキストは、空の和音が本来表示されるべき場所に合わせて左揃えされます。しかし、小節の長さをテキストに合わせるようにすれば、テキストが中央揃えされたように見えます。
\relative c' { \compressMMRests { \textLengthOn <>^\markup { [MAJOR GENERAL] } R1*19 <>_\markup { \italic { Cue: ... it is yours } } <>^\markup { A } R1*30^\markup { [MABEL] } \textLengthOff c4^\markup { CHORUS } d f c } }
参照
音楽用語集: multi-measure rest
記譜法リファレンス: 演奏時間, 演奏時間を変更する, 空の小節を圧縮する, テキスト, テキストをフォーマットする, テキスト スクリプト
コード断片集: Rhythms
内部リファレンス: MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript, MultiMeasureRestText
既知の問題と警告
複数小節にまたがる休符の上に運指記号を配置すると (例えば、R1*10-4
)、運指の数字が休みの小節数と衝突する可能性があります。
複数の通常の休符を自動的に単一の複数小節休符にまとめる方法はありません。
複数小節にまたがる休符が休符の衝突を引き起こすことはありません。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 小節単位の休符 ] | [ 上へ : リズム ] | [ 拍子 > ] |
1.2.3 リズムを表示する
拍子 | ||
メトロノーム記号 | ||
上拍 | ||
無韻律の音楽 | ||
多拍子記譜法 | ||
自動音符分割 | ||
旋律のリズムを示す |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < リズムを表示する ] | [ 上へ : リズムを表示する ] | [ メトロノーム記号 > ] |
拍子
拍子は以下のようにセットします:
\time 2/4 c''2 \time 3/4 c''2.
小節の途中で拍子記号を変更することについては、上拍で扱っています。
拍子は楽曲の始まりと拍子が変更されたときに譜刻されます。行の終わりで変更が起こる場合、警告の拍子が行の終わりに譜刻されます。デフォルトの振る舞いを変更することができます。オブジェクトの可視性 を参照してください。
\relative c'' { \time 2/4 c2 c \break c c \break \time 4/4 c c c c }
2/2 や 4/4 で使用される拍子は数字を使用するスタイルに変更することができます:
\relative c'' { % デフォルトのスタイル \time 4/4 c1 \time 2/2 c1 % 数字を使うスタイルに変更します \numericTimeSignature \time 4/4 c1 \time 2/2 c1 % デフォルトのスタイルに戻します \defaultTimeSignature \time 4/4 c1 \time 2/2 c1 }
計量拍子については 計量記譜法の拍子記号 でカバーされています。
譜刻される拍子を設定することに加えて、\time
コマンドは拍子に基づくプロパティ
baseMoment
, beatStructure
, それに beamExceptions
の値も設定します。これらのプロパティにあらかじめ定義されているデフォルト値は
‘scm/time-signature-settings.scm’ で見つかります。
beatStructure
のデフォルトの値は、\time
に省略可能な 1 つ目の引数を与えることでオーバライドできます:
\score { \new Staff { \relative { \time 2,2,3 7/8 \repeat unfold 7 { c'8 } | \time 3,2,2 7/8 \repeat unfold 7 { c8 } | } } }
また、baseMoment
と beamExceptions
も含めた、全ての拍子に基づくプロパティのデフォルトの値を一度にセットすることができます。値は異なる拍子記号について独立に設定できます。新しい値は同じ拍子記号の \time
コマンドが続く時に有効となります。
\score { \new Staff { \relative c' { \overrideTimeSignatureSettings 4/4 % timeSignatureFraction 1/4 % baseMomentFraction 3,1 % beatStructure #'() % beamExceptions \time 4/4 \repeat unfold 8 { c8 } | } } }
\overrideTimeSignatureSettings
は 4 つの引数をとります:
-
timeSignatureFraction
, この設定が適用される、拍子記号を示す分数。 -
baseMomentFraction
, 拍子の基本タイミングの単位となる分子と分母を保持する分数。 -
beatStructure
, 小節の拍構造を示す Scheme リスト。基本タイミングを単位とします。 -
beamExceptions
, 指定された拍子でそれぞれの拍で終了しない連桁の規則を保持する配列リスト。自動連桁の振る舞いを設定する に説明があります。
デフォルトの拍子プロパティ値の変更を元の値に戻すことができます:
\score { \relative { \repeat unfold 8 { c'8 } | \overrideTimeSignatureSettings 4/4 % timeSignatureFraction 1/4 % baseMomentFraction 3,1 % beatStructure #'() % beamExceptions \time 4/4 \repeat unfold 8 { c8 } | \revertTimeSignatureSettings 4/4 \time 4/4 \repeat unfold 8 { c8 } | } }
Timing_translator
と Default_bar_line_engraver
をScore
コンテキストから Staff
コンテキストに移動させることにより、異なる譜に対して異なる値のデフォルト拍子プロパティを割り当てることができます。
\score { \new StaffGroup << \new Staff { \overrideTimeSignatureSettings 4/4 % timeSignatureFraction 1/4 % baseMomentFraction 3,1 % beatStructure #'() % beamExceptions \time 4/4 \repeat unfold 8 {c''8} } \new Staff { \overrideTimeSignatureSettings 4/4 % timeSignatureFraction 1/4 % baseMomentFraction 1,3 % beatStructure #'() % beamExceptions \time 4/4 \repeat unfold 8 {c''8} } >> \layout { \context { \Score \remove Timing_translator } \context { \Staff \consists Timing_translator } } }
これらの拍子記号に基づく変数を変更するさらなる方法 – 変更の際に同じ拍子記号がもう一度表示されることを避ける方法 – については、 自動連桁の振る舞いを設定する にあります。
定義済みコマンド
\numericTimeSignature
,
\defaultTimeSignature
Selected Snippets
拍子記号の (分数ではなく) 分子のみを数字で表示する
拍子記号の分数全体を表示せず、分子のみ (今回は 7) を表示したい場合があります。これは \override Staff.TimeSignature.style = #'single-digit
を用いてスタイルを永続的に変更することで簡単に実現できます。\revert Staff.TimeSignature.style
を使用することで、この設定を元に戻すことが出来ます。1 つの拍子記号に対してのみ単一の数字で表示したい場合は、\override
の前に \once
を記述します。
\relative c'' { \time 3/4 c4 c c % Change the style permanently \override Staff.TimeSignature.style = #'single-digit \time 2/4 c4 c \time 3/4 c4 c c % Revert to default style: \revert Staff.TimeSignature.style \time 2/4 c4 c % single-digit style only for the next time signature \once \override Staff.TimeSignature.style = #'single-digit \time 5/4 c4 c c c c \time 2/4 c4 c }
参照
音楽用語集: time signature
記譜法リファレンス: 計量記譜法の拍子記号, 自動連桁の振る舞いを設定する, 時間管理
インストールされているファイル: ‘scm/time-signature-settings.scm’.
コード断片集: Rhythms
内部リファレンス: TimeSignature, Timing_translator
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 拍子 ] | [ 上へ : リズムを表示する ] | [ 上拍 > ] |
メトロノーム記号
基本的なメトロノーム記号は単純に以下のように記述します:
\relative { \tempo 4 = 120 c'2 d e4. d8 c2 }
メトロノーム記号を 2 つの数の範囲として譜刻することもできます:
\relative { \tempo 4 = 40 - 46 c'4. e8 a4 g b,2 d4 r }
テキストを持つテンポ指示にすこともできます:
\relative { \tempo "Allegretto" c''4 e d c b4. a16 b c4 r4 }
メトロノーム記号とテキストを組み合わせると、メトロノーム記号は自動的に括弧で囲まれます:
\relative { \tempo "Allegro" 4 = 160 g'4 c d e d4 b g2 }
一般に、テキストを任意のマークアップ オブジェクトにすることができます:
\relative { \tempo \markup { \italic Faster } 4 = 132 a'8-. r8 b-. r gis-. r a-. r }
テキストを伴わないメトロノーム記号を括弧で囲むには、空の文字列を含めて記述します:
\relative { \tempo "" 8 = 96 d''4 g e c }
長い休符 (小節単位の休符 を参照してください) がある楽器のパート譜では、テンポ表示同士が近づいてしまうことがあります。
\markLengthOn
コマンドは、テンポ表示が重ならないように水平方向のスペースを追加し、\markLengthOff
はテンポ表示が水平方向のスペースを無視するデフォルトの挙動に戻します。
\compressMMRests { \markLengthOn \tempo "Molto vivace" R1*12 \tempo "Meno mosso" R1*16 \markLengthOff \tempo "Tranquillo" R1*20 }
Selected Snippets
メトロノーム記号やリハーサル記号を譜の下に表示する
デフォルトでは、メトロノーム記号やリハーサル記号は譜の上に表示されます。これらを譜の下に表示するには、MetronomeMark
や RehearsalMark
の direction
プロパティを正しくセットします。
\layout { indent = 0 ragged-right = ##f } { % Metronome marks below the staff \override Score.MetronomeMark.direction = #DOWN \tempo 8. = 120 c''1 % Rehearsal marks below the staff \override Score.RehearsalMark.direction = #DOWN \mark \default c''1 }
メトロノーム記号を表示せずにテンポを変更する
楽譜には何も出力せずに MIDI 出力のテンポのみを変更するには、メトロノーム記号を非表示にします。
\score { \new Staff \relative c' { \tempo 4 = 160 c4 e g b c4 b d c \set Score.tempoHideNote = ##t \tempo 4 = 96 d,4 fis a cis d4 cis e d } \layout { } \midi { } }
マークアップ モードでメトロノーム記号を作成する
新しいメトロノーム記号はマークアップ モードで作成できますが、MIDI 出力のテンポは変更されません。
\relative c' { \tempo \markup { \concat { ( \smaller \general-align #Y #DOWN \note {16.} #1 " = " \smaller \general-align #Y #DOWN \note {8} #1 ) } } c1 c4 c' c,2 }
詳細は テキストをフォーマットする を参照してください。
参照
音楽用語集: metronome, metronomic indication, tempo indication, metronome mark
記譜法リファレンス: テキストをフォーマットする, MIDI 出力を作り出す, 小節単位の休符
コード断片集: Staff notation
内部リファレンス: MetronomeMark
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < メトロノーム記号 ] | [ 上へ : リズムを表示する ] | [ 無韻律の音楽 > ] |
上拍
弱拍 や 上拍 などのような部分小節またはピックアップ小節は、\partial
コマンドを使って入力します:
\partial duration
\partial
が楽譜の最初で用いられた際には、duration
は最初の小節より前にある音楽の長さです。
\relative { \time 3/4 \partial 4. r4 e'8 | a4 c8 b c4 | }
\partial
が楽譜の最初より後に用いられた際には、duration
は現在の小節の 残りの 長さとなります。新しい番号の小節は作られません。
\relative { \set Score.barNumberVisibility = #all-bar-numbers-visible \override Score.BarNumber.break-visibility = #end-of-line-invisible \time 9/8 d''4.~ 4 d8 d( c) b | c4.~ 4. \bar "||" \time 12/8 \partial 4. c8( d) e | f2.~ 4 f8 a,( c) f | }
\partial
コマンドは小節の途中で拍子記号が変化する場合に必要ですが、単独で使われることもあります。
\relative { \set Score.barNumberVisibility = #all-bar-numbers-visible \override Score.BarNumber.break-visibility = #end-of-line-invisible \time 6/8 \partial 8 e'8 | a4 c8 b[ c b] | \partial 4 r8 e,8 | a4 \bar "||" \partial 4 r8 e8 | a4 c8 b[ c b] | }
\partial
コマンドは Timing.measurePosition
プロパティをセットします。これは小節のどれだけが経過したかを表す分数です。
参照
音楽用語集: anacrusis
記譜法リファレンス: 装飾小音符
コード断片集: Rhythms
内部リファレンス: Timing_translator
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 上拍 ] | [ 上へ : リズムを表示する ] | [ 多拍子記譜法 > ] |
無韻律の音楽
韻律のある音楽では、自動的に小節線が挿入され、小節番号が算出されます。無韻律の音楽 (例えばカデンツァ) では、これは望ましくなく、コマンド
\cadenzaOn
を用いて ‘スイッチ off’ することができます。‘スイッチ on’ に戻すには、適切な場所で \cadenzaOff
を用います。
\relative c'' { c4 d e d \cadenzaOn c4 c d8[ d d] f4 g4. \cadenzaOff \bar "|" d4 e d c }
カデンツァが終わると、小節番号が再開されます。
\relative c'' { % すべての小節番号を表示します \override Score.BarNumber.break-visibility = #all-visible c4 d e d \cadenzaOn c4 c d8[ d d] f4 g4. \cadenzaOff \bar "|" d4 e d c }
カデンツァの中に \bar
コマンドを挿入しても、小節線は表示されますが、新しい小節が始まることはありません。そのため、全ての臨時記号 – 通常小節の最後まで効果が持続する –
は、\bar
による小節線の後でも有効のままです。もし小節線の後の臨時記号を表示させたいならば、親切の臨時記号 (!
) や忠告の臨時記号 (?
) を手動で挿入する必要があります。臨時記号 を参照してください。
\relative c'' { c4 d e d \cadenzaOn cis4 d cis d \bar "|" % 最初の cis は小節線の後ですが、臨時記号無しで表示されます cis4 d cis! d \cadenzaOff \bar "|" }
自動連桁は \cadenzaOn
で無効になります。このため、カデンツァ内の連桁はすべて手動で入力する必要があります
(手動連桁)。
\relative { \repeat unfold 8 { c''8 } \cadenzaOn cis8 c c c c \bar"|" c8 c c \cadenzaOff \repeat unfold 8 { c8 } }
これらの定義済みコマンドは、たとえ Voice
コンテキストの 1 つの中に配置したとしても、楽譜の中にあるすべての譜に影響を与えます。これを変更するには、Timing_translator
を Score
コンテキストから Staff
コンテキストに移動させます。多拍子記譜法 を参照してください。
定義済みコマンド
\cadenzaOn
,
\cadenzaOff
参照
音楽用語集: cadenza
記譜法リファレンス: オブジェクトの可視性, 多拍子記譜法, 手動連桁, 臨時記号
コード断片集: Rhythms
既知の問題と警告
自動の改行と改ページが挿入されるのは小節線のある場所だけです。そのため、長い無韻律の音楽で改行や改ページを行うには手動で ‘不可視の’ 小節線を挿入する必要があります:
\bar ""
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 無韻律の音楽 ] | [ 上へ : リズムを表示する ] | [ 自動音符分割 > ] |
多拍子記譜法
多拍子記譜法がサポートされます。 複合拍子記譜法がサポートされます。明示的な複合拍子と、拍子指定を変更して音符の演奏時間を伸縮することによる複合拍子のどちらもです。
それぞれの譜は異なる拍子を持ち、小節の長さは等価である場合
各譜共通の拍子記号をセットして、timeSignatureFraction
にお望みの分数をセットします。それから、\scaleDurations
関数を用いて共通の拍子記号に対する
各譜の音符の演奏時間を伸縮させます。
以下の例では、拍子記号 3/4, 9/8, それに 10/8 の音楽が並列しています。2 番目の譜では示された演奏時間に 2/3 が掛けられ (なぜなら、2/3 * 9/8 = 3/4 だからです)、3 番目の譜では示された演奏時間に 3/5 が掛けられます (なぜなら、3/5 * 10/8 = 3/4 だからです)。演奏時間の伸縮は自動連桁の規則に影響を与えるため、手動で連桁を付ける必要があるかもしれません。
\relative << \new Staff { \time 3/4 c'4 c c | c4 c c | } \new Staff { \time 3/4 \set Staff.timeSignatureFraction = 9/8 \scaleDurations 2/3 { \repeat unfold 3 { c8[ c c] } \repeat unfold 3 { c4 c8 } } } \new Staff { \time 3/4 \set Staff.timeSignatureFraction = 10/8 \scaleDurations 3/5 { \repeat unfold 2 { c8[ c c] } \repeat unfold 2 { c8[ c] } | c4. c \tuplet 3/2 { c8[ c c] } c4 } } >>
それぞれの譜は異なる拍子を持ち、小節の長さは等価ではない場合
Timing_translator
と Default_bar_line_engraver
を
Staff
コンテキストに移すことによって、それぞれの譜に独立した拍子を与えることができます。
\layout { \context { \Score \remove Timing_translator } \context { \Staff \consists Timing_translator } } % 以上で、各譜はそれぞれに拍子を持つようになります \relative << \new Staff { \time 3/4 c'4 c c | c4 c c | } \new Staff { \time 2/4 c4 c | c4 c | c4 c | } \new Staff { \time 3/8 c4. | c8 c c | c4. | c8 c c | } >>
複合拍子記号
複合拍子記号は \compoundMeter
を用いて作成します。構文は以下の通りです:
\compoundMeter #'(list of lists)
最も簡単な構成は単一のリストであり、リストの 最後の 数字が拍子記号の分母になります。
\relative { \compoundMeter #'((2 2 2 8)) \repeat unfold 6 c'8 \repeat unfold 12 c16 }
リストを追加することでより複雑な拍子を構築することができます。また、この関数で指定された値に基づいて自動連桁の設定は調節されます。
\relative { \compoundMeter #'((1 4) (3 8)) \repeat unfold 5 c'8 \repeat unfold 10 c16 } \relative { \compoundMeter #'((1 2 3 8) (3 4)) \repeat unfold 12 c'8 }
参照
音楽用語集: polymetric, polymetric time signature, meter
記譜法リファレンス: 自動連桁, 手動連桁, 拍子, 演奏時間を変更する
コード断片集: Rhythms
内部リファレンス: TimeSignature, Timing_translator, Staff
既知の問題と警告
それぞれの譜において、同時に起こる音符の水平方向の位置は同じになりますが、(それぞれの譜にある) 小節線は、異なる拍子記号によって一貫性の無いスペーシングを生み出す可能性があります。
多拍子記譜法で midi
ブロックを使用した場合、予期しない小節線チェックの警告が表示される可能性があります。その場合は、midi
ブロック内で、Timing_translator
を Score
コンテキストから
Staff
コンテキストに移動してください。
\midi { \context { \Score \remove Timing_translator } \context { \Staff \consists Timing_translator } }
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 多拍子記譜法 ] | [ 上へ : リズムを表示する ] | [ 旋律のリズムを示す > ] |
自動音符分割
小節線をまたがる長い音符を自動的にタイで結ばれた音符に変換することができます。これを行うには、Note_heads_engraver
を Completion_heads_engraver
で置き換えます。同様に、小節線をまたがる長い休符を自動的に分割することができます。
これを行うには、Rest_engraver
を Completion_rest_engraver
で置き換えます。以下の例では、小節線をまたがる音符と休符は分割され、音符はされにタイで結ばれています。
\new Voice \with { \remove Note_heads_engraver \consists Completion_heads_engraver \remove Rest_engraver \consists Completion_rest_engraver } \relative { c'2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 r1*2 }
これらのエングラーバは進行中の音符と休符をすべて小節線のところで分割して、音符に対してはタイを挿入します。これらのエングラーバの用途の 1 つに複雑な楽譜のデバッグがあります: 何小節かで音符がきちんと満たされていない場合、このエングラーバで挿入されたタイが、それぞれの小節の狂いを示します。
completionUnit
プロパティは音符を分割する際の好ましい長さを指定します。
\new Voice \with { \remove Note_heads_engraver \consists Completion_heads_engraver } \relative { \time 9/8 g\breve. d''4. \bar "||" \set completionUnit = #(ly:make-moment 3 8) g\breve. d4. }
これらのエングラーバは、連符のような長さが伸縮された音符に対しては、入力と同じ伸縮率を保ったまま分割します。
\new Voice \with { \remove Note_heads_engraver \consists Completion_heads_engraver } \relative { \time 2/4 r4 \tuplet 3/2 {g'4 a b} \scaleDurations 2/3 {g a b} g4*2/3 a b \tuplet 3/2 {g4 a b} r4 }
参照
音楽用語集: tie
学習マニュアル: Engravers explained, Adding and removing engravers
コード断片集: Rhythms
内部リファレンス: Note_heads_engraver, Completion_heads_engraver, Rest_engraver, Completion_rest_engraver, Forbid_line_break_engraver
既知の問題と警告
前のバージョンの挙動を維持するため、c1*2
のような 1 小節より長い音符や休符は、{ c1 c1 }
のように伸縮しない長さに分割されます。completionFactor
プロパティでこの挙動を調整でき、これを#f
にセットすることで音符や休符を伸縮することができます。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 自動音符分割 ] | [ 上へ : リズムを表示する ] | [ 連桁 > ] |
旋律のリズムを示す
しばしば旋律のリズムだけを示したいことがあります。これはリズム譜を使うことで達成できます。そのような譜上にある音符のピッチはすべて破棄され、その譜自体は 1 本の線を持ちます:
<< \new RhythmicStaff { \new Voice = "myRhythm" \relative { \time 4/4 c'4 e8 f g2 r4 g g f g1 } } \new Lyrics { \lyricsto "myRhythm" { This is my song I like to sing } } >>
ギター コード表はしばしばつま弾き (ストラム) のリズムを示します。これは Pitch_squash_engraver
と \improvisationOn
を使うことで達成できます。
<< \new ChordNames { \chordmode { c1 f g c } } \new Voice \with { \consists Pitch_squash_engraver } \relative c'' { \improvisationOn c4 c8 c c4 c8 c f4 f8 f f4 f8 f g4 g8 g g4 g8 g c4 c8 c c4 c8 c } >>
和音を含む音楽も、まず \reduceChords
関数で 1 つの音符にまとめることによって RhythmicStaff
に入力したり、Pitch_squash_engraver
に使用することができます。
\new RhythmicStaff { \time 4/4 \reduceChords { <c>2 <e>2 <c e g>2 <c e g>4 <c e g>4 } }
定義済みコマンド
\improvisationOn
,
\improvisationOff
,
\reduceChords
Selected Snippets
ギター ストロークのリズム
ギター音楽では、メロディの音符、コードネーム、フレット図と共に、ストロークのリズムを表示することができます。
\include "predefined-guitar-fretboards.ly" << \new ChordNames { \chordmode { c1 | f | g | c } } \new FretBoards { \chordmode { c1 | f | g | c } } \new Voice \with { \consists "Pitch_squash_engraver" } { \relative c'' { \improvisationOn c4 c8 c c4 c8 c f4 f8 f f4 f8 f g4 g8 g g4 g8 g c4 c8 c c4 c8 c } } \new Voice = "melody" { \relative c'' { c2 e4 e4 f2. r4 g2. a4 e4 c2. } } \new Lyrics { \lyricsto "melody" { This is my song. I like to sing. } } >>
参照
コード断片集: Rhythms
内部リファレンス: RhythmicStaff, Pitch_squash_engraver
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 旋律のリズムを示す ] | [ 上へ : リズム ] | [ 自動連桁 > ] |
1.2.4 連桁
自動連桁 | ||
自動連桁の振る舞いを設定する | ||
手動連桁 | ||
羽状の連桁 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 連桁 ] | [ 上へ : 連桁 ] | [ 自動連桁の振る舞いを設定する > ] |
自動連桁
デフォルトでは、連桁は自動的に挿入されます:
\relative c'' { \time 2/4 c8 c c c \time 6/8 c8 c c c8. c16 c8 }
自動的に決定される連桁が満足いかないものである場合、明示的に連桁を挿入することが可能です – 手動連桁 を参照してください。連桁を休符の上まで伸ばそうと意図しているのなら、連桁を手動で挿入する 必要があります。
自動連桁を必要としない場合、\autoBeamOff
で off にすることができ、\autoBeamOn
で on にすることができます:
\relative c' { c4 c8 c8. c16 c8. c16 c8 \autoBeamOff c4 c8 c8. c16 c8. \autoBeamOn c16 c8 }
Note: 歌曲の中でメリスマを表すために連桁を使用する場合、\autoBeamOff
で自動連桁を off にして、手動で連桁を示すべきです。\partCombine
を \autoBeamOff
と一緒に用いると予期しない結果になる可能性があります。詳細はコード断片集を参照してください。
自動的に挿入されるデフォルトの連桁とは異なるパターンの連桁を作成することができます – 自動連桁の振る舞いを設定する を参照してください。
定義済みコマンド
\autoBeamOff
,
\autoBeamOn
Selected Snippets
改行に跨る連桁
連桁が小節線を跨ぐ場合、改行は通常禁止されます。この挙動は以下のようにして変更することができます。
\relative c'' { \override Beam.breakable = ##t c8 c[ c] c[ c] c[ c] c[ \break c8] c[ c] c[ c] c[ c] c }
向きの変わる連桁が作られる符頭間の距離を変更する
向きが変わる連桁は、符頭と符頭が大きく離れている場合に自動的に作られます。この挙動は auto-knee-gap
プロパティで調整することができます。符頭間の距離が auto-knee-gap
と連桁オブジェクトの幅を[c
足したものよりも大きい場合に、向きの変わる連桁が作られます
(連桁オブジェクトの幅は、音符の長さや、連桁の傾きによって異なります)。デフォルトでは、auto-knee-gap
は 5.5 譜スペースにセットされています。
{ f8 f''8 f8 f''8 \override Beam.auto-knee-gap = #6 f8 f''8 f8 f''8 }
partCombine と autoBeamOff
\partCombine
と共に \autoBeamOff
を使用した場合の挙動は理解しづらいです。
譜全体で自動連桁をオフにするために、代わりに以下を用いたほうが良いです:
\set Staff.autoBeaming = ##f
\partCombine
は 3 種類のボイスを作り出します –
符幹が上向きの単一ボイス、符幹が下向きの単一ボイス、パート結合が行われたボイスです。
\autoBeamOff
を \partCombine
の 1 つ目の引数の中で用いた場合、符幹が上向きのボイスか、結合されたボイスのどちらかの、現在アクティブな方に適用されます。\autoBeamOff
が 2 つ目の引数の中で用いられた場合、符幹が下向きのボイスに適用されます。
\partCombine
の中で全ての自動連桁をオフにするために
\autoBeamOff
を用いるためには、3 回呼び出しを行う必要があります。
{ %\set Staff.autoBeaming = ##f % turns off all autobeaming \partCombine { \autoBeamOff % applies to split up stems \repeat unfold 4 a'16 %\autoBeamOff % applies to combined up stems \repeat unfold 4 a'8 \repeat unfold 4 a'16 } { \autoBeamOff % applies to down stems \repeat unfold 4 f'8 \repeat unfold 8 f'16 | } }
参照
記譜法リファレンス: 手動連桁, 自動連桁の振る舞いを設定する.
インストールされているファイル: ‘scm/auto-beam.scm’
コード断片集: Rhythms
内部リファレンス: Auto_beam_engraver, Beam_engraver, Beam, BeamEvent, BeamForbidEvent, beam-interface, unbreakable-spanner-interface
既知の問題と警告
連桁のプロパティは連桁構築の開始時に決定され、その後から連桁の完了までの間に追加された連桁プロパティの変更は 次の 連桁から影響を与えます。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 自動連桁 ] | [ 上へ : 連桁 ] | [ 手動連桁 > ] |
自動連桁の振る舞いを設定する
自動連桁が有効な場合、連桁の配置は以下の 3 つのコンテキスト プロパティによって決定されます:
baseMoment
, beatStructure
, beamExceptions
。これらの値は以下で示すようにオーバライドすることができますが、拍子 で説明しているように、デフォルトの値そのものを変更することもできます。
beamExceptions
が現在の拍子記号に対して定義されている時、そのルールのみが連桁の配置の決定に使用されます。
baseMoment
や beatStructure
の値は使用されません。
beamExceptions
が現在の拍子記号に対して定義されていない時、baseMoment
と beatStructure
の値によって連桁の配置が決定されます。
baseMoment
と beatStructure
による連桁
デフォルトで、非常によく使われる拍子に対しては beamExceptions
のルールが定義されているため、自動連桁に baseMoment
と
beatStructure
の値を使用させるためには、beamExceptions
のルールを無効化しなければいけません。beamExceptions
はこのようにして無効化します:
\set Timing.beamExceptions = #'()
beamExceptions
が #'()
にセットされた場合 (明示的にセットされた場合と、現在の拍子記号に対してルールが定義されていない場合の両方を含みます)、連桁の終了点は baseMoment
と beatStructure
コンテキスト プロパティで指定された拍に従います。beatStructure
は小節内の各拍の長さが baseMoment
の単位で定義された Scheme リストです。デフォルトでは、baseMoment
は 1/拍子の分母です。
beatStructure
と baseMoment
の値はそれぞれの拍子記号に対して別々に存在するということに注意してください。これらの値を変更しても、影響が及ぶのは現在有効な拍子記号に対してのみです。そのため、これらの変更は新しい拍子記号のセクションが始まる \time
コマンドの前ではなく後に置かれなければいけません。ある拍子記号に与えられた新しい値は記憶されており、その拍子記号が新たに出現した際に再び有効になります。
\relative c'' { \time 5/16 c16^"default" c c c c | % beamExceptions は 5/16 の拍子については定義されていないようですが、 % 念のために無効にしておきましょう \set Timing.beamExceptions = #'() \set Timing.beatStructure = 2,3 c16^"(2+3)" c c c c | \set Timing.beatStructure = 3,2 c16^"(3+2)" c c c c | }
\relative { \time 4/4 a'8^"default" a a a a a a a % beamExceptions は 4/4 に対しては明らかに定義されているため、 % これを無効にします \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/4) \set Timing.beatStructure = 1,1,1,1 a8^"changed" a a a a a a a }
連桁の設定変更をある特定のテキストに限定することができます。下位コンテキストに連桁の設定が含まれない場合、そのコンテキストを囲んでいる上位コンテキストの設定が適用されます。
\new Staff { \time 7/8 % beamExceptions は 7/8 に対しては定義されていないため % 無効にする必要はありません \set Staff.beatStructure = 2,3,2 << \new Voice = one { \relative { a'8 a a a a a a } } \new Voice = two { \relative { \voiceTwo \set Voice.beatStructure = 1,3,3 f'8 f f f f f f } } >> }
譜で複数のボイスが使用されている場合に連桁設定を譜のすべてのボイスに適用するには、Staff
コンテキストで設定を行う必要があります:
\time 7/8 % リズム 3-1-1-2 % デフォルトで連桁設定の変更は Voice に適用され、うまくいきません % なぜなら、自動生成されるボイスで、すべての拍は baseMoment (1 . 8) だからです \set beatStructure = 3,1,1,2 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >> % コンテキスト Staff を指定するとうまくいきます \set Staff.beatStructure = 3,1,1,2 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
baseMoment
の値を調整することで、連桁の振る舞いを変更することができます。baseMoment
の値を変更した場合、beatStructure
に新しい baseMoment
と矛盾しない値を設定する必要があります。
\time 5/8 % beamExceptions は 5/8 に対しては定義されていないため % 無効にする必要はありません \set Timing.baseMoment = #(ly:make-moment 1/16) \set Timing.beatStructure = 7,3 \repeat unfold 10 { a'16 }
beatLength
は moment – 演奏時間の単位 – です。タイプ moment の量は
Scheme 関数 ly:make-moment
によって作り出されます。この関数についての更なる情報は 時間管理 を参照してください。
デフォルトでは、baseMoment
には「1/拍子の分母」がセットされています。このデフォルトの例外は ‘scm/time-signature-settings.scm’ で見つかります。
beamExceptions
に基づいた連桁
特殊な自動連桁規則 (連桁の終わりが拍に従わないもの) はプロパティ
beamExceptions
に定義します。
beamExceptions
の値は – 少し複雑な Scheme データ構造ですが – は、
\beamExceptions
関数によって非常に簡単に生成できます。この関数には 1 つ以上の手動連桁を含む、小節の長さのリズムパターンを与えます
(小節は小節チェック記号 | で分割されている必要があります。この関数では他に小節の長さを識別する方法が無いためです)。簡単な例を示します:
\relative c'' { \time 3/16 \set Timing.beatStructure = 2,1 \set Timing.beamExceptions = \beamExceptions { 32[ 32] 32[ 32] 32[ 32] } c16 c c | \repeat unfold 6 { c32 } | }
Note: beamExceptions
の値は 完全な 例外リストである必要があります。つまり、その設定には適用されるべき例外がすべて含まれている必要があります。例外の 1 つだけを追加、削除、変更することはできません。このことは扱い難いように思えるかもしれませんが、新しい連桁パターンを指定する際に現在の連桁設定を知る必要がないということを意味します。
拍子が変更されると、Timing.baseMoment
, Timing.beatStructure
,
それに Timing.beamExceptions
のデフォルト値が設定されます。拍子を設定すると、その Timing
コンテキストの自動連桁設定はデフォルトの振る舞いにリセットされます。
\relative a' { \time 6/8 \repeat unfold 6 { a8 } % (4 + 2) にグループ化します \set Timing.beatStructure = 4,2 \repeat unfold 6 { a8 } % デフォルトの振る舞いに戻ります \time 6/8 \repeat unfold 6 { a8 } }
ある拍子に対するデフォルトの自動連桁設定は ‘scm/beam-settings.scm’ の中で決定されます。ある拍子に対する自動連桁のデフォルト設定を変更する方法は 拍子 で説明しています。
ある拍子に対する自動連桁設定の多くには
beamExceptions
が登録されています。例えば、4/4 拍子は 16 分音符しかない小節を 2 つの連桁で囲もうとします。beamExceptions
がリセットされていなければ、beamExceptions
規則は beatStructure
設定をオーバライドすることができます。
\time 4/4 \set Timing.baseMoment = #(ly:make-moment 1/8) \set Timing.beatStructure = 3,3,2 % 以下は beamExceptions のため、(3 3 2) の連桁にはなりません \repeat unfold 8 {c''8} | % 以下は beamExceptions をクリアするため、(3 3 2) の連桁になります \set Timing.beamExceptions = #'() \repeat unfold 8 {c''8}
同様に、3/4 拍子はデフォルトで 8 分音符しかない小節を 1 つの連桁で囲みます。3/4 拍子の 8 分音符に拍毎の連桁を付けるには、beamExceptions
をリセットします。
\time 3/4 % beamExceptions により、デフォルトで (6) の連桁を付けます \repeat unfold 6 {a'8} | % beatLength により、これは (1 1 1) の連桁を付けます \set Timing.beamExceptions = #'() \repeat unfold 6 {a'8}
ロマン派や古典派時代の譜刻では、3/4 拍子の小節の途中から連桁が始まることがありますが、誤った 6/8 拍子の印象を与えるため現代の習慣では用いません (Gould の 153 ページを参照してください)。3/8 拍子でも同様の状況が発生します。この振る舞いはコンテキスト プロパティ beamHalfMeasure
によって制御されます – これは分子が 3 の拍子記号の場合にのみ効果を持ちます:
\relative a' { \time 3/4 r4. a8 a a | \set Timing.beamHalfMeasure = ##f r4. a8 a a | }
自動連桁はどのように機能するのか
自動連桁が有効である場合、自動連桁の配置はコンテキスト プロパティ
baseMoment
, beatStructure
, それに beamExceptions
によって決定されます。
連桁の配置を決定する際、以下の規則が並び順の優先度で適用されます:
-
[…]
で手動連桁が指定されている場合、連桁は指定どおりに設定されます。手動連桁が指定されていない場合、 -
その連桁タイプに対する
beamExceptions
に連桁終了規則が定義されている場合、その規則を用いて連桁を終了させる位置を決定します。連桁終了規則が定義されていない場合、 -
もっと長い連桁タイプに対する
beamExceptions
に連桁終了規則が定義されている場合、その規則を用いて連桁を終了させる位置を決定します。連桁終了規則が定義されていない場合、 -
baseMoment
とbeatStructure
の値を用いてその小節での拍の終わりを決定し、拍の終わりで連桁を終了させます。
上記の規則で、連桁タイプ は連桁でグループ化された音符の最短演奏時間です。
デフォルトの連桁規則は ‘scm/time-signature-settings.scm’ の中にあります。
Selected Snippets
連桁を細分する
16 分音符 (あるいはそれより短い音符) の連桁は、デフォルトでは細分されません。つまり、3 つ以上の音符全体が分かれることなく平等に連桁で繋がれます。この挙動は、subdivideBeams
プロパティをセットすることで、連桁を細分するように変更することができます。このプロパティがセットされると、連桁が現在の baseMoment
の間隔で細分されて表示されるようになります。分割された後の音符全体の長さが分割長より短い (不完全な連桁) 場合は、連桁の本数は可能な最長分割グループが基になります。しかし、分割された後の音符が 1 つしか存在しない場合、この制限は適用されません。
baseMoment
は、明示的にセットされなければ、現在の拍子記号の分母分の 1 に設定されます。baseMoment
は、このスニペットのように
ly:make-moment
関数を用いて、連桁を分割する単位となる長さを分数で指定する必要があります。また、baseMoment
が変更された場合、beatStructure
も新たな
baseMoment
に合わせて変更する必要があります:
\relative c'' { c32[ c c c c c c c] \set subdivideBeams = ##t c32[ c c c c c c c] % Set beam sub-group length to an eighth note \set baseMoment = #(ly:make-moment 1/8) \set beatStructure = 2,2,2,2 c32[ c c c c c c c] % Set beam sub-group length to a sixteenth note \set baseMoment = #(ly:make-moment 1/16) \set beatStructure = 4,4,4,4 c32[ c c c c c c c] % Shorten beam by 1/32 \set baseMoment = #(ly:make-moment 1/8) \set beatStructure = 2,2,2,2 c32[ c c c c c c] r32 % Shorten beam by 3/32 \set baseMoment = #(ly:make-moment 1/8) \set beatStructure = 2,2,2,2 c32[ c c c c] r16. r2 }
厳密な拍に基づく連桁
16 分音符以下の連桁の向きは、音符が属する拍に基づいて決定することができます。最初の連桁では突き出るものが避けられ (デフォルト)、次の連桁は拍に厳密に従います。
\relative c'' { \time 6/8 a8. a16 a a \set strictBeatBeaming = ##t a8. a16 a a }
小節のグループ化記号
小節内の拍のまとまりは、beatStructure
コンテキスト プロパティによりコントロールされます。beatStructure
の値はscm/time-signature-settings.scm
に、多くの拍子記号に対して設定されています。beatStructure
の値は、\set
で変更することができます。あるいは、\time
を拍子記号と beatStructure
の明示的な変更のために用いることができます。そのためには、拍子記号の前に小節内部の拍のグループを数値のリストで (Scheme の構文で) 与えます。
\time
は Timing
コンテキストに適用されるため、Voice
のような他のより低いレベルのコンテキストにセットされた
beatStructure
や baseMoment
の値を上書きしません。
Measure_grouping_engraver
がコンテキストに含まれている場合、拍のグループを示す記号が表示されます。この記号はリズムが複雑な現代音楽を読みやすくします。この例では、9/8 の小節が 2 つの方法で 2 つのパターンにグループ化されています。5/8 は scm/time-signature-settings.scm
のデフォルト設定を用いています。
\score { \new Voice \relative c'' { \time 9/8 g8 g d d g g a( bes g) | \set Timing.beatStructure = 2,2,2,3 g8 g d d g g a( bes g) | \time 4,5 9/8 g8 g d d g g a( bes g) | \time 5/8 a4. g4 | } \layout { \context { \Staff \consists "Measure_grouping_engraver" } } }
Score コンテキストでの自動連桁
Score
コンテキストに設定された自動連桁の設定は全ての譜に適用されますが、Staff
や Voce
レベルで設定することもできます。
\relative c'' { \time 5/4 % Set default beaming for all staves \set Score.baseMoment = #(ly:make-moment 1/8) \set Score.beatStructure = 3,4,3 << \new Staff { c8 c c c c c c c c c } \new Staff { % Modify beaming for just this staff \set Staff.beatStructure = 6,4 c8 c c c c c c c c c } \new Staff { % Inherit beaming from Score context << { \voiceOne c8 c c c c c c c c c } % Modify beaming for this voice only \new Voice { \voiceTwo \set Voice.beatStructure = 6,4 a8 a a a a a a a a a } >> } >> }
参照
記譜法リファレンス: 拍子
インストールされているファイル: ‘scm/time-signature-settings.scm’
コード断片集: Rhythms
内部リファレンス: Auto_beam_engraver, Beam, BeamForbidEvent, beam-interface
既知の問題と警告
自動連桁が終了しておらず、まだ音符を受け付けている最中に楽譜が終了する場合、その最後の連桁はまったく譜刻されません。<< … \\ … >>
で入力される多声ボイスでも同様です。自動連桁がまだ音符を受け付けている最中に多声ボイスが終了する場合、その最後の連桁はまったく譜刻されません。ボイスや楽譜の最後の連桁には手動で連桁を付けることにより、これらの問題を回避できます。
デフォルトでは、Timing
コンテキストは Score
コンテキストにエイリアスされています。このことは、ある譜で拍子の設定を行うと、他の譜での連桁の付け方にも影響を与えると言うことを意味します。このため、後で出てくる譜で拍子の設定を行うと、前にある譜でセットしたカスタム連桁はリセットされます。この問題を回避する方法の 1 つは、拍子の設定は 1 つの譜でしか行わないことです。
<< \new Staff { \time 3/4 \set Timing.baseMoment = #(ly:make-moment 1/8) \set Timing.beatStructure = 1,5 \set Timing.beamExceptions = #'() \repeat unfold 6 { a'8 } } \new Staff { \repeat unfold 6 { a'8 } } >>
拍子に対するデフォルトの連桁設定を変更することで、常にお望みの連桁を使うこともできます。ある拍子に対する自動連桁設定を変更する方法は 拍子 で説明しています。
<< \new Staff { \overrideTimeSignatureSettings 3/4 % timeSignatureFraction 1/8 % baseMomentFraction 1,5 % beatStructure #'() % beamExceptions \time 3/4 \repeat unfold 6 { a'8 } } \new Staff { \time 3/4 \repeat unfold 6 { a'8 } } >>
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 自動連桁の振る舞いを設定する ] | [ 上へ : 連桁 ] | [ 羽状の連桁 > ] |
手動連桁
自動連桁アルゴリズムをオーバライドする必要がある場合もあります。例えば、自動連桁は休符や小節線を越えて連桁を配置することはなく、合唱譜では連桁はしばしば音符ではなく歌詞の韻律に従って配置されます。そのような連桁は [
と ]
で開始点と終了点を記すことによって手動で指定することができます:
\relative { r4 r8[ g' a r] r g[ | a] r }
方向指示子を用いることで、連桁の向きを手動で設定することができます:
\relative { c''8^[ d e] c,_[ d e f g] }
連桁でつながれないようにするために、個々の音符には
\noBeam
が記されるかもしれません:
\relative { \time 2/4 c''8 c\noBeam c c }
装飾小音符の連桁と通常の音符の連桁は同時進行で発生します。通常の音符の連桁の途中に、連桁でつながれない装飾小音符は配置されません。
\relative { c''4 d8[ \grace { e32 d c d } e8] e[ e \grace { f16 } e8 e] }
プロパティ stemLeftBeamCount
と stemRightBeamCount
をセットすることによって連桁をさらに厳密に手動制御することが可能です。これらの値はそれぞれ、次の音符の左側と右側に描く連桁の本数を指定します。どちらかのプロパティがセットされている場合、その値は 1 度だけ使用され、それから消去されます。以下の例では、最後の f
は左側に連桁を 1 本だけ持って
– すなわち、グループ全体をつなげている 8 分音符の連桁を持って –
譜刻されています。
\relative a' { a8[ r16 f g a] a8[ r16 \set stemLeftBeamCount = #2 \set stemRightBeamCount = #1 f16 \set stemLeftBeamCount = #1 g16 a] }
定義済みコマンド
\noBeam
Selected Snippets
水平な符尾とはみ出す連桁
単一の音符に出現する連桁や、端がはみ出す連桁は、stemLeftBeamCount
,
stemRightBeamCount
と連桁指示 []
を組み合わせることで作ることができます。
単一の音符で、右側にのみはみ出す連桁については、音符に []
を付加し、stemLeftBeamCount
を 0 にします (Example 1 を参照)。
左側にのみはみ出す場合は、代わりに stemRightBeamCount
を 0 にします
(Example 2)。
複数音符の連桁で、右側にはみ出す場合は、stemRightBeamCount
を正の値にします。左側にはみ出す場合は、stemLeftBeamCount
を正の値にします (Example 3)。
休符に囲まれた単一の音符では、両方向にはみ出した連桁を表示したほうが分かりやすい場合があります。これは連桁指示 []
のみで実現できます
(Example 4)。
(注意: \set stemLeftBeamCount
は常に \once \set
と同等です。つまり、連桁の本数は“保持されず”、最後の例における 16[]
の音符はその前の \set
に影響されません。)
\score { << % Example 1 \new RhythmicStaff { \set stemLeftBeamCount = #0 c16[] r8. } % Example 2 \new RhythmicStaff { r8. \set stemRightBeamCount = #0 16[] } % Example 3 \new RhythmicStaff { 16 16 \set stemRightBeamCount = #2 16 r r \set stemLeftBeamCount = #2 16 16 16 } % Example 4 \new RhythmicStaff { 16 16 \set stemRightBeamCount = #2 16 r16 16[] r16 \set stemLeftBeamCount = #2 16 16 } >> }
参照
コード断片集: Rhythms
内部リファレンス: Beam, BeamEvent, Beam_engraver, beam-interface, Stem_engraver
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 手動連桁 ] | [ 上へ : 連桁 ] | [ 小節 > ] |
羽状の連桁
羽状の連桁は、楽曲全体のテンポを変えることなく、音符の小さなグループをテンポを上げながら (あるいは下げながら) 演奏すべきであることを示すために使用されます。羽状連桁の範囲は [
と ]
を使って手動で指定する必要があり、連桁の羽は Beam
のプロパティ grow-direction
に向きを指定することによって調整することができます。
音符の配置と MIDI 出力での音が羽状連桁によって指示された
ritardando (徐々に緩やかに) や accelerando (次第に速く) を反映すべきであるのなら、音符は波括弧で区切られた音楽表記としてグループ化される必要があり、さらに、そのグループの最初の音符と最後の音符の演奏時間の比率を指定する
featheredDurations
コマンドを前に置く必要があります。
角括弧は連桁の範囲を示し、波括弧は演奏時間を変更される音符はどれなのかを示します。通常これら 2 つは同じ音符のグループを囲みますが、同じであることは必須ではありません: 2 つのコマンドは独立しています。
以下の例では、8 つの 16 分音符は 2 分音符とまったく同じ時間を占めますが、最初の音符の長さは最後の音符の長さの半分であり、中間の音符は徐々に長くなります。最初の 4 つの 32 分音符は徐々にスピード アップしますが、最後の 4 つの 32 分音符は一定のテンポです。
\relative c' { \override Beam.grow-direction = #LEFT \featherDurations 2/1 { c16[ c c c c c c c] } \override Beam.grow-direction = #RIGHT \featherDurations 2/3 { c32[ d e f] } % revert to non-feathered beams \override Beam.grow-direction = #'() { g32[ a b c] } }
譜刻される音符の間隔は音符の演奏時間を近似的に表しているだけですが、MIDI 出力での演奏時間は正確です。
定義済みコマンド
\featherDurations
参照
コード断片集: Rhythms
既知の問題と警告
\featherDurations
は非常に短い音楽コード断片に対してだけ、そして分数の数が小さいときにだけ機能します。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 羽状の連桁 ] | [ 上へ : リズム ] | [ 小節線 > ] |
1.2.5 小節
小節線 | ||
小節番号 | ||
小節と小節番号のチェック | ||
リハーサル記号 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 小節 ] | [ 上へ : 小節 ] | [ 小節番号 > ] |
小節線
小節線は小節を区切り、繰り返しを示すためにも使用されます。通常、単線の小節線が拍子に基づいて出力に自動的に挿入されます。
自動的に挿入される単線の小節線は
\bar
コマンドで他のタイプに変更することができます。例えば、通常、2 重線の閉じの小節線が楽曲の最後に配置されます:
\relative { e'4 d c2 \bar "|." }
ある小節の最後の音符が、自動的に挿入される小節線の所で終わっていなくても無効ではありません: その音符は次の小節に持ち越されるものと見なされます。しかしながら、そのような持ち越しのある小節がいくつも続く場合、その音楽は圧縮されて表示される可能性があり、ページからはみ出す可能性さえあります。これは、自動改行は完全な小節 – つまり、小節の終端ですべての音符が終わっている小節 – の終わりでのみ発生するからです。
Note: 誤った演奏時間の指定は改行を抑制し、結果として非常に圧縮された楽譜やページからはみ出す楽譜の原因となります。
手動で挿入された小節線のところでも – たとえ、その小節が不完全であっても – 改行することができます。小節線を譜刻せずに改行を可能にするには、以下を使用します:
\bar ""
これは不可視の小節線を挿入し、そこで改行が発生することを可能にします (強制はしません)。小節番号カウンタは増加しません。強制的に改行を行うには、改行 を参照してください。
不可視の小節線と他の特殊な小節線は任意の位置に手動で挿入することができます。それらの小節線の位置がある小節の終わりと一致する場合、それらの小節線はそこに自動で挿入されるはずだった単線の小節線に取って代わります。小節の終わりと一致しない場合、指定された小節線がその位置に挿入されます。
手動の小節線は純粋に視覚的なものです。それらは通常の小節線が影響を与えるプロパティ – 小節番号、臨時記号、改行など – には何の影響も与えません。手動の小節線はその後に続く自動小節線の算出や配置に影響を与えません。自動小節線がすでに存在する場所に手動小節線が配置されても、自動小節線の効果は変更されません。
手動で挿入できる小節線として、単線の小節線は 2 種類あり、2 重線の小節線は 5 種類あります:
\relative { f'1 \bar "|" f1 \bar "." g1 \bar "||" a1 \bar ".|" b1 \bar ".." c1 \bar "|.|" d1 \bar "|." e1 }
さらに、点線と破線の小節線があります:
\relative { f'1 \bar ";" g1 \bar "!" a1 }
さらに、繰り返しの小節線が 9 種類あります:
\relative { f'1 \bar ".|:" g1 \bar ":..:" a1 \bar ":|.|:" b1 \bar ":|.:" c1 \bar ":.|.:" d1 \bar "[|:" e1 \bar ":|][|:" f1 \bar ":|]" g1 \bar ":|." a1 }
更に、小節線は単純な短線として表示することができます:
f'1 \bar "'" g'1
しかし、このような短線は通常、グレゴリア聖歌の中で使われます。そこでは代わりに
\divisioMinima
を用いるほうが良いです。グレゴリア聖歌の
ディビジオ セクションで説明してあります。
LilyPond は Kievan 記譜法をサポートしており、特殊な Kievan の小節線を入力することができます:
f'1 \bar "k"
この記譜法に関する更なる情報は、キエフ記譜法で譜刻する に説明してあります。
行内のセーニョ記号として、3 タイプの小節線があり、改行での振る舞いがそれぞれ異なります:
\fixed c' { c4 4 4 4 \bar "S" d4 4 4 4 \break \bar "S" e4 4 4 4 \bar "S-|" f4 4 4 4 \break \bar "S-|" g4 4 4 4 \bar "S-||" a4 4 4 4 \break \bar "S-||" b4 4 4 4 \bar "S-S" c'4 4 4 4 \break \bar "S-S" d'1 }
繰り返しを表す小節線は手動で挿入される場合がありますが、それらの小節線自体は LilyPond に繰り返されるセクションを認識させることはしません。そのような繰り返されるセクションはさまざまな繰り返しのコマンドを使って入力した方が良いです (繰り返し を参照してください)。繰り返しのコマンドは自動的に適切な小節線を譜刻します。
さらに、".|:-||"
を使用することができます。これは ".|:"
と等価ですが、例外として改行位置では、この小節線は行の終わりに 2 重線の小節線を置き、次の行の始めに繰り返し開始の小節線を置きます。
\fixed c' { c4 4 4 4 \bar ".|:" d4 4 4 4 \break \bar ".|:" e4 4 4 4 \bar ".|:-|" f4 4 4 4 \break \bar ".|:-|" g4 4 4 4 \bar ".|:-||" a4 4 4 4 \break \bar ".|:-||" b4 4 4 4 \bar ".|:-|." c'4 4 4 4 \break \bar ".|:-|." d'4 4 4 4 }
繰り返しとセーニョ記号の組み合わせは 6 種類あります:
\fixed c' { g,4 4 4 4 \bar ":|.S" a,4 4 4 4 \break \bar ":|.S" b,4 4 4 4 \bar ":|.S-S" c4 4 4 4 \break \bar ":|.S-S" d4 4 4 4 \bar "S.|:-S" e4 4 4 4 \break \bar "S.|:-S" f4 4 4 4 \bar "S.|:" g4 4 4 4 \break \bar "S.|:" a4 4 4 4 \bar "S.|:-|" b4 4 4 4 \break \bar "S.|:-|" c'4 4 4 4 \bar "S.|:-||" d'4 4 4 4 \break \bar "S.|:-||" e'4 4 4 4 \bar ":|.S.|:" f'4 4 4 4 \break \bar ":|.S.|:" g'4 4 4 4 \bar ":|.S.|:-S" a'4 4 4 4 \break \bar ":|.S.|:-S" b'1 }
さらに、\inStaffSegno
コマンドがあります。これは、\repeat volta
コマンドと用いられた際に、繰り返しの小節線と結合したセーニョ小節線を作り出します。通常の繰り返し を参照してください。
\defineBarLine
を用いて、新しい小節線を定義することができます:
\defineBarLine bartype #'(end begin span)
\defineBarLine
の引数は‘空の’文字列 ""
を含むことができ、これは不可視の小節線を作り出します。または、#f
にセットすることで、何の小節線も表示しないようにすることができます。
定義した後、新しい小節線は \bar
bartype で使用することができます。
現在使用できる小節線の要素は 10 個存在します:
\defineBarLine ":" #'("" ":" "") \defineBarLine "=" #'("=" "" "") \defineBarLine "[" #'("" "[" "") \defineBarLine "]" #'("]" "" "") \new Staff { s1 \bar "|" s1 \bar "." s1 \bar "!" s1 \bar ";" s1 \bar ":" s1 \bar "k" s1 \bar "S" s1 \bar "=" s1 \bar "[" s1 \bar "]" s1 \bar "" }
"="
小節線は、セーニョ記号と組み合わせて使うための二重の小節線を提供します。二重の細い小節線を単独で表示させるためにをこれを使わないでください。\bar
"||" を使ってください。
"-"
記号は、小節線に注釈を入れるために使用します。これは、同じ見た目をしていても改行によって挙動が変化する場合や、譜をまたぐ小節線の見た目が異なる場合に区別するのに便利です。"-"
の後に続く部分は、小節線を構築する際に使用されません。
\defineBarLine "||-dashedSpan" #'("||" "" "!!") \new StaffGroup << \new Staff \relative c'' { c1 \bar "||" c1 \bar "||-dashedSpan" c1 } \new Staff \relative c'' { c1 c1 c1 } >>
更に、スペース文字 " "
は、譜をまたぐ小節線がメインの小節線に正しく揃うようにするプレース ホルダとして機能します:
\defineBarLine ":|.-wrong" #'(":|." "" "|.") \defineBarLine ":|.-right" #'(":|." "" " |.") \new StaffGroup << \new Staff \relative c'' { c1 \bar ":|.-wrong" c1 \bar ":|.-right" c1 } \new Staff \relative c'' { c1 c1 c1 } >>
小節線の要素を追加したい場合、LilyPond はそれらを定義するシンプルな手段を提供しています。小節線の変更あるいは追加に関する更なる情報は、ファイル ‘scm/bar-line-.scm’ を参照してください。
多くの譜を持つ楽譜では、ある譜の \bar
コマンドは自動的にすべての譜に適用されます。結果として、StaffGroup
, PianoStaff
, あるいは
GrandStaff
では、小節線は譜をまたがって 1 本に接続されます。
<< \new StaffGroup << \new Staff \relative { e'4 d \bar "||" f4 e } \new Staff \relative { \clef bass c'4 g e g } >> \new Staff \relative { \clef bass c'2 c2 } >>
コマンド \bar
bartype は
‘\set Timing.whichBar = bartype’ の短縮記法です。whichBar
プロパティがセットされるといつでも小節線が作成されます。
自動的に挿入される小節線に使用されるデフォルトの小節線タイプは "|"
です。これは ‘\set Timing.measureBarType = bartype’ でいつでも変更することができます。
参照
記譜法リファレンス: 改行, 繰り返し, 譜をグループ化する
インストールされているファイル: ‘scm/bar-line.scm’
コード断片集: Rhythms
内部リファレンス:
BarLine (
Staff の階層で作成されます),
SpanBar (譜をまたぎます),
Timing_translator (Timing
プロパティ用です)
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 小節線 ] | [ 上へ : 小節 ] | [ 小節と小節番号のチェック > ] |
小節番号
小節番号は、デフォルトでは、最初の行を除く各行の開始点で譜刻されます。番号自体は currentBarNumber
プロパティに保存されていて、通常は各小節で自動的に更新されます。小節番号を手動で設定することも可能です:
\relative c' { c1 c c c \break \set Score.currentBarNumber = #50 c1 c c c }
小節番号は、各行の開始点に配置する代わりに、規則的な間隔で譜刻することができます。このようにするには、小節番号を行の開始点以外の位置に譜刻できるよう、デフォルトの振る舞いをオーバライドする必要があります。これは BarNumber
の break-visibility
プロパティによって制御されます。これは 3 つの値をとります
– 3 つの値は、対応する小節番号を可視にするかしないかを指定するために、#t
または #f
にセットされます。3 つの値の順番は、end of line visible
,
middle of line visible
, beginning of line visible
(行の終了点での可視性、行の途中での可視性、行の開始点での可視性) です。以下の例では、譜刻可能な場所すべてに小節番号を譜刻しています:
\relative c' { \override Score.BarNumber.break-visibility = ##(#t #t #t) \set Score.currentBarNumber = #11 % 最初の小節番号が表示されるようにします \bar "" c1 | c | c | c | \break c1 | c | c | c | }
Selected Snippets
最初の小節に小節番号を表示する
デフォルトでは、最初の小節番号が ’1’ 以下の場合、表示が抑制されます。barNumberVisibility
を all-bar-numbers-visible
にセットすることで、最初の小節にも小節番号を表示することができます。しかし、これを動作させるためには更に、最初の音符の前に空白の小節線を挿入する必要があります。
\layout { indent = 0 ragged-right = ##t } \relative c' { \set Score.barNumberVisibility = #all-bar-numbers-visible c1 | d | e | f \break g1 | e | d | c }
一定間隔で小節番号を表示する
barNumberVisibility
プロパティをセットすることで、小節番号を一定間隔で表示することができます。以下の例では、行末を除いて、2 小節ごとに小節番号が表示されています。
\relative c' { \override Score.BarNumber.break-visibility = #end-of-line-invisible \set Score.currentBarNumber = #11 % Print a bar number every second measure \set Score.barNumberVisibility = #(every-nth-bar-number-visible 2) c1 | c | c | c | c \break c1 | c | c | c | c }
小節番号が表示される間隔を変更する
小節番号が表示される間隔は {set-bar-number-visibility}
コンテキスト関数を変更することで変更することもできます。
\relative c' { \override Score.BarNumber.break-visibility = #end-of-line-invisible \context Score \applyContext #(set-bar-number-visibility 4) \repeat unfold 10 c'1 \context Score \applyContext #(set-bar-number-visibility 2) \repeat unfold 10 c }
小節番号を四角や丸の中に表示する
小節番号は四角や丸の中に表示することができます。
\relative c' { % Prevent bar numbers at the end of a line and permit them elsewhere \override Score.BarNumber.break-visibility = #end-of-line-invisible \set Score.barNumberVisibility = #(every-nth-bar-number-visible 4) % Increase the size of the bar number by 2 \override Score.BarNumber.font-size = #2 % Draw a box round the following bar number(s) \override Score.BarNumber.stencil = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print) \repeat unfold 5 { c1 } % Draw a circle round the following bar number(s) \override Score.BarNumber.stencil = #(make-stencil-circler 0.1 0.25 ly:text-interface::print) \repeat unfold 4 { c1 } \bar "|." }
小節番号を変更する
小節番号を付番する異なる方法が 2 つあり、繰り返しのある音楽に対して有用です。
\relative c'{ \set Score.alternativeNumberingStyle = #'numbers \repeat volta 3 { c4 d e f | } \alternative { { c4 d e f | c2 d \break } { f4 g a b | f4 g a b | f2 a | \break } { c4 d e f | c2 d } } c1 \break \set Score.alternativeNumberingStyle = #'numbers-with-letters \repeat volta 3 { c,4 d e f | } \alternative { { c4 d e f | c2 d \break } { f4 g a b | f4 g a b | f2 a | \break } { c4 d e f | c2 d } } c1 }
小節番号を揃える
デフォルトで小節番号は親オブジェクトに右揃えされます。つまり、小節番号は行の左端に、行内に表示される場合には小節線の左端に表示されます。これを中央揃えあるいは左揃えにすることができます。
\relative c' { \set Score.currentBarNumber = #111 \override Score.BarNumber.break-visibility = #all-visible % Increase the size of the bar number by 2 \override Score.BarNumber.font-size = #2 % Print a bar number every second measure \set Score.barNumberVisibility = #(every-nth-bar-number-visible 2) c1 | c1 % Center-align bar numbers \override Score.BarNumber.self-alignment-X = #CENTER c1 | c1 % Left-align bar numbers \override Score.BarNumber.self-alignment-X = #LEFT c1 | c1 }
楽譜から小節番号を削除する
Score
コンテキストから Bar_number_engraver
を削除することで、小節番号を完全に削除することができます。
\layout { \context { \Score \omit BarNumber % or: %\remove "Bar_number_engraver" } } \relative c'' { c4 c c c \break c4 c c c }
参照
コード断片集: Rhythms
内部リファレンス: BarNumber, Bar_number_engraver
既知の問題と警告
小節番号は StaffGroup
の左括弧の上端と衝突する可能性があります。これを解決するには、BarNumber
の padding
プロパティを使って小節番号を適切な位置に配置します。詳細は
StaffGroup と
BarNumber を参照してください。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 小節番号 ] | [ 上へ : 小節 ] | [ リハーサル記号 > ] |
小節と小節番号のチェック
小節チェックは入力された演奏時間の誤りを検出する手助けをします。小節チェックは、小節線が書き込まれると予想される場所ならどこにでも、小節記号 |
を使うことで挿入できます。他の場所で小節チェックの線に遭遇した場合、警告のリストがログ ファイルに書き込まれ、小節チェックに失敗した行番号と行を示します。次の例では、2 番目の小節チェックがエラーを発します。
\time 3/4 c2 e4 | g2 |
正しくない演奏時間は滅茶苦茶な楽譜を生成する可能性があります – 特にその楽譜が多声である場合はそうなる可能性があります。入力を修正するには、まずざっと見て失敗した小節チェックと演奏時間の誤りを探すと良いでしょう。
連続する小節チェックは同じ音楽的間隔で off になり、最初の警告メッセージだけが表示されます。これにより、警告の焦点がタイミング エラーの発生源に絞られます。
歌詞でも小節チェックを使用することができます。以下に例を挙げます:
\lyricmode { \time 2/4 Twin -- kle | Twin -- kle | }
歌詞での小節チェック マークは、マークが処理されてその次の音節が出現するタイミングで評価されます。もし歌詞が、小節の最初に休符を持つボイスと関連づいているなら、その小節の最初に配置できる音節が存在せず、警告が表示されます。
入力の中で小節チェックあるいはパイプ記号 |
に遭遇した場合にとられるアクションを再定義することも可能です。これにより、小節チェック以外のことを行うことができます。再定義は音楽表記を "|"
に代入することによって行います。以下の例では、|
は小節の終わりをチェックするのではなく、それが現れた場所に 2 重線の小節線を挿入するようセットされています。
"|" = \bar "||" { c'2 c' | c'2 c' c'2 | c' c'2 c' }
大きな楽曲をコピーしている場合、LilyPond の小節番号とコピー元のオリジナルの小節番号の対応をチェックすると役に立ちます。この対応は \barNumberCheck
によってチェックすることができます。例えば、
\barNumberCheck #123
を使用すると、currentBarNumber
が処理された時に 123 でなければ、警告が表示されます。
参照
コード断片集: Rhythms
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 小節と小節番号のチェック ] | [ 上へ : 小節 ] | [ 特殊なリズム関連事項 > ] |
リハーサル記号
リハーサル記号を譜刻するには、\mark
コマンドを使用します:
\relative c'' { c1 \mark \default c1 \mark \default c1 \mark \default c1 \mark \default }
\mark \default
を使用するとリハーサル記号は自動的に +1 されますが、手動で整数をリハーサル記号にセットすることもできます。セットした値は rehearsalMark
に保存されます。
\relative c'' { c1 \mark \default c1 \mark \default c1 \mark #8 c1 \mark \default c1 \mark \default }
文字 ‘I’ は、譜刻の慣習に従って、スキップされます。文字 ‘I’ を含めたければ、リハーサル記号のスタイル (文字のみ、四角で囲まれた文字、丸で囲まれた文字) に合わせて以下のコマンドの 1 つを使用します:
\set Score.rehearsalMarkFormatter = #format-mark-alphabet \set Score.rehearsalMarkFormatter = #format-mark-box-alphabet \set Score.rehearsalMarkFormatter = #format-mark-circle-alphabet
\relative c'' { \set Score.rehearsalMarkFormatter = #format-mark-box-alphabet c1 \mark \default c1 \mark \default c1 \mark #8 c1 \mark \default c1 \mark \default }
スタイルはプロパティ rehearsalMarkFormatter
によって定義されます。これは引数としてカレントの記号 (整数) とカレントのコンテキストをとる関数です。この関数はマークアップ オブジェクトを返します。以下の例では、rehearsalMarkFormatter
には定義済みの手続きがセットされています。数小節後では、四角で囲まれた番号を作り出す手続きがセットされています。
\relative c'' { \set Score.rehearsalMarkFormatter = #format-mark-numbers c1 \mark \default c1 \mark \default \set Score.rehearsalMarkFormatter = #format-mark-box-numbers c1 \mark \default \set Score.rehearsalMarkFormatter = #format-mark-circle-numbers c1 \mark \default \set Score.rehearsalMarkFormatter = #format-mark-circle-letters c1 }
ファイル ‘scm/translation-functions.scm’ は
format-mark-letters
(デフォルトのフォーマット),
format-mark-box-letters
, format-mark-numbers
それに
format-mark-box-numbers
の定義を保持しています。これらを参考にして他のフォーマット関数を作り出すこともできます。
加算された数字や文字の代わりに小節番号を取得するために
format-mark-barnumbers
, format-mark-box-barnumbers
, それに
format-mark-circle-barnumbers
を使うことがあります。
リハーサル記号の他のスタイルを手動で指定することができます:
\mark "A1"
Score.rehearsalMarkFormatter
はこの方法で指定された記号に影響を与えません。しかしながら、文字列として \markup
使用することができます。
\mark \markup { \box A1 }
音楽的図柄 (セーニョ記号など) を \mark
の中に譜刻することができます:
\relative c' { c1 \mark \markup { \musicglyph "scripts.segno" } c1 \mark \markup { \musicglyph "scripts.coda" } c1 \mark \markup { \musicglyph "scripts.ufermata" } c1 }
\musicglyph
を使用して譜刻できる記号のリストは、Emmentaler フォント を参照してください。
リハーサル記号の配置の一般的な調整については、テキストをフォーマットする を参照してください。更に細かな制御を行う場合は、オブジェクトを揃える の break-alignable-interface
を参照してください。
ファイル ‘scm/translation-functions.scm’ は
format-mark-numbers
と format-mark-letters
の定義を保持しています。ここにある定義を参考にして他のフォーマット関数を作り出すことができます。
参照
記譜法リファレンス: Emmentaler フォント, テキストをフォーマットする, オブジェクトを揃える
インストールされているファイル: ‘scm/translation-functions.scm’
コード断片集: Rhythms
内部リファレンス: MarkEvent, Mark_engraver, RehearsalMark
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < リハーサル記号 ] | [ 上へ : リズム ] | [ 装飾小音符 > ] |
1.2.6 特殊なリズム関連事項
装飾小音符 | ||
カデンツァに揃える | ||
時間管理 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 特殊なリズム関連事項 ] | [ 上へ : 特殊なリズム関連事項 ] | [ カデンツァに揃える > ] |
装飾小音符
装飾小音符は装飾の音であり、小さなフォントで表示され、論理的には演奏時間を持ちません。
\relative { c''4 \grace b16 a4( \grace { b16 c16 } a2) }
装飾音符には他にも 3 つのタイプがあります。acciaccatura (長さを持たない装飾小音符で、スラーでつなげられるスラッシュ付きの符幹を持つ音符) と、
appoggiatura (一定の比率で主音符から演奏時間を取り、スラッシュを持たない音符) です。スラーで結ばれた主音符の間に装飾小音符を配置するために、\slashedGrace
関数を用いて、
acciaccatura のようにスラッシュ付きの符幹を持つがスラーは付かない装飾小音符を譜刻することもできます。
\relative { \acciaccatura d''8 c4 \appoggiatura e8 d4 \acciaccatura { g16 f } e2 \slashedGrace a,8 g4 \slashedGrace b16 a4( \slashedGrace b8 a2) }
装飾小音符の配置は他の譜と同期されます。以下の例では、8 分の装飾小音符 1 つに対して 2 つの 16 分装飾小音符が割り当てられています:
<< \new Staff \relative { e''2 \grace { c16 d e f } e2 } \new Staff \relative { c''2 \grace { g8 b } c2 } >>
装飾小音符で記譜を終えたいのならば、\afterGrace
コマンドを使用します。このコマンドは 2 つの引数をとります:
主音符と主音符の後に続く装飾小音符です。
\relative { c''1 \afterGrace d1 { c16[ d] } c1 }
これは主音符の後に装飾小音符を配置します。装飾小音符がどのタイミングで配置されるかは、主音符の長さとの割合で決められます。以下に示すデフォルトの設定はトップレベルで再定義することができます:
afterGraceFraction = 3/4
代わりに、個々の \afterGrace
コマンドの直後に分数を与えることで割合を指定することもできます。
次の例は順に、デフォルトのスペース、主音符の 15/16
に指定した場合、主音符の 1/2
に指定した場合の結果を示しています。
<< \new Staff \relative { c''1 \afterGrace d1 { c16[ d] } c1 } \new Staff \relative { c''1 \afterGrace 15/16 d1 { c16[ d] } c1 } \new Staff \relative { c''1 \afterGrace 1/2 d1 { c16[ d] } c1 } >>
\afterGrace
の効果は、空白休符を用いても得ることができます。以下の例では、主音符の長さの 7/8 のスペースをとった後に装飾小音符を配置しています。
\new Voice \relative { << { d''1^\trill_( } { s2 s4. \grace { c16 d } } >> c1) }
\grace
音楽表記は特殊な譜刻設定を導入します
– 例えば、小さなフォントを作り出し、向きを設定するためです。それゆえ、装飾小音符の特殊な設定をオーバライドするためにレイアウトの調整を行う場合、調整は装飾小音符の表記の中に置くべきです。さらに、そのオーバライドは装飾小音符の表記の中で元に戻しておくべきです。以下の例では、装飾小音符の符幹のデフォルトの向きがオーバライドされ、それから元に戻されています。
\new Voice \relative { \acciaccatura { \stemDown f''16-> \stemNeutral } g4 e c2 }
Selected Snippets
通常の符頭で装飾音符のスラッシュを使用する
アッチャカトゥーラに付加されるスラッシュを、他の場面で使用することができます。
\relative c'' { \override Flag.stroke-style = #"grace" c8( d2) e8( f4) }
装飾音符のスタイルを調整する
add-grace-property
, remove-grace-property
を用いて、装飾音符のスタイルを楽譜全体にわたって変更することができます。次の例は
常に上向きとなっている Stem
の向きの設定を無効にして、またデフォルトの符頭をクロスに変更しています。
\relative c'' { \new Staff { $(remove-grace-property 'Voice 'Stem 'direction) $(add-grace-property 'Voice 'NoteHead 'style 'cross) \new Voice { \acciaccatura { f16 } g4 \grace { d16 e } f4 \appoggiatura { f,32 g a } e2 } } }
装飾音符のデフォルトの挙動を再定義する
装飾音符に関するデフォルトの識別子は
startGraceMusic
, stopGraceMusic
,
startAcciaccaturaMusic
, stopAcciaccaturaMusic
,
startAppoggiaturaMusic
, stopAppoggiaturaMusic
であり、‘ly/grace-init.ly’ に定義されています。これらを再定義することで、装飾音符の挙動を変更することができます。
startAcciaccaturaMusic = { <>( \override Flag.stroke-style = #"grace" \slurDashed } stopAcciaccaturaMusic = { \revert Flag.stroke-style \slurSolid <>) } \relative c'' { \acciaccatura d8 c1 }
装飾音符を浮いたスペースに配置する
strict-grace-spacing
プロパティをセットすることで、装飾音符を列として ’浮いた’ 状態にすることができます。つまり、装飾音符ではない音符のスペーシングと独立させることができます: まず、通常の音符がスペーシングされ、その後に装飾音符が左側に配置されます。
\relative c'' { << \override Score.SpacingSpanner.strict-grace-spacing = ##t \new Staff \new Voice { \afterGrace c4 { c16[ c8 c16] } c8[ \grace { b16 d } c8] c4 r } \new Staff { c16 c c c c c c c c4 r } >> }
参照
音楽用語集: grace notes, acciaccatura, appoggiatura
インストールされているファイル: ‘ly/grace-init.ly’
コード断片集: Rhythms
内部リファレンス: GraceMusic, Grace_beam_engraver, Grace_auto_beam_engraver, Grace_engraver, Grace_spacing_engraver
既知の問題と警告
複数の音符を連桁でつないだ アッチャカトゥーラ にはスラッシュは付けられず、複数の音符を連桁でつないだ アッポジャトゥーラ とまったく同じに見えます。
装飾小音符の同期は予期しない結果を引き起こす可能性があります。譜の記譜要素 – 拍子、小節線など – も同期をとられます。装飾小音符を持つ譜と持たない譜を混在させる場合は気をつけて下さい。例えば:
<< \new Staff \relative { e''4 \section \grace c16 d2. } \new Staff \relative { c''4 \section d2. } >>
これは、他の譜にある装飾小音符の演奏時間に対応した空白の装飾小音符を挿入することによって修正することができます。上の例を以下のように修正します:
<< \new Staff \relative { e''4 \section \grace c16 d2. } \new Staff \relative { c''4 \section \grace s16 d2. } >>
実際の音符部分には \acciaccatura
や \appoggiatura
を用いていたとしても、空白休符の部分には \grace
コマンドを用いるようにしてください。そうしないと、見えない装飾小音符と次の音符とを繋ぐ、醜いスラーが表示されます。
装飾小音符セクションはシーケンシャルな音楽表記の中でのみ使用すべきです。装飾小音符セクションのネスト、並置はサポートされておらず、クラッシュや他のエラーを引き起こすかもしれません。
MIDI 出力において装飾小音符はそれぞれ 1/4 の実演奏時間を持ちます。一連の装飾小音符の演奏時間が前の音符の演奏時間よりも長い場合、“Going back in MIDI time
” エラーになります。エラーを避けるには、装飾小音符の演奏時間を短くします。例えば:
c'8 \acciaccatura { c'8[ d' e' f' g'] }
を以下のようにします:
c'8 \acciaccatura { c'16[ d' e' f' g'] }
あるいは、明示的に演奏時間を変更します:
c'8 \acciaccatura { \scaleDurations 1/2 { c'8[ d' e' f' g'] } }
演奏時間を変更する を参照してください。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 装飾小音符 ] | [ 上へ : 特殊なリズム関連事項 ] | [ 時間管理 > ] |
カデンツァに揃える
オーケストラのコンテキストにおいて、カデンツァは特殊な問題を提起します: 楽譜の構成に演奏時間を持つカデンツァや他のソロ パッセージが含まれる場合、他のすべての楽器は、そのカデンツァの演奏時間の分だけスキップする必要があります。さもなければ、他の楽器はカデンツァの終わりよりも早すぎる (あるいは遅すぎる) タイミングで始まってしまいます。
この問題の解決方法の一つは、関数 mmrest-of-length
と
skip-of-length
を使用することです。これらの Scheme 関数は、引数として定義済みの音楽表記をとり、その音楽表記と同じ長さの複数小節休符または \skip
を生成します。
MyCadenza = \relative { c'4 d8 e f g g4 f2 g4 g } \new GrandStaff << \new Staff { \MyCadenza c'1 \MyCadenza c'1 } \new Staff { #(mmrest-of-length MyCadenza) c'1 #(skip-of-length MyCadenza) c'1 } >>
参照
音楽用語集: cadenza
コード断片集: Rhythms
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < カデンツァに揃える ] | [ 上へ : 特殊なリズム関連事項 ] | [ 発想記号 > ] |
時間管理
時間は Timing_translator
– これは、デフォルトでは、Socre
コンテキストの中にあります –
によって管理されます。エイリアス Timing
は Timing_translator
が配置されているコンテキストに付け加えられます。
エイリアス Timing
が利用可能であることを保証するため、コンテキスト (Voice
や Staff
など) を明示的にインスタンス化する必要があるかもしれません。
以下の Timing
のプロパティは、楽譜内でのタイミングの経過を追うために使用されます。
-
currentBarNumber
カレントの小節番号。このプロパティの使用例は、小節番号 を参照してください。
-
measureLength
カレントの拍子での小節の長さ。4/4 拍子では 1 であり、6/8 拍子では 3/4 です。この値は小節線を挿入するタイミングと自動連桁の生成の仕方を決定します。
-
measurePosition
カレントで処理している小節内での位置。この値は、
measureLength
に到達するか超過したときに、この値からmeasureLength
を減算されることによって、リセットされます。リセットが起こるときに、currentBarNumber
が +1 されます。-
timing
真にセットされている場合、各タイム ステップごとに上記の変数は更新されます。偽にセットされている場合、エングラーバはカレントの小節に永久に留まります。
タイミングは、上記の値のいずれかを明示的に設定することによって、変更することができます。次の例では、デフォルトの 4/4 拍子が譜刻されていますが、measureLength
は 5/4 にセットされています。第 3 小節の 4/8 の位置で、measurePositoin
は 1/8 進められて
5/8 になり、それによりその小節は 1/8 短くされます。次の小節線は 5/4 ではなく 9/8 の位置で引かれます。
\new Voice \relative { \set Timing.measureLength = #(ly:make-moment 5/4) c'1 c4 | c1 c4 | c4 c \set Timing.measurePosition = #(ly:make-moment 5/8) b4 b b8 | c4 c1 | }
この例が示すように、ly:make-moment n/m
は全音符の n/m の長さの演奏時間を構成します。例えば、ly:make-moment 1/8
は 1 個の 8 分音符の演奏時間であり、ly:make-moment 7/16
は 7 個の 16 分音符の演奏時間です。
参照
コード断片集: Rhythms
内部リファレンス: Timing_translator, Score
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 時間管理 ] | [ 上へ : 音楽記譜法 ] | [ 音符に付けられる発想記号 > ] |
1.3 発想記号
このセクションでは楽譜の中で作成可能なさまざまな発想記号をリストアップします。
1.3.1 音符に付けられる発想記号 | ||
1.3.2 曲線の発想記号 | ||
1.3.3 直線の発想記号 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 発想記号 ] | [ 上へ : 発想記号 ] | [ アーティキュレーションと装飾 > ] |
1.3.1 音符に付けられる発想記号
このセクションでは、音符に添付される発想記号を作成する方法について説明します。音符に添付される発想記号には以下のものがあります: アーティキュレーション、装飾、強弱記号。新たに強弱記号を作成する方法についても議論します。
アーティキュレーションと装飾 | ||
強弱記号 | ||
新たな強弱記号 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 音符に付けられる発想記号 ] | [ 上へ : 音符に付けられる発想記号 ] | [ 強弱記号 > ] |
アーティキュレーションと装飾
アーティキュレーション、装飾音それに他の演奏指示を表すさまざまな記号は以下の構文を用いて音符に付けることができます:
note\name
name
に対してとり得る値は
アーティキュレーションの一覧 でリストアップしています。例えば:
\relative { c''4\staccato c\mordent b2\turn c1\fermata }
これらのアーティキュレーションのいくつかはより容易に入力できるよう短縮記法を持っています。短縮記法は音符名の後ろに付けられ、ダッシュ -
とそれに続くアーティキュレーションを表す記号から成ります。あらかじめ定義されている短縮記法は以下のアーティキュレーションです:
marcato, stopped, tenuto,
staccatissimo, accent, staccato
それに portato。これらの出力は以下のように表示されます:
\relative { c''4-^ c-+ c-- c-! c4-> c-. c2-_ }
アーティキュレーションのデフォルトの配置規則はファイル ‘scm/script.scm’ で定義されています。アーティキュレーションと装飾は手動で譜の上または下に配置されることもあります – 向きと配置 を参照してください。
アーティキュレーションは Script
オブジェクトです。これらのプロパティについて
Script に説明があります。
アーティキュレーションは音符と同様に休符や複数小節の休符に付けることもできます。複数小節の休符にアーティキュレーションを付けると、MultiMeasureRestScript
オブジェクトが作成されます。
\override Script.color = #red \override MultiMeasureRestScript.color = #blue a'2\fermata r\fermata R1\fermata
アーティキュレーションに加えて、テキストとマークアップを音符に付けることができます。テキスト スクリプト を参照してください。
音符につけられる Script と TextScript の配置順序についての更なる情報は、 オブジェクトの配置 を参照してください。
Selected Snippets
アーティキュレーションの省略記法のデフォルト値を書き換える
アーティキュレーションの省略記法は ly/script-init.ly
に定義されており、変数 dashHat
, dashPlus
, dashDash
,
dashBang
, dashLarger
, dashDot
,
dashUnderscore
にデフォルト設定がセットされています。これらを変更することができます。この例では、dashPlus
変数に
trill
をセットすることで、-+
を入力した際にデフォルトの + 記号の代わりにトリル記号が表示されるようにしています。
\relative c'' { c1-+ } dashPlus = \trill \relative c'' { c1-+ }
スクリプトの縦方向の優先順位をコントロールする
スクリプト (音符に付加する記号) の縦方向の優先順位は、script-priority
プロパティでコントロールされます。値が小さいほど、音符の近くに配置されます。この例では、1 つ目は
TextScript
(シャープ記号) を低い優先度を持つようにしており、一番低い位置に表示されます。2 つ目はトリル (Script
) が低い優先度を持ち、内側に表示されるようになっています。2 つのオブジェクトが同じ優先度を持つ場合には、入力された順番が配置に影響します。
\relative c''' { \once \override TextScript.script-priority = #-100 a2^\prall^\markup { \sharp } \once \override Script.script-priority = #-100 a2^\prall^\markup { \sharp } }
遅れターンを作成する
下の音符が臨時記号を持つような遅れターンを作るには、いくつかのオーバライドが必要です。outside-staff-priority
プロパティを #f
にセットしなければ、avoid-slur
プロパティよりも優先されてしまい、スラーの内側に記号が入りません。分数 2/3
と 1/3
は、水平位置を調整しています。
\relative c'' { \after 2*2/3 \turn c2( d4) r | \after 4 \turn c4.( d8) \after 4 { \once \set suggestAccidentals = ##t \once \override AccidentalSuggestion.outside-staff-priority = ##f \once \override AccidentalSuggestion.avoid-slur = #'inside \once \override AccidentalSuggestion.font-size = -3 \once \override AccidentalSuggestion.script-priority = -1 \once \hideNotes cis8\turn \noBeam } d4.( e8) }
参照
音楽用語集: tenuto, accent, staccato, portato
学習マニュアル: Placement of objects
記譜法リファレンス: テキスト スクリプト, 向きと配置, アーティキュレーションの一覧, トリル
インストールされているファイル: ‘scm/script.scm’
コード断片集: 発想記号
内部リファレンス: Script, TextScript
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < アーティキュレーションと装飾 ] | [ 上へ : 音符に付けられる発想記号 ] | [ 新たな強弱記号 > ] |
強弱記号
絶対強弱記号は音符の後にコマンドを用いて
– c4\ff
などのように
– 指定します。
利用可能な強弱記号は
\ppppp
, \pppp
, \ppp
, \pp
, \p
,
\mp
, \mf
, \f
, \ff
, \fff
,
\ffff
, \fffff
, \fp
, \sf
, \sff
,
\sp
, \spp
, \sfz
, \rfz
,
それに \n
です。
強弱記号を手動で譜の上または下に配置することもできます –
向きと配置 を参照してください。
\relative c'' { c2\ppp c\mp c2\rfz c^\mf c2_\spp c^\ff }
クレッシェンド 記号は \<
で始まり、\!
、絶対強弱記号あるいは追加のクレッシェンド記号またはデクレッシェンド記号で終わります。デクレッシェンド 記号は \>
で始まり、\!
、絶対強弱記号あるいは次のクレッシェンド記号またはデクレッシェンド記号で終わります。\cr
と \decr
を \<
と \>
の代わりに用いることができます。
また、クレッシェンド記号やデクレッシェンド記号の終点に、それぞれ
\endcr
と \enddecr
を \!
の代わりに用いることもできます。この記譜法を用いるとデフォルトでは ヘアピン が譜刻されます。
\relative c'' { c2\< c\! d2\< d\f e2\< e\> f2\> f\! e2\> e\mp d2\> d\> c1\! }
\!
で終了するヘアピンは、\!
が割り当てられた音符の右端で終了します。次の クレッシェンド または デクレッシェンド 記号の開始によってヘアピンが終了する場合、そのヘアピンは次の \<
または \>
が割り当てられた音符の中央で終了します。次のへアピンは、通常通りに音符の左端で始まる代わりに、右端から始まります。1 拍目で終わるヘアピンは、前の小節線のところで終了します。
\relative { c''1\< | c4 a c\< a | c4 a c\! a\< | c4 a c a\! }
\!
の代わりに絶対強弱記号で終了するヘアピンも同じように譜刻されます。しかしながら、絶対強弱記号の幅によってヘアピンの終了点は変わります。
\relative { c''1\< | c4 a c\mf a | c1\< | c4 a c\ffff a }
1 つの音符に複数の記号を譜刻するには、空白休符を用いる必要があります。これは特に、同じ音符に クレッシェンド と デクレッシェンド を付ける場合に有用です。
\relative { c''4\< c\! d\> e\! << f1 { s4 s4\< s4\> s4\! } >> }
\espressivo
コマンドを用いて、同じ音符にクレッシェンドとデクレッシェンドを付けることができます。しかしながら、これは強弱記号ではなくアーティキュレーションとして実装されているということに注意してください。
\relative { c''2 b4 a g1\espressivo }
テキストのクレッシェンド記号は \cresc
で開始します。テキストのデクレッシェンド記号は \decresc
または
\dim
で開始します。必要に応じて延長線が譜刻されます。
\relative { g'8\cresc a b c b c d e\mf | f8\decresc e d c e\> d c b | a1\dim ~ | a2. r4\! | }
強弱のテキスト符号の変更でヘアピンを置換することもできます:
\relative c'' { \crescTextCresc c4\< d e f\! | \dimTextDecresc g4\> e d c\! | \dimTextDecr e4\> d c b\! | \dimTextDim d4\> c b a\! | \crescHairpin \dimHairpin c4\< d\! e\> d\! | }
新たに絶対強弱記号や強弱に対応させるテキストを作成するには、新たな強弱記号 を参照してください。
強弱記号の垂直方向の位置は DynamicLineSpanner によって処理されます。
Dynamics
を用いて水平線上に強弱記号を譜刻することができます。タイミングを示すために空白休符を使用します。(Dynamics
コンテキスト内の音符は音楽的時間を取りますが、譜刻されません。)Dynamics
コンテキストはテキスト スクリプト、テキスト スパナ、ピアノ ペダル記号などを保持することができ、有用です。
<< \new Staff \relative { c'2 d4 e | c4 e e,2 | g'4 a g a | c1 | } \new Dynamics { s1\< | s1\f | s2\dim s2-"rit." | s1\p | } >>
定義済みコマンド
\dynamicUp
,
\dynamicDown
,
\dynamicNeutral
,
\crescTextCresc
,
\dimTextDim
,
\dimTextDecr
,
\dimTextDecresc
,
\crescHairpin
,
\dimHairpin
Selected Snippets
小節線にぶつかるヘアピンの挙動を設定する
ヘアピンの終端となる音符が強拍にある場合、ヘアピンはその前にある小節線の直前が終端となります。この挙動は to-barline
プロパティをオーバライドすることで調整できます。
\relative c'' { e4\< e2. e1\! \override Hairpin.to-barline = ##f e4\< e2. e1\! }
ヘアピンの最小長さをセットする
ヘアピンが短すぎる場合、Hairpin
オブジェクトの minimum-length
プロパティを変更することで長くすることができます。
<< { \after 4 \< \after 2 \> \after 2. \! f'1 \override Hairpin.minimum-length = #8 \after 4 \< \after 2 \> \after 2. \! f'1 } { \repeat unfold 8 c'4 } >>
ヘアピンの端点を移動する
ヘアピンの端点は Hairpin
オブジェクトの shorten-pair
をセットすることで移動できます。正の値は端点を右に移動し、負の値は左に移動します。minimum-length
プロパティとは異なり、このプロパティはヘアピンのみの見た目に影響します。水平方向のスペーシングには影響しません
(始点や終点にある強弱記号もです)。そのため、この方法はヘアピンを割り当てられた領域の中で微調整するのに適しています。
{ c'1~\< c'2~ c'\! \once \override Hairpin.shorten-pair = #'(2 . 2) c'1~\< c'2~ c'\! \once \override Hairpin.shorten-pair = #'(-2 . -2) c'1~\< c'2~ c'\! c'1~\p-\tweak shorten-pair #'(2 . 0)\< c'2~ c'\ffff }
ヘアピンの表示に al niente 記譜法を用いる
ヘアピン強弱記号は、Hairpin
オブジェクトの circled-tip
プロパティを #t
にセットすることで、端に丸を付けて (“al niente” 記譜法) 表示することができます。
\relative c'' { \override Hairpin.circled-tip = ##t c2\< c\! c4\> c\< c2\! }
ヘアピンを様々なスタイルで表示する
ヘアピン強弱記号は様々なスタイルで作成できます。
\relative c'' { \override Hairpin.stencil = #flared-hairpin a4\< a a a\f a4\p\< a a a\ff a4\sfz\< a a a\! \override Hairpin.stencil = #constante-hairpin a4\< a a a\f a4\p\< a a a\ff a4\sfz\< a a a\! \override Hairpin.stencil = #flared-hairpin a4\> a a a\f a4\p\> a a a\ff a4\sfz\> a a a\! \override Hairpin.stencil = #constante-hairpin a4\> a a a\f a4\p\> a a a\ff a4\sfz\> a a a\! }
強弱記号やテキスト スクリプトを縦方向に揃える
全ての DynamicLineSpanner
オブジェクト (ヘアピンや強弱記号テキスト)
は、他のアイテムが邪魔しない限り、譜から少なくとも staff-padding
だけ離れた基準線に配置されます。staff-padding
を十分に大きくすると、強弱記号を揃えることができます。
また、\textLengthOn
を用いて、テキスト スクリプトをベースラインに揃えることができます。
music = \relative c' { a'2\p b\f e4\p f\f\> g, b\p c2^\markup { \huge gorgeous } c^\markup { \huge fantastic } } { \music \break \override DynamicLineSpanner.staff-padding = #3 \textLengthOn \override TextScript.staff-padding = #1 \music }
テキスト強弱記号の線を隠す
(cresc. や dim. のような) 強弱を変更するテキストは、その範囲を破線で示しています。次のようにしてこの線を表示しないようにすることができます。
\relative c'' { \override DynamicTextSpanner.style = #'none \crescTextCresc c1\< | d | b | c\! }
テキストによる強弱記号のテキストとスパナのスタイルを変更する
クレッシェンドやデクレッシェンドに使われるテキストは crescendoText
,
decrescendoText
コンテキスト プロパティをセットすることで変更できます。
スパナの線は、DynamicTextSpanner
の style
プロパティをセットすることでスタイルを変更できます。デフォルトの値は 'dashed-line
であり、他に 'line
, 'dotted-line
, 'none
が設定できます。
\relative c'' { \set crescendoText = \markup { \italic { cresc. poco } } \set crescendoSpanner = #'text \override DynamicTextSpanner.style = #'dotted-line a2\< a a2 a a2 a a2 a\mf }
参照
音楽用語集: al niente, crescendo, decrescendo, hairpin
学習マニュアル: アーティキュレーションと強弱記号
記譜法リファレンス: 向きと配置, 新たな強弱記号, MIDI 出力をより良くする, MIDI での音の強弱を制御する
コード断片集: 発想記号
内部リファレンス: DynamicText, Hairpin, DynamicLineSpanner, Dynamics
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 強弱記号 ] | [ 上へ : 音符に付けられる発想記号 ] | [ 曲線の発想記号 > ] |
新たな強弱記号
強弱記号を作成する最も容易な方法は、\markup
オブジェクトを使用することです。
moltoF = \markup { molto \dynamic f } \relative { <d' e>16_\moltoF <d e> <d e>2.. }
マークアップ モードでは、注釈の強弱記号 (括弧や角括弧で囲まれます) を作成することができます。マークアップ モードの構文は テキストをフォーマットする で記述されています。
roundF = \markup { \center-align \concat { \bold { \italic ( } \dynamic f \bold { \italic ) } } } boxF = \markup { \bracket { \dynamic f } } \relative { c'1_\roundF c1_\boxF }
単純に中央揃えの強弱記号は make-dynamic-script
関数を用いて簡単に作成できます。
sfzp = #(make-dynamic-script "sfzp") \relative { c'4 c c\sfzp c }
一般に、make-dynamic-script
は引数として何らかのマークアップ オブジェクトをとります。強弱記号のフォントに含まれる文字は f,m,p,r,s
それに z
だけです。このため、テキストや句読点を含む強弱記号を必要とする場合、フォント ファミリとフォント エンコーディングを通常のテキストに戻すためのマークアップ コマンド
– 例えば \normal-text
– を用いる必要があります。通常のマークアップの代わりに make-dynamic-script
を用いる利点は、同じ符頭に付けられるマークアップ オブジェクトとヘアピンが垂直方向に揃うことを保証されている点にあります。
roundF = \markup { \center-align \concat { \normal-text { \bold { \italic ( } } \dynamic f \normal-text { \bold { \italic ) } } } } boxF = \markup { \bracket { \dynamic f } } mfEspress = \markup { \center-align \line { \hspace #3.7 mf \normal-text \italic espress. } } roundFdynamic = #(make-dynamic-script roundF) boxFdynamic = #(make-dynamic-script boxF) mfEspressDynamic = #(make-dynamic-script mfEspress) \relative { c'4_\roundFdynamic\< d e f g,1~_\boxFdynamic\> g1 g'1~\mfEspressDynamic g1 }
Scheme 形式のマークアップ モードを用いることもできます。マークアップ Scheme の構文は Markup construction in Scheme で説明されています。
moltoF = #(make-dynamic-script (markup #:normal-text "molto" #:dynamic "f")) \relative { <d' e>16 <d e> <d e>2..\moltoF }
強弱記号を音符に中央揃えさせるのではなく、左揃えさせるには、\tweak
を使います:
moltoF = \tweak DynamicText.self-alignment-X #LEFT #(make-dynamic-script (markup #:normal-text "molto" #:dynamic "f")) \relative { <d' e>16 <d e> <d e>2..\moltoF <d e>1 }
マークアップ モードでのフォント設定は フォントとフォント サイズを選択する で記述されています。
参照
記譜法リファレンス: テキストをフォーマットする, フォントとフォント サイズを選択する, MIDI 出力をより良くする, MIDI での音の強弱を制御する
拡張: Markup construction in Scheme
コード断片集: 発想記号
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 新たな強弱記号 ] | [ 上へ : 発想記号 ] | [ スラー > ] |
1.3.2 曲線の発想記号
このセクションでは曲線を持つさまざまな発想記号 – 通常のスラー、フレージング スラー、ブレス記号、Fall それに Doit – を作成する方法について説明します。
スラー | ||
フレージング スラー | ||
ブレス記号 | ||
Fall と Doit |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 曲線の発想記号 ] | [ 上へ : 曲線の発想記号 ] | [ フレージング スラー > ] |
スラー
スラー は括弧を用いて入力します:
Note: 多声音楽では、スラーが始まったボイスでそのスラーを終わらせる必要があります。
\relative { f''4( g a) a8 b( a4 g2 f4) <c e>2( <b d>2) }
スラーを手動で音符の上または下に配置することができます。向きと配置 を参照してください。
同時進行する、あるいは重なるスラーは特別な注意を必要とします。通常、外側のスラーはフレージングを表し、フレージング スラーは通常のスラーと重複します。フレージング スラーを参照してください。一つの Voice
に通常のスラーが複数必要な場合、スラーの前に
\=
と識別子 (シンボルか非負の整数) を入力することによって、対応するスラーの始点と終点にラベルを付ける必要があります。
\fixed c' { <c~ f\=1( g\=2( >2 <c e\=1) a\=2) > }
スラーは実線、点線あるいは破線のどれかになります。実線がスラーのデフォルト スタイルです:
\relative { c'4( e g2) \slurDashed g4( e c2) \slurDotted c4( e g2) \slurSolid g4( e c2) }
スラーの半分を破線 (前半を破線、後半を実線) にする、あるいは、半分を実線 (前半を実線、後半を破線) にすることもできます:
\relative { c'4( e g2) \slurHalfDashed g4( e c2) \slurHalfSolid c4( e g2) \slurSolid g4( e c2) }
スラーの破線パターンを定義することができます:
\relative { c'4( e g2) \slurDashPattern #0.7 #0.75 g4( e c2) \slurDashPattern #0.5 #2.0 c4( e g2) \slurSolid g4( e c2) }
定義済みコマンド
\slurUp
,
\slurDown
,
\slurNeutral
,
\slurDashed
,
\slurDotted
,
\slurHalfDashed
,
\slurHalfSolid
,
\slurDashPattern
,
\slurSolid
Selected Snippets
和音のレガートに 2 つのスラーを使用する
和音をレガートで演奏する場合、2 つのスラーを書く場合があります。これは
doubleSlurs
をセットすることで実現できます。
\relative c' { \set doubleSlurs = ##t <c e>4( <d f> <c e> <d f>) }
テキスト マークアップをスラーの内側に配置する
テキスト マークアップをスラーの内側に配置するには、outside-staff-priority
プロパティを #f
に設定する必要があります。
\relative c'' { \override TextScript.avoid-slur = #'inside \override TextScript.outside-staff-priority = ##f c2(^\markup { \halign #-10 \natural } d4.) c8 }
複雑な破線のスラーを作成する
dash-definition
プロパティをセットすることで、スラーに複雑な破線パターンを追加することができます。dash-definition
は
dash-element
のリストになっています。dash-element
はスラーの各部分に対する破線パターンのパラメータ リストです。
スラーはベジエ曲線の媒介変数 t (左端が 0, 右端が 1) の関数として定義されます。dash-element
は、(start-t stop-t dash-fraction dash-period)
のリストになっています。start-t
から stop-t
までの範囲が、dash-period
の長さにつき dash-fraction
が黒になるような破線となります。dash-period
は譜スペースの単位です。dash-fraction
を 1 にすると実線のスラーになります。
\relative c' { \once \override Slur.dash-definition = #'((0 0.3 0.1 0.75) (0.3 0.6 1 1) (0.65 1.0 0.4 0.75)) c4( d e f) \once \override Slur.dash-definition = #'((0 0.25 1 1) (0.3 0.7 0.4 0.75) (0.75 1.0 1 1)) c4( d e f) }
参照
音楽用語集: slur
学習マニュアル: ネストされない括弧とタイ
記譜法リファレンス: 向きと配置, フレージング スラー
コード断片集: 発想記号
内部リファレンス: Slur
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < スラー ] | [ 上へ : 曲線の発想記号 ] | [ ブレス記号 > ] |
フレージング スラー
音楽センテンスを示す フレージング スラー (またはフレーズ記号) はコマンド \(
と \)
を用いて記述します:
\relative { c''4\( d( e) f( e2) d\) }
印刷の上では、フレージング スラーは通常のスラーとほとんど同じです。しかしながら、それぞれ異なるオブジェクトとして取り扱われます。\slurUp
はフレージング スラーには影響を与えません。フレージング スラーを手動で音符の上または下に配置することができます。向きと配置 を参照してください。
同時進行あるいは重なり合うフレージング スラーは、通常のスラーと同様に \=
を用いて入力する必要があります。スラー を参照してください。
フレージング スラーを実線、点線あるいは破線にすることができます。実線がフレージング スラーのデフォルト スタイルです:
\relative { c'4\( e g2\) \phrasingSlurDashed g4\( e c2\) \phrasingSlurDotted c4\( e g2\) \phrasingSlurSolid g4\( e c2\) }
フレージング スラーの半分を破線 (前半を破線、後半を実線) にする、あるいは、半分を実線 (前半を実線、後半を破線) にすることもできます:
\relative { c'4\( e g2\) \phrasingSlurHalfDashed g4\( e c2\) \phrasingSlurHalfSolid c4\( e g2\) \phrasingSlurSolid g4\( e c2\) }
フレージング スラーの破線パターンを定義することができます:
\relative { c'4\( e g2\) \phrasingSlurDashPattern #0.7 #0.75 g4\( e c2\) \phrasingSlurDashPattern #0.5 #2.0 c4\( e g2\) \phrasingSlurSolid g4\( e c2\) }
フレージング スラーに対する破線パターンの定義は、スラーに対する破線パターンの定義と同じ構造をとります。複雑な破線パターンについての更なる情報は、スラー のコード断片集を参照してください。
定義済みコマンド
\phrasingSlurUp
,
\phrasingSlurDown
,
\phrasingSlurNeutral
,
\phrasingSlurDashed
,
\phrasingSlurDotted
,
\phrasingSlurHalfDashed
,
\phrasingSlurHalfSolid
,
\phrasingSlurDashPattern
,
\phrasingSlurSolid
参照
学習マニュアル: ネストされない括弧とタイ
コード断片集: 発想記号
内部リファレンス: PhrasingSlur
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < フレージング スラー ] | [ 上へ : 曲線の発想記号 ] | [ Fall と Doit > ] |
ブレス記号
ブレス記号は \breathe
を用いて入力します:
{ c''2. \breathe d''4 }
ブレス記号は他の発想記号と異なり、前の音符と関連したものではなく、独立した音楽イベントです。そのため、前の音符に付加する発想記号や、手動連桁を示す角括弧、スラーやフレージング スラーを示す括弧は \breathe
の前に配置されなければなりません。
ブレス記号は自動連桁を終わらせます。この振る舞いをオーバライドする方法は、手動連桁 を参照してください。
\relative { c''8 \breathe d e f g2 }
古代記譜法でのブレス記号の音楽指示子 – divisio (ディビジオ: 区切り記号) がサポートされています。詳細は ディビジオ を参照してください。
Selected Snippets
ブレス記号を変更する
ブレス記号のグリフは BreathingSign
レイアウト オブジェクトの
text
プロパティをオーバライドすることで、任意のマークアップ
テキストに変更することができます。
\relative c'' { c2 \override BreathingSign.text = \markup { \musicglyph "scripts.rvarcomma" } \breathe d2 }
ブレス記号にチェックを使用する
歌曲や管楽では、ブレス記号によくチェック マークを使用します。これはコンマ記号で示すように短い間を挿入するものではなく、マークの前にある音符を少しだけ短くすることでブレスを行います。マークを譜から離すために、上方向に少し移動しています。
\relative c'' { c2 \breathe d2 \override BreathingSign.Y-offset = #2.6 \override BreathingSign.text = \markup { \musicglyph "scripts.tickmark" } c2 \breathe d2 }
カエスーラを挿入する
カエスーラ記号は BreathingSign
オブジェクトの text
プロパティをオーバライドすることで作成することができます。曲がったカエスーラ記号も使用することができます。
\relative c'' { \override BreathingSign.text = \markup { \musicglyph "scripts.caesura.straight" } c8 e4. \breathe g8. e16 c4 \override BreathingSign.text = \markup { \musicglyph "scripts.caesura.curved" } g8 e'4. \breathe g8. e16 c4 }
参照
音楽用語集: caesura
記譜法リファレンス: ディビジオ
コード断片集: 発想記号
内部リファレンス: BreathingEvent, BreathingSign, Breathing_sign_engraver
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < ブレス記号 ] | [ 上へ : 曲線の発想記号 ] | [ 直線の発想記号 > ] |
Fall と Doit
\bendAfter
コマンドを用いて、Fall と Doit 音符にを付け加えることができます。Fall あるいは Doit の向きはプラスあるいはマイナス (上あるいは下) で示します。指示の数は Fall あるいは Doit の主音符を展開させるピッチの幅を示します。
\relative c'' { c2\bendAfter #+4 c2\bendAfter #-4 c2\bendAfter #+6.5 c2\bendAfter #-6.5 c2\bendAfter #+8 c2\bendAfter #-8 }
Selected Snippets
fall や doit の形を調整する
fall や doit の形を調整するために、
shortest-duration-space
プロパティを変更することができます。
\relative c'' { \override Score.SpacingSpanner.shortest-duration-space = #4.0 c2-\bendAfter #5 c2-\bendAfter #-4.75 c2-\bendAfter #8.5 c2-\bendAfter #-6 }
参照
コード断片集: 発想記号
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < Fall と Doit ] | [ 上へ : 発想記号 ] | [ グリッサンド > ] |
1.3.3 直線の発想記号
このセクションでは直線的な軌道をとるさまざまな発想記号 – グリッサンド、アルペジオそれにトリル – を作成する方法について説明します。
グリッサンド | ||
アルペジオ | ||
トリル |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 直線の発想記号 ] | [ 上へ : 直線の発想記号 ] | [ アルペジオ > ] |
グリッサンド
グリッサンド は音符の後に \glissando
を付けることによって作成されます:
\relative { g'2\glissando g' c2\glissando c, \afterGrace f,1\glissando f'16 }
グリッサンドは譜を跨いで音符を結ぶことができます:
\new PianoStaff << \new Staff = "right" { e'''2\glissando \change Staff = "left" a,,4\glissando \change Staff = "right" b''8 r | } \new Staff = "left" { \clef bass s1 } >>
グリッサンドは和音の中にある音符を結ぶことができます。2 つの和音の音符を平行に 1 対 1 で結ぶのではない場合、
\glissandoMap
を設定することで、結び方を定義する必要があります。和音の音符は入力ファイル ‘.ly’ で出現する順に 0, 1, … と番号が付きます。
\relative { <c' e>1\glissando g' | <c, e>1\glissando | <g' b> | \break \set glissandoMap = #'((0 . 1) (1 . 0)) <c, g'>1\glissando | <d a'> | \set glissandoMap = #'((0 . 0) (0 . 1) (0 . 2)) c1\glissando | <d f a> | \set glissandoMap = #'((2 . 0) (1 . 0) (0 . 1)) <f d a'>1\glissando | <c c'> | }
異なるスタイルのグリッサンドを作成することもできます。詳細は ライン スタイル を参照してください。
Selected Snippets
現代のグリッサンド
終端の音符が存在しない現代のグリッサンドは、不可視の音符とカデンツァを使用することで作ることができます。
\relative c'' { \time 3/4 \override Glissando.style = #'zigzag c4 c \cadenzaOn c4\glissando \hideNotes c,,4 \unHideNotes \cadenzaOff \bar "|" }
長いグリッサンドにタイミング マークを追加する
長いグリッサンド部分の拍をタイミング マークで表示する場合があります。これは通例符頭が無く符幹だけの音符として表され、この中間部分に発想記号を付け加えることもできます。
符幹がグリッサンドにうまく揃わない場合には、わずかに配置を調整する必要があるかもしれません。
glissandoSkipOn = { \override NoteColumn.glissando-skip = ##t \hide NoteHead \override NoteHead.no-ledgers = ##t } glissandoSkipOff = { \revert NoteColumn.glissando-skip \undo \hide NoteHead \revert NoteHead.no-ledgers } \relative c'' { r8 f8\glissando \glissandoSkipOn f4 g a a8\noBeam \glissandoSkipOff a8 r8 f8\glissando \glissandoSkipOn g4 a8 \glissandoSkipOff a8 | r4 f\glissando \< \glissandoSkipOn a4\f \> \glissandoSkipOff b8\! r | }
グリッサンドを改行できるようにする
after-line-breaking
と共に breakable
プロパティを #t
にすることで、グリッサンドの途中で改行することができます。
glissandoSkipOn = { \override NoteColumn.glissando-skip = ##t \hide NoteHead \override NoteHead.no-ledgers = ##t } \relative c'' { \override Glissando.breakable = ##t \override Glissando.after-line-breaking = ##t f1\glissando | \break a4 r2. | f1\glissando \once \glissandoSkipOn \break a2 a4 r4 | }
繰り返しにまたがるグリッサンド
複数の \alternative
ブロックにまたがるグリッサンドは、\alternative
ブロックの始まりに見えない装飾音符を配置し、グリッサンドを付加することで模倣することができます。装飾音符のピッチはグリッサンドの始端と同じであるべきです。ここでは、装飾音符のピッチを引数に取る音楽関数を定義しています。
多声の音楽では、他のボイスの装飾音符と位置を合わせる必要があります。
repeatGliss = #(define-music-function (grace) (ly:pitch?) #{ % the next two lines ensure the glissando is long enough % to be visible \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods \once \override Glissando.minimum-length = #3.5 \once \hideNotes \grace $grace \glissando #}) \score { \relative c'' { \repeat volta 3 { c4 d e f\glissando } \alternative { { g2 d } { \repeatGliss f g2 e } { \repeatGliss f e2 d } } } } music = \relative c' { \voiceOne \repeat volta 2 { g a b c\glissando } \alternative { { d1 } { \repeatGliss c \once \omit StringNumber e1\2 } } } \score { \new StaffGroup << \new Staff << \new Voice { \clef "G_8" \music } >> \new TabStaff << \new TabVoice { \clef "moderntab" \music } >> >> }
参照
音楽用語集: glissando
記譜法リファレンス: ライン スタイル
コード断片集: 発想記号
内部リファレンス: Glissando
既知の問題と警告
線の上にテキストを譜刻する (gliss. など) ことはサポートされていません。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < グリッサンド ] | [ 上へ : 直線の発想記号 ] | [ トリル > ] |
アルペジオ
和音の アルペジオ (変則和音とも呼ばれます) は和音構造の後に
\arpeggio
を付けることによって記述されます:
\relative { <c' e g c>1\arpeggio }
異なるタイプのアルペジオを描くこともできます。\arpeggioNormal
は通常のアルペジオに戻します:
\relative { <c' e g c>2\arpeggio \arpeggioArrowUp <c e g c>2\arpeggio \arpeggioArrowDown <c e g c>2\arpeggio \arpeggioNormal <c e g c>2\arpeggio }
特殊な 括弧スタイル のアルペジオ シンボルを作成することができます:
\relative { <c' e g c>2 \arpeggioBracket <c e g c>2\arpeggio \arpeggioParenthesis <c e g c>2\arpeggio \arpeggioParenthesisDashed <c e g c>2\arpeggio \arpeggioNormal <c e g c>2\arpeggio }
括弧スタイルのアルペジオの破線プロパティは 'dash-definition
プロパティで制御します。'dash-definition
プロパティについては スラー で説明しています。
アルペジオをタイを用いて明示的に描き出すことができます。詳細は タイ を参照してください。
定義済みコマンド
\arpeggio
,
\arpeggioArrowUp
,
\arpeggioArrowDown
,
\arpeggioNormal
,
\arpeggioBracket
,
\arpeggioParenthesis
,
\arpeggioParenthesisDashed
Selected Snippets
ピアノ譜で譜をまたがるアルペジオを作成する
PianoStaff
内では、PianoStaff.connectArpeggios
プロパティをセットすることで、譜をまたがるアルペジオを作成することができます。
\new PianoStaff \relative c'' << \set PianoStaff.connectArpeggios = ##t \new Staff { <c e g c>4\arpeggio <g c e g>4\arpeggio <e g c e>4\arpeggio <c e g c>4\arpeggio } \new Staff { \clef bass \repeat unfold 4 { <c,, e g c>4\arpeggio } } >>
他のコンテキストで譜をまたがるアルペジオを作成する
譜をまたがるアルペジオは Span_arpeggio_engraver
が Score
コンテキストに追加されていれば、GrandStaff
, PianoStaff
, StaffGroup
以外にも作成することができます。
\score { \new ChoirStaff { \set Score.connectArpeggios = ##t << \new Voice \relative c' { <c e>2\arpeggio <d f>2\arpeggio <c e>1\arpeggio } \new Voice \relative c { \clef bass <c g'>2\arpeggio <b g'>2\arpeggio <c g'>1\arpeggio } >> } \layout { \context { \Score \consists "Span_arpeggio_engraver" } } }
異なるボイスにまたがるアルペジオを作成する
Staff
コンテキストに Span_arpeggio_engraver
が追加された場合、アルペジオは同じ譜にある異なるボイスにまたがって表示されます。
\new Staff \with { \consists "Span_arpeggio_engraver" } \relative c' { \set Staff.connectArpeggios = ##t << { <e' g>4\arpeggio <d f> <d f>2 } \\ { <d, f>2\arpeggio <g b>2 } >> }
参照
音楽用語集: arpeggio
コード断片集: 発想記号
内部リファレンス: Arpeggio, Slur, PianoStaff
既知の問題と警告
ある PianoStaff
の中の同時点で譜を跨ぐアルペジオと跨がないアルペジオを混在させることはできません。
譜を跨ぐアルペジオに括弧スタイルのアルペジオを適用することは単純な方法ではできません。譜を跨ぐ符幹を参照してください。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < アルペジオ ] | [ 上へ : 直線の発想記号 ] | [ 繰り返し > ] |
トリル
延長線を持たない短い トリル は \trill
で譜刻されます。アーティキュレーションと装飾 を参照してください。
延長線を持つ長いトリルは \startTrillSpan
と \stopTrillSpan
で作成されます:
\relative { d''1\startTrillSpan d1 c2\stopTrillSpan r2 }
改行を跨ぐトリルは、次行の最初の音符の上から再開されます。
\relative { d''1\startTrillSpan \break d1 c2\stopTrillSpan r2 }
連続したトリルには、明示的な \stopTrillSpan
コマンドは必要ありません。なぜなら、自動的に次のトリルが前のトリルの右端となるからです。
\relative { d''1\startTrillSpan d1 b1\startTrillSpan d2\stopTrillSpan r2 }
トリルを装飾小音符と組み合わせることもできます。この組み合わせの構文と装飾小音符を正確に配置する方法については、装飾小音符 で説明しています。
\relative { d''1~\afterGrace d1\startTrillSpan { c32[ d]\stopTrillSpan } c2 r2 }
明示的なピッチを持つ予備の音符を必要とするトリルは
\pitchedTrill
コマンドを用いて譜刻することができます。最初の引数は主音符です。2 番目の引数は トリル の音符であり、括弧で囲まれた符幹を持たない符頭として譜刻されます。
\relative { \pitchedTrill d''2\startTrillSpan fis d2 c2\stopTrillSpan r2 }
小節内で最初に出現するピッチを持つトリルでは、臨時記号がナチュラルも含めて表示されます。
{ \key d \major \pitchedTrill d'2\startTrillSpan cis d\stopTrillSpan \pitchedTrill d2\startTrillSpan c d\stopTrillSpan \pitchedTrill d2\startTrillSpan e d\stopTrillSpan }
続く (同じ小節内の同じ音程の) 臨時記号は、手動で追加する必要があります。
\relative { \pitchedTrill eis''4\startTrillSpan fis eis4\stopTrillSpan \pitchedTrill eis4\startTrillSpan cis eis4\stopTrillSpan \pitchedTrill eis4\startTrillSpan fis eis4\stopTrillSpan \pitchedTrill eis4\startTrillSpan fis! eis4\stopTrillSpan }
定義済みコマンド
\startTrillSpan
,
\stopTrillSpan
参照
音楽用語集: trill
記譜法リファレンス: アーティキュレーションと装飾, 装飾小音符
コード断片集: 発想記号
内部リファレンス: TrillSpanner
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < トリル ] | [ 上へ : 音楽記譜法 ] | [ 長い繰り返し > ] |
1.4 繰り返し
繰り返しは音楽の主要なコンセプトであり、繰り返しのために複数の記譜法が存在します。LilyPond は以下の種類の繰り返しをサポートします:
-
volta
繰り返される音楽は描き出されませんが、繰り返しの小節線で囲まれます。繰り返しが楽曲の先頭にある場合、繰り返しの小節線は繰り返しの終端にのみ譜刻されます。繰り返し時に入れ替えて演奏される部分 (volta) は囲みの右側に譜刻されます。これは入れ替えがある繰り返しの標準的な記譜法です。
-
unfold
繰り返される音楽は、repeatcount によって指定された回数だけ、描き出されます。これは反復の多い音楽を入力するときに有用です。
-
percent
これには拍の繰り返しや小節の繰り返しがあります。スラッシュまたはパーセント記号のような外見をしています。
-
tremolo
これはトレモロの連桁を描くために使用されます。
1.4.1 長い繰り返し | ||
1.4.2 短い繰り返し |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 繰り返し ] | [ 上へ : 繰り返し ] | [ 通常の繰り返し > ] |
1.4.1 長い繰り返し
このセクションでは長い (通常は複数の小節) 繰り返しを入力する方法について議論します。繰り返しには 2 つの形式があります: 繰り返し記号によって囲まれる繰り返しと、描き出される繰り返し – これは反復の多い音楽を入力するために使用されます – です。繰り返し記号を手動で制御することもできます。
通常の繰り返し | ||
手動の繰り返し記号 | ||
繰り返しを描き出す |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 長い繰り返し ] | [ 上へ : 長い繰り返し ] | [ 手動の繰り返し記号 > ] |
通常の繰り返し
通常の繰り返しの構文は以下の通りです。
\repeat volta repeatcount musicexpr
ここで、musicexpr
は音楽表記です。
入れ替えを持たない 1 回の繰り返しは以下のようになります:
\relative { \repeat volta 2 { c''4 d e f } c2 d \repeat volta 2 { d4 e f g } }
繰り返しの‘開始’記号は、デフォルトでは最初の小節には表示されません。しかし、最初の音符の前に \bar ".|:"
を用いることで表示させることができます。
\relative { \repeat volta 2 { \bar ".|:" c''4 d e f } c2 d \repeat volta 2 { d4 e f g } }
繰り返し時に入れ替えて演奏する部分は \alternative
を用いて作り出すことができます。入れ替えの各グループを波括弧で囲んで、このブロックの中に配置します。
\repeat volta repeatcount musicexpr \alternative { { musicexpr } }
ここで、musicexpr
は音楽表記です。
繰り返し回数が入れ替え部分の数よりも多い場合、始めの方の繰り返しには最初の入れ替え部分が使用されます。
繰り返しが 1 回で、入れ替えも 1 つの場合は以下のようになります:
\relative { \repeat volta 2 { c''4 d e f | } \alternative { { c2 e | } { f2 g | } } c1 }
繰り返しが複数回あり、最後に入れ替え部分を演奏する繰り返しは以下のようになります:
\relative { \repeat volta 4 { c''4 d e f | } \alternative { { c2 e | } { f2 g | } } c1 }
繰り返しが複数回あり、入れ替えも 2 つ以上ある繰り返しは以下のようになります:
\relative { \repeat volta 3 { c''4 d e f | } \alternative { { c2 e | } { f2 g | } { a2 g | } } c1 }
Note: 入れ替えが複数ある場合、入れ替えの閉じ波括弧と次の入れ替えの開始の波括弧の間に何かを置くべきではありません。さもないと、予期せぬ数の入れ替えが発生します。
Note: Voice
コンテキストを明示的にインスタンス化せずに\relative
を \repeat
の中に配置すると、余計な譜が表示されます。
余計な譜が表示される を参照してください。
入れ替えの無い繰り返しが小節の途中で始まる場合、通常は後の小節の対応する中間部分で終了します (開始部分と終了部分で 1 つの完全な小節が作られます)。このような場合、繰り返し記号は‘本当の’小節線ではないため、小節チェックや \partial
コマンドをそこに置くべきではありません:
c'4 e g \repeat volta 4 { e4 | c2 e | g4 g g } g4 | a2 a | g1 |
入れ替えの無い繰り返しが部分小節で始まる場合は、\partial
コマンドが小節の最初に必要であることを除けば、同じ原則が適用されます:
\partial 4 \repeat volta 4 { e'4 | c2 e | g4 g g } g4 | a2 a | g1 |
タイを 2 つ目の終了部に追加することができます:
\relative { c''1 \repeat volta 2 { c4 d e f~ } \alternative { { f2 d } { f2\repeatTie f, } } }
\inStaffSegno
コマンドは、\repeat volta
コマンドと一緒に用いられた際に、繰り返しの小節線とセーニョ記号を合体させた小節線を作り出します。どの繰り返し記号が使われるか (すなわち、開始記号か、終了記号か、両者を合わせた記号か) は、自動的に選択されます。対応する “D.S.” 記号は手動で入力しなければいけないことに注意してください。
繰り返しを使わない:
\relative { e'1 \inStaffSegno f2 g a b c1_"D.S." \bar "|." }
繰り返しの始まりに:
\relative { e'1 \repeat volta 2 { \inStaffSegno % start repeat f2 g a b } c1_"D.S." \bar "|." }
繰り返しの終わりに:
\relative { e'1 \repeat volta 2 { f2 g a b \inStaffSegno % end repeat } f2 g a b c1_"D.S." \bar "|." }
2 つの繰り返しの間に:
\relative { e'1 \repeat volta 2 { f2 g a b } \inStaffSegno % double repeat \repeat volta 2 { f2 g a b } c1_"D.S." \bar "|." }
他の小節線記号を用いる場合、 (Score コンテキストに) プロパティ
segnoBarType
, startRepeatSegnoBarType
, endRepeatSegnoBarType
,
doubleRepeatSegnoBarType
を好みの値を設定します。小節線の種類はあらかじめ定義されているものか、前に \defineBarLine
コマンドで定義されているものから選択する必要があります (小節線を参照してください)。
\defineBarLine ":|.S[" #'(":|." "S[" "") \defineBarLine "]" #'("]" "" "") \relative { e'1 \repeat volta 2 { f2 g a b \once \set Score.endRepeatSegnoBarType = ":|.S[" \inStaffSegno } f2 g \bar "]" a b c1_"D.S." \bar "|." }
Selected Snippets
繰り返し括弧を短くする
デフォルトでは、繰り返し括弧は入れ替え部分全体に表示されますが、voltaSpannerDuration
をセットすることで短くすることができます。次の例では、括弧は 1 小節、つまり 3/4 分だけ表示されます。
\relative c'' { \time 3/4 c4 c c \set Score.voltaSpannerDuration = #(ly:make-moment 3/4) \repeat volta 5 { d4 d d } \alternative { { e4 e e f4 f f } { g4 g g } } }
繰り返し括弧を他の譜にも追加する
デフォルトでは、Volta_engraver
は Score
コンテキストに属しており、繰り返しの括弧は通常最上段の譜の上にのみ表示されます。これを調整するには、Volta_engraver
を、括弧を表示させたい譜の
Staff
コンテキストに追加します。“複数譜に繰り返し括弧を表示する”
スニペットも参照してください。
<< \new Staff { \repeat volta 2 { c'1 } \alternative { c' } } \new Staff { \repeat volta 2 { c'1 } \alternative { c' } } \new Staff \with { \consists "Volta_engraver" } { c'2 g' e' a' } \new Staff { \repeat volta 2 { c'1 } \alternative { c' } } >>
入れ替え部分がある場合の二重繰り返しのデフォルトをセットする
入れ替え部分がある場合の二重繰り返しのスタイルには 3 種類あります。これは doubleRepeatBarType
でセットすることができます。
\relative c'' { \repeat volta 2 { c1 } \set Score.doubleRepeatBarType = #":..:" \repeat volta 2 { c1 } \set Score.doubleRepeatBarType = #":|.|:" \repeat volta 2 { c1 } \set Score.doubleRepeatBarType = #":|.:" \repeat volta 2 { c1 } }
小節番号を変更する
小節番号を付番する異なる方法が 2 つあり、繰り返しのある音楽に対して有用です。
\relative c'{ \set Score.alternativeNumberingStyle = #'numbers \repeat volta 3 { c4 d e f | } \alternative { { c4 d e f | c2 d \break } { f4 g a b | f4 g a b | f2 a | \break } { c4 d e f | c2 d } } c1 \break \set Score.alternativeNumberingStyle = #'numbers-with-letters \repeat volta 3 { c,4 d e f | } \alternative { { c4 d e f | c2 d \break } { f4 g a b | f4 g a b | f2 a | \break } { c4 d e f | c2 d } } c1 }
参照
記譜法リファレンス: 小節線, コンテキストのプラグインを変更する, タイとスラーの形状を変更する, 時間管理
インストールされているファイル: ‘ly/engraver-init.ly’
コード断片集: Repeats
内部リファレンス: VoltaBracket, RepeatedMusic, VoltaRepeatedMusic, UnfoldedRepeatedMusic
既知の問題と警告
\repeat
ブロックから \alternative
ブロックまで続くスラーは、最初の入れ替え部分に対してのみ機能します。他の入れ替え部分に対して見た目上、スラーを伸ばすには \repeatTie
を使います。
しかしながら、この手法はスラーが 1 本の場合のみ可能であり、TabStaff
では機能しません。複数のスラーを入れ替え部分に伸ばし、TabStaff
コンテキストでも機能する手法は タイとスラーの形状を変更する で示しています。
さらに、入れ替え部分の最後から繰り返しの開始点までスラーで結ぶこともできません。
\repeat
ブロックから \alternative
ブロックまで続くグリッサンドは最初の入れ替え部分に対してのみ機能します。他の入れ替え部分に対して見た目上、グリッサンドを伸ばすには、見えない装飾音符から始まるグリッサンドのコードを記述します。例として、グリッサンド の楽譜断片集にある
“繰り返しを跨いでグリッサンドを延長する” を参照してください。
不完全な小節で始まる繰り返しが measureLength
プロパティの変更を行う\alternative
ブロックを持つ場合、\unfoldRepeats
を使用するとおかしな場所に小節線が引かれ、小節チェック警告が発生します。
以下のようにネストされた繰り返し
\repeat … \repeat … \alternative
はあいまいです。なぜなら、\alternative
がどちらの \repeat
に属するのかはっきりしないからです。このあいまいさは、常に \alternative
を内側の \repeat
に属させることによって解決されます。はっきりとさせるために、そのような状況では波括弧を使用すると賢明です。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 通常の繰り返し ] | [ 上へ : 長い繰り返し ] | [ 繰り返しを描き出す > ] |
手動の繰り返し記号
Note: 以下の手法は特殊な繰り返し構造を表示するためだけに使用され、予期しない振る舞いをする可能性があります。たいていのケースでは、繰り返しは標準の \repeat
コマンドを用いるか、適切な小節線を譜刻することによって作成すべきです。更なる情報は、小節線 を参照してください。
プロパティ repeatCommands
を用いて繰り返しのレイアウトを制御することができます。このプロパティの値は繰り返しコマンドの Scheme リストです。
-
start-repeat
.|:
小節線を譜刻します。\relative { c''1 \set Score.repeatCommands = #'(start-repeat) d4 e f g c1 }
標準の譜刻習慣に従い、楽曲の先頭では繰り返し記号は譜刻されません。
-
end-repeat
:|.
小節線を譜刻します。\relative { c''1 d4 e f g \set Score.repeatCommands = #'(end-repeat) c1 }
-
(volta number) … (volta #f)
指定された番号を持つ新しい volta を作成します。Volta 囲みは明示的に終了させる必要があります。さもなければ、譜刻されません。
\relative { f''4 g a b \set Score.repeatCommands = #'((volta "2")) g4 a g a \set Score.repeatCommands = #'((volta #f)) c1 }
複数の繰り返しコマンドが同時に発生することもあります:
\relative { f''4 g a b \set Score.repeatCommands = #'((volta "2, 5") end-repeat) g4 a g a c1 \set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat) b1 \set Score.repeatCommands = #'((volta #f)) }
テキストを volta 囲みに含めることができます。テキストに使用できるのは数字やマークアップ テキストです。テキストをフォーマットする を参照してください。マークアップ テキストを使用するための最も簡単な方法は、最初にマークアップを定義し、それからそのマークアップを Scheme リストに含める方法です。
voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } } \relative { c''1 \set Score.repeatCommands = #(list(list 'volta voltaAdLib) 'start-repeat) c4 b d e \set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat) f1 \set Score.repeatCommands = #'((volta #f)) }
参照
記譜法リファレンス: 小節線, テキストをフォーマットする
コード断片集: Repeats
内部リファレンス: VoltaBracket, RepeatedMusic, VoltaRepeatedMusic
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 手動の繰り返し記号 ] | [ 上へ : 長い繰り返し ] | [ 短い繰り返し > ] |
繰り返しを描き出す
unfold
コマンドを用いることにより、繰り返しを単に反復する音楽を描き出すために使用することができます。構文は以下の通りです:
\repeat unfold repeatcount musicexpr
ここで、musicexpr
は音楽表記であり、repeatcount
は
musicexpr
を繰り返す回数です。
\relative { \repeat unfold 2 { c''4 d e f } c1 }
いくつかのケースでは、特に \relative
コンテキストの中では、\repeat unfold
関数は音楽表記を複数回記述したものと同じにはなりません。例えば、
\repeat unfold 2 { a'4 b c }
これは以下と等価ではありません。
a'4 b c | a'4 b c
入れ替え部分がある繰り返しを展開することもできます。
\relative { \repeat unfold 2 { c''4 d e f } \alternative { { c2 g' } { c,2 b } } c1 }
繰り返し回数が入れ替え部分の数よりも多い場合、最初の入れ替え部分だけが適用されます。残りの入れ替えは無視されて譜刻されません。
\relative { \repeat unfold 4 { c''4 d e f } \alternative { { c2 g' } { c,2 b } { e2 d } } c1 }
入れ替え部分の数が繰り返し回数よりも多い場合、最初の入れ替え部分が使用され、残りの繰り返し部分は無視され、譜刻されません。
\relative { \repeat unfold 2 { c''4 d e f } \alternative { { c2 g' } { c,2 b } { e2 d } } c1 }
複数の unfold
関数をネストすることも可能です。(unfold
は入れ替え部分を持っていても、持っていなくても構いません。)
\relative { \repeat unfold 2 { \repeat unfold 2 { c''4 d e f } \alternative { { c2 g' } { c,2 b } } } c1 }
和音構造は和音の繰り返し記号 q
で繰り返すことができます。和音の繰り返し を参照してください。
Note: Voice
コンテキストを明示的にインスタンス化せずに\relative
を \repeat
の中に配置すると、余計な譜が表示されます。
余計な譜が表示される を参照してください。
参照
記譜法リファレンス: 和音の繰り返し
コード断片集: Repeats
内部リファレンス: RepeatedMusic, UnfoldedRepeatedMusic
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 繰り返しを描き出す ] | [ 上へ : 繰り返し ] | [ パーセント繰り返し > ] |
1.4.2 短い繰り返し
このセクションでは、短い繰り返しを入力する方法について議論します。短い繰り返しには 2 つの形式があります: 単一の音符、単一の小節あるいは 2 小節の繰り返しを表すスラッシュまたはパーセント記号と、トレモロです。
パーセント繰り返し | ||
トレモロの繰り返し |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 短い繰り返し ] | [ 上へ : 短い繰り返し ] | [ トレモロの繰り返し > ] |
パーセント繰り返し
繰り返される短いパターンは 1 回だけ譜刻され、繰り返しは特殊な記号で置き換えられます。
構文は以下の通りです
\repeat percent number musicexpr
ここで、musicexpr
は音楽表記です。
1 小節よりも短いパターンはスラッシュで置き換えられます。
\relative c'' { \repeat percent 4 { c128 d e f } \repeat percent 4 { c64 d e f } \repeat percent 5 { c32 d e f } \repeat percent 4 { c16 d e f } \repeat percent 4 { c8 d } \repeat percent 4 { c4 } \repeat percent 2 { c2 } }
1 または 2 小節のパターンはパーセントのような記号で置き換えられます。
\relative c'' { \repeat percent 2 { c4 d e f } \repeat percent 2 { c2 d } \repeat percent 2 { c1 } }
\relative { \repeat percent 3 { c''4 d e f | c2 g' } }
1 小節よりも短いけれども異なる演奏時間が含まれるパターンは2 重線のパーセント記号を用います。
\relative { \repeat percent 4 { c''8. <d f>16 } \repeat percent 2 { \tuplet 3/2 { r8 c d } e4 } }
Selected Snippets
パーセント繰り返しのカウンタ
パーセント記号による小節の繰り返しが 2 回以上続く場合には、この例のようにプロパティをセットすることで、カウンタを表示することができます。
\relative c'' { \set countPercentRepeats = ##t \repeat percent 4 { c1 } }
パーセント繰り返しのカウンタの可視性
パーセント繰り返しのカウンタは repeatCountVisibility
コンテキスト
プロパティをセットすることで一定間隔で表示することができます。
\relative c'' { \set countPercentRepeats = ##t \set repeatCountVisibility = #(every-nth-repeat-count-visible 5) \repeat percent 10 { c1 } \break \set repeatCountVisibility = #(every-nth-repeat-count-visible 2) \repeat percent 6 { c1 d1 } }
独立したパーセント繰り返し
パーセント繰り返しを単独で表示することができます。
makePercent = #(define-music-function (note) (ly:music?) "Make a percent repeat the same length as NOTE." (make-music 'PercentEvent 'length (ly:music-length note))) \relative c'' { \makePercent s1 }
参照
音楽用語集: percent repeat, simile
コード断片集: Repeats
内部リファレンス: RepeatSlash, RepeatSlashEvent, DoubleRepeatSlash, PercentRepeat, PercentRepeatCounter, PercentRepeatedMusic, Percent_repeat_engraver, DoublePercentEvent, DoublePercentRepeat, DoublePercentRepeatCounter, Double_percent_repeat_engraver, Slash_repeat_engraver
既知の問題と警告
パーセント記号の繰り返しは、パーセント記号以外に何も含むことができません。特に、拍子の変更は繰り返されません。
\repeat percent 3 { \time 5/4 c2. 2 \time 4/4 2 2 }
拍子の変更や \partial
コマンドは、パーセント記号の繰り返しの外側にある並列部分で行われる必要があります (例えば、独立したタイミング トラック)。
<< \repeat percent 3 { c2. 2 2 2 } \repeat unfold 3 { \time 5/4 s4*5 \time 4/4 s1 } >>
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < パーセント繰り返し ] | [ 上へ : 短い繰り返し ] | [ 同時進行する音符 > ] |
トレモロの繰り返し
トレモロには 2 つの形式があります: 2 つの和音あるいは 2 つの音符を交互に演奏するものと、単一の音符あるいは和音を素早く繰り返すものです。交互に演奏するトレモロは、音符あるいは和音の間に多重連桁を付け加えることによって示され、一方、単一の音符を素早く繰り返すトレモロは単一の音符に多重連桁あるいは多重スラッシュを付け加えることによって示されます。
2 つの音符の間にトレモロ記号を配置するには、トレモロ スタイルの \repeat
を使用します:
\relative c'' { \repeat tremolo 8 { c16 d } \repeat tremolo 6 { c16 d } \repeat tremolo 2 { c16 d } }
\repeat tremolo
の構文では、波括弧の中にある音符の数がちょうど 2 つであること、それに、繰り返しの回数が普通の音符あるいは付点音符として表すことができる音価に相当することが必須です。それゆえ、\repeat tremolo 7
は有効であり、2 重付点音符を作り出します。しかしながら、\repeat tremolo 9
は無効です。
トレモロの演奏時間は、波括弧で囲まれた音楽表記の演奏時間に繰り返し回数を掛けたものに等しいです:
\repeat tremolo 8 { c16 d16 }
は全音符のトレモロであり、トレモロの連桁でつながれた 2 つの全音符として譜刻されます。
単一の音符上にトレモロ記号を配置する方法は 2 つあります。\repeat tremolo
構文をここでも使用します
– この場合、音符を波括弧で囲むべきではありません:
\repeat tremolo 4 c'16
音符の後に :N
を付け加えることによって同じ出力を得ることができます。N
は細部の演奏時間を表し、8 以上である必要があります。N
が 8 である場合、音符の符幹に 1 本の連桁が付け加えられます。N
が省略された場合、
最後の値が使用されます:
\relative { c''2:8 c:32 c: c: }
Selected Snippets
譜をまたがるトレモロ
\repeat tremolo
は、和音のトレモロに対してはちょうど 2 つの引数を取らなければならないため、譜をまたがる和音のトレモロは
同じ括弧内に音を配置し、\change Staff
コマンドで譜を変更する必要があります。
\new PianoStaff << \new Staff = "up" \relative c'' { \key a \major \time 3/8 s4. } \new Staff = "down" \relative c'' { \key a \major \time 3/8 \voiceOne \repeat tremolo 6 { <a e'>32 { \change Staff = "up" \voiceTwo <cis a' dis>32 } } } >>
参照
コード断片集: Repeats
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < トレモロの繰り返し ] | [ 上へ : 音楽記譜法 ] | [ 単一のボイス > ] |
1.5 同時進行する音符
楽譜の中で多声部は楽曲の 1 節の中にある複数のボイスを参照します。LilyPond の中で多声部は同じ譜にある複数のボイスを参照します。
1.5.1 単一のボイス | ||
1.5.2 複数のボイス |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 同時進行する音符 ] | [ 上へ : 同時進行する音符 ] | [ 和音の音符 > ] |
1.5.1 単一のボイス
このセクションでは同じボイスの中にある同時進行する音符について議論します。
和音の音符 | ||
和音の繰り返し | ||
同時進行表記 | ||
クラスタ |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 単一のボイス ] | [ 上へ : 単一のボイス ] | [ 和音の繰り返し > ] |
和音の音符
和音は <
と >
で 1 組のピッチを囲むことによって形成されます。和音の後には – 普通の音符と同様に – 演奏時間が続くかもしれません:
\relative { <a' c e>1 <a c e>2 <f a c e>4 <a c>8. <g c e>16 }
さらに、和音の後には – 普通の音符と同様に – アーティキュレーションが続くかもしれません:
\relative { <a' c e>1\fermata <a c e>2-> <f a c e>4\prall <a c>8.^! <g c e>16-. }
和音の中にある音符自体にもアーティキュレーションや装飾を付けることができます。
\relative { <a' c\prall e>1 <a-> c-^ e>2 <f-. a c-. e-.>4 <a-+ c-->8. <g\fermata c e\turn>16 }
しかしながら、いくつかの記譜要素 – 強弱記号、ヘアピンなど – は和音の中の音符ではなく、和音に付ける必要があります。そうしなければ、譜刻されません。運指やスラーなどの他の記譜要素が和音の中の音符に付けられた場合、和音全体や単音に付けた場合と比べて配置が明らかに変化します。
\relative { <a'\f c( e>1 <a c) e>\f <a\< c e>( <a\! c e>) <a c e>\< <a c e> <a c e>\! }
和音は和音に含まれる音符、アーティキュレーション、それに他の付属要素のコンテナにすぎません。従って、音符を持たない和音は演奏時間を持ちません。そのような和音に付属するアーティキュレーションは、後に続く音符や和音のタイミングで発生して、組み合わされます (そのような要素の複雑な組み合わせについては 同時進行表記 を参照してください):
\relative { \grace { g'8( a b } <> ) \p \< -. -\markup \italic "sempre staccato" \repeat unfold 4 { c4 e } c1\f }
和音の中のピッチに対して相対モードを使うことができます。各和音の最初の音符は常に、前の和音の最初の音符との相対関係で決まります。前が和音でない場合は、その和音の前にある最後のピッチとの相対関係になります。和音の中にある残りの音符はすべて 同じ和音の中にある 前の音符との相対関係になります。
\relative { <a' c e>1 <f a c> <a c e> <f' a c> <b, e b,> }
和音についての更なる情報は、和音記譜法 を参照してください。
参照
音楽用語集: chord
学習マニュアル: Combining notes into chords
記譜法リファレンス: 和音記譜法, アーティキュレーションと装飾, 相対オクターブ入力, 複数のボイス
コード断片集: Simultaneous notes
既知の問題と警告
1 譜スペース内に 3 つ以上のピッチを保持している和音 – ‘<e f! fis!>’ など – では、符頭が重なります。状況に応じて、適切な表記を用います
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 和音の音符 ] | [ 上へ : 単一のボイス ] | [ 同時進行表記 > ] |
和音の繰り返し
入力の手間を省くために、前の和音を繰り返すための短縮記法があります。和音を繰り返すためのシンボルは q
です:
\relative { <a' c e>1 q <f a c>2 q }
前の和音のピッチが複製されているだけなので、 通常の和音と同様に、和音の繰り返しのシンボルにも演奏時間、アーティキュレーション、マークアップ、スラー、連桁などを使うことができます。
\relative { <a' c e>1\p^"text" q2\<( q8)[-! q8.]\! q16-1-2-3 q8\prall }
和音繰り返しのシンボルは常に最後の和音を覚えているため、最後の和音の後に和音ではない音符や休符があったとしても、和音を繰り返すことができます。
\relative { <a' c e>1 c'4 q2 r8 q8 | q2 c, | }
しかしながら、和音繰り返しのシンボルは前の和音の中にある、あるいは付属している強弱記号、アーティキュレーション、あるいは装飾を持ち越しません。
\relative { <a'-. c\prall e>1\sfz c'4 q2 r8 q8 | q2 c, | }
それらのイベントを持ち越すには、\chordRepeats
関数を明示的に呼び出し、引数に持ち越す イベント タイプ を指定するリストを持たせます。これにより持ち越されるイベントはすでに和音 q
に存在しているものだけです。
\relative { \chordRepeats #'(articulation-event) { <a'-. c\prall e>1\sfz c'4 q2 r8 q8-. } | q2 c, | }
上記の例では \chordRepeats
を \relative
構造の内部で使用することで予期しない結果になっています:
\chordRepeats
の和音イベントが展開されると、通常どおりに入力された和音と区別が付かず、\relative
は現在の状態に基づいてオクターブを割り当てます。
ネストされた \relative
のインスタンスは内外のインスタンスに影響を与えないので、\chordRepeats
の内側に \relative
を配置することで\chordRepeats
の和音を展開する前にオクターブを確定させることができます。今回のケースでは、内側にある \relative
の内容は外側にある \relative
の影響を受けないので、繰り返しの和音は前の和音の音程を維持しています。また、内側の \relative
は外側の \relative
に影響を与えないので、最後の音符のオクターブ入力が変化します。
\relative { \chordRepeats #'(articulation-event) \relative { <a'-. c\prall e>1\sfz c'4 q2 r8 q8-. } | q2 c'' | }
\chordRepeats
は明示的に呼び出された場合にのみ
\relative
と相互作用します:
暗黙的な繰り返し和音の展開はすべての \relative
インスタンスが処理されてから行われます。
参照
記譜法リファレンス: 和音記譜法, アーティキュレーションと装飾
インストールされているファイル: ‘ly/chord-repetition-init.ly’
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 和音の繰り返し ] | [ 上へ : 単一のボイス ] | [ クラスタ > ] |
同時進行表記
2 重山括弧で囲まれた 1 つあるいは複数の音楽表記は同時進行します。最初の表記が単一の音符で始まる場合、あるいは同時進行する表記全体が明らかに単一のボイスの中にある場合、その表記全体は単一の譜の上に配置されます。そうでない場合、同時進行する表記の要素は別々の譜の上に配置されます。
以下の例は 1 つの譜の上にある同時進行表記を示しています:
\new Voice { % 明らかに単一のボイスです << \relative { a'4 b g2 } \relative { d'4 g c,2 } >> }
\relative { % 単一の音符で始まります a' << \relative { a'4 b g } \relative { d'4 g c, } >> }
これは同時進行するセクションが同一のリズムを持つ場合に役に立ちます。しかしながら、異なる演奏時間を持つ音符を同じ符幹に取り付けようとするとエラーとなります。単一の ‘Voice’ の中にある音符、アーティキュレーション、それにプロパティの変更は収集され、音楽的な順序で譜刻されます:
\relative { <a' c>4-. <>-. << c a >> << { c-. <c a> } { a s-. } >> }
同時に複数の符幹や連桁、あるいは異なる音符の演奏時間やプロパティが必要な場合、複数のボイスを使う必要があります。
以下の例は、同時進行する表記が暗黙的に複数の譜を生成する様子を示しています:
% 単一の音符で始まりません << \relative { a'4 b g2 } \relative { d'4 g2 c,4 } >>
ここでは、リズムが異なっていても問題ありません。異なるボイスだと解釈されるからです。
既知の問題と警告
譜の同じ場所で、同じ向きの符幹を持つ複数のボイスから音符がシフトされずに (あるいは同じシフトで) 配置された場合、コンパイル中に以下のメッセージが表示されます:
warning: This voice needs a \voiceXx or \shiftXx setting
以下でこのメッセージを表示させなくすることができます:
\override NoteColumn.ignore-collision = ##t
しかしながら、これは警告を非表示にするだけでなく、衝突解決に関するすべてのメッセージを非表示にして、他にも意図しない影響を与える可能性があります (衝突の解決 の 既知の問題 も参照してください)。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 同時進行表記 ] | [ 上へ : 単一のボイス ] | [ 複数のボイス > ] |
クラスタ
クラスタは演奏すべき連続したピッチの範囲を示します。クラスタは 1 組の音符の範囲 (envelope) として表されます。クラスタはひと続きの和音に関数 \makeClusters
を適用することによって入力されます。例えば以下のように:
\relative \makeClusters { <g' b>2 <c g'> }
通常の音符とクラスタを同じ譜に一緒にして配置することができます – たとえ、それらが同時進行であってもです。そのようなケースでは、通常の音符とクラスタの衝突を自動的に回避しようとする試みは行われません。
参照
音楽用語集: cluster
コード断片集: Simultaneous notes
内部リファレンス: ClusterSpanner, ClusterSpannerBeacon, Cluster_spanner_engraver
既知の問題と警告
クラスタは少なくとも 2 つの和音を持つ場合にのみうまく譜刻されます。さもなければ、あまりにも狭く譜刻されます。
クラスタは符幹を持たず、それ自体で演奏時間を示すことはできません。しかしながら、譜刻されるクラスタの長さはクラスタを定義する和音の演奏時間によって決定されます。クラスタを分割するには、クラスタとクラスタの間に分割するための休符が必要です。
クラスタは MIDI 出力を作り出しません。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < クラスタ ] | [ 上へ : 同時進行する音符 ] | [ 単一譜の多声 > ] |
1.5.2 複数のボイス
このセクションでは複数のボイスあるいは複数の譜の中にある同時進行する音符について議論します。
単一譜の多声 | ||
ボイス スタイル | ||
衝突の解決 | ||
休符のマージ | ||
自動パート結合 | ||
音楽を並列に記述する |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 複数のボイス ] | [ 上へ : 複数のボイス ] | [ ボイス スタイル > ] |
単一譜の多声
明示的にボイスをインスタンス化する
単一の譜の中に複数の独立したボイスを配置するのに必要とされる基本的な構造が以下の例で示されています:
\new Staff << \new Voice = "first" \relative { \voiceOne r8 r16 g'' e8. f16 g8[ c,] f e16 d } \new Voice= "second" \relative { \voiceTwo d''16 c d8~ 16 b c8~ 16 b c8~ 16 b8. } >>
ここでは、ボイスは明示的にインスタンス化されていて、名前を与えられています。\voiceOne
… \voiceFour
コマンドはボイスをセット アップし、それにより、1 番目と 3 番目のボイスは上向きの符幹を持ち、2 番目と 4 番目のボイスは下向きの符幹を持ち、3 番目と 4 番目のボイスの符頭は水平方向にずれて、それぞれのボイスの中の休符は衝突を避けるために自動的に移動させられます。\oneVoice
コマンドはすべてのボイス設定をニュートラルなデフォルトの向きに戻します。
一時的に多声となる楽節 (パッセージ)
一時的に多声となる楽節は以下のような構成で作成することができます:
<< { \voiceOne … } \new Voice { \voiceTwo … } >> \oneVoice
ここで、一時多声楽節の中の最初の表記は直前に使われていた
Voice
コンテキストに配置され、その Voice
コンテキストは一時セクションの後も続いていきます。山括弧の中の他の表記は別の一時ボイスに代入されます。これと同様に、歌詞は多声セクションの前、最中、後に続いているボイスに代入されます:
\relative << \new Voice = "melody" { a'4 << { \voiceOne g f } \new Voice { \voiceTwo d2 } >> \oneVoice e4 } \new Lyrics \lyricsto "melody" { This is my song. } >>
ここで、\voiceOne
と \voiceTwo
コマンドはそれぞれのボイスの設定を定義するために必要とされています。
2 重バックスラッシュ構造
<< {…} \\ {…} >>
構造
– この中では 2 つ (あるいはそれ以上) の表記が
2 重バックスラッシュで区切られています –
は、同じような構造だが 2 重バックスラッシュを持たない構造とはまったく異なる振る舞いをします:
この構造の中にある すべての 表記は新たな Voice
コンテキストに代入されます。それらの新しい Voice
コンテキストは暗黙的に作成され、あらかじめ決められた名前 "1"
, "2"
などを与えられます。
最初の例は以下のように書き換えることができます:
<< \relative { r8 r16 g'' e8. f16 g8[ c,] f e16 d } \\ \relative { d''16 c d8~ 16 b c8~ 16 b c8~ 16 b8. } >>
一時ボイスが作成され、それから消去されることが問題にならない場合に、この構文を使用することができます。暗黙的に作成されるボイスには、それらがコードの中で現れる順番に従って、\voiceOne
… \voiceFour
コマンドと同じ設定が与えられます。
以下の例では、真ん中のボイスは上向きの符幹を持ちます。そのため、それを 3 番目に置いて、望みどおりに上向きの符幹を持つボイス 3 にしています。休符が 2 重に譜刻されることを避けるために、空白休符を使用しています。
<< \relative { r8 g'' g g g f16 ees f8 d } \\ \relative { ees'8 r ees r d r d r } \\ \relative { d''8 s c s bes s a s } >>
簡単なことですが、
コンテキストとエングラーバ と
ボイスを明示的にインスタンス化する で説明されているように、明示的に Voice
コンテキストを作成しておくと賢明です。
Voice の順序
入力ファイルの中にある複数のボイスを譜刻する時、以下の順序で譜刻されます:
ボイス 1: 最上段 ボイス 2: 最下段 ボイス 3: 上から 2 番目 ボイス 4: 下から 2 番目 ボイス 5: 上から 3 番目 ボイス 6: 下から 3 番目 etc.
これは直感に反するように見えるかもしれませんが、自動レイアウト処理をシンプルにできます。奇数番号のボイスには上向きの符幹が与えられ、偶数番号のボイスには下向きの符幹が与えられるということに注意してください:
\new Staff << \time 2/4 { f''2 } % 1: 最上段 \\ { c'2 } % 2: 最下段 \\ { d''2 } % 3: 上から 2 番 \\ { e'2 } % 4: 下から 2 番 \\ { b'2 } % 5: 上から 3 番 \\ { g'2 } % 6: 下から 3 番 >>
ボイスの入力順序を変更したい場合、\voices
コマンドが役に立ちます:
\new Staff \voices 1,3,5,6,4,2 << \time 2/4 { f''2 } % 1: 最上段 \\ { d''2 } % 3: 上から 2 番 \\ { b'2 } % 5: 上から 3 番 \\ { g'2 } % 6: 下から 3 番 \\ { e'2 } % 4: 下から 2 番 \\ { c'2 } % 2: 最下段 >>
Note: 歌詞、スパナ (スラー、タイ、強弱のヘアピン等) はボイスを ‘跨ぐ’ ことはできません。
同一のリズム
同じリズムを持ち、並行して進行する音楽を譜刻するという特殊なケースでは、並行する音楽を単一の Voice
の中に組み込み、それにより和音を形成することができます。これを実現するには、並行する音楽を明示的にインスタンス化されたボイス内の同時進行音楽構造の中に置きます:
\new Voice << \relative { e''4 f8 d e16 f g8 d4 } \relative { c''4 d8 b c16 d e8 b4 } >>
この手法では、音楽が同じリズムを持たない場合に、おかしな連桁と警告を生じます。
定義済みコマンド
\voiceOne
,
\voiceTwo
,
\voiceThree
,
\voiceFour
,
\oneVoice
参照
学習マニュアル: Voices contain music, Explicitly instantiating voices
コード断片集: Simultaneous notes
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 単一譜の多声 ] | [ 上へ : 複数のボイス ] | [ 衝突の解決 > ] |
ボイス スタイル
ボイス毎に異なる色と形を与えて、容易に見分けられるようにすることができます:
<< \relative { \voiceOneStyle d''4 c2 b4 } \\ \relative { \voiceTwoStyle e'2 e } \\ \relative { \voiceThreeStyle b2. c4 } \\ \relative { \voiceFourStyle g'2 g } >>
\voiceNeutralstyle
コマンドは標準の体裁に戻すために使用されます。
定義済みコマンド
\voiceOneStyle
,
\voiceTwoStyle
,
\voiceThreeStyle
,
\voiceFourStyle
,
\voiceNeutralStyle
参照
学習マニュアル: I'm hearing Voices, Other sources of information.
コード断片集: Simultaneous notes
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < ボイス スタイル ] | [ 上へ : 複数のボイス ] | [ 休符のマージ > ] |
衝突の解決
同じピッチ、同じ符頭を持ち、符幹の方向が逆で異なるボイスの中にある符頭は自動的に 1 つの符頭にまとめられます – マージされます。しかしながら、音符の符頭が異なっていたり、符幹の方向が同じである場合はマージされません。異なるボイスの中にあり、符幹の方向が逆の休符は垂直方向にずらされます。以下の例は 3 つの異なる状態を示しています – 第 1 小節の 1, 3 拍目、それに第 2 小節の 1 拍目で自動マージが失敗しています。
<< \relative { c''8 d e d c d c4 g'2 fis } \\ \relative { c''2 c8. b16 c4 e,2 r } \\ \relative { \oneVoice s1 e'8 a b c d2 } >>
以下に示すように、異なる符頭を持つ音符をマージすることができます。この例では、第 1 小節の 1 拍目の符頭がマージされました:
<< \relative { \mergeDifferentlyHeadedOn c''8 d e d c d c4 g'2 fis } \\ \relative { c''2 c8. b16 c4 e,2 r } \\ \relative { \oneVoice s1 e'8 a b c d2 } >>
四分音符と二分音符はこの方法ではマージされません。なぜなら区別が難しくなるからです。
第 1 小節の 3 拍目のように異なる付点を持つ符頭もマージすることができます:
<< \relative { \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn c''8 d e d c d c4 g'2 fis } \\ \relative { c''2 c8. b16 c4 e,2 r } \\ \relative { \oneVoice s1 e'8 a b c d2 } >>
第 2 小節の最初の版音符と 8 分音符は正しくマージされていません。なぜなら 3 つ以上の音符が同じ列に並ぶ場合、自動マージは正しく機能できないからです。今回のケースでは、マージされた符頭が間違っています。マージが正しい符頭を選択できるようにするため、マージすべきでない符頭に \shift
を適用する必要があります。ここでは、\shiftOn
を適用することで、最上段にある g を列から外し、\mergeDifferentlyHeadedOn
を正しく機能させています。
<< \relative { \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn c''8 d e d c d c4 \shiftOn g'2 fis } \\ \relative { c''2 c8. b16 c4 e,2 r } \\ \relative { \oneVoice s1 e'8 a b c d2 } >>
\shiftOn
コマンドは、ボイスの中にある音符がずれることを許可します
(強制はしません)。\shiftOn
がボイスに適用されると、そのボイスの中にある音符あるいは和音は、同じ向きの符幹を持つ他のボイスと符幹が衝突する場合にのみ、ずらされます。\shiftOff
コマンドは、適用された時点から、このタイプの音符の移動を禁止します。
デフォルトでは、外側のボイス (通常はボイス 1 と 2) には \shiftOff
が指定されていて、内側のボイス (ボイス 3 以上) には \shiftOn
が指定されています。音符をずらす場合、上向きの符幹を持つボイス (奇数番号のボイス) は右側にずらされ、下向きの符幹を持つボイス (偶数番号のボイス) は左側にずらされます。
簡略化された多声表記が内部的にどのように展開されるかをお見せするための例を挙げます。
Note: 3 つ以上のボイスがある場合、入力ファイルでのボイスの垂直方向の順序は、譜上でのボイスの垂直方向の順序と同じにすべきではありません!
\new Staff \relative { %% 簡略化された入力 << { f''2 } % 1: 最上段 \\ { g,2 } % 2: 最下段 \\ { d'2 } % 3: 真ん中の上側 \\ { b2 } % 4: 真ん中の下側 >> %% 上記の内部的な展開 << \new Voice = "1" { \voiceOne \shiftOff f'2 } \new Voice = "2" { \voiceTwo \shiftOff g,2 } \new Voice = "3" { \voiceThree \shiftOn d'2 } % shifts right \new Voice = "4" { \voiceFour \shiftOn b2 } % shifts left >> }
さらに 2 つのコマンド – \shiftOnn
と \shiftOnnn
– は、複雑な状況で衝突を解決するために一時的に指定されるさらに大きなずれを提供します。
実際の音楽からの例 を参照してください。
音符は符幹の向きが反対である場合 (例えば、デフォルトのボイス 1 と 2 である場合や、明示的に符幹の向きが反対になるよう指定されている場合) にのみマージされます。
定義済みコマンド
\mergeDifferentlyDottedOn
,
\mergeDifferentlyDottedOff
,
\mergeDifferentlyHeadedOn
,
\mergeDifferentlyHeadedOff
\shiftOn
,
\shiftOnn
,
\shiftOnnn
,
\shiftOff
Selected Snippets
衝突を避けるための追加のボイス
複雑な多声音楽では、音符どうしの衝突を避けるために追加のボイスが必要になる場合があります。4 つ以上の並列ボイスが必要な場合には、追加のボイスは Scheme 関数 context-spec-music
を用いて変数を定義することで追加できます。
voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice) \relative c'' { \time 3/4 \key d \minor \partial 2 << \new Voice { \voiceOne a4. a8 e'4 e4. e8 f4 d4. c8 } \new Voice { \voiceTwo d,2 d4 cis2 d4 bes2 } \new Voice { \voiceThree f'2 bes4 a2 a4 s2 } \new Voice { \voiceFive s2 g4 g2 f4 f2 } >> }
多声の音楽で付点付きの音符を移動する
上のボイスにある付点付きの音符が、下の音符との衝突を避けるために移動する場合、デフォルトでは右側に移動します。この挙動は、NoteCollision
の
prefer-dotted-right
プロパティをオーバライドすることで変更できます。
\new Staff \relative c' << { f2. f4 \override Staff.NoteCollision.prefer-dotted-right = ##f f2. f4 \override Staff.NoteCollision.prefer-dotted-right = ##t f2. f4 } \\ { e4 e e e e e e e e e e e } >>
音符の水平位置を強制的に調整する
組版エンジンがうまく対処できない場合、次の構文で音符の水平位置をオーバライドすることができます。単位は譜スペースです。
\relative c' << { <d g>2 <d g> } \\ { <b f'>2 \once \override NoteColumn.force-hshift = #1.7 <b f'>2 } >>
参照
音楽用語集: polyphony
学習マニュアル: Multiple notes at once, Voices contain music, Real music example
コード断片集: Simultaneous notes
内部リファレンス: NoteColumn, NoteCollision, RestCollision
既知の問題と警告
\override NoteColumn.ignore-collision = ##t
を使うと異なるボイスにある符頭が異なる音符を不適切にマージします。
\mergeDifferentlyHeadedOn << \relative { c'16 a' b a } \\ \relative { c'2 } >> \override NoteColumn.ignore-collision = ##t << \relative { c'16 a' b a } \\ \relative { c'2 } >>
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 衝突の解決 ] | [ 上へ : 複数のボイス ] | [ 自動パート結合 > ] |
休符のマージ
複数のボイスを用いる場合、両方のパートに出現する休符はマージされるのが一般的です。これは Merge_rests_engraver
を用いることで達成できます。
voiceA = \relative { d''4 r d2 | R1 | } voiceB = \relative { fis'4 r g2 | R1 | } \score { << \new Staff \with { instrumentName = "unmerged" } << \new Voice { \voiceOne \voiceA } \new Voice { \voiceTwo \voiceB } >> \new Staff \with { instrumentName = "merged" \consists Merge_rests_engraver } << \new Voice { \voiceOne \voiceA } \new Voice { \voiceTwo \voiceB } >> >> }
suspendRestMerging
コンテキスト プロパティを ##t
にセットすることで、休符のマージを一時的に無効にすることができます。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 休符のマージ ] | [ 上へ : 複数のボイス ] | [ 音楽を並列に記述する > ] |
自動パート結合
自動パート結合は 2 つのパートに分かれた音楽を単一の譜にマージします。これはオーケストラ譜を譜刻する時に特に有用です。ある範囲で 2 つのパートの音楽が同一である場合、1 つの Voice
だけが譜刻されます。2 つのパートが異なる箇所では第 2 Voice
が譜刻されます。この場合、符幹の向きはそれぞれ上と下ににセットされ、さらにソロ パートと 二重奏 (due) パートが識別されて適切なマークが付けられます。
自動パート結合の構文は以下の通りです:
\partCombine musicexpr1 musicexpr2
以下の例は自動パート結合の基本的な機能を示しています: 2 つのパートを単一の譜に多声部として配置し、それぞれの符幹の向きをセットしています。個々のパート譜と結合譜で同じ変数が使用されています。
instrumentOne = \relative { c'4 d e f | R1 | d'4 c b a | b4 g2 f4 | e1 | } instrumentTwo = \relative { R1 | g'4 a b c | d4 c b a | g4 f( e) d | e1 | } << \new Staff \instrumentOne \new Staff \instrumentTwo \new Staff \partCombine \instrumentOne \instrumentTwo >>
両パートの第 3 小節の音符は同じなので、片方の音符だけが譜刻されています。符幹、スラー、それにタイの向きは、ソロなのかあるいは斉奏なのかによって、自動的に設定されます。多声が必要になる場合、第 1 パート (one
と呼ばれるコンテキストを持ちます)
は常に上向きの符幹を持ち、一方、第 2 パート (two
と呼ばれるコンテキストを持ちます) は常に下向きの符幹を持ちます。ソロの場合、第 1 パートと第 2 パートにはそれぞれ ‘Solo’ と ‘Solo II’
というマークが付けられます。斉奏 (二重奏) パートには、デフォルトで、テキスト “a2” というマークが付けられます。
デフォルトでは、\partCombine
は同じピッチの音符を 二重奏 の音符としてマージします。また、同じリズムで音程が 9 度以下の音符は和音として結合し、9 度より大きい (あるいは、ボイスが交差している) 場合は別々のボイスになります。この挙動は \partCombine
コマンドの後に、省略可能な数字のペアの引数を与えることでオーバライドすることができます:
1 つ目が、結合が始まる音程 (デフォルトは 0) で、2 つ目が別々のボイスとなる音程です。2 つ目の引数を 0 にすることで、2 度以上の音符を分割し、1 にすることで 3 度以上の音符を分割するというようになります。
instrumentOne = \relative { a4 b c d | e f g a | b c d e | } instrumentTwo = \relative { c'4 c c c | c c c c | c c c c | } << \new Staff \partCombine \instrumentOne \instrumentTwo \new Staff \partCombine #'(2 . 3) \instrumentOne \instrumentTwo >>
\partCombine
の 2 つの引数は別個の Voice
コンテキストとして解釈されます。そのため、相対オクターブを用いる場合、両方のパートで \relative
を記述すべきです。すなわち、以下のように記述します:
\partCombine \relative … musicexpr1 \relative … musicexpr2
\partCombine
の外側にある \relative
セクションは musicexpr1
と musicexpr2 のピッチには影響を与えません。
プロの楽譜では長いパッセージで、2 つのボイスの音符のいくつかが同じでユニゾンとして譜刻できる場合であっても、ボイスを分けて譜刻することがあります。
ですから、音符を和音に組み合わせることと、1 つのボイスをソロとして表示することは等価ではありません。なぜなら、\partCombine
関数は各音符を個々に考慮するからです。
このような場合、\partCombine
関数を以下のコマンドのいずれかでオーバライドすることができます。全てのコマンドは音楽表記の中で次の音符だけに適用されるように \once
接頭辞を付けることができます。
-
\partCombineApart
は音符を 2 つの別個のボイスとして譜刻します – たとえ和音やユニゾンにできる場合であっても分けて譜刻します。 -
\partCombineChords
は音符を組み合わせて、和音として譜刻します。 -
\partCombineUnisono
は音符を組み合わせて、“ユニゾン” として譜刻します。 -
\partCombineSoloI
はボイス 1 だけを譜刻して、“Solo” のマークを付けます。 -
\partCombineSoloII
はボイス 2 だけを譜刻して、“Solo” のマークを付けます。 -
\partCombineAutomatic
は上記のコマンドの効果を終わらせ、標準の\partCombine
に戻します。
instrumentOne = \relative c' { \partCombineApart c2^"apart" e | \partCombineAutomatic e2^"auto" e | \partCombineChords e'2^"chord" e | \partCombineAutomatic c2^"auto" c | \partCombineApart c2^"apart" \once \partCombineChords e^"chord once" | c2 c | } instrumentTwo = \relative { c'2 c | e2 e | a,2 c | c2 c' | c2 c | c2 c | } << \new Staff { \instrumentOne } \new Staff { \instrumentTwo } \new Staff { \partCombine \instrumentOne \instrumentTwo } >>
\partCombine を歌詞と同時に使う
\partCombine
は歌詞と同時に動作するように設計されていません。歌詞を付けるために、ボイスの片方に名前が明示されていた場合、パート結合は動作を停止します。しかし、NullVoice
コンテキストを用いることで効果を得ることができます。歌詞を共有する多声 を参照してください。
Selected Snippets
2 つのパートを 1 つの譜にまとめる
自動パート結合ツール (\partCombine
コマンド) は、いくつかの異なるパートを同じ譜にまとめるものです。“solo” や “a2” といったテキスト指示は、デフォルトで追加されます。これらを削除するには、printPartCombineTexts
プロパティを f
にセットします。賛美歌のような歌曲では、“solo/a2” のテキストを追加する必要は無いため、これらを削除すると良いでしょう。しかしながら、これらを削除した場合、ソロの指示も表示されなくなるため問題があるかもしれません。このような場合は、通常の多声構文を用いると良いでしょう。
このスニペットは、2 つのパートを 1 つの譜に表示する 3 つの方法を示しています:
通常の多声、テキストを削除した \partCombine
、テキストのある
\partCombine
の順です。
%% Combining pedal notes with clef changes musicUp = \relative c'' { \time 4/4 a4 c4.( g8) a4 | g4 e' g,( a8 b) | c b a2. } musicDown = \relative c'' { g4 e4.( d8) c4 | r2 g'4( f8 e) | d2 \stemDown a } \score { << \new Staff \with { instrumentName = "Standard polyphony" } << \musicUp \\ \musicDown >> \new Staff \with { instrumentName = "PartCombine without text" printPartCombineTexts = ##f } \partCombine \musicUp \musicDown \new Staff \with { instrumentName = "PartCombine with text" } \partCombine \musicUp \musicDown >> \layout { indent = 6.0\cm \context { \Score \override SystemStartBar.collapse-height = #30 } } }
自動パート結合のテキストを変更する
自動パート結合機能を使用する際に、ソロやユニゾンを表示するテキストを変更することができます。
\new Staff << \set Staff.soloText = #"girl" \set Staff.soloIIText = #"boy" \set Staff.aDueText = #"together" \partCombine \relative c'' { g4 g r r a2 g } \relative c'' { r4 r a( b) a2 g } >>
参照
記譜法リファレンス: パートを記述する
コード断片集: Simultaneous notes
内部リファレンス: PartCombineMusic, Voice
既知の問題と警告
すべての \partCombine…
はボイスを 2 つだけ受け取ることができます。
\partCombine…
関数を \tuplet
ブロックや \relative
ブロックの中に置くことはできません。
printPartCombineTexts
がセットされていて、ある小節で 2 つのボイスの音符が同じである場合、パート結合はその小節で a2
を複数譜刻する可能性があります。
\partCombine
は Voice
の中の音符の開始だけを検知します。例えば、ある Voice
でパート結合を開始した時に、他の Voice
で音符がすでに開始しているかどうかを知ることはできません。このことは “Solo” や “Unison” が不適切に譜刻されるといった予期しない問題を引き起こす可能性があります
\partCombine
はすべてのスパナ (スラー、タイ、強弱のヘアピン等) を同じ Voice
で維持します。そのため、異なる Voice
で始まる / 終わるスパナは不適切にの譜刻されたり、全く譜刻されなかったりする可能性があります。
\partCombine
関数が 2 つのパートを組み合わせることができない場合
(すなわち、2 つのボイスの演奏時間が異なる場合)、内部的に 2 つのボイスにカスタム名を付与します:
それぞれ one
と two
です。このことは、異なる名前を付けられた Voice
への “切り替え”
があった場合、その Voice
のイベントは無視されることを意味します。
デフォルトのタブ譜 のタブ譜や 自動連桁 の 音符
に対して \partCombine
を使う場合は、それぞれの 既知の問題と警告 も参照してください。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 自動パート結合 ] | [ 上へ : 複数のボイス ] | [ 譜の記譜法 > ] |
音楽を並列に記述する
複数のパートを持つ音楽を入力コードの途中に挿入することができます。関数 \parallelMusic
は、作成する変数名をいくつか持つリストと音楽表記を受け付けます。各小節ごとの音楽表記は各変数の値となり、後で音楽を譜刻するために使用することができます。
Note: 小節チェック |
を使用する必要があり、各小節は同じ長さでなければなりません。
\parallelMusic voiceA,voiceB,voiceC { % Bar 1 r8 g'16 c'' e'' g' c'' e'' r8 g'16 c'' e'' g' c'' e'' | r16 e'8.~ 4 r16 e'8.~ 4 | c'2 c'2 | % Bar 2 r8 a'16 d'' f'' a' d'' f'' r8 a'16 d'' f'' a' d'' f'' | r16 d'8.~ 4 r16 d'8.~ 4 | c'2 c'2 | } \new StaffGroup << \new Staff << \voiceA \\ \voiceB >> \new Staff { \clef bass \voiceC } >>
相対モードを使用することができます。\relative
コマンドを \parallelMusic
自体の中では使用しないということに注意してください。音符が前の音符と相対関係になるのはボイスの中であり、入力の中ではありません –
言い換えると、voiceA
の相対音符は voiceB
の音符を無視します。
\parallelMusic voiceA,voiceB,voiceC { % Bar 1 r8 g16 c e g, c e r8 g,16 c e g, c e | r16 e8.~ 4 r16 e8.~ 4 | c2 c | % Bar 2 r8 a,16 d f a, d f r8 a,16 d f a, d f | r16 d8.~ 4 r16 d8.~ 4 | c2 c | } \new StaffGroup << \new Staff << \relative c'' \voiceA \\ \relative c' \voiceB >> \new Staff \relative c' { \clef bass \voiceC } >>
これはピアノ譜で非常に良く機能します。以下の例は、4 つの連続する小節を 4 つの変数に割り当てています:
global = { \key g \major \time 2/4 } \parallelMusic voiceA,voiceB,voiceC,voiceD { % Bar 1 a8 b c d | d4 e | c16 d e fis d e fis g | a4 a | % Bar 2 e8 fis g a | fis4 g | e16 fis g a fis g a b | a4 a | % Bar 3 ... } \score { \new PianoStaff << \new Staff { \global << \relative c'' \voiceA \\ \relative c' \voiceB >> } \new Staff { \global \clef bass << \relative c \voiceC \\ \relative c \voiceD >> } >> }
参照
学習マニュアル: Organizing pieces with variables
コード断片集: Simultaneous notes
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 音楽を並列に記述する ] | [ 上へ : 音楽記譜法 ] | [ 譜を表示する > ] |
1.6 譜の記譜法
このセクションでは、譜の見た目を変える方法、複数の譜を持つ楽譜を譜刻する方法、それに、テンポ指示と演奏指示楽節の音符を譜に付け加える方法について説明します。
1.6.1 譜を表示する | ||
1.6.2 個々の譜を変更する | ||
1.6.3 パートを記述する |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 譜の記譜法 ] | [ 上へ : 譜の記譜法 ] | [ 新たに譜をインスタンス化する > ] |
1.6.1 譜を表示する
このセクションでは、譜を作成する方法と、譜をグループ化する方法をいくつか説明します。
新たに譜をインスタンス化する | ||
譜をグループ化する | ||
ネストされた譜グループ | ||
システムを分割する |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 譜を表示する ] | [ 上へ : 譜を表示する ] | [ 譜をグループ化する > ] |
新たに譜をインスタンス化する
stave: 譜 (staff: 譜 (表) の単称) は
\new
コマンドや \context
コマンドで作成されます。詳細は コンテキストを作成して参照する を参照してください。
基本的な譜コンテキストは Staff
です:
\new Staff \relative { c''4 d e f }
DrumStaff
コンテキストは、一般的なドラム セットのための 5 線譜を作成します。各楽器は異なるシンボルで示されます。\drummode
コマンドの後に続けて、楽器をドラム モードで入力します。各楽器は名前によって指定されます。詳細は 打楽器の譜 を参照してください。
\new DrumStaff { \drummode { cymc hh ss tomh } }
RhythmicStaff
は、入力のリズム価だけを表示する単線譜を作成します。(ピッチは無視されますが) 演奏時間が保持されます。詳細は 旋律のリズムを示す を参照してください。
\new RhythmicStaff { c4 d e f }
TabStaff
は、標準のギター チューニングの 6 弦のタブ譜を作成します。詳細は デフォルトのタブ譜 を参照してください。
\new TabStaff \relative { c''4 d e f }
古代音楽の記譜法のために 2 つの譜コンテキストが用意されています:
MensuralStaff
と VaticanaStaff
です。これらのことは 定義されているコンテキスト で説明されています。
GregorianTranscriptionStaff
コンテキストは、現代グレゴリア聖歌を記譜するための譜を作成します。これは小節線を譜刻しません。
\new GregorianTranscriptionStaff \relative { c''4 d e f e d }
新たに単一譜コンテキストを定義する場合があります。詳細は 新しいコンテキストを定義する を参照してください。
参照
記譜法リファレンス: コンテキストを作成して参照する, 打楽器の譜, 旋律のリズムを示す, デフォルトのタブ譜, 定義されているコンテキスト, 譜シンボル, グレゴリオ聖歌のコンテキスト, 計量記譜法のコンテキスト, 新しいコンテキストを定義する
コード断片集: Staff notation
内部リファレンス: Staff, DrumStaff, GregorianTranscriptionStaff, RhythmicStaff, TabStaff, MensuralStaff, VaticanaStaff, StaffSymbol
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 新たに譜をインスタンス化する ] | [ 上へ : 譜を表示する ] | [ ネストされた譜グループ > ] |
譜をグループ化する
複数の譜からなるシステムを形成するために譜をグループ化するさまざまなコンテキストが存在します。グループ化を行うコンテキストはそれぞれにシステム開始境界線のスタイルと小節線の振る舞いを設定します。
コンテキストが指定されていない場合、デフォルトのプロパティが使用されます: グループは垂直の線で始まり、小節線はつながりません。
<< \new Staff \relative { c''1 c } \new Staff \relative { c''1 c } >>
StaffGroup
コンテキストでは、グループは角括弧で始まり、小節線はすべての譜を貫いて刻譜されます。
\new StaffGroup << \new Staff \relative { c''1 c } \new Staff \relative { c''1 c } >>
ChoirStaff
では、グループは角括弧で始まりますが、小節線はつながりません。
\new ChoirStaff << \new Staff \relative { c''1 c } \new Staff \relative { c''1 c } >>
GrandStaff
では、グループは波括弧で始まり、小節線はすべての譜を貫きます。
\new GrandStaff << \new Staff \relative { c''1 c } \new Staff \relative { c''1 c } >>
PianoStaff
は GrandStaff
と同一ですが、例外として楽器名を刻譜することができます。詳細は 楽器名 を参照してください。
\new PianoStaff \with { instrumentName = "Piano" } << \new Staff \relative { c''1 c } \new Staff \relative { \clef bass c1 c } >>
各譜グループ化コンテキストはプロパティ systemStartDelimiter
を以下の値の 1 つにセットします:
SystemStartBar
, SystemStartBrace
あるいは
SystemStartBracket
。4 つ目の境界線 – SystemStartSquare
も利用可能ですが、これは明示的に指定する必要があります。
新たな譜グループ化コンテキストを定義することもできます。詳細は 新しいコンテキストを定義する を参照してください。
Selected Snippets
譜グループの先頭に角括弧を使用する
システム開始の境界線 SystemStartSquare
は StaffGroup
または ChoirStaff
で明示的にセットすることで使用することができます。
\score { \new StaffGroup { << \set StaffGroup.systemStartDelimiter = #'SystemStartSquare \new Staff { c'4 d' e' f' } \new Staff { c'4 d' e' f' } >> } }
システムに譜が 1 つしか存在しない場合にも括弧を表示する
ChoirStaff
や StaffGroup
に譜が 1 つだけ存在する場合、デフォルトでは括弧や行頭の小節線は表示されません。これは collapse-height
をオーバライドし、値を譜線の数より小さくセットすることで変更することができます。
括弧が波の形をしている
PianoStaff
や GrandStaff
のようなコンテキストでは、別のプロパティをセットする必要があります。例の 2 つ目のシステムを参照してください。
\score { \new StaffGroup << % Must be lower than the actual number of staff lines \override StaffGroup.SystemStartBracket.collapse-height = #4 \override Score.SystemStartBar.collapse-height = #4 \new Staff { c'1 } >> } \score { \new PianoStaff << \override PianoStaff.SystemStartBrace.collapse-height = #4 \override Score.SystemStartBar.collapse-height = #4 \new Staff { c'1 } >> }
Mensurstriche レイアウト (譜の間に小節線を表示する)
Mensurstriche (計量音楽風の) レイアウトでは、小節線を譜の中には表示せず、譜と譜の間に表示します。これは、ChoirStaff
の代わりに StaffGroup
を用いることで実現できます。譜の中にある小節線は \hide
で非表示にします。
\layout { \context { \Staff measureBarType = "-span|" } } music = \fixed c'' { c1 d2 \section e2 f1 \fine } \new StaffGroup << \new Staff \music \new Staff \music >>
参照
音楽用語集: brace, bracket, grand staff
記譜法リファレンス: 楽器名, 新しいコンテキストを定義する
コード断片集: Staff notation
内部リファレンス: Staff, StaffGroup, ChoirStaff, GrandStaff, PianoStaff, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 譜をグループ化する ] | [ 上へ : 譜を表示する ] | [ システムを分割する > ] |
ネストされた譜グループ
譜グループ化コンテキストは任意の深さにネストすることができます。そうした場合、それぞれの子コンテキストは、親グループの角括弧に隣接して新しい角括弧を作成します。
\new StaffGroup << \new Staff \relative { c''2 c | c2 c } \new StaffGroup << \new Staff \relative { g'2 g | g2 g } \new StaffGroup \with { systemStartDelimiter = #'SystemStartSquare } << \new Staff \relative { e'2 e | e2 e } \new Staff \relative { c'2 c | c2 c } >> >> >>
新たにネストされた譜グループ化コンテキストを定義することができます。詳細は 新しいコンテキストを定義する を参照してください。
Selected Snippets
譜をネストする
systemStartDelimiterHierarchy
は、より複雑な譜のグループ化を行うために用いることができます。\set StaffGroup.systemStartDelimiterHierarchy
コマンドの引数として基となるのは、譜の数だけあるアルファベットのリストです。それぞれの譜の前に SystemStartDelimiter
を追加することで、グループ化の始まりを示します。その際、グループとなる譜の範囲を括弧で囲む必要があります。リスト中の要素は省略することができますが、最上位のグループは必ず全ての譜を含みます。SystemStartDelimiter
は SystemStartBar
,
SystemStartBracket
, SystemStartBrace
,
SystemStartSquare
のいずれかです。
\new StaffGroup \relative c'' << \override StaffGroup.SystemStartSquare.collapse-height = #4 \set StaffGroup.systemStartDelimiterHierarchy = #'(SystemStartSquare (SystemStartBrace (SystemStartBracket a (SystemStartSquare b) ) c ) d) \new Staff { c1 } \new Staff { c1 } \new Staff { c1 } \new Staff { c1 } \new Staff { c1 } >>
参照
記譜法リファレンス: 譜をグループ化する, 楽器名, 新しいコンテキストを定義する
コード断片集: Staff notation
内部リファレンス: StaffGroup, ChoirStaff, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < ネストされた譜グループ ] | [ 上へ : 譜を表示する ] | [ 個々の譜を変更する > ] |
システムを分割する
1 ページあたりのシステムの数がページによって異なる場合、システム分割記号を間に置くことでシステムを分割するという慣習があります。デフォルトでは、システム分割記号は空になっていますが、
\paper
オプションで有効にすることができます。
\book { \score { \new StaffGroup << \new Staff { \relative { c''4 c c c \break c4 c c c } } \new Staff { \relative { c''4 c c c \break c4 c c c } } >> } \paper { system-separator-markup = \slashSeparator % 以下のコマンドはこのドキュメントでの体裁を整えるためだけのものです paper-width = 100\mm paper-height = 100\mm tagline = ##f } }
参照
記譜法リファレンス: ページ レイアウト
コード断片集: Staff notation
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < システムを分割する ] | [ 上へ : 譜の記譜法 ] | [ 譜シンボル > ] |
1.6.2 個々の譜を変更する
このセクションでは、譜の属性を変更する方法について説明します: 例えば、譜線の本数や譜サイズを変更します。譜を開始/終了する方法とオッシア セクションをセットする方法についても記述します。
譜シンボル | ||
オッシア譜 | ||
譜を隠す |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 個々の譜を変更する ] | [ 上へ : 個々の譜を変更する ] | [ オッシア譜 > ] |
譜シンボル
\stopStaff
コマンドと \startStaff
コマンドを使って、楽譜内の任意の場所で譜線を停止あるいは (再) 開始させることができます。
\relative { \stopStaff f''4 d \startStaff g, e f'4 d \stopStaff g, e f'4 d \startStaff g, e }
定義済みコマンド
\startStaff
,
\stopStaff
譜の線 (加線を含む) は StaffSymbol
グラフィカル オブジェクトに属し、
StaffSymbol
プロパティを用いて変更することができます。しかしながら、変更は譜が (再) 開始する前に行う必要があります。
譜線の本数を変更することができます:
\relative { f''4 d \stopStaff \override Staff.StaffSymbol.line-count = #2 \startStaff g, e | f'4 d \stopStaff \revert Staff.StaffSymbol.line-count \startStaff g, e | }
各譜線の位置を変更することもできます。数字のリストでそれぞれの譜線の位置を指定します。0
は通常の譜における中央の線で、通常の譜の譜線の位置は (-4 -2 0 2 4)
となります。
1 つの値に対して 1 本の譜線が譜刻されるので、1 つのオーバライドで譜線の位置と本数を変更することができます。
\relative { f''4 d \stopStaff \override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3) \startStaff g, e | f'4 d \stopStaff \override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5) \startStaff g, e | }
符幹の向きが通常通り (譜の下半分では上向き、上半分では下向き) になるように、カスタマイズした譜では中央の線 (あるいは「間」) を通常の中央の位置 (0) に配置するようにしてください。 新しい譜線に対応して、音部記号とミドル C の位置を調節する必要があるかもしれません。音部記号 を参照してください。
譜線の太さを変えることができます。デフォルトでは、加線 (訳者注: ledger line, 譜の上下に突き出た符頭と符幹に付けられる短い譜線) と符幹の太さも影響を受けます。
\new Staff \with { \override StaffSymbol.thickness = #3 } \relative { f''4 d g, e }
加線の太さを譜線の太さから独立して設定することもできます。
\new Staff \with { \override StaffSymbol.thickness = #2 \override StaffSymbol.ledger-line-thickness = #'(0.5 . 0.4) } \relative { f'''4 a, a,, f }
1 つ目の値は譜線の太さに、2 つ目は譜線の間隔に掛け算され、それら 2 つの値を加算した値が加線の太さになります。
加線の垂直方向の位置を変更することができます:
\new Staff \with { \override StaffSymbol.ledger-positions = #'(-3 -2 -1 2 5 6) } \relative { f'''4 a, a,, f }
符頭の位置と加線を持つ他の符頭との関係に応じて、符頭の上または下に追加の加線を配置することできます。
\new Staff \with { \override StaffSymbol.ledger-extra = #4 } \relative { f'''4 a, d, f, }
譜の内部に加線を表示させることもできます。この場合、譜線のカスタマイズが必要です。以下の例は明示的に ledger-position
をセットしない場合とした場合の加線のデフォルト位置を示しています。以下の例で、StaffSymbol
全体に対する \override
を元に戻すには\stopStaff
を行う必要があります。
\relative d' { \override Staff.StaffSymbol.line-positions = #'(-8 0 2 4) d4 e f g \stopStaff \startStaff \override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0) d4 e f g }
譜線の間隔を変えることができます。この設定は加線の間隔にも影響を与えます。
\new Staff \with { \override StaffSymbol.staff-space = #1.5 } \relative { f'''4 d, g, e, }
Selected Snippets
いくつかの譜線を他より太くする
教育上の目的で、譜線を太くすることができます (目的の例としては、中央の線の強調や、ト音記号の線を強調することなど)。これは強調したい線のすぐ近くに新たな譜線を追加することで実現できます。譜線の追加には StaffSymbol
オブジェクトの line-positions
プロパティを使用します。
{ \override Staff.StaffSymbol.line-positions = #'(-4 -2 -0.2 0 0.2 2 4) d'4 e' f' g' }
参照
音楽用語集: line, ledger line, staff
記譜法リファレンス: 音部記号
コード断片集: Staff notation
内部リファレンス: StaffSymbol, staff-symbol-interface
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 譜シンボル ] | [ 上へ : 個々の譜を変更する ] | [ 譜を隠す > ] |
オッシア譜
適切な位置で新しく同時進行の譜を作成することによって、オッシア 譜をセットすることができます:
\new Staff \relative { c''4 b d c << { c4 b d c } \new Staff { e4 d f e } >> c4 b c2 }
しかしながら、上の例は通常は望ましいものではありません。オリジナルの譜の上にあり、拍子記号や音部記号を持たず、小さなサイズのフォントを使用するオッシア譜を作成するには調整が必要です。学習マニュアルの Nesting music expressions に望ましいオッシア譜を作成するための方法が記述されています。
以下の例は、オッシア譜をオリジナルの譜の上に配置するために
alignAboveContext
プロパティを用いています。この手法は、2, 3 のオッシア譜が必要とされているだけである場合であれば、最も適切な方法です。
\new Staff = "main" \relative { c''4 b d c << { c4 b d c } \new Staff \with { \remove Time_signature_engraver alignAboveContext = "main" \magnifyStaff #2/3 firstClef = ##f } { e4 d f e } >> c4 b c2 }
多くの別個のオッシア譜が必要である場合、ある特有の コンテキスト ID を持つ空の Staff
コンテキストを作成する方が適切かもしれません:
このコンテキストを 呼び出し、オッシア譜が必要とされる場所で \startStaff
と \stopStaff
を用いることでオッシア譜が作成されます。この手法の利点は、以下の例よりも長い楽曲であれば、明らかです。
<< \new Staff = "ossia" \with { \remove Time_signature_engraver \hide Clef \magnifyStaff #2/3 } { \stopStaff s1*6 } \new Staff \relative { c'4 b c2 << { e4 f e2 } \context Staff = "ossia" { \startStaff e4 g8 f e2 \stopStaff } >> g4 a g2 \break c4 b c2 << { g4 a g2 } \context Staff = "ossia" { \startStaff g4 e8 f g2 \stopStaff } >> e4 d c2 } >>
オッシア譜を作成するための代替手段として、\RemoveAllEmptyStaves
コマンドが用いられるかもしれません。この手法は、オッシア譜が改行の直後に発生する場合、最も便利な手法です。\RemoveAllEmptyStaves
についての更なる情報は、譜を隠す を参照してください。
<< \new Staff = "ossia" \with { \remove Time_signature_engraver \hide Clef \magnifyStaff #2/3 \RemoveAllEmptyStaves } \relative { R1*3 c''4 e8 d c2 } \new Staff \relative { c'4 b c2 e4 f e2 g4 a g2 \break c4 b c2 g4 a g2 e4 d c2 } >>
Selected Snippets
オッシアと歌詞の縦方向の揃え位置
このスニペットは、歌詞とオッシアの位置を調整するために
alignBelowContext
と alignAboveContext
コンテキスト
プロパティを使用する方法を示しています。
\paper { ragged-right = ##t } \relative c' << \new Staff = "1" { c4 c s2 } \new Staff = "2" { c4 c s2 } \new Staff = "3" { c4 c s2 } { \skip 2 << \lyrics { \set alignBelowContext = #"1" lyrics4 below } \new Staff \with { alignAboveContext = #"3" fontSize = #-2 \override StaffSymbol.staff-space = #(magstep -2) \remove "Time_signature_engraver" } { \tuplet 6/4 { \override TextScript.padding = #3 c8[^"ossia above" d e d e f] } } >> } >>
参照
音楽用語集: ossia, staff, Frenched staff
学習マニュアル: Nesting music expressions, Size of objects, Length and thickness of objects
記譜法リファレンス: 譜を隠す
コード断片集: Staff notation
内部リファレンス: StaffSymbol
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < オッシア譜 ] | [ 上へ : 個々の譜を変更する ] | [ パートを記述する > ] |
譜を隠す
Staff
コンテキストから Staff_symbol_engraver
を削除することによって、譜線を隠すことができます。そうする代わりに、\stopStaff
を用いることもできます。
\new Staff \with { \remove Staff_symbol_engraver } \relative { a''8 f e16 d c b a2 }
空の譜は隠すことができます (いわゆる ‘Frenched Score’ にするため)。これは、コンテキスト中で \RemoveEmptyStaves
を適用することで実現できます。(\layout
ブロック内に適用することによって) 楽譜全体に設定することも、(\with
ブロック内に適用することによって) 特定の譜に限定することもできます。このコマンドは、最初のシステムを除いて、楽譜内にある全ての空の譜を削除します。最初のシステムにある譜も隠したい場合は、\RemoveAllEmptyStaves
を使ってください。サポートしているコンテキストは
Staff
, RhythmicStaff
, VaticanaStaff
です。
Note: 譜が空であると見なされるのは、それが複数小節にわたる休符、休符、スキップ、空白休符、あるいはそれらの要素の組み合わせだけで構成されている場合です。
\layout { \context { \Staff \RemoveEmptyStaves } } \relative << \new Staff { e'4 f g a \break b1 \break a4 b c2 } \new Staff { c,4 d e f \break R1 \break f4 g c,2 } >>
譜に対してオッシア セクションを作成するために、\RemoveAllEmptyStaves
を用いることもできます。詳細は オッシア譜 を参照してください。
定義済みコマンド
\RemoveEmptyStaves
,
\RemoveAllEmptyStaves
参照
音楽用語集: Frenched staff
学習マニュアル: Visibility and color of objects
記譜法リファレンス: コンテキストのデフォルト設定を変更する, 譜シンボル, オッシア譜, 隠された音符, 不可視の休符, オブジェクトの可視性
コード断片集: Staff notation
内部リファレンス: ChordNames, FiguredBass, Lyrics, Staff, VerticalAxisGroup, Staff_symbol_engraver
既知の問題と警告
Staff_symbol_engraver
を削除すると、小節線も隠されます。小節線が強制的に可視になるよう設定されている場合、フォーマット エラーが発生するかもしれません。そのような場合は、エングラーバを削除する代わりに、以下のオーバライドを使用してください:
\omit StaffSymbol \override NoteHead.no-ledgers = ##t
\Staff \RemoveEmptyStaves
に関連する既知の問題と警告は
コンテキストのデフォルト設定を変更する を参照してください。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 譜を隠す ] | [ 上へ : 譜の記譜法 ] | [ 楽器名 > ] |
1.6.3 パートを記述する
このセクションでは、楽譜に楽器名を挿入するためにしばしば必要となる、オーケストラまたはアンサンブル音楽用のパートを作成する方法について説明します。他のボイスを引用する方法、演奏指示音符を譜刻する方法、個々のパートで複数の連続する空の小節をまとめる方法についても記述します。
楽器名 | ||
他のボイスを引用する | ||
合図音符をフォーマットする | ||
空の小節を圧縮する |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < パートを記述する ] | [ 上へ : パートを記述する ] | [ 他のボイスを引用する > ] |
楽器名
Staff
, PianoStaff
, StaffGroup
, GrandStaff
それに ChoirStaff
コンテキストの中にある譜の左側に、楽器名を譜刻することができます。instrumentName
の値が最初の行の譜に対して使用され、shortInstrumentName
の値がそれに続くすべての行の譜に対して使用されます。
\new Staff \with { instrumentName = "Violin " shortInstrumentName = "Vln. " } \relative { c'4.. g'16 c4.. g'16 \break | c1 | }
\markup
を用いて、より複雑な楽器名を作成することができます:
\new Staff \with { instrumentName = \markup { \column { "Clarinetti" \line { "in B" \smaller \flat } } } } \relative { c''4 c,16 d e f g2 }
2 つ以上の譜コンテキストがグループ化されている場合、デフォルトでは楽器名と短縮楽器名は中央揃えされます。複数行にわたる楽器名を中央揃えするには、\center-column
を用いる必要があります:
<< \new Staff \with { instrumentName = "Flute" } \relative { f''2 g4 f } \new Staff \with { instrumentName = \markup { \center-column { "Clarinet" \line { "in B" \smaller \flat } } } } \relative { c''4 b c2 } >>
しかしながら、楽器名が長い場合、indent
設定と short-indent
設定の値を増やさない限り、譜グループの中にある楽器名は中央揃えされません。これらの設定についての詳細は シフトとインデントのための \paper
変数
を参照してください。
<< \new Staff \with { instrumentName = "Alto Flute in G" shortInstrumentName = "Flt." } \relative { f''2 g4 f \break g4 f g2 } \new Staff \with { instrumentName = "Clarinet" shortInstrumentName = "Clar." } \relative { c''4 b c2 \break c2 b4 c } >> \layout { indent = 3.0\cm short-indent = 1.5\cm }
楽器名を他のコンテキスト (ChordNames
や FiguredBass
など)
に付け加えるには、
そのコンテキストに Instrument_name_engraver
を追加する必要があります。詳細は コンテキストのプラグインを変更する を参照してください。
楽曲の途中で shortInstrumentName
や、新しい楽器に必要なその他の設定を変更することもできます。しかしながら、instrumentName
は最初のインスタンスが譜刻され、楽曲の途中での変更は無視されます:
prepPiccolo = <>^\markup \italic { muta in Piccolo } prepFlute = <>^\markup \italic { muta in Flauto } setPiccolo = { <>^\markup \bold { Piccolo } \transposition c'' } setFlute = { <>^\markup \bold { Flute } \transposition c' } \new Staff \with { instrumentName = "Flute" shortInstrumentName = "Flt." } \relative { g'1 g g g \break g1 g \prepPiccolo R R \break \set Staff.instrumentName = "Piccolo" \set Staff.shortInstrumentName = "Picc." \setPiccolo g1 g g g \break g1 g \prepFlute R R \break \set Staff.instrumentName = "Flute" \set Staff.shortInstrumentName = "Flt." \setFlute g1 g g g }
参照
記譜法リファレンス:
シフトとインデントのための \paper
変数,
コンテキストのプラグインを変更する
コード断片集: Staff notation
内部リファレンス: InstrumentName, PianoStaff, Staff
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 楽器名 ] | [ 上へ : パートを記述する ] | [ 合図音符をフォーマットする > ] |
他のボイスを引用する
あるボイスが他のボイスと同じ音符を演奏することはごく一般的なことです。例えば、第 1 バイオリンと第2バイオリンがあるパッセージで同じフレーズを演奏することがあります。これは、ボイスに他のボイスを 引用 させることで実現でき、第 2 ボイスの音楽全体を再入力する必要はありません。
最上位レベルのスコープで用いる \addQuote
コマンドは一部を引用することができる音楽を定義します。
\quoteDuring
コマンドを用いて、引用を開始する位置を示します。このコマンドは 2 つの引数をとります:
\addQuote
で定義した引用するボイスの名前と、引用部分の演奏時間を示す音楽表記です。
fluteNotes = \relative { a'4 gis g gis | b4^"quoted" r8 ais\p a4( f) } oboeNotes = \relative { c''4 cis c b \quoteDuring "flute" { s1 } } \addQuote "flute" { \fluteNotes } \score { << \new Staff \with { instrumentName = "Flute" } \fluteNotes \new Staff \with { instrumentName = "Oboe" } \oboeNotes >> }
\quoteDuring
で使用される音楽表記が空白休符や複数小節休符ではなく音符を保持している場合、引用は多声となり、予期しない結果となる可能性があります。
fluteNotes = \relative { a'4 gis g gis | b4^"quoted" r8 ais\p a4( f) } oboeNotes = \relative { c''4 cis c b \quoteDuring "flute" { e4 r8 ais b4 a } } \addQuote "flute" { \fluteNotes } \score { << \new Staff \with { instrumentName = "Flute" } \fluteNotes \new Staff \with { instrumentName = "Oboe" } \oboeNotes >> }
\unfoldRepeats
コマンドを \quoteDuring
と一緒に使う場合、引用の中でも \unfoldRepeats
コマンドを使わなければなりません:
fluteNotes = \relative { \repeat volta 2 { a'4 gis g gis } } oboeNotesDW = \relative { \repeat volta 2 \quoteDuring "incorrect" { s1 } } oboeNotesW = \relative { \repeat volta 2 \quoteDuring "correct" { s1 } } \addQuote "incorrect" { \fluteNotes } \addQuote "correct" { \unfoldRepeats \fluteNotes } \score { \unfoldRepeats << \new Staff \with { instrumentName = "Flute" } \fluteNotes \new Staff \with { instrumentName = "Oboe (incorrect)" } \oboeNotesDW \new Staff \with { instrumentName = "Oboe (correct)" } \oboeNotesW >> }
\quoteDuring
コマンドは引用されるパートと引用するパート両方の
\transposition
を使用して、引用されるパートと同じ響きのピッチに変換して、引用するパートの音符を作り出します。
clarinetNotes = \relative c'' { \transposition bes \key d \major b4 ais a ais | cis4^"quoted" r8 bis\p b4( f) } oboeNotes = \relative { c''4 cis c b \quoteDuring "clarinet" { s1 } } \addQuote "clarinet" { \clarinetNotes } \score { << \new Staff \with { instrumentName = "Clarinet" } \clarinetNotes \new Staff \with { instrumentName = "Oboe" } \oboeNotes >> }
デフォルトでは引用される音楽はすべてのアーティキュレーション、強弱記号、マークアップ等を含んでいます。quotedEventTypes
コンテキスト プロパティを用いることで、引用される音楽から引用するオブジェクトを選択することが可能です。
fluteNotes = \relative { a'2 g2 | b4\<^"quoted" r8 ais a4\f( c->) } oboeNotes = \relative { c''2. b4 | \quoteDuring "flute" { s1 } } \addQuote "flute" { \fluteNotes } \score { << \set Score.quotedEventTypes = #'(note-event articulation-event crescendo-event rest-event slur-event dynamic-event) \new Staff \with { instrumentName = "Flute" } \fluteNotes \new Staff \with { instrumentName = "Oboe" } \oboeNotes >> }
引用にもタグを付けることができます。タグを使用する を参照してください。
参照
インストールされているファイル: ‘scm/define-event-classes.scm’.
コード断片集: Staff notation
内部リファレンス: + Music classes, QuoteMusic, Voice
既知の問題と警告
\addQuote
中にある最初の Voice
の内容だけが引用されます。そのため、音楽表記が \new
や \context Voice
を含んでいても、それらの内容は引用されません。装飾小音符の引用はサポートされておらず、LilyPond がクラッシュする可能性さえあります。
ネストされた連符を引用しようとしてもうまくいきません。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 他のボイスを引用する ] | [ 上へ : パートを記述する ] | [ 空の小節を圧縮する > ] |
合図音符をフォーマットする
合図音符をフォーマットする最も簡単な方法は、パートの中で明示的に CueVoice
コンテキストを作成することです。
\relative { R1 << { e'2\rest r4. e8 } \new CueVoice { \stemUp d'8^"flute" c d e fis2 } >> d,4 r a r }
音部記号の変更が必要で、合図音符に適切なサイズの音部記号を譜刻する場合、\cueClef
コマンドは明示的な CueVoice
コンテキストと共に用いられます。その後、\cueClefUnset
コマンドを用いて、オリジナルの音部記号 – 再度、適切なサイズにされた – に戻すことができます。
\relative { \clef "bass" R1 << { e'2\rest r4. \cueClefUnset e,8 } \new CueVoice { \cueClef "treble" \stemUp d''8^"flute" c d e fis2 } >> d,,4 r a r }
必要があれば、CueVoice
無しで
\cueClef
コマンドと \cueClefUnset
コマンドを用いることもできます。
\relative { \clef "bass" R1 \cueClef "treble" d''8^"flute" c d e fis2 \cueClefUnset d,,4 r a r }
もっと複雑な合図音符
– 例えば、移調を含んでいる、複数の音楽ソースからの合図音符を挿入する –
の場合、\cueDuring
コマンドや \cueDuringWithClef
コマンドを用いることができます。これらのコマンドは \quoteDuring
を特殊化したものです。\quoteDuring
については、前のセクションの 他のボイスを引用する を参照してください。
構文は以下の通りです:
\cueDuring quotename #direction music
と
\cueDuringWithClef quotename #direction #clef music
quotename
に対応する小節の音楽は
CueVoice
コンテキストとして追加されて
music
と同時進行して、多声になります。direction
は引数 UP
または DOWN
を取り
– それぞれ第 1 ボイス及び第 2 ボイスと対応します –
合図音符が他のボイスに対してどのように譜刻されるかを決定します。
fluteNotes = \relative { r2. c''4 | d8 c d e fis2 | g2 d | } oboeNotes = \relative c'' { R1 <>^\markup \tiny { flute } \cueDuring "flute" #UP { R1 } g2 c, } \addQuote "flute" { \fluteNotes } \new Staff { \oboeNotes }
instrumentCueName
プロパティを設定することによって、\cueDuring
で音楽のどの部分を引用するか調節することができます。このプロパティのデフォルト値は '(note-event rest-event
tie-event beam-event tuplet-span-event)
であり、音符、休符、タイ、連桁、それに連符だけが引用され、アーティキュレーション、強弱記号、マークアップ等は引用されません。
Note: 以下の例のように Voice
が \cueDuring
で始まる場合、Voice
を明示的に宣言する必要があります。そうしないと音楽表記全体が CueVoice
コンテキストに属してしまいます。
oboeNotes = \relative { r2 r8 d''16(\f f e g f a) g8 g16 g g2. } \addQuote "oboe" { \oboeNotes } \new Voice \relative c'' { \set Score.quotedCueEventTypes = #'(note-event rest-event tie-event beam-event tuplet-span-event dynamic-event slur-event) \cueDuring "oboe" #UP { R1 } g2 c, }
引用される楽器の名前を表示するために、マークアップを用いることができます。合図音符が音符記号の変更を必要とする場合、手動で変更することができますが、合図音符が終わったところで手動で元の音部記号に戻す必要がありmす。
fluteNotes = \relative { r2. c''4 d8 c d e fis2 g2 d2 } bassoonNotes = \relative c { \clef bass R1 \clef treble <>^\markup \tiny { flute } \cueDuring "flute" #UP { R1 } \clef bass g4. b8 d2 } \addQuote "flute" { \fluteNotes } \new Staff { \bassoonNotes }
あるいはまた、代わりに \cueDuringWithClef
関数を用いることができます。このコマンドは追加の引数で音部の変更を指定して、合図音符に音部記号を譜刻しますが、合図音部が終了したところで元の音部記号を自動的に譜刻します。
fluteNotes = \relative { r2. c''4 d8 c d e fis2 g2 d2 } bassoonNotes = \relative c { \clef bass R1 <>^\markup { \tiny "flute" } \cueDuringWithClef "flute" #UP "treble" { R1 } g4. b8 d2 } \addQuote "flute" { \fluteNotes } \new Staff { \bassoonNotes }
\quoteDuring
と同様に、\cueDuring
は楽器の移調を考慮します。合図音符は合図を受け取る楽器のピッチで作り出され、ソース楽器の同じ響きのピッチになります。
合図音符を移調させるには \transposedCueDuring
を使用します。このコマンドはコンサート ミドル C の音を表すピッチを (絶対モードで) 指定する追加の引数を取ります。これは、全く別の場所で登録された楽器から合図を取る場合に有用です。
piccoloNotes = \relative { \clef "treble^8" R1 c'''8 c c e g2 c4 g g2 } bassClarinetNotes = \relative c' { \key d \major \transposition bes, d4 r a r \transposedCueDuring "piccolo" #UP d { R1 } d4 r a r } \addQuote "piccolo" { \piccoloNotes } << \new Staff \piccoloNotes \new Staff \bassClarinetNotes >>
\killCues
コマンドは音楽表記から合図音符を削除します。これにより、同じ音楽表記を使って合図を持つ楽器パートと楽譜を作り出すことが可能です。\killCues
コマンドは \cueDuring
によって引用された音符とイベントだけを削除します。合図に関連する他のマークアップ
– 音部変更と引用元の楽器を識別するラベルなど –
にはタグを付けて楽譜に含めるかどうかを選択することができます。タグを使用する を参照してください。
fluteNotes = \relative { r2. c''4 d8 c d e fis2 g2 d2 } bassoonNotes = \relative c { \clef bass R1 \tag #'part { \clef treble <>^\markup \tiny { flute } } \cueDuring "flute" #UP { R1 } \tag #'part \clef bass g4. b8 d2 } \addQuote "flute" { \fluteNotes } \new Staff { \bassoonNotes } \new StaffGroup << \new Staff { \fluteNotes } \new Staff { \removeWithTag #'part { \killCues { \bassoonNotes } } } >>
参照
記譜法リファレンス: 他のボイスを引用する, 楽器の移調, 楽器名, 音部記号, 合図, タグを使用する
コード断片集: Staff notation
既知の問題と警告
\cueDuring
を使用した場合、Voice
コンテキストと CueVoice
コンテキストの間で休符の衝突が発生する可能性があります。\cueDuringWithClef
や \transposedCueDuring
を使用する場合、追加で必要となる引数は引用と向きの後に配置する必要があります。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 合図音符をフォーマットする ] | [ 上へ : パートを記述する ] | [ 編集者の注釈 > ] |
空の小節を圧縮する
デフォルトでは、すべての小節は空であっても譜刻されます – これは、リズムイベント (音符、休符、非表示の休符など) が複数の小節にまたがるほど長い場合に発生する可能性があります。 この動作は、次の図に示すように、すべての空の小節を単一の小節にまとめることで変更できます (この例の 2 番目の部分は小節を展開して実際にはデフォルトの動作に戻ります):
\override Score.BarNumber.break-visibility = #'#(#f #t #t) \time 2/4 \compressEmptyMeasures c'1 d'1. e'\breve \bar "||" \expandEmptyMeasures c'1 d'1. e'\breve
その表記法は構文的には正しいですが、前の例で示したように、音楽的な観点からは混乱するかもしれません。したがって、break-visibility を用いる で説明されている構文を使用して、小節番号を明示的に譜刻する必要があります。
そのような表記がより有用になる可能性があるのは、小節単位の休符 に適用される場合です。複数小節にまたがる休符は、複数小節にまたがる休符の記号を含む単一の小節として表示され、休符の小節数が小節の上に譜刻されます。
% デフォルトの振る舞い \time 3/4 r2. | R2.*2 | \time 2/4 R2 | \time 4/4 % 休みの小節を 1 つの小節にまとめます \compressEmptyMeasures r1 | R1*17 | R1*4 | \expandEmptyMeasures % 休みの小節を展開します \time 3/4 R2.*2 |
\compressEmptyMeasures
とは異なり、音楽関数 \compressMMRests
は休符にのみ適用され、他のイベントは圧縮されません。プロパティ設定ではなく関数として、その構文は音楽表現が続く必要があるという点でわずかに異なります:
\compressMMRests { % 休符は圧縮されます… R1*7 % …ただし、音符は複数の小節にまたがることができます。 g'1 a'1*2 d'1 R1*2 }
このセクションで説明するすべてのコマンドは、実際には skipBars
内部プロパティに依存しています。これは、\set
コマンド で説明されているように、
Score
コンテキストで設定されます。
定義済みコマンド
\compressEmptyMeasures
,
\expandEmptyMeasures
,
\compressMMRests
Selected Snippets
単一の小節の休符に数字を付ける
複数小節にまたがる休符は、単一の小節を除いて、長さを数字で表示します。これは、restNumberThreshold
を設定することで変更できます。
{ \compressEmptyMeasures R1 R1*10 R1*11 \bar "||" \set restNumberThreshold = 0 R1 R1*10 R1*11 \bar "||" \set restNumberThreshold = 10 R1 R1*10 R1*11 }
複数小節にまたがる休符の形を変更する
休符が複数小節に渡り、それが 10 小節以下の場合には、四全休符や二全休符が並んだものとして表記されます (ドイツ語で Kirchenpausen
–
教会休符と呼ばれます)。10 小節より長い場合は、単純な線として表示されます。このデフォルトの 10 を変更するには、expand-limit
プロパティをオーバライドします。
\relative c'' { \compressMMRests { R1*2 | R1*5 | R1*9 \override MultiMeasureRest.expand-limit = #3 R1*2 | R1*5 | R1*9 } }
参照
記譜法リファレンス:
break-visibility を用いる,
小節単位の休符,
\set
コマンド
内部リファレンス: MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript, MultiMeasureRestText
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 空の小節を圧縮する ] | [ 上へ : 音楽記譜法 ] | [ 譜の内部 > ] |
1.7 編集者の注釈
このセクションでは、音符の見た目を変える方法と、分析や教育的な強調を付け加える方法について議論します。
1.7.1 譜の内部 | ||
1.7.2 譜の外部 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 編集者の注釈 ] | [ 上へ : 編集者の注釈 ] | [ 記譜フォント サイズを選択する > ] |
1.7.1 譜の内部
このセクションでは、譜の内部にある要素に強調を付け加える方法について説明します。
記譜フォント サイズを選択する | ||
運指の指示 | ||
隠された音符 | ||
オブジェクトに色を付ける | ||
括弧 | ||
符幹 |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 譜の内部 ] | [ 上へ : 譜の内部 ] | [ 運指の指示 > ] |
記譜フォント サイズを選択する
Note:
テキストのフォント サイズに関しては、フォントとフォント サイズを選択するを参照してください。
譜のサイズに関しては、譜サイズを設定するを参照してください。
合図音符に関しては、合図音符をフォーマットするを参照してください。
オッシア譜に関しては、オッシア譜を参照してください。
譜のサイズを変えずに記譜のサイズを変更するには、\magnifyMusic
コマンドに拡大縮小の割合を指定します:
\new Staff << \new Voice \relative { \voiceOne <e' e'>4 <f f'>8. <g g'>16 <f f'>8 <e e'>4 r8 } \new Voice \relative { \voiceTwo \magnifyMusic 0.63 { \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63) r32 c'' a c a c a c r c a c a c a c r c a c a c a c a c a c a c a c } } >>
上の例にある \override
は、不具合の一時的な回避措置です。このセクションの最後にある“既知の問題と警告”を参照してください。
通常のサイズの音符が小さい音符とマージされる際には、符幹や臨時記号が正しく揃うように、小さい音符のサイズを(‘\once \normalsize’ によって) リセットする必要があります:
\new Staff << \key fis \minor \mergeDifferentlyDottedOn \new Voice \relative { \voiceOne \magnifyMusic 0.63 { \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63) \once \normalsize cis'32( cis' gis b a fis \once \normalsize d d' \once \normalsize cis, cis' gis b a gis \once \normalsize fis fis' \once \normalsize fis, fis' ais, cis b gis \once \normalsize eis eis' \once \normalsize a, a' bis, d cis b \once \normalsize gis gis') } } \new Voice \relative { \voiceTwo cis'8. d16 cis8. fis16 fis8. eis16 a8. gis16 } >>
\magnifyMusic
コマンドは合図音符、装飾音符、オッシア譜を作るためのものとしては想定されていません – これらには、より適切な作成方法があります。代わりに、このコマンドは以下のような場合に適しています:
単一の譜にある、単一の楽器について、記譜サイズが変化し、しかし装飾音符を用いるのは適切ではない場合 – 例えばカデンツァのようなパッセージや上の例にあるような場合です。
\magnifyMusic
の値を 0.63 にセットすることで、CueVoice
と同じ大きさになります。
Note: \magnifyMusic
コマンドは譜のサイズを変更する時にも使うべきではありません。譜サイズを設定するを参照してください。
個々のレイアウト オブジェクトのサイズを変更する
個々のレイアウト オブジェクトは \tweak
や \override
コマンドを使って、font-size
プロパティを調整することでサイズを変更できます:
\relative { % 符頭のサイズを変更します <f' \tweak font-size -4 b e>-5 % 運指記号のサイズを変更します bes-\tweak font-size 0 -3 % 臨時記号のサイズを変更します \once \override Accidental.font-size = -4 bes!-^ % アーティキュレーションのサイズを変更します \once \override Script.font-size = 4 bes!-^ }
それぞれのレイアウト オブジェクトの font-size
のデフォルト値は、内部リファレンスにリストアップされています。font-size
プロパティはfont-interface
をサポートしているレイアウト オブジェクトにのみ設定できます。font-size
がオブジェクトの ‘Standard settings’ に存在していない場合は、デフォルト値は 0 です。
All layout objects を参照してください。
fontSize
プロパティを理解する
fontSize
コンテキスト プロパティは、コンテキストに属するグリフ ベースの (訳注: フォントの文字として定義されている、詳しくは後述)
記譜要素全ての相対サイズを調整します:
\relative { \time 3/4 d''4---5 c8( b a g) | \set fontSize = -6 e'4-- c!8-4( b a g) | \set fontSize = 0 fis4---3 e8( d) fis4 | g2. }
fontSize
の値は、現在の譜の高さに応じた通常のサイズからの相対値を示しています。デフォルトの fontSize
は 0 です。fontSize
に 6 を加えることで大きさが 2 倍になり、6 を減じることで半分になります。1 が約 12% の増減になります。
font-size
プロパティの対数的な単位は常に直観的とは限りません。Scheme 関数 magnification->font-size
はこれに対応する便利な関数です。例えば、記譜の大きさをデフォルトの 75% にしたい場合は、以下のようにします:
\set fontSize = #(magnification->font-size 0.75)
Scheme 関数 magstep
は逆のことをします: font-size
の値を拡大縮小率に変換します。
fontSize
プロパティはグリフとして描かれている記譜要素のみに作用します
– 例えば、符頭、臨時記号、文字などです。譜のサイズそのものや、符幹、連桁のサイズ、水平方向のスペースなどは変化しません。(譜のサイズを変更せずに) 符幹、連桁のサイズや、水平方向のスペースを変更するには、上記の \magnifyMusic
を使用してください。譜のサイズを含めて、全てのサイズを変更する場合は、譜サイズを設定するを参照してください。
fontSize
コンテキスト プロパティ が設定されると、個々のレイアウト オブジェクトのグリフが出力される前に、fontSize
の値と、font-size
グラフィカル オブジェクト プロパティの値が足し合わされます。これは、fontSize
が既に設定されていて、個々の font-size
プロパティを更に設定する場合に混乱するかもしれません:
% NoteHead のデフォルトの font-size は 0 です % Fingering のデフォルトの font-size は -5 です c''4-3 \set fontSize = -3 % NoteHead のフォント サイズの最終的な値は -3 になります % Fingering のフォント サイズの最終的な値は -8 になります c''4-3 \override Fingering.font-size = 0 % Fingering のフォント サイズの最終的な値は -3 になります c''4-3
以下のような短縮記法コマンドも存在します:
コマンド | 同等なコマンド | 相対サイズ |
\teeny | \set fontSize = -3 | 71% |
\tiny | \set fontSize = -2 | 79% |
\small | \set fontSize = -1 | 89% |
\normalsize | \set fontSize = 0 | 100% |
\large | \set fontSize = 1 | 112% |
\huge | \set fontSize = 2 | 126% |
\relative c'' { \teeny c4.-> d8---3 \tiny c4.-> d8---3 \small c4.-> d8---3 \normalsize c4.-> d8---3 \large c4.-> d8---3 \huge c4.-> d8---3 }
フォント サイズの変更は、ひな形のサイズが望みのサイズに最も近くなるよう
(一定の割合で) 増減することによって、達成されます。標準フォント サイズ (font-size = 0
のフォント サイズ) は標準の譜の高さに基づきます。20pt の譜では、11pt のフォントが選択されます。
定義済みコマンド
\magnifyMusic
,
\teeny
,
\tiny
,
\small
,
\normalsize
,
\large
,
\huge
参照
記譜法リファレンス: フォントとフォント サイズを選択する, 譜サイズを設定する, 合図音符をフォーマットする, オッシア譜
インストールされているファイル: ‘ly/music-functions-init.ly’, ‘ly/property-init.ly’
コード断片集: Editorial annotations
内部リファレンス: font-interface
既知の問題と警告
\magnifyMusic
を使用する際に、水平方向のスペースが不適切になる
2 つの不具合があります。これを解決する方法が 1 つだけありますが、全ての場合にうまくいくとは限りません。次の例で、mag 変数を好きな値に置き換えてください。\newSpacingSection
コマンドの片方や両方、あるいは
\override
や \revert
コマンドを取り除いてみることができます:
\magnifyMusic mag { \newSpacingSection \override Score.SpacingSpanner.spacing-increment = #(* 1.2 mag) [music] \newSpacingSection \revert Score.SpacingSpanner.spacing-increment }
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 記譜フォント サイズを選択する ] | [ 上へ : 譜の内部 ] | [ 隠された音符 > ] |
運指の指示
運指の指示は 音符-数字 を用いることで挿入することができます:
\relative { c''4-1 d-2 f-4 e-3 }
指の入れ替えのためにマークアップ テキストや文字列を使うこともできます。
\relative { c''4-1 d-2 f\finger \markup \tied-lyric "4~3" c\finger "2 - 3" }
ある音符を親指で演奏するよう指示するために、サム スクリプト (thumb script) を付け加えることができます (例えば、チェロ音楽で)。
\relative { <a'_\thumb a'-3>2 <b_\thumb b'-3> }
和音の個々の音符の後に運指を付け加えることによって、和音に対する運指法を付け加えることができます。
\relative { <c''-1 e-2 g-3 b-5>2 <d-1 f-2 a-3 c-5> }
運指指示の配置を手動で譜の上または下にすることができます。向きと配置 を参照してください。
Selected Snippets
和音内の運指記号の位置をコントロールする
運指番号の位置を精密にコントロールすることができます。位置の設定が適用されるためには、単一の音符であっても和音構造 <> を用いる必要があります。
\relative c' { \set fingeringOrientations = #'(left) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(down) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(down right up) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(up) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(left) <c-1>2 \set fingeringOrientations = #'(down) <e-3>2 \set stringNumberOrientations = #'(up left down) <f\3 a\2 c\1>1 \set strokeFingerOrientations = #'(down right up) <c\rightHandFinger #1 e\rightHandFinger #2 c'\rightHandFinger #4 > }
運指記号を譜の内側に表示する
デフォルトでは、縦方向の運指記号は譜の外側に配置されます。この挙動を取り消すことができます。注意: この場合、和音でない場合にも <> を用いる必要があります。
\relative c' { <c-1 e-2 g-3 b-5>2 \override Fingering.staff-padding = #'() <c-1 e-2 g-3 b-5>4 g'-0 a8[-1 b]-2 g-0 r \override Fingering.add-stem-support = ##f a[-1 b]-2 g-0 r \override Fingering.add-stem-support = ##t a[-1 b]-2 g-0 r \override Fingering.add-stem-support = #only-if-beamed a[-1 b]-2 g-0 r }
参照
記譜法リファレンス: 向きと配置
コード断片集: Editorial annotations
内部リファレンス: FingeringEvent, fingering-event, Fingering_engraver, New_fingering_engraver, Fingering
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 運指の指示 ] | [ 上へ : 譜の内部 ] | [ オブジェクトに色を付ける > ] |
隠された音符
隠された (または不可視、透明の) 音符は、音楽理論や作曲の演習の際に有用です。
\relative { c''4 d \hideNotes e4 f \unHideNotes g a \hideNotes b \unHideNotes c }
符頭、符幹、旗、それに休符は不可視です。連桁は、隠された音符から始まる場合は、不可視です。 不可視の音符に取り付けられたオブジェクトは可視のままです。
\relative c'' { e8(\p f g a)-- \hideNotes e8(\p f g a)-- }
定義済みコマンド
\hideNotes
,
\unHideNotes
参照
学習マニュアル: オブジェクトの可視性と色
Notation Reference: 不可視の休符, オブジェクトの可視性, 譜を隠す
コード断片集: Editorial annotations
内部リファレンス: Note_spacing_engraver, NoteSpacing
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 隠された音符 ] | [ 上へ : 譜の内部 ] | [ 括弧 > ] |
オブジェクトに色を付ける
個々のオブジェクトに色を割り振ることができます。有効なカラー名は 色の一覧 でリストアップされています。
\override NoteHead.color = #red c''4 c'' \override NoteHead.color = #(x11-color 'LimeGreen) d'' \override Stem.color = #blue e''
Scheme 関数 x11-color
を用いることによって、X11 のために定義された色の全範囲にアクセスすることができます。この関数は引数を 1 つとります。この引数は 'FooBar
という形式のシンボルであったり、"FooBar"
という形式の文字列であったりします。最初の形式はより素早く記述できて、より効率的です。しかしながら、2 番目の形式を使うと複数単語形式の X11 カラーにアクセスすることができます。
x11-color
がパラメータとして意味をなさない場合、その色はデフォルトの黒になります。
\new Staff \with { instrumentName = \markup { \with-color #(x11-color 'red) "Clarinet" } } \relative c'' { \override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2) gis8 a \override Beam.color = #(x11-color "medium turquoise") gis a \override Accidental.color = #(x11-color 'DarkRed) gis a \override NoteHead.color = #(x11-color "LimeGreen") gis a % 以下は意図的に意味をなさない色を指定しています。符幹が黒のままであることに注意してください \override Stem.color = #(x11-color 'Boggle) b2 cis }
Scheme 関数 rgb-color
を用いることによって、厳密な RGB カラーを指定することができます。
\new Staff \with { instrumentName = \markup { \with-color #(x11-color 'red) "Clarinet" } } \relative c'' { \override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2) \override Stem.color = #(rgb-color 0 0 0) gis8 a \override Stem.color = #(rgb-color 1 1 1) gis8 a \override Stem.color = #(rgb-color 0 0 0.5) gis4 a }
参照
記譜法リファレンス:
色の一覧,
\tweak
コマンド
コード断片集: Editorial annotations
既知の問題と警告
X11 カラーは必ずしも同様の名前を持つノーマル カラーとまったく同じとなるわけではありません。
すべての X11 カラーが Web ブラウザで見分けられるわけではありません。つまり、ある Web ブラウザは LineGreen
と ForestGreen
を同じ色で表示するかもしれません。Web 向けでは、ノーマル カラーを使用することを推奨します
(つまり、blue
, green
, red
)。
和音の中にある音符に別々に色を付けるのに \override
を使うことはできません。代わりにそれぞれの音符の前に \tweak
や、それと同等な\single\override
を使用してください
– \tweak
コマンド を参照してください。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < オブジェクトに色を付ける ] | [ 上へ : 譜の内部 ] | [ 符幹 > ] |
括弧
音楽イベントの前に \parenthesize
を置くことによって、そのオブジェクトに括弧を付けることができます。和音の前に \parenthesize
を置くと、和音の音符それぞれに括弧が付けられます。和音内部の音符に個別に括弧を付けることもできます。
\relative { c''2 \parenthesize d c2 \parenthesize <c e g> c2 <c \parenthesize e g> }
音符ではないオブジェクトにも括弧を付けることができます。アーティキュレーションに対して括弧をつける場合、\parenthesize
コマンドの前にハイフンが必要です。
\relative { c''2-\parenthesize -. d c2 \parenthesize r }
参照
コード断片集: Editorial annotations
内部リファレンス: Parenthesis_engraver, Parentheses, parentheses-interface
既知の問題と警告
和音に括弧を付けると、和音全体に単一の大きな括弧が付くのではなく、それぞれの音符に個別に括弧が付きます。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 括弧 ] | [ 上へ : 譜の内部 ] | [ 譜の外部 > ] |
符幹
音符が見つかった場合はいつでも Stem
オブジェクトが自動的に作成されます。全音符や休符の場合でも Stem
オブジェクトが作成されますが、不可視になります。
符幹の向きを手動で上または下にすることができます – 向きと配置 を参照してください。
定義済みコマンド
\stemUp
,
\stemDown
,
\stemNeutral
Selected Snippets
譜の中央にある音符の符幹のデフォルトの向き
譜の中央にある音符の符幹の向きは、Stem
の neutral-direction
プロパティにセットされています。
\relative c'' { a4 b c b \override Stem.neutral-direction = #up a4 b c b \override Stem.neutral-direction = #down a4 b c b }
メロディに合わせて譜の中央にある音符の符幹の向きを自動で変更する
LilyPond では、Voice
コンテキストに Melody_engraver
を追加し、Stem
の neutral-direction
をオーバライドすることで、譜の中央にある音符の符幹の向きを、メロディに合わせて変更することができます。
\relative c'' { \time 3/4 a8 b g f b g | \set suspendMelodyDecisions = ##t a b g f b g | \unset suspendMelodyDecisions c b d c b c | } \layout { \context { \Voice \consists "Melody_engraver" \autoBeamOff } }
参照
記譜法リファレンス: 向きと配置
コード断片集: Editorial annotations
内部リファレンス: Stem_engraver, Stem, stem-interface
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 符幹 ] | [ 上へ : 編集者の注釈 ] | [ 音符名 > ] |
1.7.2 譜の外部
このセクションでは、譜の外側から譜の中にある要素を強調するための方法について説明します。
音符名 | ||
バルーン ヘルプ | ||
グリッド ライン | ||
分析の囲み |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 譜の外部 ] | [ 上へ : 譜の外部 ] | [ バルーン ヘルプ > ] |
音符名
音符名は NoteNames
コンテキストを用いて、テキストとして譜刻できます。通常の譜と同時に用いると、各音符と同期してその名前を譜の上部または下部に譜刻することができます。
\language "italiano" melody = \relative do'' { fad2 si,8 dod re mi fad4. re8 fad2 } << \new NoteNames { \melody } \new Staff { \key si \minor \melody } \new NoteNames { \set printNotesLanguage = "deutsch" \set printAccidentalNames = ##f \melody } >>
デフォルトでは、音符名は音楽の入力で使われるものと同じ言語で譜刻されます。しかしながら、printNotesLanguage
プロパティで他の言語を選択することが可能です
(他の言語での音符名 を参照してください) 。臨時記号を譜刻するかどうかは、printAccidentalNames
プロパティで決定されます。
プロパティをシンボルにセットし、printOctaveNames
を ##t
にセットすることで、音符名を LilyPond の入力構文と密接に似せることができます。より一般的な結果が欲しい場合は、‘科学的な’
オクターブ名にすることもできます。
melody = \relative c'' { fis2 b,8 cis d e fis4. d8 fis2 } << \new NoteNames { \set printOctaveNames = ##t \set printAccidentalNames = #'lily \melody } \new Staff { \key b \minor \melody } \new NoteNames { \set printOctaveNames = #'scientific \melody } >>
noteNameSeparator
プロパティは和音がどのように譜刻されるかを定義します。その他のフォーマット関数は noteNameFunction
で定義され、このような関数は、いずれかを無視する場合であっても、
pitch
と context
引数を受けなければなりません。
somechords = \relative c' { <b d fis>2 <b cis e g> <b d fis> q } << \new NoteNames { \set noteNameSeparator = "+" \somechords } \new Staff { \key b \minor \somechords } \new NoteNames { \set noteNameFunction = #(lambda (pitch ctx) (alteration->text-accidental-markup (ly:pitch-alteration pitch))) \somechords } >>
参照
記譜法リファレンス: 他の言語での音符名
内部リファレンス: NoteName, NoteNames, Note_name_engraver
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 音符名 ] | [ 上へ : 譜の外部 ] | [ グリッド ライン > ] |
バルーン ヘルプ
記譜要素に四角いバルーンで印を付けて、テキストを付け加えることができます。この機能の主目的は記譜法を説明することです。
\new Voice \with { \consists Balloon_engraver } \relative c'' { \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" } a8 \balloonGrobText #'Rest #'(-4 . -4) \markup { "I'm a rest" } r <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2. }
上の例には 2 つの音楽関数が使われています
– balloonGrobText
と balloonText
です。前者は \once \override
のように使用され、任意のグラフィカル オブジェクトにテキストを付加します。後者はたいてい和音の中で \tweak
のように使用され、個々の音符にテキストを付加します。
バルーン ヘルプのテキストは音符の間隔に影響を与えませんが、影響を与えるように変更することもできます:
\new Voice \with { \consists Balloon_engraver } \relative c'' { \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" } a8 \balloonGrobText #'Rest #'(-4 . -4) \markup { "I'm a rest" } r \balloonLengthOn <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2. }
定義済みコマンド
\balloonLengthOn
,
\balloonLengthOff
参照
コード断片集: Editorial annotations
内部リファレンス: Balloon_engraver, BalloonText, balloon-interface
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < バルーン ヘルプ ] | [ 上へ : 譜の外部 ] | [ 分析の囲み > ] |
グリッド ライン
音符に同期して、譜の間に垂直な線を描くことができます。
線の終点を作成するために Grid_point_engraver
を用いる必要があります。一方、実際に線を描くために Grid_line_span_engraver
を用いる必要があります。デフォルトでは、グリッド ラインは各符頭の左端に揃えられます。グリッド ラインは上の譜の中央線から下の譜の中央線まで引かれます。gridInterval
でグリッド ライン間の演奏時間を指定する必要があります。
\layout { \context { \Staff \consists Grid_point_engraver gridInterval = #(ly:make-moment 1/4) } \context { \Score \consists Grid_line_span_engraver } } \score { \new ChoirStaff << \new Staff \relative { \stemUp c''4. d8 e8 f g4 } \new Staff \relative { \clef bass \stemDown c4 g' f e } >> }
Selected Snippets
グリッド線: 見た目を変更する
グリッド線の見た目は、プロパティをオーバライドすることで変更することができます。
\score { \new ChoirStaff << \new Staff { \relative c'' { \stemUp c'4. d8 e8 f g4 } } \new Staff { \relative c { % this moves them up one staff space from the default position \override Score.GridLine.extra-offset = #'(0.0 . 1.0) \stemDown \clef bass \once \override Score.GridLine.thickness = #5.0 c4 \once \override Score.GridLine.thickness = #1.0 g'4 \once \override Score.GridLine.thickness = #3.0 f4 \once \override Score.GridLine.thickness = #5.0 e4 } } >> \layout { \context { \Staff % set up grids \consists "Grid_point_engraver" % set the grid interval to one quarter note gridInterval = #(ly:make-moment 1/4) } \context { \Score \consists "Grid_line_span_engraver" % this moves them to the right half a staff space \override NoteColumn.X-offset = #-0.5 } } }
参照
コード断片集: Editorial annotations
内部リファレンス: Grid_line_span_engraver, Grid_point_engraver, GridLine, GridPoint, grid-line-interface, grid-point-interface.
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < グリッド ライン ] | [ 上へ : 譜の外部 ] | [ テキスト > ] |
分析の囲み
音楽分析では、囲みを使って楽曲の構造を示します。シンプルな水平な囲みがサポートされています。
\layout { \context { \Voice \consists Horizontal_bracket_engraver } } \relative { c''2\startGroup d\stopGroup }
分析の囲みはネストすることができます。
\layout { \context { \Voice \consists Horizontal_bracket_engraver } } \relative { c''4\startGroup\startGroup d4\stopGroup e4\startGroup d4\stopGroup\stopGroup }
Selected Snippets
分析用のブラケットを譜の上に表示する
分析用のブラケットは、デフォルトでは譜の下に表示されます。次の例は譜の上に表示する方法を示しています。
\layout { \context { \Voice \consists "Horizontal_bracket_engraver" } } \relative c'' { \once \override HorizontalBracket.direction = #UP c2\startGroup d2\stopGroup }
ラベル付きの分析用ブラケット
Grob HorizontalBracketText
の text
プロパティを設定することで、分析用のブラケットにテキストを追加することができます。同時に開始するブラケットに異なるテキストを追加する場合には、\tweak
コマンドを使用してください。改行後のテキストは括弧付きで表示されます。
\paper { tagline = ##f } \layout { \context { \Voice \consists "Horizontal_bracket_engraver" \override HorizontalBracket.direction = #UP } } { \once\override HorizontalBracketText.text = "a" c''\startGroup d''\stopGroup \once\override HorizontalBracketText.text = "a'" e''\startGroup d''\stopGroup | c''-\tweak HorizontalBracketText.text \markup \bold \huge "b" \startGroup -\tweak HorizontalBracketText.text "a" \startGroup d''\stopGroup e''-\tweak HorizontalBracketText.text "a'" \startGroup d''\stopGroup\stopGroup | c''-\tweak HorizontalBracketText.text foo \startGroup d'' e'' f'' | \break g'' a'' b'' c'''\stopGroup }
参照
内部リファレンス: Horizontal_bracket_engraver, HorizontalBracket, horizontal-bracket-interface, HorizontalBracketText, horizontal-bracket-text-interface, Staff
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 分析の囲み ] | [ 上へ : 音楽記譜法 ] | [ テキスト オブジェクトの概要 > ] |
1.8 テキスト
このセクションでは、楽譜に (さまざまなフォーマットの) テキストを含める方法について説明します。
テキスト オブジェクトの概要 | ||
1.8.1 テキストを記述する | ||
1.8.2 テキストをフォーマットする | ||
1.8.3 フォント |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < テキスト ] | [ 上へ : テキスト ] | [ テキストを記述する > ] |
テキスト オブジェクトの概要
テキスト オブジェクトは、ダブル クォーテーションの間の単純な文字列か、
テキストをフォーマットする に詳細を書いたさまざまな高度なテキスト フォーマットやグラフィカルな改善を受け入れることができる \markup
ブロックとして入力されます。
このように markup ブロックは使われます:
-
TextScript
オブジェクト (音符の後に-
,^
または_
に続けて付け加えます)。テキスト スクリプト を参照してください。 - ‘スパナ’として、いくつかの指示が複数の拍や小節を超えて長くなるとき。 テキスト スパナ を参照してください。
-
楽譜の上側に譜刻される
\mark
または\tempo
キーワードによってそれぞれ取り入れられるRehearsalMark
またはMetronomeMark
オブジェクトのような記号。テキスト マーク を参照してください。 -
単体の markup ブロックとして、
\score
ブロックの外側のトップレベルに譜刻される場合 (この特殊なケースでは\markup {...}
コマンドは必須であり、省略してダブル クォーテーションの間に単純に文字列を挟む方法を選ぶことはできません)。独立したテキスト を参照してください。 -
\header
ブロック内の定義 (例:title
,subtitle
,composer
)、またはページ番号のためのevenHeaderMarkup
のような\paper
ブロック内で定義される特殊な要素。これは タイトルとヘッダ で説明されています。
主な使い方ではありませんが、その他の多くのテキスト ベースのオブジェクトを markup ブロックで入力できます。
-
運指法は
\finger
コマンドを導入することで markup ブロックで簡単に置き換えることができます。運指の指示 を参照してください。 -
歌詞音節は
\markup
コマンドを通してフォーマットできます。 声楽で共通の記譜法 を参照してください。 - コード ネームは実際には markup ブロックとして定義されているので、和音修飾子または和音の例外をカスタムするのと同じ方法で再定義することができます。 和音を表示する を参照してください。
-
強弱記号はたいていシンプルな方法で入力されますが、markup ブロックとして
新たな強弱記号 を定義することができます。crescendo のようないくつかの強弱記号はスパナとして譜刻され、
crescendoText
のようなプロパティを通して再定義することができます。強弱記号 を参照してください。 - バルーン ヘルプ 指示のような、いくつかの一般的なオブジェクトも markup ブロックで作られています。
実際、グラフィカル オブジェクト (または ‘grob’) の実質的な出現のカスタマイズのために \markup
を使うことは、もしそのオブジェクトが
text
プロパティを持っている場合はそれを、もしくは stencil
プロパティを上書きすることで可能となっています。これを可能にしているいくつかの仕組みは、
Flexible architecture で説明されています。
以下の例は markup ブロックの遍在性を説明します。上に列挙されたオブジェクトの一部としてだけではなく、さまざまな方法を通してテキスト オブジェクトで音楽オブジェクトを置き換えることにも使われます。
\header { title = \markup "Header" } dyn = #(make-dynamic-script #{ \markup \text "DynamicText" #}) \markup \box "Top-level markup" \score { << \new ChordNames \with { majorSevenSymbol = \markup "majorSevenSymbol" } \chordmode { c1:maj7 } \new Staff { \tempo \markup "MetronomeMark" \mark \markup \smaller "RehearsalMark" \once \override TupletNumber.text = \markup "TupletNumber" \tuplet 3/2 { \once \override NoteHead.stencil = #ly:text-interface::print \once \override NoteHead.text = \markup \lower #0.5 "NoteHead" c''8^\markup \italic "TextScript" a'\finger \markup \text "Fingering" \once \override Rest.stencil = #(lambda (grob) (grob-interpret-markup grob #{ \markup "Rest" #})) r } } \new Lyrics \lyricmode { \markup \smallCaps "LyricText" 1 } \new Dynamics { s1\dyn } >> }
参照
記譜法リファレンス: テキストをフォーマットする, テキスト スクリプト, テキスト スパナ, テキスト マーク, 独立したテキスト, 運指の指示, 声楽で共通の記譜法, 和音を表示する, 新たな強弱記号, 強弱記号, バルーン ヘルプ
Essay on automated music engraving: Flexible architecture
コード断片集: Text
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < テキスト オブジェクトの概要 ] | [ 上へ : テキスト ] | [ テキスト スクリプト > ] |
1.8.1 テキストを記述する
このセクションでは、楽譜にテキストを付け加えるいくつかの方法を紹介します。
Note: アクセント付きのテキストや特殊なテキスト (他の言語の文字など) を記述するには、単純にその文字を直接 LilyPond ファイルに挿入します。ファイルは UTF-8 で保存しなければなりません。更なる情報は テキスト エンコーディング を参照してください。
テキスト スクリプト | ||
テキスト スパナ | ||
テキスト マーク | ||
独立したテキスト |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < テキストを記述する ] | [ 上へ : テキストを記述する ] | [ テキスト スパナ > ] |
テキスト スクリプト
以下の例で示すように、シンプルな “引用符で囲まれたテキスト” 指示を楽譜に付け加えることができます。そのような指示は、向きと配置 で説明する構文を用いて、手動で譜の上または下に配置することができます。
\relative { a'8^"pizz." g f e a4-"scherz." f }
この構文は実際には短縮記法です。テキストをフォーマットする で記述されているように、\markup
ブロックを用いて明示的に、より複雑なテキスト フォーマットを音符に付け加えることができます。
\relative { a'8^\markup { \italic pizz. } g f e a4_\markup { \tiny scherz. \bold molto } f }
デフォルトでは、テキスト指示は音符の間隔に影響を与えません。しかしながら、テキスト指示の幅を考慮に入れることもできます: 以下の例では、最初のテキスト文字列は音符の間隔に影響を与えていませんが、2 番目のテキスト文字列は影響を与えています。
\relative { a'8^"pizz." g f e \textLengthOn a4_"scherzando" f }
テキスト スクリプトだけでなく、アーティキュレーションを音符に付けることもできます。更なる情報は アーティキュレーションと装飾 を参照してください。
テキスト スクリプトとアーティキュレーションの順序についての更なる情報は オブジェクトの配置 を参照してください。
定義済みコマンド
\textLengthOn
,
\textLengthOff
参照
学習マニュアル: オブジェクトの配置
記譜法リファレンス: テキストをフォーマットする, 向きと配置, アーティキュレーションと装飾
コード断片集: Text
内部リファレンス: TextScript
既知の問題と警告
テキスト スクリプトと歌詞がマージンに収まることを保証するためのチェックは計算量を増やします。処理速度を上げる必要がある場合は、以下を用います:
\override Score.PaperColumn.keep-inside-line = ##f
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < テキスト スクリプト ] | [ 上へ : テキストを記述する ] | [ テキスト マーク > ] |
テキスト スパナ
いくつかの演奏指示 – 例えば rallentando や accelerando – は、テキストとして記述され、点線で複数の音符の上に伸ばされます。そのようなオブジェクト – “スパナ” と呼ばれます – は、以下の構文を用いることで、ある音符から他の音符までの範囲に作成することができます:
\relative { \override TextSpanner.bound-details.left.text = "rit." b'1\startTextSpan e,\stopTextSpan }
譜刻される文字列はオブジェクト プロパティを通じてセットされます。デフォルトでは文字列はイタリック体で譜刻されます。しかしながら、テキストをフォーマットする で記述されているように、\markup
ブロックを用いることで他の書体にすることができます。
\relative { \override TextSpanner.bound-details.left.text = \markup { \upright "rit." } b'1\startTextSpan c e,\stopTextSpan }
テキスト文字列と同様に、線のスタイルもオブジェクト プロパティとして定義することができます。線スタイルの構文は ライン スタイル で記述されています。
定義済みコマンド
\textSpannerUp
,
\textSpannerDown
,
\textSpannerNeutral
既知の問題と警告
LilyPond が処理できるテキスト スパナは 1 ボイスにつき、1 つだけです。
Selected Snippets
強弱記号のテキスト スパナ音楽関数
カスタム テキスト スパナを定義することができ、ヘアピンやテキスト
クレッシェンドと同時に用いることができます。\<
と \>
はデフォルトでヘアピンを作り出し、\cresc
などはデフォルトでテキスト スパナを作り出します。
% Some sample text dynamic spanners, to be used as postfix operators crpoco = #(make-music 'CrescendoEvent 'span-direction START 'span-type 'text 'span-text "cresc. poco a poco") \relative c' { c4\cresc d4 e4 f4 | g4 a4\! b4\crpoco c4 | c4 d4 e4 f4 | g4 a4\! b4\< c4 | g4\dim a4 b4\decresc c4\! }
強弱記号のカスタム テキスト スパナ後置関数
これは、クレッシェンドのテキスト スパナをカスタマイズする後置関数です。スパナは小節の最初の音符から始めるべきです。-\mycresc
の記法を使用しなければ、スパナの開始点が次の音符になってしまいます。
% Two functions for (de)crescendo spanners where you can explicitly % give the spanner text. mycresc = #(define-music-function (mymarkup) (markup?) (make-music 'CrescendoEvent 'span-direction START 'span-type 'text 'span-text mymarkup)) mydecresc = #(define-music-function (mymarkup) (markup?) (make-music 'DecrescendoEvent 'span-direction START 'span-type 'text 'span-text mymarkup)) \relative c' { c4-\mycresc "custom cresc" c4 c4 c4 | c4 c4 c4 c4 | c4-\mydecresc "custom decresc" c4 c4 c4 | c4 c4\! c4 c4 }
参照
記譜法リファレンス: ライン スタイル, 強弱記号, テキストをフォーマットする
コード断片集: Text, Expressive marks
内部リファレンス: TextSpanner
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < テキスト スパナ ] | [ 上へ : テキストを記述する ] | [ 独立したテキスト > ] |
テキスト マーク
リハーサル記号 で記述されている構文を用いて、さまざまなテキスト要素を楽譜に付け加えることができます:
\relative { \mark "Verse" c'2 g' \bar "||" \mark "Chorus" g2 c, \bar "|." }
この構文を用いることで、任意のテキストを小節線上に配置することが可能です。テキストをフォーマットする で記述されているように、\markup
ブロックを用いてより複雑なテキスト フォーマットを付け加えることもできます:
\relative { <c' e>1 \mark \markup { \italic { colla parte } } <d f>2 <e g> <c f aes>1 }
さらに、マークアップ内部での音楽記譜法 で説明されているように、この構文で適切なシンボル名を指定することによって、特殊な記号 – コーダ、セーニョ、フェルマータなど – を譜刻することが可能です:
\relative { <bes' f>2 <aes d> \mark \markup { \musicglyph "scripts.ufermata" } <e g>1 }
このようなオブジェクトを配置できる位置は、楽譜の最上段の譜の上だけです。オブジェクトを小節の終わりで指定するか、途中で指定するか次第で、小節線の上に配置されたり、音符の間に配置されたりします。改行位置で指定した場合、そのリハーサル記号は次の行の先頭に譜刻されます。
\relative c'' { \mark "Allegro" c1 c \mark "assai" \break c c }
定義済みコマンド
\markLengthOn
,
\markLengthOff
Selected Snippets
リハーサル記号を全ての譜の上に表示する
リハーサル記号は通常、一番上にある譜の上に表示されますが、全ての譜の上に表示することもできます。
\score { << \new Staff { \mark \default c''1 \textMark "molto" c'' } \new Staff { \mark \default c'1 \textMark "molto" c' } >> \layout { \context { \Score \remove Mark_engraver \remove Text_mark_engraver \remove Staff_collecting_engraver } \context { \Staff \consists Mark_engraver \consists Text_mark_engraver \consists Staff_collecting_engraver } } }
参照
記譜法リファレンス: リハーサル記号, テキストをフォーマットする, マークアップ内部での音楽記譜法, Emmentaler フォント.
コード断片集: Text
内部リファレンス: MarkEvent, Mark_engraver, RehearsalMark
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < テキスト マーク ] | [ 上へ : テキストを記述する ] | [ テキストをフォーマットする > ] |
独立したテキスト
\markup
ブロックはそれ自体で、すべての \score
ブロックの外側に、“最上位レベルの表記” として存在することができます。この構文は ファイル構造 で記述されています。
\markup { Tomorrow, and tomorrow, and tomorrow... }
これによりテキストを音楽から分離して譜刻することが可能になります。これは、ブックの中にある複数のスコア で記述されているように、入力ファイルが複数の楽曲を保持している場合に特に有用です。
\score { c'1 } \markup { Tomorrow, and tomorrow, and tomorrow... } \score { c'1 }
独立したテキスト ブロックは複数のページに広がることができます。これにより、テキスト ドキュメントやブック全体を LilyPond の中に譜刻することが可能になります。この機能と、この機能の構文は 複数ページにわたるマークアップ で記述されています。
定義済みコマンド
\markup
,
\markuplist
Selected Snippets
独立したテキストの 2 段組み
\markup
コマンドを用いて、独立したテキストを複数段組みにすることができます:
\markup { \fill-line { \hspace #1 \column { \line { O sacrum convivium } \line { in quo Christus sumitur, } \line { recolitur memoria passionis ejus, } \line { mens impletur gratia, } \line { futurae gloriae nobis pignus datur. } \line { Amen. } } \hspace #2 \column \italic { \line { O sacred feast } \line { in which Christ is received, } \line { the memory of His Passion is renewed, } \line { the mind is filled with grace, } \line { and a pledge of future glory is given to us. } \line { Amen. } } \hspace #1 } }
参照
記譜法リファレンス: テキストをフォーマットする, ファイル構造, ブックの中にある複数のスコア, 複数ページにわたるマークアップ
コード断片集: Text
内部リファレンス: TextScript
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 独立したテキスト ] | [ 上へ : テキスト ] | [ テキスト マークアップの導入部 > ] |
1.8.2 テキストをフォーマットする
このセクションでは、\markup
モード特有の構文を用いた基本的かつ高度なテキスト フォーマットについて説明します。
テキスト マークアップの導入部 | ||
フォントとフォント サイズを選択する | ||
テキスト揃え | ||
マークアップ内部でのグラフィック記譜法 | ||
マークアップ内部での音楽記譜法 | ||
複数ページにわたるマークアップ |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < テキストをフォーマットする ] | [ 上へ : テキストをフォーマットする ] | [ フォントとフォント サイズを選択する > ] |
テキスト マークアップの導入部
\markup
ブロックは “マークアップ モード” と呼ばれる拡張可能な構文でテキストを譜刻するために用いられます。このようなブロックは、テキスト オブジェクトの概要 で説明されているように、どこにでも用いることができます。
マークアップ構文は LilyPond の通常の構文と同様です:
\markup
表記は波括弧 { … }
で囲まれます。単語 1 つが最小の表記と見なされ、その場合は波括弧で囲む必要はありません。
シンプルな “引用符で囲まれたテキスト” 指示とは異なり、\markup
ブロックは、バックスラッシュ \
を用いて挿入されるネストされた表記やマークアップ コマンドを保持することができます。そのようなコマンドは直後の表記にのみ影響を与えます。
\relative { a'1-\markup intenso a2^\markup { poco \italic più forte } c e1 d2_\markup { \italic "string. assai" } e b1^\markup { \bold { molto \italic agitato } } c }
また、\markup
ブロックは引用符で囲まれたテキスト文字列を保持することがあります。そのような文字列は最小のテキスト表記として扱われます。そのため、引用符で囲まれたマークアップ コマンドや特殊文字
(\
や #
など) はテキストのフォーマットに影響を与えず、そのまま (逐語的に) 譜刻されます。ダブル クォーテーション自体は、それ自体の前にバックスラッシュを置くことによって譜刻されます。
\relative { a'1^"\italic markup..." a_\markup { \italic "... prints \"italic\" letters!" } a a }
表記をばらばらなものとして扱うには、単語のリストをダブル クォーテーションで囲むか、前にコマンドを置く必要があります。マークアップ表記の定義の仕方は、表記の配置のされ方
– 垂直に中央揃えして積み重ねられる、水平に並べられる –
に影響を与えます。以下の例では、2 番目の \markup
表記は 1 番目の表記と同じように扱われています:
\relative c'' { c1^\markup { \center-column { a bbb c } } c1^\markup { \center-column { a { bbb c } } } c1^\markup { \center-column { a \line { bbb c } } } c1^\markup { \center-column { a "bbb c" } } }
マークアップを変数に格納することができます。そのような変数は直接音符にくっつけることができます:
allegro = \markup { \bold \large Allegro } { d''8.^\allegro d'16 d'4 r2 }
\markup コマンドの一覧 に
\markup
特有のコマンドの徹底したリストがあります。これらのコマンドの内部動作と、新たに実装する方法は、
Markup functions で説明されています。
参照
記譜法リファレンス: テキスト オブジェクトの概要, \markup コマンドの一覧
拡張: Markup functions
インストールされているファイル: ‘scm/markup.scm’
コード断片集: Text
既知の問題と警告
マークアップ モードの構文エラー メッセージは混乱しやすいです。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < テキスト マークアップの導入部 ] | [ 上へ : テキストをフォーマットする ] | [ テキスト揃え > ] |
フォントとフォント サイズを選択する
マークアップ モードでは、基本的なフォント切り替えがサポートされています:
\relative { d''1^\markup { \bold { Più mosso } \italic { non troppo \underline Vivo } } r2 r4 r8 d,_\markup { \italic quasi \smallCaps Tromba } f1 d2 r }
フォント サイズをグローバル譜サイズとの相対値で変更する方法はいくつかあります。
フォント サイズをあらかじめ定義されているサイズに設定することができます:
\relative b' { b1_\markup { \huge Sinfonia } b1^\markup { \teeny da } b1-\markup { \normalsize camera } }
フォント サイズを前の値との相対関係で設定することができます:
\relative b' { b1_\markup { \larger Sinfonia } b1^\markup { \smaller da } b1-\markup { \magnify #0.6 camera } }
フォント サイズをグローバル譜サイズによって設定されている値で拡大あるいは縮小させることができます:
\relative b' { b1_\markup { \fontsize #-2 Sinfonia } b1^\markup { \fontsize #1 da } b1-\markup { \fontsize #3 camera } }
さらに、フォント サイズをグローバル譜サイズとは無関係に、固定ポイント サイズに設定することができます:
\relative b' { b1_\markup { \abs-fontsize #20 Sinfonia } b1^\markup { \abs-fontsize #8 da } b1-\markup { \abs-fontsize #14 camera } }
テキストにスペースが含まれる場合、各スペースのサイズが他の文字のサイズに適したものになるので、引用符の内側にすべて置くのがベストです。
\markup \fontsize #6 \bold { Sinfonia da camera } \markup \fontsize #6 \bold { "Sinfonia da camera" }
テキストを下付き文字あるいは上付き文字として譜刻することができます。デフォルトでは、それらは小さなサイズで譜刻されますが、通常サイズにすることもできます:
\markup { \column { \line { 1 \super st movement } \line { 1 \normal-size-super st movement \sub { (part two) } } } }
マークアップ モードは代わりのフォント ファミリを選択するための簡単な方法を提供します。他を指定しないかぎり、デフォルトの Serif フォント – ローマン体 – が自動的に選択されます。以下の例の最後の行では、最初の単語と 2 番目の単語はまったく同じです。
\markup { \column { \line { Act \number 1 } \line { \sans { Scene I. } } \line { \typewriter { Verona. An open place. } } \line { Enter \roman Valentine and Proteus. } } }
新たな強弱記号 や 手動の繰り返し記号 で言及されているように、番号や強弱記号など特定の項目に用いられるフォント ファミリの中にはすべての文字を提供しないものもあります。
フォント切り替えやフォーマット コマンドの中には、単語の中で使用されると望まない空白を作り出すものがあります。これはテキスト要素をつなげることによって容易に解決できます:
\markup { \column { \line { \concat { 1 \super st } movement } \line { \concat { \dynamic p , } \italic { con dolce espressione } } } }
フォント に フォント切り換えとフォントのカスタム コマンドの徹底したリストがあります。
フォント で説明されているように、カスタム フォント セットを定義することも可能です。
定義済みコマンド
\teeny
,
\tiny
,
\small
,
\normalsize
,
\large
,
\huge
,
\smaller
,
\larger
参照
記譜法リファレンス: フォント, 新たな強弱記号, 手動の繰り返し記号, フォント
インストールされているファイル: ‘scm/define-markup-commands.scm’
コード断片集: Text
内部リファレンス: TextScript
既知の問題と警告
フォントのサイズ コマンド \teeny
, \tiny
, \small
,
\normalsize
, \large
それに \huge
を用いると、\fontsize
を用いた場合と比較して、つじつまの合わない行間になります。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < フォントとフォント サイズを選択する ] | [ 上へ : テキストをフォーマットする ] | [ マークアップ内部でのグラフィック記譜法 > ] |
テキスト揃え
このサブセクションでは、マークアップ モードのテキストを配置する方法について説明します。 オブジェクトを移動させる で記述されている構文を用いて、マークアップ オブジェクト全体を移動させることも可能です。
マークアップ オブジェクトの揃え方はいくつかあります。デフォルトでは、テキスト指示はそのテキストの左端で揃えられます: 以下の例では、最初のマークアップと 2 番目のマークアップの揃えられ方はまったく同じです。
\relative { d''1-\markup { poco } f d-\markup { \left-align poco } f d-\markup { \center-align { poco } } f d-\markup { \right-align poco } }
水平方向の揃え方は、数値を使って、微調整することができます:
\relative { a'1-\markup { \halign #-1 poco } e' a,-\markup { \halign #0 poco } e' a,-\markup { \halign #0.5 poco } e' a,-\markup { \halign #2 poco } }
オブジェクトの中には揃えるための機能をそれ自身で持っているものがあり、それらは上記のコマンドでは影響を受けません。テキスト マーク の中の例で示されているように、そのようなマークアップ オブジェクト全体を移動させることが可能です。
垂直方向に揃える方法はもう少し複雑です。上で述べたようにマークアップ オブジェクト全体を移動させることが可能ですが、マークアップ ブロックの中にある特定の要素を移動させることも可能です。 特定要素だけをを移動させるには、移動させる要素の前に アンカ ポイント – もう 1 つのオブジェクト要素、あるいは不可視のオブジェクト要素 – を置く必要があります。以下の例では 2 つのケースを示しています。最後のマークアップはアンカ ポイントを持たず、それゆえ移動されません。
\relative { d'2^\markup { Acte I \raise #2 { Scène 1 } } a' g_\markup { \null \lower #4 \bold { Très modéré } } a d,^\markup { \raise #4 \italic { Une forêt. } } a'4 a g2 a }
コマンドの中にはマークアップ モードの中にあるテキスト オブジェクトの水平方向と垂直方向の両方の揃え方に影響を与えることができるものもあります。そのようなコマンドで移動させるオブジェクトの前にはアンカ ポイントを置く必要があります:
\relative { d'2^\markup { Acte I \translate #'(-1 . 2) "Scène 1" } a' g_\markup { \null \general-align #Y #3.2 \bold "Très modéré" } a d,^\markup { \null \translate-scaled #'(-1 . 2) \teeny "Une forêt." } a'4 a g2 a }
マークアップ オブジェクトに何行かのテキストが含まれる場合もあります。以下の例では、それぞれの要素あるいは表記はそれ自体の行に配置され、左揃えあるいは中央揃えされています:
\markup { \column { a "b c" \line { d e f } } \hspace #10 \center-column { a "b c" \line { d e f } } }
同様に、要素あるいは表記のリストの広がりが水平の行幅いっぱいを占めることがあります (要素が 1 つだけの場合、その要素はページの中央に揃えられます)。さらに、そのような表記は複数行にわたるテキストや他の任意の表記を含むことができます:
\markup { \fill-line { \line { William S. Gilbert } \center-column { \huge \smallCaps "The Mikado" or \smallCaps "The Town of Titipu" } \line { Sir Arthur Sullivan } } } \markup { \fill-line { 1885 } }
要素は line-width
プロパティを上書きすることにより、指定された幅を満たすように広げることができます。デフォルトではこれは行全体を示す #f
にセットされています。
\markup { \column { \fill-line { left center right } \null \override #'(line-width . 30) \fill-line { left center right } } }
さらに、長いテキスト指示を自動的に行幅に合わせて折り返すことができます。そのようなテキスト指示は、以下の例で示すように、左揃えされるか両端揃えされます。
\markup { \column { \line \smallCaps { La vida breve } \line \bold { Acto I } \wordwrap \italic { (La escena representa el corral de una casa de gitanos en el Albaicín de Granada. Al fondo una puerta por la que se ve el negro interior de una Fragua, iluminado por los rojos resplandores del fuego.) } \hspace #0 \line \bold { Acto II } \override #'(line-width . 50) \justify \italic { (Calle de Granada. Fachada de la casa de Carmela y su hermano Manuel con grandes ventanas abiertas a través de las que se ve el patio donde se celebra una alegre fiesta) } } }
Align にテキスト揃えコマンドの徹底したリストがあります。
参照
学習マニュアル: オブジェクトを移動させる
インストールされているファイル: ‘scm/define-markup-commands.scm’.
コード断片集: Text
内部リファレンス: TextScript
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < テキスト揃え ] | [ 上へ : テキストをフォーマットする ] | [ マークアップ内部での音楽記譜法 > ] |
マークアップ内部でのグラフィック記譜法
マークアップ コマンドを用いて、さまざまなグラフィック オブジェクトを楽譜に付け加えることができます。
以下の例で示すように、マークアップ コマンドの中にはテキスト要素をグラフィックスで飾り付けることができるものがあります。
\markup \fill-line { \center-column { \circle Jack \box "in the box" \null \line { Erik Satie \hspace #3 \bracket "1866 - 1925" } \null \rounded-box \bold Prelude } }
コマンドの中にはテキストの周りのパディングを増やすことを必要とするものもあります。パティングの増加は Align で徹底的に記述されているマークアップ コマンドを用いて達成できます。
\markup \fill-line { \center-column { \box "Charles Ives (1874 - 1954)" \null \box \pad-markup #2 "THE UNANSWERED QUESTION" \box \pad-x #8 "A Cosmic Landscape" \null } } \markup \column { \line { \hspace #10 \box \pad-to-box #'(-5 . 20) #'(0 . 5) \bold "Largo to Presto" } \pad-around #3 "String quartet keeps very even time, Flute quartet keeps very uneven time." }
テキストを持たないグラフィック要素やシンボルを譜刻することもできます。他のマークアップ表記と同様に、そのようなオブジェクトも組み合わせることができます。
\markup { \combine \draw-circle #4 #0.4 ##f \filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1 \hspace #5 \center-column { \triangle ##t \combine \draw-line #'(0 . 4) \arrow-head #Y #DOWN ##f } }
高度なグラフィック機能として、外部画像ファイルを Encapsulated PostScript フォーマット (eps) に変換してインクルードする機能や、ネイティブの PostScript コードを用いてグラフィックを直接に入力ファイルへ埋め込む機能があります。このような機能を使う場合、以下で示すように、描画サイズを明示的に指定することを推奨します:
c'1^\markup { \combine \epsfile #X #10 "./context-example.eps" \with-dimensions #'(0 . 6) #'(0 . 10) \postscript " -2 3 translate 2.7 2 scale newpath 2 -1 moveto 4 -2 4 1 1 arct 4 2 3 3 1 arct 0 4 0 3 1 arct 0 0 1 -1 1 arct closepath stroke" } c'
Graphic にグラフィック特有のコマンドの徹底したリストがあります。
参照
記譜法リファレンス: Align, 寸法, 編集者の注釈, Graphic
インストールされているファイル: ‘scm/define-markup-commands.scm’, ‘scm/stencil.scm’
コード断片集: Text
内部リファレンス: TextScript
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < マークアップ内部でのグラフィック記譜法 ] | [ 上へ : テキストをフォーマットする ] | [ 複数ページにわたるマークアップ > ] |
マークアップ内部での音楽記譜法
マークアップ オブジェクトの内部で、さまざまな音楽記譜要素を楽譜に付け加えることができます。
音符と臨時記号はマークアップ コマンドを用いて入力することができます:
a'2 a'^\markup { \note {4} #1 = \note-by-number #1 #1 #1.5 } b'1_\markup { \natural \semiflat \flat \sesquiflat \doubleflat } \glissando a'1_\markup { \natural \semisharp \sharp \sesquisharp \doublesharp } \glissando b'
他の記譜オブジェクトもマークアップ モードの中で譜刻することができます:
\relative { g1 bes ees\finger \markup \tied-lyric "4~1" fis_\markup { \dynamic rf } bes^\markup { \beam #8 #0.1 #0.5 } cis d-\markup { \markalphabet #8 \markletter #8 } }
より一般的には、以下で示すように、使用可能な音楽シンボルはすべてマークアップ オブジェクトに含めることができます。Emmentaler フォント に、音楽シンボルと音楽シンボル名の徹底したリストがあります。
\relative { c''2 c'^\markup { \musicglyph "eight" } c,4 c,8._\markup { \musicglyph "clefs.G_change" } c16 c2^\markup { \musicglyph "timesig.neomensural94" } }
テキストではない図柄を譜刻するもう 1 つの方法が フォントの説明 で記述されています。この方法はさまざまなサイズの波括弧を譜刻する場合に有用です。
さらに、マークアップ モードは特定の楽器のためのダイアグラムをサポートします:
\relative { c''1^\markup { \fret-diagram-terse "x;x;o;2;3;2;" } c^\markup { \harp-pedal "^-v|--ov^" } c c^\markup { \combine \musicglyph "accordion.discant" \combine \raise #0.5 \musicglyph "accordion.dot" \raise #1.5 \musicglyph "accordion.dot" } }
そのようなダイアグラムは Instrument Specific Markup でドキュメント化されています。
楽譜全体でさえもマークアップ オブジェクト内部にネストさせることができます:
\relative { c'4 d^\markup { \score { \relative { c'4 d e f } } } e f | c d e f }
Music に、音楽記譜法関連のコマンドの徹底したリストがあります。
参照
記譜法リファレンス: Music, Emmentaler フォント, フォントの説明
インストールされているファイル: ‘scm/define-markup-commands.scm’, ‘scm/fret-diagrams.scm’, ‘scm/harp-pedals.scm’
コード断片集: Text
内部リファレンス: TextScript
既知の問題と警告
マークアップ オブジェクト内に出現する \score
の縦方向のスペーシングは
baseline-skip
によって調整されます。\paper
による設定は全て無視されます。
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < マークアップ内部での音楽記譜法 ] | [ 上へ : テキストをフォーマットする ] | [ フォント > ] |
複数ページにわたるマークアップ
標準のマークアップ オブジェクトは分割することができません。しかしながら、 ある特定の構文は複数ページにわたるテキストを入力することを可能にします:
\markuplist { \justified-lines { 両端揃えされた非常に長いテキスト。 ... } \wordwrap-lines { もう 1 つの非常に長いテキスト。 ... } ... }
この構文はマークアップのリストを受け付けます。受け付けるものは以下の通りです:
- マークアップ リスト コマンドの結果
- マークアップのリスト
- マークアップ リストのリスト
\markuplist コマンドの一覧 に、マークアップ リスト コマンドの徹底したリストがあります。
参照
記譜法リファレンス: \markuplist コマンドの一覧
拡張: New markup list command definition
コード断片集: Text
インストールされているファイル: ‘scm/define-markup-commands.scm’
内部リファレンス: TextScript
定義済みコマンド
\markuplist
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 複数ページにわたるマークアップ ] | [ 上へ : テキスト ] | [ フォントの説明 > ] |
1.8.3 フォント
このセクションでは、フォントを扱う方法と、楽譜の中でフォントを変更する方法について説明します。
フォントの説明 | ||
個々に登録するフォント | ||
ドキュメント全体のフォント |
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < フォント ] | [ 上へ : フォント ] | [ 個々に登録するフォント > ] |
フォントの説明
フォントはいくつかのライブラリを通じて扱われます。FontConfig は利用可能なフォントを検出するために使用されます。選択されたフォントは Pango を用いて描かれます。
オペレーティング システムに既にインストールされているフォントに加えて、次のコマンドを使用して、FontConfig によって検出された (したがって LilyPond スコアで利用できる) セットに追加のフォントを追加できます:
#(ly:font-config-add-font "path/to/font-file.otf") #(ly:font-config-add-directory "path/to/directory/")
これらのコマンドはどちらも、絶対パスまたは相対パスのいずれかを受け入れます。これにより、関連するフォントファイルをソースコードとともにコピーするだけで、任意のシステムで楽譜をコンパイルできます。
検出されたフォントは、個々に登録するフォント および ドキュメント全体のフォント
で説明されている方法を使用して選択する必要があります。使用可能なフォントの完全なリストをコンソールログに出力するときに、
#(ly:font-config-display-fonts)
コマンドを使用して、実際に検出されたフォントとその名前を確認することができます
(これらはファイル名自体とは異なる場合があるため)。
音楽記譜フォントはいくつかのファミリに分類された特殊な図柄のセットと言うことができます。以下の構文により、LilyPond のさまざまな Feta
グリフをマークアップ モードの中で直接使用することが可能になります:
a'1^\markup { \vcenter { \override #'(font-encoding . fetaBraces) \lookup "brace120" \override #'(font-encoding . fetaText) \column { 1 3 sf } \override #'(font-encoding . fetaMusic) \lookup "noteheads.s0petrucci" } }
しかしながら、これらの図柄はすべて
– fetaBraces
で保持されているさまざまサイズの波括弧を除いて –
は、マークアップ内部での音楽記譜法 で記述されている、もっと簡単な構文を用いて利用することができます。
fetaBraces
に保持されている図柄を使う場合、波括弧のサイズは図柄名の一部となっている任意の数値によって指定されます。0
から 575
までの整数すべてを指定でき、0
は最小の波括弧を提供します。最適な値はトライ&エラーで決定する必要があります。これらの図柄はすべて左波括弧です。右波括弧は回転によって得ることができます
– オブジェクトを回転させる を参照してください。
3 ファミリのテキスト フォントが利用可能になっています:
- roman (serif) フォントのデフォルトは LilyPond Serif (TeX Gyre Schola のエイリアス)です。
- sans フォントのデフォルトは LilyPond Sans Serif (TeX Gyre Heros のエイリアス)です。
- typewriter (monospaced) フォントのデフォルトは LilyPond Monospace (TeX Gyre Cursor のエイリアス)です。
roman (serif) フォント、 sans フォント、typewriter フォントです。
svg
バックエンドでは:
ファミリ | デフォルト フォント |
---|---|
roman | serif |
sans | sans-serif |
typewriter | monospace |
serif
, sans-serif
, and monospace
は、SVG や CSS の仕様における generic-family
です。
他のバックエンドでは:
ファミリ | デフォルト フォント (エイリアス) | エイリアス定義のリスト |
---|---|---|
roman | LilyPond Serif | TeX Gyre Schola, C059, Century SchoolBook URW, Century Schoolbook L, DejaVu Serif, ..., serif |
sans | LilyPond Sans Serif | TeX Gyre Heros, Nimbus Sans, Nimbus Sans L, DejaVu Sans, ..., sans-serif |
typewriter | LilyPond Monospace | TeX Gyre Cursor, Nimbus Mono PS, Nimbus Mono, Nimbus Mono L, DejaVu Sans Mono, ..., monospace |
LilyPond Serif
, LilyPond Sans Serif
,
LilyPond Monospace
は、LilyPond 専用の FontConfig 設定ファイル
00-lilypond-fonts.conf
に定義されたフォント エイリアスです。ある文字がリストの最初にあるフォントに存在しない場合、その文字を持つリストの次のフォントが代わりに使用されます。エイリアス定義の詳細については、インストール ディレクトリ中の
00-lilypond-fonts.conf
を参照してください。
それぞれのファミリには異なる形状とセットのフォントが保持されています。以下の例は、ファミリ、形状、セットそれにサイズを変更する様子を示しています。デフォルト サイズから変更する場合、font-size
に提供する値が必要となります。
\override Score.RehearsalMark.font-family = #'typewriter \mark \markup "Ouverture" \override Voice.TextScript.font-shape = #'italic \override Voice.TextScript.font-series = #'bold d''2.^\markup "Allegro" \override Voice.TextScript.font-size = #-3 c''4^smaller
同様の構文をマークアップ モードの中で使用することができます。しかしながら、マークアップ モードの中では、フォントとフォント サイズを選択する で説明されている、もっと簡単な構文を使用するほうが良いでしょう:
\markup { \column { \line { \override #'((font-shape . italic) (font-size . 4)) Idomeneo, } \line { \override #'(font-family . typewriter) { \override #'(font-series . bold) re di } \override #'(font-family . sans) Creta } } }
OpenType フォントを使用している場合、フォント機能を使用することができます。OpenType フォントの script と language は指定できません。注: 全ての OpenType フォントが機能をサポートしているとは限りません。使用するフォントに無い機能を使用しようとした場合、機能は単純に無視されます。
% 真のスモール キャピタル \markup { Normal Style: Hello HELLO } \markup { \caps { Small Caps: Hello } } \markup { \override #'(font-features . ("smcp")) { True Small Caps: Hello } } % 数字スタイル \markup { Normal Number Style: 0123456789 } \markup { \override #'(font-features . ("onum")) { Old Number Style: 0123456789 } } % 代替スタイル \markup { \override #'(font-features . ("salt 0")) { Stylistic Alternates 0: εφπρθ } } \markup { \override #'(font-features . ("salt 1")) { Stylistic Alternates 1: εφπρθ } } % 機能の組み合わせ \markup { \override #'(font-features . ("onum" "smcp" "salt 1")) { Multiple features: Hello 0123456789 εφπρθ } }
OpenType 機能の完全な一覧は以下を参照してください: https://www.microsoft.com/typography/otspec/featurelist.htm
OpenType フォントの機能を識別するには以下を参照してください: https://lists.gnu.org/archive/html/lilypond-devel/2017-08/msg00004.html
あらかじめ構成されているフォント間で切り替えを行う方が簡単ですが、他のフォントを使用することも可能です。他のフォントを使用する方法は以下のセクションで説明されています: 個々に登録するフォント と ドキュメント全体のフォント。
参照
記譜法リファレンス: Emmentaler フォント, マークアップ内部での音楽記譜法, オブジェクトを回転させる, フォントとフォント サイズを選択する, フォント
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < フォントの説明 ] | [ 上へ : フォント ] | [ ドキュメント全体のフォント > ] |
個々に登録するフォント
以下の構文を用いることで、オペレーティング システムにインストールされていて、FontConfig に認識されている任意のフォントを楽譜の中で使用することができます:
\override Staff.TimeSignature.font-name = "Bitstream Charter" \override Staff.TimeSignature.font-size = #2 \time 3/4 a'1_\markup { \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold") { Vera Oblique Bold } }
font-name はカンマ区切りの ‘フォント’ のリストと、スペース区切りの ‘スタイル’ のリストを記述できます。リスト中の ‘フォント’ がインストールされていて、要求されたグリフを含んでいれば、それが使われます。そうでないなら代わりにリストの 次 のフォントが使われます。
lilypond を以下のオプションを付けて実行するとオペレーティング システムで利用可能なすべてのフォントのリストを表示します:
lilypond -dshow-available-fonts
参照
記譜法リファレンス: フォントの説明, ドキュメント全体のフォント
コード断片集: Text
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 専門的な記譜法 >> ] |
[ < 個々に登録するフォント ] | [ 上へ : フォント ] | [ 専門的な記譜法 > ] |
ドキュメント全体のフォント
以下の例で示す方法に従ってフォント ファミリを指定することにより、roman, sans それに typewriter フォント ファミリとして使用されるデフォルト フォントを変更することができます。この例ではグローバル譜サイズにセットされた値で自動的にフォントのサイズを伸縮しています。個々に登録するフォント のように、カンマ区切りの ‘フォント’ のリストを記述できます。しかし、フォント ‘スタイル’ は記述できません。フォントについての説明は、フォントの説明 を参照してください。
\paper { #(define fonts (make-pango-font-tree "Linux Libertine O" "Nimbus Sans, Nimbus Sans L" "DejaVu Sans Mono" (/ staff-height pt 20))) } \relative c'{ c1-\markup { roman, \sans sans, \typewriter typewriter. } }
注: make-pango-font-tree
は記譜フォントをデフォルトの Emmentaler にリセットします。
次の構文を使用することで、他をデフォルトの値のままにしつつ、特定のフォントを変更することができます。次の例は、上の make-pango-font-tree
の例と同じ結果になります。make-pango-font-tree
と同様に、roman
,
sans
, typewriter
カテゴリに対してコンマ区切りの‘フォント’のリストを指定します。譜のサイズをデフォルトの 20 pt から変更する必要がない場合、#:factor (/ staff-height pt 20)
は不要です。
\paper { #(define fonts (set-global-fonts #:roman "Linux Libertine O" #:sans "Nimbus Sans, Nimbus Sans L" #:typewriter "DejaVu Sans Mono" #:factor (/ staff-height pt 20) ; 譜サイズを変更しない場合は不要 )) }
記譜フォントを指定することもできます。次の例は、記譜フォントをデフォルトと同様に設定しているため、上の例と同じ結果になります。 詳しい情報は、記譜フォントを置換する を参照してください。
\paper { #(define fonts (set-global-fonts #:music "emmentaler" ; デフォルト #:brace "emmentaler" ; デフォルト #:roman "Linux Libertine O" #:sans "Nimbus Sans, Nimbus Sans L" #:typewriter "DejaVu Sans Mono" #:factor (/ staff-height pt 20) ; 譜サイズを変更しない場合は不要 )) }
注: set-global-fonts
を呼び出すたびに、記譜フォントとテキスト
フォントの両方を完全にリセットします。あるカテゴリが未指定であった場合、そのカテゴリのデフォルト値が使用されます。また、set-global-fonts
は、その後の全ての \book
ブロックに影響します。\book
ブロックが複数あり、ブック毎に異なるフォントを使用したい場合、set-global-fonts
を以下のように複数回呼び出します:
\paper { #(define fonts (set-global-fonts … )) } \book { … } \paper { #(define fonts (set-global-fonts … )) } \book { … }
参照
記譜法リファレンス: フォントの説明, 個々に登録するフォント, フォントとフォント サイズを選択する, フォント, 記譜フォントを置換する
[ << 音楽記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ドキュメント全体のフォント ] | [ 上へ : Top ] | [ 声楽 > ] |
2. 専門的な記譜法
この章では、特定のタイプの楽器やスタイル向けの音楽記譜を作成するための方法について説明します。
2.1 声楽 | ||
2.2 キーボードと他の複数譜の楽器 | ||
2.3 フレットの無い弦楽器 | ||
2.4 フレットのある弦楽器 | ||
2.5 打楽器 | ||
2.6 管楽器 | ||
2.7 和音記譜法 | ||
2.8 現代音楽 | ||
2.9 古代の記譜法 | ||
2.10 世界の音楽 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 専門的な記譜法 ] | [ 上へ : 専門的な記譜法 ] | [ 声楽で共通の記譜法 > ] |
2.1 声楽
このセクションでは声楽を譜刻し、歌詞を旋律の音符に揃える方法について説明します。
2.1.1 声楽で共通の記譜法 | ||
2.1.2 歌詞に特有のテクニック | ||
2.1.3 歌詞の節 | ||
2.1.4 歌曲 | ||
2.1.5 合唱 | ||
2.1.6 オペラと舞台ミュージカル | ||
2.1.7 聖歌と賛美歌 | ||
2.1.8 古代の声楽 | ||
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 声楽 ] | [ 上へ : 声楽 ] | [ 声楽のためのリファレンス > ] |
2.1.1 声楽で共通の記譜法
このセクションでは声楽の譜刻に共通する問題について説明します。
声楽のためのリファレンス | ||
歌詞を入力する | ||
歌詞を旋律に揃える | ||
歌詞音節の自動演奏時間 | ||
歌詞音節の手動演奏時間 | ||
複数の歌詞音節を 1 つの音符に割り当てる | ||
複数の音符を 1 つの歌詞音節に割り当てる | ||
延長線とハイフン | ||
母音の段階的な変化 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 声楽で共通の記譜法 ] | [ 上へ : 声楽で共通の記譜法 ] | [ 歌詞を入力する > ] |
声楽のためのリファレンス
このセクションでは声楽を譜刻する際に発生する記譜法の問題についての詳細について記述している場所を示します。
- たいていの声楽では歌詞として記述されたテキストを用います。この記譜法についての導入部は Setting simple songs にあります。
-
声楽はたいてい歌詞や他のテキスト要素 (配役の名前等) のために
markup
モードの使用を必要とします。markup
モードの構文は テキスト マークアップの導入部 で説明しています。 - 声楽譜の最初に 音域 (ambitus) が追加されることがあります。音域について 音域 で説明しています。
- デフォルトでは強弱記号は譜の下に配置されます。しかしながら、たいていの合唱の楽譜では、合唱のための楽譜レイアウト で説明しているように、強弱記号は歌詞を避けるために譜の上に配置されます。
参照
音楽用語集: ambitus
学習マニュアル: Setting simple songs
記譜法リファレンス: テキスト マークアップの導入部, 音域, 合唱のための楽譜レイアウト
コード断片集: Vocal music
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 声楽のためのリファレンス ] | [ 上へ : 声楽で共通の記譜法 ] | [ 歌詞を旋律に揃える > ] |
歌詞を入力する
歌詞は \lyricmode
で始めるか
\addlyrics
または \lyricsto
を用いる特殊な入力モードで入力されます。この特殊な入力モードでは、入力 d
はピッチ D とは解釈されず、テキストの 1 文字の歌詞と解釈されます。言い換えると、歌詞を音符のように入力して、ピッチではなくテキストとして譜刻します。
例:
\lyricmode { Three4 blind mice,2 three4 blind mice2 }
歌詞の水平方向の配置を指定するための手法は主に 2 つあります
– 上記の例のように歌詞の各音節の演奏時間を指定するか、\addlyrics
または \lyricsto
を用いて歌詞を自動的に旋律や他のボイスに揃えさせるかのどちらかです。前者は 歌詞音節の手動演奏時間 で説明します。後者は 歌詞音節の自動演奏時間 で説明します。
歌詞の単語または音節はアルファベット (さらに他のいくつかの文字 – 以下を読んでください) で始まり、空白か数字で終わります。歌詞の音節の頭文字以後の文字は、数字や空白を除く、任意の文字になります。
数字や空白ではない文字は歌詞の一部と見なされるため、}
で終わる単語であっても有効です
– このことが以下のミスを引き起こします:
\lyricmode { lah lah lah}
上記の例で、}
は歌詞の最後の音節に含まれるため、波括弧 {
は閉じられず、入力ファイルはおそらくコンパイルされません。これを避けるため、波括弧の前後に常に空白を記述すべきです:
\lyricmode { lah lah lah }
句読点、アクセントが付いた文字を持つ歌詞、英語以外の言語の文字、あるいは特殊文字 (ハート記号や引用符等) は、UTF-8 エンコードで保存することで、直接入力することができます。さらなる情報は、特殊文字 を参照してください。
\relative { d''8 c16 a bes8 f ees' d c4 } \addlyrics { „Schad’ um das schö -- ne grü -- ne Band, }
歌詞モードで通常の引用符を使うことができますが、引用符の前にバックスラッシュを配置し、歌詞の音節全体を追加の引用符で囲む必要があります。例を挙げます:
\relative { \time 3/4 e'4 e4. e8 d4 e d c2. } \addlyrics { "\"I" am so lone -- "ly,\"" said she }
歌詞モードでの単語の開始の完全な定義は複雑です。歌詞モードで、単語は以下の文字で始まります:
アルファベット, _
, ?
, !
, :
, '
,
制御文字 ^A
から ^F
, ^Q
から ^W
, ^Y
,
^^
, 128 以上の ASCII コードの 8 ビット文字,
バックスラッシュとの組み合わせ \`
, \'
, \"
,
または \^
。
歌詞の中で \markup
を用いることで、歌詞の体裁を様々に制御することができます。多くのオプションの説明は、テキストをフォーマットする を参照してください。
Selected Snippets
歌詞音節をフォーマットする
単一の歌詞音節にマークアップ モードを使用することができます。
mel = \relative c'' { c4 c c c } lyr = \lyricmode { Lyrics \markup { \italic can } \markup { \with-color #red contain } \markup { \fontsize #8 \bold Markup! } } << \new Voice = melody \mel \new Lyrics \lyricsto melody \lyr >>
参照
学習マニュアル: Songs
記譜法リファレンス: 歌詞音節の自動演奏時間, フォント, テキストをフォーマットする, 入力モード, 歌詞音節の手動演奏時間, 特殊文字
内部リファレンス: LyricText
コード断片集: Text
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞を入力する ] | [ 上へ : 声楽で共通の記譜法 ] | [ 歌詞音節の自動演奏時間 > ] |
歌詞を旋律に揃える
歌詞は \lyricmode
内で解釈され、Lyrics
コンテキスト内で譜刻されます。
コンテキストの説明 を参照してください。
\new Lyrics \lyricmode { … }
\lyricmode
の異なる形が 2 種類あり、それらは歌詞を音楽に揃えるために、コンテキストを関連付けする機能を持ちます。\addlyrics
はより便利で、Voice コンテキストの音楽のすぐ後に記述することで、自身で暗黙的に Lyrics コンテキストを作成し歌詞が音楽に揃えられます。\lyricsto
はより多機能で、関連付ける Voice コンテキストを名前で指定します。また、Lyrics コンテキストは明示的に作成する必要があります。詳しくは、歌詞音節の自動演奏時間 を参照してください。
歌詞は主に 2 つの方法で歌詞に揃えることができます:
-
\addlyric
,\lyricsto
を用いるか、プロパティassociatedVoice
を設定することにより、他のボイスあるいは (特殊な状況ですが) 関連付けされた旋律から歌詞の音節の演奏時間を取ることで、歌詞を自動的に揃えることができます。詳細は 歌詞音節の自動演奏時間 を参照してください。<< \new Staff << \time 2/4 \new Voice = "one" \relative { \voiceOne c''4 b8. a16 g4. r8 a4 ( b ) c2 } \new Voice = "two" \relative { \voiceTwo s2 s4. f'8 e4 d c2 } >> % "one" の音符に揃えます \new Lyrics \lyricsto "one" { Life is __ _ love, live __ life. } % 最初は "one" の音符に揃えて、それから "two" に切り替えます \new Lyrics \lyricsto "one" { No more let \set associatedVoice = "two" % 切り替える音節の前にセットする必要があります sins and sor -- rows grow. } >>
歌詞の 1 番は通常の歌詞の入力方法を示しています。
歌詞の 2 番は歌詞を揃えるボイスを切り替える方法を示しています。この方法は、歌詞の 1 番と 2 番で音符への単語の揃え方が異なり、単語を揃えるべき音符がすべてボイス コンテキストの中にある場合に有用です。詳細は 歌詞の節 を参照してください。
-
歌詞を
\lyricmode
で入力し、音節の演奏時間を明示的に示すことで、歌詞を音符とは独立して揃えることができます。<< \new Voice = "one" \relative { \time 2/4 c''4 b8. a16 g4. f8 e4 d c2 } % 前で指定された演奏時間 2 を用います \new Lyrics \lyricmode { Joy to the earth! } % 音符とは異なるリズムをセットするために、演奏時間を明示します \new Lyrics \lyricmode { Life4 is love,2. live4 life.2 } >>
歌詞の 1 番は演奏時間が指定されず、各単語には前の値 2 がされるため、音符と揃いません。
歌詞の 2 番は音符とは全く独立して単語を揃える方法を示しています。この方法は、歌詞の 1 番と 2 番で音符への単語の揃え方が異なり、単語を揃えるべき音符がボイス コンテキストから得られない場合に有用です。詳細は 歌詞音節の手動演奏時間 を参照してください。このテクニックは譜の上に会話をセットする場合にも有用です – これの例は 音楽の中での会話 を参照してください。
参照
学習マニュアル: Aligning lyrics to a melody
記譜法リファレンス: コンテキストの説明, 歌詞音節の自動演奏時間, 歌詞の節, 歌詞音節の手動演奏時間, 音楽の中での会話, 歌詞音節の手動演奏時間
内部リファレンス: Lyrics
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞を旋律に揃える ] | [ 上へ : 声楽で共通の記譜法 ] | [ 歌詞音節の手動演奏時間 > ] |
歌詞音節の自動演奏時間
以下の 3 つの方法で歌詞を旋律の音符に揃えることができます:
-
\lyricsto
で旋律を保持しているボイス コンテキストを指定します。 -
\addlyrics
で歌詞を入力して、それを旋律を保持しているボイス コンテキストの直後に配置します。 -
任意のタイミングで
associatedVoice
プロパティを設定することで歌詞の揃えを名前を持つ他のボイス コンテキストに切り替えます。
3 つの方法のいずれでも、単語の音節の間にハイフンを描き、単語の後ろに延長線を描くことができます。詳細は 延長線とハイフン を参照してください。
歌詞を揃える Voice
コンテキストが “消滅” してはいけません。さもないと、その後の歌詞は失われてしまいます。ボイスは何もすることが無くなると消滅する可能性があります
– コンテキストを残しておく を参照してください。
\lyricsto
を用いる
旋律を保持している名前の付いたボイス コンテキストを
\lyricsto
で指定することにより、歌詞を旋律の下に揃えることができます:
<< \new Voice = "melody" \relative { a'1 a4. a8 a2 } \new Lyrics \lyricsto "melody" { These are the words } >>
これは歌詞を名前の付いた Voice
コンテキストに揃えます
– Voice
コンテキストは既に存在している必要があります。このため、普通は Voice
コンテキストを先に記述して、その後に Lyrics
コンテキストを記述します。歌詞自体は \lyricsto
コマンドの後に記述します。\lyricsto
コマンドは自動的に歌詞モードを呼び出します。デフォルトでは、歌詞は音符の下に配置されます。配置場所を変更する方法は 歌詞の垂直方向の配置 を参照してください。
\addlyrics
を用いる
\addlyrics
コマンドは便利なショートカットで、もっと複雑な LilyPond 構造を使う歌詞のセットアップの代わりとして用いることができます。
{ MUSIC } \addlyrics { LYRICS }
上記は下記と同等です:
\new Voice = "blah" { MUSIC } \new Lyrics \lyricsto "blah" { LYRICS }
ここで例を挙げます:
{ \time 3/4 \relative { c'2 e4 g2. } \addlyrics { play the game } }
\addlyrics
セクションを追加することで、歌詞の 2 番、3 番を追加することができます:
{ \time 3/4 \relative { c'2 e4 g2. } \addlyrics { play the game } \addlyrics { speel het spel } \addlyrics { joue le jeu } }
コマンド \addlyrics
は多声を扱うことはできません。また、このコマンドは TabVoice
に歌詞を関連付けることもできません。そのような場合は \lyricsto
を使うべきです。
associatedVoice を用いる
associatedVoice
プロパティを設定することで、歌詞を揃える旋律を変更することができます:
\set associatedVoice = "lala"
プロパティの値 (ここでは "lala" です) は
Voice
コンテキストの名前になります。技術的な理由により、変更を適用する歌詞の音節の前にこの set
コマンドを配置する必要があります。
ここで、使用例を挙げます:
<< \new Staff << \time 2/4 \new Voice = "one" \relative { \voiceOne c''4 b8. a16 g4. r8 a4 ( b ) c2 } \new Voice = "two" \relative { \voiceTwo s2 s4. f'8 e8 d4. c2 } >> % 最初は "one" の音符に揃えます % それから "two" に切り替えます \new Lyrics \lyricsto "one" { No more let \set associatedVoice = "two" % 切り替える音節の前にセットする必要があります sins and sor -- rows grow. } >>
参照
記譜法リファレンス: 延長線とハイフン, コンテキストを残しておく, 歌詞の垂直方向の配置
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞音節の自動演奏時間 ] | [ 上へ : 声楽で共通の記譜法 ] | [ 複数の歌詞音節を 1 つの音符に割り当てる > ] |
歌詞音節の手動演奏時間
複雑な声楽では、歌詞を音符とは完全に独立させて配置する方が望ましい場合があります。そのような場合、\lyricsto
や \addlyrics
を用いたり、associatedVoice
プロパティを設定したりはしません。歌詞の音節を音符のように
– しかしながら、ピッチをテキストに置き換えて –
入力し、歌詞の各音節の後には演奏時間を明示的に記述します。
音節の間にハイフンを描くことは普通にできますが、延長線を描くには関連付されたボイスが存在する必要があります。
ここで、2 つの例を挙げます:
<< \new Voice = "melody" \relative { c''2 a f f e e } \new Lyrics \lyricmode { c4. -- a -- f -- f -- e2. -- e } >>
<< \new Staff { \relative { c''2 c2 d1 } } \new Lyrics { \lyricmode { I2 like4. my8 cat!1 } } \new Staff { \relative { c'8 c c c c c c c c8 c c c c c c c } } >>
このテクニックは、譜の上に会話を書く場合に有用です – 音楽の中での会話 を参照してください。
歌詞の水平位置を変更するには、self-alignment-X
プロパティをオーバライドします:
<< \new Voice = "melody" \relative { \time 3/4 c'2 e4 g2 f } \new Lyrics \lyricmode { \override LyricText.self-alignment-X = #LEFT play1 a4 game4 } >>
参照
記譜法リファレンス: 音楽の中での会話
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞音節の手動演奏時間 ] | [ 上へ : 声楽で共通の記譜法 ] | [ 複数の音符を 1 つの歌詞音節に割り当てる > ] |
複数の歌詞音節を 1 つの音符に割り当てる
1 つの音符にスペースで区切られた複数の音節を割り当てるには、そのフレーズを引用符で囲むか、_
文字を用います。代替手段として、チルド記号 (~
) を用いて音節をタイで結ぶこともできます。
{ \relative { \autoBeamOff r8 b' c fis, fis c' b e, } \addlyrics { \override LyricHyphen.minimum-distance = #1.0 % Ensure hyphens are visible Che_in ques -- ta_e_in quel -- l'al -- tr'on -- da } \addlyrics { "Che in" ques -- "ta e in" quel -- l'al -- tr'on -- da } \addlyrics { Che~in ques -- ta~e~in quel -- l'al -- tr'on -- da } }
参照
内部リファレンス: LyricCombineMusic
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 複数の歌詞音節を 1 つの音符に割り当てる ] | [ 上へ : 声楽で共通の記譜法 ] | [ 延長線とハイフン > ] |
複数の音符を 1 つの歌詞音節に割り当てる
しばしば、特に中世やバロックの音楽では、1 つの音節を複数の音符で歌います。これをメリスマと呼びます。 melisma を参照してください。通常、メリスマの音節はメリスマの最初の音符に左揃えされます。
メリスマが単語の最後ではない音節で発生する場合、その音節と次の音節をハイフンで結びます。これは音節の直後に 2 重ハイフン --
を配置することで示します。
メリスマが単語の最後の音節または音節が 1 つしかない単語で発生する場合、最後の音節からメリスマの最後の音符まで延長線を描きます。これは単語の直後に 2 重アンダースコア __
を配置することで示します。
メリスマを示す方法は 5 つあります:
-
タイで結ばれた音符には、自動的にメリスマが作成されます:
<< \new Voice = "melody" \relative { \time 3/4 f''4 g2 ~ | 4 e2 ~ | 8 } \new Lyrics \lyricsto "melody" { Ky -- ri -- e __ } >>
-
各メリスマの音符にスラーを配置することで、譜から自動的にメリスマを作成することができます。これが歌詞を入力する通常の方法です:
<< \new Voice = "melody" \relative { \time 3/4 f''4 g8 ( f e f ) e8 ( d e2 ) } \new Lyrics \lyricsto "melody" { Ky -- ri -- e __ } >>
フレージング スラーはメリスマの作成には影響を与えないことに注意してください。
-
自動連桁を off にして、手動で連桁を付けられた音符はメリスマと見なされます。自動連桁の振る舞いを設定する を参照してください。
<< \new Voice = "melody" \relative { \time 3/4 \autoBeamOff f''4 g8[ f e f] e2. } \new Lyrics \lyricsto "melody" { Ky -- ri -- e } >>
この例はメリスマに 8 分音符よりも長い音符を含めているため、明らかに不適切です。
-
スラーが付いていない音符でも、
\melisma
と\melismaEnd
で囲まれていればメリスマとして扱われます。<< \new Voice = "melody" \relative { \time 3/4 f''4 g8 \melisma f e f \melismaEnd e2. } \new Lyrics \lyricsto "melody" { Ky -- ri -- e } >>
-
メリスマに含まれる余分な各音符に対して歌詞の中にアンダースコア
_
を記述することで、メリスマを定義することができます。<< \new Voice = "melody" \relative { \time 3/4 f''4 g8 f e f e8 d e2 } \new Lyrics \lyricsto "melody" { Ky -- ri -- _ _ _ e __ _ _ } >>
旋律の中のタイ、スラー、それに手動連桁をメリスマにしないことも可能です。メリスマにしないためには、melismaBusyProperties
を設定します:
<< \new Voice = "melody" \relative { \time 3/4 \set melismaBusyProperties = #'() c'4 d ( e ) g8 [ f ] f4 ~ 4 } \new Lyrics \lyricsto "melody" { Ky -- ri -- e e -- le -- i -- son } >>
melismaBusyProperties
に対する設定を変えることで、メリスマの自動検出にタイ、スラー、それに連桁を含める / 除外することができます。
Tunable context properties の melismaBusyProperties
を参照してください。
代替手段として、ignoreMelismata
に真をセットすることですべてのメリスマを無視することができます。リズムが異なる歌詞の節 を参照してください。
melismaBusyProperties
がアクティブになっているパッセージの中でメリスマを使う必要がある場合、メリスマに含める各音符に対して歌詞の中にアンダースコアを記述します:
<< \new Voice = "melody" \relative { \time 3/4 \set melismaBusyProperties = #'() c'4 d ( e ) g8 [ f ] ~ 4 ~ f } \new Lyrics \lyricsto "melody" { Ky -- ri -- _ e __ _ _ _ } >>
定義済みコマンド
\autoBeamOff
,
\autoBeamOn
,
\melisma
,
\melismaEnd
参照
音楽用語集: melisma
学習マニュアル: Aligning lyrics to a melody
記譜法リファレンス: 歌詞を旋律に揃える, 歌詞音節の自動演奏時間, 自動連桁の振る舞いを設定する, リズムが異なる歌詞の節
内部リファレンス: Tunable context properties
既知の問題と警告
メリスマの延長線は自動的には作成されません。手動で 2 重アンダースコアを記述する必要があります。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 複数の音符を 1 つの歌詞音節に割り当てる ] | [ 上へ : 声楽で共通の記譜法 ] | [ 母音の段階的な変化 > ] |
延長線とハイフン
しばしば単語の最後の音節で、その音節から次の音節まで長い水平の線を描いてメリスマを示すことがあります。そのような線のことを延長線と呼び、‘ __ ’ で記述します (2 重アンダースコアの前後にスペースがあることに注意してください)。
Note: 楽譜の中でメリスマは延長線で示され、延長線は 2 重のアンダースコアとして入力します。しかしながら、個々の音符をスキップすることで短いメリスマを作ることも可能です。音符のスキップには単一のアンダースコアを記述します – デフォルトでは、音符のスキップは延長線を作り出しません。
同じ単語の音節間の中央にハイフンを記譜するには、‘ -- ’ を記述します (2 重ハイフンの前後にスペースがあることに注意してください)。ハイフンは音節の間の中央に配置され、長さは音節の間のスペースによって調節されます。
密に譜刻された楽譜では、ハイフンが削除されることもあります。ハイフンが削除されるかどうかを
LyricHyphen
のプロパティ
minimum-distance
(2 つの音節の間の最小間隔) と
minimum-length
(ハイフンを削除するかどうかの閾値) で制御することができます。
参照
内部リファレンス: LyricExtender, LyricHyphen
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 延長線とハイフン ] | [ 上へ : 声楽で共通の記譜法 ] | [ 歌詞に特有のテクニック > ] |
母音の段階的な変化
音節間の矢印で示される可能性のある母音の遷移
(母音または持続する子音の段階的な変化) は、
\vowelTransition
コマンドで入力します
(Gould pp. 452–453 を参照してください)。矢印は遷移の長さを示し、デフォルトでは常に描画されます
(ぎっしりと譜刻された音楽では、必要に応じてスペースが追加されます)。ピッチが変化しない音符間のタイやスラーは、母音の変化にもかかわらず、新しいアーティキュレーションがないことを示しています。矢印の最小の長さは、
VowelTransition
の minimum-length
プロパティで調整できます。
{ c'2 c' \set melismaBusyProperties = #'() c'2 ~ c' \time 3/2 d'4( e' f' e' f'2 e'2.) } \addlyrics { Ah \vowelTransition oh, ah \vowelTransition oh, ah \vowelTransition _ _ _ _ oh. }
参照
音楽用語集: vowel transition
内部リファレンス: VowelTransition
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 母音の段階的な変化 ] | [ 上へ : 声楽 ] | [ 歌詞と変数に取り組む > ] |
2.1.2 歌詞に特有のテクニック
歌詞と変数に取り組む | ||
歌詞の垂直方向の配置 | ||
歌詞の水平方向の配置 | ||
歌詞と繰り返し | ||
歌詞のディヴィージ | ||
歌詞を共有する多声 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞に特有のテクニック ] | [ 上へ : 歌詞に特有のテクニック ] | [ 歌詞の垂直方向の配置 > ] |
歌詞と変数に取り組む
歌詞を保持する変数を作成することができます。歌詞は歌詞モードで入力する必要があります:
musicOne = \relative { c''4 b8. a16 g4. f8 e4 d c2 } verseOne = \lyricmode { Joy to the world, the Lord is come. } \score { << \new Voice = "one" { \time 2/4 \musicOne } \new Lyrics \lyricsto "one" { \verseOne } >> }
変数が \addlyrics
または \lyricsto
で呼び出される場合、歌詞に演奏時間を付ける必要はありません。
順序が異なったり、もっと複雑だったりする場合、最も良い方法は最初に音楽と歌詞を保持する変数を定義して、
譜と歌詞の階層をセットアップして (歌詞自体は省略します) から、\context
を用いて歌詞を追加します。この方法は、\lyricsto
によって参照されるボイスが常に定義済みであることを保証します。例を挙げます:
sopranoMusic = \relative { c''4 c c c } contraltoMusic = \relative { a'4 a a a } sopranoWords = \lyricmode { Sop -- ra -- no words } contraltoWords = \lyricmode { Con -- tral -- to words } \score { \new ChoirStaff << \new Staff { \new Voice = "sopranos" { \sopranoMusic } } \new Lyrics = "sopranos" \new Lyrics = "contraltos" \new Staff { \new Voice = "contraltos" { \contraltoMusic } } \context Lyrics = "sopranos" { \lyricsto "sopranos" { \sopranoWords } } \context Lyrics = "contraltos" { \lyricsto "contraltos" { \contraltoWords } } >> }
参照
記譜法リファレンス: 歌詞の垂直方向の配置
内部リファレンス: LyricCombineMusic, Lyrics
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞と変数に取り組む ] | [ 上へ : 歌詞に特有のテクニック ] | [ 歌詞の水平方向の配置 > ] |
歌詞の垂直方向の配置
音楽の種類によって、歌詞が譜の上、下、あるいは間に配置されることもあります。歌詞を関連する譜の下に配置することが最も簡単で、Staff
コンテキストの下に Lyrics
コンテキストを定義するだけで実現できます:
\score { << \new Staff { \new Voice = "melody" { \relative { c''4 c c c } } } \new Lyrics { \lyricsto "melody" { Here are the words } } >> }
歌詞を譜の上に配置する方法は 2 つあります。簡単な (そして好まれる) のは、上記と同じ構文を用いて歌詞の配置を明示的に指定する方法です:
\score { << \new Staff = "staff" { \new Voice = "melody" { \relative { c''4 c c c } } } \new Lyrics \with { alignAboveContext = "staff" } { \lyricsto "melody" { Here are the words } } >> }
代替手段として、2 ステップのプロセスを用いることもできます。最初に、Staff
コンテキストと Voice
コンテキストより先に
Lyrics
コンテキストを宣言して (内容は記述しません)、それから参照する Voice
コンテキストの宣言の後に
\context
を用いて \lyricsto
コマンドを配置します。以下のようにします:
\score { << \new Lyrics = "lyrics" \with { % 譜の上に配置する歌詞は以下のオーバライドを行う必要があります \override VerticalAxisGroup.staff-affinity = #DOWN } \new Staff { \new Voice = "melody" { \relative { c''4 c c c } } } \context Lyrics = "lyrics" { \lyricsto "melody" { Here are the words } } >> }
別々の譜に配置される 2 つのボイスがある場合、上記の方法のいずれかを用いて歌詞を譜の間に配置することができます。ここでは、2 番目の方法を用いる例を挙げます:
\score { \new ChoirStaff << \new Staff { \new Voice = "sopranos" { \relative { c''4 c c c } } } \new Lyrics = "sopranos" \new Lyrics = "contraltos" \with { % 譜の上に配置する歌詞は以下のオーバライドを行う必要があります % lyrics above a staff should have this override \override VerticalAxisGroup.staff-affinity = #DOWN } \new Staff { \new Voice = "contraltos" { \relative { a'4 a a a } } } \context Lyrics = "sopranos" { \lyricsto "sopranos" { Sop -- ra -- no words } } \context Lyrics = "contraltos" { \lyricsto "contraltos" { Con -- tral -- to words } } >> }
他の歌詞と譜の組み合わせは、上記の例に磨きをかけるか、学習マニュアルの中にあるテンプレート – Vocal ensembles templates を参照してください – を吟味することによって作り出すことができます。
Selected Snippets
2.12 の歌詞のスペーシングを新しいバージョンで得る
縦方向のスペーシング エンジンはバージョン 2.14 で変更されました。そのため、歌詞が異なってスペーシングされます。
Lyric
と Staff
コンテキストに対して、スペーシング エンジンがバージョン 2.12 と同様に振る舞うようなプロパティをセットすることができます。
global = { \key d \major \time 3/4 } sopMusic = \relative c' { % VERSE ONE fis4 fis fis | \break fis4. e8 e4 } altoMusic = \relative c' { % VERSE ONE d4 d d | d4. b8 b4 | } tenorMusic = \relative c' { a4 a a | b4. g8 g4 | } bassMusic = \relative c { d4 d d | g,4. g8 g4 | } words = \lyricmode { Great is Thy faith -- ful -- ness, } \score { \new ChoirStaff << \new Lyrics = sopranos \new Staff = women << \new Voice = "sopranos" { \voiceOne \global \sopMusic } \new Voice = "altos" { \voiceTwo \global \altoMusic } >> \new Lyrics = "altos" \new Lyrics = "tenors" \new Staff = men << \clef bass \new Voice = "tenors" { \voiceOne \global \tenorMusic } \new Voice = "basses" { \voiceTwo \global \bassMusic } >> \new Lyrics = basses \context Lyrics = sopranos \lyricsto sopranos \words \context Lyrics = altos \lyricsto altos \words \context Lyrics = tenors \lyricsto tenors \words \context Lyrics = basses \lyricsto basses \words >> \layout { \context { \Lyrics \override VerticalAxisGroup.staff-affinity = ##f \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 0) (minimum-distance . 2) (padding . 2)) } \context { \Staff \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 0) (minimum-distance . 2) (padding . 2)) } } }
参照
学習マニュアル: Vocal ensembles templates
記譜法リファレンス: コンテキストの配置順序, コンテキストを作成して参照する
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞の垂直方向の配置 ] | [ 上へ : 歌詞に特有のテクニック ] | [ 歌詞と繰り返し > ] |
歌詞の水平方向の配置
歌詞の間隔を広げるには
LyricSpace
の minimum-distance
プロパティを設定します。
\relative c' { c c c c \override Lyrics.LyricSpace.minimum-distance = #1.0 c c c c } \addlyrics { longtext longtext longtext longtext longtext longtext longtext longtext }
この変更を楽譜の全ての歌詞に適用するには、\layout
ブロックの中でプロパティの設定を行います。
\score { \relative { c' c c c c c c c } \addlyrics { longtext longtext longtext longtext longtext longtext longtext longtext } \layout { \context { \Lyrics \override LyricSpace.minimum-distance = #1.0 } } }
Selected Snippets
歌詞の揃え位置
歌詞の水平方向の揃え位置は、LyricText
オブジェクトの
self-alignment-X
プロパティをオーバライドすることで設定できます。-1
が左、0
が中央、1
が右になります。#LEFT
, #CENTER
, #RIGHT
を用いることもできます。
\layout { ragged-right = ##f } \relative c'' { c1 c1 c1 } \addlyrics { \once \override LyricText.self-alignment-X = #LEFT "This is left-aligned" \once \override LyricText.self-alignment-X = #CENTER "This is centered" \once \override LyricText.self-alignment-X = #1 "This is right-aligned" }
既知の問題と警告
テキスト スクリプトと歌詞がマージンの中に収まることを確認するチェックはより多くの計算を必要とします。この機能を無効にすることで、処理をわずかにスピードアップすることができます:
\override Score.PaperColumn.keep-inside-line = ##f
歌詞が小節線を避けるようにするには、以下を使います:
\layout { \context { \Lyrics \consists Bar_engraver \consists Separating_line_group_engraver \hide BarLine } }
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞の水平方向の配置 ] | [ 上へ : 歌詞に特有のテクニック ] | [ 歌詞のディヴィージ > ] |
歌詞と繰り返し
1 回の繰り返し
音楽 の繰り返しは別の場所で説明しています – 繰り返し を参照してください。このセクションでは、歌詞を繰り返しのある音楽に追加する方法について説明します。
繰り返しで歌詞の単語が変わらないのであれば、歌詞を音楽と同じ繰り返し構造にすることで、音楽に歌詞を付けることができます。
\score { << \new Staff { \new Voice = "melody" { \relative { a'4 a a a \repeat volta 2 { b4 b b b } } } } \new Lyrics { \lyricsto "melody" { Not re -- peat -- ed. \repeat volta 2 { Re -- peat -- ed twice. } } } >> }
繰り返しが展開された場合、歌詞も展開されます。
\score { \unfoldRepeats { << \new Staff { \new Voice = "melody" { \relative { a'4 a a a \repeat volta 2 { b4 b b b } } } } \new Lyrics { \lyricsto "melody" { Not re -- peat -- ed. \repeat volta 2 { Re -- peat -- ed twice. } } } >> } }
繰り返しが展開されて、異なる歌詞を持つ場合、単に歌詞の全ての単語を記述します:
\score { << \new Staff { \new Voice = "melody" { \relative { a'4 a a a \repeat unfold 2 { b4 b b b } } } } \new Lyrics { \lyricsto "melody" { Not re -- peat -- ed. The first time words. Sec -- ond time words. } } >> }
繰り返しの歌詞が異なる場合、並列に正しくネストされた別々の Lyrics
コンテキストに各繰り返しの歌詞を入力する必要があります:
\score { << \new Staff { \new Voice = "melody" { \relative { a'4 a a a \repeat volta 2 { b4 b b b } } } } \new Lyrics \lyricsto "melody" { Not re -- peat -- ed. << { The first time words. } \new Lyrics { \set associatedVoice = "melody" Sec -- ond time words. } >> } >> }
同様の方法でさらに歌詞の行を追加することができます:
\score { << \new Staff { \new Voice = "singleVoice" { \relative { a'4 a a a \repeat volta 3 { b4 b b b } c4 c c c } } } \new Lyrics \lyricsto "singleVoice" { Not re -- peat -- ed. << { The first time words. } \new Lyrics { \set associatedVoice = "singleVoice" Sec -- ond time words. } \new Lyrics { \set associatedVoice = "singleVoice" The third time words. } >> The end sec -- tion. } >> }
しかしながら、この構造が ChoirStaff
のような複数の譜を持つコンテキストに埋め込まれた場合、歌詞の 2 番と 3 番は譜の下に表示されます。
歌詞を正しく配置するには alignBelowContext
を用います:
\score { << \new Staff { \new Voice = "melody" { \relative { a'4 a a a \repeat volta 3 { b4 b b b } c4 c c c } } } \new Lyrics = "firstVerse" \lyricsto "melody" { Not re -- peat -- ed. << { The first time words. } \new Lyrics = "secondVerse" \with { alignBelowContext = "firstVerse" } { \set associatedVoice = "melody" Sec -- ond time words. } \new Lyrics = "thirdVerse" \with { alignBelowContext = "secondVerse" } { \set associatedVoice = "melody" The third time words. } >> The end sec -- tion. } \new Voice = "harmony" { \relative { f'4 f f f \repeat volta 2 { g8 g g4 g2 } a4 a8. a16 a2 } } >> }
差し替えのある繰り返し
繰り返し部分の歌詞が同じで、どの \alternative
ブロックも休符で始まるのでなければ、歌詞と音楽で同じ構造を使うことができます。こうすることで \unfoldRepeats
は音楽と歌詞の両方を正しく展開できます。
\score { << \new Staff { \time 2/4 \new Voice = "melody" { \relative { a'4 a a a \repeat volta 2 { b4 b } \alternative { { b b } { b c } } } } } \new Lyrics { \lyricsto "melody" { Not re -- peat -- ed. \repeat volta 2 { Re -- peat -- } \alternative { { ed twice. } { ed twice. } } } } >> }
しかしながら、繰り返し部分の歌詞が異なるか、
どれかの \alternative
ブロックが休符で始まる場合、歌詞に繰り返し構造を用いることはできず、歌詞を適用しない差し替え部分の音符をスキップするために手動で \skip
コマンドを挿入する必要があります。
注意: 音符のスキップにアンダースコア _
を使わないでください
– アンダースコアはメリスマを意味するため、前の音節が左揃えされてしまいます。
Note: \skip
コマンドの後に数字を記述する必要があります。しかしながら、歌詞は \addlyrics
や \lyricsto
で関連付けた旋律の音符から演奏時間を引き出すため、この数字は無視されます。各 \skip
は後に続く数字の値に関係なく、任意の音価の音符を 1 つスキップします。
\score { << \new Staff { \time 2/4 \new Voice = "melody" { \relative { \repeat volta 2 { b'4 b } \alternative { { b b } { b c } } c4 c } } } \new Lyrics { \lyricsto "melody" { The first time words. \repeat unfold 2 { \skip 1 } End here. } } \new Lyrics { \lyricsto "melody" { Sec -- ond \repeat unfold 2 { \skip 1 } time words. } } >> }
タイが途中で複数の差し替えに分かれる場合、最初の差し替えの音符がタイで結ばれ、2 番目以降の差し替えには \repeatTie
が使用されます。この構造に歌詞が含まれることにより差し替え部分が長くなると、歌詞を音符に揃えることが困難となり、差し替え部分に含まれるタイの音符が受け入れがたい結果を発生させるかもしれません。
タイは最初の差し替えまで続くメリスマを作り出しますが、2 番目以降の差し替えには作りません。このため、歌詞を正しく揃えるには、差し替え部分でメリスマの自動作成を無効にして、手動でスキップを挿入する必要があります。
\score { << \new Staff { \time 2/4 \new Voice = "melody" { \relative { \set melismaBusyProperties = #'() \repeat volta 2 { b'4 b ~} \alternative { { b b } { b \repeatTie c } } \unset melismaBusyProperties c4 c } } } \new Lyrics { \lyricsto "melody" { \repeat volta 2 { Here's a __ } \alternative { { \skip 1 verse } { \skip 1 sec } } ond one. } } >> }
\repeatTie
を含むセクションの周辺で
\unfoldRepeats
が使われると、両方のタイプのタイが譜刻されるの避けるために
\repeatTie
は削除されます。
繰り返される部分の歌詞が異なる場合、その歌詞の周囲で \repeat
を使うことはできず、前述のように手動で \skip
コマンドを挿入する必要があります。
\score { << \new Staff { \time 2/4 \new Voice = "melody" { \relative { \repeat volta 2 { b'4 b ~} \alternative { { b b } { b \repeatTie c } } c4 c } } } \new Lyrics { \lyricsto "melody" { Here's a __ verse. \repeat unfold 2 { \skip 1 } } } \new Lyrics { \lyricsto "melody" { Here's one \repeat unfold 2 { \skip 1 } more to sing. } } >> }
繰り返し部分から差し替え部分に延長線やハイフンを描きたいのであれば、それらを手動で挿入する必要があります。差し替え部分から次の部分に延長線やハイフンを描く場合も同様です。
\score { << \new Staff { \time 2/4 \new Voice = "melody" { \relative { \repeat volta 2 { b'4 b ~} \alternative { { b b } { b \repeatTie c } } c4 c } } } \new Lyrics { \lyricsto "melody" { Here's a __ verse. \repeat unfold 2 { \skip 1 } } } \new Lyrics { \lyricsto "melody" { Here's "a_" \skip 1 "_" sec -- ond one. } } >> }
参照
記譜法リファレンス: コンテキストを残しておく, 繰り返し
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞と繰り返し ] | [ 上へ : 歌詞に特有のテクニック ] | [ 歌詞を共有する多声 > ] |
歌詞のディヴィージ
ピッチが同じで歌詞とリズムが異なる 2 つのパートがある場合、一時的にメリスマの自動検出を off にして、歌詞の中でのメリスマ指示する手法を用いると適切な場合があります:
\score { << \new Voice = "melody" { \relative c' { \set melismaBusyProperties = #'() \slurDown \slurDashed e4 e8 ( e ) c4 c | \unset melismaBusyProperties c } } \new Lyrics \lyricsto "melody" { They shall not o -- ver -- come } \new Lyrics \lyricsto "melody" { We will _ } >> }
2 つのパートの音楽と歌詞の両方が異なる場合、2 つの名前付きボイス コンテキストを作成して、それぞれに歌詞を付属させることで、異なる音楽と歌詞として表示させた方が良いかもしれません:
\score { << \new Voice = "melody" { \relative { << { \voiceOne e'4 e8 e } \new Voice = "splitpart" { \voiceTwo c4 c } >> \oneVoice c4 c | c } } \new Lyrics \lyricsto "melody" { They shall not o -- ver -- come } \new Lyrics \lyricsto "splitpart" { We will } >> }
合唱音楽では、一部の小節において声部が分かれることがよくあります。2 つ以上の音楽表記がバックスラッシュ 2 つで分割される
<< {…} \\ {…} >>
構造は、声部の分割する正しい方法であるように見えます。しかしながらこの構造は、内部にある全ての音楽表記を新しい Voice コンテキストに割り当てるため、元の Voice コンテキストに歌詞を設定しても歌詞は表示されません。これは通常望むものではないでしょう。一時的に多声となる楽節を用いるのが適切です。単一譜の多声 の
一時的に多声となる楽節 (パッセージ) 節を参照してください。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞のディヴィージ ] | [ 上へ : 歌詞に特有のテクニック ] | [ 歌詞の節 > ] |
歌詞を共有する多声
2 つのボイスが異なるリズムを持ち、同じ歌詞を共有する場合、片方のボイスに歌詞を合わせるともう片方には合いません。下の例では、歌詞が上のボイスにのみ合わせられているため、2 つ目の延長線が短すぎます:
soprano = \relative { b'8( c d c) d2 } alto = \relative { g'2 b8( a g a) } words = \lyricmode { la __ la __ } \new Staff << \new Voice = "sopranoVoice" { \voiceOne \soprano } \new Voice { \voiceTwo \alto } \new Lyrics \lyricsto "sopranoVoice" \words >>
望んでいた結果を得るには、2 つのボイスを適切に合わせた新たな
NullVoice
コンテキストを作り、歌詞をそれに合わせます。NullVoice
コンテキストの音符は出力には現れませんが、歌詞を正しく合わせるのに使うことができます:
soprano = \relative { b'8( c d c) d2 } alto = \relative { g'2 b8( a g a) } aligner = \relative { b'8( c d c) b( a g a) } words = \lyricmode { la __ la __ } \new Staff << \new Voice { \voiceOne \soprano } \new Voice { \voiceTwo \alto } \new NullVoice = "aligner" \aligner \new Lyrics \lyricsto "aligner" \words >>
この方法は、単体では歌詞をサポートしていない
\partCombine
関数にも用いることができます:
soprano = \relative { b'8( c d c) d2 } alto = \relative { g'2 b8( a g a) } aligner = \relative { b'8( c d c) b( a g a) } words = \lyricmode { la __ la __ } \new Staff << \new Voice \partCombine \soprano \alto \new NullVoice = "aligner" \aligner \new Lyrics \lyricsto "aligner" \words >>
既知の問題と警告
\addlyrics
関数は Voice
にのみ動作するため、NullVoice
と一緒に用いることはできません。
\partCombine
関数については、自動パート結合に説明があります。
最後に、この方法はボイスが異なる譜にある場合にも用いることができ、2 つよりも多くのボイスにも適用することができます:
soprano = \relative { b'8( c d c) d2 } altoOne = \relative { g'2 b8( a b4) } altoTwo = \relative { d'2 g4( fis8 g) } aligner = \relative { b'8( c d c) d( d d d) } words = \lyricmode { la __ la __ } \new ChoirStaff \with {\accepts NullVoice } << \new Staff \soprano \new NullVoice = "aligner" \aligner \new Lyrics \lyricsto "aligner" \words \new Staff \partCombine \altoOne \altoTwo >>
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞を共有する多声 ] | [ 上へ : 声楽 ] | [ 歌詞の節番号を追加する > ] |
2.1.3 歌詞の節
歌詞の節番号を追加する | ||
歌詞の節に強弱記号を追加する | ||
歌詞の節に歌手の名前を追加する | ||
リズムが異なる歌詞の節 | ||
歌詞の節を楽譜の終わりに譜刻する | ||
歌詞の節を楽譜の終わりに複数の列で譜刻する |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞の節 ] | [ 上へ : 歌詞の節 ] | [ 歌詞の節に強弱記号を追加する > ] |
歌詞の節番号を追加する
stanza
を設定することにより、歌詞の節番号を追加することができます。例を挙げます:
\new Voice \relative { \time 3/4 g'2 e4 a2 f4 g2. } \addlyrics { \set stanza = "1. " Hi, my name is Bert. } \addlyrics { \set stanza = "2. " Oh, ché -- ri, je t'aime }
これらの番号は歌詞の前に配置されます。2 行からなる節をグループ化することができます。これは例えば、繰り返しで歌詞が異なる場合に有用です:
leftbrace = \markup { \override #'(font-encoding . fetaBraces) \lookup "brace80" } stanzaOneOne = \lyricmode { \set stanza = \markup { \column { \vspace #.33 "1. "} \leftbrace } Child, you’re mine and I love you. Lend thine ear to what I say. } stanzaOneThree = \lyricmode { Child, I have no great -- er joy Than to have you walk in truth. } \new Voice { \repeat volta 2 { c'8 c' c' c' c' c' c'4 c'8 c' c' c' c' c' c'4 } } \addlyrics { \stanzaOneOne } \addlyrics { \stanzaOneThree }
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞の節番号を追加する ] | [ 上へ : 歌詞の節 ] | [ 歌詞の節に歌手の名前を追加する > ] |
歌詞の節に強弱記号を追加する
歌詞の前に強弱記号を配置することによって、歌詞の音の大きさの違いを示すことができます。LilyPond では、歌詞の前に配置されるものはすべて StanzaNumber
オブジェクトに格納します – 強弱記号も同じです。技術的な理由により、歌詞の設定を \lyricmode
の外で行う必要があります:
text = { \set stanza = \markup { \dynamic "ff" "1. " } \lyricmode { Big bang } } << \new Voice = "tune" { \time 3/4 g'4 c'2 } \new Lyrics \lyricsto "tune" \text >>
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞の節に強弱記号を追加する ] | [ 上へ : 歌詞の節 ] | [ リズムが異なる歌詞の節 > ] |
歌詞の節に歌手の名前を追加する
歌手の名前を追加することもできます。歌手の名前は、楽器名と同様に、行の先頭に譜刻されます。vocalName
を設定することにより、歌手名を作成します。shortVocalName
として短縮名を入力することができます。
\new Voice \relative { \time 3/4 g'2 e4 a2 f4 g2. } \addlyrics { \set vocalName = "Bert " Hi, my name is Bert. } \addlyrics { \set vocalName = "Ernie " Oh, ché -- ri, je t'aime }
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞の節に歌手の名前を追加する ] | [ 上へ : 歌詞の節 ] | [ 歌詞の節を楽譜の終わりに譜刻する > ] |
リズムが異なる歌詞の節
しばしば、1 つの歌で歌詞の節によって歌詞を旋律に配置する仕方が若干異なる場合があります。そのような変化も \lyricsto
で対応することができます。
メリスマを無視する
歌詞のある節ではメリスマになっているものが、他の節では複数の音節に分かれている場合があります。これを実現するには、複数音節に分かれるボイスはメリスマを無視するようにします。これは Lyrics コンテキストの中で ignoreMelismata
を設定します。
<< \relative \new Voice = "lahlah" { \set Staff.autoBeaming = ##f c'4 \slurDotted f8.[( g16]) a4 } \new Lyrics \lyricsto "lahlah" { more slow -- ly } \new Lyrics \lyricsto "lahlah" { go \set ignoreMelismata = ##t fas -- ter \unset ignoreMelismata still } >>
既知の問題と警告
たいていの \set
コマンドとは異なり、\set ignoreMelismata
は前に \once
があると機能しません。メリスマを無視させる歌詞の範囲を
\set
と \unset
で囲む必要があります。
装飾小音符に音節を割り当てる
デフォルトでは、\lyricsto
を用いても装飾小音符 (つまり、\grace
)
には音節は割り当てられません。しかしながら、この振る舞いを変更することができます:
<< \new Voice = melody \relative { f'4 \appoggiatura a32 b4 \grace { f16 a16 } b2 \afterGrace b2 { f16[ a16] } \appoggiatura a32 b4 \acciaccatura a8 b4 } \new Lyrics \lyricsto melody { normal \set includeGraceNotes = ##t case, gra -- ce case, after -- grace case, \set ignoreMelismata = ##t app. case, acc. case. } >>
既知の問題と警告
associatedVoice
と同様に、includeGraceNotes
は少なくとも装飾小音符に割り当てる音節よりも前に設定する必要があります。装飾小音符が音楽の始めにある場合は、\with
または \context
ブロックを使うことを検討してください:
<< \new Voice = melody \relative c' { \grace { c16( d e f } g1) f } \new Lyrics \with { includeGraceNotes = ##t } \lyricsto melody { Ah __ fa } >>
代替の旋律に切り替える
音楽への歌詞の割り当て方をもっと複雑に変化させることができます。associatedVoice
プロパティを設定することで、歌詞の中で歌詞を割り当てる旋律を変更することができます:
<< \relative \new Voice = "lahlah" { \set Staff.autoBeaming = ##f c'4 << \new Voice = "alternative" { \voiceOne \tuplet 3/2 { % show associations clearly. \override NoteColumn.force-hshift = #-3 f8 f g } } { \voiceTwo f8.[ g16] \oneVoice } >> a8( b) c } \new Lyrics \lyricsto "lahlah" { Ju -- ras -- sic Park } \new Lyrics \lyricsto "lahlah" { % トリック: associatedVoice を 1 音節早く設定する必要があります! \set associatedVoice = "alternative" % "ran" に適用されます Ty -- ran -- no -- \set associatedVoice = "lahlah" % "rus" に適用されます sau -- rus Rex } >>
歌詞の 1 番のテキストは通常の方法で旋律 ‘lahlah’ に割り当てられます。しかしながら、歌詞の 2 番は最初は lahlah
コンテキストに割り当てられていますが、音節 ‘ran’ から ‘sau’ までの割り当てが旋律 alternative
に切り替わります:
\set associatedVoice = "alternative" % "ran" に適用されます Ty -- ran -- no -- \set associatedVoice = "lahlah" % "rus" に適用されます sau -- rus Rex
ここで、alternative
は 3 連符を保持している Voice
コンテキストの名前です。
\set associatedVoice
コマンドの配置に注意してください
– 1 音節早く出現していますが、これで正しく機能します。
Note: \set associatedVoice
コマンドは、割り当てが新しいボイスに切り替わる音節の前に配置する必要があります。言い換えると、ボイスの変更は予想よりも 1 音節遅く発生します。これは技術的な理由によるものであり、バグではありません。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < リズムが異なる歌詞の節 ] | [ 上へ : 歌詞の節 ] | [ 歌詞の節を楽譜の終わりに複数の列で譜刻する > ] |
歌詞の節を楽譜の終わりに譜刻する
しばしば、歌詞の 1 番を音楽にセットして、残りを詩の形式で楽譜の終わりに追加する方が適切な場合があります。これは、2 番以降を score ブロックの外の \markup
セクションに追加することで実現できます。\markup
で 2 つの方法で改行していることに注意してください。
melody = \relative { e' d c d | e e e e | d d e d | c1 | } text = \lyricmode { \set stanza = "1." Ma- ry had a lit- tle lamb, its fleece was white as snow. } \score { << \new Voice = "one" { \melody } \new Lyrics \lyricsto "one" \text >> \layout { } } \markup { \column { \line { Verse 2. } \line { All the children laughed and played } \line { To see a lamb at school. } } } \markup { \wordwrap-string " Verse 3. Mary took it home again, It was against the rule." }
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞の節を楽譜の終わりに譜刻する ] | [ 上へ : 歌詞の節 ] | [ 歌曲 > ] |
歌詞の節を楽譜の終わりに複数の列で譜刻する
歌詞の節が多い場合、ページを複数の列に分けて歌詞を譜刻することがあります。しばしば、歌詞番号を列の外側に置くこともあります。以下の例は、LilyPond でそのような出力を作り出す方法を示しています。
melody = \relative { c'4 c c c | d d d d } text = \lyricmode { \set stanza = "1." This is verse one. It has two lines. } \score { << \new Voice = "one" { \melody } \new Lyrics \lyricsto "one" \text >> \layout { } } \markup { \fill-line { \hspace #0.1 % この列を左マージンから離します % ページが過密な場合はこの設定を削除します \column { \line { \bold "2." \column { "This is verse two." "It has two lines." } } \combine \null \vspace #0.1 % 次の歌詞との間に垂直方向のスペースを入れます \line { \bold "3." \column { "This is verse three." "It has two lines." } } } \hspace #0.1 % 列の間に水平方向のスペースを入れます \column { \line { \bold "4." \column { "This is verse four." "It has two lines." } } \combine \null \vspace #0.1 % 次の歌詞との間に垂直方向のスペースを入れます \line { \bold "5." \column { "This is verse five." "It has two lines." } } } \hspace #0.1 % 右マージンに追加のスペースを加えます % ページが過密な場合はこの設定を削除します } }
参照
内部リファレンス: LyricText, StanzaNumber
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌詞の節を楽譜の終わりに複数の列で譜刻する ] | [ 上へ : 声楽 ] | [ 歌曲のためのリファレンス > ] |
2.1.4 歌曲
歌曲のためのリファレンス | ||
リード譜 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌曲 ] | [ 上へ : 歌曲 ] | [ リード譜 > ] |
歌曲のためのリファレンス
通常、歌曲は 3 つの譜に記譜され、上の譜を歌の旋律、下の 2 つの譜をピアノ伴奏とします。歌詞の 1 番は旋律の譜の直下に譜刻されます。歌詞の節が少しであれば 2 番以降を 1 番の下に譜刻することができます。しかしながら、歌詞の節が多くて収容し難い場合は、2 番以降の歌詞を楽譜の後に独立したテキストとして譜刻します。
歌曲を記述するのに必要とされる記譜要素はすべて別の場所で説明しています:
- 譜レイアウトを構築する際は、譜を表示する を参照してください。
- ピアノ譜を記述する際は、キーボードと他の複数譜の楽器 を参照してください。
- 旋律に沿って歌詞を記述する際は、声楽で共通の記譜法 を参照してください。
- 歌詞を配置する際は、歌詞の垂直方向の配置 を参照してください。
- 歌詞の節を入力する際は、歌詞の節 を参照してください。
- しばしば、歌曲は譜の上にコード ネームを付けて譜刻されます。これは、和音を表示する で説明しています。
- ギター伴奏や他のフレット楽器による伴奏の和音のフレット ダイアグラムを譜刻する際は、フレットのある弦楽器で共通の記譜法 の “フレット ダイアグラム マークアップ” を参照してください。
参照
学習マニュアル: Songs
記譜法リファレンス: 声楽で共通の記譜法, 和音を表示する, 譜を表示する, キーボードと他の複数譜の楽器, 歌詞の垂直方向の配置, 歌詞の節
コード断片集: Vocal music
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 歌曲のためのリファレンス ] | [ 上へ : 歌曲 ] | [ 合唱 > ] |
リード譜
ボーカル パートと ‘和音モード’ を組み合わせることによって、リード譜を譜刻することができます。和音モードの構文についての説明は 和音記譜法 にあります。
Selected Snippets
シンプル リード シート
コード ネーム、メロディ、歌詞をまとめるとリード シートとなります:
<< \chords { c2 g:sus4 f e } \new Staff \relative c'' { a4 e c8 e r4 b2 c4( d) } \addlyrics { One day this shall be free __ } >>
参照
記譜法リファレンス: 和音記譜法
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < リード譜 ] | [ 上へ : 声楽 ] | [ 合唱のためのリファレンス > ] |
2.1.5 合唱
このセクションでは、合唱との関連が最も強い記譜法について説明します。合唱には、賛美歌、パート ソング、聖譚曲等が含まれます。
合唱のためのリファレンス | ||
合唱のための楽譜レイアウト |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 合唱 ] | [ 上へ : 合唱 ] | [ 合唱のための楽譜レイアウト > ] |
合唱のためのリファレンス
通常、合唱は ChoirStaff
グループ内の 2, 3,
あるいは 4 つの譜に記譜します。伴奏が必要であれば、合唱譜の下に PianoStaff
グループを配置します。アカペラ のリハーサル譜であれば、普通は伴奏譜のサイズを小さくします。各ボーカル パートの音符は Voice
コンテキストの中に配置し、各譜は単一のボーカル パート (つまり、1 つの Voice
)
あるいはボーカル パートのペア (つまり、2 つの Voice
)
を受け持ちます。
歌詞は Lyrics
コンテキストの中に配置します。各歌詞は対応するの譜の下に配置するか、
あるいは譜が 2 パートを保持している場合は 1 つを譜の上、
合唱に共通するいくつかのトピックスは別の場所で説明しています:
- SATB (S: ソプラノ、A: アルト、T: テナー、B: バス) ボーカル譜の導入部は学習マニュアルにあります。 Four-part SATB vocal score を参照してください。また、SATB ボーカル譜の作成を簡単にする組み込みのテンプレートがあります。 Built-in templates を参照してください。
- 学習マニュアルには、様々なスタイルの合唱に適したいくつかのテンプレートもあります。 Vocal ensembles templates を参照してください。
-
ChoirStaff
とPianoStaff
についての情報は、譜をグループ化する を参照してください。 - セイクリッド ハープや動揺の記譜法で用いられるシェイプ符頭について、シェイプ ノートの符頭 で説明しています。
-
2 つのボーカル パートが 1 つの譜を共有する場合、上のパートの符幹、タイ、スラー等は上向きになり、下のパートは下向きになります。これを実現するには、
\voiceOne
と\voiceTwo
を用います。単一譜の多声 を参照してください。 - ボーカル パートが一時的に分かれる場合は、一時的に多声となる楽節 を使うべきです (単一譜の多声 を参照してください)。
定義済みコマンド
\oneVoice
,
\voiceOne
,
\voiceTwo
参照
学習マニュアル: Four-part SATB vocal score, Vocal ensembles templates
記譜法リファレンス: コンテキストの配置順序, 譜をグループ化する, シェイプ ノートの符頭, 単一譜の多声
コード断片集: Vocal music
内部リファレンス: ChoirStaff, Lyrics, PianoStaff
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 合唱のためのリファレンス ] | [ 上へ : 合唱 ] | [ オペラと舞台ミュージカル > ] |
合唱のための楽譜レイアウト
通常、4 つの譜を保持している合唱のシステムは、ピアノ伴奏があっても無くても、ページ毎に 2 つ配置されます。ページのサイズによっては、これを実現するためにいくつかのデフォルト設定を変更する必要があるかもしれません。以下の設定を考慮する必要があります:
- グローバル譜サイズを変更することで、楽譜の要素全体のサイズを変更することができます。譜サイズを設定する を参照してください。
- システム、譜、それに歌詞の間隔はすべて独立して調節することができます。垂直方向のスペース を参照してください。
- 垂直方向のレイアウト変数の値を表示することで、垂直方向のスペースを調節する手助けとすることができます。少ないページに音楽を収めるための方法として、レイアウト変数の表示と他の事柄を 音楽を少ないページに収める で説明しています。
- ページ毎のシステム数を 1 から 2 に変更した場合、そのことを示すために慣例として 2 つのシステムの間にシステム セパレータを配置します。システムを分割する を参照してください。
- 他のページ フォーマット プロパティについての詳細は ページ レイアウト を参照してください。
強弱記号はデフォルトでは譜の下に配置されます。しかしながら、合唱では歌詞を避けるために、普通は強弱記号を譜の上に配置します。あらかじめ定義されているコマンド \dynamicUp
は
1 つの Voice
コンテキストの強弱記号の配置を譜の上にします。Voice
コンテキストが複数ある場合、このコマンドを各コンテキスト内に配置する必要があります。代替手段として、強弱記号のプロパティを変更することで、
楽譜全体ですべての強弱記号を対応する譜の上に配置させることができます。以下に方法を示します:
\score { \new ChoirStaff << \new Staff { \new Voice { \relative { g'4\f g g g } } } \new Staff { \new Voice { \relative { d'4 d d\p d } } } >> \layout { \context { \Score \override DynamicText.direction = #UP \override DynamicLineSpanner.direction = #UP } } }
定義済みコマンド
\dynamicUp
,
\dynamicDown
,
\dynamicNeutral
参照
記譜法リファレンス: スペースを変更する, スペースを表示する, 音楽を少ないページに収める, ページ レイアウト, 楽譜レイアウト, システムを分割する, 譜サイズを設定する, 改行/改ページ, 垂直方向のスペース
内部リファレンス: VerticalAxisGroup, StaffGrouper
Selected Snippets
ディビジを見やすくするために arpeggioBracket を使用する
符幹が存在しないため情報がない場合に、ボイスの分割を arpeggioBracket
で表すことができます。これは合唱曲によく見られます。
\include "english.ly" \score { \relative c'' { \key a \major \time 2/2 << \new Voice = "upper" << { \voiceOne \arpeggioBracket a2( b2 <b d>1\arpeggio) <cs e>\arpeggio ~ <cs e>4 } \addlyrics { \lyricmode { A -- men. } } >> \new Voice = "lower" { \voiceTwo a1 ~ a a ~ a4 \bar "|." } >> } \layout { ragged-right = ##t } }
参照
記譜法リファレンス: 直線の発想記号
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 合唱のための楽譜レイアウト ] | [ 上へ : 声楽 ] | [ オペラや舞台ミュージカルのためのリファレンス > ] |
2.1.6 オペラと舞台ミュージカル
通常、オペラや舞台ミュージカルの音楽、歌詞、それに会話は、以下の形式の 1 つまたは複数により構築されます:
- A 指揮譜 はフル オーケストラとボーカル パート、台詞がある場合は台詞の合図を保持します。
- オーケストラ パート はオーケストラやバンドの個々の楽器の音楽を保持します。
- ボーカル譜 は全てのボーカル パートとピアノ伴奏を保持します。通常、伴奏はオーケストラの縮小版であり、しばしばオーケストラのオリジナルの楽器名が示されます。ボーカル譜に舞台指示や台詞の合図が含まれることもあります。
- ボーカル ブック はボーカル パートだけを保持します (伴奏はありません)。台詞の合図が含まれることもあります。
- 台詞 はミュージカルの台詞と歌詞を保持します。普通は、舞台指示が含まれます。LilyPond で台詞を譜刻することはできますが、台詞には音楽が無いため、他の手段を用いる方が好ましいかもしれません。
オペラや舞台ミュージカルに共通するスタイルの楽譜を作り出すのに必要なトピックスをカバーしているLilyPond ドキュメントのセクションを以下のリファレンスで示します。その後のセクションでオペラや舞台ミュージカルの譜刻に特有のテクニックをカバーします。
オペラや舞台ミュージカルのためのリファレンス | ||
役名 | ||
合図 | ||
語り音楽 | ||
音楽の中での会話 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < オペラと舞台ミュージカル ] | [ 上へ : オペラと舞台ミュージカル ] | [ 役名 > ] |
オペラや舞台ミュージカルのためのリファレンス
- 指揮譜は多くのグループ化された譜と歌詞を保持します。譜をグループ化する方法は 譜をグループ化する で説明しています。譜のグループをネストする方法は ネストされた譜グループ を参照してください。
- 指揮譜とボーカル譜では、空の譜の譜刻を抑制することがあります。そのような “Frenched score” を作成する方法は 譜を隠す を参照してください。
- オーケストラ パートを記述する方法は パートを記述する でカバーしています。オーケストラの楽器編成によっては、専門的な記譜法の他のセクションも関係するかもしれません。多くの楽器は移調楽器です – 楽器の移調 を参照してください。
- ページのシステム数をページ毎に変える場合、慣習的にシステムの間にシステム分離記号を配置します。システムを分割する を参照してください。
- 他のページ フォーマット プロパティの詳細は ページ レイアウト を参照してください。
-
台詞の合図、舞台指示、それに脚注を挿入することができます
– 脚注を作成する と テキスト を参照してください。2 つの
\score
の間に独立したセクションとして詳細な舞台指示を追加することもできます – 独立したテキスト を参照してください。
参照
音楽用語集: Frenched score, Frenched staves, transposing instrument
記譜法リファレンス: 脚注を作成する, 譜をグループ化する, 譜を隠す, 楽器の移調, ネストされた譜グループ, ページ レイアウト, システムを分割する, 移調, パートを記述する, テキストを記述する
コード断片集: Vocal music
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < オペラや舞台ミュージカルのためのリファレンス ] | [ 上へ : オペラと舞台ミュージカル ] | [ 合図 > ] |
役名
通常、1 つの役に割り当てられている譜には左側に役名を示します:
\score { << \new Staff { \set Staff.vocalName = \markup \smallCaps Kaspar \set Staff.shortVocalName = \markup \smallCaps Kas. \relative { \clef "G_8" c'4 c c c \break c4 c c c } } \new Staff { \set Staff.vocalName = \markup \smallCaps Melchior \set Staff.shortVocalName = \markup \smallCaps Mel \clef "bass" \relative { a4 a a a a4 a a a } } >> }
複数の役が 1 つの譜を共有する場合、それぞれの役に適用されるセクションの開始時に、その役名を譜の上に譜刻します。 これは、マークアップで実現できます。しばしば、この目的のために専用のフォントを用います。
\relative c' { \clef "G_8" c4^\markup \fontsize #1 \smallCaps Kaspar c c c \clef "bass" a4^\markup \fontsize #1 \smallCaps Melchior a a a \clef "G_8" c4^\markup \fontsize #1 \smallCaps Kaspar c c c }
役の入れ替えが頻繁にある場合、それぞれの役の定義を保持した変数を作り、役の入れ替えを容易に、そして正確に示す方が簡単かもしれません。
kaspar = { \clef "G_8" \set Staff.shortVocalName = "Kas." \set Staff.midiInstrument = "voice oohs" <>^\markup \smallCaps "Kaspar" } melchior = { \clef "bass" \set Staff.shortVocalName = "Mel." \set Staff.midiInstrument = "choir aahs" <>^\markup \smallCaps "Melchior" } \relative c' { \kaspar c4 c c c \melchior a4 a a a \kaspar c4 c c c }
参照
学習マニュアル: Organizing pieces with variables
記譜法リファレンス: テキスト, \markup コマンドの一覧
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 役名 ] | [ 上へ : オペラと舞台ミュージカル ] | [ 語り音楽 > ] |
合図
入りの直前にある他のパートの音楽を示すため、合図をボーカル譜、ボーカル ブック、それにオーケストラ パートに挿入することができます。さらに、合図はボーカル譜のピアノ伴奏にもしばしば挿入され、どのオーケストラ楽器が演奏されるのかを示します。これはフルの指揮譜を使用できない場合に、指揮者の助けとなります。
合図を挿入する基本的な仕組みはメインのテキストで完全に説明しています – 他のボイスを引用する と テキストをフォーマットする を参照してください。しかしながら、多くの合図を挿入する必要がある場合 – 例えば、ボーカル譜のピアノ伴奏に楽器名を入れる場合、楽器名を合図音符の直前に注意深く配置する必要があります。以下の例は、これを実現する方法を示しています。
flute = \relative { s4 s4 e'' g } \addQuote "flute" { \flute } pianoRH = \relative { c''4. g8 % 合図音符の楽器名を、合図音符の直前、かつ譜の上に配置します <>^\markup { \right-align { \tiny "Flute" } } \cueDuring "flute" #UP { g4 bes4 } } pianoLH = \relative { c4 <c' e> e, <g c> } \score { \new PianoStaff << \new Staff { \pianoRH } \new Staff { \clef "bass" \pianoLH } >> }
移調楽器が引用される場合、その楽器の合図音符が自動的に変換されるよう、楽器パートでキーを指定しておく必要があります。以下の例は B-フラットのクラリネットの移調を示しています。この例では合図音符は譜の下方に配置されるため、\cueDuring
の中で DOWN
を指定し
(これにより、符幹が下向きになります)、楽器名を譜の下に配置しています。
clarinet = \relative c' { \transposition bes fis4 d d c } \addQuote "clarinet" { \clarinet } pianoRH = \relative c'' { \transposition c' % 合図音符の楽器名を譜の下に配置します <>_\markup { \right-align { \tiny "Clar." } } \cueDuring "clarinet" #DOWN { c4. g8 } g4 bes4 } pianoLH = \relative { c4 <c' e> e, <g c> } \score { << \new PianoStaff << \new Staff { \new Voice { \pianoRH } } \new Staff { \clef "bass" \pianoLH } >> >> }
上記の 2 例から、ボーカル譜に多くの合図を挿入することは退屈な作業で、入力ファイルでピアノ パートの音符が不明瞭になることは明白です。しかしながら、以下のコード断片で示すように、タイピングを減らして、ピアノの音符を明瞭にする音楽関数を定義することが可能です。
Selected Snippets
ボーカル譜にオーケストラの合図音符を追加する
これは、ボーカル譜に添えられるピアノ リダクションに多くのオーケストラの合図音符を追加しやすくするためのスニペットです。音楽関数 \cueWhile
は 4 つの引数を取ります:
1 つ目は、\addQuote
と同様の、合図音符の引用元となる音楽です。2 つ目は、合図音符の前に表示される名前です。3 つ目は、音符を \voiceOne
で表示して名前を譜の上に表示するか、
音符を \voiceTwo
で表示して名前を譜の下に表示するかを決定する
#UP
または #DOWN
です。4 つ目は、合図音符が出現する部分のピアノの音楽です。合図音符の前に表示される名前は、音符の左端に揃えられます。様々な楽節を合図音符として表示することができますが、一度に複数個重ねることはできません。
cueWhile = #(define-music-function (instrument name dir music) (string? string? ly:dir? ly:music?) #{ \cueDuring $instrument #dir { \once \override TextScript.self-alignment-X = #RIGHT \once \override TextScript.direction = $dir <>-\markup { \tiny #name } $music } #}) flute = \relative c'' { \transposition c' s4 s4 e g } \addQuote "flute" { \flute } clarinet = \relative c' { \transposition bes fis4 d d c } \addQuote "clarinet" { \clarinet } singer = \relative c'' { c4. g8 g4 bes4 } words = \lyricmode { here's the lyr -- ics } pianoRH = \relative c'' { \transposition c' \cueWhile "clarinet" "Clar." #DOWN { c4. g8 } \cueWhile "flute" "Flute" #UP { g4 bes4 } } pianoLH = \relative c { c4 <c' e> e, <g c> } \score { << \new Staff { \new Voice = "singer" { \singer } } \new Lyrics { \lyricsto "singer" \words } \new PianoStaff << \new Staff { \new Voice { \pianoRH } } \new Staff { \clef "bass" \pianoLH } >> >> }
参照
音楽用語集: cue-notes
記譜法リファレンス: オブジェクトを揃える, 向きと配置, 合図音符をフォーマットする, 他のボイスを引用する, 音楽関数を使用する
コード断片集: Vocal music
内部リファレンス: CueVoice
既知の問題と警告
\cueDuring
は自動的に CueVoice
コンテキストを挿入し、すべての合図音符がこのコンテキストの中に配置されます。このことは、この方法では 1 つの合図音符の途中には他の合図音符を挿入することはできないということを意味します。これを行うには、別々の CueVoice
コンテキストを明示的に宣言して、合図音符の抽出と挿入に \quoteDuring
を用います。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 合図 ] | [ 上へ : オペラと舞台ミュージカル ] | [ 音楽の中での会話 > ] |
語り音楽
‘parlato’ や ‘Sprechgesang’ などのエフェクトは、演者にピッチを持たずに、しかしながらリズムを持ちながら話すことを要求します。これは、特殊な符頭 で示すように、×の符頭で記譜します。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 語り音楽 ] | [ 上へ : オペラと舞台ミュージカル ] | [ 聖歌と賛美歌 > ] |
音楽の中での会話
通常、音楽の中での会話は譜の上にイタリック体で譜刻され、各フレーズの開始は特定の音楽イベントに紐付けられます。
短いフレーズであれば、単純なマークアップ接尾辞を用います。
\relative { a'4^\markup { \smallCaps { Alex - } \italic { He's gone } } a a a a4 a a^\markup { \smallCaps { Bethan - } \italic Where? } a a4 a a a }
長いフレーズの場合は、フレーズをきちんと収められるよう楽譜を拡張する必要があるかもしれません。 LilyPond はこれを完全に自動的に行う機能を備えておらず、ページをレイアウトするために何らかの手作業が必要です。
密に詰め込まれた長い会話を持つフレーズやパッセージでは、Lyrics コンテキストを用いると良い結果を得られます。この Lryics コンテキストをボイスに関連付けすべきではなく、代わりに会話の各セクションの演奏時間を明示的に指定します。会話にずれがある場合、会話から最後の言葉を分離させて、それぞれに演奏時間を割り当てることで、下の音楽に対してスムーズに配置されます。
会話が複数行に広がる場合、手動で \break
を挿入して、右マージンが不足しないよう会話の配置を調節する必要があります。各行の最終小節に配置される最後の単語も上記と同様に分離させる必要があります。
ここで、これまで述べてきたことを行う例を挙げます:
music = \relative { \repeat unfold 3 { a'4 a a a } } dialogue = \lyricmode { \markup { \fontsize #1 \upright \smallCaps Abe: "Say this over measures one and" }4*7 "two"4 | \break "and this over measure"4*3 "three"4 | } \score { << \new Lyrics \with { \override LyricText.font-shape = #'italic \override LyricText.self-alignment-X = #LEFT } { \dialogue } \new Staff { \new Voice { \music } } >> }
参照
記譜法リファレンス: 歌詞音節の手動演奏時間, テキスト
内部リファレンス: LyricText
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 音楽の中での会話 ] | [ 上へ : 声楽 ] | [ 聖歌と賛美歌のためのリファレンス > ] |
2.1.7 聖歌と賛美歌
通常、詠唱、聖歌、それに賛美歌の音楽と言葉は特定の教会で確立されたフォーマットに従います。教会毎にフォーマットが異なりますが、発生する譜刻の問題は概して共通していて、このセクションでカバーします。
聖歌と賛美歌のためのリファレンス | ||
聖歌を設定する | ||
賛美歌を配置する | ||
賛美歌での部分小節 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 聖歌と賛美歌 ] | [ 上へ : 聖歌と賛美歌 ] | [ 聖歌を設定する > ] |
聖歌と賛美歌のためのリファレンス
グレゴリオ聖歌を様々なスタイルの古代記譜法で譜刻する方法を 古代の記譜法 で説明しています。
参照
記譜法リファレンス: 古代の記譜法
コード断片集: Vocal music
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 聖歌と賛美歌のためのリファレンス ] | [ 上へ : 聖歌と賛美歌 ] | [ 賛美歌を配置する > ] |
聖歌を設定する
現代の聖歌のための設定では、種々の古代記譜法の要素を加えた現代の記譜法を用います。考慮すべき要素や手法のいくつかを以下で示します。
聖歌ではしばしば、符幹の無い 4 分音符でピッチを示します。リズムは単語の音声リズムから取ります。
stemOff = { \hide Staff.Stem } \relative c' { \stemOff a'4 b c2 | }
聖歌ではしばしば小節線を省略したり、短い小節線や点線の小節線を用いて音楽の一時停止を示したりします。譜の小節線をすべて省略するには、小節線エングラーバを完全に削除します:
\score { \new StaffGroup << \new Staff { \relative { a'4 b c2 | a4 b c2 | a4 b c2 | } } \new Staff { \relative { a'4 b c2 | a4 b c2 | a4 b c2 | } } >> \layout { \context { \Staff \remove Bar_engraver } } }
譜毎に小節線を削除することもできます:
\score { \new ChoirStaff << \new Staff \with { \remove Bar_engraver } { \relative { a'4 b c2 | a4 b c2 | a4 b c2 | } } \new Staff { \relative { a'4 b c2 | a4 b c2 | a4 b c2 | } } >> }
譜の一部の小節線だけを削除するには、その部分を即興 (カデンツァ) として扱います。小節線を削除する範囲が長い場合、改行位置を示すためにダミーの小節線 \bar ""
を挿入する必要があるかもしれません。
\relative a' { a4 b c2 | \cadenzaOn a4 b c2 a4 b c2 \bar "" a4 b c2 a4 b c2 \cadenzaOff a4 b c2 | a4 b c2 | }
小節線を変更することによって、聖歌の休止や一時停止を示すことができます。
\relative a' { a4 \cadenzaOn b c2 a4 b c2 \bar "'" a4 b c2 a4 b c2 \bar ";" a4 b c2 \bar "!" a4 b c2 \bar "||" }
現代の記譜法を用いながらも、休止や一時停止にグレゴリオ聖歌で用いられる記譜法を用いる場合もあります。これには \breathe
記号を変更して使います:
divisioMinima = { \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-minima \once \override BreathingSign.Y-offset = #0 \breathe } divisioMaior = { \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maior \once \override BreathingSign.Y-offset = #0 \breathe } divisioMaxima = { \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maxima \once \override BreathingSign.Y-offset = #0 \breathe } finalis = { \once \override BreathingSign.stencil = #ly:breathing-sign::finalis \once \override BreathingSign.Y-offset = #0 \breathe } \score { \relative { g'2 a4 g \divisioMinima g2 a4 g \divisioMaior g2 a4 g \divisioMaxima g2 a4 g \finalis } \layout { \context { \Staff \remove Bar_engraver } } }
聖歌は通常、拍子記号を省略し、しばしば音部記号も省略します。
\score { \new Staff { \relative { a'4 b c2 | a4 b c2 | a4 b c2 | } } \layout { \context { \Staff \remove Bar_engraver \remove Time_signature_engraver \remove Clef_engraver } } }
通常、英国教会の伝統的な聖歌は シングル – 7 小節の音楽 – か、ダブル – 7 小節の音楽を 2 組 – のどちらかです。歌詞の各節が半分に分けられるのに対応して、7 小節の各グループは半分に分けられ、通常は 2 重小節線で区切られます。使われる音符は全音符と半音符だけです。半分に分けられたグループの最初の小節は常に全音符の和音を保持します。これが “主要音” です。通常、聖歌はページの中央に配置されます。
SopranoMusic = \relative { g'1 | c2 b | a1 | \bar "||" a1 | d2 c | c b | c1 | \bar "||" } AltoMusic = \relative { e'1 | g2 g | f1 | f1 | f2 e | d d | e1 | } TenorMusic = \relative { c'1 | c2 c | c1 | d1 | g,2 g | g g | g1 | } BassMusic = \relative { c1 | e2 e | f1 | d1 | b2 c | g' g | c,1 | } global = { \time 2/2 } % マークアップを使って聖歌をページの中央に配置します \markup { \fill-line { \score { % 中央揃え << \new ChoirStaff << \new Staff << \global \clef "treble" \new Voice = "Soprano" << \voiceOne \SopranoMusic >> \new Voice = "Alto" << \voiceTwo \AltoMusic >> >> \new Staff << \clef "bass" \global \new Voice = "Tenor" << \voiceOne \TenorMusic >> \new Voice = "Bass" << \voiceTwo \BassMusic >> >> >> >> \layout { \context { \Score \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 2) } \context { \Staff \remove Time_signature_engraver } } } % score の終わり } } % markup の終わり
このような聖歌を設定するための他のアプローチを以下の最初のコード断片で示します。
Selected Snippets
チャントまたは詩編の記譜法
以下のような記譜は、詞が必ずしも同じ長さではない詩編のチャントなどで用いられます。
stemOff = \hide Staff.Stem stemOn = \undo \stemOff \score { \new Staff \with { \remove "Time_signature_engraver" } { \key g \minor \cadenzaOn \stemOff a'\breve bes'4 g'4 \stemOn a'2 \section \stemOff a'\breve g'4 a'4 \stemOn f'2 \section \stemOff a'\breve^\markup { \italic flexe } \stemOn g'2 \fine } }
雅歌や他の典礼書の設定はもっと自由度が高く、古代音楽の記譜要素を使うかもしれません。しばしば単語を譜の下に音符に揃えて配置します。そのような場合、音符の間隔を音符の演奏時間ではなく、音節に合わせます。
古代の記譜法のテンプレート – グレゴリオ聖歌の転写譜
この例は、グレゴリオ聖歌の転写譜を作成する方法を示しています。グレゴリオ聖歌は小節を持たず、符幹もありません。2 分音符と 4 分音符の符頭と、異なる長さの休符を表示するための特殊な記号しか用いません。
\include "gregorian.ly" chant = \relative c' { \set Score.timing = ##f f4 a2 \divisioMinima g4 b a2 f2 \divisioMaior g4( f) f( g) a2 \finalis } verba = \lyricmode { Lo -- rem ip -- sum do -- lor sit a -- met } \score { \new GregorianTranscriptionStaff << \new GregorianTranscriptionVoice = "melody" \chant \new GregorianTranscriptionLyrics = "one" \lyricsto melody \verba >> }
参照
学習マニュアル: Visibility and color of objects, Vocal ensembles templates
記譜法リファレンス: 古代の記譜法, 小節線, コンテキストのプラグインを変更する, グレゴリオ聖歌の記譜, 無韻律の音楽, オブジェクトの可視性
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 聖歌を設定する ] | [ 上へ : 聖歌と賛美歌 ] | [ 賛美歌での部分小節 > ] |
賛美歌を配置する
通常、英国教会の聖歌の歌詞は曲とは別に楽譜の下の中央に譜刻されます。
シングルの聖歌 (7 小節) は歌詞の節毎に繰り返されます。ダブルの聖歌 (14 小節) は歌詞の節のペア毎に繰り返されます。歌詞をどのように聖歌に当てはめるかを示すために記号が挿入されます。歌詞の各節は 2 つに分割されます。通常、この分割を示すためにコロンが用いられます。これは楽譜の 2 重小節線に対応します。コロンの前にある歌詞は楽譜の最初の 3 小節で歌われ、コロンの後にある歌詞は次の 4 小節で歌われます。
楽譜の小節線に対応して、歌詞に単線の小節線
(あるいはカンマを逆さまにしたような記号) が挿入されます。マークアップ モードでは、小節線を小節チェック記号 |
で挿入することができます。
\markup { \fill-line { \column { \left-align { \line { O come let us sing | unto the | Lord : let } \line { us heartily rejoice in the | strength of | our } \line { sal- | -vation. } } } } }
fetaMusic
フォントの図柄を必要とする記号があるかもしれません。詳細は フォント を参照してください。
tick = \markup { \raise #1 \fontsize #-5 \musicglyph "scripts.rvarcomma" } \markup { \fill-line { \column { \left-align { \line { O come let us sing \tick unto the \tick Lord : let } \line { us heartily rejoice in the \tick strength of \tick our } \line { sal \tick vation. } } } } }
1 小節に 1 つの全音符が配置されている場合、その小節に対応する歌詞は音読のリズムで朗読されます。1 小節に 2 つの音符が配置されている場合、普通はそれに対応する歌詞には 1 つまたは 2 つの音節しかありません。3 以上の音節がある場合、普通は音符が変わる場所を示すためにドット (中黒) が挿入されます。
dot = \markup { \raise #0.7 \musicglyph "dots.dot" } tick = \markup { \raise #1 \fontsize #-5 \musicglyph "scripts.rvarcomma" } \markup { \fill-line { \column { \left-align { \line { O come let us sing \tick unto \dot the \tick Lord : let } \line { us heartily rejoice in the \tick strength of \tick our } \line { sal \tick vation. } } } } }
聖歌の中には朗読セクションの終わりを示すためにカンマの代わりにアスタリスクを用いて、強調したり長く伸ばしたりする音節をボールド体で示すものがあります。
dot = \markup { \raise #0.7 \musicglyph "dots.dot" } tick = \markup { \raise #1 \fontsize #-5 \musicglyph "scripts.rvarcomma" } \markup { \fill-line { \column { \left-align { \line { Today if ye will hear his voice * } \line { \concat { \bold hard en } | not your | hearts : as in the pro- } \line { vocation * and as in the \bold day of tempt- | } \line { -ation | in the | wilderness. } } } } }
また、強調する音節の上にアクセント記号を配置する聖歌もあります。
tick = \markup { \raise #2 \fontsize #-5 \musicglyph "scripts.rvarcomma" } \markup { \fill-line { \column { \left-align { \line { O come let us \concat { si \combine \tick ng } | unto the | Lord : let } \line { us heartily \concat { rejo \combine \tick ice } in the | strength of | our } \line { sal- | -vation. } } } } }
マークアップを使用してテキストを中央に配置し、テキスト行をいくつかの列に配列する方法は、テキストをフォーマットする で説明しています。
これらの要素のほとんどをテンプレートの歌詞で示しています。 Psalms を参照してください。
参照
学習マニュアル: Psalms, Vocal ensembles templates
記譜法リファレンス: フォント, テキストをフォーマットする
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 賛美歌を配置する ] | [ 上へ : 聖歌と賛美歌 ] | [ 古代の声楽 > ] |
賛美歌での部分小節
しばしば、賛美歌は各行の始めと終わりを部分小節として、楽譜の各行がテキストの各行にうまく対応させます。これを行うには音楽の始めに \partial
コマンドを配置して、各行の終わりに \bar "|"
または \bar "||"
を配置する必要があります。
賛美歌のテンプレート
このテンプレートは、それぞれの行が部分小節で開始し終了する賛美歌を作成する方法を示しています。また、詞を音楽の下に単独で表示する方法も示しています。
Timeline = { \time 4/4 \tempo 4=96 \partial 2 s2 | s1 | s2 \breathe s2 | s1 | s2 \caesura \break s2 | s1 | s2 \breathe s2 | s1 | s2 \fine } SopranoMusic = \relative g' { g4 g | g g g g | g g g g | g g g g | g2 g4 g | g g g g | g g g g | g g g g | g2 } AltoMusic = \relative c' { d4 d | d d d d | d d d d | d d d d | d2 d4 d | d d d d | d d d d | d d d d | d2 } TenorMusic = \relative a { b4 b | b b b b | b b b b | b b b b | b2 b4 b | b b b b | b b b b | b b b b | b2 } BassMusic = \relative g { g4 g | g g g g | g g g g | g g g g | g2 g4 g | g g g g | g g g g | g g g g | g2 } global = { \key g \major } \score { % Start score << \new PianoStaff << % Start pianostaff \new Staff << % Start Staff = RH \global \clef "treble" \new Voice = "Soprano" << % Start Voice = "Soprano" \Timeline \voiceOne \SopranoMusic >> % End Voice = "Soprano" \new Voice = "Alto" << % Start Voice = "Alto" \Timeline \voiceTwo \AltoMusic >> % End Voice = "Alto" >> % End Staff = RH \new Staff << % Start Staff = LH \global \clef "bass" \new Voice = "Tenor" << % Start Voice = "Tenor" \Timeline \voiceOne \TenorMusic >> % End Voice = "Tenor" \new Voice = "Bass" << % Start Voice = "Bass" \Timeline \voiceTwo \BassMusic >> % End Voice = "Bass" >> % End Staff = LH >> % End pianostaff >> } % End score \markup { \fill-line { "" { \column { \left-align { "This is line one of the first verse" "This is line two of the same" "And here's line three of the first verse" "And the last line of the same" } } } "" } } \layout { \context { \Score caesuraType = #'((bar-line . "||")) fineBarType = "||" } } \paper { % Start paper block indent = 0 % don't indent first system line-width = 130 % shorten line length to suit music } % End paper block
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 賛美歌での部分小節 ] | [ 上へ : 声楽 ] | [ キーボードと他の複数譜の楽器 > ] |
2.1.8 古代の声楽
古代の声楽がサポートされます。古代の記譜法 で説明しています。
参照
記譜法リファレンス: 古代の記譜法
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 古代の声楽 ] | [ 上へ : 専門的な記譜法 ] | [ キーボードで共通の記譜法 > ] |
2.2 キーボードと他の複数譜の楽器
このセクションでは、キーボード楽器と複数の譜を用いる他の楽器 – ハープやビブラフォン等 – に固有の音楽記譜について説明します。キーボードを含む複数の譜を用いる楽器のグループ全体をまとめて “キーボード” と呼びます。
2.2.1 キーボードで共通の記譜法 | ||
2.2.2 ピアノ | ||
2.2.3 アコーディオン | ||
2.2.4 ハープ |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < キーボードと他の複数譜の楽器 ] | [ 上へ : キーボードと他の複数譜の楽器 ] | [ キーボードのためのリファレンス > ] |
2.2.1 キーボードで共通の記譜法
このセクションでは多くのキーボードで生じる記譜の問題について説明します。
キーボードのためのリファレンス | ||
譜を手動で変更する | ||
譜を自動で変更する | ||
譜変更線 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < キーボードで共通の記譜法 ] | [ 上へ : キーボードで共通の記譜法 ] | [ 譜を手動で変更する > ] |
キーボードのためのリファレンス
通常、キーボードはピアノ譜で記譜します。これらは波括弧で括られた 2 つ以上の普通の譜です。他のキーを持つ楽器も同じ記譜法を用います。オルガン譜は通常、PianoStaff
グループ内部にある 2 つの譜と、ペダル用の通常の譜によって記述されます。
キーボードの譜はそれぞれの独立性が高いですが、ボイスが 2 つの譜を跨ぐこともあります。このセクションではキーボードに特有の記譜テクニックについて説明します。
キーボードに共通する問題のいくつかは他の場所でカバーします:
- 通常、キーボードは複数のボイスを持ち、ボイスの数はしょっちゅう変わります。このことは 衝突の解決 で説明しています。
- 音楽を並列に記述する で説明しているように、キーボードは並列に記述することができます。
- 強弱指示を 2 つの
Staff
コンテキストの間にあるDynamics
コンテキストの中に配置して、強弱記号を 2 つの譜の間に配置することができます。強弱記号 を参照してください。 - 運指は 運指の指示 で説明しています。
- オルガン ペダルの指示はアーティキュレーションとして挿入します。アーティキュレーションの一覧 を参照してください。
- グリッド ライン で垂直のグリッド ラインを表示させることができます。
- キーボードはしばしばアルペジオでのタイや、レセ ヴィブレ タイを持ちます。タイ で説明しています。
- 複数のボイスや譜を跨ぐアルペジオの配置は、アルペジオ でカバーしています。
- トレモロ記号は トレモロの繰り返し で説明しています。
- キーボードで必要となる可能性がある調整のいくつかを 実際の音楽からの例 で示しています。
- ボイスを跨ぐタイを作り出すために隠れた音符を使うことがあります。 調整のその他の使用方法 で示しています。
参照
学習マニュアル: Real music example, Other uses for tweaks
記譜法リファレンス: 譜をグループ化する, 楽器名, 衝突の解決, 音楽を並列に記述する, 運指の指示, アーティキュレーションの一覧, グリッド ライン, タイ, アルペジオ, トレモロの繰り返し
内部リファレンス: PianoStaff
コード断片集: Keyboards
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < キーボードのためのリファレンス ] | [ 上へ : キーボードで共通の記譜法 ] | [ 譜を自動で変更する > ] |
譜を手動で変更する
以下のコマンドを用いて、ボイスの譜を手動で切り換えることができます:
\change Staff = staffname
文字列 staffname は譜の名前です。このコマンドはボイスをカレント譜から staffname という譜に切り換えます。staffname の一般的な値は "up"
と "down"
、あるいは "RH"
と "LH"
です。
ボイスの切り換え先となる譜は、切り換え時点で存在している必要があります。必要があれば、譜を “残しておく” べきです。コンテキストを残しておく を参照してください。または、空の和音 <>
を使用するなどして明示的にインスタンス化します。和音の音符を参照してください。
\new PianoStaff << \new Staff = "up" { % enforce creation of all contexts at this point of time <> \change Staff = "down" c2 \change Staff = "up" c'2 } \new Staff = "down" { \clef bass % keep staff alive s1 } >>
譜を跨ぐ音符には自動的に連桁が付けられます:
\new PianoStaff << \new Staff = "up" { <e' c'>8 \change Staff = "down" g8 fis g \change Staff = "up" <g'' c''>8 \change Staff = "down" e8 dis e \change Staff = "up" } \new Staff = "down" { \clef bass % 譜を残しておきます s1 } >>
連桁を調整する必要がある場合、符幹の向きの変更を最初に行ってください。連桁の位置は最も近い譜の中央から算出します。連桁の調整の簡単な例が 表記の重なりを修正する にあります。
ボイスが譜を跨ぐ時に、記譜要素の重なりが発生することがあります:
\new PianoStaff << \new Staff = "up" { \voiceOne % 譜を跨ぐボイスの中にある運指記号のためのスペースを作ります \once\override DynamicLineSpanner.staff-padding = #4 e''2\p\< d''\> c''1\! } \new Staff = "down" << { \clef bass s4. e,8\rest g,2\rest c1 } \\ { c8\( g c' \change Staff = "up" e' g' b'-3 a' g'\) f'1 } >> >>
符幹とスラーは譜の間にある強弱記号と重なります。なぜなら、異なる譜にある音符を結ぶ連桁、スラー、他のスパナに対して、自動衝突解決は抑制されるからです。同様に、譜を跨ぐスパナによって配置に影響を受ける符幹やアーティキュレーションに対しても、自動衝突解決は抑制されます。そのような場合、必要に応じて、手動で衝突を解決する必要があります – 解決手段は 表記の重なりを修正する を参照してください。
参照
学習マニュアル: Fixing overlapping notation
記譜法リファレンス: 符幹, 自動連桁, コンテキストを残しておく
コード断片集: Keyboards
内部リファレンス: Beam, ContextChange
既知の問題と警告
譜の変更の直前に終了する自動連桁に対して、連桁衝突回避は機能しません。衝突回避を行うには、手動連桁を使用してください。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 譜を手動で変更する ] | [ 上へ : キーボードで共通の記譜法 ] | [ 譜変更線 > ] |
譜を自動で変更する
譜の上端と下端の間で、ボイスを自動的に切り換えることができます。構文は以下の通りです:
\autoChange …music…
これはカレントの譜グループ (普通は、PianoStaff
) 内部に
"up"
と "down"
という 2 つの譜を作成します。デフォルトで下の譜は低音部となります。自動変更は基準ピッチ (ミドル C が切り換えポイントです) で譜を切り換え、次の切り換えまで休符でスキップしていきます。
\new PianoStaff { \autoChange { g4 a b c' d'4 r a g } }
切り替えポイントを他のピッチにすることができます。譜を明示的に生成しない場合も、他の音部記号を用いることができます。
music = { g8 b a c' b8 d' c'8 e' d'8 r f' g' a'2 } \autoChange d' \music \autoChange b \with { \clef soprano } \music \autoChange d' \with { \clef alto } \with { \clef tenor } \music
\autoChange
の外側にある \relative
セクションは、\autoChange
の内部にある音符のピッチに影響を与えません。そのため、必要に応じて \autoChange
の内部に \relative
を配置します。
個々の譜に個別の制御を行う必要がある場合、手動で "up"
と "down"
という名前の譜を作成して、制御を行います。\autoChange
コマンドは、作成された譜間で、ボイスを切り換えます。
Note: 譜を手動で作成する場合、譜の名前を "up"
と "down"
にする 必要があります。
例えば、下の譜に調号を配置するには、譜を手動で作成する必要があります:
\new PianoStaff << \new Staff = "up" { \new Voice = "melOne" { \key g \major \autoChange \relative { g8 b a c b d c e d8 r fis, g a2 } } } \new Staff = "down" { \key g \major \clef bass } >>
参照
記譜法リファレンス: 譜を手動で変更する
コード断片集: Keyboards
内部リファレンス: AutoChangeMusic
既知の問題と警告
譜の切り換えが最適な場所で行われない場合もあります。高品位の出力を得るには、譜の切り換えを手動で指定する必要があります。
和音は譜を跨って配置されません。和音構造の中にある最初の音符に基づく譜に割り当てられます。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 譜を自動で変更する ] | [ 上へ : キーボードで共通の記譜法 ] | [ ピアノ > ] |
譜変更線
ボイスが他の譜に切り替わる時に、音符を繋げる線を自動的に譜刻することができます:
\new PianoStaff << \new Staff = "one" { \showStaffSwitch c'1 \change Staff = "two" b2 a } \new Staff = "two" { \clef bass s1*2 } >>
譜の切り替え線が和音を繋ぐ場合、ソース ファイルにある和音の“最後の音符”に始端や終端が向けられます。これを利用して、線の縦方向の始端位置や終端位置をすばやく調整することができます:
\new PianoStaff << \new Staff = "one" { <c' e' g'>1 \showStaffSwitch \change Staff = "two" <a c' f>1 \hideStaffSwitch \change Staff = "one" <e' g' c'>1 \showStaffSwitch \change Staff = "two" <f a c'>1 } \new Staff = "two" { \clef bass s1*4 } >>
定義済みコマンド
\showStaffSwitch
,
\hideStaffSwitch
参照
コード断片集: Keyboards
内部リファレンス: Note_head_line_engraver, VoiceFollower
Selected Snippets
譜をまたがる符幹
このスニペットは、Span_stem_engraver
と \crossStaff
を用いて、自動的に譜をまたがる符幹を作成しています。
符幹の長さは自動的に計算されるため指定する必要はありません。
\layout { \context { \PianoStaff \consists "Span_stem_engraver" } } { \new PianoStaff << \new Staff { <b d'>4 r d'16\> e'8. g8 r\! e'8 f' g'4 e'2 } \new Staff { \clef bass \voiceOne \autoBeamOff \crossStaff { <e g>4 e, g16 a8. c8} d \autoBeamOn g8 f g4 c2 } >> }
現時点でこのエングラーバは、名前をダブル クォートで囲っても指定することができません。その代わり、名前の前にハッシュ記号 (#
) を置くことで指定しなければなりません。
ブラケット型のアルペジオで譜をまたぐ和音を表示する
ブラケット型のアルペジオは、異なる譜にまたがる和音が同じ手で演奏されることを示します。これを表示するためには、PianoStaff
が譜をまたぐアルペジオを使用できるように設定し、PianoStaff
コンテキストでアルペジオの形をブラケットに設定します。
(Debussy, Les collines d’Anacapri, m. 65)
\new PianoStaff << \set PianoStaff.connectArpeggios = ##t \override PianoStaff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket \new Staff { \relative c' { \key b \major \time 6/8 b8-.(\arpeggio fis'-.\> cis-. e-. gis-. b-.)\!\fermata^\laissezVibrer \bar "||" } } \new Staff { \relative c' { \clef bass \key b \major << { <a e cis>2.\arpeggio } \\ { <a, e a,>2. } >> } } >>
参照
コード断片集: Keyboards
内部リファレンス: Stem
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 譜変更線 ] | [ 上へ : キーボードと他の複数譜の楽器 ] | [ ピアノ ペダル > ] |
2.2.2 ピアノ
このセクションでは、ピアノに関係する記譜法を説明します。
ピアノ ペダル |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ピアノ ] | [ 上へ : ピアノ ] | [ アコーディオン > ] |
ピアノ ペダル
一般的に、ピアノは音を変化させるために 3 本のペダルを持ちます: サステイン, ソステヌート (sos.), それに ウナ コルダ (una corda, U.C.) です。サステイン ペダルは、ビブラフォンやチェレスタにもあります。
\relative { c''4\sustainOn d e g <c, f a>1\sustainOff c4\sostenutoOn e g c, <bes d f>1\sostenutoOff c4\unaCorda d e g <d fis a>1\treCorde }
ペダル指示には 3 つのスタイルがあります: テキスト、囲み、それにテキストと囲みの混合です。デフォルトで、サステイン ペダルとウナ コルダ ペダルの指示はテキスト スタイルですが、ソステヌート ペダル指示は混合スタイルです。
\relative { c''4\sustainOn g c2\sustainOff \set Staff.pedalSustainStyle = #'mixed c4\sustainOn g c d d\sustainOff\sustainOn g, c2\sustainOff \set Staff.pedalSustainStyle = #'bracket c4\sustainOn g c d d\sustainOff\sustainOn g, c2 \bar "|." }
ペダル コマンドの配置は、ピアノ演奏中の物理的なサステイン ペダルの動きに一致します。最後の小節線でのペダル指示は、最後のペダル オフ コマンドを省略することで挿入されます。
ペダル指示を Dynamics
コンテキストに配置させることができます。
参照
記譜法リファレンス: タイ
コード断片集: Keyboards
内部リファレンス: SustainPedal, SustainPedalLineSpanner, SustainEvent, SostenutoPedal, SostenutoPedalLineSpanner, SostenutoEvent, UnaCordaPedal, UnaCordaPedalLineSpanner, UnaCordaEvent, PianoPedalBracket, Piano_pedal_engraver
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ピアノ ペダル ] | [ 上へ : キーボードと他の複数譜の楽器 ] | [ ディスカント記号 > ] |
2.2.3 アコーディオン
このセクションでは、アコーディオンに特有の記譜法について説明します。
ディスカント記号 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < アコーディオン ] | [ 上へ : アコーディオン ] | [ ハープ > ] |
ディスカント記号
アコーディオン演奏はしばしば、指定されたピッチよりも 1 オクターブ上または下のピッチとユニゾンになるリードのセットで構成されます。各アコーディオン メーカは、さまざまなリードの組み合わせを選択する シフト に異なる名前を付けています: oboe, musette, あるいは bandonium などです。そのため、演奏指示を単純にするための記号システムを用います。
使用可能なアコーディオン レジスターの一覧はAccordion Registersにあります。
Selected Snippets
アコーディオンの音色切り替え記号
アコーディオンの音色切り替え記号は、\markup
としても、(音色の切り替えは音と音の間に行われるため) 単独の音楽イベントとしても用いることができます。バスの音色は過度には一般化されていません。使用できるコマンドは、記譜法リファレンスの ’キーボードと他の複数譜の楽器’ にある
’ディスカント記号’ を参照してください。
#(use-modules (lily accreg)) \new PianoStaff << \new Staff \relative { \clef treble \discant "10" r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a] << { r16 <f bes> r <e a> r <d g> } \\ { d r a r bes r } >> | <cis e a>1 } \new Staff \relative { \clef treble \freeBass "1" r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16 \clef bass \stdBass "Master" << { r16 <f, bes d>^"b" r <e a c>^"am" r <d g bes>^"gm" | <e a cis>1^"a" } \\ { d8_"D" c_"C" bes_"B" | a1_"A" } >> } >>
参照
コード断片集: Keyboards
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ディスカント記号 ] | [ 上へ : キーボードと他の複数譜の楽器 ] | [ ハープのためのリファレンス > ] |
2.2.4 ハープ
このセクションでは、ハープに特有の記譜法について説明します。
ハープのためのリファレンス | ||
ハープ ペダル |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ハープ ] | [ 上へ : ハープ ] | [ ハープ ペダル > ] |
ハープのためのリファレンス
ハープ音楽に共通する特性のいくつかが、他の場所でカバーされています:
- グリッサンドは最も特徴的なハープのテクニックです – グリッサンド。
- ビズビッリャンド (bisbigliando) はトレモロとして記述されます – トレモロの繰り返し。
- ナチュラル ハーモニクスは ハーモニクス でカバーされています。
- アルペジオの向きと非アルペジオについては、アルペジオ を参照してください。
参照
記譜法リファレンス: トレモロの繰り返し, グリッサンド, アルペジオ, ハーモニクス
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ハープのためのリファレンス ] | [ 上へ : ハープ ] | [ フレットの無い弦楽器 > ] |
ハープ ペダル
ハープはオクターブ毎に 7 本の弦を持ち、それらはナチュラル ピッチ、フラット ピッチ、あるいはシャープ ピッチの音を出すことができます。レバー ハープは各弦を個別に調整することができますが、ペダル ハープは 1 つのペダルで同じピッチ名を持つすべての弦を制御します。演奏者の左から右に向かって、左のペダル D, C, それに B、右のペダルは E, F, G, それに A です。ペダルのポジションをテキスト記号で指示することがあります:
\textLengthOn cis''1_\markup \concat \vcenter { [D \flat C \sharp B|E \sharp F \sharp G A \flat] } c''!1_\markup \concat \vcenter { [ C \natural ] }
あるいはペダル ダイアグラムで指示することもあります:
\textLengthOn cis''1_\markup { \harp-pedal "^v-|vv-^" } c''!1_\markup { \harp-pedal "^o--|vv-^" }
\harp-pedal
コマンドは文字列を受け取ります。^
はペダル ポジションを上 (フラット ピッチ)、-
はペダル ポジションを真ん中 (ナチュラル ピッチ)、v
はペダル ポジションを下 (シャープ ピッチ)、|
区切り線です。接頭辞 o
は、その後のペダル記号を丸で囲みます。
参照
記譜法リファレンス: テキスト スクリプト, Instrument Specific Markup
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ハープ ペダル ] | [ 上へ : 専門的な記譜法 ] | [ フレットの無い弦楽器で共通の記譜法 > ] |
2.3 フレットの無い弦楽器
このセクションではフレットの無い弦楽器 – 主にオーケストラで使用される弦楽器 – のための楽譜を記述する際に有用な情報とリファレンスを提供します。
2.3.1 フレットの無い弦楽器で共通の記譜法 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < フレットの無い弦楽器 ] | [ 上へ : フレットの無い弦楽器 ] | [ フレットの無い弦楽器のためのリファレンス > ] |
2.3.1 フレットの無い弦楽器で共通の記譜法
フレットの無い弦楽器のための特殊な記譜法は少ししかありません。フレットの無い弦楽器の演奏は単一の譜で記譜され、通常は 1 つのボイスしか必要としません。ダブル ストップ (重音奏法) やディヴィジ (divisi) パッセージで 2 つのボイスが必要となる場合もあります。
フレットの無い弦楽器のためのリファレンス | ||
ボーイング指示 | ||
ハーモニクス | ||
スナップ (バルトーク) ピッツィカート |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < フレットの無い弦楽器で共通の記譜法 ] | [ 上へ : フレットの無い弦楽器で共通の記譜法 ] | [ ボーイング指示 > ] |
フレットの無い弦楽器のためのリファレンス
オーケストラの弦楽器や他の弓を使う楽器で用いられる記譜法のほとんどは他の場所でカバーされています。
- “pizz.” や “arco” などのテキスト指示は、単なるテキストとして付け加えます – テキスト スクリプト を参照してください。
- 親指の指示も含めた運指は、運指の指示 で説明しています。
- ダブル ストップは通常、和音として記述します – 和音の音符 を参照してください。和音を弾く方向を付け加えることもできます – アルペジオ を参照してください。
- 弦楽四重奏のためのテンプレートが String quartet templates にあります。他の例はコード断片集で示されています。
参照
学習マニュアル: String quartet templates
記譜法リファレンス: テキスト スクリプト, 運指の指示, 和音の音符, アルペジオ
コード断片集: Unfretted strings
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < フレットの無い弦楽器のためのリファレンス ] | [ 上へ : フレットの無い弦楽器で共通の記譜法 ] | [ ハーモニクス > ] |
ボーイング指示
ボーイング指示はアーティキュレーションとして作成します。アーティキュレーションについては、アーティキュレーションと装飾 で説明しています。
ボーイングのコマンド
– \upbow
と \downbow
–
は、以下のようにスラーと一緒に用います:
\relative { c''4(\downbow d) e(\upbow f) }
弦番号として、(デフォルトの丸囲みアラビア数字ではなく) ローマ数字を追加することができます。弦番号の指示 を参照してください。
他にも、弦の指示はマークアップ コマンドを用いて表示することができます。アーティキュレーションで開放弦を指示することもできます。
a'4 \open \romanStringNumbers a'\2 a'2^\markup { \small "sul A" }
定義済みコマンド
\downbow
,
\upbow
,
\open
,
\romanStringNumbers
参照
記譜法リファレンス: アーティキュレーションと装飾, 弦番号の指示, スラー
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ボーイング指示 ] | [ 上へ : フレットの無い弦楽器で共通の記譜法 ] | [ スナップ (バルトーク) ピッツィカート > ] |
ハーモニクス
ナチュラル ハーモニクス
いくつかの方法でナチュラル ハーモニクスを記譜することができます。一般的に、ダイアモンド形の符頭は、符頭がダイアモンド形ではない場合に押さえる弦に触れることを意味します。
\relative d'' { d4 e4. \harmonicsOn d8 e e d4 e4. \harmonicsOff d8 e e }
一方、鳴らすピッチに通常の符頭を記譜すると共に、小さな丸を付けることでハーモニクスとして演奏することを示す方法もあります:
d''2^\flageolet d''_\flageolet
より小さな丸を描くこともできます。フレットの無い弦楽器のためのリファレンス にあるコード断片集を参照してください。
アーティフィシャル ハーモニクス
アーティフィシャル ハーモニクスは 2 つの音符で記譜します – 1 つは通常の符頭でストップ ポジションを示し、もう 1 つは中空のダイアモンド形の符頭でハーモニクス ポジションを示します。
\harmonic
で記譜したアーティフィシャル ハーモニクスは符点を持ちません。符点を付ける必要がある場合は、コンテキスト プロパティ harmonicDots
を設定します。
\relative e' { <e a\harmonic>2. <c g'\harmonic>4 \set harmonicDots = ##t <e a\harmonic>2. <c g'\harmonic>4 }
参照
音楽用語集: harmonics
記譜法リファレンス: 特殊な符頭, フレットの無い弦楽器のためのリファレンス
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ハーモニクス ] | [ 上へ : フレットの無い弦楽器で共通の記譜法 ] | [ フレットのある弦楽器 > ] |
スナップ (バルトーク) ピッツィカート
スナップ ピッツィカート (snap pizzicato) – バルトーク ピッツィカート (Bartók pizzicato) とも呼ばれます – は、ピッツィカートの 1 つで、故意に弦を上 (フィンガーボードと垂直) に引いて、弦をフィンガーボードにぶつけます。
\relative { c'4\snappizzicato <c' e g>4\snappizzicato <c' e g>4^\snappizzicato <c, e g>4_\snappizzicato }
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < スナップ (バルトーク) ピッツィカート ] | [ 上へ : 専門的な記譜法 ] | [ フレットのある弦楽器で共通の記譜法 > ] |
2.4 フレットのある弦楽器
このセクションでは、フレットのある弦楽器に特有の記譜法のいくつかの側面について説明します。
2.4.1 フレットのある弦楽器で共通の記譜法 | ||
2.4.2 ギター | ||
2.4.3 バンジョー | ||
2.4.4 リュート |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < フレットのある弦楽器 ] | [ 上へ : フレットのある弦楽器 ] | [ フレットのある弦楽器のためのリファレンス > ] |
2.4.1 フレットのある弦楽器で共通の記譜法
このセクションでは、フレットのある弦楽器で共通する記譜法について説明します。
フレットのある弦楽器のためのリファレンス | ||
弦番号の指示 | ||
デフォルトのタブ譜 | ||
カスタム タブ譜 | ||
フレット ダイアグラム マークアップ | ||
あらかじめ定義されたフレット ダイアグラム | ||
自動フレット ダイアグラム | ||
右手の運指 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < フレットのある弦楽器で共通の記譜法 ] | [ 上へ : フレットのある弦楽器で共通の記譜法 ] | [ 弦番号の指示 > ] |
フレットのある弦楽器のためのリファレンス
フレットのある弦楽器の演奏は通常、単一の譜で、伝統的な音楽記譜法あるいはタブ譜で記譜されます。これら 2 つが組み合わされることがあり、特にポピュラー音楽では伝統的な記譜法の譜の上にコード ダイアグラムを配置することが一般的です。ギターとバンジョーは移調楽器であり、楽譜よりも 1 オクターブ下の音を出します。これらの楽器のための楽譜は音部記号 "treble_8"
(あるいは、正しい MIDI 出力を得るために \transposition c
)
を使うべきです。フレットのある弦楽器に関係する他のいくつかの要素は他の場所でカバーされています:
- 運指は 運指の指示 で説明しています。
- レセ ヴィブレ (Laissez vibrer) タイは、アルペジオとトレモロで使われるタイと同様に、タイ で説明しています。
- 複数のボイスを処理するための説明は、衝突の解決 にあります。
- ハーモニクス指示についての説明は、ハーモニクス にあります。
参照
記譜法リファレンス: 運指の指示, タイ, 衝突の解決, 楽器名, 音楽を並列に記述する, アルペジオ, アーティキュレーションの一覧, 音部記号, 楽器の移調
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < フレットのある弦楽器のためのリファレンス ] | [ 上へ : フレットのある弦楽器で共通の記譜法 ] | [ デフォルトのタブ譜 > ] |
弦番号の指示
音符の後に \number
を付けることによって、演奏する音符の弦を指示することができます。
\clef "treble_8" c4\5 e\4 g2\3 <c\5 e\4 g\3>1
運指と弦の指示を一緒に使う場合、明示的に作成された和音の中にある場合に のみ、 それら 2 要素を記述する順序で配置を制御することができます: 和音全体や和音の 中にない 単独の音符に適用される場合、運指記号は異なるメカニズムで配置されます。
\clef "treble_8" g4\3-0 g-0\3 <g\3-0> <g-0\3>
弦番号も、フレットの無い弦楽器の慣習のようにロマン数字で表示したり、譜の上ではなく下に配置することができます。
\clef "treble_8" c'2\2 a\3 \romanStringNumbers c'\2 \set stringNumberOrientations = #'(down) a\3 \arabicStringNumbers g1\4
Selected Snippets
和音内の運指記号の位置をコントロールする
運指番号の位置を精密にコントロールすることができます。位置の設定が適用されるためには、単一の音符であっても和音構造 <> を用いる必要があります。
\relative c' { \set fingeringOrientations = #'(left) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(down) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(down right up) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(up) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(left) <c-1>2 \set fingeringOrientations = #'(down) <e-3>2 \set stringNumberOrientations = #'(up left down) <f\3 a\2 c\1>1 \set strokeFingerOrientations = #'(down right up) <c\rightHandFinger #1 e\rightHandFinger #2 c'\rightHandFinger #4 > }
運指記号を譜の内側に表示する
デフォルトでは、縦方向の運指記号は譜の外側に配置されます。この挙動を取り消すことができます。注意: この場合、和音でない場合にも <> を用いる必要があります。
\relative c' { <c-1 e-2 g-3 b-5>2 \override Fingering.staff-padding = #'() <c-1 e-2 g-3 b-5>4 g'-0 a8[-1 b]-2 g-0 r \override Fingering.add-stem-support = ##f a[-1 b]-2 g-0 r \override Fingering.add-stem-support = ##t a[-1 b]-2 g-0 r \override Fingering.add-stem-support = #only-if-beamed a[-1 b]-2 g-0 r }
定義済みコマンド
\arabicStringNumbers
,
\romanStringNumbers
.
参照
記譜法リファレンス: 運指の指示
コード断片集: Fretted strings
内部リファレンス: StringNumber, Fingering
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 弦番号の指示 ] | [ 上へ : フレットのある弦楽器で共通の記譜法 ] | [ カスタム タブ譜 > ] |
デフォルトのタブ譜
弦をはじく楽器の楽譜は、しばしばタブ譜で記譜されます。伝統的な記譜法ではピッチが符頭で記述されるのに対して、数字 (あるいは、歴史上存在する楽譜では文字のような記号) で記述されます。タブ譜では、譜線は演奏される音符の弦を意味し、譜線上に配置される数字は対応する弦で押さえるべきフレットを意味します。同時に弾く音符は垂直方向に揃えられていることに注意してください。
デフォルトでは、弦 1 は一番上の弦であり、TabStaff
の一番上の線に対応します。TabStaff
のチューニングは、デフォルトでは、標準ギター (6 弦) のチューニングです。音符は、TabStaff
コンテキストと TabVoice
コンテキストを用いて、タブ譜として譜刻されます。筆記体のタブ譜の音部記号が自動的に付け加えられます。
\new TabStaff \relative { a,8 a' <c e> a d,8 a' <d f> a }
デフォルトのタブ譜は、音符の演奏時間や他の音楽記号 – 例えば、表現記号など – を保持しません。
symbols = { \time 3/4 c4-.^"Allegro" d( e) f4-.\f g a^\fermata \mark \default c8_.\<\( c16 c~ 2\! c'2.\prall\) } \score { << \new Staff { \clef "G_8" \symbols } \new TabStaff { \symbols } >> }
伝統的な記譜法で用いられるすべての音楽記号をタブ譜に表示させるには、TabStaff
コンテキスト内でコマンド \tabFullNotation
を適用する必要があります。四分音符と区別するために、半音符には 2 重線の符幹が付けられるということを覚えておいてください。
symbols = { \time 3/4 c4-.^"Allegro" d( e) f4-.\f g a^\fermata \mark \default c8_.\<\( c16 c~ 2\! c'2.\prall\) } \score { \new TabStaff { \tabFullNotation \symbols } }
デフォルトでは、ピッチはフレット ボードの最も低い演奏ポジション
(ファースト ポジション) に割り当てられます。自動的に開放弦が優先されます。ピッチを弾く弦を指定したい場合は、ピッチ名に弦番号指示を付け加えます。弦番号指示を伝統的な記譜法の譜に譜刻したくないのであれば、弦番号指示のステンシルを上書きすることでそうできます。通常、minimumFret
の値を使って演奏ポジションを定義する方が入力しやすいです。minimumFret
のデフォルト値は 0 です。
minimumFret
がセットされている場合であっても、可能であれば開放弦が用いられます。この振る舞いは、restrainOpenStrings
に #t
をセットすることで変更することができます。
\layout { \omit Voice.StringNumber } \new StaffGroup << \new Staff \relative { \clef "treble_8" \time 2/4 c16 d e f g4 c,16\5 d\5 e\4 f\4 g4\4 c,16 d e f g4 } \new TabStaff \relative { c16 d e f g4 c,16\5 d\5 e\4 f\4 g4\4 \set TabStaff.minimumFret = #5 \set TabStaff.restrainOpenStrings = ##t c,16 d e f g4 } >>
和音繰り返し記号 q
を使って和音構造を繰り返すことができます。この機能をタブ譜で用いる場合、弦の削除や運指番号等のイベントがやっかいです。そのため、和音の繰り返し を用いたタブ譜の音楽表記で以下を明示的に実行したいと思うでしょう:
\chordRepeats #'(string-number-event fingering-event)
このコマンドは共通するものなので、\tabChordRepeats
でも用いることができます。
guitar = \relative { r8 <gis-2 cis-3 b-0>~ q4 q8~ 8 q4 } \new StaffGroup << \new Staff { \clef "treble_8" \guitar } \new TabStaff { \tabChordRepeats \guitar } >>
デフォルトでは、改行されるタイには括弧が付けられます。繰り返しの差し替え部分でも同様です。
ties = \relative { \repeat volta 2 { e'2. f4~ 2 g2~ } \alternative { { g4 f2. } { g4\repeatTie c,2. } } b1~ \break b1 \bar "|." } \score { << \new StaffGroup << \new Staff { \clef "treble_8" \ties } \new TabStaff { \ties } >> >> \layout { indent = #0 ragged-right = ##t } }
コマンド \hideSplitTiedTabNotes
は、括弧付きフレット番号の譜刻をキャンセルします:
ties = \relative { \repeat volta 2 { e'2. f4~ 2 g2~ } \alternative { { g4 f2. } { g4\repeatTie c,2. } } b1~ \break b1 \bar "|." } \score { << \new StaffGroup << \new Staff { \clef "treble_8" \ties } \new TabStaff { \hideSplitTiedTabNotes \ties } >> >> \layout { indent = #0 ragged-right = ##t } }
ハーモニック指示を演奏するピッチとしてタブ譜に付け加えることができます:
\layout { \omit Voice.StringNumber } firstHarmonic = { d'4\4\harmonic g'4\3\harmonic b'2\2\harmonic } \score { << \new Staff { \clef "treble_8" \firstHarmonic } \new TabStaff { \firstHarmonic } >> }
コマンド \harmonic
は常に和音ではなく単一の音符
(和音の中にあることもあり得ます) にくっつける必要があります。12 フレットの開放弦ハーモニクス (ナチュラル ハーモニクス) でのみ意味をなします。他の全てのハーモニクスは LilyPond によって算出されます。これは、フレットを行う手の指が触れる弦のフレットを指示することにより実現されます。
fretHarmonics = { \harmonicByFret #5 d16\4 \harmonicByFret #4 d16\4 \harmonicByFret #3 d8\4 \harmonicByFret #5 <g\3 b\2>2. } \score { << \new Staff { \clef "treble_8" \fretHarmonics } \new TabStaff { \fretHarmonics } >> }
上記の方法の代わりに、ハーモニクスの運指に弦の長さの比率を指定することによってハーモニクスを算出させることもできます。
ratioHarmonics = { \harmonicByRatio #1/2 <g\3 b\2 e'\1>4 \harmonicByRatio #1/3 <g\3 b\2 e'\1>4 \harmonicByRatio #1/4 { g8\3 b8\2 e'4\1 } } \score { << \new Staff { \clef "treble_8" \ratioHarmonics } \new TabStaff { \ratioHarmonics } >> }
Selected Snippets
タブ譜での符幹と連桁の挙動
タブ譜での符幹の向きは、伝統的な記譜法と同じように調整することができます。以下の例のように、連桁を水平にすることもできます。
\new TabStaff { \relative c { \tabFullNotation g16 b d g b d g b \stemDown \override Beam.concaveness = #10000 g,,16 b d g b d g b } }
タブ譜における多声
TabStaff
における多声は、通常の譜と同じように作成することができます。
upper = \relative c' { \time 12/8 \key e \minor \voiceOne r4. r8 e, fis g16 b g e e' b c b a g fis e } lower = \relative c { \key e \minor \voiceTwo r16 e d c b a g4 fis8 e fis g a b c } \score { << \new StaffGroup = "tab with traditional" << \new Staff = "guitar traditional" << \clef "treble_8" \new Voice = "upper" \upper \new Voice = "lower" \lower >> \new TabStaff = "guitar tab" << \new TabVoice = "upper" \upper \new TabVoice = "lower" \lower >> >> >> }
タブ譜で開放弦のハーモニクスを表示する
このスニペットは開放弦のハーモニクスを表示する方法を示しています。
openStringHarmonics = { \textSpannerDown \override TextSpanner.staff-padding = #3 \override TextSpanner.dash-fraction = #0.3 \override TextSpanner.dash-period = #1 %first harmonic \override TextSpanner.bound-details.left.text = \markup\small "1st harm. " \harmonicByFret #12 e,2\6\startTextSpan \harmonicByRatio #1/2 e,\6\stopTextSpan %second harmonic \override TextSpanner.bound-details.left.text = \markup\small "2nd harm. " \harmonicByFret #7 e,\6\startTextSpan \harmonicByRatio #1/3 e,\6 \harmonicByFret #19 e,\6 \harmonicByRatio #2/3 e,\6\stopTextSpan %\harmonicByFret #19 < e,\6 a,\5 d\4 > %\harmonicByRatio #2/3 < e,\6 a,\5 d\4 > %third harmonic \override TextSpanner.bound-details.left.text = \markup\small "3rd harm. " \harmonicByFret #5 e,\6\startTextSpan \harmonicByRatio #1/4 e,\6 \harmonicByFret #24 e,\6 \harmonicByRatio #3/4 e,\6\stopTextSpan \break %fourth harmonic \override TextSpanner.bound-details.left.text = \markup\small "4th harm. " \harmonicByFret #4 e,\6\startTextSpan \harmonicByRatio #1/5 e,\6 \harmonicByFret #9 e,\6 \harmonicByRatio #2/5 e,\6 \harmonicByFret #16 e,\6 \harmonicByRatio #3/5 e,\6\stopTextSpan %fifth harmonic \override TextSpanner.bound-details.left.text = \markup\small "5th harm. " \harmonicByFret #3 e,\6\startTextSpan \harmonicByRatio #1/6 e,\6\stopTextSpan \break %sixth harmonic \override TextSpanner.bound-details.left.text = \markup\small "6th harm. " \harmonicByFret #2.7 e,\6\startTextSpan \harmonicByRatio #1/7 e,\6\stopTextSpan %seventh harmonic \override TextSpanner.bound-details.left.text = \markup\small "7th harm. " \harmonicByFret #2.3 e,\6\startTextSpan \harmonicByRatio #1/8 e,\6\stopTextSpan %eighth harmonic \override TextSpanner.bound-details.left.text = \markup\small "8th harm. " \harmonicByFret #2 e,\6\startTextSpan \harmonicByRatio #1/9 e,\6\stopTextSpan } \score { << \new Staff \with { \omit StringNumber } { \new Voice { \clef "treble_8" \openStringHarmonics } } \new TabStaff { \new TabVoice { \openStringHarmonics } } >> }
フレットのある楽器のハーモニクスをタブ譜で表示する
フレットのある楽器のハーモニクスをタブ譜で表示する方法です。
pinchedHarmonics = { \textSpannerDown \override TextSpanner.bound-details.left.text = \markup {\halign #-0.5 \teeny "PH" } \override TextSpanner.style = #'dashed-line \override TextSpanner.dash-period = #0.6 \override TextSpanner.bound-details.right.attach-dir = #1 \override TextSpanner.bound-details.right.text = \markup { \draw-line #'(0 . 1) } \override TextSpanner.bound-details.right.padding = #-0.5 } harmonics = { %artificial harmonics (AH) \textLengthOn <\parenthesize b b'\harmonic>4_\markup { \teeny "AH 16" } <\parenthesize g g'\harmonic>4_\markup { \teeny "AH 17" } <\parenthesize d' d''\harmonic>2_\markup { \teeny "AH 19" } %pinched harmonics (PH) \pinchedHarmonics <a'\harmonic>2\startTextSpan <d''\harmonic>4 <e'\harmonic>4\stopTextSpan %tapped harmonics (TH) <\parenthesize g\4 g'\harmonic>4_\markup { \teeny "TH 17" } <\parenthesize a\4 a'\harmonic>4_\markup { \teeny "TH 19" } <\parenthesize c'\3 c''\harmonic>2_\markup { \teeny "TH 17" } %touch harmonics (TCH) a4( <e''\harmonic>2. )_\markup { \teeny "TCH" } } frettedStrings = { %artificial harmonics (AH) \harmonicByFret #4 g4\3 \harmonicByFret #5 d4\4 \harmonicByFret #7 g2\3 %pinched harmonics (PH) \harmonicByFret #7 d2\4 \harmonicByFret #5 d4\4 \harmonicByFret #7 a4\5 %tapped harmonics (TH) \harmonicByFret #5 d4\4 \harmonicByFret #7 d4\4 \harmonicByFret #5 g2\3 %touch harmonics (TCH) a4 \harmonicByFret #9 g2.\3 } \score { << \new Staff \with { \omit StringNumber } { \new Voice { \clef "treble_8" \harmonics } } \new TabStaff { \new TabVoice { \frettedStrings } } >> }
タブ譜でのスライド
スライドは Staff
と TabStaff
コンテキストの両方に表示することができます。
slides = { c'8\3(\glissando d'8\3) c'8\3\glissando d'8\3 \hideNotes \grace { g16\glissando } \unHideNotes c'4\3 \afterGrace d'4\3\glissando { \stemDown \hideNotes g16 } \unHideNotes } \score { << \new Staff { \clef "treble_8" \slides } \new TabStaff { \slides } >> \layout { \context { \Score \override Glissando.minimum-length = #4 \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods \override Glissando.thickness = #2 \omit StringNumber % or: %\override StringNumber.stencil = ##f } } }
タブ譜での和音のグリッサンド
和音のスライドはデフォルトで Staff
と TabStaff
の両方に表示されます。TabStaff
では、弦番号の自動計算の方法が和音と単一音で異なるため、弦番号が必要です。
myMusic = \relative c' { <c e g>1 \glissando <f a c> } \score { << \new Staff { \clef "treble_8" \myMusic } \new TabStaff \myMusic >> } \score { << \new Staff { \clef "treble_8" \myMusic } \new TabStaff \with { \override Glissando.style = #'none } { \myMusic } >> }
ハンマリング オンとプリング オフ
ハンマリング オンやプリング オフはスラーで得ることができます。
\new TabStaff { \relative c' { d4( e\2) a( g) } }
ボイスに対してハンマリング オンやプリング オフを使用する
ハンマリング オンやプリング オフの弧は、ボイス 1, 3 に対しては上向き、ボイス 2, 4 に対しては下向きになります。
\new TabStaff { \relative c' { << { \voiceOne g2( a) } \\ { \voiceTwo a,( b) } >> \oneVoice } }
和音に対してハンマリング オンやプリング オフを使用する
和音に対してハンマリング オンやプリング オフを用いる際、弧は 1 つしか描かれません。“二重の弧” は、doubleSlurs
プロパティを #t
にセットすることで描くことができます。
\new TabStaff { \relative c' { % chord hammer-on and pull-off \set doubleSlurs = ##t <g' b>8( <a c> <g b>) } }
参照
記譜法リファレンス: 和音の繰り返し, グリッサンド, ハーモニクス, 符幹, 繰り返しを描き出す
コード断片集: Fretted strings
内部リファレンス: TabNoteHead, TabStaff, TabVoice, Beam
既知の問題と警告
和音は特殊な方法では処理できません。そのため、自動弦セレクタは和音の中にある 2 つの音符に対して同じ弦を選択することが容易に起こり得ます。
\partCombine
を処理するには、TabStaff
は特別なやり方で作成されたボイスを使う必要があります:
melodia = \partCombine { e4 g g g } { e4 e e e } << \new TabStaff << \new TabVoice = "one" s1 \new TabVoice = "two" s1 \new TabVoice = "shared" s1 \new TabVoice = "solo" s1 { \melodia } >> >>
ギターの特殊効果はハーモニクスとスライドに制限されています。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < デフォルトのタブ譜 ] | [ 上へ : フレットのある弦楽器で共通の記譜法 ] | [ フレット ダイアグラム マークアップ > ] |
カスタム タブ譜
LilyPond のタブ譜は、音符に対するフレットを、その音符が割り当てられている弦に基づいて、自動的に算出します。フレットの算出を行うために、弦のチューニングを指定する必要があります。弦のチューニングは stringTunings
プロパティで指定します。
LilyPond にはあらかじめ定義された弦チューニングが用意されています – バンジョー、マンドリン、ギター、バス ギター、ウクレレ、バイオリン、ビオラ、チェロ、それにダブル バス用があります。LilyPond は、あらかじめ定義されたチューニングに対して、適切な移調をセットします。以下の例はバス ギター用であり、記述されている音符よりも 1 オクターブ低く演奏されます。
<< \new Voice \with { \omit StringNumber } { \clef "bass_8" \relative { c,4 d e f } } \new TabStaff \with { stringTunings = #bass-tuning } { \relative { c,4 d e f } } >>
デフォルトの弦チューニングは guitar-tuning
で、これは標準の EADGBE チューニングです。他のあらかじめ定義されたチューニングには、guitar-open-g-tuning
, mandolin-tuning
それに
banjo-open-g-tuning
があります。あらかじめ定義された弦チューニングは ‘ly/string-tunings-init.ly’ の中にあります。
望みに応じて任意の弦チューニングを作成することができます。\stringTuning
関数を用いて弦チューニングを定義し、カレント コンテキストの stringTunings
としてセットすることができます。
\stringTuning
の引数は、チューニングにおける各弦のピッチを定義する和音構造です。和音構造は絶対オクターブ モードにする必要があります
– 絶対オクターブ入力 を参照してください。和音の中で、一番大きな番号を持つ弦 (一般的に低い音の弦) が最初に来る必要があります。例えば、a''
, d''
, g'
, それに c'
のピッチを持つ
4 弦の楽器用の弦チューニングを定義することができます:
mynotes = { c'4 e' g' c'' | e''4 g'' b'' c''' } << \new Staff { \clef treble \mynotes } \new TabStaff { \set Staff.stringTunings = \stringTuning <c' g' d'' a''> \mynotes } >>
FretBoards
で stringTunings
プロパティ用いることで、自動的にフレット ダイアグラムを算出させることもできます。
弦チューニングは、あらかじめ定義されたフレット ダイアグラムに対するハッシュ キーの一部として使われます
上記の例を、以下のように書き換えることができます:
custom-tuning = \stringTuning <c' g' d'' a''> mynotes = { c'4 e' g' c'' | e''4 g'' b'' c''' } << \new Staff { \clef treble \mynotes } \new TabStaff { \set TabStaff.stringTunings = #custom-tuning \mynotes } >>
内部的には、弦チューニングは弦ピッチの Scheme リストです – それぞれの弦ピッチは各弦に対するピッチで、弦番号 1 から N の順に並んでいて、弦 1 はタブ譜の最上段、弦 N はタブ譜の最下段となります。通常、このリストは高いピッチから低いピッチの順になりますが、いくつかの楽器 (例えば、ウクレレ) の弦はピッチの高低順に並んでいません。
弦チューニング リストの中の弦ピッチは 1 つ 1 つが
LilyPond ピッチ オブジェクトです。ピッチ オブジェクトは Scheme 関数 ly:make-pitch
(
Scheme functions を参照してください) で作成されます。
\stringTuning
は和音構造から弦チューニング リストを作成します。
LilyPond は、TabStaff
の行数と自動的に算出される FretBoard
の弦数
(これは stringTunings
の要素数です) を自動的に算出します。
すべての TabStaff
コンテキストに同じカスタム チューニングを適用するには、下記のようにします:
\layout { \context { \TabStaff stringTunings = \stringTuning <c' g' d'' a''> } }
現代タブ譜の音部記号を使うこともできます。
\new TabStaff { \clef moderntab <a, e a>1 \break \clef tab <a, e a>1 }
現代タブ譜の音部記号は、4 から 7 弦までのタブ譜をサポートします。
TabStaff
は 4 分音のような微分音に対応しています。このような音はベンディングを使って演奏されます。
supportNonIntegerFret = ##t
が Score コンテキストにセットされている必要があります。しかしながら、微分音は FretBoards
ではサポートされていません。
\layout { \context { \Score supportNonIntegerFret = ##t } } custom-tuning = \stringTuning <e, a, d ges beh eeh'> mus = \relative { eeses'4 eeseh ees eeh e eih eis eisih eisis } << \new Staff << \clef "G_8" \mus >> \new TabStaff \with { stringTunings = \custom-tuning } \mus >>
参照
記譜法リファレンス: 絶対オクターブ入力, あらかじめ定義されたフレット ダイアグラム.
インストールされているファイル: ‘ly/string-tunings-init.ly’ ‘scm/tablature.scm’
コード断片集: Fretted strings
内部リファレンス: Tab_note_heads_engraver, Scheme functions.
既知の問題と警告
ウクレレなどのように弦がピッチ順に並んでいない楽器では、大抵の場合、 タブ譜の自動算出は正しく機能しません。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < カスタム タブ譜 ] | [ 上へ : フレットのある弦楽器で共通の記譜法 ] | [ あらかじめ定義されたフレット ダイアグラム > ] |
フレット ダイアグラム マークアップ
フレット ダイアグラムを注釈のマークアップとして楽譜に追加することができます。このマークアップは記譜するフレット ダイアグラムについての情報を保持します。フレット ダイアグラムのマークアップ インターフェイスは 3 種類あります: 標準、簡易、それに冗長です。これら 3 種類のインターフェイスが作り出すマークアップは等価ですが、そのマークアップ文字列が持つ情報量は異なります。フレット ダイアグラムを定義するのに用いられるマークアップ文字列の文法についての詳細は、Instrument Specific Markup を参照してください。
標準フレット ダイアグラムのマークアップ文字列は、弦の上に配置されるドットの弦番号とフレット番号を示します。さらに、開放弦と消音 (ミュート) 弦を示すこともできます。
<< \new ChordNames { \chordmode { c1 d:m } } \new Staff { \clef "treble_8" <c e g c' e'>1^\markup { \fret-diagram "6-x;5-3;4-2;3-o;2-1;1-o;" } <d a d' f'>1^\markup { \fret-diagram "6-x;5-x;4-o;3-2;2-3;1-1;" } } >>
フレット ダイアグラム マークアップ文字列のダイアグラムに、バレー指示を追加することができます。
<< \new ChordNames { \chordmode { f1 g } } \new Staff { \clef "treble_8" <f, c f a c' f'>1^\markup { \fret-diagram "c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;" } <g, d g b d' g'>1^\markup { \fret-diagram "c:6-1-3;6-3;5-5;4-5;3-4;2-3;1-3;" } } >>
フレット ダイアグラムのサイズ、それにダイアグラムの中のフレット数をフレット ダイアグラム マークアップ文字列の中で変更することができます。
<< \new ChordNames { \chordmode { f1 g } } \new Staff { \clef "treble_8" <f, c f a c' f'>1^\markup { \fret-diagram "s:1.5;c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;" } <g, b, d g b g'>1^\markup { \fret-diagram "h:6;6-3;5-2;4-o;3-o;2-o;1-3;" } } >>
バンジョーやウクレレなどの弦数に合わせて、フレット ダイアグラム マークアップ文字列でフレット ダイアグラムの弦数を変更することができます。
<< \new ChordNames { \chordmode { a1 } } \new Staff { % ウクレレの 'A' コード a'1^\markup { \fret-diagram "w:4;4-2-2;3-1-1;2-o;1-o;" } } >>
フレット ダイアグラム マークアップ文字列で運指の指示を追加して、配置を制御することができます。
<< \new ChordNames { \chordmode { c1 d:m } } \new Staff { \clef "treble_8" <c e g c' e'>1^\markup { \fret-diagram "f:1;6-x;5-3-3;4-2-2;3-o;2-1-1;1-o;" } <d a d' f'>1^\markup { \fret-diagram "f:2;6-x;5-x;4-o;3-2-2;2-3-3;1-1-1;" } } >>
フレット ダイアグラム マークアップ文字列でドットの大きさと位置を制御することができます。
<< \new ChordNames { \chordmode { c1 d:m } } \new Staff { \clef "treble_8" <c e g c' e'>1^\markup { \fret-diagram "d:0.35;6-x;5-3;4-2;3-o;2-1;1-o;" } <d a d' f'>1^\markup { \fret-diagram "p:0.2;6-x;5-x;4-o;3-2;2-3;1-1;" } } >>
フレット ダイアグラムは左利き用に譜刻できます。
\markup \center-column { "C" "(left-handed)" \override #`(fret-diagram-details . ((handedness . ,LEFT))) \fret-diagram "6-x;5-3-3;4-2-2;3-o;2-1;1-o;" }
fret-diagram-terse マークアップ文字列は弦番号を省略します。弦番号はセミコロンで示します。ダイアグラムの弦毎にセミコロンを記述します。最初のセミコロンは最高の弦番号に対応し、最後のセミコロンは第 1 弦に対応します。消音弦、開放弦、それにフレット番号を示すことができます。
<< \new ChordNames { \chordmode { c1 d:m } } \new Staff { \clef "treble_8" <c e g c' e'>1^\markup { \fret-diagram-terse "x;3;2;o;1;o;" } <d a d' f'>1^\markup { \fret-diagram-terse "x;x;o;2;3;1;" } } >>
fret-diagram-terse マークアップ文字列にバレー指示を含めることができます。
<< \new ChordNames { \chordmode { f1 g } } \new Staff { \clef "treble_8" <f, c f a c' f'>1^\markup { \fret-diagram-terse "1-(;3;3;2;1;1-);" } <g, d g b d' g'>1^\markup { \fret-diagram-terse "3-(;5;5;4;3;3-);" } } >>
fret-diagram-terse マークアップ文字列に運指の指示を含めることができます。
<< \new ChordNames { \chordmode { c1 d:m } } \new Staff { \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string \clef "treble_8" <c e g c' e'>1^\markup { \fret-diagram-terse "x;3-3;2-2;o;1-1;o;" } <d a d' f'>1^\markup { \fret-diagram-terse "x;x;o;2-2;3-3;1-1;" } } >>
fret-diagram-terse マークアップを使っている時、他のフレット ダイアグラム プロパティの調節には
\override
を用いる必要があります。
fret-diagram-terse マークアップでは、1 つの弦につき 1 つの指示しか追加できません。1 つの弦につき複数の指示を追加したい場合には、標準のフレット ダイアグラムか、fret-diagram-verbose を使用してください。
fret-diagram-verbose マークアップ文字列のフォーマットは Scheme リストです。リストの各要素はフレット ダイアグラム上に配置する要素を示しています。
<< \new ChordNames { \chordmode { c1 d:m } } \new Staff { \clef "treble_8" <c e g c' e'>1^\markup { \fret-diagram-verbose #'( (mute 6) (place-fret 5 3) (place-fret 4 2) (open 3) (place-fret 2 1) (open 1) ) } <d a d' f'>1^\markup { \fret-diagram-verbose #'( (mute 6) (mute 5) (open 4) (place-fret 3 2) (place-fret 2 3) (place-fret 1 1) ) } } >>
fret-diagram-verbose マークアップ文字列に運指の指示とバレー指示を含めることができます。fret-diagram-verbose インターフェイスに特有なこととして、 カポ指示をフレット ダイアグラム上に配置することができます。カポ指示はすべての弦に重なる太い線です。カポを持つフレットは、フレット ダイアグラムの中の最も低いフレットです。
運指の指示を含むドットは、括弧付きのものも含めて色を付けることができます。括弧の色も独立に変更することができます。
マークアップはドットの中にも配置することができます。
<< \new ChordNames { \chordmode { f1 g c c b } } \new Staff { \clef "treble_8" \override Voice.TextScript .fret-diagram-details.finger-code = #'below-string <f, c f a c' f'>1^\markup { \fret-diagram-verbose #'( (place-fret 6 1) (place-fret 5 3) (place-fret 4 3) (place-fret 3 2) (place-fret 2 1) (place-fret 1 1) (barre 6 1 1) ) } <g, b, d g b g'>1^\markup { \fret-diagram-verbose #'( (place-fret 6 3 2) (place-fret 5 2 1) (open 4) (open 3) (open 2) (place-fret 1 3 3) ) } <c g c' e' g'>1^\markup { \fret-diagram-verbose #'( (capo 3) (mute 6) (place-fret 4 5 1) (place-fret 3 5 2) (place-fret 2 5 3) ) } \override Voice.TextScript.size = 1.4 <c g c' e' g'>1^\markup { \fret-diagram-verbose #'( (place-fret 6 3 1 red parenthesized default-paren-color) (place-fret 5 3 1 inverted) (place-fret 4 5 2 blue parenthesized) (place-fret 3 5 3 blue) (place-fret 2 5 4 blue) (place-fret 1 3 1 inverted) ) } \override Voice.TextScript.size = 1.5 <b, fis b dis' fis'>1^\markup \override #'(fret-diagram-details . ((finger-code . in-dot))) \fret-diagram-verbose #`( (place-fret 5 2 1) (place-fret 4 4 "fis" red) (place-fret 3 4 "b" red) (place-fret 2 4 ,#{ \markup \concat { \vcenter "d" \fontsize #-5 \musicglyph "accidentals.sharp"} #} red) (place-fret 1 2 1) ) } >>
fret-diagram-verbose マークアップを使っている時、他のフレット ダイアグラム プロパティの調節には
\override
を用いる必要があります。
ユーザの好みに応じて、fret-diagram-interface
プロパティでフレット ダイアグラムのグラフィック レイアウトをカスタマイズすることが可能です。
詳細は、
fret-diagram-interface を参照してください。フレット ダイアグラム マークアップ用のインターフェイス プロパティは
Voice.TextScript
に属します。
Selected Snippets
フレット図の向きを変更する
フレット図は 3 種類の向きを指定できます。デフォルトの揃え位置は、一番上にある弦またはフレットです。
\include "predefined-guitar-fretboards.ly" << \chords { c1 c1 c1 } \new FretBoards { \chordmode { c1 \override FretBoard.fret-diagram-details.orientation = #'landscape c1 \override FretBoard.fret-diagram-details.orientation = #'opposing-landscape c1 } } \new Voice { c'1 c'1 c' } >>
マークアップのフレット図をカスタマイズする
フレット図のプロパティは fret-diagram-details
からセットできます。マークアップのフレット図では、オーバライドは Voice.TextScript
オブジェクトや、マークアップに直接適用されます。
<< \chords { c1 | c | c | d } \new Voice = "mel" { \textLengthOn % Set global properties of fret diagram \override TextScript.size = #'1.2 \override TextScript.fret-diagram-details.finger-code = #'in-dot \override TextScript.fret-diagram-details.dot-color = #'white %% C major for guitar, no barre, using defaults % terse style c'1^\markup { \fret-diagram-terse "x;3-3;2-2;o;1-1;o;" } %% C major for guitar, barred on third fret % verbose style % size 1.0 % roman fret label, finger labels below string, straight barre c'1^\markup { % standard size \override #'(size . 1.0) { \override #'(fret-diagram-details . ( (number-type . roman-lower) (finger-code . in-dot) (barre-type . straight))) { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1) (place-fret 4 5 2) (place-fret 3 5 3) (place-fret 2 5 4) (place-fret 1 3 1) (barre 5 1 3)) } } } %% C major for guitar, barred on third fret % verbose style % landscape orientation, arabic numbers, M for mute string % no barre, fret label down or left, small mute label font c'1^\markup { \override #'(fret-diagram-details . ( (finger-code . below-string) (number-type . arabic) (label-dir . -1) (mute-string . "M") (orientation . landscape) (barre-type . none) (xo-font-magnification . 0.4) (xo-padding . 0.3))) { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1) (place-fret 4 5 2) (place-fret 3 5 3) (place-fret 2 5 4) (place-fret 1 3 1) (barre 5 1 3)) } } %% simple D chord % terse style % larger dots, centered dots, fewer frets % label below string d'1^\markup { \override #'(fret-diagram-details . ( (finger-code . below-string) (dot-radius . 0.35) (dot-position . 0.5) (fret-count . 3))) { \fret-diagram-terse "x;x;o;2-1;3-2;2-3;" } } } >>
参照
記譜法リファレンス: Instrument Specific Markup
コード断片集: Fretted strings
内部リファレンス: fret-diagram-interface
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < フレット ダイアグラム マークアップ ] | [ 上へ : フレットのある弦楽器で共通の記譜法 ] | [ 自動フレット ダイアグラム > ] |
あらかじめ定義されたフレット ダイアグラム
フレット ダイアグラムを FretBoards
コンテキストを用いて表示させることができます。デフォルトでは、 FretBoards
コンテキストは参照テーブルに保存されているフレット ダイアグラムを表示します:
\include "predefined-guitar-fretboards.ly" \new FretBoards { \chordmode { c1 d } }
あらかじめ定義されたフレット ダイアグラムのデフォルトは
ファイル ‘predefined-guitar-fretboards.ly’ の中にあります。
フレット ダイアグラムは、コードのピッチと現在使われている stringTunings
の値に基づいて保存されます。‘predefined-guitar-fretboards.ly’ が保持しているあらかじめ定義されたフレット ダイアグラムは、ギター用だけです。‘predefined-guitar-fretboards.ly’ の中にある例に従って、他の楽器あるいは他のチューニング用のあらかじめ定義されたフレット ダイアグラムを追加することができます。
ウクレレ用のフレット ダイアグラムはファイル ‘predefined-ukulele-fretboards.ly’ の中にあります。
\include "predefined-ukulele-fretboards.ly" myChords = \chordmode { a1 a:m a:aug } \new ChordNames { \myChords } \new FretBoards { \set Staff.stringTunings = #ukulele-tuning \myChords }
マンドリン用のフレット ダイアグラムはファイル ‘predefined-mandolin-fretboards.ly’ の中にあります。
\include "predefined-mandolin-fretboards.ly" myChords = \chordmode { c1 c:m7.5- c:aug } \new ChordNames { \myChords } \new FretBoards { \set Staff.stringTunings = #mandolin-tuning \myChords }
コードのピッチを入力する方法は、同時進行する音楽として入力するか、コード モード (和音モードの概要 を参照してください) を用いて入力するかのどちらかです。
\include "predefined-guitar-fretboards.ly" \new FretBoards { \chordmode { c1 } <c' e' g'>1 }
コード ネームとフレット ダイアグラムを一緒に表示させることが一般的に行われます。これを実現するには、ChordNames
コンテキストを FretBoards
コンテキストと並列に配置して、両方のコンテキストに同じ音楽を与えます。
\include "predefined-guitar-fretboards.ly" mychords = \chordmode { c1 f g } << \new ChordNames { \mychords } \new FretBoards { \mychords } >>
あらかじめ定義されたフレット ダイアグラムは、c 移調されたコードに対するダイアグラムがフレット ダイアグラム テーブルに保存されていれば、移調可能です。
\include "predefined-guitar-fretboards.ly" mychords = \chordmode { c1 f g } mychordlist = { \mychords \transpose c e { \mychords } } << \new ChordNames { \mychordlist } \new FretBoards { \mychordlist } >>
ギター用のあらかじめ定義されたフレット ダイアグラム テーブルは、17 キーのそれぞれに対して 8 つのコード (major, minor, augmented, diminished, dominant seventh, major seventh, minor seventh, dominant ninth) を保持しています。ウクレレ用のあらかじめ定義されたフレット ダイアグラム テーブルは、上記のコードに加えて、3 つのコード (major sixth, suspended second, それに suspended fourth) を保持しています。あらかじめ定義されたフレット ダイアグラムの完全なリストは 定義されたフレット図 で示されています。テーブルにエントリされていないコードがある場合、FretBoards エングラーバは 自動フレット ダイアグラム で説明する自動フレット ダイアグラム機能を用いてフレット ダイアグラムを算出します。
\include "predefined-guitar-fretboards.ly" mychords = \chordmode { c1 c:maj9 } << \new ChordNames { \mychords } \new FretBoards { \mychords } >>
フレット ダイアグラムをフレット ダイアグラム テーブルに追加することができます。ダイアグラムを追加するには、ダイアグラムのハッシュ テーブル、ダイアグラムのコード、使用するチューニング、それにダイアグラムの定義を指定する必要があります。通常、ハッシュ テーブルは default-fret-table です。ダイアグラムの定義は fret-diagram-terse
定義文字列またはfret-diagram-verbose
マーキング リストのどちらかです。
\include "predefined-guitar-fretboards.ly" \storePredefinedDiagram #default-fret-table \chordmode { c:maj9 } #guitar-tuning "x;3-2;o;o;o;o;" mychords = \chordmode { c1 c:maj9 } << \new ChordNames { \mychords } \new FretBoards { \mychords } >>
ピッチのオクターブを変えることで、同じコード ネームに対して異なるフレット ダイアグラムを保存することができます。オクターブを変える場合は、デフォルトのオクターブに対して少なくとも 2 オクターブ上げるか下げる必要があります。デフォルトの 1 オクターブ上または下のオクターブは、フレットボードの移調に使用されるためです。
\include "predefined-guitar-fretboards.ly" \storePredefinedDiagram #default-fret-table \chordmode { c'' } #guitar-tuning #(offset-fret 2 (chord-shape 'bes guitar-tuning)) mychords = \chordmode { c1 c'' } << \new ChordNames { \mychords } \new FretBoards { \mychords } >>
LilyPond はフレット ダイアグラムに加えて、コード シェイプの内部リストを保存します。コード シェイプとは、押さえるフレットをネック上の別の位置にシフトすることで別のコードを演奏できるようなフレット ダイアグラムです (訳注: 日本ではよくハイコードと呼ばれます)。コード シェイプを内部リストに追加することができ、フレット ダイアグラムを定義するために使うことができます。コード シェイプはネック上の様々な位置に移動することができるため、通常は開放弦を持ちません。フレット ダイアグラムと同様に、 コード シェイプは fret-diagram-terse 文字列でも fret-diagram-verbose リストでも入力することができます。
\include "predefined-guitar-fretboards.ly" % 新しいコード シェイプを追加します \addChordShape #'powerf #guitar-tuning "1-1;3-3;3-4;x;x;x;" % パワー コード シェイプを基にして、新しいコードをいくつか追加します \storePredefinedDiagram #default-fret-table \chordmode { f'' } #guitar-tuning #(chord-shape 'powerf guitar-tuning) \storePredefinedDiagram #default-fret-table \chordmode { g'' } #guitar-tuning #(offset-fret 2 (chord-shape 'powerf guitar-tuning)) mychords = \chordmode { f1 f'' g g'' } << \new ChordNames { \mychords } \new FretBoards { \mychords } >>
fret-diagram-interface
のプロパティを通じて、フレット ダイアグラムのグラフィカル レイアウトをユーザの好みに応じてカスタマイズすることができます。詳細は
fret-diagram-interface を参照してください。あらかじめ定義されたフレット ダイアグラムのインターフェイス プロパティはFretBoards.FretBoard
に属します。
Selected Snippets
フレットボードのフレット図をカスタマイズする
フレット図のプロパティは fret-diagram-details
からセットできます。FretBoardのフレット図では、オーバライドは FretBoards.FretBoard
オブジェクトに適用されます。FretBoards
は Voice
のように最下位のコンテキストであるため、プロパティのオーバライドでは省略することができます。
\include "predefined-guitar-fretboards.ly" \storePredefinedDiagram #default-fret-table \chordmode { c' } #guitar-tuning #"x;1-1-(;3-2;3-3;3-4;1-1-);" % shorthand oo = #(define-music-function (grob-path value) (list? scheme?) #{ \once \override $grob-path = #value #}) << \new ChordNames { \chordmode { c1 | c | c | d } } \new FretBoards { % Set global properties of fret diagram \override FretBoards.FretBoard.size = #'1.2 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \override FretBoard.fret-diagram-details.dot-color = #'white \chordmode { c \oo FretBoard.size #'1.0 \oo FretBoard.fret-diagram-details.barre-type #'straight \oo FretBoard.fret-diagram-details.dot-color #'black \oo FretBoard.fret-diagram-details.finger-code #'below-string c' \oo FretBoard.fret-diagram-details.barre-type #'none \oo FretBoard.fret-diagram-details.number-type #'arabic \oo FretBoard.fret-diagram-details.orientation #'landscape \oo FretBoard.fret-diagram-details.mute-string #"M" \oo FretBoard.fret-diagram-details.label-dir #LEFT \oo FretBoard.fret-diagram-details.dot-color #'black c' \oo FretBoard.fret-diagram-details.finger-code #'below-string \oo FretBoard.fret-diagram-details.dot-radius #0.35 \oo FretBoard.fret-diagram-details.dot-position #0.5 \oo FretBoard.fret-diagram-details.fret-count #3 d } } \new Voice { c'1 | c' | c' | d' } >>
他の楽器のためのフレットボードを定義する
定義されたフレット図のリストに、標準的なギターのフレット図以外のものを追加することができます。このファイルは、ベネズエラのクアトロのために調弦といくつかのフレット図を追加する例を示しています。
このファイルは和音に運指を追加し、フレット図や TabStaff
に表示する方法も示しています。五線譜には運指は表示されません。
これらのフレット図は弦の情報を含んでいるため、移調することができません。これは将来修正される予定があります。
% add FretBoards for the Cuatro % Note: This section could be put into a separate file % predefined-cuatro-fretboards.ly % and \included into each of your compositions cuatroTuning = #`(,(ly:make-pitch 0 6 0) ,(ly:make-pitch 1 3 SHARP) ,(ly:make-pitch 1 1 0) ,(ly:make-pitch 0 5 0)) dSix = { <a\4 b\1 d\3 fis\2> } dMajor = { <a\4 d\1 d\3 fis \2> } aMajSeven = { <a\4 cis\1 e\3 g\2> } dMajSeven = { <a\4 c\1 d\3 fis\2> } gMajor = { <b\4 b\1 d\3 g\2> } \storePredefinedDiagram #default-fret-table \dSix #cuatroTuning #"o;o;o;o;" \storePredefinedDiagram #default-fret-table \dMajor #cuatroTuning #"o;o;o;3-3;" \storePredefinedDiagram #default-fret-table \aMajSeven #cuatroTuning #"o;2-2;1-1;2-3;" \storePredefinedDiagram #default-fret-table \dMajSeven #cuatroTuning #"o;o;o;1-1;" \storePredefinedDiagram #default-fret-table \gMajor #cuatroTuning #"2-2;o;1-1;o;" % end of potential include file /predefined-cuatro-fretboards.ly #(set-global-staff-size 16) primerosNames = \chordmode { d:6 d a:maj7 d:maj7 g } primeros = { \dSix \dMajor \aMajSeven \dMajSeven \gMajor } \score { << \new ChordNames { \set chordChanges = ##t \primerosNames } \new Staff { \new Voice \with { \remove "New_fingering_engraver" } \relative c'' { \primeros } } \new FretBoards { \set Staff.stringTunings = #cuatroTuning % \override FretBoard % #'(fret-diagram-details string-count) = 4 \override FretBoard.fret-diagram-details.finger-code = #'in-dot \primeros } \new TabStaff \relative c'' { \set TabStaff.stringTunings = #cuatroTuning \primeros } >> \layout { \context { \Score \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16) } } \midi { } }
フレット図の chordChange プロパティ
フレット図をコードが変わるときにだけ表示したり、行頭だけに表示したりすることができます。
\include "predefined-guitar-fretboards.ly" myChords = \chordmode { c1 c1 \break \set chordChanges = ##t c1 c1 \break c1 c1 } << \new ChordNames { \myChords } \new FretBoards { \myChords } \new Staff { \myChords } >>
代替フレット テーブル
代替フレット テーブルを作ることができます。これらはコードの代替形を表示するために使用されます。
代替フレット テーブルを使用するには、最初にテーブルを作成する必要があります。その後、テーブルにフレット図が追加されます。
作成されたフレット テーブルは空のままでも構いませんし、既存のテーブルからコピーしてくることもできます。
予め定義されたフレット図のテーブルは \predefinedDiagramTable
で選択することができます。
\include "predefined-guitar-fretboards.ly" % Make a blank new fretboard table #(define custom-fretboard-table-one (make-fretboard-table)) % Make a new fretboard table as a copy of default-fret-table #(define custom-fretboard-table-two (make-fretboard-table default-fret-table)) % Add a chord to custom-fretboard-table-one \storePredefinedDiagram #custom-fretboard-table-one \chordmode {c} #guitar-tuning "3-(;3;5;5;5;3-);" % Add a chord to custom-fretboard-table-two \storePredefinedDiagram #custom-fretboard-table-two \chordmode {c} #guitar-tuning "x;3;5;5;5;o;" << \chords { c1 | d1 | c1 | d1 | c1 | d1 | } \new FretBoards { \chordmode { \set predefinedDiagramTable = #default-fret-table c1 | d1 | \set predefinedDiagramTable = #custom-fretboard-table-one c1 | d1 | \set predefinedDiagramTable = #custom-fretboard-table-two c1 | d1 | } } \new Staff { \clef "treble_8" << \chordmode { c1 | d1 | c1 | d1 | c1 | d1 | } { s1_\markup "Default table" | s1 | s1_\markup \column {"New table" "from empty"} | s1 | s1_\markup \column {"New table" "from default"} | s1 | } >> } >>
参照
記譜法リファレンス: カスタム タブ譜, 自動フレット ダイアグラム, 和音モードの概要, 定義されたフレット図
インストールされているファイル:
‘ly/predefined-guitar-fretboards.ly’,
‘ly/predefined-guitar-ninth-fretboards.ly’,
‘ly/predefined-ukulele-fretboards.ly’,
‘ly/predefined-mandolin-fretboards.ly’
コード断片集: Fretted strings
内部リファレンス: fret-diagram-interface
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < あらかじめ定義されたフレット ダイアグラム ] | [ 上へ : フレットのある弦楽器で共通の記譜法 ] | [ 右手の運指 > ] |
自動フレット ダイアグラム
FretBoards
コンテキストを用いて、入力された音符からフレット ダイアグラムを自動的に作成することができます。アクティブな stringTunings
で入力された音符に対してあらかじめ定義されたダイアグラムが用意されていない場合、このコンテキストはその音符を演奏するために使用する弦とフレットを算出します。
<< \new ChordNames { \chordmode { f1 g } } \new FretBoards { <f, c f a c' f'>1 <g,\6 b, d g b g'>1 } \new Staff { \clef "treble_8" <f, c f a c' f'>1 <g, b, d g b' g'>1 } >>
デフォルトではあらかじめ定義されたダイアグラムは読み込まれないため、フレット ダイアグラムの自動算出がデフォルトの振る舞いとなります。一旦デフォルトのダイアグラムが読み込まれると、あらかじめ定義されたコマンドで自動算出を有効または無効にすることができます:
\storePredefinedDiagram #default-fret-table <c e g c' e'> #guitar-tuning "x;3-1-(;5-2;5-3;5-4;3-1-1-);" << \new ChordNames { \chordmode { c1 c c } } \new FretBoards { <c e g c' e'>1 \predefinedFretboardsOff <c e g c' e'>1 \predefinedFretboardsOn <c e g c' e'>1 } \new Staff { \clef "treble_8" <c e g c' e'>1 <c e g c' e'>1 <c e g c' e'>1 } >>
フレットボード算出機能が適切なダイアグラムを算出できないことがあります。これは、手動で音符を弦に割り当てることにより修復できることがあります。多くの場合、手動で割り当てる必要のある音符は 1 つだけです。その音符を手動で割り当てると、他の音符は FretBoards
コンテキストにより適切に配置されます。
FretBoard
フレット ダイアグラムに運指を追加することができます。
<< \new ChordNames { \chordmode { c1 d:m } } \new FretBoards { <c-3 e-2 g c'-1 e'>1 <d a-2 d'-3 f'-1>1 } \new Staff { \clef "treble_8" <c e g c' e'>1 <d a d' f'>1 } >>
FretBoard
コンテキストの弦とフレットを算出する際に使用される最小フレットを minimumFret
プロパティでセットすることができます。
property.
<< \new ChordNames { \chordmode { d1:m d:m } } \new FretBoards { <d a d' f'>1 \set FretBoards.minimumFret = #5 <d a d' f'>1 } \new Staff { \clef "treble_8" <d a d' f'>1 <d a d' f'>1 } >>
TabStaff
コンテキストと同様に、FretBoards
コンテキストの弦とフレットは
stringTunings
プロパティに依存します。stringTunings
プロパティについての情報は、カスタム タブ譜 を参照してください。
fret-diagram-interface
のプロパティを通じて、フレット ダイアグラムのグラフィカル レイアウトをユーザの好みに応じてカスタマイズすることができます。詳細は
fret-diagram-interface を参照してください。FretBoards
フレット ダイアグラムののインターフェイス プロパティはFretBoards.FretBoard
に属します。
定義済みコマンド
\predefinedFretboardsOff
,
\predefinedFretboardsOn
参照
記譜法リファレンス: カスタム タブ譜
コード断片集: Fretted strings
内部リファレンス: fret-diagram-interface
既知の問題と警告
自動フレットボード算出機能は、モノトーン チューニングではない楽器では適切に機能しません。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 自動フレット ダイアグラム ] | [ 上へ : フレットのある弦楽器で共通の記譜法 ] | [ ギター > ] |
右手の運指
右手の運指 p-i-m-a は後に数字が続く \rightHandFinger
を用いて入力する必要があります。
Note: Scheme 表記で数字を入力する場合、数字の後にくるもの (閉じ括弧 >
等であっても) の前にスペースを置くことを忘れないで下さい。
\clef "treble_8" c4\rightHandFinger #1 e\rightHandFinger #2 g\rightHandFinger #3 c'\rightHandFinger #4 <c\rightHandFinger #1 e\rightHandFinger #2 g\rightHandFinger #3 c'\rightHandFinger #4 >1
入力しやすくするために、\rightHandFinger
を短縮することができます。
例えば、RH
に短縮します:
RH=#rightHandFinger
Selected Snippets
右手の運指記号の配置
次の例で示すように、あるプロパティをセットすることによって、右手の運指記号の配置を細かくコントロールすることができます。注意: 和音構造 <>
を用いる必要があります。
#(define RH rightHandFinger) \relative c { \clef "treble_8" \set strokeFingerOrientations = #'(up down) <c\RH #1 e\RH #2 g\RH #3 c\RH #4 >4 \set strokeFingerOrientations = #'(up right down) <c\RH #1 e\RH #2 g\RH #3 c\RH #4 >4 \set strokeFingerOrientations = #'(left) <c\RH #1 e\RH #2 g\RH #3 c\RH #4 >2 \set strokeFingerOrientations = #'(right) c\RH #1 }
弦番号と右手の運指
この例は左手の運指記号、弦番号、右手の運指記号を組み合わせています。
#(define RH rightHandFinger) \relative c { \clef "treble_8" <c-3\5\RH #1 >4 <e-2\4\RH #2 >4 <g-0\3\RH #3 >4 <c-1\2\RH #4 >4 }
参照
コード断片集: Fretted strings
内部リファレンス: StrokeFinger
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 右手の運指 ] | [ 上へ : フレットのある弦楽器 ] | [ ポジションとバレーの指示 > ] |
2.4.2 ギター
ギターに関する記譜の問題の大部分は、フレットのある楽器全般のセクションで十分にカバーされています。しかしながら、ここでは 2, 3 の価値のあることをカバーします。歌詞の上にコード指示を配置しただけの歌集タイプのドキュメントを作成したいと望むユーザが時々います。LilyPond は楽譜譜刻プログラムなので、音楽記譜を持たないドキュメントの作成には推奨できません。ワード プロセッサ、テキスト エディタ、経験のあるユーザであれば GuitarTeX のような譜刻プログラムの方が適しています。
ポジションとバレーの指示 | ||
ハーモニクスとデッド ノートの指示 | ||
パワー コードの指示 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ギター ] | [ 上へ : ギター ] | [ ハーモニクスとデッド ノートの指示 > ] |
ポジションとバレーの指示
以下の例は、楽譜にギターのポジションとバレーの指示を含める方法を示しています。
\relative { \clef "treble_8" b,16 d g b e \textSpannerDown \override TextSpanner.bound-details.left.text = "XII " g16\startTextSpan b16 e g e b g\stopTextSpan e16 b g d }
参照
記譜法リファレンス: テキスト スパナ
コード断片集: Fretted strings, Expressive marks
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ポジションとバレーの指示 ] | [ 上へ : ギター ] | [ パワー コードの指示 > ] |
ハーモニクスとデッド ノートの指示
デッド ノートやハーモニクスを示すための特殊な符頭を使うことができます。通常、ハーモニクスにはテキスト マークアップによる説明も付け加えます。
\relative { \clef "treble_8" \override NoteHead.style = #'harmonic-mixed d'8^\markup { \italic \fontsize #-2 "harm. 12" } <g b>4 }
デッド ノート (ゴースト ノートとも呼ばれます) が通常の譜とタブ譜でサポートされます:
music = \relative { < a\3 \deadNote c\2 a'\1 >4 < b\3 \deadNote d\2 b'\1 > < c\3 \deadNote e\2 c'\1 > \deadNotesOn \tuplet 3/2 { g8 b e } \deadNotesOff < a,\3 c\2 e\1 >1 } \new StaffGroup << \new Staff { \clef "treble_8" \music } \new TabStaff { \music } >>
もう 1 つの演奏テクニックに パーム ミュート (特に、エレキ ギターで使用されます) があります。弦を弾く手の平で弦にミュートをかけます (訳者: 手の平=パーム(palm))。LilyPond は、符頭を三角形に変更することで、パーム ミュートの音符記譜をサポートします。
\new Voice { % 警告: 楽曲の先頭に palmMuteOn がある場合、 % palmMuteOff を正しく機能させるには Voice を % 明示的にインスタンス化する必要があります。 \relative c, { \clef "G_8" \palmMuteOn e8^\markup { \musicglyph "noteheads.s2do" = palm mute } < e b' e > e \palmMuteOff e e \palmMute e e e | e8 \palmMute { e e e } e e e e | < \palmMute e b' e >8 \palmMute { e e e } < \palmMute e b' e >2 } }
参照
コード断片集: Fretted strings
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ハーモニクスとデッド ノートの指示 ] | [ 上へ : ギター ] | [ バンジョー > ] |
パワー コードの指示
パワー コードのそのシンボルをコード モードの中、あるいは和音構造として譜刻することができます。五度は通常、他のコード (メジャーあるいはマイナー トライアド) では省略されますが、例外として、これらのコード ネームでは明示されます。
ChordsAndSymbols = { \chordmode { e,,1:5 a,,:5.8 \set TabStaff.restrainOpenStrings = ##t \set minimumFret = #8 c,:5 f,:5.8 } \set minimumFret = #2 \set restrainOpenStrings = ##f <a, e> <a cis' e'> <g d' g'> } \score { << \new ChordNames { \ChordsAndSymbols } \new Staff { \clef "treble_8" \ChordsAndSymbols } \new TabStaff { \ChordsAndSymbols } >> }
参照
音楽用語集: power chord
記譜法リファレンス: 和音の拡張と変形, コード ネームを譜刻する
コード断片集: Fretted strings
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < パワー コードの指示 ] | [ 上へ : フレットのある弦楽器 ] | [ バンジョーのタブ譜 > ] |
2.4.3 バンジョー
バンジョーのタブ譜 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < バンジョー ] | [ 上へ : バンジョー ] | [ リュート > ] |
バンジョーのタブ譜
LilyPond は 5 弦バンジョーの基本的なサポートを提供します。5 弦バンジョーのタブ譜を作成するときは、5 番目の弦のフレット番号を正しく取得するためにバンジョー タブ譜フォーマット関数を使用してください:
music = { g8 d' g'\5 a b g e d' | g4 d''8\5 b' a'\2 g'\5 e'\2 d' | g4 } << \new Staff \with { \omit StringNumber } { \clef "treble_8" \music } \new TabStaff \with { tablatureFormat = #fret-number-tablature-format-banjo stringTunings = #banjo-open-g-tuning } { \music } >>
5 弦バンジョーの一般的なチューニングのいくつかは、あらかじめ定義されています:
banjo-c-tuning
(gCGBD), banjo-modal-tuning
(gDGCD),
banjo-open-d-tuning
(aDF#AD) それに banjo-open-dm-tuning
(aDFAD) です。
four-string-banjo
関数を用いて、これらを 4 弦バンジョーのチューニングに変換することができます:
\set TabStaff.stringTunings = #(four-string-banjo banjo-c-tuning)
参照
インストールされているファイル: ‘ly/string-tunings-init.ly’
コード断片集: Fretted strings
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < バンジョーのタブ譜 ] | [ 上へ : フレットのある弦楽器 ] | [ リュートのタブ譜 > ] |
2.4.4 リュート
リュートのタブ譜 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < リュート ] | [ 上へ : リュート ] | [ 打楽器 > ] |
リュートのタブ譜
LilyPond はリュートのタブ譜をサポートします。
低音弦を追加するには、additionalBassString
にピッチをセットします。一番下の線より下に、a, /a, //a, ///a, 4, 5 などのように表示されます。
tablatureFormat
には fret-letter-tablature-format
を使用するべきです。更なるカスタマイズには fretLabels
を使います。
m = { f'4 d' a f d a, g, fis, e, d, c, \bar "|." } \score { << \new Staff { \clef bass \cadenzaOn \m } \new TabStaff \m >> \layout { \context { \Score tablatureFormat = #fret-letter-tablature-format } \context { \TabStaff stringTunings = \stringTuning <a, d f a d' f'> additionalBassStrings = \stringTuning <c, d, e, fis, g,> fretLabels = #'("a" "b" "r" "d" "e" "f" "g" "h" "i" "k") } } }
既知の問題と警告
FretBoards
を additionalBassStrings
と同時に使うことはサポートしておらず、期待に沿わない結果となります。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < リュートのタブ譜 ] | [ 上へ : 専門的な記譜法 ] | [ 打楽器で共通の記譜法 > ] |
2.5 打楽器
2.5.1 打楽器で共通の記譜法 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 打楽器 ] | [ 上へ : 打楽器 ] | [ 打楽器のためのリファレンス > ] |
2.5.1 打楽器で共通の記譜法
リズム音楽は主に打楽器とドラム記譜法で使用されますが、旋律のリズムを示すために使うこともできます。
打楽器のためのリファレンス | ||
基本的な打楽器の記譜法 | ||
ドラム ロール | ||
ピッチを持つ打楽器 | ||
打楽器の譜 | ||
カスタム打楽器譜 | ||
ゴースト ノート |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 打楽器で共通の記譜法 ] | [ 上へ : 打楽器で共通の記譜法 ] | [ 基本的な打楽器の記譜法 > ] |
打楽器のためのリファレンス
- 打楽器の音楽はリズム譜で記譜されることがあります。リズム譜は 旋律のリズムを示す と 新たに譜をインスタンス化する で説明しています。
- MIDI 出力については、別のセクションで説明します。MIDI 出力を作り出す を参照してください。
参照
記譜法リファレンス: 旋律のリズムを示す, 新たに譜をインスタンス化する, MIDI 出力を作り出す
コード断片集: Percussion
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 打楽器のためのリファレンス ] | [ 上へ : 打楽器で共通の記譜法 ] | [ ドラム ロール > ] |
基本的な打楽器の記譜法
打楽器の音符は \drummode
モードで入力することができます。このモードでの音符の入力の仕方は標準モードに似ています。打楽器の音符を入力する最も簡単な方法は、打楽器用のコンテキストとエントリを作成する \drums
コマンドを用いる方法です:
\drums { hihat4 hh bassdrum bd }
上記の例は、下記を短縮したものです:
\new DrumStaff \drummode { hihat4 hh bassdrum bd }
打楽器の音符名には完全名と省略名があり、どちらも入力ファイルで使うことができます。打楽器の音符名の完全なリストが 打楽器の音符 にあります。
DrumStaff
コンテキスト内で通常の記譜法でのピッチ (cis4
等)
を使うとエラーになるということに注意してください。打楽器の音部記号は自動的に DrumStaff
に付け加えられますが、明示的に付け加えることもできます。他の音部記号も使うことができます。
\drums { \clef percussion bd4 4 4 4 \clef treble hh4 4 4 4 }
打楽器のための MIDI サポートにはいくつか考慮すべき問題があります。MIDI 出力を作り出す を参照してください。
参照
記譜法リファレンス: MIDI 出力を作り出す, 打楽器の音符
インストールされているファイル: ‘ly/drumpitch-init.ly’
コード断片集: Percussion
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 基本的な打楽器の記譜法 ] | [ 上へ : 打楽器で共通の記譜法 ] | [ ピッチを持つ打楽器 > ] |
ドラム ロール
ドラム ロールは符幹に 3 本のスラッシュを付けて示します。4 分音符以上の長さの音符には 3 本のスラッシュが明示的に示され、8 分音符には 2 本のスラッシュが付けられ (連桁が 3 本目のスラッシュになります)、8 分音符よりも短い音符には連桁に 1 本のスラッシュが付け加えられます。これは、トレモロ記譜法によって実現されます – トレモロの繰り返し を参照してください。
\drums { \time 2/4 sn16 8 16 8 8:32 ~ 8 8 4:32 ~ 4 8 16 16 4 r4 }
スティックは音符の上または下にマークアップ "R"
または "L"
を配置することによって示すことができます。マークアップの配置については 向きと配置
を参照してください。staff-padding
プロパティを上書きして、ベースラインを好みに合わせることができます。
\drums { \repeat unfold 2 { sn16^"L" 16^"R" 16^"L" 16^"L" 16^"R" 16^"L" 16^"R" 16^"R" \stemUp sn16_"L" 16_"R" 16_"L" 16_"L" 16_"R" 16_"L" 16_"R" 16_"R" } }
参照
記譜法リファレンス: トレモロの繰り返し
コード断片集: Percussion
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ドラム ロール ] | [ 上へ : 打楽器で共通の記譜法 ] | [ 打楽器の譜 > ] |
ピッチを持つ打楽器
ピッチを持つ打楽器 (シロフォン、ビブラフォン、それにティンパニー) は通常の譜を用いて記述します。通常の譜については、このマニュアルの他のセクションでカバーしています。
参照
記譜法リファレンス: MIDI 出力を作り出す
コード断片集: Percussion
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ピッチを持つ打楽器 ] | [ 上へ : 打楽器で共通の記譜法 ] | [ カスタム打楽器譜 > ] |
打楽器の譜
通常、複数の楽器での打楽器パートは複数線の譜を使い、譜の高さで打楽器を指定します。譜刻するには、音符を DrumStaff
コンテキストや
DrumVoice
コンテキスト内に配置する必要があります。
up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat } down = \drummode { bassdrum4 snare8 bd r bd sn4 } \new DrumStaff << \new DrumVoice { \voiceOne \up } \new DrumVoice { \voiceTwo \down } >>
上記の例は冗長な多声記譜法です。 私はボイスを聴いている で説明した短い多声記譜法を使うこともできます。例えば、以下のようになります:
\new DrumStaff << \drummode { bd4 sn4 bd4 sn4 << { \repeat unfold 16 hh16 } \\ { bd4 sn4 bd4 sn4 } >> } >>
他のレイアウトでも実現できます。コンテキスト DrumVoice
の中にある プロパティ drumStyleTable
をセットすることによってレイアウトを変更できます。以下の変数があらかじめ定義されています:
-
drums-style
これがデフォルトです。これは五線譜上に通常のドラム キットを刻譜します:
このドラム構成は 6 種類のタムをサポートします。タムの種類が少ない場合は、望みの結果となるタムを選択してください。例えば、タムを五線譜の中間の 3 本の線に配置するのであれば、
tommh
,tomml
, それにtomfh
を使います。-
agostini-drums-style
1965 年にフランス人のパーカッション奏者である Dante Agostini によって作られました。フランスではよく使われますが、他の国でも使われることがあります。
-
timbales-style
これは二線譜上にティンバレスを譜刻します:
-
congas-style
これは二線譜上にコンガを譜刻します:
-
bongos-style
これは二線譜上にボンゴを譜刻します:
-
percussion-style
これは全ての種類の打楽器を一線譜上に譜刻します:
カスタム打楽器譜 で説明されているように、カスタム打楽器スタイルを定義することもできます。
参照
学習マニュアル: I'm hearing Voices
記譜法リファレンス: カスタム打楽器譜
インストールされているファイル: ‘ly/drumpitch-init.ly’
コード断片集: Percussion
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 打楽器の譜 ] | [ 上へ : 打楽器で共通の記譜法 ] | [ ゴースト ノート > ] |
カスタム打楽器譜
カスタム打楽器スタイルを定義することができます。スタイルは連想配列として定義し、drumStyleTable
プロパティにセットします。連想配列の各エントリは 4 つのアイテムからなります:
名前・符頭のスタイル (デフォルトは default
)・アーティキュレーション (必要ない場合には #f
)・譜内の符頭の位置です。この連想配列は最終的に
alist->hash-table
関数を用いて Scheme ハッシュテーブルに変換しなければなりません。
#(define mydrums '( (bassdrum default #f -1) (snare default #f 0) (hihat cross #f 1) (halfopenhihat cross halfopen 1) (pedalhihat xcircle stopped 2) (lowtom diamond #f 3))) up = \drummode { hh8 hh hhho hhho hhp4 hhp } down = \drummode { bd4 sn bd toml8 toml } \new DrumStaff << \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) \new DrumVoice { \voiceOne \up } \new DrumVoice { \voiceTwo \down } >>
drumPitchNames
変数を連想配列として再定義することで、これらのカスタム スタイルに新たな名前を追加することもできます
(あるいは下の例のように、新たなリストを既存の値に
append
することによって追加することもできます)。また、各項目を直接追加することもできます。これを用いて、エイリアス (略記法) を定義することができます。
drumPitchNames = #(append '((leftsnap . sidestick) (rightsnap . ridecymbal)) drumPitchNames) drumPitchNames.ls = #'sidestick drumPitchNames.rs = #'ridecymbal \drums { leftsnap4. rightsnap8 leftsnap4 rightsnap ls8 rs ls rs ls4 rs }
同様に、drumPitchTable
プロパティは音符名と MIDI ピッチ (MIDI サウンドフォントの楽器音) を関連付けています。このプロパティもハッシュテーブルとして定義される必要があり、連想配列 (デフォルト値が midiDrumPitches
変数にセットされています) から変換しなければなりません。関連付けを変更する方法は上記と同様で、連想配列全体を定義し直すか、各要素を変更するかのどちらかになります。次の例は、入力構文・出力スタイル・対応する MIDI 出力を含めた、新たな記譜法のセットを作る方法を示しています。
drumPitchNames.dbass = #'dbass drumPitchNames.dba = #'dbass % 'db は既に使われています drumPitchNames.dbassmute = #'dbassmute drumPitchNames.dbm = #'dbassmute drumPitchNames.do = #'dopen drumPitchNames.dopenmute = #'dopenmute drumPitchNames.dom = #'dopenmute drumPitchNames.dslap = #'dslap drumPitchNames.ds = #'dslap drumPitchNames.dslapmute = #'dslapmute drumPitchNames.dsm = #'dslapmute #(define djembe-style '((dbass default #f -2) (dbassmute default stopped -2) (dopen default #f 0) (dopenmute default stopped 0) (dslap default #f 2) (dslapmute default stopped 2))) midiDrumPitches.dbass = g midiDrumPitches.dbassmute = fis midiDrumPitches.dopen = a midiDrumPitches.dopenmute = gis midiDrumPitches.dslap = b midiDrumPitches.dslapmute = ais test = \drummode { dba4 do ds dbm dom dsm } \score { \new DrumStaff \with { \override StaffSymbol.line-count = #3 instrumentName = "Djembé " drumStyleTable = #(alist->hash-table djembe-style) drumPitchTable = #(alist->hash-table midiDrumPitches) } { \time 3/4 \test } \layout {} \midi {} }
参照
インストールされているファイル: ‘ly/drumpitch-init.ly’
コード断片集: Percussion
内部リファレンス: DrumStaff, DrumVoice
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < カスタム打楽器譜 ] | [ 上へ : 打楽器で共通の記譜法 ] | [ 管楽器 > ] |
ゴースト ノート
ドラムと打楽器のゴースト ノート
(dead note, muted note, silenced note, false note とも呼ばれます)
は \parenthesize
コマンドを用いて作ることができます。詳細は 括弧 を参照してください。
\new DrumStaff << \context DrumVoice = "1" { s1 } \context DrumVoice = "2" { s1 } \drummode { << { hh8[ 8] <hh sn> hh16 \parenthesize sn hh \parenthesize sn hh8 <hh sn> hh } \\ { bd4 r4 bd8 8 r8 bd } >> } >>
参照
記譜法リファレンス: 括弧
コード断片集: Percussion
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ゴースト ノート ] | [ 上へ : 専門的な記譜法 ] | [ 管楽器で共通の記譜法 > ] |
2.6 管楽器
このセクションでは管楽器の楽譜を記述する際に現れる記譜要素について説明します。
2.6.1 管楽器で共通の記譜法 | ||
2.6.2 バグパイプ | ||
2.6.3 木管楽器 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 管楽器 ] | [ 上へ : 管楽器 ] | [ 管楽器のためのリファレンス > ] |
2.6.1 管楽器で共通の記譜法
このセクションでは多くの管楽器で共通の記譜法について説明します。
管楽器のためのリファレンス | ||
運指 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 管楽器で共通の記譜法 ] | [ 上へ : 管楽器で共通の記譜法 ] | [ 運指 > ] |
管楽器のためのリファレンス
管楽器のための多くの記譜の問題は、ブレスとタンギングに関係します:
- ブレスは休符や ブレス記号 によって示すことができます。
- レガート奏法は スラー で示します。
- タンギングの種類 – レガートからノンレガート、スタッカートまでの範囲 – は、通常、アーティキュレーション記号で示し、スラーと組み合わせる場合もあります。アーティキュレーションと装飾 と breathing を参照してください。
- フラッター タンギングは、通常、音符の上にトレモロ記号とテキスト マークアップを配置して示します。トレモロの繰り返し を参照してください。
他の記譜要素を管楽器に適用することができます:
- 多くの管楽器は移調楽器です。楽器の移調 を参照してください。
- スライド グリッサンドはトロンボーンの特徴ですが、他の管楽器でもキーやバルブのグリッサンドを演奏できます。グリッサンド を参照してください。
- ハーモニック シリーズ (倍音連鎖) のグリッサンド – これは、全ての金管楽器で可能ですが、フレンチ ホルンでよく使われます – は、通常、装飾小音符 として記述します。
- 音符の終わりでのピッチの変化は Fall と Doit で説明しています。
- キー スラップとバルブ スラップはしばしば 特殊な符頭 の
cross
スタイルで示します。 - 木管楽器は低い音符をオーバーブローして、ハーモニクスを鳴らすことができます。これは
flageolet
アーティキュレーションによって示します。アーティキュレーションの一覧 を参照してください。 - 金管楽器のミュートは通常、テキスト マークアップで示しますが、頻繁に変更する場合は、
stopped
アーティキュレーションとopen
アーティキュレーションを使う方が良いでしょう。アーティキュレーションと装飾 と アーティキュレーションの一覧 を参照してください。 - ホルンのストップット (閉塞音) は
stopped
アーティキュレーションで示します。アーティキュレーションと装飾 を参照してください。
参照
記譜法リファレンス: ブレス記号, スラー, アーティキュレーションと装飾, アーティキュレーションの一覧, トレモロの繰り返し, 楽器の移調, グリッサンド, 装飾小音符, Fall と Doit, 特殊な符頭
コード断片集: Winds
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 管楽器のためのリファレンス ] | [ 上へ : 管楽器で共通の記譜法 ] | [ バグパイプ > ] |
運指
トロンボーン以外の管楽器は各ピッチを鳴らすためにいくつかの指を使う必要があります。以下でいくつかの運指の例を示します。
木管楽器のダイアグラムを作り出すことができます。木管楽器のダイアグラム で説明します。
Selected Snippets
管楽器の運指記号
既存のグリフを組み合わせて、特殊な記号を作ることができます。これは管楽器に特に有用です。
centermarkup = { \once \override TextScript.self-alignment-X = #CENTER \once \override TextScript.X-offset =#(lambda (g) (+ (ly:self-alignment-interface::centered-on-x-parent g) (ly:self-alignment-interface::x-aligned-on-self g))) } \score { \relative c'{ g\open \once \override TextScript.staff-padding = #-1.0 \centermarkup g^\markup { \combine \musicglyph "scripts.open" \musicglyph "scripts.tenuto" } \centermarkup g^\markup { \combine \musicglyph "scripts.open" \musicglyph "scripts.stopped" } g\stopped } }
リコーダーの運指表
次の例では、管楽器の運指表を作成する方法を示しています。
% range chart for paetzold contrabass recorder centermarkup = { \once \override TextScript.self-alignment-X = #CENTER \once \override TextScript.X-offset = #(lambda (g) (+ (ly:self-alignment-interface::centered-on-x-parent g) (ly:self-alignment-interface::x-aligned-on-self g))) } \score { \new Staff \with { \remove "Time_signature_engraver" \omit Stem \omit Flag \consists "Horizontal_bracket_engraver" } { \clef bass \set Score.timing = ##f f,1*1/4 \glissando \clef violin gis'1*1/4 \stemDown a'4^\markup {1)} \centermarkup \once \override TextScript.padding = #2 bes'1*1/4_\markup {\override #'(baseline-skip . 1.7) \column { \fontsize #-5 \slashed-digit #0 \finger 1 \finger 2 \finger 3 \finger 4 \finger 5 \finger 6 \finger 7} } b'1*1/4 c''4^\markup {1)} \centermarkup \once \override TextScript.padding = #2 cis''1*1/4 deh''1*1/4 \centermarkup \once \override TextScript.padding = #2 \once \override Staff.HorizontalBracket.direction = #UP e''1*1/4_\markup {\override #'(baseline-skip . 1.7) \column { \fontsize #-5 \slashed-digit #0 \finger 1 \finger 2 \finger 4 \finger 5} }\startGroup f''1*1/4^\markup {2)}\stopGroup } }
参照
記譜法リファレンス: 木管楽器のダイアグラム
コード断片集: Winds
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 運指 ] | [ 上へ : 管楽器 ] | [ バグパイプの定義 > ] |
2.6.2 バグパイプ
このセクションではバグパイプで共通の記譜法について説明します。
バグパイプの定義 | ||
バグパイプの例 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < バグパイプ ] | [ 上へ : バグパイプ ] | [ バグパイプの例 > ] |
バグパイプの定義
LilyPond はスコティッシュ、ハイランド バグパイプ音楽のための特殊な定義を保持しています。この定義を使うには、入力ファイルの先頭に以下を付け加えます:
\include "bagpipe.ly"
これにより、バグパイプ音楽で共通の特殊な装飾小音符を短いコマンドで付け加えられるようになります。例えば、以下を \taor
と記述することができます:
\grace { \small G32[ d G e] }
さらに、‘bagpipe.ly’ はバグパイプ音符のために、適切なオクターブのピッチ定義を保持しています。そのため、\relative
や \transpose
について配慮する必要はありません。
\include "bagpipe.ly" { \grg G4 \grg a \grg b \grg c \grg d \grg e \grg f \grA g A }
通常、バグパイプ音楽は D メジャーの調を使います
(実際にはその調ではない場合であってもです)。しかしながら、使える調は D メジャーだけであるため、通常は調号を記譜しません。調号を記譜しないために、楽譜を \hideKeySignature
で始めます。何らかの理由で調号を記譜したい場合は、代わりに \showKeySignature
を使います。
現代音楽のなかには、C と F をフラットにするためクロス フィンガリングを使うものがあります。これは c-flat
や f-flat
で示すことができます。同様に、軽音楽のピブロホ ハイ G (piobaireachd high g) は、g-flat
で示すことができます。
参照
コード断片集: Winds
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < バグパイプの定義 ] | [ 上へ : バグパイプ ] | [ 木管楽器 > ] |
バグパイプの例
以下の例は、有名なアメージング グレースをバグパイプ記譜法にしたものです。
\include "bagpipe.ly" \layout { indent = 0.0\cm \context { \Score \remove Bar_number_engraver } } \header { title = "Amazing Grace" meter = "Hymn" arranger = "Trad. arr." } { \hideKeySignature \time 3/4 \grg \partial 4 a8. d16 \slurd d2 \grg f8[ e32 d16.] \grg f2 \grg f8 e \thrwd d2 \grg b4 \grG a2 \grg a8. d16 \slurd d2 \grg f8[ e32 d16.] \grg f2 \grg e8. f16 \dblA A2 \grg A4 \grg A2 f8. A16 \grg A2 \hdblf f8[ e32 d16.] \grg f2 \grg f8 e \thrwd d2 \grg b4 \grG a2 \grg a8. d16 \slurd d2 \grg f8[ e32 d16.] \grg f2 e4 \thrwd d2. \slurd d2 \bar "|." }
参照
コード断片集: Winds
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < バグパイプの例 ] | [ 上へ : 管楽器 ] | [ 木管楽器のダイアグラム > ] |
2.6.3 木管楽器
このセクションでは木管楽器に特有の記譜法について説明します。
2.6.3.1 木管楽器のダイアグラム |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 木管楽器 ] | [ 上へ : 木管楽器 ] | [ 和音記譜法 > ] |
2.6.3.1 木管楽器のダイアグラム
木管楽器のダイアグラムで特定の音符で使用する運指を示すことができ、以下の楽器のダイアグラムが利用可能です:
- ピッコロ
- フルート
- オーボエ
- クラリネット
- バス クラリネット
- サクソフォン
- バスーン
- コントラバスーン
木管楽器のダイアグラムはマークアップとして作成します:
c''1^\markup { \woodwind-diagram #'piccolo #'((lh . (gis)) (cc . (one three)) (rh . (ees))) }
キーはオープン、途中まで閉じる、リング キーを閉じる、または完全に閉じることができます:
\textLengthOn c''1^\markup { \center-column { "1/4 閉じる" \woodwind-diagram #'flute #'((cc . (one1q)) (lh . ()) (rh . ())) } } c''1^\markup { \center-column { "1/2閉じる" \woodwind-diagram #'flute #'((cc . (one1h)) (lh . ()) (rh . ())) } } c''1^\markup { \center-column { "3/4閉じる" \woodwind-diagram #'flute #'((cc . (one3q)) (lh . ()) (rh . ())) } } c''1^\markup { \center-column { "リング キーを閉じる" \woodwind-diagram #'flute #'((cc . (oneR)) (lh . ()) (rh . ())) } } c''1^\markup { \center-column { "完全に閉じる" \woodwind-diagram #'flute #'((cc . (oneF two)) (lh . ()) (rh . ())) } }
トリルはグレーで示します:
c''1^\markup { \woodwind-diagram #'bass-clarinet #'((cc . (threeT four)) (lh . ()) (rh . (b fis))) }
様々なトリルを表示させることができます:
\textLengthOn c''1^\markup { \center-column { "1/4 閉じるとリング キーを閉じる" \woodwind-diagram #'flute #'((cc . (one1qTR)) (lh . ()) (rh . ())) } } c''1^\markup { \center-column { "リング キーを閉じると完全に閉じる" \woodwind-diagram #'flute #'((cc . (oneTR)) (lh . ()) (rh . ())) } } c''1^\markup { \center-column { "リング キーを閉じるとオープン" \woodwind-diagram #'flute #'((cc . (oneRT)) (lh . ()) (rh . ())) } } c''1^\markup { \center-column { "オープンと完全に閉じる" \woodwind-diagram #'flute #'((cc . (oneT)) (lh . ()) (rh . ())) } } c''1^\markup { \center-column { "1/4 閉じると3/4 閉じる" \woodwind-diagram #'flute #'((cc . (one1qT3q)) (lh . ()) (rh . ())) } }
楽器に対して使用できるすべてのキーと設定のリストを表示させることができます。コンソールに表示させるには #(print-keys-verbose 'flute)
を用い、ログ ファイルに表示させるには
#(print-keys-verbose 'flute (current-error-port))
を用います。楽譜出力に表示させることはできません。
新しいダイアグラムを作成することができますが、これには Scheme を使える必要があり、すべてのユーザができるわけではありません。ダイアグラムのパターンは ‘scm/define-woodwind-diagrams.scm’ と ‘scm/display-woodwind-diagrams.scm’ にあります。
定義済みコマンド
Selected Snippets
木管楽器のダイアグラムのリスト
以下は、LilyPond で現在定義されている全ての木管楽器のダイアグラムです。
\layout { indent = 0 } \relative c' { \textLengthOn c1^ \markup { \center-column { 'tin-whistle " " \woodwind-diagram #'tin-whistle #'() } } c1^ \markup { \center-column { 'piccolo " " \woodwind-diagram #'piccolo #'() } } c1^ \markup { \center-column { 'flute " " \woodwind-diagram #'flute #'() } } c1^\markup { \center-column { 'oboe " " \woodwind-diagram #'oboe #'() } } c1^\markup { \center-column { 'clarinet " " \woodwind-diagram #'clarinet #'() } } c1^\markup { \center-column { 'bass-clarinet " " \woodwind-diagram #'bass-clarinet #'() } } c1^\markup { \center-column { 'saxophone " " \woodwind-diagram #'saxophone #'() } } c1^\markup { \center-column { 'bassoon " " \woodwind-diagram #'bassoon #'() } } c1^\markup { \center-column { 'contrabassoon " " \woodwind-diagram #'contrabassoon #'() } } }
木管楽器のダイアグラムを画像とテキストで表示する
多くの場合で、画像によるダイアグラムの表示に加えて、端に調名をテキストで表示することができます。
\relative c'' { \textLengthOn c1^\markup \woodwind-diagram #'piccolo #'((cc . (one three)) (lh . (gis)) (rh . (ees))) c^\markup \override #'(graphical . #f) { \woodwind-diagram #'piccolo #'((cc . (one three)) (lh . (gis)) (rh . (ees))) } }
木管楽器のダイアグラムのサイズを変更する
木管楽器のダイアグラムのサイズや太さを変更することができます。
\relative c'' { \textLengthOn c1^\markup \woodwind-diagram #'piccolo #'() c^\markup \override #'(size . 1.5) { \woodwind-diagram #'piccolo #'() } c^\markup \override #'(thickness . 0.15) { \woodwind-diagram #'piccolo #'() } }
木管楽器のダイアグラムの調リスト
以下のスニペットは、scm/define-woodwind-diagrams.scm
に定義された、木管楽器のダイアグラムにおける可能な調と、それに対応する移調設定のリストを出力します。リストはログファイルに出力され、音楽には影響しません。コンソールに出力したい場合は、コマンドから
(current-error-port)
を削除してください。
#(print-keys-verbose 'piccolo (current-error-port)) #(print-keys-verbose 'flute (current-error-port)) #(print-keys-verbose 'flute-b-extension (current-error-port)) #(print-keys-verbose 'tin-whistle (current-error-port)) #(print-keys-verbose 'oboe (current-error-port)) #(print-keys-verbose 'clarinet (current-error-port)) #(print-keys-verbose 'bass-clarinet (current-error-port)) #(print-keys-verbose 'low-bass-clarinet (current-error-port)) #(print-keys-verbose 'saxophone (current-error-port)) #(print-keys-verbose 'soprano-saxophone (current-error-port)) #(print-keys-verbose 'alto-saxophone (current-error-port)) #(print-keys-verbose 'tenor-saxophone (current-error-port)) #(print-keys-verbose 'baritone-saxophone (current-error-port)) #(print-keys-verbose 'bassoon (current-error-port)) #(print-keys-verbose 'contrabassoon (current-error-port)) \score {c''1}
参照
インストールされているファイル:
‘scm/define-woodwind-diagrams.scm’,
‘scm/display-woodwind-diagrams.scm’
コード断片集: Winds
内部リファレンス: TextScript, instrument-specific-markup-interface
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 木管楽器のダイアグラム ] | [ 上へ : 専門的な記譜法 ] | [ 和音モード > ] |
2.7 和音記譜法
和音を通常の音符として入力したり、和音モードで入力したりすることができ、様々な従来のヨーロッパの和音命名規則を用いて表示することができます。和音ネームと通奏低音記譜を表示させることもできます。
2.7.1 和音モード | ||
2.7.2 和音を表示する | ||
2.7.3 通奏低音 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 和音記譜法 ] | [ 上へ : 和音記譜法 ] | [ 和音モードの概要 > ] |
2.7.1 和音モード
和音モードでは、和音のピッチではなく、和音構造の指示子を用いてコードを入力します。
和音モードの概要 | ||
一般的な和音 | ||
和音の拡張と変形 | ||
和音の転回と特殊なボイシング |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 和音モード ] | [ 上へ : 和音モード ] | [ 一般的な和音 > ] |
和音モードの概要
和音を 和音の音符 で説明しているように、同時進行する音として入力することができます。
和音を “和音モード” で入力することもできます。 和音モードは、ピッチではなく、従来のヨーロッパ音楽での和音構造に焦点を当てた入力モードです。これは、コード ネームを使うことに慣れているユーザにとって、和音を記述するのに便利な機能です。他の入力モードについて更なる情報は、入力モード を参照してください。
\chordmode { c1 g a g c }
和音モードを用いて入力される和音は音楽要素であり、同時進行する音として入力される和音と同様に移調させることができます。\chordmode
は絶対モードであり、\chordmode
ブロックでは \relative
は効果を持ちません。しかしながら、\chordmode
での絶対ピッチは音符モードよりも
1 オクターブ高くなります。
一連の音楽の中で、和音モードと音符モードを切り替えることができます:
\relative { <c' e g>2 <g b d> \chordmode { c2 f } <c e g>2 <g' b d> \chordmode { f2 g } }
参照
音楽用語集: chord
コード断片集: Chords
既知の問題と警告
あらかじめ定義されているアーティキュレーションと装飾の短縮形を和音モードで使うことはできません。アーティキュレーションと装飾 を参照してください。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 和音モードの概要 ] | [ 上へ : 和音モード ] | [ 和音の拡張と変形 > ] |
一般的な和音
長三和音 (メジャー トライアド) を入力するには、根音とオプションで演奏時間を示します:
\chordmode { c2 f4 g }
短三和音、増三和音、それに減三和音
(マイナー、オーグメンテッド、ディミニッシュト トライアド)
は、演奏時間の後に :
とクオリティー修飾子を配置することにより入力します:
\chordmode { c2:m f4:aug g:dim }
七の和音 (セブンス コード) を作成することができます:
\chordmode { c1:7 c:m7 c:maj7 c:dim7 c:aug7 }
以下に示す表は、三和音と七の和音に付けられるクオリティー修飾子を示しています。和音に付けくわえられる第 7 音は短 7 度またはフラットの 7 度で、基本となる七の和音は属七の和音となります。すべての変化は属七の和音からの変化です。修飾子の使い方についてのより完全な表は 一般的な和音修飾子 にあります。
修飾子 | 動作 | 例 |
無し | デフォルトの動作で、長三和音を作り出します。 | |
m, m7 | 短和音。この修飾子は第 3 音を下げます。 | |
dim, dim7 | 減和音。この修飾子は 3 度と 5 度 (と存在する場合は 7 度) の音を下げます。 | |
aug | 増和音。この修飾子は第 5 音を上げます。 | |
maj, maj7 | 長七和音。この修飾子は第 7 音を上げます。maj の後の 7 はオプションです。長三和音を作り出す時にこの修飾子は 使いません。 |
参照
記譜法リファレンス: 一般的な和音修飾子, 和音の拡張と変形
コード断片集: Chords
既知の問題と警告
和音に付けるクオリティー修飾子は 1 つだけ – 通常は和音の最も高い音に対して – にしてください。複数のクオリティー修飾子を持つ和音は、エラーや警告無しで構文解析されますが、結果は予測できません。1 つのクオリティー修飾子では実現できない和音は、個々のピッチに分解してください – 和音の拡張と変形 で説明しています。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 一般的な和音 ] | [ 上へ : 和音モード ] | [ 和音の転回と特殊なボイシング > ] |
和音の拡張と変形
和音モードで様々な複雑さの和音構造を作ることができます。修飾子文字列を使って和音を拡張したり、和音の音を追加 / 削除したり、和音の音を上げ / 下げしたり、低音を付け加えたり、転回を作り出したりすることができます。
:
のすぐ後にくる最初の数字は和音の広がりを表します。和音は、根音から指定された数に達するまで 3 度毎に音を付け加えることによって構成されます。和音の拡張として付け加えられる第 7 音は、長 7 度ではなく短 7 度
(フラットの 7 度) であることに注意してください。拡張で指定された音が 3 度毎の音ではない場合 (例えば 6)、拡張を超えない範囲で 3 度毎に音が付け加えられ、最後に拡張の音が付け加えられます。拡張で取り得る最大値は 13 です。それよりも大きな値は 13 と解釈されます。
\chordmode { c1:2 c:3 c:4 c:5 c1:6 c:7 c:8 c:9 c1:10 c:11 c:12 c:13 c1:14 }
特殊な例外として、c:5
は根音と第 5 音のみを含む‘パワー コード’になります。
第 11 音が第 13 音と組み合わされると響きが良くないため、:13
和音から第 11 音は削除されます
(明示的に第 11 音が付け加えられない限りは)。
\chordmode { c1:13 c:13.11 c:m13 }
個々の音を和音に付けくわえることができます。追加は拡張の後にドット (.
) を前置して記述します。和音に付けくわえられる第 7 音は、長 7 度ではなく、短 7 度またはフラットの 7 度です。
\chordmode { c1:3.5.6 c:3.7.8 c:3.6.13 }
追加する音の高さは望みの高さにすることができます。
\chordmode { c4:3.5.15 c:3.5.20 c:3.5.25 c:3.5.30 }
和音の音は、数字の後ろに +
または-
を置くことで変化させることができます。和音構造の一部として自動的に含まれる音を変化させるには、その音を追加して変化させます。
\chordmode { c1:7+ c:5+.3- c:3-.5-.7- }
和音に音を追加できるだけでなく、^
を前置させた修飾子文字列で音を削除することができます。複数の音を削除する場合は、最初の ^
の後に削除する音を .
で区切って記述します。
\chordmode { c1^3 c:7^5 c:9^3 c:9^3.5 c:13.11^3.7 }
修飾子 sus
を修飾子文字列に付け加えることにより、サスペンド コードを作り出すことができます。これは和音から第 3 音を削除します。さらに sus
の後に 2
または 4
を付け加えると、和音に第 2 音または第 4 音が追加されます。sus
の後に 2 度や 4 度が続く場合、これは ^3
と等価であり、そうでない場合は sus4
つまり 5.4
と等価です。
\chordmode { c1:sus c:sus2 c:sus4 c:5.4 }
低音の追加 (根音ではないピッチを和音の下に配置します) は、和音の後に /
pitch を記述することで指定できます。
\chordmode { c'1 c'/e c'/f }
追加されるピッチがすでに和音の構成音であれば、これは和音の転回を譜刻するのに使うことができ、その場合にはそのピッチは追加されず、単にその和音の一番下に移動します。
/+
pitch 構文を用いることで、どんな場合でも音符の追加として扱われます
(つまり 2 回譜刻されます) 。
\chordmode { c'1 c'/g c'/+e }
自動的な和音の転回やボイシングを 和音の転回と特殊なボイシング で示しています。
様々な標準和音を作り出すために使用される和音修飾子を 一般的な和音修飾子 で示しています。
参照
記譜法リファレンス: 和音の転回と特殊なボイシング, 一般的な和音修飾子
コード断片集: Chords
既知の問題と警告
和音内では同じ度数の音を使えるのは 1 度のみです。以下の例では、最後の 5+
が解釈されるため、増和音が作り出されます。
\chordmode { c1:3.5.5-.5+ }
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 和音の拡張と変形 ] | [ 上へ : 和音モード ] | [ 和音を表示する > ] |
和音の転回と特殊なボイシング
和音の修飾子と低音の追加に加えて、特殊な転回やボイシング(例えばジャズ音楽で一般的に使用される、いわゆる‘ドロップ 2’ ボイシング) を含む和音の自動的な譜刻にさまざまな関数を用いることができます。
\chordmode { \dropNote 2 { c2:maj7 d:m7 } \invertChords 1 d1:maj7 }
和音の拡張と変形 で示された低音の追加とは異なり、これは和音が譜に譜刻される方法のみに影響し、文字で書かれた和音名には影響しません。さらに、これらの関数は和音モードだけでなく、和音の音符
で説明される <...>
の和音構造でも用いることができます。
参照
コード断片集: Chords
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 和音の転回と特殊なボイシング ] | [ 上へ : 和音記譜法 ] | [ コード ネームを譜刻する > ] |
2.7.2 和音を表示する
譜に音符を表示させるという標準の表示に加えて、コード ネームを表示させることができます。
コード ネームを譜刻する | ||
コード ネームをカスタマイズする |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 和音を表示する ] | [ 上へ : 和音を表示する ] | [ コード ネームをカスタマイズする > ] |
コード ネームを譜刻する
コード ネームは ChordNames
コンテキストに譜刻されます:
\new ChordNames { \chordmode { c2 f4. g8 } }
和音は同時進行する音符としてか、和音モードを使用することで入力することができます。転回や低音の追加が無い限り入力モードに関係なく、和音と同じコード ネームが表示されます:
chordmusic = \relative { <c' e g>2 <f bes c> <f c' e g>1 \chordmode { c2 f:sus4 c1:/f } } << \new ChordNames { \chordmusic } { \chordmusic } >>
ChordNames
コンテキストに休符が渡されると、noChordSymbol
マークアップが表示されます。
<< \new ChordNames \chordmode { c1 r1 g1 c1 } \chordmode { c1 r1 g1 c1 } >>
\chords { … }
は \new ChordNames \chordmode { … }
の短縮形です。
\chords { c2 f4.:m g8:maj7 }
\new ChordNames { \chordmode { c2 f4.:m g8:maj7 } }
Selected Snippets
コード ネームを変更時のみ表示する
デフォルトでは、入力されたすべてのコードが出力されます。この動作を変更して、コード ネームが行頭とコード変更時にのみ表示されるようにすることができます。
harmonies = \chordmode { c1:m c:m \break c:m c:m d } << \new ChordNames { \set chordChanges = ##t \harmonies } \new Staff { \relative c' { \harmonies } } >>
シンプル リード シート
コード ネーム、メロディ、歌詞をまとめるとリード シートとなります:
<< \chords { c2 g:sus4 f e } \new Staff \relative c'' { a4 e c8 e r4 b2 c4( d) } \addlyrics { One day this shall be free __ } >>
参照
音楽用語集: chord
記譜法リファレンス: 音楽を並列に記述する
コード断片集: Chords
内部リファレンス: ChordNames, ChordName, Chord_name_engraver, Volta_engraver, Bar_engraver
既知の問題と警告
同時進行する音として和音を入力している場合、転回や低音の追加を含む和音のコード ネームは正しく表示されません。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < コード ネームを譜刻する ] | [ 上へ : 和音を表示する ] | [ 通奏低音 > ] |
コード ネームをカスタマイズする
和音の命名規則は 1 つではありません。流儀が異なれば、同じ和音に対して異なるコード ネームを使います。コード ネームで表示される記号にも違いがあります。コード ネームで表示される名前と記号をカスタマイズすることができます。
基本となるコード ネーム命名規則はジャズ音楽用のものです。これは Klaus Ignatzek によって提唱されたものです ( Literature list を参照してください)。(他のコード ネーム命名規則は Scheme 関数で実装することができます。 コード断片集の Chords にある “Chord names alternative” に例があります。) 一般的なジャズ音楽用のコード表記のリストは、コード ネーム表 にあります。
デフォルトの命名規則は、いくつかの方法によって容易に変更することができます。まず、根音に対して異なる言語を使用するために、
\germanChords
, \semiGermanChords
,
\italianChords
, \frenchChords
の定義済みコマンドを使用できます:
ドイツ歌集では短和音を接尾辞 m を伴わない小文字で記述する場合があります。これは chordNameLowercaseMinor
プロパティを設定することで実現できます:
\chords { \set chordNameLowercaseMinor = ##t c2 d:m e:m f }
コード ネームの表示を以下のプロパティを通じて調整することもできます。
-
chordRootNamer
-
通常、コード ネームは根音の文字にオプションの変化を付けて表示されます。この関数がピッチから文字に変換します。新しい関数をこのプロパティにセットすることで特殊な音符名 (例えば、B コードを表すドイツ語の ‘H’) を作り出すことができます。
-
majorSevenSymbol
-
このプロパティは
chordRootNamer
の出力に続けて長七和音を示すために使用されるマークアップ オブジェクトを保持します。あらかじめ定義されている選択肢はwhiteTriangleMarkup
とblackTriangleMarkup
です。 -
additionalPitchPrefix
-
コード ネームが追加のピッチを保持している場合、追加ピッチの前にテキストを付けることができます。見た目が雑然となることを避けるため、デフォルトでは追加ピッチの前にテキストは付きません。しかしながら、追加ピッチが少数の場合はテキストを付けると効果的です。
\new ChordNames { <c e g d'> % add9 \set additionalPitchPrefix = "add" <c e g d'> % add9 }
-
chordNoteNamer
-
コード ネームが根音以外の追加ピッチを保持している場合 (例えば追加の低音)、この関数が追加ピッチを譜刻するのにを用いられます。デフォルトでは、ピッチは
chordRootNamer
を用いて譜刻されます。chordNoteNamer
にカスタマイズした関数をセットすることで、この振る舞いを変えることができます。例えば、低音を小文字で譜刻させることができます。 -
chordNameSeparator
-
通常、コード ネームはパート毎に小さなスペースで区切られます。
chordNameSeparator
を設定することにより、区切りをお望みのマークアップに変更することができます。これはコード ネームと低音名の間の区切りには影響を与えません – この区切りをカスタマイズする場合は、slashChordSeparator
を設定します。\chords { c4:7.9- c:7.9-/g \set chordNameSeparator = \markup { "/" } \break c4:7.9- c:7.9-/g }
-
slashChordSeparator
-
和音に通常の根音とは異なる低音を持たせることができます。これは “転回” と呼ばれ、デフォルトの記譜法では主和音と低音符の間をシュラッシュで区切るためスラッシュ “スラッシュ コード” とも呼ばれます。
slashChordSeparator
のデフォルト値はスラッシュですが、お望みのマークアップに変更することができます。\chords { c4:7.9- c:7.9-/g \set slashChordSeparator = \markup { " over " } \break c4:7.9- c:7.9-/g }
-
chordNameExceptions
-
このプロパティはペアのリストです。各ペアの最初の要素は和音の中に存在する音を指定するピッチのセットです。次の要素は、最初の要素で指定された和音のコード ネームを作り出すために、
chordRootNamer
の出力の後に記譜されるマークアップです。 -
minorChordModifier
-
短和音は和音の根音の右側に接尾辞 ‘m’ を配置することによって記述されることが多いです。しかしながら、マイナス記号等の他の接尾辞を使う場合もあります。
\chords { c4:min f:min7 \set minorChordModifier = \markup { "-" } \break c4:min f:min7 }
-
chordPrefixSpacer
-
通常、
minorChordModifier
で指定される短和音の修飾子は和音の根音のすぐ右に譜刻されます。chordPrefixSpacer
を設定することにより、根音と修飾子の間にスペースを置くことができます。根音が変化した場合、このスペースは配置されません。
定義済みコマンド
\whiteTriangleMarkup
,
\blackTriangleMarkup
,
\germanChords
,
\semiGermanChords
,
\italianChords
,
\frenchChords
Selected Snippets
コード ネームの例外
特殊なコードに対して専用の表記をするためのリストを保持するのが
chordNameExceptions
プロパティです。
% modify maj9 and 6(add9) % Exception music is chords with markups chExceptionMusic = { <c e g b d'>1-\markup { \super "maj9" } <c e g a d'>1-\markup { \super "6(add9)" } } % Convert music to list and prepend to existing exceptions. chExceptions = #(append (sequential-music-to-chord-exceptions chExceptionMusic #t) ignatzekExceptions) theMusic = \chordmode { g1:maj9 g1:6.9 \set chordNameExceptions = #chExceptions g1:maj9 g1:6.9 } \layout { ragged-right = ##t } << \new ChordNames \theMusic \new Voice \theMusic >>
メジャー セブンスのコード ネーム
メジャー セブンスのレイアウトは majorSevenSymbol
で調整することができます。
\chords { c:7+ \set majorSevenSymbol = \markup { j7 } c:7+ }
ChordNames コンテキストに小節線を追加する
ChordNames
コンテキストに小節線を追加するには、Bar_engraver
を追加します。
\new ChordNames \with { \override BarLine.bar-extent = #'(-2 . 2) \consists "Bar_engraver" } \chordmode { f1:maj7 f:7 bes:7 }
繰り返し括弧をコード ネームの下に表示する
Volta_engraver
を対応する譜に付け加えることで、繰り返し括弧をコード ネームの下に表示できます。
\score { << \chords { c1 c1 } \new Staff \with { \consists "Volta_engraver" } { \repeat volta 2 { c'1 } \alternative { c' } } >> \layout { \context { \Score \remove "Volta_engraver" } } }
コード ネームの区切り記号を変更する
コード ネームの異なる部分を区切る記号は、任意のマークアップに設定することができます。
\chords { c:7sus4 \set chordNameSeparator = \markup { \typewriter | } c:7sus4 }
参照
記譜法リファレンス: コード ネーム表, 一般的な和音修飾子
楽譜譜刻の自動化についてのエッセー: Literature list
インストールされているファイル: ‘scm/chords-ignatzek-names.scm’, ‘scm/chord-entry.scm’, ‘ly/chord-modifiers-init.ly’
コード断片集: Chords
既知の問題と警告
コード ネームは、和音に含まれるピッチと
\chordmode
で入力される和音構造についての情報の両方から決定されます。和音の入力手段として同時進行するピッチを用いた場合、転回や低音により予期しないコード ネームとなります。
myChords = \relative c' { \chordmode { c1 c/g c/f } <c e g>1 <g c e> <f c' e g> } << \new ChordNames { \myChords } \new Staff { \myChords } >>
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < コード ネームをカスタマイズする ] | [ 上へ : 和音記譜法 ] | [ 通奏低音の導入部 > ] |
2.7.3 通奏低音
通奏低音を譜刻することができます。
通奏低音の導入部 | ||
通奏低音を入力する | ||
通奏低音を表示する |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 通奏低音 ] | [ 上へ : 通奏低音 ] | [ 通奏低音を入力する > ] |
通奏低音の導入部
LilyPond は通奏低音 (figured bass – thorough bass や basso continuo とも呼ばれます) をサポートします:
<< \new Voice { \clef bass dis4 c d ais g fis} \new FiguredBass { \figuremode { < 6 >4 < 7\+ >8 < 6+ [_!] > < 6 >4 <6 5 [3+] > < _ >4 < 6 5/>4 } } >>
通奏低音のサポートには 2 つのパートがあります:
1 つは入力モード \figuremode
で、通奏低音の入力を受け入れます。もう 1 つはコンテキスト FiguredBass
で、BassFigure
オブジェクトの表示を扱います。Staff
でも通奏低音を表示させることができます。
\figures { … }
は
\new FiguredBass \figuremode { … }
の短縮記譜法です。
通奏低音のサポートの外見は和音サポートに似ていますが、もっとシンプルです。\figuremode
モードは通奏低音を保持し、FiguredBass
コンテキストははそれらを入力されたとおりに譜刻するだけです。ピッチへの変換は行いません。
参照
音楽用語集: figured bass
コード断片集: Chords
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 通奏低音の導入部 ] | [ 上へ : 通奏低音 ] | [ 通奏低音を表示する > ] |
通奏低音を入力する
\figuremode
は入力モードを通奏低音モードに切り替えるのに用いられます。他の入力モードについての更なる情報は 入力モード で見つかります。
通奏低音モードでは、通奏低音のグループを <
と >
で囲みます。演奏時間は >
の後に入力します。
\new FiguredBass { \figuremode { <6 4>2 } }
通奏低音の各音程を変化させるために、ナチュラル記号を含む臨時記号を付け加えることができます。臨時記号は数字の後に
+
(シャープ)、-
(フラット)、!
(ナチュラル) を付け加えることで入力します。ダブルシャープやダブルフラットは記号を 2 重に入力します。第 3 度の音を変化させるときに、数字が省略されることがありますが、数字の代わりに _
を入力することで実現できます。
\figures { <7! 6+ 4-> <5++> <3--> < _+ > < 7 _!> }
増音と減音を記述することができます:
\figures { <6\+ 5/> <7/> }
通奏低音にバックスラッシュを付けることができます ( 通常、6 度の音を上げるのに用いられます):
\figures { <6> <6\\> }
通奏低音に囲みを含ませることができます:
\figures { <[12] 8 [6 4]> }
通奏低音として任意のテキスト マークアップを挿入することができます:
\figures { <\markup { \tiny \number 6 \super (1) } 5> }
継続線で通奏低音の繰り返しを示すことができます:
<< { \clef bass e4 d c b, e4 d c b, } \figures { \bassFigureExtendersOn <6 4>4 <6 3> <7 3> <7 3> \bassFigureExtendersOff <6 4>4 <6 3> <7 3> <7 3> } >>
以下の例のように、継続線は明示的に停止されない限り連続する通奏低音に置き換わります。
<< \figures { \bassFigureExtendersOn <6 4>4 <6 4> <6\! 4\!> <6 4> } { \clef bass d4 d c c } >>
以下の表は利用可能な通奏低音の修飾子を要約しています。
修飾子 | 用途 | 例 |
+, -, ! | 臨時記号 | |
\+, / | 増音と減音 | |
\\ | 音を 6 度上げる | |
\! | 継続線を終わらせる |
定義済みコマンド
\bassFigureExtendersOn
,
\bassFigureExtendersOff
Selected Snippets
通奏低音の変化記号の位置を変更する
数字付き低音の前後に表示される臨時記号やプラス記号は、その位置を
figuredBassAlterationDirection
や
figuredBassPlusDirection
プロパティによって変更することができます。
\figures { <5\+> <5+ 4\+> <6 4- 2\+> r \set figuredBassAlterationDirection = #RIGHT <5\+> <5+ 4\+> <6 4- 2\+> r \set figuredBassPlusDirection = #RIGHT <5\+> <5+ 4\+> <6 4- 2\+> r \set figuredBassAlterationDirection = #LEFT <5\+> <5+ 4\+> <6 4- 2\+> r }
参照
コード断片集: Chords
内部リファレンス: BassFigure, BassFigureAlignment, BassFigureLine, BassFigureBracket, BassFigureContinuation, FiguredBass
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 通奏低音を入力する ] | [ 上へ : 通奏低音 ] | [ 現代音楽 > ] |
通奏低音を表示する
FiguredBass
コンテキストを用いて通奏低音を表示させることができます。たいていの譜コンテキストでも表示させることができます。
FiguredBass
コンテキストに表示させる場合、通奏低音の垂直方向の位置は譜上にある音符の位置とは無関係です。
<< \relative { c''4 c'8 r8 c,4 c' } \new FiguredBass { \figuremode { <4>4 <10 6>8 s8 <6 4>4 <6 4> } } >>
上記の例では、余分な (空の) 譜が作成されるのを避けるために、FiguredBass
コンテキストを明示的に作成する必要があります。
通奏低音を直接 Staff
コンテキストに付け加えることもできます。この場合、通奏低音の垂直方向の位置は自動的に調節されます。
<< \new Staff = "myStaff" \figuremode { <4>4 <10 6>8 s8 <6 4>4 <6 4> } %% Put notes on same Staff as figures \context Staff = "myStaff" { \clef bass c4 c'8 r8 c4 c' } >>
通奏低音を Staff
コンテキストに追加した場合、譜の上や下に表示することができます。
<< \new Staff = "myStaff" \figuremode { <4>4 <10 6>8 s8 \bassFigureStaffAlignmentDown <6 4>4 <6 4> } %% Put notes on same Staff as figures \context Staff = "myStaff" { \clef bass c4 c'8 r8 c4 c' } >>
定義済みコマンド
\bassFigureStaffAlignmentDown
,
\bassFigureStaffAlignmentUp
,
\bassFigureStaffAlignmentNeutral
参照
コード断片集: Chords
内部リファレンス: BassFigure, BassFigureAlignment, BassFigureLine, BassFigureBracket, BassFigureContinuation, FiguredBass
既知の問題と警告
継続線が正しく機能することを保証するために、通奏低音のリズムをバス パートに合わせた方が安全です。
<< { \clef bass \repeat unfold 4 { f16. g32 } f8. es16 d8 es } \figures { \bassFigureExtendersOn % バスと同じリズムなので、継続線は正しく機能します \repeat unfold 4 { <6 4->16. <6 4->32 } <5>8. r16 <6>8 <6\! 5-> } >> << { \clef bass \repeat unfold 4 { f16. g32 } f8. es16 d8 es } \figures { \bassFigureExtendersOn % タイミングは同じですが、継続線は正しく機能しません <6 4->4 <6 4->4 <5>8. r16 <6>8 <6\! 5-> } >>
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 通奏低音を表示する ] | [ 上へ : 専門的な記譜法 ] | [ 現代音楽でのピッチと調和音 > ] |
2.8 現代音楽
20 世紀の始めから、作曲のスタイルとテクニックは大幅に拡張されました。新しい調和音とリズムの開発、ピッチ スペクトルの拡張、広範囲な楽器技術の開発が並行して進展し、音楽記譜法も拡張されました。このセクションの目的は、これらの新しい記譜テクニックに関するリファレンスと情報を提供することです。
2.8.1 現代音楽でのピッチと調和音 | ||
2.8.2 現代音楽のリズムへのアプローチ | ||
2.8.3 グラフィカル記譜法 | ||
2.8.4 現代音楽の楽譜作成技術 | ||
2.8.5 新しい楽器技術 | ||
2.8.6 現代音楽に関する本と楽譜 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 現代音楽 ] | [ 上へ : 現代音楽 ] | [ 現代音楽でのピッチと調和音のためのリファレンス > ] |
2.8.1 現代音楽でのピッチと調和音
このセクションでは、現代音楽でのピッチと調和音の記譜に関係する問題をハイライトします。
現代音楽でのピッチと調和音のためのリファレンス | ||
微分音記譜法 | ||
現代音楽の調号と和声 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 現代音楽でのピッチと調和音 ] | [ 上へ : 現代音楽でのピッチと調和音 ] | [ 微分音記譜法 > ] |
現代音楽でのピッチと調和音のためのリファレンス
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 現代音楽でのピッチと調和音のためのリファレンス ] | [ 上へ : 現代音楽でのピッチと調和音 ] | [ 現代音楽の調号と和声 > ] |
微分音記譜法
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 微分音記譜法 ] | [ 上へ : 現代音楽でのピッチと調和音 ] | [ 現代音楽のリズムへのアプローチ > ] |
現代音楽の調号と和声
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 現代音楽の調号と和声 ] | [ 上へ : 現代音楽 ] | [ 現代音楽のリズムへのアプローチのためのリファレンス > ] |
2.8.2 現代音楽のリズムへのアプローチ
このセクションでは、現代音楽のリズムの記譜法に関係する問題をハイライトします。
現代音楽のリズムへのアプローチのためのリファレンス | ||
現代音楽の連符 | ||
現代音楽の拍子 | ||
多拍子記譜法の拡張 | ||
多拍子記譜法の連桁 | ||
多拍子記譜法の小節線 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 現代音楽のリズムへのアプローチ ] | [ 上へ : 現代音楽のリズムへのアプローチ ] | [ 現代音楽の連符 > ] |
現代音楽のリズムへのアプローチのためのリファレンス
- 複合拍子は 拍子 を参照してください。
- 基本的な多拍子記譜法 多拍子記譜法 を参照してください。
- 羽状の連桁は 羽状の連桁 を参照してください。
- Mensurstriche 小節線 (譜の間だけの小節線) は 譜をグループ化する を参照してください。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 現代音楽のリズムへのアプローチのためのリファレンス ] | [ 上へ : 現代音楽のリズムへのアプローチ ] | [ 現代音楽の拍子 > ] |
現代音楽の連符
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 現代音楽の連符 ] | [ 上へ : 現代音楽のリズムへのアプローチ ] | [ 多拍子記譜法の拡張 > ] |
現代音楽の拍子
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 現代音楽の拍子 ] | [ 上へ : 現代音楽のリズムへのアプローチ ] | [ 多拍子記譜法の連桁 > ] |
多拍子記譜法の拡張
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 多拍子記譜法の拡張 ] | [ 上へ : 現代音楽のリズムへのアプローチ ] | [ 多拍子記譜法の小節線 > ] |
多拍子記譜法の連桁
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 多拍子記譜法の連桁 ] | [ 上へ : 現代音楽のリズムへのアプローチ ] | [ グラフィカル記譜法 > ] |
多拍子記譜法の小節線
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 多拍子記譜法の小節線 ] | [ 上へ : 現代音楽 ] | [ 現代音楽の楽譜作成技術 > ] |
2.8.3 グラフィカル記譜法
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < グラフィカル記譜法 ] | [ 上へ : 現代音楽 ] | [ 新しい楽器技術 > ] |
2.8.4 現代音楽の楽譜作成技術
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 現代音楽の楽譜作成技術 ] | [ 上へ : 現代音楽 ] | [ 現代音楽に関する本と楽譜 > ] |
2.8.5 新しい楽器技術
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 新しい楽器技術 ] | [ 上へ : 現代音楽 ] | [ 現代音楽記譜法についての本と記事 > ] |
2.8.6 現代音楽に関する本と楽譜
このセクションでは現代音楽記譜法を学ぶ際に有用な本、楽譜例、その他の情報源を提示します。
現代音楽記譜法についての本と記事 | ||
楽譜例 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 現代音楽に関する本と楽譜 ] | [ 上へ : 現代音楽に関する本と楽譜 ] | [ 楽譜例 > ] |
現代音楽記譜法についての本と記事
- Music Notation in the Twentieth Century: A Practical Guidebook by Kurt Stone [W. W. Norton, 1980]
- Music Notation: A Manual of Modern Practice by Gardner Read [Taplinger, 1979]
- Instrumentation and Orchestration by Alfred Blatter [Schirmer, 2nd ed. 1997]
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 現代音楽記譜法についての本と記事 ] | [ 上へ : 現代音楽に関する本と楽譜 ] | [ 古代の記譜法 > ] |
楽譜例
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 楽譜例 ] | [ 上へ : 専門的な記譜法 ] | [ サポートされているスタイルの概要 > ] |
2.9 古代の記譜法
2.9.1 サポートされているスタイルの概要 | ||
2.9.2 古代音楽で共通の記譜法 | ||
2.9.3 計量音楽の記譜 | ||
2.9.4 グレゴリオ聖歌の記譜 | ||
2.9.5 キエフ記譜法で譜刻する | ||
2.9.6 古代音楽に取り組む—事例とその解決法 |
古代の記譜法のサポートには、計量記譜法、グレゴリオ聖歌の記譜法、キエフ記譜法が含まれています。これらは、符頭や休符といったグラフィカル オブジェクトのスタイル プロパティを変更するか、これらのスタイルが適用された定義済みのコンテキストを使うことで使用することができます。
符頭、符尾、臨時記号、拍子記号、休符といった多くのグラフィカル
オブジェクトは style
プロパティを提供しており、古代の記譜法の様々なスタイルを模倣するために変更することができます。以下を参照してください:
古代の記譜法に特有なコンセプトについては、以下を参照してください:
参照
音楽用語集: custos, ligature, mensural notation
記譜法リファレンス: 計量記譜法の符頭, 計量記譜法の臨時記号と調号, 計量記譜法の休符, グレゴリオ聖歌の音部記号, 計量記譜法の符尾, 計量記譜法の拍子記号, クストス, ディビジオ, リガトゥーラ
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 古代の記譜法 ] | [ 上へ : 古代の記譜法 ] | [ 古代音楽で共通の記譜法 > ] |
2.9.1 サポートされているスタイルの概要
グレゴリオ聖歌を譜刻するのに適したスタイルが 3 つあります:
- Editio Vaticana はグレゴリオ聖歌のスタイルとしては完全なものです。Solesmes 版に続くものであり、1904 年からのバチカン公式の聖歌本です。LilyPond はリガトゥーラ、クストス、quilisma や oriscus などの特殊記号を含めた全ての譜刻記号に対応しています。
- Editio Medicaea スタイルは、Solesmes 版より以前に使われた、Medicaea (あるいは Ratisbona) 版に用いられるいくつかの記号に対応しています。Vaticana スタイルとの大きな違いは音部記号と符頭であり、音部記号は右下がりに、符頭は四角形で通常の大きさになっています。
- Hufnagel (“蹄鉄の釘”) あるいはゴシックスタイルは、中世のドイツや中央ヨーロッパで用いられた写本のスタイルを模倣します。この名前は、基本的な符頭 (ヴィルガ) が小さな釘のように見えることから付けられました。
中世後期やルネサンス期に用いられる、計量音楽の写本や印刷本の見た目を模倣するスタイルが 3 つあります:
- Mensural スタイルは中世後期やルネサンス初期の写本に使われるスタイルに最も近いです。このスタイルは、小さくて幅の狭いダイアモンド型の符頭や、手書きスタイルの休符を含みます。
- Neomensural スタイルは、昔のスタイルをより現代化し様式化したものです。符頭はより広がり、休符は直線からなります。このスタイルは計量音楽の転写におけるインキピットなどに特に適しています。
- Petrucci スタイルは、初めて活字を用いて音楽を印刷した (Harmonice musices odhecaton, 1501) Ottaviano Petrucci (1466-1539) にちなんで名付けられました。他の計量記譜法のスタイルよりも大きな符頭を持ちます。
Baroque と Classical は完全なスタイルではありません。デフォルトのスタイルとわずかな点が異なるだけです。 いくつかの符頭 (Baroque) と四分休符 (Classical) です。
全ての記譜記号について置き換えが存在するのは、計量音楽のスタイルのみです。休符や符尾は単旋律聖歌の記譜に用いられないため Gregorian スタイルに存在せず、Petrucci スタイルには符尾や臨時記号がありません。
それぞれの記譜要素は他とは独立して変更することができます。つまり、1 曲の中で Mensural スタイルの符尾を使いながら、Petrucci スタイルの符頭と、Classical スタイルの休符、Vaticana スタイルの音部記号を使うことができます。
参照
音楽用語集: mensural notation, flag
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < サポートされているスタイルの概要 ] | [ 上へ : 古代の記譜法 ] | [ 定義されているコンテキスト > ] |
2.9.2 古代音楽で共通の記譜法
定義されているコンテキスト | ||
リガトゥーラ | ||
クストス |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 古代音楽で共通の記譜法 ] | [ 上へ : 古代音楽で共通の記譜法 ] | [ リガトゥーラ > ] |
定義されているコンテキスト
グレゴリオ聖歌や計量音楽の記譜では、デフォルトで専用の
Voice および Staff コンテキストが定義されています。これらのコンテキストは記譜要素の設定をそれぞれの音楽に適したものにセットします。これらのデフォルト設定で十分であるなら、詳細やコンテキストをカスタマイズする方法について気にせずに音符を入力していくことができます。これらの専用のコンテキストについては、VaticanaVoice
, VaticanaStaff
, MensuralVoice
,
MensuralStaff
を参照してください。更なる情報は、
にあります。
参照
音楽用語集: mensural notation
記譜法リファレンス: グレゴリオ聖歌のコンテキスト, 計量記譜法のコンテキスト
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 定義されているコンテキスト ] | [ 上へ : 古代音楽で共通の記譜法 ] | [ クストス > ] |
リガトゥーラ
リガトゥーラは、2 つ以上の異なる音符を表します。 リガトゥーラが最初に用いられたのはグレゴリオ聖歌の写本で、同じ音節を上昇音型あるいは下降音型で歌う場合の表記でした。これらは計量記譜法でも用いられています。
リガトゥーラは \[
と \]
で音符を囲むことによって入力します。いくつかのリガトゥーラのスタイルにおいては、それぞれに特有な入力をしなければならない場合があります。デフォルトでは、LigatureBracket
のエングラーバがリガトゥーラの上に角型の囲みを表示します。
\relative { \[ g' c, a' f d' \] a g f \[ e f a g \] }
さらに 2 つのリガトゥーラのスタイルがあります。グレゴリオ聖歌のための
Vaticana スタイルと、計量音楽のための Mensural スタイルです
(白色記譜法のリガトゥーラのみがサポートされており、いくつかの制限があります)。
これらのスタイルを使うには、Voice コンテキストでデフォルトの
Ligature_bracket_engraver
を置き換える必要があります。白色計量記譜法のリガトゥーラ や グレゴリオ聖歌の四角形ネウマのリガトゥーラ で
説明されています。
参照
音楽用語集 ligature
記譜法リファレンス: 白色計量記譜法のリガトゥーラ, グレゴリオ聖歌の四角形ネウマのリガトゥーラ
既知の問題と警告
リガトゥーラのために必要なスペーシングは現在実装されておらず、結果として、リガトゥーラ間にスペースを取りすぎるかもしれません。改行も満足のいかない結果になるでしょう。
歌詞はリガトゥーラと正しく揃いません。
リガトゥーラの中には臨時記号が表示されませんが、代わりに、リガトゥーラの前の部分に全ての臨時記号が集められて表示されます。
この構文は非推奨となった“中置”スタイル
(\[ music expr \]
) を用いています。一貫性を保つため、これらは将来“後置”スタイル
(note\[ … note\]
) に置き換えられます。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < リガトゥーラ ] | [ 上へ : 古代音楽で共通の記譜法 ] | [ 計量音楽の記譜 > ] |
クストス
クストス (custos, 複数形 custodes) はラテン語で“見張り”の意味で、譜の最後に出現する記号です。これは次の行の最初の音を予め示すもので、これにより演奏中の読譜を手助けします。
クストスは 17 世紀までは頻繁に用いられた記譜記号でした。現在では、Editio Vaticana のようなグレゴリオ聖歌の現代版などにしか残っていません。記譜のスタイルによって、クストスの形は異なります。
クストスを記譜するには、\layout
ブロック内で、Staff
コンテキストに Custos_engraver
を追加します。
そして、必要ならば下の例のように
\override
を用いてクストスのスタイルを変更します:
\score { \relative { a'1 \break g } \layout { \context { \Staff \consists Custos_engraver \override Custos.style = #'mensural } } }
クストスの形は style
プロパティで選択します。サポートされているスタイルは
vaticana
, medicaea
, hufnagel
, mensural
です。
\new Lyrics \lyricmode { \markup { \column { \typewriter "vaticana " \line { " " \musicglyph "custodes.vaticana.u0" } } } \markup { \column { \typewriter "medicaea " \line { " " \musicglyph "custodes.medicaea.u0" } }} \markup { \column { \typewriter "hufnagel " \line { " " \musicglyph "custodes.hufnagel.u0" } }} \markup { \column { \typewriter "mensural " \line { " " \musicglyph "custodes.mensural.u0" } }} }
参照
音楽用語集: custos
コード断片集: Ancient notation
内部リファレンス: Custos
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < クストス ] | [ 上へ : 古代の記譜法 ] | [ 計量記譜法のコンテキスト > ] |
2.9.3 計量音楽の記譜
計量記譜法のコンテキスト | ||
計量記譜法の音部記号 | ||
計量記譜法の拍子記号 | ||
計量記譜法の符頭 | ||
計量記譜法の符尾 | ||
計量記譜法の休符 | ||
計量記譜法の臨時記号と調号 | ||
注釈的な臨時記号 (ムジカ・フィクタ) | ||
白色計量記譜法のリガトゥーラ |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 計量音楽の記譜 ] | [ 上へ : 計量音楽の記譜 ] | [ 計量記譜法の音部記号 > ] |
計量記譜法のコンテキスト
定義されている MensuralVoice
と MensuralStaff
コンテキストは計量音楽スタイルの記譜をする場合に用いることができます。これらのコンテキストは、関連するコンテキスト プロパティやグラフィカル オブジェクト プロパティを正しい値にセットします。そのため、すぐに音楽を入力することができます。以下の抜粋で例を示します:
\score { << \new MensuralVoice = "discantus" \relative { \hide Score.BarNumber { c''1\melisma bes a g\melismaEnd f\breve \[ f1\melisma a c\breve d\melismaEnd \] c\longa c\breve\melisma a1 g1\melismaEnd fis\longa^\signumcongruentiae } } \new Lyrics \lyricsto "discantus" { San -- ctus, San -- ctus, San -- ctus } >> }
参照
音楽用語集: mensural notation
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 計量記譜法のコンテキスト ] | [ 上へ : 計量音楽の記譜 ] | [ 計量記譜法の拍子記号 > ] |
計量記譜法の音部記号
計量記譜法の音部記号は \clef
コマンドによってサポートされています。音部記号によっては同じグリフを用いるものもありますが、音部記号が表示される位置のみが異なります。その場合は、音部記号に用いられる名前の最後に数字が付けられており、下にあるほど小さい数字、上にあるほど大きい数字になっています。
\override NoteHead.style = #'vaticana.punctum \clef "vaticana-do1" c'1
\override NoteHead.style = #'medicaea.punctum \clef "medicaea-do3" c'1
\override NoteHead.style = #'hufnagel.punctum \clef "hufnagel-fa2" c'1
\override NoteHead.style = #'neomensural \clef "neomensural-c4" c'1
音部記号が表示される位置を自由に変更することができます。音部記号 を参照してください。使用できる音部記号の完全な一覧については、音部記号のスタイル を参照してください。
参照
音楽用語集: mensural notation, clef
記譜法リファレンス: グレゴリオ聖歌の音部記号, 音部記号
インストールされているファイル: ‘scm/parser-clef.scm’
コード断片集: Pitches
内部リファレンス: Clef_engraver, Clef, ClefModifier, clef-interface
既知の問題と警告
mensural-g
は petrucci-g
にマッピングされています。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 計量記譜法の音部記号 ] | [ 上へ : 計量音楽の記譜 ] | [ 計量記譜法の符頭 > ] |
計量記譜法の拍子記号
メンスーラ記号 (拍子記号と似ていますが、完全に同一ではありません) のサポートは限定的です。それぞれの記号は特定の拍子記号の分数と結びついています。つまり、あるメンスーラ記号を \time n/m
を用いて表示させたい場合、n
と m
を次の表に沿って設定しなければならないということです:
古代の拍子記号を選択するには、グラフィカル オブジェクト TimeSignature
の
style
プロパティを設定してください。サポートしているスタイルは
neomensural
と mensural
です。上の表では neomensural
スタイルを用いています。次の例ではスタイルごとの違いを示しています:
拍子 では、拍子記号に関する一般的な説明があります。
参照
音楽用語集: mensural notation
記譜法リファレンス: 拍子
既知の問題と警告
音長の比は一定ではないため、拍子記号を設定するだけでは変更されません。例えば、1 ブレヴィス = 3 セミブレヴィス (tempus perfectum) のような比は手で入力します:
breveTP = #(ly:make-duration -1 0 3/2) … { c\breveTP f1 }
これは、breveTP
を全音符の 3/2 × 2 = 3 倍に設定します。
mensural68alt
と neomensural68alt
シンボル
(6/8 を表すもう一つのシンボル) は \time
では表示させることができません。代わりに \markup {\musicglyph "timesig.mensural68alt" }
を使ってください。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 計量記譜法の拍子記号 ] | [ 上へ : 計量音楽の記譜 ] | [ 計量記譜法の符尾 > ] |
計量記譜法の符頭
古代の記譜法では、default
以外の符頭スタイルを用いることができます。これは NoteHead
オブジェクトの style
プロパティをセットすることで実現できます。設定可能な値は
baroque
, neomensural
, mensural
,
petrucci
, blackpetrucci
, semipetrucci
です。
baroque
スタイルが default
スタイルと異なる点は以下の通りです:
-
maxima
符頭があること -
\breve
符頭が四角形であること
neomensural
, mensural
, petrucci
スタイルが
baroque
スタイルと異なる点は以下の通りです:
- セミブレヴィスと、それより短い音符の符頭が菱形であること
- 符頭の中央から符幹が伸びていること
blackpetrucci
スタイルは黒色計量記譜法や、白色計量記譜法におけるコロレーション (coloratio) 部において有用な符頭を描きます。この時、符頭のスタイルが符尾の数に影響を与えないため
(訳注: 符尾の数は音符のすぐ後に入力される数字に依存するため)、セミミニマは a4
ではなく a8*2
として記述されるべきです。そうしなければ、ミニマのように見えてしまいます。3 連符を記譜するなどの目的でコロレーションが使われている時には、別の数が掛けられるでしょう。
semipetrucci
スタイルでは、半分塗りつぶされた符頭が描かれます
(ブレヴィス、ロンガ、マキシマ)。
以下は petrucci
スタイルの例です:
\compressEmptyMeasures \autoBeamOff \override NoteHead.style = #'petrucci a'\maxima a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 a' \override NoteHead.style = #'semipetrucci a'\breve*5/6 \override NoteHead.style = #'blackpetrucci a'8*4/3 a' \override NoteHead.style = #'petrucci a'\longa
符頭のスタイル では使用可能な全ての符頭スタイルが一覧となっています。
tseealso 音楽用語集: mensural notation, note head
記譜法リファレンス: 符頭のスタイル
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 計量記譜法の符頭 ] | [ 上へ : 計量音楽の記譜 ] | [ 計量記譜法の休符 > ] |
計量記譜法の符尾
Stem
グラフィカル オブジェクトの flag-style
プロパティで古代の符尾を選択できます。default
スタイル以外では、mensural
スタイルのみがサポートされています。
\relative c' { \override Flag.style = #'mensural \override Stem.thickness = #1.0 \override NoteHead.style = #'mensural \autoBeamOff c8 d e f c16 d e f c32 d e f s8 c'8 d e f c16 d e f c32 d e f }
それぞれの符尾において、一番内側の膨らみが譜線と垂直方向に揃っていることに注意してください。
neo-mensural や Petrucci スタイル専用の符尾はありません。グレゴリオ聖歌の記譜では符尾は用いません。
参照
音楽用語集: mensural notation, flag
既知の問題と警告
符尾を譜線と垂直方向に揃える動作は、符幹の端がちょうど譜線の位置にあるか、ちょうど 2 つの譜線の間にあることを前提としています。クラシック音楽の記譜における高度なレイアウト機能を用いると必ずしもそうはならない場合があります (しかしながら、通常は計量記譜法において用いるものではありません)。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 計量記譜法の符尾 ] | [ 上へ : 計量音楽の記譜 ] | [ 計量記譜法の臨時記号と調号 > ] |
計量記譜法の休符
Rest
グラフィカル オブジェクトの style
プロパティで古代の休符を選択します。サポートしている古代のスタイルは
neomensural
と mensural
です。
次に示すのはこれらのスタイルの例です:
\compressEmptyMeasures \override Rest.style = #'mensural r\longa^"mensural" r\breve r1 r2 r4 r8 r16 s \break \override Rest.style = #'neomensural r\longa^"neomensural" r\breve r1 r2 r4 r8 r16
mensural や neo-mensural スタイルには 32 分や 64 分の休符がありません。通常のスタイルの休符が使用されます。
参照
音楽用語集 mensural notation
記譜法リファレンス: 休符
Snippets: コード断片集 Ancient notation
既知の問題と警告
mensural スタイルにおけるマキシマ休符の形は、実際には完全な (ブレヴィス 3 つ分の) ロンガ休符を表しています。そのため、実際にマキシマ休符を表示する時はロンガ休符を 2 つ (あるいは 3 つ) 並べてください。ロンガ休符は自動でグループ化されないため、ピッチ付きの休符を使って手動で配置する必要があります。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 計量記譜法の休符 ] | [ 上へ : 計量音楽の記譜 ] | [ 注釈的な臨時記号 (ムジカ・フィクタ) > ] |
計量記譜法の臨時記号と調号
mensural
スタイルは、デフォルトのスタイルとは異なるシャープとフラット記号を提供します。計量記譜法ではほとんどナチュラル記号を使いません。代わりに、シャープやフラットを使います。例えば、ヘ長調における B ナチュラルはシャープを使って表示されます。しかしながら、必要な場合にはナチュラル記号は vaticana
スタイルのものを使用します。
臨時記号や調号のスタイルはそれぞれ、グラフィカル オブジェクト Accidental
と
KeySignature
の alteration-glyph-name-alist
プロパティでコントロールされます。例えば:
\override Staff.Accidental.alteration-glyph-name-alist = #alteration-mensural-glyph-name-alist
参照
音楽用語集: mensural notation, Pitch names, accidental, key signature
記譜法リファレンス: ピッチ, 臨時記号, 自動臨時記号, 調号
内部リファレンス: KeySignature
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 計量記譜法の臨時記号と調号 ] | [ 上へ : 計量音楽の記譜 ] | [ 白色計量記譜法のリガトゥーラ > ] |
注釈的な臨時記号 (ムジカ・フィクタ)
1600 年ごろより前のヨーロッパ音楽では、歌唱者は一定のルールに従って自分の判断で音程を変化させることが求められました。これがムジカ・フィクタ (musica ficta) です。現代譜に写す場合には、これらの臨時記号は通常、音符の上に配置されます。
LilyPond ではこのような臨時記号をサポートしています。suggestAccidentals
を ##t
にセットすることで表示することができます。
\relative { fis' gis \set suggestAccidentals = ##t ais bis }
これは、\set suggestAccidentals = ##f
によって無効化されるまで、後に続く全ての臨時記号をムジカ・フィクタにします。より実用的な方法は、\once \set suggestAccidentals = ##t
を用いることです。略記を定義することもできます:
ficta = { \once \set suggestAccidentals = ##t } \score { \relative \new MensuralVoice { \once \set suggestAccidentals = ##t bes'4 a2 g2 \ficta fis8 \ficta e! fis2 g1 } }
参照
内部リファレンス: Accidental_engraver, AccidentalSuggestion
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 注釈的な臨時記号 (ムジカ・フィクタ) ] | [ 上へ : 計量音楽の記譜 ] | [ グレゴリオ聖歌の記譜 > ] |
白色計量記譜法のリガトゥーラ
白色計量記譜法のリガトゥーラのサポートは限定的です。
白色計量記譜法のリガトゥーラを譜刻するには、layout
ブロック内で、Voice
コンテキストの
Ligature_bracket_engraver
を
Mensural_ligature_engraver
に置き換えます:
\layout { \context { \Voice \remove Ligature_bracket_engraver \consists Mensural_ligature_engraver } }
白色計量記譜法のリガトゥーラの形を記述するための追加の記法はありません。形は、周囲の音符のピッチや長さから独立に決定されます。これは、新しいユーザが慣れるまでには時間がかかるかもしれませんが、内部ではリガトゥーラの音楽的な情報が全て分かっているということを意味します。これは正しい MIDI 出力において必要であるだけでなく、リガトゥーラの自動変換も可能にします。
ある位置で、2 つの連続した音符は 2 つの四角形か、あるいは斜めの平行四辺形
(フレクサ型) として表示することができます。このような場合、デフォルトは 2 つの四角形で表示されますが、平行四辺形を表示させたい場合は、2 つ目の符頭の ligature-flexa
プロパティを##t
にセットします。平行四辺形の長さは flexa-width
でセットすることができます。
例えば:
\score { \relative { \set Score.timing = ##f \set Score.measureBarType = "" \override NoteHead.style = #'petrucci \override Staff.TimeSignature.style = #'mensural \clef "petrucci-g" \[ c''\maxima g \] \[ d'\longa \override NoteHead.ligature-flexa = ##t \once \override NoteHead.flexa-width = #3.2 c\breve f e d \] \[ c\maxima d\longa \] \[ e1 a, g\breve \] } \layout { \context { \Voice \remove Ligature_bracket_engraver \consists Mensural_ligature_engraver } } }
Ligature_bracket_engraver
を Mensural_ligature_engraver
に置き換えない場合、上の音楽は以下のようになります:
参照
音楽用語集: ligature
記譜法リファレンス: グレゴリオ聖歌の四角形ネウマのリガトゥーラ, リガトゥーラ
既知の問題と警告
リガトゥーラの水平方向のスペースは非常に良くないです。臨時記号は前の音符と衝突するかもしれません。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 白色計量記譜法のリガトゥーラ ] | [ 上へ : 古代の記譜法 ] | [ グレゴリオ聖歌のコンテキスト > ] |
2.9.4 グレゴリオ聖歌の記譜
グレゴリオ聖歌のコンテキスト | ||
グレゴリオ聖歌の音部記号 | ||
グレゴリオ聖歌の臨時記号と調号 | ||
ディビジオ | ||
グレゴリオ聖歌のアーティキュレーション | ||
付点 (モラ) | ||
グレゴリオ聖歌の四角形ネウマのリガトゥーラ |
グレゴリオ聖歌の楽譜を記譜する時、Vaticana_ligature_engraver
が適切な符頭を選択するため、符頭のスタイルについては明示的に指定する必要はありません。しかし、例えばパンクトゥム ネウマを表示するために、スタイルを vaticana_punctum
にすることができます。同じように、Mensural_ligature_engraver
が自動的に計量記譜法のリガトゥーラを作り出します。
参照
音楽用語集: ligature
記譜法リファレンス: 白色計量記譜法のリガトゥーラ, リガトゥーラ
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < グレゴリオ聖歌の記譜 ] | [ 上へ : グレゴリオ聖歌の記譜 ] | [ グレゴリオ聖歌の音部記号 > ] |
グレゴリオ聖歌のコンテキスト
予め定義された VaticanaVoice
と VaticanaStaff
は、Editio Vaticana のスタイルでグレゴリオ聖歌の楽譜を記譜するのに使うことができます。これらのコンテキストは、関係する全てのコンテキスト プロパティやグラフィカル オブジェクト プロパティを適切な値に変更するため、すぐに音楽の内容を入力し始めることができます。以下の抜粋は一例です:
\include "gregorian.ly" \score { << \new VaticanaVoice = "cantus" { \[ c'\melisma c' \flexa a \] \[ a \flexa \deminutum g\melismaEnd \] f \divisioMinima \[ f\melisma \pes a c' c' \pes d'\melismaEnd \] c' \divisioMinima \break \[ c'\melisma c' \flexa a \] \[ a \flexa \deminutum g\melismaEnd \] f \divisioMinima } \new Lyrics \lyricsto "cantus" { San- ctus, San- ctus, San- ctus } >> }
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < グレゴリオ聖歌のコンテキスト ] | [ 上へ : グレゴリオ聖歌の記譜 ] | [ グレゴリオ聖歌の臨時記号と調号 > ] |
グレゴリオ聖歌の音部記号
次の表は、\clef
コマンドでサポートしているグレゴリオ聖歌の音部記号を全て表示しています。いくつかの音部記号は同じ形をしていますが、どの線に合わせて表示されるかのみが異なります。このような音部記号は、最後に来る数字がどの線に表示されるかに対応しています。小さいものが下で、大きいものが上です。音部記号がどの線に表示されるかを強制的に変更することもできます
(音部記号 に説明があります)。例の中で、音部記号の右に表示されている音符は、c'
がどの位置に対応するかを示したものです。
説明 | サポートされている音部記号 | 例 |
Editio Vaticana スタイルのハ音記号 | vaticana-do1 , vaticana-do2 ,vaticana-do3 | |
Editio Vaticana スタイルのヘ音記号 | vaticana-fa1 , vaticana-fa2 | |
Editio Medicaea スタイルのハ音記号 | medicaea-do1 , medicaea-do2 ,medicaea-do3 | |
Editio Medicaea スタイルのヘ音記号 | medicaea-fa1 , medicaea-fa2 | |
hufnagel スタイルのハ音記号 | hufnagel-do1 , hufnagel-do2 ,hufnagel-do3 | |
hufnagel スタイルのヘ音記号 | hufnagel-fa1 , hufnagel-fa2 | |
hufnagel style のハ音記号とヘ音記号を組み合わせたもの | hufnagel-do-fa |
参照
音楽用語集: clef
記譜法リファレンス: 音部記号
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < グレゴリオ聖歌の音部記号 ] | [ 上へ : グレゴリオ聖歌の記譜 ] | [ ディビジオ > ] |
グレゴリオ聖歌の臨時記号と調号
3 種類の臨時記号スタイルが利用可能です:
上で示したように、全ての臨時記号がサポートされているわけではありません。サポートされていない臨時記号にアクセスした場合、LilyPond は別のスタイルに変更します。
臨時記号や調号のスタイルはそれぞれ、グラフィカル オブジェクト Accidental
と
KeySignature
の alteration-glyph-name-alist
プロパティでコントロールされます。例えば:
\override Staff.Accidental.alteration-glyph-name-alist = #alteration-mensural-glyph-name-alist
参照
音楽用語集: accidental, key signature
記譜法リファレンス: ピッチ, 臨時記号, 自動臨時記号, 調号
内部リファレンス: KeySignature
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < グレゴリオ聖歌の臨時記号と調号 ] | [ 上へ : グレゴリオ聖歌の記譜 ] | [ グレゴリオ聖歌のアーティキュレーション > ] |
ディビジオ
グレゴリオ聖歌の記譜法には休符がありません。代わりに、ディビジオ (ディビジオ) を使います。
ディビジオ (divisio, 複数形 divisiones, ラテン語で‘区切り’) は、グレゴリオ聖歌においてフレーズや節を表すために使われた記号です。 ディビジオ ミニマ、ディビジオ マヨル、ディビジオ マキシマ はそれぞれ音楽的には、短い、中ぐらいの、長い休止を表します。これは ブレス記号 にあるブレス記号に似ています。フィナリス記号は歌の終わりを表すだけでなく、アンティフォナ (交唱聖歌) において、節の終わりを意味するのによく使われます。
ディビジオを使用するには、ファイル ‘gregorian.ly’ をインクルードしてください。これには定義が含まれており、必要な場所に
\divisioMinima
, \divisioMaior
, \divisioMaxima
,
\finalis
を入力することができます。いくつかの版ではディビジオ ミニマの代わりに virgula や caesura が用いられることがあります。そのため、‘gregorian.ly’ には \virgula
と
\caesura
も定義されています。
定義済みコマンド
\virgula
,
\caesura
,
\divisioMinima
,
\divisioMaior
,
\divisioMaxima
,
\finalis
.
参照
記譜法リファレンス: ブレス記号
インストールされているファイル: ‘ly/gregorian.ly’
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < ディビジオ ] | [ 上へ : グレゴリオ聖歌の記譜 ] | [ 付点 (モラ) > ] |
グレゴリオ聖歌のアーティキュレーション
アーティキュレーションと装飾 に挙げられている通常のアーティキュレーションの他に、グレゴリオ聖歌で用いるためのアーティキュレーションが Editio Vaticana スタイルで提供されています。
\include "gregorian.ly" \score { \new VaticanaVoice { \override TextScript.font-family = #'typewriter \override TextScript.font-shape = #'upright \override Script.padding = #-0.1 a\ictus_"ictus " \bar "" \break a\circulus_"circulus " \bar "" \break a\semicirculus_"semicirculus " \bar "" \break a\accentus_"accentus " \bar "" \break \[ a_"episema" \episemInitium \pes b \flexa a b \episemFinis \flexa a \] } }
参照
記譜法リファレンス: アーティキュレーションと装飾
コード断片集: Ancient notation
内部リファレンス: Episema, EpisemaEvent, Episema_engraver, Script, ScriptEvent, Script_engraver
既知の問題と警告
いくつかのアーティキュレーションは、符頭と縦方向に近づきすぎます。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < グレゴリオ聖歌のアーティキュレーション ] | [ 上へ : グレゴリオ聖歌の記譜 ] | [ グレゴリオ聖歌の四角形ネウマのリガトゥーラ > ] |
付点 (モラ)
モラは \augmentum
音楽関数で追加します。\augmentum
は変数を 1 つだけ取る音楽関数として定義されており、すぐ後に続く音楽表記にのみ作用するということに注意してください。つまり、\augmentum \virga c
は効果が無く、代わりに
\virga \augmentum c
か \augmentum {\virga c}
と記述します。また、\augmentum {a g}
は \augmentum a \augmentum g
の略記となります。
\include "gregorian.ly" \score { \new VaticanaVoice { \[ \augmentum a \flexa \augmentum g \] \augmentum g } }
参照
記譜法リファレンス: ブレス記号
内部リファレンス: BreathingSign
コード断片集: Ancient notation
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 付点 (モラ) ] | [ 上へ : グレゴリオ聖歌の記譜 ] | [ キエフ記譜法で譜刻する > ] |
グレゴリオ聖歌の四角形ネウマのリガトゥーラ
四角形ネウマ記法 (Editio Vaticana スタイルを踏襲しています) のサポートは限定的です。基本的なリガトゥーラは入力できますが、本格的に記譜する場合の、 複数のリガトゥーラの水平配置、歌詞の配置、臨時記号の正しい取り扱いといった必要な機能がサポートされていません。
グレゴリオ聖歌のネウマは、ファイルの先頭に ‘gregorian.ly’ を
\include
することで有効にできます。単旋律聖歌のネウマを生成するいくつかのコマンドが追加で使用できるようになります。
符頭は変更されたり、結合されたりします。
- 符頭の形を変更するには、音名の前に以下のコマンドのいずれかを入力します:
\virga
,\stropha
,\inclinatum
,\auctum
,\descendens
,\ascendens
,\oriscus
,\quilisma
,\deminutum
,\cavum
,\linea
- リガトゥーラは、結合する音符の間に
\pes
や\flexa
のコマンドを入力することで生成します。それぞれ、上向きと下向きの動きに対応します。
何も指定しない場合は、プンクトゥムが作られます。ヴィルガ のような単音のネウマを含む、他の全てのネウマは原則、リガトゥーラとして解釈されるため、
\[ … \]
の間に配置されるべきです。
単音のネウマについて:
- プンクトゥムが基本的な音符の形です
(Vaticana スタイルでは、正方形がタイポグラフィの策略により少し曲がったものです)。通常の プンクトゥムに加え、斜体のプンクトゥム インクリナトゥムがあり、これは
\inclinatum
を前置することで表示します。通常のプンクトゥムは\cavum
で変化させることができ、白抜きの音符を作り出すことができます。また、\linea
では、音符の両側に縦線を表示します。 - ヴィルガ は右側に下向きの符幹を持ちます。
\virga
で表示します。
リガトゥーラについて:
他のネウマ譜入力システムとは異なり、リガトゥーラの見た目はコマンドの入力から指定されるわけではなく、音楽の意味に依存したいくつかの規則によって決まります。例えば、\[ a \pes b \flexa g \]
のような低-高-低の音型を持つ
3 音のリガトゥーラは、3 つのプンクトゥム符頭を持つトルクルスを作ります。\[ a \flexa g \pes b \]
のような高-低-高の音型では、曲がった平行四辺形と 1 のプンクトゥムから成るポレクトゥスを作ります。曲がった平行四辺形を表示させるための明示的なコマンドは無く、いつこの形を表示するかは入力された音楽によります。このアプローチは、入力の音楽的な側面と、出力のスタイルを分離しているということです。このようにすることで、同じ音楽を異なったグレゴリオ聖歌のスタイルで作り出すことができます。
液化ネウマについて:
グレゴリオ聖歌の音符におけるもう一つの主なグループが、いわゆる液化したネウマです。これは液化する音 – つまり、音程を持てる有声子音 (鼻音, l, r, v, j, それらの二重音) – で終わる音節の最後に使われることがあります。そのため、液化ネウマは単独で使われることはなく (しかしながら、単独で出力できるものもあります)、常にリガトゥーラの最後に出現します。
液化ネウマの表現方法は 2 つあり、見た目が異なりますが、通常互換性があります。1 つ目は、通常のように \pes
や \flexa
を使い、後者の音符の形を変化させる方法です: \[ a \pes \deminutum b \]
。2 つ目は、\auctum
を使った 1 音符のネウマに、方向を指示する
\descendens
か \ascendens
を付け加える方法です:
\[ \auctum \descendens a \]
。
特殊な記号:
記号の 3 つ目のグループは、特殊な意味を持ついくつかの記号からなります
(ちなみにそれらは、ほとんどがあまり分かっていないものです)。クイリスマ、オリスクス、ストロファがそうです。
これらは全て、音名の前に対応する修飾子を前置することで作られます:
\quilisma
, \oriscus
, \stropha
。
リガトゥーラの括弧内 (\[ … \]
) では実質、いくらでも符頭を組み合わせて 1 つのリガトゥーラを作ることができ、\pes
, \flexa
, \virga
, \inclinatum
などを前置することで自由に組み合わせることができます。上に示したリガトゥーラ形成のルールも、同じように組み合わせて応用することができます。このようにして、無限の組み合わせのリガトゥーラを作ることができます。
これらの記号は音楽の中で一定のルールに従って配置されますが、それらは LilyPond ではチェックされないということに注意してください。 例えば、クイリスマは常に上昇音型のリガトゥーラの中間にあり、通常は半音で動く場所に付きます。しかし、LilyPond では 1 音符のクイリスマを作ることができてしまいます。
音符の記号に加えて、‘gregorian.ly’ では
\versus
, \responsum
, \ij
,
\iij
, \IJ
, and \IIJ
といったコマンドを定義しています。これらはそれぞれ、歌詞や節のマーカー記号などに使うことのできる文字を作り出します。これらのコマンドは特殊な Unicode 文字を使用しており、正しく動作させるためには、フォントが文字をサポートしている必要があります。
次の表は限定的ではありますが、代表的なグレゴリオ聖歌で使われるリガトゥーラの一覧です。それぞれのリガトゥーラには、それを作り出すためのコード断片も同時に示されています。この表は、Solesmes の修道士によって 1983 年に出版された、Antiphonale Romanum (Liber Hymnarius) の第 2 巻に収録されている、大きなネウマの一覧表を基にしています。1 列目がリガトゥーラの名前を表しています。主要な形は太字で、液化ネウマは斜体で表示しています。3 列目がこのリガトゥーラを作り出すコード断片を g
, a
, b
を例のピッチとして示しています。
単音のネウマ
主要な/液化した 形 | 出力 | LilyPond コード |
プンクトゥム (Punctum) | \[ b \] | |
\[ \cavum b \] | ||
\[ \linea b \] | ||
Punctum Auctum Ascendens | \[ \auctum \ascendens b \] | |
Punctum Auctum Descendens | \[ \auctum \descendens b \] | |
プンクトゥム インクリナトゥム (Punctum inclinatum) | \[ \inclinatum b \] | |
Punctum Inclinatum Auctum | \[ \inclinatum \auctum b \] | |
Punctum Inclinatum Parvum | \[ \inclinatum \deminutum b \] | |
ヴィルガ (Virga) |
2 音のリガトゥーラ
クリヴィス/フレクサ (Clivis vel Flexa) | \[ b \flexa g \] | |
Clivis Aucta Descendens | \[ b \flexa \auctum \descendens g \] | |
Clivis Aucta Ascendens | \[ b \flexa \auctum \ascendens g \] | |
Cephalicus | \[ b \flexa \deminutum g \] | |
ポダトゥス/ペス Podatus vel Pes | \[ g \pes b \] | |
Pes Auctus Descendens | \[ g \pes \auctum \descendens b \] | |
Pes Auctus Ascendens | \[ g \pes \auctum \ascendens b \] | |
Epiphonus | \[ g \pes \deminutum b \] | |
Pes Initio Debilis | \[ \deminutum g \pes b \] | |
Pes Auctus Descendens Initio Debilis | \[ \deminutum g \pes \auctum \descendens b \] |
複数音のリガトゥーラ
トルクルス (Torculus) | \[ a \pes b \flexa g \] | |
Torculus Auctus Descendens | \[ a \pes b \flexa \auctum \descendens g \] | |
Torculus Deminutus | \[ a \pes b \flexa \deminutum g \] | |
Torculus Initio Debilis | \[ \deminutum a \pes b \flexa g \] | |
Torculus Auctus Descendens Initio Debilis | \[ \deminutum a \pes b \flexa \auctum \descendens g \] | |
Torculus Deminutus Initio Debilis | \[ \deminutum a \pes b \flexa \deminutum g \] | |
ポレクトゥス (Porrectus) | \[ a \flexa g \pes b \] | |
Porrectus Auctus Descendens | \[ a \flexa g \pes \auctum \descendens b \] | |
Porrectus Deminutus | \[ a \flexa g \pes \deminutum b \] | |
クリマクス (Climacus) | \[ \virga b \inclinatum a \inclinatum g \] | |
Climacus Auctus | \[ \virga b \inclinatum a \inclinatum \auctum g \] | |
Climacus Deminutus | \[ \virga b \inclinatum a \inclinatum \deminutum g \] | |
スカンディクス (Scandicus) | \[ g \pes a \virga b \] | |
Scandicus Auctus Descendens | \[ g \pes a \pes \auctum \descendens b \] | |
Scandicus Deminutus | \[ g \pes a \pes \deminutum b \] |
特殊な記号
クイリスマ (Quilisma) | \[ g \pes \quilisma a \pes b \] | |
Quilisma Pes Auctus Descendens | \[ \quilisma g \pes \auctum \descendens b \] | |
オリスクス (Oriscus) | \[ \oriscus b \] | |
Pes Quassus | \[ \oriscus g \pes \virga b \] | |
Pes Quassus Auctus Descendens | \[ \oriscus g \pes \auctum \descendens b \] | |
サリクス (Salicus) | \[ g \oriscus a \pes \virga b \] | |
Salicus Auctus Descendens | \[ g \oriscus a \pes \auctum \descendens b \] | |
(アポ)ストロファ ((Apo)stropha) | \[ \stropha b \] | |
Stropha Aucta | \[ \stropha \auctum b \] | |
ビストロファ (Bistropha) | \[ \stropha b \stropha b \] | |
トリストロファ (Tristropha) | \[ \stropha b \stropha b \stropha b \] | |
Trigonus | \[ \stropha b \stropha b \stropha a \] |
定義済みコマンド
サポートされている符頭を変化させる前置コマンドは以下です:
\virga
,
\stropha
,
\inclinatum
,
\auctum
,
\descendens
,
\ascendens
,
\oriscus
,
\quilisma
,
\deminutum
,
\cavum
,
\linea
これらのコマンドは組み合わせることができますが、制約があります。例えば、\descendens
や \ascendens
はどちらも符頭に付け加えることのできるコマンドですが、同じ符頭に両方を付けることはできません。
隣り合う符頭は、\pes
や \flexa
中置コマンドで結合することができます。それぞれ音型の上昇と下降を意味します。
付点 (モラ) を追加するには 1 引数のコマンド \augmentum
を使ってください。
参照
音楽用語集: ligature
記譜法リファレンス: グレゴリオ聖歌の四角形ネウマのリガトゥーラ, 白色計量記譜法のリガトゥーラ, リガトゥーラ
既知の問題と警告
\augmentum
が最後の譜のリガトゥーラ内に出現した場合、縦方向の付点の位置がおかしくなることがあります。対処方法は、譜の最後にスキップ音符 (例えば s8
) を追加することです。
\augmentum
は 1 引数の音楽関数ではなく、前置コマンドとして実装されるべきです。そうすることで、\augmentum
を他の前置コマンドと任意の順番で混合させることができます。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < グレゴリオ聖歌の四角形ネウマのリガトゥーラ ] | [ 上へ : 古代の記譜法 ] | [ キエフ記譜法のコンテキスト > ] |
2.9.5 キエフ記譜法で譜刻する
(訳注: キエフ記譜法 (Kievan square notation) は、ロシア正教会を中心に使われている聖歌の記譜法です。符頭が四角形 (square) であることが特徴です。)
キエフ記譜法のコンテキスト | ||
キエフ記譜法の音部記号 | ||
キエフ記譜法の音符 | ||
キエフ記譜法の臨時記号 | ||
キエフ記譜法の小節線 | ||
キエフ記譜法のメリスマ |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < キエフ記譜法で譜刻する ] | [ 上へ : キエフ記譜法で譜刻する ] | [ キエフ記譜法の音部記号 > ] |
キエフ記譜法のコンテキスト
計量記譜法やグレゴリオ聖歌の記譜法と同様に、KievanVoice
と
KievanStaff
コンテキストが予め定義されており、Kievan 記譜法で音楽を譜刻する際に使うことができます。これらのコンテキストは、関連するコンテキスト プロパティやグラフィカル オブジェクト プロパティを正しい値にセットします。そのため、すぐに音楽を入力することができます:
% Font settings for Cyrillic \paper { #(define fonts (set-global-fonts #:roman "Linux Libertine O,serif" )) } \score { << \new KievanVoice = "melody" \relative c' { \cadenzaOn c4 c c c c2 b\longa \bar "k" } \new Lyrics \lyricsto "melody" { Го -- спо -- ди по -- ми -- луй. } >> }
参照
音楽用語集: kievan notation
既知の問題と警告
LilyPond は Synodal スタイルのキエフ記譜法をサポートしています。これは、Russian Holy Synod で 1910 年に作られた聖歌集で使われたもので、最近では Moscow Patriarchate Publishing House が再販しました。LilyPond はガリツィアでルシン語の単旋律聖歌に使われた、古い (より一般的でない) スタイルのキエフ記譜法をサポートしていません。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < キエフ記譜法のコンテキスト ] | [ 上へ : キエフ記譜法で譜刻する ] | [ キエフ記譜法の音符 > ] |
キエフ記譜法の音部記号
キエフ記譜法では、1 つの音部記号しか使いません (Tse-fa-ut 音部記号)。
これは、c
の位置を表すのに使います:
\clef "kievan-do" \kievanOn c'
参照
音楽用語集: kievan notation, clef
記譜法リファレンス: 音部記号
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < キエフ記譜法の音部記号 ] | [ 上へ : キエフ記譜法で譜刻する ] | [ キエフ記譜法の臨時記号 > ] |
キエフ記譜法の音符
キエフ記譜法では、適切なスタイルの符頭が選択され、符尾と符幹を表示しないようにする必要があります。これらは符頭、符幹、符尾のプロパティを適切な値にセットする
\kievanOn
関数によって行うことができます。キエフ記譜法の音符が必要なくなったら、\kievanOff
関数で元に戻すことができます。
キエフ記譜法における最終音符は、長さを \longa
にすることで選ぶことができます。朗唱を表す音符は、1 つの音符でいくつかの音節を歌うことを示すために使用されますが、\breve
で選ぶことができます。次の例では、いくつかの種類の符頭を例示しています:
\autoBeamOff \cadenzaOn \kievanOn b'1 b'2 b'4 b'8 b'\breve b'\longa \kievanOff b'2
参照
音楽用語集: kievan notation, note head
記譜法リファレンス: 符頭のスタイル
既知の問題と警告
LilyPond は音符を描画する際に、符幹の向きが上か下かを自動的に決定します。しかしながら、聖歌をキエフ記譜法で譜刻する場合、同じメリスマ内の音符は符幹を同じ向きにすることが慣習となっています。これは
Stem
オブジェクトの direction
プロパティを手動でセットすることで行うことができます。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < キエフ記譜法の音符 ] | [ 上へ : キエフ記譜法で譜刻する ] | [ キエフ記譜法の小節線 > ] |
キエフ記譜法の臨時記号
Accidental
グラフィカル オブジェクトの alteration-glyph-name-alist
プロパティに kievan
スタイルを選択することができます。kievan
スタイルは、デフォルトと異なるシャープ記号やフラット記号を提供します。キエフ記譜法にはナチュラル記号は存在しません。Synodal スタイルの音楽ではシャープ記号は使われませんが、昔の写本に使われていることがあります。この記号が含まれているのは主に互換性の理由からです。
\clef "kievan-do" \override Accidental.alteration-glyph-name-alist = #alteration-kievan-glyph-name-alist bes' dis'
参照
音楽用語集: kievan notation, accidental
記譜法リファレンス: 臨時記号, 自動臨時記号, Emmentaler フォント
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < キエフ記譜法の臨時記号 ] | [ 上へ : キエフ記譜法で譜刻する ] | [ キエフ記譜法のメリスマ > ] |
キエフ記譜法の小節線
キエフ記譜法では、曲の終わりに装飾的な記号が置かれるのが一般的です。これは最終小節線と呼ばれることがあります。\bar "k"
で表示することができます。
\kievanOn \clef "kievan-do" c' \bar "k"
参照
記譜法リファレンス: 小節, Emmentaler フォント
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < キエフ記譜法の小節線 ] | [ 上へ : キエフ記譜法で譜刻する ] | [ 古代音楽に取り組む---事例とその解決法 > ] |
キエフ記譜法のメリスマ
キエフ記譜法では、1 つのメリスマに属する音符は互いに近くに配置され、メリスマ同士は空白で区切られます。これによりズナメニ聖歌の歌唱者は、メロディの構造を素早く識別することができます。LilyPond では、メリスマはリガトゥーラとして扱われ、メリスマ間のスペースは Kievan_ligature_engraver
によって実装されています。
KievanVoice
と KievanStaff
コンテキストが使用されている時は、Kievan_ligature_engraver
はデフォルトで有効化されています。他のコンテキストでは、\layout
ブロックで、Ligature_bracket_engraver
を Kievan_ligature_engraver
に置き換えます。
\layout { \context { \Voice \remove Ligature_bracket_engraver \consists Kievan_ligature_engraver } }
メリスマ間の空白は、KievanLigature
の padding
プロパティをセットすることで変更することができます。
次の例では、リガトゥーラを使用しています:
% Font settings for Cyrillic \paper { #(define fonts (set-global-fonts #:roman "Linux Libertine O,serif" )) } \score { << \new KievanVoice = "melody" \relative c' { \cadenzaOn e2 \[ e4( d4 ) \] \[ c4( d e d ) \] e1 \bar "k" } \new Lyrics \lyricsto "melody" { Га -- врі -- и -- лу } >> }
参照
音楽用語集: ligature
記譜法リファレンス: 白色計量記譜法のリガトゥーラ, グレゴリオ聖歌の四角形ネウマのリガトゥーラ, リガトゥーラ
既知の問題と警告
リガトゥーラの水平方向のスペーシングは非常に悪いです。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < キエフ記譜法のメリスマ ] | [ 上へ : 古代の記譜法 ] | [ インキピット > ] |
2.9.6 古代音楽に取り組む—事例とその解決法
インキピット | ||
Mensurstriche レイアウト | ||
グレゴリオ聖歌を転写する | ||
1 つのソースから古代譜と現代譜の両方を生成する | ||
編集上のマーク |
古代音楽の譜刻に取り組む場合、LilyPond の主なターゲットである現代の記譜法とはかなり異なる作業を強いられることが多くあります。このセクションの残りでは、いくつかの事例を取り上げ、その解決法の 1 つを示します。取り上げる事例は以下の通りです:
- 計量音楽の現代転写譜で、インキピット (オリジナルの楽譜がどのようであったかを楽譜の先頭に示すもの) をどのように作るか
- ポリフォニー音楽の現代転写譜で頻繁に使われる、Mensurstriche レイアウトをどのように作るか
- グレゴリオ聖歌を現代譜にどのように転写するか
- 同じソースから古代と現代の記譜法の両方の楽譜をどのように生成するか
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 古代音楽に取り組む---事例とその解決法 ] | [ 上へ : 古代音楽に取り組む---事例とその解決法 ] | [ Mensurstriche レイアウト > ] |
インキピット
計量音楽を現代記譜法に転写するとき、オリジナルの楽譜の最初にある休符や音符がどのようであったかを、音部記号と共に示すことが習慣となっています。これがインキピット (incipit) と呼ばれるものです。\incipit
コマンドは、メインの譜の indent
を、インキピットによって占有される部分の幅として、また、incipit-width
を、インキピットの譜の幅として使用します。
\score { \new Staff << \new Voice = Tenor { \set Staff.instrumentName = "Tenor" \override Staff.InstrumentName.self-alignment-X = #RIGHT \incipit { \clef "mensural-c4" \key f \major r\breve r1 c'1 } \clef "treble_8" \key f \major R1 r2 c'2 | a4. c'8 } \new Lyrics \lyricsto Tenor { Cyn -- thia your } >> \layout { indent = 5\cm incipit-width = 3\cm } }
既知の問題と警告
インキピットを生成するためには、instrumentName
がセットされている必要があります。楽器名が必要ない場合には、
\set Staff.instrumentName = ""
としてください。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < インキピット ] | [ 上へ : 古代音楽に取り組む---事例とその解決法 ] | [ グレゴリオ聖歌を転写する > ] |
Mensurstriche レイアウト
Mensurstriche (‘計量 (記譜法の) 線’) は一般に受け入れられた用語で、同じシステム (段) 内にある譜と譜の間には引かれ、譜自体には引かれない 小節線のことです。このようにして、小節線の持つ位置決めの機能を保ちつつ、 オリジナルのリズムの表示を失わないように (シンコペーションされた音符が小節線によって区切られてしまわないように) することが通例となっています。
Mensurstriche (計量音楽風の) レイアウトでは、小節線を譜の中には表示せず、譜と譜の間に表示します。これは、ChoirStaff
の代わりに StaffGroup
を用いることで実現できます。譜の中にある小節線は \hide
で非表示にします。
\layout { \context { \Staff measureBarType = "-span|" } } music = \fixed c'' { c1 d2 \section e2 f1 \fine } \new StaffGroup << \new Staff \music \new Staff \music >>
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < Mensurstriche レイアウト ] | [ 上へ : 古代音楽に取り組む---事例とその解決法 ] | [ 1 つのソースから古代譜と現代譜の両方を生成する > ] |
グレゴリオ聖歌を転写する
グレゴリオ聖歌は、いくつかのシンプルな調整によって現代譜に転写することができます。
符幹: Voice
コンテキストの Stem_engraver
を \remove
によって削除することで、符幹を完全に作らないようにできます:
\layout { … \context { \Voice \remove Stem_engraver } }
タイミング: 拍子の無い曲では、いくつかの手段があります:
Time_signature_engraver
を Staff
コンテキストから問題なく削除することができます。そうせずに、拍子記号を透明にすると、拍子記号はスペースを確保したままであるため、楽譜には何もないスペースが残ってしまいます。
多くの場合では、\set Score.timing = ##f
が良い結果をもたらします。他には、\cadenzaOn
と \cadenzaOff
を使う方法があります。
小節線を削除するには、基本的には Staff
コンテキストの
Bar_engraver
を \remove
によって削除します。小節線が必要な部分がある場合、\hide BarLine
を代わりに使うことができます。
朗唱部分は、繰り返される音符が 1 つのブレーヴェで示されます。朗唱のテキストを配置する方法は 2 つあります。1 つ目は、左揃えの 1 音節として配置する方法です:
\include "gregorian.ly" chant = \relative { \clef "G_8" c'\breve c4 b4 a c2 c4 \divisioMaior c\breve c4 c f, f \finalis } verba = \lyricmode { \once \override LyricText.self-alignment-X = #-1 "Noctem quietam et" fi -- nem per -- fec -- tum \once \override LyricText.self-alignment-X = #-1 "concedat nobis Dominus" om -- ni -- po -- tens. } \score { \new Staff << \new Voice = "melody" \chant \new Lyrics = "one" \lyricsto melody \verba >> \layout { \context { \Staff \remove Time_signature_engraver \remove Bar_engraver } \context { \Voice \remove Stem_engraver } } }
これで基本的に問題はありませんが、テキストが改行しないという問題があります。改行が必要な場合は、以下のように、楽譜に不可視の音符を付け加えます。
一部の転写のスタイルでは、例えば朗唱部分からメロディ部分へと以降することを示すために、符幹が用いられることがあります。このような場合、Stem_engraver
を \remove
する代わりに、\hide Stem
あるいは \override Stem.length = #0
を使い、
符幹が必要な場面で \undo \hide Stem
(訳注: あるいは \revert Stem.length
) を使って元に戻すことができます。
\include "gregorian.ly" chant = \relative { \clef "G_8" \set Score.timing = ##f \hide Stem c'\breve \hide NoteHead c c c c c \undo \hide NoteHead \undo \hide Stem \stemUp c4 b4 a \hide Stem c2 c4 \divisioMaior c\breve \hide NoteHead c c c c c c c \undo \hide NoteHead c4 c f, f \finalis } verba = \lyricmode { No -- ctem qui -- e -- tam et fi -- nem per -- fec -- tum con -- ce -- dat no -- bis Do -- mi -- nus om -- ni -- po -- tens. } \score { \new Staff << \new Voice = "melody" \chant \new Lyrics \lyricsto "melody" \verba >> \layout { \context { \Staff \remove Time_signature_engraver \hide BarLine } } }
ネウマ譜あるいはメリスマ式の聖歌
(それぞれの音節に様々な数の音符が割り当てられているもの)
を転写することも一般的です。このとき、音節ごとに間を開けて、長いメリスマにおいては、更に細かいグループに分けて表示したい場合があります。これを行う方法の 1 つは、\time
を 1/4 などに固定し、連符や短い音符を使って、それぞれの音節やグループで 1 小節を作るというものです。小節線や他のリズムに関する表示が透明になっていて、小節線の周りのスペースが増やされているなら、現代譜で上手くオリジナルを表現することができます。
異なる長さの音節 (“-ri” と “-rum” など) によって音符のグループが不均一な間隔で分かれてしまうなら、LyricText
オブジェクトの X-extent
プロパティを固定値にセットすることで対処できます。または、より厄介ではありますが、音節を \markup
要素にするという方法があります。更に調整が必要なら、s
‘音符’で簡単に行うことができます。
spiritus = \relative { \time 1/4 \override Lyrics.LyricText.X-extent = #'(0 . 3) d'4 \tuplet 3/2 { f8 a g } g a a4 g f8 e d4 f8 g g8 d f g a g f4 g8 a a4 s \tuplet 3/2 { g8 f d } e f g a g4 } spirLyr = \lyricmode { Spi -- ri -- _ _ tus _ Do -- mi -- ni _ re -- ple -- _ vit _ or -- _ bem _ ter -- ra -- _ rum, al -- _ _ le -- _ lu -- _ ia. } \score { \new Staff << \new Voice = "chant" \spiritus \new Lyrics = "one" \lyricsto "chant" \spirLyr >> \layout { \context { \Staff \remove Time_signature_engraver \override BarLine.X-extent = #'(-1 . 1) \hide Stem \hide Beam \hide BarLine \hide TupletNumber } } }
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < グレゴリオ聖歌を転写する ] | [ 上へ : 古代音楽に取り組む---事例とその解決法 ] | [ 編集上のマーク > ] |
1 つのソースから古代譜と現代譜の両方を生成する
タグを使用して同じソースから計量音楽譜と現代譜を生成する
タグを使用して、同じ音楽に対して計量音楽譜と現代譜の両方を生成することができます。このスニペットでは、menrest
関数が定義されており、計量音楽における休符の位置は維持しながら、現代譜における休符は通常の位置に配置しています。タグは曲の終わりにある小節線を 2 つの楽譜で異なるものにするために使用していますが、区別が必要な他の場面でも用いることができます:
例えば、現代譜では “全休符” (R1, R\breve など) を使用したいが、計量音楽譜では通常の休符 (r1, r\breve など) を使用したい場合です。計量音楽を現代音楽に変換する作業は通常 “転写 (transcription)” と呼ばれます。
menrest = #(define-music-function (note) (ly:music?) #{ \tag #'mens $(make-music 'RestEvent note) \tag #'mod $(make-music 'RestEvent note 'pitch '()) #}) MenStyle = { \autoBeamOff \override NoteHead.style = #'petrucci \override Score.BarNumber.transparent = ##t \override Stem.neutral-direction = #up } finalis = \section Music = \relative c'' { \set Score.tempoHideNote = ##t \key f \major \time 4/4 g1 d'2 \menrest bes4 bes2 a2 r4 g4 fis2. \finalis } MenLyr = \lyricmode { So farre, deere life, deare life } ModLyr = \lyricmode { So far, dear life, dear life } \score { \keepWithTag #'mens { << \new MensuralStaff { \new MensuralVoice = Cantus \clef "mensural-c1" \MenStyle \Music } \new Lyrics \lyricsto Cantus \MenLyr >> } } \score { \keepWithTag #'mod { \new ChoirStaff << \new Staff { \new Voice = Sop \with { \remove "Note_heads_engraver" \consists "Completion_heads_engraver" \remove "Rest_engraver" \consists "Completion_rest_engraver" } { \shiftDurations #1 #0 { \autoBeamOff \Music } } } \new Lyrics \lyricsto Sop \ModLyr >> } }
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 1 つのソースから古代譜と現代譜の両方を生成する ] | [ 上へ : 古代音楽に取り組む---事例とその解決法 ] | [ 世界の音楽 > ] |
編集上のマーク
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 編集上のマーク ] | [ 上へ : 専門的な記譜法 ] | [ 非西洋音楽の一般的な記譜法 > ] |
2.10 世界の音楽
このセクションの目的は、西洋音楽の慣習とは異なる音楽に関する記譜の問題をハイライトすることです。
2.10.1 非西洋音楽の一般的な記譜法 | ||
2.10.2 アラブ音楽 | ||
2.10.3 トルコの伝統音楽 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 世界の音楽 ] | [ 上へ : 世界の音楽 ] | [ 記譜法とチューニング システムを拡張する > ] |
2.10.1 非西洋音楽の一般的な記譜法
このセクションでは、西洋のクラシック音楽の様式には属さない楽譜を入力し、譜刻する方法を説明します。
記譜法とチューニング システムを拡張する |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 非西洋音楽の一般的な記譜法 ] | [ 上へ : 非西洋音楽の一般的な記譜法 ] | [ アラブ音楽 > ] |
記譜法とチューニング システムを拡張する
標準的なクラシック音楽の記譜法 (Common Practice Period – 16-19世紀のヨーロッパ音楽 – の記譜法) は全ての種類の音楽で使われるもので、西洋の ‘クラシック’ 音楽に限定されるものではありません。この記譜法は ピッチを記述する で説明されていて、様々な音符名が 他の言語での音符名 で説明されています。
非西洋音楽のいくつかとフォーク ミュージック、伝統音楽はしばしば異なるあるいは拡張されたチューニングシステムを採用していて、標準的なクラシック音楽の記譜法とは容易に適合しません。
標準の記譜法を用いますが、ピッチの違いを潜在させます。例えば、アラブ音楽 は、標準の半音 (訳者: シャープとフラット) と四分音 (訳者: シャープとフラットの半分) を用いますが、精密なピッチの変化はコンテキストによって決定されます。アラブ音楽 に関しては、初期ファイル ‘arabic.ly’ が標準の記譜法を拡張するアラブ音楽に適したマクロと定義のセットを提供します。詳細は、アラブ音楽 を参照してください。
他のタイプの音楽は、拡張されたあるいは固有の記譜法を必要とします。例えば、トルコの伝統音楽 (オスマントルコの伝統音楽としても有名です) は、全音の 1/9 をベースとする音程を持つ マカーム と呼ばれる旋律様式を採用しています。標準の西洋音楽の音符を使いますが、ファイル ‘turkish-makam.ly’ で独自に定義されている特殊な臨時記号が用いられます。トルコの伝統音楽とマカームについての詳細は トルコの伝統音楽 を参照してください。
他にも、関連する初期ファイル ‘hel-arabic.ly’ や ‘makam.ly’ が利用可能です。
これらの初期ファイルの保存場所については、 その他の情報源 を参照してください。
参照
音楽用語集: Common Practice Period, makamlar
学習マニュアル: その他の情報源
記譜法リファレンス: ピッチを記述する, 他の言語での音符名, アラブ音楽, トルコの伝統音楽
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < 記譜法とチューニング システムを拡張する ] | [ 上へ : 世界の音楽 ] | [ アラブ音楽のためのリファレンス > ] |
2.10.2 アラブ音楽
このセクションでは、アラブ音楽の記譜に関する問題をハイライトします。
アラブ音楽のためのリファレンス | ||
アラブ音楽での音符名 | ||
アラブ音楽での調号 | ||
アラブ音楽での拍子 | ||
アラブ音楽の例 | ||
アラブ音楽のための更なる知識 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < アラブ音楽 ] | [ 上へ : アラブ音楽 ] | [ アラブ音楽での音符名 > ] |
アラブ音楽のためのリファレンス
アラブ音楽は主に口伝えで伝えられてきました。音楽を記述するときは、演奏者が多くを即興することを前提としたスケッチ形式で記されます。アラブ音楽を伝え、保護するために、いくつかのバリエーションを持つ西洋音楽記譜法を採用することが増えています。
和音の記述や独立したパートのような西洋音楽記譜法の要素のいくつかは、伝統的なアラブ音楽を記譜するのに必要としません。しかしながら、それとは異なる問題があります。例えば、西洋音楽で用いられる半音と全音に加えて、半音や全音の間にある中間音程を示す必要があります。さらに、多くのマカーム (旋法) – アラブ音楽のパート – を示す必要があります。
一般的に、アラブ音楽の記譜法は微分音要素を正確に示そうとはしません。
アラブ音楽に関係する問題のいくつかは他の場所でカバーされています:
- 音符名と臨時記号 (四分音を含む) を用意する方法は、非西洋音楽の一般的な記譜法 で説明しています。
- 追加の調号を用意する方法は、調号 で説明しています。
- 複雑な拍子は、手動連桁 で説明されているように、音符を手動でグループ化することを必要とするかもしれません。
- 自由なリズムの即興 – タクシーム – は、無韻律の音楽 で説明されているように小節線を省略します。
参照
記譜法リファレンス: 非西洋音楽の一般的な記譜法, 調号, 手動連桁
コード断片集: World music
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < アラブ音楽のためのリファレンス ] | [ 上へ : アラブ音楽 ] | [ アラブ音楽での調号 > ] |
アラブ音楽での音符名
伝統的なアラブ音楽の音符名は非常に長く、音楽を記述するという目的には必ずしも適しているとは言えません。
‘hel-arabic.ly’ で、英語の音符名を使うことができます。これは、‘hel-arabic.ly’ を用いた マカーム ラースト スケールです:
\include "hel-arabic.ly" \relative { \key c \rast c' d edb f | g a bdb c | c bb a g | f d c }
‘arabic.ly’ では、代わりにイタリア語 (あるいはソルフェージュ) の音符名を使うことができます。これは、‘arabic.ly’ を用いた マカーム ラースト スケールです:
\include "arabic.ly" \relative { do' re misb fa | sol la sisb do | sisb la sol fa | misb re do }
“マカーム ラースト” は四分音間隔が使われる七音音階であり、“アラブ音楽のマカーム” の最も重要で中核的なスケールであると考えられています。サポートされているアラブ音楽のスケールの完全なリストについては、LilyPond に含まれている ‘hel-arabic.ly’ や ‘arabic.ly’ ファイルを参照してください。
非西洋音楽を記譜するための標準的な西洋記譜法の使用方法については、 非西洋音楽の一般的な記譜法 で説明しています。 他の言語での音符名 も参照してください。
半フラットの記号は、アラブ音楽の記譜法で用いられる記号と一致しません。特殊なアラブ音楽の半フラット記号を用いることが重要である場合は、半フラットの音符の前に ‘arabic.ly’ で定義されている \dwn
を配置します。この方法では、調号の中の半フラット記号の見た目を変えることはできません。
\include "arabic.ly" \relative { \set Staff.extraNatural = ##f dod' dob dosd \dwn dob dobsb dodsd do do }
参照
記譜法リファレンス: 他の言語での音符名, 非西洋音楽の一般的な記譜法, LilyPond ファイルをインクルードする
インストールされているファイル: ‘ly/arabic.ly’, ‘ly/hel-arabic.ly’
コード断片集: World music
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < アラブ音楽での音符名 ] | [ 上へ : アラブ音楽 ] | [ アラブ音楽での拍子 > ] |
アラブ音楽での調号
マイナーとメジャーの調号に加えて、アラブ音楽の調号は ‘hel-arabic.ly’ と ‘arabic.ly’ の両方で定義され、多くの異なるマカーム グループを定義します。
一般的に、マカームはそのマカーム グループあるいは隣のグループの調号を使用し、楽曲全体にさまざまな臨時記号が付けられます。アラブ音楽のマカームの移調は、アラブ音楽の楽器の性質により、制限されています。
例として、“マカーム muhayer” の調号を示します:
\key re \bayati
ここで、re が muhayer マカームの終止音であり、bayati がそのグループでの基本となるマカームの名前です。
調号がグループを表していますが、一般にタイトルはより具体的なマカームを示します。そのため、上記の例では“マカーム muhayer” の名前もタイトルとして表示されます。
以下の表で示すように同じ bayati グループに属する他のマカーム (bayati, hussaini, saba, それに ushaq) も同じ方法で示すことができます。それらがその bayati グループのすべてのバリエーションです。それらは基本的な特質は変わらない兄弟関係にあり、基本となるマカーム (この場合は bayati) とは上方のテトラコードが異なっていたり、詳細の一部分が異なっています。
同じグループの他のマカーム (nawa) は bayati を移調したもので、表では移調をマカームの後ろに括弧書きで、基本となるマカームからの移調として記載しています。例えば、Nawa は以下のように示すことができます:
\key sol \bayati
アラブ音楽では、bayati のような用語が複数の意味を持ちます – マカーム グループを示し、そのグループで最も重要なマカームであり、基本となるマカームでもあります。
ここで、一般的なマカームの調号をマッピングしたグループを示します:
マカーム グループ | 調 | 終止音 | グループの他のマカーム (終止音) |
---|---|---|---|
ajam | major | sib | jaharka (fa) |
bayati | bayati | re | hussaini, muhayer, saba, ushaq, nawa (sol) |
hijaz | kurd | re | shahnaz, shad arban (sol), hijazkar (do) |
iraq | iraq | sisb | - |
kurd | kurd | re | hijazkar kurd (do) |
nahawand | minor | do | busalik (re), farah faza (sol) |
nakriz | minor | do | nawa athar, hisar (re) |
rast | rast | do | mahur, yakah (sol) |
sikah | sikah | misb | huzam |
Selected Snippets
非伝統的な調号
広く使われている \key
コマンドは、Staff
コンテキストの
keyAlterations
をセットしています。非標準な調号を作成するには、このプロパティを直接セットします。
コマンドの形式は以下のようなリストです:
\set Staff.keyAlterations = #`(((octave . step) . alter) ((octave
. step) . alter) ...)
が構文です。リストの各要素について、octave
がオクターブを指定し
(0 がミドル C からその上の B まで)、step
はオクターブ内の音階 (0 が C, 6 が B)、alter
が ,SHARP ,FLAT ,DOUBLE-SHARP
などです。
または、各要素についてより簡潔な形式があり、(step . alter)
は全てのオクターブに対して変化記号が適用されます。“シャープ” が 100 セントではない微分音のスケールでは、alter
を 200 セントの全音を 1 とした数値で指定できます。
\include "arabic.ly" \relative do' { \set Staff.keyAlterations = #`((0 . ,SEMI-FLAT) (1 . ,SEMI-FLAT) (2 . ,FLAT) (5 . ,FLAT) (6 . ,SEMI-FLAT)) %\set Staff.extraNatural = ##f re reb \dwn reb resd dod dob dosd \dwn dob | dobsb dodsd do do | }
参照
音楽用語集: maqam, bayati, rast, sikah, iraq, kurd
記譜法リファレンス: 調号
学習マニュアル: ピッチと調号
内部リファレンス: KeySignature
インストールされているファイル: ‘ly/arabic.ly’, ‘ly/hel-arabic.ly’
コード断片集: World music, Pitches
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < アラブ音楽での調号 ] | [ 上へ : アラブ音楽 ] | [ アラブ音楽の例 > ] |
アラブ音楽での拍子
アラブ音楽とトルコ音楽の伝統的な形式 – セマーイー (Semai) など – は 10/8 のような通常とは異なる拍子を使います。このことは、音符の自動グループ化は拍で音符をグループ化する既存の楽譜とは大きく異なり、自動連桁機能の調節で対応することが困難ということを意味します。代替手段として、自動連桁機能を off にして、手動で音符に連桁を付けることになります。既存の楽譜に合わせることが必要でない場合であっても、自動連桁機能の振る舞いを調整し、複合拍子を用いることが望ましいかもしれません。
Selected Snippets
アラブ音楽の即興
一時的なタクシームや即興部分のために、拍子記号の省略や、\cadenzaOn
の使用が可能です。小節線が省かれることで臨時記号が一度しか表示されなくなるるため、臨時記号の付加スタイルを調整する必要があるかもしれません。以下は、ヒジャーズの即興に使用される例を示しています。
\include "arabic.ly" \relative sol' { \key re \kurd \accidentalStyle forget \cadenzaOn sol4 sol sol sol fad mib sol1 fad8 mib re4. r8 mib1 fad sol }
参照
記譜法リファレンス: 手動連桁, 自動連桁, 無韻律の音楽, 自動臨時記号, 自動連桁の振る舞いを設定する, 拍子
インストールされているファイル: ‘ly/arabic.ly’, ‘ly/hel-arabic.ly’
コード断片集: World music
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < アラブ音楽での拍子 ] | [ 上へ : アラブ音楽 ] | [ アラブ音楽のための更なる知識 > ] |
アラブ音楽の例
ここで、トルコの セマーイー (Semai) の始めの部分を使ったテンプレートを挙げます。アラブ音楽教育では、セマーイー はアラブ音楽の記譜の特色のいくつか – このセクションで説明した中間的な音程や通常では使用しない旋法等 – を説明するためにお馴染みのものです。
\include "arabic.ly" \score { \header { title = "Semai Muhayer" composer = "Jamil Bek" } \relative { \set Staff.extraNatural = ##f \set Staff.autoBeaming = ##f \key re \bayati \time 10/8 re'4 re'8 re16 [misb re do] sisb [la sisb do] re4 r8 re16 [misb do re] sisb [do] la [sisb sol8] la [sisb] do [re] misb fa4 fa16 [misb] misb8. [re16] re8 [misb] re [do] sisb do4 sisb8 misb16 [re do sisb] la [do sisb la] la4 r8 } }
参照
インストールされているファイル: ‘ly/arabic.ly’, ‘ly/hel-arabic.ly’
コード断片集: World music
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < アラブ音楽の例 ] | [ 上へ : アラブ音楽 ] | [ トルコの伝統音楽 > ] |
アラブ音楽のための更なる知識
下方のテトラ コードの共通性または移調によって関連するマカームをグループ化するように取り決められているにもかかわらず、マカームのグループ化の方法の詳細にはいくつかのバリエーションがあります。特定のマカームに対してどのように調号を指定するかについても、同じテキスト内であっても、一貫していません。しかしながら、マカーム毎に調号を指定するのではなく、マカームの‘グループ’毎に調号を指定するのが一般的です。
- Habib Hassan Touma 著 The music of the Arabs [Amadeus Press, 1996] にはマカームについての説明と、それらのグループ化手法についての説明があります。
- マカームについて説明している様々な Web サイトもあり、それらの中には音源による例を提供しているものもあります:
-
以下の著者によるウード (アラブ音楽のリュート) の教本には、主なトルコ音楽とアラブ音楽の作曲についての説明があります。
- Charbel Rouhana
- George Farah
- Ibrahim Ali Darwish Al-masri
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < アラブ音楽のための更なる知識 ] | [ 上へ : 世界の音楽 ] | [ トルコの伝統音楽のためのリファレンス > ] |
2.10.3 トルコの伝統音楽
このセクションではトルコの伝統音楽記譜に関係する問題をハイライトします。
トルコの伝統音楽のためのリファレンス | ||
トルコ音楽の音符名 | ||
トルコ音楽の調号 | ||
トルコ音楽のための更なる知識 |
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < トルコの伝統音楽 ] | [ 上へ : トルコの伝統音楽 ] | [ トルコ音楽の音符名 > ] |
トルコの伝統音楽のためのリファレンス
トルコの伝統音楽はオスマン帝国時代 – ヨーロッパでクラシック音楽が開発されたのとほぼ同時期 – に発展し、 それ自体の作曲形式、理論それに演奏スタイルを持つ、活発で西洋音楽とは別個の流儀を持つ音楽として 20 世紀そして 21 世紀へと受け継がれてきました。際立った特徴の 1 つは全音階を 9 等分した ‘コンマ’ をベースとする微分音を使用することであり、微分音から マカーム (makam、複数形は makamlar) と呼ばれる旋律形式が構築されます。
トルコの伝統音楽に関する問題のいくつかは他の場所でカバーされています。特殊な音符名と臨時記号について、非西洋音楽の一般的な記譜法 で説明しています。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < トルコの伝統音楽のためのリファレンス ] | [ 上へ : トルコの伝統音楽 ] | [ トルコ音楽の調号 > ] |
トルコ音楽の音符名
トルコの伝統音楽におけるピッチは固有の名前を持ちます。全音階の 1/9 をベースとしているため、西洋音楽の音階と旋法とは全く異なる音程のセットを採用しています:
現代の記譜法の観点から見ると、西洋音楽標準の譜の音符 (ド、レ、ミ、など) に音符を全音階の 1/9, 4/9, 5/9, 8/9 上げ下げするカスタム臨時記号を組み合わせて使うと便利です。これらのカスタム臨時記号はファイル ‘turkish-makam.ly’ で定義されています。
非西洋音楽の記譜法についてのもっと一般的な説明は、非西洋音楽の一般的な記譜法 を参照してください。
参照
記譜法リファレンス: 非西洋音楽の一般的な記譜法
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < トルコ音楽の音符名 ] | [ 上へ : トルコの伝統音楽 ] | [ トルコ音楽のための更なる知識 > ] |
トルコ音楽の調号
LilyPond は 200 以上のマカームの調号の定義をサポートしています – トルコのクラシック音楽で使用されているものをはるかに超えています – 各マカームには独自の特定のトニック / finalis ピッチがあります (トルコ語では ‘karar’ として知られています)。
各マカームの finalis を認識することが重要です。 g がデフォルトのトニックであり、 rast がマカームの名前である例を次に示します。
\key g \rast
正しい臨時記号であるコマ フラット (b1) とコマ シャープ (f4
)
(どちらもトニック g に関連) が自動的に表示されます。
Selected Snippets
Turkish Makam example
This template uses the start of a well-known Turkish Saz Semai that is familiar in the repertoire in order to illustrate some of the elements of Turkish music notation.
\paper { tagline = ##f } % Initialize makam settings \include "turkish-makam.ly" \header { title = "Hüseyni Saz Semaisi" composer = "Lavtacı Andon" } \relative { \set Staff.extraNatural = ##f \set Staff.autoBeaming = ##f \key a \huseyni \time 10/8 a'4 g'16 [fb] e8. [d16] d [c d e] c [d c8] bfc | a16 [bfc a8] bfc c16 [d c8] d16 [e d8] e4 fb8 | d4 a'8 a16 [g fb e] fb8 [g] a8. [b16] a16 [g] | g4 g16 [fb] fb8. [e16] e [g fb e] e4 r8 | }
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ 入出力全般 >> ] |
[ < トルコ音楽の調号 ] | [ 上へ : トルコの伝統音楽 ] | [ 入出力全般 > ] |
トルコ音楽のための更なる知識
-
Turk Musikisi Nazariyati ve Usulleri: Kudum Velveleleri by Ismail
Hakki Ozkan [(Kultur serisi, 41) (Turkish) Paperback – 1986]
マカームと usul の理論に関する情報が含まれています。
-
Music of the Ottoman Court by Walter Feldman
[VWB Hardback – 1996]
オスマン帝国の宮廷音楽の歴史に関する情報が含まれています。
-
Turkish Music Makam Guide by Murat Aydemir [Pan Paperback – 2010]
2 枚の CD を含むトルコのマカームに関する英語の情報が含まれています。
[ << 専門的な記譜法 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < トルコ音楽のための更なる知識 ] | [ 上へ : Top ] | [ 入力の構造 > ] |
3. 入出力全般
このセクションでは、特定の記譜法ではなく、LilyPond の一般的な入出力の問題について扱います。
3.1 入力の構造 | ||
3.2 タイトルとヘッダ | ||
3.3 入力ファイルに取り組む | ||
3.4 出力を制御する | ||
3.5 MIDI 出力を作り出す | ||
3.6 音楽情報を抽出する |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 入出力全般 ] | [ 上へ : 入出力全般 ] | [ スコアの構造 > ] |
3.1 入力の構造
LilyPond の入力の主となるフォーマットはテキスト ファイルです。習慣として、それらのファイルの最後には ‘.ly’ を付けます。
3.1.1 スコアの構造 | ||
3.1.2 ブックの中にある複数のスコア | ||
3.1.3 1 つの入力ファイルから複数の出力ファイルを生成する | ||
3.1.4 出力ファイル名 | ||
3.1.5 ファイル構造 |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 入力の構造 ] | [ 上へ : 入力の構造 ] | [ ブックの中にある複数のスコア > ] |
3.1.1 スコアの構造
\score
ブロックは、波括弧で囲まれた単一の音楽表記を含んでいなければなりません:
\score { … }
Note: \score
ブロックの中には、最上位の音楽表記が 1 つだけ 存在していなければならず、その音楽表記は波括弧で囲まれていなければなりません。
この単一の音楽表記は任意のサイズになり得ます。そして、それは他の音楽表記を保持して任意の複雑さを持ち得ます。以下の例はすべて音楽表記です:
{ c'4 c' c' c' }
{ { c'4 c' c' c' } { d'4 d' d' d' } }
<< \new Staff { c'4 c' c' c' } \new Staff { d'4 d' d' d' } >>
{ \new GrandStaff << \new StaffGroup << \new Staff { \flute } \new Staff { \oboe } >> \new StaffGroup << \new Staff { \violinI } \new Staff { \violinII } >> >> }
この一般規則の例外の 1 つにコメントがあります。(他の例外は、ファイル構造 を参照してください。)単一行コメントと複数行コメント (%{ … %}
で囲まれます) はどちらも入力ファイルの任意の場所に配置することができます。コメントは \score
ブロックの内側あるいは外側に配置することができ、\score
ブロックの中にある単一の音楽表記の内側あるいは外側に配置することができます。
たとえ \score
ブロックだけを保持しているファイルであっても、暗黙的に \book
ブロックで囲まれるということを覚えておいてください。ソース ファイルの中にある \book
は少なくとも 1 つの出力ファイルを作り出し、デフォルトでは出力ファイル名は入力ファイル名から派生します。‘fandangoforelephants.ly’ は ‘fandangoforelephants.pdf’ を作り出します。
(\book
ブロックについての詳細は、ブックの中にある複数のスコア、1 つの入力ファイルから複数の出力ファイルを生成する、ファイル構造 を参照してください。)
参照
学習マニュアル: Working on input files, Music expressions explained, Score is a (single) compound musical expression
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < スコアの構造 ] | [ 上へ : 入力の構造 ] | [ 1 つの入力ファイルから複数の出力ファイルを生成する > ] |
3.1.2 ブックの中にある複数のスコア
ドキュメントは複数の楽曲とテキストを含むことができます。そのようなドキュメントの例には練習曲集や、複数の楽章を持つオーケストラのパート譜があります。楽章はそれぞれ \score
ブロックで入力され、
\score { …music… }
テキストは \markup
ブロックで入力されます。
\markup { …text… }
同じ ‘.ly’ ファイルの中にあるすべての楽章とテキストは、通常、単一の出力ファイルとして譜刻されます。
\score { … } \markup { … } \score { … }
重要な例外として lilypond-book ドキュメントがあります。lilypond-book ドキュメントでは、明示的に \book
ブロックを追加する必要があります。さもなければ、最初の \score
あるいは \markup
だけが出力に表示されます。
音楽の各節のヘッダはその節の \score
ブロックの中に置くことができます。そのヘッダからの piece
名がそれぞれの楽章の前に譜刻されます。ブック全体のタイトルは \book
の中に置くことができます。しかしながら、\book
が存在しない場合は、\header
を入力ファイルの先頭に挿入します。
\header { title = "Eight miniatures" composer = "Igor Stravinsky" } \score { \header { piece = "Romanze" } … } \markup { …text of second verse… } \markup { …text of third verse… } \score { \header { piece = "Menuetto" } … }
\bookpart
ブロックを用いて、
複数の楽曲をブックのパートとしてグループ化することができます。
ブック パートは改ページで区切られ、ブック自体と同様に
\header
ブロックによりタイトルを持つことができます。
\bookpart { \header { title = "Book title" subtitle = "First part" } \score { … } … } \bookpart { \header { subtitle = "Second part" } \score { … } … }
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < ブックの中にある複数のスコア ] | [ 上へ : 入力の構造 ] | [ 出力ファイル名 > ] |
3.1.3 1 つの入力ファイルから複数の出力ファイルを生成する
1 つの ‘.ly’ ファイルから複数の出力ファイルを得たいのであれば、‘.ly’ ファイルに複数の \book
ブロックを記述します。各 \book
ブロックが個々に出力ファイルになります。入力ファイルで \book
ブロックを記述しなければ、LilyPond は暗黙的にファイル全体を単一の \book
として扱います。ファイル構造 を参照してください。
単一のソース ファイルから複数のファイルを作り出す時、LilyPond は、\book
ブロックが作り出す出力ファイルが同じ入力ファイル内にある他の \book
ブロックが作り出した出力ファイルを上書きしないことを保証します。
入力ファイルから派生するデフォルトの出力ファイル名に
\book
毎の接尾辞を付け加えることによって上書きされないことを保証します。
出力が上書きされないよう、デフォルトでは出力ファイル名にバージョン番号の接尾辞を付け加えます。ソース ファイル ‘eightminiatures.ly’ 内の以下の記述
\book { \score { … } \paper { … } } \book { \score { … } \paper { … } } \book { \score { … } \paper { … } }
は、下記の出力ファイルを作り出します。
- ‘eightminiatures.pdf’,
- ‘eightminiatures-1.pdf’ and
- ‘eightminiatures-2.pdf’.
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 1 つの入力ファイルから複数の出力ファイルを生成する ] | [ 上へ : 入力の構造 ] | [ ファイル構造 > ] |
3.1.4 出力ファイル名
LilyPond は、出力ファイルを作り出す時に出力ファイル名を制御するための様々な機能を提供します。
前のセクションでは、LilyPond がどのように単一のソース ファイルから作り出される複数の出力ファイルが上書きされることを防ぐかを見てきました。\book
ブロック毎の出力ファイル名に付け加えられる接尾辞を指定することもできます。各 \book
ブロックの内部に \bookOutputSuffix
宣言を記述することにより、例えば
‘eightminiatures-Romanze.pdf’, ‘eightminiatures-Menuetto.pdf’
それに ‘eightminiatures-Nocturne.pdf’ といった名前の出力ファイルを作り出すことができます。
\book { \bookOutputSuffix "Romanze" \score { … } \paper { … } } \book { \bookOutputSuffix "Menuetto" \score { … } \paper { … } } \book { \bookOutputSuffix "Nocturne" \score { … } \paper { … } }
\bookOutputName
宣言を用いることにより、\book
ブロックに入力ファイル名とは異なる出力ファイル名を指定することもできます。
\book { \bookOutputName "Romanze" \score { … } \paper { … } } \book { \bookOutputName "Menuetto" \score { … } \paper { … } } \book { \bookOutputName "Nocturne" \score { … } \paper { … } }
上記のファイルは下記の出力ファイルを作り出します:
- ‘Romanze.pdf’
- ‘Menuetto.pdf’
- ‘Nocturne.pdf’
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 出力ファイル名 ] | [ 上へ : 入力の構造 ] | [ タイトルとヘッダ > ] |
3.1.5 ファイル構造
‘.ly’ ファイルは最上位の表記を任意の数だけ保持することができます – ここで、最上位の表記とは以下の中の 1 つです:
-
\paper
,\midi
,\layout
などの出力定義。最上位にある出力定義はブック全体のデフォルト設定を変更します。最上位に同じタイプの出力定義が複数ある場合は組み合わされますが、衝突した場合は後ろの方にある出力定義が優先されます。出力定義が\layout
ブロックにどのような影響を与えるかの詳細は\layout
ブロック を参照してください。 -
#(set-default-paper-size "a7" 'landscape)
や#(ly:set-option 'point-and-click #f)
などの Scheme 表記。 -
\header
ブロック。これはグローバル (ファイル構造の最上位) ヘッダ ブロックになります。このブロックは、ファイル内にある全てのブックにおける、作曲者、曲名といったタイトル フィールドのデフォルト設定を持ちます (タイトルの説明を参照してください)。 -
\score
ブロック。このスコアは他の最上位のスコアとともに単一の\book
にまとめられます。この振る舞いは、変数toplevel-score-handler
を最上位の階層で設定することによって、変更することができます。(デフォルトのハンドラはファイル ‘../scm/lily-library.scm’ で定義され、‘../ly/declarations-init.ly’ でセットされています。) -
\book
ブロックは複数の楽章 (すなわち、複数の\score
ブロック) を論理的に 1 つのドキュメントにまとめます。複数の\score
が存在する場合、それぞれの\book
ブロックに対して 1 つずつ出力ファイルが作成され、それぞれの出力ファイルの中では該当するすべての楽章が連結されます。‘.ly’ ファイルの中で明示的に\book
ブロックを指定する必要があるケースはただ 1 つ、単一の入力ファイルから複数の出力ファイルを作成することを望む場合です。例外の 1 つに lilypond-book ドキュメントがあります – そこでは、同じ例の中に複数の\socre
あるいは\markup
を配置したければ、明示的に\book
ブロックを追加する必要があります。この振る舞いは、変数toplevel-score-handler
を最上位の階層で設定することによって、変更することができます。デフォルトのハンドラは初期化ファイル ‘../scm/lily.scm’ で定義されています。 -
\bookpart
ブロック。改ページを簡単にするため、あるいは異なるパートで別々の\paper
設定を使用するために、ブックは –\bookpart
を用いて – いくつかのパートに分割される可能性があります。 -
以下のような複合音楽表記:
{ c'4 d' e'2 }
これは楽節を
\score
に付け加え、その楽節を他のすべての最上位\score
や音楽表記とともに単一のブックにフォーマットにします。言い換えると、上記の音楽表記だけを保持しているファイルは以下のように翻訳されます:\book { \score { \new Staff { \new Voice { { c'4 d' e'2 } } } \layout { } } \paper { } \header { } }
この振る舞いは、変数
toplevel-score-handler
を最上位の階層で設定することによって、変更することができます。デフォルトのハンドラは初期化ファイル ‘../scm/lily.scm’ で定義されています。 -
マークアップ テキスト。例として以下の歌詞を挙げます:
\markup { 2. The first line verse two. }
マークアップ テキストは、それが出現した場所で、スコアあるいは音楽表記の上、間、あるいは下に描かれます。
-
以下のような変数:
foo = { c4 d e d }
これは後で使用することができます。使用するには、入力ファイルの中で
\foo
と入力します。変数の名前は、(ASCII) 数字、複数のアンダスコア、複数のダッシュまたはスペースを含めないようにすべきです。Unicode が提供する他のすべての文字、例えばラテン文字、ギリシャ文字、中国語、キリル文字はすべて許可されます。隣接しない 1 つのアンダスコアやダッシュも許可されます。言い換えると、HornIII
やαβγXII
のような変数名は機能します。ダブル クォーテーションに囲まれた変数名は、すべての文字の組み合わせが許可されます。この場合、バックスラッシュとダブル クォーテーションはバックスラッシュでエスケープする必要があります (これらは実際に使うべきではありません) 。例:
"foo bar"
,"a-b-c"
,"Horn 3"
以下の例は最上位の階層で入力される可能性がある 3 つのものを示しています:
\layout { % Don't justify the output ragged-right = ##t } \header { title = "Do-re-mi" } { c'4 d' e2 }
ファイルの任意の場所で、以下の編集指示のいずれかが入力される可能性があります:
-
\version
-
\include
-
\sourcefilename
-
\sourcefileline
-
%
記号で始まる単一行コメント。 -
%{ … %}
で囲まれる複数行コメント。
通常、入力の要素間にある空白は無視され、可読性を良くするために自由に削除あるいは追加することができます。しかしながら、以下の状況ではエラーを避けるために空白を挿入する必要があります:
- 波括弧の前後。
- コマンドあるいは変数 – すなわち、
\
記号で始まる要素 – の後。 - Scheme 表記として解釈される要素
– すなわち、
#
記号で始まる要素 – の後。 - Scheme 表記要素を区切る空白。
-
lyricmode
中にある\set
と\override
コマンドの前後。
参照
学習マニュアル: How LilyPond input files work
記譜法リファレンス:
タイトルの説明,
\layout
ブロック
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < ファイル構造 ] | [ 上へ : 入出力全般 ] | [ タイトル、ヘッダ、フッタを作成する > ] |
3.2 タイトルとヘッダ
ほとんどすべての楽譜にはタイトルと作曲者名が含まれます。楽譜の中にはさらに多くの情報を含むものもあります。
3.2.1 タイトル、ヘッダ、フッタを作成する | ||
3.2.2 カスタム タイトル、ヘッダ、フッタ | ||
3.2.3 出力ファイルのメタデータを作成する | ||
3.2.4 脚注を作成する | ||
3.2.5 ページ番号の参照 | ||
3.2.6 目次 |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < タイトルとヘッダ ] | [ 上へ : タイトルとヘッダ ] | [ タイトルの説明 > ] |
3.2.1 タイトル、ヘッダ、フッタを作成する
タイトルの説明 | ||
ブック パートとスコアのタイトルのデフォルト レイアウト | ||
ヘッダとフッタのデフォルト レイアウト |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < タイトル、ヘッダ、フッタを作成する ] | [ 上へ : タイトル、ヘッダ、フッタを作成する ] | [ ブック パートとスコアのタイトルのデフォルト レイアウト > ] |
タイトルの説明
1 つの入力ファイルにある各 \book
ブロックは、別々の出力ファイルを作り出します。ファイル構造 を参照してください。出力ファイルごとに
3 種類のタイトル エリアが提供されています: 各ブックの最初にあるブック タイトル、各ブック パートの最初にあるブック パート タイトル、各スコアの最初にあるスコア タイトルです。
title
や composer
のようなタイトル フィールドの値は
\header
ブロックでセットします (\header
ブロックの構文や、デフォルトで使用可能なフィールドの完全なリストは、ブック パートとスコアのタイトルのデフォルト レイアウト を参照してください)。ブック タイトル、ブック パート タイトル、スコア タイトルは同じフィールドを含むことができますが、デフォルトではスコア タイトルに使用されるのは
piece
と opus
に限られています。
\header
ブロックは、4 つの異なる場所に配置することができ、それぞれが階層構造を作り出します。
-
入力ファイルの最初。つまり全ての
\book
,\bookpart
,\score
ブロックよりも前。 -
\book
ブロックの中だが、そのブックにある全ての\bookpart
や\score
ブロックよりも外側。 -
\bookpart
ブロックの中だが、そのブック パートにある全ての\score
よりも外側。 -
\score
ブロックの中。
それぞれのフィールドの値は、この階層に沿って上書きされます。高い階層にある値は、下の階層においてオーバライドされない限り保たれます。 つまり:
-
ブック タイトルはまず、入力ファイルの最初にあるフィールドから設定され、
\book
ブロック内でフィールドが定義されていた場合にはそれで上書きされます。最終的な値は、ブックの一番始め、つまり最初のブック パートの前に、ページを割くような何らかのものがある場合に、そのブックのブック タイトルを表示するために使われます。\pageBreak
が 1 つあればブック タイトルは表示されるようになります。 -
ブック パート タイトルはまず、入力ファイルの最初にあるフィールドから設定され、
\book
ブロック内でフィールドが定義されていた場合はそれで上書きされ、また\bookpart
ブロック内で定義されていた場合には更に上書きされます。最終的な値は、そのブック パートのブック パート タイトルを表示するために使われます。 -
スコア タイトルはまず、入力ファイルの最初にあるフィールドから設定され、
\book
ブロック内でフィールドが定義されていた場合はそれで上書きされ、\bookpart
ブロック内で定義されていた場合には更に上書きされ、最後に\score
ブロックで定義されていた場合にも上書きされます。最終的な値は、そのスコアのスコア タイトルを表示するために使われます。しかしスコア タイトルは、\paper
変数のprint-all-headers
が#t
にセットされていない限り、piece
とopus
フィールドのみが表示されるということに注意してください。
\header
ブロックを 4 つの場所全てに配置する必要はありません。どれかを、あるいは全てを省略することができます。同様に、単純な入力ファイルでは、\book
や \bookpart
ブロックを省略することができ、その時にはコンパイル時に暗黙的に作成されます。
ブックにスコアが 1 つだけある場合、\header
ブロックは通常、ファイルの先頭に配置するべきです。こうすることで、ブック パート タイトルのみが生成され、全てのタイトル フィールドが使用できます。
ブックにスコアが複数ある場合、\header
ブロックの配置方法は出版のスタイルに応じていくつか考えられます。例えば、出版譜が同じ作曲家によるいくつかの楽曲を含む場合、まずファイルの先頭に
\header
ブロックを配置し、そこでブック タイトルと作曲家を指定して、次にそれぞれの \score
ブロック内に \header
ブロックを配置し、そこで piece
や opus
を指定するのが最適でしょう。以下に例を示します:
\header { title = "SUITE I." composer = "J. S. Bach." } \score { \header { piece = "Prélude." } \new Staff \relative { \clef bass \key g \major \repeat unfold 2 { g,16( d' b') a b d, b' d, } | \repeat unfold 2 { g,16( e' c') b c e, c' e, } | } } \score { \header { piece = "Allemande." } \new Staff \relative { \clef bass \key g \major \partial 16 b16 | <g, d' b'~>4 b'16 a( g fis) g( d e fis) g( a b c) | d16( b g fis) g( e d c) b(c d e) fis( g a b) | } }
更に複雑な配置をすることもできます。例えば、ブック内の \header
ブロックにあるテキスト フィールドは全てのスコア タイトルに表示させることができ、いくつかのフィールドを上書きしたり、手動で表示を抑制することもできます:
\book { \paper { print-all-headers = ##t } \header { title = "DAS WOHLTEMPERIRTE CLAVIER" subtitle = "TEIL I" % このブックではデフォルトで LilyPond が生成するフッタを表示しません tagline = ##f } \markup { \vspace #1 } \score { \header { title = "PRAELUDIUM I" opus = "BWV 846" % このスコアでは subtitle を表示しません subtitle = ##f } \new PianoStaff << \new Staff { s1 } \new Staff { \clef "bass" s1 } >> } \score { \header { title = "FUGA I" subsubtitle = "A 4 VOCI" opus = "BWV 846" % このスコアでは subtitle を表示しません subtitle = ##f } \new PianoStaff << \new Staff { s1 } \new Staff { \clef "bass" s1 } >> } }
参照
記譜法リファレンス: ファイル構造, ブック パートとスコアのタイトルのデフォルト レイアウト, タイトルのカスタム レイアウト
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < タイトルの説明 ] | [ 上へ : タイトル、ヘッダ、フッタを作成する ] | [ ヘッダとフッタのデフォルト レイアウト > ] |
ブック パートとスコアのタイトルのデフォルト レイアウト
以下の例は表示に反映される \header
のすべての変数の使用例です:
\book { \header { % 以下のフィールドは中央揃えされます。 dedication = "Dedication" title = "Title" subtitle = "Subtitle" subsubtitle = "Subsubtitle" % 以下のフィールドは 1 行に配置されます % フィールド "instrument" は 2 ページ以降にも表示されます instrument = \markup \with-color #green "Instrument" poet = "Poet" composer = "Composer" % 以下のフィールドは同一行の両端に配置されます meter = "Meter" arranger = "Arranger" % 以下のフィールドは最下段の中央に配置されます % tagline は最後のページの最下部に配置されます % copyright は最初のページの最下部に配置されます tagline = "The tagline goes at the bottom of the last page" copyright = "The copyright goes at the bottom of the first page" } \score { \header { % 以下のフィールドは同一行の両端に配置されます piece = "Piece 1" opus = "Opus 1" } { s1 } } \score { \header { % 以下のフィールドは同一行の両端に配置されます piece = "Piece 2 on the same page" opus = "Opus 2" } { s1 } } \pageBreak \score { \header { % 以下のフィールドは同一行の両端に配置されます piece = "Piece 3 on a new page" opus = "Opus 3" } { s1 } } }
以下に注意してください:
- 楽器名は各ページに繰り返し表示されます。
-
\paper
変数print-all-headers
に##f
がセットされている場合 (デフォルトの設定です)、\score
にはpiece
とopus
だけが表示されます。 -
\header
ブロックでセットされなかったテキスト フィールドには\null
マークアップがセットされ、スペースを無駄にしません。 -
デフォルト設定では、
scoreTitleMarkup
はpiece
テキスト フィールドとopus
テキスト フィールドを同一行の両端に配置します。
デフォルトのレイアウトを変更するには タイトルのカスタム レイアウト を参照してください。
\book
ブロックが、すぐ後に \bookpart
ブロックが来るような形で始まった場合、ブック タイトルを表示するためのページが存在しないため、
ブック タイトルは表示されません。ブック タイトルが必要ならば、\book
ブロックをマークアップや \pageBreak
コマンドで開始してください。
より上位の \header
ブロックのタイトルを最初のページに配置して、\score
ブロックで定義される楽譜を次のページから始めるするには、\score
ブロックの中にある \header
ブロック内でbreakbefore
変数を使用します。
\book { \header { title = "This is my Title" subtitle = "This is my Subtitle" copyright = "This is the bottom of the first page" } \score { \header { piece = "This is the Music" breakbefore = ##t } \repeat unfold 4 { e'' e'' e'' e'' } } }
参照
学習マニュアル: How LilyPond input files work
記譜法リファレンス: タイトルのカスタム レイアウト, ファイル構造
インストールされているファイル: ‘ly/titling-init.ly’
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < ブック パートとスコアのタイトルのデフォルト レイアウト ] | [ 上へ : タイトル、ヘッダ、フッタを作成する ] | [ カスタム タイトル、ヘッダ、フッタ > ] |
ヘッダとフッタのデフォルト レイアウト
ヘッダ と フッタ は、ブックのテキストとは別の、ページの最初と最後に表示されるテキスト行です。ヘッダとフッタは以下の \paper
変数によって制御されます:
-
oddHeaderMarkup
-
evenHeaderMarkup
-
oddFooterMarkup
-
evenFooterMarkup
これらのマークアップ変数は、最上位の \header
ブロック
(これはブックのすべてのスコアに適用されます) から、テキスト フィールドのみにアクセスすることができ、‘ly/titling-init.ly’ で定義されています。デフォルトでは以下のようになっています:
- ページ番号は、2 ページ目から、ページ最上段の左端 (偶数ページの場合) または右端 (奇数ページの場合) に自動的に配置されます。
-
instrument
テキスト フィールドは、2 ページ目から、各ページの中央に配置されます。 -
copyright
テキストは最初のページの最下段中央に配置されます。 -
tagline
は最後のページの最下段中央に配置されます。1 ページしかない場合はcopyright
の下に配置されます。
最上位の \header
ブロックの中に tagline
を追加することで、デフォルトの LilyPond フッタ テキストを変更することができます。
\book { \header { tagline = "... music notation for Everyone" } \score { \relative { c'4 d e f } } }
デフォルトの LilyPond フッタ テキストを削除するには、tagline
に
##f
をセットします。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < ヘッダとフッタのデフォルト レイアウト ] | [ 上へ : タイトルとヘッダ ] | [ タイトルのカスタム テキスト フォーマット > ] |
3.2.2 カスタム タイトル、ヘッダ、フッタ
タイトルのカスタム テキスト フォーマット | ||
タイトルのカスタム レイアウト | ||
ヘッダとフッタのカスタム レイアウト |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < カスタム タイトル、ヘッダ、フッタ ] | [ 上へ : カスタム タイトル、ヘッダ、フッタ ] | [ タイトルのカスタム レイアウト > ] |
タイトルのカスタム テキスト フォーマット
標準の \markup
コマンドを使って \header
ブロックの中にあるヘッダ、フッタ、それにタイトル テキストをカスタマイズすることができます。
\score { \header { piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" } opus = \markup { \italic "BWV 846" } } { s1 } }
参照
記譜法リファレンス: テキストをフォーマットする
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < タイトルのカスタム テキスト フォーマット ] | [ 上へ : カスタム タイトル、ヘッダ、フッタ ] | [ ヘッダとフッタのカスタム レイアウト > ] |
タイトルのカスタム レイアウト
\header
ブロックの中に \markup
コマンドを配置することにより、シンプルなテキストをフォーマットすることができます。しかしながら、タイトルの配置を精密に制御することはできません。テキスト フィールドの配置をカスタマイズするには、以下の \paper
変数のどちらか、あるいは両方を変更します:
-
bookTitleMarkup
-
scoreTitleMarkup
これらの \markup
のデフォルト値を用いた場合のタイトルの配置は
ブック パートとスコアのタイトルのデフォルト レイアウト の中にある例で示しています。
‘ly/titling-init.ly’ で定義されている scoreTitleMarkup
のデフォルト設定は以下のとおりです:
scoreTitleMarkup = \markup { \column { \if \should-print-all-headers { \bookTitleMarkup \hspace #1 } \fill-line { \fromproperty #'header:piece \fromproperty #'header:opus } } }
これは、piece
テキスト フィールドと opus
テキスト フィールドを同一行の両端に配置します:
\score { \header { piece = "PRAELUDIUM I" opus = "BWV 846" } { s1 } }
以下の例では、scoreTitleMarkup
を再定義することにより、piece
テキスト フィールドを中央に配置して、フォントを大きく、太字にしています。
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \fontsize #4 \bold \fromproperty #'header:piece \fromproperty #'header:opus } } } \header { tagline = ##f } \score { \header { piece = "PRAELUDIUM I" opus = "BWV 846" } { s1 } } }
print-all-headers
を \paper
ブロックの中に配置することにより、メイン タイトル ブロックのテキスト フィールドを個々のスコア タイトル ブロックに表示させることができます。
paper
ブロックに print-all-headers
をセットすると、スコアの \header
ブロックでは通常表示されないテキスト フィールドを、スコア タイトル領域に表示させることができます。この方法の欠点は、個々の \score
ブロックで、ブック パート タイトル領域のみに表示させたいテキスト フィールドを手動で抑制する必要があることです。タイトルの説明 を参照してください。
この欠点を回避するには、個々の \score
ブロックに表示させたいテキスト フィールドを scoreTitleMarkup
定義に追加します。以下の例では、composer
テキスト フィールド
(通常、これは bookTitleMarkup
に関連付けされています)
を scoreTitleMarkup
に追加することにより、各スコアは異なる作曲者を表示しています:
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \fontsize #4 \bold \fromproperty #'header:piece \fromproperty #'header:composer } } } \header { tagline = ##f } \score { \header { piece = "MENUET" composer = "Christian Petzold" } { s1 } } \score { \header { piece = "RONDEAU" composer = "François Couperin" } { s1 } } }
あなた自身のカスタム テキスト フィールドを作成して、それをマークアップ定義で参照することもできます。
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \override #`(direction . ,UP) \dir-column { \center-align \fontsize #-1 \bold \fromproperty #'header:mycustomtext %% User-defined field \center-align \fontsize #4 \bold \fromproperty #'header:piece } \fromproperty #'header:opus } } } \header { tagline = ##f } \score { \header { piece = "FUGA I" mycustomtext = "A 4 VOCI" %% User-defined field opus = "BWV 846" } { s1 } } }
参照
記譜法リファレンス: タイトルの説明
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < タイトルのカスタム レイアウト ] | [ 上へ : カスタム タイトル、ヘッダ、フッタ ] | [ 出力ファイルのメタデータを作成する > ] |
ヘッダとフッタのカスタム レイアウト
\header
ブロックの中に \markup
コマンドを配置することにより、シンプルなテキストをフォーマットすることができます。しかしながら、ヘッダとフッタの配置を精密に制御することはできません。テキスト フィールドの配置をカスタマイズするために、以下の \paper
変数のいずれか、あるいはいくつかを使用します:
-
oddHeaderMarkup
-
evenHeaderMarkup
-
oddFooterMarkup
-
evenFooterMarkup
\markup
コマンド \on-the-fly
を用いて、\paper
ブロック内部で定義されたヘッダ テキストとフッタ テキストに条件付でマークアップを追加することができます。以下の構文を用います:
variable = \markup { … \on-the-fly \procedure markup … }
procedure は、それを保持している \markdup
コマンドが評価される度に呼び出されます。procedure はある特定の条件をテストして、条件が真である場合にのみmarkup 引数を解釈します (つまり、表示します)。
様々な条件をテストするためのプロシージャがあらかじめ用意されています:
Procedure name
Condition tested
print-page-number-check-first
このページ番号は表示されるか?
create-page-number-stencil
print-page-numbers は真か?
print-all-headers
print-all-headers は真か?
first-page
ブックの最初のページか?
not-first-page
ブックの最初ではないページか?
(on-page nmbr)
ページ番号 = nmbr か?
last-page
ブックの最後のページか?
part-first-page
ブック パートの最初のページか?
not-part-first-page
ブック パートの最初ではないページか?
part-last-page
ブック パートの最後のページか?
not-single-page
ブック パートのページ数 > 1 か?
以下の例では、ページ番号を各ページの最下段中央に配置しています。まず、oddHeaderMarkup
と evenHeaderMarkup
に
null を定義することにより、デフォルト設定を削除します。次に、oddFooterMarkup
に中央に配置されたページ番号を再定義します。最後に、evenFooterMarkup
に oddFooterMarkup
を定義することにより、同じレイアウトにします:
\book { \paper { print-page-number = ##t print-first-page-number = ##t oddHeaderMarkup = \markup \null evenHeaderMarkup = \markup \null oddFooterMarkup = \markup { \fill-line { \if \should-print-page-number \fromproperty #'page:page-number-string } } evenFooterMarkup = \oddFooterMarkup } \score { \new Staff { s1 \break s1 \break s1 } } }
複数の \on-the-fly
条件を ‘and’ 演算子で組み合わせることができます。例えば、
\if \on-first-page \if \on-last-page{ \markup … \fromproperty #'header: … }
これは、出力が単一のページかどうかを判断します。
参照
記譜法リファレンス: タイトルの説明, ブック パートとスコアのタイトルのデフォルト レイアウト
インストールされているファイル: ‘../ly/titling-init.ly’
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < ヘッダとフッタのカスタム レイアウト ] | [ 上へ : タイトルとヘッダ ] | [ 脚注を作成する > ] |
3.2.3 出力ファイルのメタデータを作成する
\header
変数には、楽譜の見た目上の出力に表示されるデータだけではなく、出力ファイルのメタデータを作り出すためにも使われます。例えば、PDF ファイルでは、このメタデータが PDF ファイルの properties
フィールドとして PDF リーダに表示されます。それぞれの出力ファイルの形式に応じて、別々のファイルを作り出すようなレベルより上位での
\header
ブロックのみが使用されます。すなわち、PDF ファイルにおいては、\book
レベルやトップレベルの
\header
定義のみが PDF ドキュメント全体のメタデータとして有効で、MIDI ファイルにおいては、上で挙げたレベルに加えて \score
レベルの
\header
ブロックでも有効です。
例えば、\header
ブロックの title
プロパティを ‘Symphony I’ にセットすると、PDF ドキュメントのタイトルと、MIDI ファイルのシーケンス名に使われることになります。
\header { title = "Symphony I" }
楽譜上のタイトルと、PDF のタイトル プロパティを別の値にしたい場合、下の例のように pdftitle
を使用することができます:
\header { title = "Symphony I" pdftitle = "Symphony I by Beethoven" }
変数 title
, subject
, keywords
,
subtitle
, composer
, arranger
, poet
, author
,
copyright
は全て、PDF のプロパティに使われます。これらは、頭に ‘pdf’ を付け加えることで楽譜上の出力とは違う値をセットすることもできます。
PDF の Creator
プロパティは自動的に、‘LilyPond’ と現在の LilyPond のバージョンが組み合わされてセットされます。CreationDate
と
ModDate
はどちらも、現在の日時にセットされますが、ModDate
は\header
変数 moddate
(あるいは pdfmoddate
) を正しい PDF 日時文字列にセットすることでオーバライドすることができます。
title
変数は MIDI でのシーケンス名としてもセットされます。midititle
変数を使うことで、楽譜上の出力と独立してシーケンス名を指定することができます。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 出力ファイルのメタデータを作成する ] | [ 上へ : タイトルとヘッダ ] | [ 音楽表記の中にある脚注 > ] |
3.2.4 脚注を作成する
脚注はいくつかの異なる場面で使われます。どのような場合であっても、‘脚注マーク’が参照としてテキストや音楽のところに配置され、対応する‘脚注テキスト’が同じページの下部に、水平線によって音楽から区切られて配置されます。この区切りの外観は paper 変数 footnote-separator-markup
をセットすることで変更することができます。
その他の \paper
変数 を参照してください。
音楽表記の中にある脚注と、音楽表記外の独立したテキストにある脚注では、作り方が異なります。
音楽表記の中にある脚注 | ||
独立したテキストの中にある脚注 |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 脚注を作成する ] | [ 上へ : 脚注を作成する ] | [ 独立したテキストの中にある脚注 > ] |
音楽表記の中にある脚注
音楽内の脚注の概要
音楽表記の中にある脚注は 2 つのカテゴリーに分けられます:
- イベントに紐づく脚注
これは、単一の音符、アーティキュレーション (指番号、アクセント、強弱記号など)、音符の後に付加するイベント (スラーや手動の連桁など) といった特定のイベントに付加されます。イベントに紐づく脚注の一般的な形は以下のようなものです:
[direction] \footnote [mark] offset footnote music
- 時間に紐づく脚注
これは、音楽コンテキスト内の時間の一点に関連付けられます。
\time
や\clef
といったいくつかのコマンドは、拍子記号や音部記号を作り出すのにイベントを使いません。和音もそれ自体ではイベントを作りません: その和音の符幹や符尾が、 タイム ステップの最後に (名目上は中にある音符のどれかを通して) 作られます。和音の中のどの音符が符幹や符尾の生成元として見なされるのかは、正確に定義されていません。そのため、符幹や符尾に脚注を付加する場合にも、こちらのタイプを用いると良いでしょう。時間に基づく脚注は、イベントを参照せずに、このようなレイアウト オブジェクトに注釈を入れることができます。この脚注の一般的な形は以下のようなものです:
\footnote [mark] offset footnote [Context].GrobName
2 つの形にあるそれぞれの要素は以下のような意味を持ちます:
- direction
\footnote
が音符の後に付加するイベントやアーティキュレンションに適用される場合に限り、方向指示子 (-, _, ^
) を前に付けて、music が (脚注マークと共に) その前にある音符や休符に付加されるようにしなければなりません。- mark
-
これは参照ポイントとページの下の脚注自体の両方に使われる、脚注マークを指定するマークアップや文字列です。これは省略することができ (これは
\default
に置き換えるのと同じです)、その時は自動的に連番が振られます。この連番は脚注が含まれるページごとにリセットされます。 - offset
これは ‘#(2 . 1)’ のような数のペアで、マークを配置する場所の X, Y オフセットを、オブジェクトの境界からの譜スペース単位で指定します。正の値の場合は右/上からのオフセットとして、負の値の場合は左/下からのオフセットとして解釈されます。0 は境界に中央揃えされることを意味します。
- Context
これは脚注の付加されるグラフィカル オブジェクトが作られるコンテキストを指定します。グラフィカル オブジェクトが
Voice
のような下位のコンテキストに属している場合は省略することができます。- GrobName
これは (‘Flag’ のように) 脚注の付加されるグラフィカル オブジェクトを指定します。これが指定された場合、脚注はある特定の音楽表記に付加されることはなく、その音楽タイミングで生成される、指定したグラフィカル オブジェクト全てに付加されます。
- footnote
ページの下で用いる脚注テキストを指定するマークアップや文字列です。
- music
脚注が付加される、音楽イベントや音符の後に付加するイベント、アーティキュレーションです。
イベントに紐づく脚注
以下の構文で、music によるイベントから生成されるレイアウト オブジェクトに脚注を加えることができます:
\footnote [mark] offset footnote music
\book { \header { tagline = ##f } \relative c'' { \footnote #'(-1 . 3) "A note" a4 a4 \footnote #'(2 . 2) "A rest" r4 a4 } }
和音全体にイベントに紐づく脚注を付け加えることはできません。和音は、例え 1 つの音符しか持っていなかったとしても、それ自身ではイベントを作り出さないからです。しかし、和音の中にある個別の音符には脚注を付け加えることができます:
\book { \header { tagline = ##f } \relative c'' { \footnote #'(2 . 3) "Does not work" <a-3>2 % これは動作しません <\footnote #'(-2 . -3) "Does work" a-3>4 % これは動作します <a-3 \footnote #'(3 . 1/2) "Also works" c-5>4 % これも動作します } }
脚注が音符の後に付加するイベントやアーティキュレンションに付加される場合、\footnote
コマンドの前に必ず方向指示子 (-, _, ^
) を付けて、後にイベントやアーティキュレーションを続けなければなりません。この形では、\footnote
の部分が、最後の引数 music に脚注マークが付加されたもののコピーとして解釈することができます。構文は以下です:
direction \footnote [mark] offset footnote music
\book { \header { tagline = ##f } \relative { a'4_\footnote #'(0 . -1) "A slur forced down" ( b8^\footnote #'(1 . 0.5) "A manual beam forced up" [ b8 ] c4 ) c-\footnote #'(1 . 1) "Tenuto" -- } }
時間に紐づく脚注
脚注が付加されるレイアウト オブジェクトがイベントから間接的に生成されるものである場合 (Accidental
や Stem
など) には、そのレイアウト オブジェクトの GrobName が脚注テキストの後に、music の代わりに必要です:
\book { \header { tagline = ##f } \relative c'' { \footnote #'(-1 . -3) "A flat" Accidental aes4 c \footnote #'(-1 . 0.5) "Another flat" Accidental ees \footnote #'(1 . -2) "A stem" Stem aes } }
しかし、GrobName が指定された場合、脚注が現在のタイム ステップにある全てのグラフィカル オブジェクトに付加されることに注意してください:
\book { \header { tagline = ##f } \relative c' { \footnote #'(-1 . 3) "A flat" Accidental <ees ges bes>4 \footnote #'(2 . 0.5) "Articulation" Script c'->-. } }
和音内の各音符にはそれぞれ (イベントに紐づく) 脚注を加えることができます。‘NoteHead’ のみが音符から直接生成されるグラフィカル オブジェクトです。そのため、イベントに紐づく脚注は、和音内の ‘NoteHead’ に脚注を加える時にのみ有効です。和音における他のグラフィカル オブジェクトは間接的に生成されるものです。\footnote
コマンド自体は、グラフィカル オブジェクトの種類と、どの特定のイベントに付加するかを両方指定できるような構文がありません。しかし、グラフィカル オブジェクトの種類を指定するために時間に紐づく脚注を使用し、それを \single
で前置することで次に来るイベントのみに適用させることができます。
\book { \header { tagline = ##f } \relative c'' { < \footnote #'(1 . -2) "An A" a \single \footnote #'(-1 . -1) "A sharp" Accidental cis \single \footnote #'(0.5 . 0.5) "A flat" Accidental ees fis >2 } }
Note: 脚注が上の例のように、同じ音楽タイミングにあるいくつかの要素に付加する場合、脚注の番号は入力ファイルでの順番ではなく、上に表示されるものから順番に割り振られます。
音部記号や転調を示す調号のようなレイアウト オブジェクトは、基本的には実際のイベントから作られるわけではなく、プロパティが変化した結果として生成されるものです。また、小節線や小節番号は、タイミングに基づいて生成されるものです。そのため、このようなオブジェクトに脚注を付ける場合には、それが生成される音楽的タイミングに紐付ける必要があります。時間に紐づく脚注は、和音にある符幹や連桁に脚注を付加する場合にも有効です。このようなオブジェクトは名目上、和音内のどれか 1 つのイベントに割り当てられて生成されます。特定の音符に脚注を紐付けることは軽率でしょう。
脚注を付ける対象となるレイアウト オブジェクトは、時間に紐づく脚注の場合には常に明示する必要があります。また、グラフィカル オブジェクトが下位 (訳注: Voice など) ではないコンテキストで生成される場合には、正しいコンテキストを指定する必要があります。
\book { \header { tagline = ##f } \relative c'' { r1 | \footnote #'(-0.5 . -1) "Meter change" Staff.TimeSignature \time 3/4 \footnote #'(1 . -1) "Chord stem" Stem <c e g>4 q q \footnote #'(-0.5 . 1) "Bar line" Staff.BarLine q q \footnote #'(0.5 . -1) "Key change" Staff.KeySignature \key c \minor q } }
数字の代わりに独自の脚注マークを使うことができ、マークされるオブジェクトと、脚注マークを繋げる線の表示を抑制することができます:
\book { \header { tagline = ##f } \relative c' { \footnote "*" #'(0.5 . -2) \markup { \italic "* The first note" } a'4 b8 \footnote \markup { \super "$" } #'(0.5 . 1) \markup { \super "$" \italic " The second note" } e c4 \once \override Score.Footnote.annotation-line = ##f b-\footnote \markup \tiny "+" #'(0.1 . 0.1) \markup { \super "+" \italic " Editorial" } \p } }
脚注マークのカスタマイズについての更なる例は、独立したテキストの中にある脚注 にあります。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 音楽表記の中にある脚注 ] | [ 上へ : 脚注を作成する ] | [ ページ番号の参照 > ] |
独立したテキストの中にある脚注
これらは参照ポイントを指す線を表示しません。脚注マークは、脚注を付加されるマークアップの後に続いて表示されます。マークは自動で挿入することができ、その場合には連番が割り振られます。手動で、独自のマークを使うよう設定することもできます。
独立したテキストの中にある脚注を自動で作る方法と、独自のマークを使うために手動で作る方法は異なります。
独立したテキストに自動マークで脚注を付加する
独立したテキストに自動マークで脚注を付加するための構文は以下です:
\markup { … \footnote text footnote … }
要素は以下の通りです:
- text
これは、脚注を付加するマークアップや文字列です。
- footnote
-
ページの下で用いる脚注テキストを指定するマークアップや文字列です。
例を示します:
\book { \header { tagline = ##f } \markup { "A simple" \footnote "tune" \italic " By me" "is shown below. It is a" \footnote "recent" \italic " Aug 2012" "composition." } \relative { a'4 b8 e c4 d } }
独立したテキストに独自のマークで脚注を付加する
独立したテキストに独自のマークで脚注を付加するための構文は以下です:
\markup { … \footnote mark footnote … }
要素は以下の通りです:
- mark
-
これは参照ポイントに使われる、脚注マークを指定するマークアップや文字列です。このマークは脚注自体の最初に自動で挿入されないことに注意してください。
- footnote
ページの下で用いる脚注テキストを指定するマークアップや文字列です。通常、mark から始めます。
音楽表記の中にある脚注 にあるように、* や + などの簡単な文字をマークとして用いることができます。他に、ASCII エイリアスを用いることができます (ASCII エイリアス を参照してください)。
\book { \paper { #(include-special-characters) } \header { tagline = ##f } \markup { "A simple tune" \footnote "*" \italic "* By me" "is shown below. It is a recent" \footnote \super † \concat { \super † \italic " Aug 2012" } "composition." } \relative { a'4 b8 e c4 d } }
Unicode 文字をマークに使うこともできます (Unicode を参照してください)。
\book { \header { tagline = ##f } \markup { "A simple tune" \footnote \super \char##x00a7 \concat { \super \char##x00a7 \italic " By me" } "is shown below. It is a recent" \footnote \super \char##x00b6 \concat { \super \char##x00b6 \italic " Aug 2012" } "composition." } \relative { a'4 b8 e c4 d } }
参照
学習マニュアル: Objects and interfaces
記譜法リファレンス: ASCII エイリアス, バルーン ヘルプ, 特殊文字の一覧, テキスト マーク, テキスト スクリプト, Unicode
内部リファレンス: FootnoteEvent, Footnote, Footnote_engraver
既知の問題と警告
同じページにある複数の脚注は上下にしか配置できません。一方の脚注はもう一方の脚注の上に配置され、同じ行に配置することはできません。
MultiMeasureRests
、自動連桁、歌詞に脚注を付けることはできません。
脚注は譜や \markup
オブジェクト、他の脚注マークや線と衝突する可能性があります。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 独立したテキストの中にある脚注 ] | [ 上へ : タイトルとヘッダ ] | [ 目次 > ] |
3.2.5 ページ番号の参照
\label
コマンドを用いて、楽譜のある特定の場所
– 楽譜の最上位あるいは内部 –
に印をつけることができます。このラベルをマークアップの中で参照することできます。ラベルを付けられた場所のページ番号を取得するには、\page-ref
マークアップ コマンドを使います。
\header { tagline = ##f } \book { \label #'firstScore \score { { c'1 \pageBreak \mark A \label #'markA c'1 } } \markup { The first score begins on page \page-ref #'firstScore "0" "?" } \markup { Mark A is on page \page-ref #'markA "0" "?" } }
\page-ref
マークアップ コマンドは 3 つの引数をとります:
- ラベル。これは Scheme シンボルです – 例:
#'firstScore
。 - マークアップ。これはマークアップの大きさを推定するためのゲージです。
- マークアップ。これは、ラベルが不明な場合にページ番号として用いられます。
ゲージが必要な理由は、マークアップが解釈されているときに改ページはまだ行われておらず、ページ番号はまだわからないからです。この問題を回避するために、実際のマークアップ解釈はもっと後に延期されます。しかしながら、マークアップの大きさは事前に判明している必要があるため、ゲージを使ってマークアップの大きさを決定します。ブックのページ数が 10 から 99 までの範囲であるのなら、ゲージを "00" – つまり、2 桁の数 – にします。
定義済みコマンド
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < ページ番号の参照 ] | [ 上へ : タイトルとヘッダ ] | [ 入力ファイルに取り組む > ] |
3.2.6 目次
目次は \markuplist \table-of-contents
コマンドを用いて挿入します。目次に表示すべき要素は \tocItem
コマンドで挿入されます
– このコマンドは最上位あるいは音楽表記の内部で使用します。
\markuplist \table-of-contents \pageBreak \tocItem \markup "First score" \score { { c'4 % ... \tocItem \markup "Some particular point in the first score" d'4 % ... } } \tocItem \markup "Second score" \score { { e'4 % ... } }
目次を構成するために使用するマークアップは
\paper
ブロックの中で定義します。‘予め定義された’マークアップが 2 種類あります:
-
tocTitleMarkup
目次のタイトルをフォーマットするために使います。
tocTitleMarkup = \markup \huge \column { \fill-line { \null "Table of Contents" \null } \null }
-
tocItemMarkup
目次の中にある要素をフォーマットするために使います。
tocItemMarkup = \markup \fill-line { \fromproperty #'toc:text \fromproperty #'toc:page }
これらの 2 つの変数は変更することができます。
これは目次のタイトルをフランス語に変更する例です:
\paper { tocTitleMarkup = \markup \huge \column { \fill-line { \null "Table des matières" \null } \hspace #1 }
これは目次の各要素のフォント サイズを変更する例です:
tocItemMarkup = \markup \large \fill-line { \fromproperty #'toc:text \fromproperty #'toc:page }
tocItemMarkup
定義の中で要素のテキストとページ番号を参照する方法に注目してください。
目次のアイテムと、対応するページ番号との間の部分をドットで埋めるために、tocItemMarkup
の中に \tocItemWithDotsMarkup
コマンドを挿入することができます:
\header { tagline = ##f } \paper { tocItemMarkup = \tocItemWithDotsMarkup } \book { \markuplist \table-of-contents \tocItem \markup { Allegro } \tocItem \markup { Largo } \markup \null }
更に複雑な目次を作るために、独自のマークアップを用いたカスタム コマンドを定義することもできます。次の例では、オペラの目次において幕の名前を入力する新たなスタイルを定義しています:
新たなマークアップ変数 (tocActMarkup
) は \paper
ブロックに定義します:
\paper { tocActMarkup = \markup \large \column { \hspace #1 \fill-line { \null \italic \fromproperty #'toc:text \null } \hspace #1 } }
音楽関数 (tocAct
) を定義します – ここで、新たなマークアップ定義であるtocActMarkup
を使います:
tocAct = #(define-music-function (text) (markup?) (add-toc-item! 'tocActMarkup text))
このカスタム定義を使う LilyPond 入力ファイルはこのようになります:
目次内で使う \fill-with-pattern
コマンドの例です:
\paper { tocItemMarkup = \markup { \fill-line { \override #'(line-width . 70) \fill-with-pattern #1.5 #CENTER . \fromproperty #'toc:text \fromproperty #'toc:page } } }
参照
インストールされているファイル: ‘ly/toc-init.ly’
定義済みコマンド
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 目次 ] | [ 上へ : 入出力全般 ] | [ LilyPond ファイルをインクルードする > ] |
3.3 入力ファイルに取り組む
3.3.1 LilyPond ファイルをインクルードする | ||
3.3.2 1 つのソースから異なる版を生成する | ||
3.3.3 特殊文字 |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 入力ファイルに取り組む ] | [ 上へ : 入力ファイルに取り組む ] | [ 1 つのソースから異なる版を生成する > ] |
3.3.1 LilyPond ファイルをインクルードする
大きなプロジェクトは別々のファイルに分割することができます。他のファイルを参照するには、以下のようにします:
\include "otherfile.ly"
\include "otherfile.ly"
という行は、‘otherfile.ly’ の内容をカレント ファイルの \include
がある場所に貼り付けるのと等価です。例えば、大きなプロジェクトでは、個々の楽器パートを別々のファイルで記述し、個々の楽器ファイルをまとめる “総譜” ファイルを作成することができます。通常、インクルードされるファイルはいくつかの変数を定義し、それらの変数は総譜ファイルの中で使用されます。インクルードされるファイルの中でタグ付きセクションにマークを付けて、それを楽譜の他の場所で使うことができます
– 1 つのソースから異なる版を生成する を参照してください。
カレントのワーキング ディレクトリの中にあるファイルは
\include
コマンドに後にファイル名を指定するだけで参照することができます。他の場所にあるファイルはフル パス参照か相対パス参照
(ディレクトリ区切りとして、UNIX ではスラッシュ / を使用しますが、DOS/Windows ではバックスラッシュ \ を使用します) によって参照することができます。例えば、‘stuff.ly’ がカレントのワーキング ディレクトリよりも
1 つ上のディレクトリの中にある場合、以下のようにインクルードします:
\include "../stuff.ly"
あるいは、インクルードされるオーケストラのすべてのパート ファイルが、カレント ディレクトリ内部の ‘parts’ というサブディレクトリの中に配置されている場合、以下のようにインクルードします:
\include "parts/VI.ly" \include "parts/VII.ly" … etc
インクルードされるファイルも \include
文を持つことができます。それら第 2 レベルの \include
文はそのファイルがメイン ファイルに組み込まれるまで解釈されません。そのため、第 2 レベルの \include
文で指定するファイル名はすべてメイン ファイルを保持しているディレクトリからの相対参照で指定しなければなりません
– インクルード ファイルを保持しているディレクトリからではありません。しかしながら、この振る舞いは、オプション ‘-drelative-includes’ をコマンド ラインで渡すことによって
(あるいは、メイン入力ファイルの先頭に
#(ly:set-option 'relative-includes #t)
を付け加えることによって)
グローバルに変更することができます。
relative-includes
をセットした時、各 \include
コマンドのパスはそのコマンドを保持しているファイルからの相対参照になります。この振る舞いを使用することが推奨されていて、lilypond の将来のバージョンではこの振る舞いがデフォルトになります。
relative-includes
をファイル内の正しい位置で #t
あるいは
#f
にセットすることで、メイン ディレクトリからの相対位置にあるファイルや、その他のディレクトリからの相対位置にあるファイルを同時に
\include
することができます。例えば、様々なファイルから使われるようなライブラリ libA のエントリ ポイントが、サブ ファイルを \include
している場合、これらの \include
文の前に
#(ly:set-option #relative-includes #t)
を配置し、メインの .ly
ファイルに読み込まれる時に、パスが正しく解釈されるようにします。このようになります:
libA/ libA.ly A1.ly A2.ly …
エントリ ポイントとなるファイル libA.ly
には以下の内容を含んでいます:
#(ly:set-option 'relative-includes #t) \include "A1.ly" \include "A2.ly" … % 通常の設定に戻します #(ly:set-option 'relative-includes #f)
あとは以下の構文で、好きな ‘.ly’ ファイルからライブラリ全体を読み込むことができます:
\include "~/libA/libA.ly"
さらに複雑なファイル構造も、設定を適切な場所で変更することによって扱うことができます。
コマンド ラインから LilyPond を呼び出すときにオプションとして指定したサーチ パスに含まれるディレクトリからファイルをインクルードすることもできます。サーチ パスを指定した場合、インクルードされるファイルはファイル名だけで指定されます。例えば、サーチ パスで指定する ‘parts’ というサブディレクトリの中にあるファイルをインクルードする ‘main.ly’ をコンパイルするには、‘main.ly’ を保持しているディレクトリに cd して、以下を入力します:
lilypond --include=parts main.ly
‘main.ly’ の中には以下を記述しておきます:
\include "VI.ly" \include "VII.ly" … etc
いくつもの楽譜でインクルードされるファイルは
LilyPond ディレクトリ ‘../ly’ の中に置くことになるかもしれません
(このディレクトリが存在する場所はインストールの仕方に依存します
–
Other sources of information を参照してください)。このディレクトリの中にあるファイルは、\include
文でファイル名を指定するだけでインクルードすることができます。この方法で ‘english.ly’ のような言語依存のファイルをインクルードしています。
LilyPond は、実行開始時に、デフォルトでいくつかのファイルをインクルードします。このインクルードはユーザには明らかにされませんが、コマンド ラインから lilypond --verbose
を実行することによってインクルードされるファイルを明らかにすることができます。--verbose
オプションは、他の多くの情報とともに、LilyPond が使用するパスとファイルのリストを表示します。また、デフォルトでインクルードされるファイルのうち、より重要なファイルについて
Other sources of information
で議論されています。これらのファイルを編集することができますが、これらのファイルに加えられた変更は新しいバージョンの LilyPond をインストールすると失われます。
\include
を使用している簡単な例がいくつか
Scores and parts で示されています。
参照
学習マニュアル: Other sources of information, Scores and parts
既知の問題と警告
インクルードされるファイルに LilyPond のインストール ファイルと同じ名前が与えられている場合、LilyPond のインストール ファイルが優先されます。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < LilyPond ファイルをインクルードする ] | [ 上へ : 入力ファイルに取り組む ] | [ 変数を使用する > ] |
3.3.2 1 つのソースから異なる版を生成する
同じ音楽ソースから異なるバージョンの楽譜を容易に生成できるようにするために、いくつかの方法が用意されています。長い音楽や注記のセクションをさまざまなやり方で組み合わせる場合には、おそらく変数が最も役に立つでしょう。差し替え用の短い音楽セクションの中から 1 つを選択する場合にはタグが役に立ち、楽曲の一部をいろいろな箇所で組み合わせることもできます。
どのような方法をとるにしても、楽譜構造から音楽表記を分離しておくと、音楽表記に手を触れずに楽譜構造を変更することが簡単に行えます。
変数を使用する | ||
タグを使用する | ||
グローバル設定を使用する |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 1 つのソースから異なる版を生成する ] | [ 上へ : 1 つのソースから異なる版を生成する ] | [ タグを使用する > ] |
変数を使用する
音楽のセクションが変数の中で定義されている場合、そのセクションを楽譜の異なる部分で再利用することができます – Organizing pieces with variables を参照してください。例えば、アカペラ のボーカル譜はリハーサル目的ですべてのパートをまとめたピアノ譜を持つことがよくあります。これは声楽全般で言えることです。その場合、音楽を入力する必要があるのは 1 回だけです。2 つの変数からの音楽を 1 つの譜に組み込むことができます – 自動パート結合 を参照してください。ここに例を挙げます:
sopranoMusic = \relative { a'4 b c b8( a) } altoMusic = \relative { e'4 e e f } tenorMusic = \relative { c'4 b e d8( c) } bassMusic = \relative { a4 gis a d, } allLyrics = \lyricmode { King of glo -- ry } << \new Staff = "Soprano" \sopranoMusic \new Lyrics \allLyrics \new Staff = "Alto" \altoMusic \new Lyrics \allLyrics \new Staff = "Tenor" { \clef "treble_8" \tenorMusic } \new Lyrics \allLyrics \new Staff = "Bass" { \clef "bass" \bassMusic } \new Lyrics \allLyrics \new PianoStaff << \new Staff = "RH" { \partCombine \sopranoMusic \altoMusic } \new Staff = "LH" { \clef "bass" \partCombine \tenorMusic \bassMusic } >> >>
音楽表記には変更を加えずに、楽譜構造の文を変えるだけで、ボーカル パートだけあるいはピアノ パートだけの楽譜を作り出すことができます。
長い楽譜では、変数定義をそれぞれ別々のファイルの中に置いて、それらのファイルをインクルードすることになるかもしれません – LilyPond ファイルをインクルードする を参照してください。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 変数を使用する ] | [ 上へ : 1 つのソースから異なる版を生成する ] | [ グローバル設定を使用する > ] |
タグを使用する
\tag #'partA
コマンドは音楽表記に
partA という名前を付けます。この方法でタグを付けられた表記は、後で \keepWithTag #'name
と
\removeWithTag #'name
のどちらかを用いて、名前によって選択あるいは排除することができます。タグの付いた音楽にそのようなフィルタを適用した結果は以下のようになります:
フィルタ | 結果 |
---|---|
\keepWithTag #'name あるいは
\keepWithTag #'(name1 name2…) が前に付くタグ付きの音楽 | タグの付いていない音楽と、与えられたタグ名のいずれかに当てはまる音楽がインクルードされます。他のタグ名を持つタグ付き音楽は排除されます。 |
\removeWithTag #'name あるいは
\removeWithTag #'(name1 name2…) が前に付くタグ付きの音楽 | タグの付いていない音楽と、与えられたタグ名のどれにも当てはまらない音楽がインクルードされます。与えられたタグ名のいずれかに当てはまる音楽は排除されます。 |
\keepWithTag と \removeWithTag のどちらも前に付かないタグ付きの音楽 | タグの付いた音楽とタグの付いていない音楽すべてがインクルードされます。 |
\tag
、\keepWithTag
それに \removeWithTag
コマンドの引数はシンボルやシンボルのリスト (例えば #'score
or #'(violinI violinII
)
と、音楽表記の順であるべきです。シンボルが LilyPond において正しい識別子
(アルファベットのみから成り、数字、アンダースコア、ダッシュは含まない) であり、音符名と混同しない場合である限り、#'
を省略することができ、シンボルのリストはドットで区切る記法を用いることができます。例えば、\tag #'(violinI violinII)
は \tag violinI.violinII
と書くことができます。\keepWithTag
や \removeWithTag
でも同様です。タグコマンドは音楽関数なので、\book
または \score
ブロックのような、音楽表記ではないオブジェクトをフィルターするのに使うことはできません。
以下の例では、楽曲を 2 つのバージョンで示しています。1 つはトリルを通常の記譜法で示していて、もう 1 つはトリルを明示的に展開しています:
music = \relative { g'8. c32 d \tag #'trills { d8.\trill } \tag #'expand {\repeat unfold 3 { e32 d } } c32 d } \score { \keepWithTag #'trills \music } \score { \keepWithTag #'expand \music }
\keepWithTag
を使う代わりに、音楽セクションを排除する方が楽な場合もあります:
music = \relative { g'8. c32 d \tag #'trills {d8.\trill } \tag #'expand {\repeat unfold 3 {e32 d} } c32 d } \score { \removeWithTag #'expand \music } \score { \removeWithTag #'trills \music }
タグ フィルタリングはアーティキュレーション、テキストなどにも適用することができます。フィルタリングを行うにはアーティキュレーションの前に
-\tag #'your-tag
を置きます。例えば、以下は条件付の運指指示を持つ音符と条件付注記を持つ音符を定義しています:
c1-\tag #'finger ^4 c1-\tag #'warn ^"Watch!"
複数の \tag
エントリで、または複数のタグを一つのシンボルのリストにすることで、表記に複数のタグを付けることもできます:
music = \relative c'' { \tag #'a \tag #'both { a4 a a a } \tag #'(b both) { b4 b b b } } << \keepWithTag #'a \music \keepWithTag #'b \music \keepWithTag #'both \music >>
単一の音楽表記に複数の \removeWithTag
フィルタを適用することによって、いくつかの異なる名前のタグが付いたセクションを排除することができます。または、\removeWithTag
にタグのリストを与える表記を用いることもできます:
music = \relative c'' { \tag #'A { a4 a a a } \tag #'B { b4 b b b } \tag #'C { c4 c c c } \tag #'D { d4 d d d } } \new Voice { \removeWithTag #'B \removeWithTag #'C \music \removeWithTag #'(B C) \music }
単一の音楽表記に 2 つ以上の \keepWithTag
フィルタを適用すると、タグ付きセクションが すべて 排除されてしまいます。なぜなら、最初のフィルタがそのタグ以外を持つセクションを排除し、2 番目のフィルタが更にそのセクションを排除するからです。\keepWithTag
コマンドを、複数のタグのリストを引数に与えて使うことで、そのリストに無いタグを持つセクションのみを削除することができます。
music = \relative c'' { \tag #'violinI { a4 a a a } \tag #'violinII { b4 b b b } \tag #'viola { c4 c c c } \tag #'cello { d4 d d d } } \new Staff { \keepWithTag #'(violinI violinII) \music }
上の例では、violinI と violinII の \tag
を表示しますが、viola や cello は表示しません。
While \keepWithTag
is convenient when dealing with one set
of alternatives, the removal of music tagged with unrelated tags
is problematic when using them for more than one purpose.
\keepWithTag
は、1 つだけの入れ替えのセットを扱う場合には便利ですが、関係のないタグが付けられた音楽を削除してしまうことは、タグを複数の目的で使用したい場合に問題となります。そのような場合では、タグの‘グループ’を宣言することができます。
\tagGroup #'(violinI violinII viola cello)
こうすることで、4 つの異なるタグが一つの‘タグ グループ’になります。それぞれのタグは、複数の‘タグ グループ’のメンバとなることはできません。
\keepWithTag #'violinI …
これで、violinI
のタグ グループに含まれるタグから、該当するタグのみが表示され、その他のタグは削除されます。(訳注: 指定されたタグ
グループに含まれないタグは表示されたままになります。)
music = \relative { \tagGroup #'(violinI violinII viola cello) \tag #'violinI { c''4^"violinI" c c c } \tag #'violinII { a2 a } \tag #'viola { e8 e e2. } \tag #'cello { d'2 d4 d } R1^"untagged" } \new Voice { \keepWithTag #'violinI \music }
既存の音楽表記のある特定の場所にいくつか音を組み込みたいことがあります。\pushToTag
と \appendToTag
を使って、既存の音楽構造の elements
の前または後に素材を追加することができます。すべての音楽構造が elements
を持つわけではありませんが、連続するか同時進行する音楽構造はまず間違いなく elements
を持ちます:
music = { \tag #'here { \tag #'here <<c''>> } } { \pushToTag #'here c' \pushToTag #'here e' \pushToTag #'here g' \music \appendToTag #'here c' \appendToTag #'here e' \appendToTag #'here g' \music }
どちらのコマンドもタグ、組み込む素材、それにタグ付けされた音楽表記を 取り、タグが出現するたびに素材を組み込みます。
参照
学習マニュアル: Organizing pieces with variables
記譜法リファレンス: 自動パート結合, LilyPond ファイルをインクルードする
既知の問題と警告
\keepWithTag
や \removeWithTag
でフィルタリングされた音楽表記に \relative
を用いると、オクターブ関係が変化してしまいます。これは、フィルタリングされた音符のみが \relative
で解釈されるためです。\keepWithTag
や \removeWithTag
よりも先にまず \relative
を適用することで、全ての音符が解釈されるようになるため、危険を回避することができます。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < タグを使用する ] | [ 上へ : 1 つのソースから異なる版を生成する ] | [ 特殊文字 > ] |
グローバル設定を使用する
別のファイルからグローバル設定をインクルードすることができます:
lilypond -dinclude-settings=MY_SETTINGS.ly MY_SCORE.ly
ページ サイズ、フォント、書体などのような設定のグループを別々のファイルに保存することができます。こうすることにより、適当な設定ファイルを指定するだけで、同じ楽譜から異なる版を作り出すことができます。
このテクニックはスタイル シートでも使えます。 Style sheets を参照してください。
参照
学習マニュアル: Organizing pieces with variables, Style sheets
記譜法リファレンス: LilyPond ファイルをインクルードする
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < グローバル設定を使用する ] | [ 上へ : 入力ファイルに取り組む ] | [ テキスト エンコーディング > ] |
3.3.3 特殊文字
テキスト エンコーディング | ||
Unicode | ||
ASCII エイリアス |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 特殊文字 ] | [ 上へ : 特殊文字 ] | [ Unicode > ] |
テキスト エンコーディング
LilyPond は Unicode 協会と ISO/IEC 10646 によって定義された文字レパートリを使用します。この文字レパートリは、ほとんどすべての現代言語と他の多くの言語で使用される文字セットに対して、固有の名前とコード位置を定義しています。Unicode はいくつかの異なるエンコーディングを用いて実装することができます。LilyPond は UTF-8 エンコーディング (UTF は Unicode Transformation Format を意味します) を使用します – UTF-8 はすべての共通ラテン文字を 1 バイトで表し、他の文字を可変バイト長形式 (最大 4 ビット) で表します。
文字の実際の見た目は利用可能なある特定のフォントの中にあるグリフ (図柄) によって決定されます – フォントはグリフを指す Unicode コードのサブセット (部分集合) の写像を定義しています。LilyPond は多言語テキストを、Pango ライブラリを用いて、レイアウトして描画します。
LilyPond は入力のエンコーディング変換をまったく行いません。これは非 ASCII 文字を含むすべてのテキスト – タイトル、歌詞テキストあるいは演奏指示 – を UTF-8 でエンコードして入力する必要があるということを意味します。そのようなテキストを入力する最も容易な方法は Unicode を認識するエディタを用いて、ファイルを UTF-8 で保存することです。人気のある現代的なエディタのほとんどが UTF-8 をサポートします – 例えば、vim, Emacs, jEdit, Gedit です。NT より後の MS Windows システムはすべてネイティブ キャラクタ エンコーディングとして Unicode を使用します。そのため、Notepad でさえ UTF-8 フォーマットのファイルを編集して保存することができます。Windows 用のもっと機能的なエディタに BabelPad があります。
非 ASCII 文字を保持している LilyPond 入力ファイルが UTF-8 フォーマットで保存されていない場合、エラー メッセージ
FT_Get_Glyph_Name () error: invalid argument
が表示されます。
ここでキリル文字、ヘブライ文字、ポルトガル語のテキストを表示する例を挙げます:
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < テキスト エンコーディング ] | [ 上へ : 特殊文字 ] | [ ASCII エイリアス > ] |
Unicode
単一の文字 – その文字に対する Unicode コード ポイントを知っているが、使用しているエディタではその文字を使用できない – を入力するには、\markup
ブロック内部で \char ##xhhhh
あるいは
\char ##dddd
を使用します
– ここで hhhh
はその文字に対する 16 進コードであり、dddd
はそれに対応する 10 進数値です。先頭の 0 は省略可能ですが、16 進表記では 4 文字で指定する方法が一般的です。(\char
の後に UTF-8 エンコーディングのコード ポイントを使うべきではありません。なぜなら、UTF-8 エンコーディングはバイト数を表すための余分なビットを保持しているからです。)
任意の文字に対する 16 進のコード ポイントを調べるための、Unicode コード表と文字名インデックスは Unicode コンソーシアム Web サイト
https://www.unicode.org/ にあります。
例えば、\char ##x03BE
と \char #958
はどちらも
Unicode U+03BE の文字を入力します
– この文字は Unicode 名 “Greek Small Letter Xi”
(ギリシャ小文字クシー) です。
この方法で任意の Unicode コード ポイントを入力することができます。すべての特殊文字がこの方法で入力されている場合、入力ファイルを UTF-8 フォーマットで保存する必要はありません。もちろん、入力された文字を保持しているフォントがすべてインストールされていて、LilyPond で利用可能になっている必要があります。
以下の例は UTF-8 コード化された文字を 4 箇所 – リハーサル記号の中、アーティキュレーション テキストとして、歌詞の中、楽譜の下にある独立したテキストの中 – で使用しています:
\score { \relative { c''1 \mark \markup { \char ##x03A8 } c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } } } \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } } } \markup { "Copyright 2008--2022" \char ##x00A9 }
著作権についての注意書きの中で著作権記号を入力するには、以下のようにします:
\header { copyright = \markup { \char ##x00A9 "2008" } }
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < Unicode ] | [ 上へ : 特殊文字 ] | [ 出力を制御する > ] |
ASCII エイリアス
特殊文字の ASCII エイリアスのリストを含めることができます:
\paper { #(include-special-characters) } \markup "&flqq; – &OE;uvre incomplète… &frqq;" \score { \new Staff { \repeat unfold 9 a'4 } \addlyrics { This is al -- so wor -- kin'~in ly -- rics: –_&OE;… } } \markup \column { "特殊文字への置換を無効にすることができます:" "– &OE; …" \override #'(replacement-alist . ()) "– &OE; …" }
また、エイリアスを作ることもできます。グローバルに作るか:
\paper { #(add-text-replacements! '(("100" . "hundred") ("dpi" . "dots per inch"))) } \markup "A 100 dpi."
ローカルで作ります:
\markup \replace #'(("100" . "hundred") ("dpi" . "dots per inch")) "A 100 dpi."
参照
記譜法リファレンス: 特殊文字の一覧
インストールされているファイル: ‘ly/text-replacements.ly’
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < ASCII エイリアス ] | [ 上へ : 入出力全般 ] | [ 音楽の断片を抽出する > ] |
3.4 出力を制御する
3.4.1 音楽の断片を抽出する | ||
3.4.2 校正済みの音楽をスキップする | ||
3.4.3 他の出力フォーマット | ||
3.4.4 記譜フォントを置換する |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 出力を制御する ] | [ 上へ : 出力を制御する ] | [ 校正済みの音楽をスキップする > ] |
3.4.1 音楽の断片を抽出する
1 つあるいは複数の楽譜の断片を出力することができます。そのためには、\layout
ブロックに抽出する部分を clip-regions
関数で明示します。そして、LilyPond を ‘-dclip-systems’ オプション付きで実行します。
\layout { clip-regions = #(list (cons (make-rhythmic-location 5 1 2) (make-rhythmic-location 7 3 4))) }
この例では、5 小節目の 2 分音符 1 つ分後 (5 1 2
) から、7小節目の 4 分音符 3 つ分後 (7 3 4
) までの部分を抽出します。
\layout
ブロックの clip-regions
リストに
make-rhythmic-location
のペアを追加することで、断片を追加することができます。
デフォルトでは、それぞれの断片は別々の EPS
ファイルに出力されますが、必要であれば PDF
や PNG
などの別のフォーマットで出力することもできます。抽出された音楽は、元の楽譜を文字通り‘切り抜いた’かのように出力されるため、断片が複数行にまたがる場合には、行ごとに出力ファイルが分割されます。
参照
記譜法リファレンス:
\layout
ブロック
アプリケーション使用方法: Command-line usage
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 音楽の断片を抽出する ] | [ 上へ : 出力を制御する ] | [ 他の出力フォーマット > ] |
3.4.2 校正済みの音楽をスキップする
音楽を入力あるいはコピーしているとき、閲覧、校正する必要があるのは、たいてい終わり近くの音楽 (そこに音符を追加している場所) だけです。校正プロセスを速めるために、最後の数小節以外の譜刻をスキップすることができます。これはソース ファイルの中に以下を置くことによって実現できます:
showLastLength = R1*5 \score { … }
これは入力ファイルの中にあるそれぞれの \score
の最後の 5 小節だけを描画します (4/4 拍子と仮定して)。長い楽曲の場合、小さな部分だけを描画するのにかかる時間は楽曲をすべて描画するのにかかる時間よりも非常に短くなります。すでに譜刻済みの楽譜の開始部分に取り掛かる (例えば、新しいパートを追加する)
ときには、showFirstLength
プロパティも役に立つかもしれません。
楽譜の中のいくつかのパートをスキップは、プロパティ Score.skipTypesetting
を用いたより細かなやり方で制御することができます。このプロパティがセットされていると、譜刻はまったく行われません。
このプロパティは MIDI ファイルへの出力を制御するためにも用いられます。このプロパティはすべてのイベント – テンポの変更や楽器の変更を含む – をスキップするということに注意してください。くれぐれも注意してください。
\relative c' { c1 \set Score.skipTypesetting = ##t \tempo 4 = 80 c4 c c c \set Score.skipTypesetting = ##f d4 d d d }
多声の音楽では、Score.skipTypesetting
はすべてのボイスと譜に影響を与えて、より多くの時間を節約します。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 校正済みの音楽をスキップする ] | [ 上へ : 出力を制御する ] | [ SVG 出力 > ] |
3.4.3 他の出力フォーマット
譜刻される楽譜のデフォルト出力フォーマットは、Portable Document Format (PDF), PostScript (PS) です。コマンド ライン オプションを指定することにより、Portable Network Graphics (PNG), Scalable Vector Graphics (SVG), Encapsulated PostScript (EPS) フォーマットによる出力が利用可能です。 Basic command line options for LilyPond を参照してください。
SVG 出力 |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 他の出力フォーマット ] | [ 上へ : 他の出力フォーマット ] | [ 記譜フォントを置換する > ] |
SVG 出力
SVG 出力では、符頭や休符などのグラフィカル オブジェクト (Grob) に対してメタデータを付加させることができます。このメタデータは id
や class
のような SVG 標準の属性でも良いですし、非標準のカスタム属性を追加することもできます。Grob の output-attributes
を、属性名と値を含む Scheme
の連想配列 (alist) でオーバライドしてください。値は数値、文字列、シンボルです。例:
{ \once \override NoteHead.output-attributes = #'((id . 123) (class . "this that") (data-whatever . something)) c }
この入力は SVG ファイルに次の <g>
(グループ) タグを作り出します:
<g id="123" class="this that" data-whatever="something"> ...NoteHead grob SVG elements... </g>
<g>
タグは、与えられた Grob に対する全ての SVG エレメントを中に含みます。(Grob によっては複数のエレメントを含むことがあります。)SVG のシンタックスでは、非標準のカスタム メタデータ属性に対して
data-
接頭辞を使用します。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < SVG 出力 ] | [ 上へ : 出力を制御する ] | [ MIDI 出力を作り出す > ] |
3.4.4 記譜フォントを置換する
Gonville は、LilyPond で使われるグリフ セットで、Feta – Emmentaler フォントの一部 – の代わりとなります。Gonville は以下からダウンロードできます:
http://www.chiark.greenend.org.uk/~sgtatham/gonville/
Gonville のサンプル小節です:
LilyPond の Feta グリフのサンプル小節です:
インストール手順
フォント ファイルをダウンロードし、展開します。‘gonville-11.otf’, ‘gonville-13.otf’, ‘gonville-14.otf’, ‘gonville-16.otf’, ‘gonville-18.otf’, ‘gonville-20.otf’, ‘gonville-23.otf’, ‘gonville-26.otf’, ‘gonville-brace.otf’ ファイルを ‘…/share/lilypond/current/fonts/otf’ か ‘…/share/lilypond/X.Y.Z/fonts/otf’ にコピーします。 ‘gonville-*.svg’ や ‘gonville-*.woff’ のファイルを持っているならば、それらを ‘…/share/lilypond/current/fonts/svg’ か ‘…/share/lilypond/X.Y.Z/fonts/svg’ にコピーします。 更なる情報は、 Other sources of information を参照してください。
注: ‘gonville-*.otf’ ファイルは
ps
や eps
バックエンドで使われます。
(PDF や PostScript を出力します)。
‘gonville-*.svg’ ファイルは
svg
バックエンドで svg-woff
オプションが無効な場合に使われます。
‘gonville-*.woff’ ファイルは
svg
バックエンドで svg-woff
オプションが有効な場合に使われます。
更なる情報は、
Advanced command line options for LilyPond を参照してください。
次の構文は、記譜フォント (記号類とブレースの両方) を Gonville フォントに変更します:
\paper { #(define fonts (set-global-fonts #:music "gonville" #:brace "gonville" )) }
注: set-global-fonts
を呼び出すたびに、メインの記譜フォントとテキスト
フォントの両方を完全にリセットします。どれかのカテゴリが指定されていない場合には、そのカテゴリのデフォルトフォントが使われます。set-global-fonts
を呼び出すたびに、それに続く全ての \book
(暗黙的に生成された場合と、明示的に生成された場合の両方を含みます) のフォントを変更します。つまり、それぞれの \book
の前にset-global-fonts
を呼び出すことによって、\book
ごとにメイン
フォントを指定することができます。更なる情報は、ドキュメント全体のフォント を参照してください。
参照
学習マニュアル: Other sources of information
記譜法リファレンス: Emmentaler フォント, ドキュメント全体のフォント
既知の問題と警告
Gonville では ‘古代の音楽’ を記譜することはできません。Gonville フォント ファミリーでは、これからリリースされる LilyPond の新しい図柄は提供されないかもしれません。ライセンス条件等を含む Gonville の更なる情報は、製作者の Web サイトを参照してください。
他の記譜フォント
‘fontname-*.otf’, ‘fontname-*.svg’, ‘fontname-*.woff’ のような他の記譜フォントを持っている場合、Gonville と同じように使用することができます。
つまり、 ‘fontname-*.otf’ ファイルを ‘…/share/lilypond/current/fonts/otf’ や ‘…/share/lilypond/X.Y.Z/fonts/otf’ にコピーします。 ‘fontname-*.svg’ や ‘fontname-*.woff’ ファイルを持っているならば、それらを ‘…/share/lilypond/current/fonts/svg’ や ‘…/share/lilypond/X.Y.Z/fonts/svg’ にコピーします。
注: 現在、LilyPond はフォントのファイル名に以下の接尾が付いていることを想定します。インストールしたフォントが正しく動作するためには、これらの全てが上のインストール フォルダに存在している必要があります: ‘-11’, ‘-13’, ‘-14’, ‘-16’, ‘-18’, ‘-20’, ‘-23’, ‘-26’, ‘-brace’ です。 例えば、‘emmentaler-11.otf’, ‘emmentaler-20.svg’, ‘emmentaler-brace.woff’ のようなファイルが必要です。
次の構文は、記譜フォント (記号類とブレースの両方) を fontname フォントに変更します:
\paper { #(define fonts (set-global-fonts #:music "fontname" ; font filename without suffix and extension #:brace "fontname" ; font filename without suffix and extension )) }
注: music
や brace
カテゴリには、接尾や拡張子を除いたフォントのファイル名を指定してください。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 記譜フォントを置換する ] | [ 上へ : 入出力全般 ] | [ MIDI でサポートされている記法 > ] |
3.5 MIDI 出力を作り出す
LilyPond は MIDI (Musical Instrument Digital Interface) 標準に従うファイルを出力することが出来るため、音楽の出力を聴いてチェックすることができます (MIDI を解釈できるアプリケーションやデバイスが必要です)。MIDI 出力を聞くことで、間違えて入力された音符や、臨時記号の欠落などのミスを発見しやすくなります。
MIDI ファイルは (AAC, MP3, Vorbis ファイルのような) 音を含みません。これらから音を作り出すためには、追加のソフトウェアが必要です。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI 出力を作り出す ] | [ 上へ : MIDI 出力を作り出す ] | [ MIDI でサポートされていない記法 > ] |
3.5.1 MIDI でサポートされている記法
次に挙げる記法は、LilyPond の標準 MIDI 出力機能で使うことができます:
- ブレス記号
- コード ネームとして入力された和音
- 複数の音符にまたがるクレッシェンドとデクレッシェンド。音量が始点から終点まで線形に変化します
-
ppppp
からfffff
までの強弱記号 (mp
,mf
,sf
を含む) - 和音ではない微分音。ピッチ ベンドをサポートする MIDI プレイヤが必要です。
- 歌詞
- ピッチ
- 長さが入力されたリズム (連符を含む)
- ‘シンプルな’アーティキュレーション: スタッカート、スタッカーティッシモ、アクセント、マルカート、ポルタート
-
\tempo
関数が使われたテンポ変化 - タイ
- ‘
:
[number]’ で入力されていないトレモロ
パン、バランス、エクスプレッション、リバーブ、コーラスのエフェクトはコンテキスト プロパティをセットすることで操作できます。MIDI エフェクトのためのコンテキスト プロパティ を参照してください。
次の ‘articulate’ スクリプトと一緒に使うと、これらの表記も MIDI に出力することができます:
- アッポジャトゥーラ。次の音符の半分の長さが使われます
(付点は考慮されません)。例えば:
\appoggiatura c8 d2.
では、c の音が四分音符の長さを取ります。
- 装飾記号 (例えば、モルデント、トリル、ターンなど)
- ラレンタンド、アッチェレランド、リタルダント、ア テンポ
- スラー (フレージング スラーを含む)
- テヌート
MIDI 出力をより良くする を参照してください。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI でサポートされている記法 ] | [ 上へ : MIDI 出力を作り出す ] | [ MIDI ブロック > ] |
3.5.2 MIDI でサポートされていない記法
次の記法は、MIDI に出力することはできません:
- スタッカート、スタッカーティッシモ、アクセント、マルカート、ポルタート以外のアーティキュレーション
- 一つの音符にまたがるクレッシェンドとデクレッシェンド
- フェルマータ
- 通奏低音
- グリッサンド
- Fall や Doit
- 微分音の和音
- スウィングなどの、注釈として入力されたリズム
-
\tempo
以外で入力されたテンポ変化 (注釈として入力された場合など) - ‘
:
[number]’ で入力されたトレモロ
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI でサポートされていない記法 ] | [ 上へ : MIDI 出力を作り出す ] | [ MIDI での音の強弱を制御する > ] |
3.5.3 MIDI ブロック
LilyPond 入力ファイルから MIDI 出力ファイルを作り出す場合、\score
ブロックの中に \midi
ブロックを挿入します。\midi
ブロックは空でも構いません。
\score { … music … \layout { } \midi { } }
Note: \score
ブロックが音楽と、\midi
ブロックしか含まない場合 (つまり、\layout
ブロックを持たない場合)、MIDI 出力ファイルのみを作り出します。楽譜は出力されません。
デフォルトの出力ファイルの拡張子 (.midi
) は lilypond
コマンドに-dmidi-extension
オプションを指定することで変更することができます:
lilypond -dmidi-extension=mid MyFile.ly
または、\book
, \bookpart
, \score
ブロックのいずれかの前に、次の Scheme コードを追加することでも変更することができます。ファイル構造 を参照してください。
#(ly:set-option 'midi-extension "mid")
参照
記譜法リファレンス: ファイル構造, 出力ファイルのメタデータを作成する
インストールされているファイル: ‘scm/midi.scm’
既知の問題と警告
MIDI チャンネルは 15 個が利用可能で、さらにドラムのためのチャンネルが 1 つ (#10) あります。譜は一つずつ順番にチャンネルが割り当てられるため、15 よりも多くの譜を持つ楽譜は、複数の譜が同じ MIDI チャンネルに割り当てられます (上書きはされません)。この時、チャンネル毎に設定されるプロパティが競合してセットされている場合 – 例えば、異なる楽器が指定されている場合 – は問題になることがあります。
多拍子記譜法で midi
ブロックを使用した場合、予期しない小節線チェックの警告が表示される可能性があります。その場合は、midi
ブロック内で、Timing_translator
を Score
コンテキストから
Staff
コンテキストに移動してください。
\midi { \context { \Score \remove Timing_translator } \context { \Staff \consists Timing_translator } }
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI ブロック ] | [ 上へ : MIDI 出力を作り出す ] | [ MIDI での強弱記号 > ] |
3.5.4 MIDI での音の強弱を制御する
MIDI 全体の音量や、強弱記号による相対的な音量、楽器ごとの相対的な音量を設定することができます。
強弱記号は、可能な範囲内の MIDI 音量に変換されます。一方、クレッシェンドやデクレッシェンドは、始点と終点の間の音量を線形に変化させます。強弱記号の相対的な音量や、楽器ごとの全体的な音量を設定することができます。
MIDI での強弱記号 | ||
MIDI の音量を設定する | ||
MIDI ブロック プロパティを設定する |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI での音の強弱を制御する ] | [ 上へ : MIDI での音の強弱を制御する ] | [ MIDI の音量を設定する > ] |
MIDI での強弱記号
mp
, mf
, sf
を含む、ppppp
から fffff
までの強弱記号のみが音量値を設定されています。そして、この値が全体の MIDI 音量レンジの値に適用されます。MIDI 出力において、指定された強弱記号に対応した最終的な音量を得るために、これらの値が全体の音量範囲に収まるように適用されます。デフォルトで、割合の最小値は 0.25 (ppppp) で、最大値は
0.95 (fffff) です。全ての強弱記号と、それに関連付けられた音量の割合の一覧は ‘scm/midi.scm’ にあります。
Selected Snippets
MIDI 出力でカスタム強弱記号を作成する
次の例は、デフォルトのリストには含まれていない強弱記号を作成し、MIDI 出力に反映されるように音量値を割り当てる方法を示しています。
強弱記号 \rfz
は 0.9
の値が割り当てられています。
#(define (myDynamics dynamic) (if (equal? dynamic "rfz") 0.9 (default-dynamic-absolute-volume dynamic))) \score { \new Staff { \set Staff.midiInstrument = #"cello" \set Score.dynamicAbsoluteVolumeFunction = #myDynamics \new Voice { \relative { a'4\pp b c-\rfz } } } \layout {} \midi {} }
インストールされているファイル: ‘ly/script-init.ly’ ‘scm/midi.scm’
コード断片集: MIDI
内部リファレンス: Dynamic_performer
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI での強弱記号 ] | [ 上へ : MIDI での音の強弱を制御する ] | [ MIDI ブロック プロパティを設定する > ] |
MIDI の音量を設定する
全体の MIDI 音量の最小値と最大値は、midiMinimumVolume
と
midiMaximumVolume
を Score
レベルでセットすることで設定できます。これらのプロパティはボイスの開始時か強弱記号が配置された時に適用されます。それぞれの強弱記号に対応する音量の割合は次の式で計算されます:
midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fraction
次の例では、全体の MIDI 音量の範囲を 0.2
- 0.5
に制限します:
\score { << \new Staff { \set Staff.midiInstrument = "flute" … music … } \new Staff { \set Staff.midiInstrument = "clarinet" … music … } >> \midi { \context { \Score midiMinimumVolume = #0.2 midiMaximumVolume = #0.5 } } }
楽器ごとの音量を均等化するための単純な方法は、midiMinimumVolume
と midiMaximumVolume
プロパティを
Staff
コンテキストでセットすることです:
\score { \new Staff { \set Staff.midiInstrument = "flute" \set Staff.midiMinimumVolume = #0.7 \set Staff.midiMaximumVolume = #0.9 … music … } \midi { } }
複数の譜を持ち、複数の MIDI 楽器を用いる楽譜では、それぞれの相対的な音量をセットすることができます:
\score { << \new Staff { \set Staff.midiInstrument = "flute" \set Staff.midiMinimumVolume = #0.7 \set Staff.midiMaximumVolume = #0.9 … music … } \new Staff { \set Staff.midiInstrument = "clarinet" \set Staff.midiMinimumVolume = #0.3 \set Staff.midiMaximumVolume = #0.6 … music … } >> \midi { } }
この例では、フルートの音量に比べてクラリネットの音量が減らされています。
これらの音量プロパティがセットされていない場合でも、LilyPond は特定の楽器に‘わずかな’音量の均等化を行っています。‘scm/midi.scm’ を参照してください。
インストールされているファイル: ‘scm/midi.scm’
参照
記譜法リファレンス: 楽譜レイアウト
内部リファレンス: Dynamic_performer
Selected Snippets
デフォルトの MIDI 楽器の音量を置き換える
デフォルトの MIDI 楽器の音量は Score
コンテキストの
instrumentEqualizer
プロパティをセットすることで置き換えることができます。セットするのは Scheme 関数で、音色名を引数で与えられた際にその音色に対応する最小音量と最大音量 (音量は割合で指定) のペアを返すものです。
次の例は、それぞれフルートとクラリネットに対して最小音量を最大音量をセットしています。
#(define my-instrument-equalizer-alist '()) #(set! my-instrument-equalizer-alist (append '( ("flute" . (0.7 . 0.9)) ("clarinet" . (0.3 . 0.6))) my-instrument-equalizer-alist)) #(define (my-instrument-equalizer s) (let ((entry (assoc s my-instrument-equalizer-alist))) (if entry (cdr entry)))) \score { << \new Staff { \key g \major \time 2/2 \set Score.instrumentEqualizer = #my-instrument-equalizer \set Staff.midiInstrument = "flute" \new Voice \relative { r2 g''\mp g fis~ 4 g8 fis e2~ 4 d8 cis d2 } } \new Staff { \key g \major \set Staff.midiInstrument = "clarinet" \new Voice \relative { b'1\p a2. b8 a g2. fis8 e fis2 r } } >> \layout { } \midi { } }
既知の問題と警告
MIDI での音量変化は音符の開始時にのみ適用されます。そのため、クレッシェンドやデクレッシェンドが単一の音符に適用された場合、音量は変化しません。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI の音量を設定する ] | [ 上へ : MIDI での音の強弱を制御する ] | [ MIDI の楽器を用いる > ] |
MIDI ブロック プロパティを設定する
\midi
ブロックでは、コンテキストを再構成したり、新たなコンテキストを定義したり、特定のプロパティに値をセットしたりすることができます。
\score { … music … \midi { \tempo 4 = 72 } }
この例では、テンポが四分音符 72 にセットされます。\midi
ブロックのテンポ記号は、楽譜には出力されません。しかし、他の \tempo
指示が
\score
ブロックで指定された場合、それも MIDI 出力に反映されます。
\midi
ブロック内で、\tempo
コマンドが記述された場合、音楽の解釈中に、出力定義のコンテキスト内でプロパティをセットします。そのため、それはコンテキストの変更であるかのように解釈されます。
コンテキスト定義は、\layout
ブロックと同じ表記を用います:
\score { … music … \midi { \context { \Voice \remove Dynamic_performer } } }
この例は、MIDI 出力から強弱記号の効果を取り除きます。注: LilyPond では、音楽表記から MIDI 出力に変換するモジュール (translator) は‘パフォーマ’ (performer) と呼ばれます。
参照
学習マニュアル: Other sources of information
インストールされているファイル: ‘ly/performer-init.ly’
コード断片集: MIDI
内部リファレンス: Dynamic_performer
既知の問題と警告
MIDI プレイヤの中には,出力のテンポ変化を正しく処理しないものがあります。
midiInstrument
や他の MIDI オプションの変更を譜の始めに行った場合、MIDI 出力ファイル内でその変更が二重に記述されている場合があります。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI ブロック プロパティを設定する ] | [ 上へ : MIDI 出力を作り出す ] | [ MIDI で繰り返しを用いる > ] |
3.5.5 MIDI の楽器を用いる
MIDI の楽器は、Staff
コンテキストで midiInstrument
プロパティをセットすることで指定することができます:
\score { \new Staff { \set Staff.midiInstrument = "glockenspiel" … music … } \midi { } }
または:
\score { \new Staff \with {midiInstrument = "cello"} { … music … } \midi { } }
楽器名が ‘MIDI の楽器’ セクションにある一覧のどれにも当てはまらない場合、acoustic grand
楽器が代わりに使用されます。
MIDI 楽器 を参照してください。
参照
学習マニュアル: Other sources of information
インストールされているファイル: ‘scm/midi.scm’.
既知の問題と警告
DrumStaff
コンテキストで記譜されるパーカッションの楽器は、正しく MIDI の 10 チャンネルに出力されますが、いくつかのピッチ付きのパーカッション楽器 (シロフォン、マリンバ、ビブラフォン、ティンパニなど) は“通常の”楽器として扱われます。そのため、これらの楽器の MIDI 出力を正しく得る場合には、音楽は
(DrumStaff
ではなく) Staff
コンテキストに入力されるべきです。10 チャンネルのドラム キット (channel 10 drum-kits
) の完全なリストは、‘scm/midi.scm’ にあります。
Other sources of information を参照してください。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI の楽器を用いる ] | [ 上へ : MIDI 出力を作り出す ] | [ MIDI のチャンネル マッピング > ] |
3.5.6 MIDI で繰り返しを用いる
繰り返しを MIDI で表現するためには、\unfoldRepeats
コマンドを適用します:
\score { \unfoldRepeats { \repeat tremolo 8 { c'32 e' } \repeat percent 2 { c''8 d'' } \repeat volta 2 { c'4 d' e' f' } \alternative { { g' a' a' g' } { f' e' d' c' } } } \midi { } }
楽譜を出力しつつ、\unfoldRepeats
の効果を MIDI 出力のみに制限するには、\score
ブロックを二つ作る必要があります: 一つは
(\unfoldRepeats
を用いる) MIDI 用の \score
、もう一つは
(volta
, tremolo
, percent
による繰り返しを用いる) 記譜用の
\score
です。
\score { … music … \layout { } } \score { \unfoldRepeats { … music … } \midi { } }
複数のボイスを使用している場合、正しい MIDI 出力を得るためには全てのボイスの繰り返しが完全に展開されている必要があります。
参照
記譜法リファレンス: 繰り返し
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI で繰り返しを用いる ] | [ 上へ : MIDI 出力を作り出す ] | [ MIDI エフェクトのためのコンテキスト プロパティ > ] |
3.5.7 MIDI のチャンネル マッピング
楽譜から MIDI ファイルを生成する場合、LilyPond は自動的に全ての音符を、MIDI デバイスに転送された時に再生されるべき MIDI チャンネルに割り当てます。MIDI チャンネル毎に設定できるパラメータがあり、例えば、そのチャンネルで音符が演奏される時に用いられる楽器を選択したり、そのチャンネルで演奏された音にいくつかのエフェクトを加えるように、MIDI デバイスに指示をしたりすることができます。常に、それぞれのパラメータはチャンネル毎に 1 つの値しか持つことができません (しかし途中で変更することは可能で、例えば楽譜の途中で楽器を変更することができます)。
MIDI は標準で 1 デバイスにつき 16 チャンネルのみを持つことができます。このチャンネル数の制限は、一度に演奏できる異なる楽器の数の制限にもなっています。
LilyPond は譜ごと、Lyrics コンテキスト毎に異なる MIDI トラックを生成します。
(Score.midiChannelMapping
の値によっては、異なる楽器やボイス毎にトラックが生成される場合があります。)
トラックの数には制限はありません。
MIDI のチャンネル数が制限されていることに対処するために、LilyPond には
MIDI のチャンネル配置にいくつかの異なるモードが存在します。これは
Score.midiChannelMapping
コンテキスト プロパティで設定します。どの場合でも、制限よりも多い MIDI チャンネルが必要になった場合、割り当てられるチャンネル番号は 0 に戻ってきます。そのため、楽器の割り当てが間違っている音符ができるかもしれません。このコンテキスト プロパティは次のうちのどれかに設定することができます:
-
'staff
-
楽譜に存在する譜ごとに異なる MIDI チャンネルを割り当てます (これがデフォルトです)。それぞれの譜に含まれる全てのボイスの全ての音符は同じ MIDI チャンネルを共有し、同じ MIDI トラックにエンコードされます。
MIDI の歌詞は MIDI チャンネルを占有しませんが、譜と Lyrics コンテキストの合計数が 16 チャンネルの制限の対象となります。
-
'instrument
-
楽譜に指定された MIDI 楽器ごとに異なる MIDI チャンネルを割り当てます。つまり、同じ MIDI 楽器を持つ音符は、譜やボイスが異なっていても、同じ MIDI チャンネル (やトラック) を共有するということです。
この場合、歌詞コンテキストは (MIDI 楽器が指定されないため) MIDI チャンネルの 16 個という制限に数えられません。そのためこの設定は、楽譜に存在する譜や歌詞が 16 を超える場合には、MIDI チャンネルの割り当てがより良くなるかもしれません。
-
'voice
-
譜の中で異なる名前を持つボイスごとに、異なる MIDI チャンネルを割り当てます。異なる譜に属するボイスは必ず異なる MIDI チャンネルに割り当てられますが、同じ譜に属するボイスが同じ名前を持つ場合、それらは同じ MIDI チャンネルに割り当てられます。
midiInstrument
や、いくつかのエフェクトを操作する プロパティは Staff コンテキストに属するため、ボイスごとに異なる値を持つことはできません。1 番目のボイスが、譜に設定された楽器やエフェクトで演奏され、1 番目のボイスと異なる名前を持つ他のボイスは、デフォルトの楽器やエフェクトで演奏されます。注:
Staff_performer
をStaff
からVoice
コンテキストへ移動し、midiChannelMapping
をデフォルトの'staff
か'instrument
にすることで、同じ譜にあるボイスによって異なる楽器やエフェクトを指定することができます。下のコード断片を参照してください。
下の例では、デフォルトの MIDI チャンネルの割り当て方法を 'instrument
に変更しています:
\score { ...music... \midi { \context { \Score midiChannelMapping = #'instrument } } }
Selected Snippets
MIDI チャンネルをボイスごとに割り当てる
MIDI を出力する際、デフォルトの挙動では譜ごとに MIDI チャンネルが作られ、譜の中にある全てのボイスは統合されます。これは、トラックごとに 16 しか存在しない MIDI チャンネルが足りなくなる恐れを減らします。
しかしながら、次の例のように
Staff_performer
を Voice
コンテキストに移動することで、ボイスごとに独自の MIDI チャンネルを持つようになります:
同じ譜にあるにもかかわらず、2 つの MIDI チャンネルが作られ、異なる
midiInstrument
が割り当てられます。
\score { \new Staff << \new Voice \relative c''' { \set midiInstrument = #"flute" \voiceOne \key g \major \time 2/2 r2 g-"Flute" ~ g fis ~ fis4 g8 fis e2 ~ e4 d8 cis d2 } \new Voice \relative c'' { \set midiInstrument = #"clarinet" \voiceTwo b1-"Clarinet" a2. b8 a g2. fis8 e fis2 r } >> \layout { } \midi { \context { \Staff \remove "Staff_performer" } \context { \Voice \consists "Staff_performer" } \tempo 2 = 72 } }
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI のチャンネル マッピング ] | [ 上へ : MIDI 出力を作り出す ] | [ MIDI 出力をより良くする > ] |
3.5.8 MIDI エフェクトのためのコンテキスト プロパティ
以下のコンテキスト プロパティは、様々な MIDI エフェクトを、割り当てられた MIDI チャンネルの音符に適用するために使われます。
(チャンネルが譜、MIDI 楽器、ボイスのどの単位で割り当てられるかは、Score.midiChannelMapping
コンテキスト プロパティと、Staff_performer
がどのコンテキストに配置されるかに依存します。MIDI のチャンネル マッピング を参照してください)。
これらのコンテキスト プロパティを変更すると、チャンネルに属するその後の全ての音符に影響を与えます。しかし、この内のいくつかは、すでに音が鳴っている音符にも適用されるものがあります (これは、MIDI 出力デバイスの実装次第です)。
以下のコンテキスト プロパティがサポートされています:
-
Staff.midiPanPosition
-
パン ポジションは、MIDI チャンネルの音が左から右までのどこに定位するかを設定します。このコンテキスト プロパティは -1.0 (
#LEFT
) から 1.0 (#RIGHT
) までの数値を受理します。-1.0 は全ての音がステレオの左側から鳴るようになります (右側からは音が鳴りません)。0.0 (#CENTER
) は左側と右側に均等に音を振り割ります。1.0 は全ての音が右側から鳴るようになります。-1.0 と 1.0 の間の値は、完全な左側と、完全な右側の間にある定位となります。 -
Staff.midiBalance
-
MIDI チャンネルのステレオ バランスを設定します。パンと同様に、このコンテキスト プロパティは -1.0 (
#LEFT
) から 1.0 (#RIGHT
) までの数値を受理します。ステレオ信号の分布状態を変化させずに、2 つのステレオ スピーカーに送られる音量の相対値を調節します。 -
Staff.midiExpression
-
MIDI チャンネルに適用するエクスプレッション レベルを (可能な最大レベルとの比として) 設定します。MIDI デバイスは MIDI チャンネルのエクスプレッション レベルと、ボイスの現在の強弱レベル (
\p
や\ff
などで設定されます) とを組み合わせて、ボイス中の各音符の最終的な音量を決定します。エクスプレッションは、例えば、1 つの長い音符の中でクレッシェンドやデクレッシェンドを表現するために使うことができます (LilyPond はこれを自動ではサポートしません)。エクスプレッション レベルは 0.0 (ゼロ エクスプレッション、つまり音量ゼロ) から 1.0 (フル エクスプレッション) までです。
-
Staff.midiReverbLevel
-
MIDI チャンネルに適用するリバーブ レベルを (可能な最大レベルとの比として) 設定します。このプロパティは 0.0 (リバーブ無し) から 1.0 (フル エフェクト) までの数値を受理します。
-
Staff.midiChorusLevel
-
MIDI チャンネルに適用するコーラス レベルを (可能な最大レベルとの比として) 設定します。このプロパティは 0.0 (コーラス無し) から 1.0 (フル エフェクト) までの数値を受理します。
既知の問題と警告
MIDI ファイルは実際の音声データを含まないため、これらのコンテキスト プロパティの変化は、MIDI ファイル内においてはチャンネル コントロールを変化させるという要求に変換されるに過ぎません。ある MIDI デバイス (例えばソフトウェア MIDI プレイヤ) が、MIDI ファイル内にあるこれらの要求を実際に扱うかどうかは、そのデバイスの実装に完全に依存します。つまり、デバイスによっては、要求のいくつか、または全てを無視することがあるということです。また、MIDI デバイスがこれらのコントロールの値の違いをどのように解釈するか (MIDI の標準規格は、コントロールが最小値や最大値を取る時にどのように振る舞うかを標準化しているのみです)、あるいはコントロールの値の変化が、その MIDI チャンネルで既に演奏されている音符に対して影響を与えるかも、MIDI デバイスの実装次第です。
MIDI ファイルを生成する際、LilyPond は範囲内にある割合の数値を、対応する整数へと (通常 7 ビット: 0-127、MIDI チャンネル コントロールがより細かな分解能をサポートする場合は 14 ビット: 0-32767) 線形に変換します。その際、小数は四捨五入されます。変換された整数値が、生成された MIDI ファイルにそのまま記録されます。手持ちの MIDI デバイスがこれらの値をどのように扱うかについては、デバイスのドキュメントを参照してください。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI エフェクトのためのコンテキスト プロパティ ] | [ 上へ : MIDI 出力を作り出す ] | [ 奏法スクリプト > ] |
3.5.9 MIDI 出力をより良くする
奏法スクリプト | ||
スウィング スクリプト |
MIDI の楽器や、\midi
ブロックのプロパティを設定することでより良くすることができます。
追加されたスクリプトで、強弱、アーティキュレーション、リズムを MIDI に書き出す方法を微調整することができます: ‘articulate’ スクリプトと ‘swing’ スクリプトです。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < MIDI 出力をより良くする ] | [ 上へ : MIDI 出力をより良くする ] | [ スウィング スクリプト > ] |
奏法スクリプト
奏法スクリプトを使うには、入力ファイルの最初にこのような
\include
コマンドを追加します:
\include "articulate.ly"
このスクリプトは、アーティキュレーションやテンポ表示を反映させるために、MIDI 出力の音符を正しく‘タイム スケール’します。しかし、譜刻された出力も MIDI 出力の結果と対応して変化してしまいます。
\score { \articulate << … music … >> \midi { } }
\articulate
コマンドは、省略記号 (トリルやターンなど) を解釈できます。対応している記号の一覧は、スクリプト内に記載してあります。‘ly/articulate.ly’ を参照してください。
参照
学習マニュアル: その他の情報源
記譜法リファレンス: 楽譜レイアウト
インストールされているファイル: ‘ly/articulate.ly’
Note: 奏法スクリプトは和音の長さを短くすることがあります。これはオルガン音楽などには適さないかもしれません。また、アーティキュレーションが全く付いていない音符も長さが短くなります。\articulate
関数を使う場所を一部分に限定するか、奏法スクリプトに定義された変数を書き換えることによって、長さが短くなる挙動を抑えることができます。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 奏法スクリプト ] | [ 上へ : MIDI 出力をより良くする ] | [ 音楽情報を抽出する > ] |
スウィング スクリプト
‘swing’ スクリプトは通常の演奏時間を均等でないリズムで演奏させることを可能にする追加の関数を提供します。最もわかりやすい例は、2 つの 8 分音符を 3 のリズムで演奏する、ジャズ音楽によく見られる‘スウィング’演奏ですが、追加の演奏方法もサポートされます。
このスクリプトは入力ファイルの先頭で \include
されなければなりません:
\include "swing.ly"
3 つのコマンドが提供されます:
-
\tripletFeel
は 3 連符風のスウィングを作成します。これは 2 つの引数を取ります: このスクリプトによって影響を受ける音符の長さ (概して、8 分音符を表す8
となります)、そして、このスクリプトを適用する音楽表記です。 -
\applySwing
は音楽表記の前に追加の引数を取ります: 通常の音符がどのように演奏されるかを表現する n 個の比の‘重みのリスト’: 例えば、#'(2 1)
は 1 つ置きの音符が後続の音符の 2 倍の長さで演奏されることを示します (実際、\tripletFeel duration {music}
は\applySwing duration #'(2 1) {music}
のショートカットです) 。8 分音符をより平坦にスウィングするには、重みのリストを#'(3 2)
あるいはテイストに応じてその他の値を使います。このリストは 2 つ以上の値を含み、より長く、より複雑なグルーヴパターンを許可します。例えば、16 分音符のサンバ感は以下のようにして得られます:
\score { \applySwing 16 #'(3 2 2 3) { … music … } \midi { } }
-
\applySwingWithOffset
は‘重みのリスト’と音楽表記の間にさらにもう 1 つの引数を足します: オフセットの長さ (ly:make-moment
表記のように入力します)。このコマンドは音楽表記をオフビートからスタートするときに、部分的なスウィング周期で使われるべきです。
Note: ‘articulate’ スクリプトで用いる場合は、すべてのスウィング コマンドは譜の出力にも表示され、音符のスペーシングが不規則になります。これは、音楽を譜刻する代わりに MIDI 出力だけに専念する \score
ブロックのみに用いることで避けることができます。
追加のヘルプや情報はスクリプトファイルにあります: ‘ly/swing.ly’ を参照してください。
参照
学習マニュアル: Other sources of information
記譜法リファレンス: リズム
インストールされているファイル: ‘ly/swing.ly’
既知の問題と警告
-
音楽の中の
\repeat
構造 (\repeat unfold
であっても) は、いつ音符のタイミングが決定されるかを考慮しません。これはすべての繰り返される部分の長さがスウィング周期の長さの整数倍でない場合に問題を起こします。 -
これらの関数は拍子や小節を意識しません。音楽がオフビートからスタートする場合に、オフセットが
\applySwingWithOffset
を用いて提供される必要があるのはこのためです。 - 装飾音符は無視され、単純に影響を与えないように取り除かれます; 連符もそうです。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < スウィング スクリプト ] | [ 上へ : 入出力全般 ] | [ LilyPond 記譜法を表示する > ] |
3.6 音楽情報を抽出する
グラフィカルな出力と MIDI を作り出すことに加えて、LilyPond は音楽情報をテキストとして表示することができます。
3.6.1 LilyPond 記譜法を表示する | ||
3.6.2 Scheme 音楽表記を表示する | ||
3.6.3 音楽イベントをファイルに保存する |
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < 音楽情報を抽出する ] | [ 上へ : 音楽情報を抽出する ] | [ Scheme 音楽表記を表示する > ] |
3.6.1 LilyPond 記譜法を表示する
LilyPond 記譜法で書かれた音楽表記を音楽関数 \displayLilyMusic
で表示することが可能です。出力を見るには、通常、コマンド ラインで LilyPond を実行します。例えば、
{ \displayLilyMusic \transpose c a, { c4 e g a bes } }
は、以下を表示します:
{ a,4 cis4 e4 fis4 g4 }
デフォルトでは、LilyPond は上記のメッセージを他のすべてのメッセージと一緒にコンソールに表示します。上記のメッセージを分離して \displayLilyMusic
の結果を保存するには、出力をファイルにリダイレクトします。
lilypond file.ly >display.txt
LilyPond は音楽表記を表示するだけでなく、それを解釈します
(なぜなら、\displayLilyMusic
は追加で音楽表記を表示するために返すだけだからです)。既存の音楽に \displayLilyMusic
を挿入するだけでその音楽の情報を得られるので便利です。
音楽を解釈させ、コンソールには音楽を表示したい一方で、出力ファイルからはそれを削除したいならば、\void
コマンドを使います:
{ \void \displayLilyMusic \transpose c a, { c4 e g a bes } c1 }
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < LilyPond 記譜法を表示する ] | [ 上へ : 音楽情報を抽出する ] | [ 音楽イベントをファイルに保存する > ] |
3.6.2 Scheme 音楽表記を表示する
Displaying music expressions を参照してください。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < Scheme 音楽表記を表示する ] | [ 上へ : 音楽情報を抽出する ] | [ スペースの問題 > ] |
3.6.3 音楽イベントをファイルに保存する
以下のファイルをインクルードすることにより、音楽イベントをファイルに保存することができます。
\include "event-listener.ly"
これは譜毎に ‘FILENAME-STAFFNAME.notes’ あるいは ‘FILENAME-unnamed-staff.notes’ というファイルを作成します。複数の名前の無い譜がある場合、 すべての譜のイベントが同じファイルに出力されるということに注意してください。出力は以下のようになります:
0.000 note 57 4 p-c 2 12 0.000 dynamic f 0.250 note 62 4 p-c 7 12 0.500 note 66 8 p-c 9 12 0.625 note 69 8 p-c 14 12 0.750 rest 4 0.750 breathe
出力はタブ区切り行で、各行には 2 つの固定フィールドがあり、その後にオプション パラメータが続きます。
time type …params…
この情報は、簡単に Python スクリプト等の他のプログラムに読み込ませることができ、LilyPond で音楽分析や録音再生実験を行おうとする研究者にとってとても有用です。
既知の問題と警告
lilypond 音楽イベントすべてが ‘event-listener.ly’ でサポートされるわけではありません。‘event-listener.ly’ は、良く作られた “概念実証” を意図しています。
読み取りたい音楽イベントがサポートされていないのであれば、あなたが作業している lilypond ディレクトリに ‘event-listener.ly’ をコピーして、編集することで、望みの情報を出力させることができます。
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 音楽イベントをファイルに保存する ] | [ 上へ : Top ] | [ ページ レイアウト > ] |
4. スペースの問題
紙面全体のレイアウトは 3 つの要素によって決定されます: ページ レイアウト、改行、そしてスペースです。これらはすべて互いに影響を与え合います。スペース入れ方を選択することは音楽システムをどれくらいの密度で譜刻するかを決定します。これは改行をどこに挿入するかに影響を与え、それゆえ最終的には、楽曲が占めるページ数を決定します
大雑把に言って、このプロセスには 4 つのステップがあります: 最初に、演奏時間に基づいて可変距離 (‘スプリング’) が選択されます。とり得る改行の組み合わせがすべて試され、相対的に ‘悪い’ 楽譜が算出されます。それから、起こり得るシステムの高さが推定されます。 最後に、水平方向と垂直方向のスペースが混み合いすぎたり、広がりすぎたりしないように、改ページと改行の組み合わせが選択されます。
2 タイプのブロックがレイアウト設定を保持できます:
\paper {…}
と \layout {…}
です。\paper
ブロックはブックやブック パートのすべてのスコアで共通のページ レイアウト設定を保持します
– ページの高さやページ番号を表示するか等です。ページ レイアウト を参照してください。\layout
ブロックはスコアのレイアウトを保持します
– システム数や譜グループ間の間隔等です。ページ レイアウト を参照してください。
4.1 ページ レイアウト | ||
4.2 楽譜レイアウト | ||
4.3 改行/改ページ | ||
4.4 垂直方向のスペース | ||
4.5 水平方向のスペース | ||
4.6 音楽を少ないページに収める |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < スペースの問題 ] | [ 上へ : スペースの問題 ] | [ paper ブロック > ] |
4.1 ページ レイアウト
このセクションでは \paper
ブロックで使用するページ レイアウト
オプションについて説明します。
4.1.1 \paper ブロック | ||
4.1.2 紙面サイズと自動拡縮 | ||
4.1.3 固定された垂直方向の \paper スペース変数 | ||
4.1.4 可変な垂直方向の \paper スペース変数 | ||
4.1.5 水平方向の \paper スペース変数 | ||
4.1.6 他の \paper 変数 |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < ページ レイアウト ] | [ 上へ : ページ レイアウト ] | [ 紙面サイズと自動拡縮 > ] |
4.1.1 \paper
ブロック
\paper
ブロック 3 つの異なる場所に配置することができ、以下の順番でブロックの階層構造を作り出します:
-
入力ファイルの先頭。全ての
\book
,\bookpart
,\score
ブロックの前。 -
\book
ブロックの中であるが、そのブックの全ての\bookpart
や\score
ブロックの外。 -
\bookpart
ブロックの中であるが、そのブック パートの全ての\score
ブロックの外。
\paper
ブロックは、\score
ブロックの中には配置できません。
フィールドの値は、この順番に沿って継承されます。つまり、高い階層でセットされた値は、下の階層で値がセットされて上書きされない限り保たれます。
各階層で、\paper
ブロックは複数配置することができます。例えば、\include
されるファイル毎に \paper
ブロックを配置できます。その場合、それぞれの階層でフィールドの値が統合されます。同じフィールドが存在する場合、最後に出現した値が用いられます。
\paper
ブロックで可能な設定には以下のものがあります:
-
set-paper-size
Scheme 関数 -
ページ レイアウトをカスタマイズするのに用いられる
\paper
変数 - ヘッダ、フッタ、それにタイトルのレイアウトをカスタマイズするのに用いられるマークアップ定義
set-paper-size
関数は次のセクション
紙面サイズと自動拡縮
で説明します。ページ レイアウトを扱う \paper
変数は後のセクションで説明します。ヘッダ、フッタ、それにタイトルを扱うマークアップ定義は
カスタム タイトル、ヘッダ、フッタ で説明します。
たいていの \paper
変数は \paper
ブロック内でのみ機能します。\layout
ブロック内でも機能するいくつかの \paper
変数を\layout
ブロック でリスト アップしています。
ページの長さに関係する \paper
変数の単位は、ユーザによって他の単位が指定されていなければ、ミリメーターです。例えば、以下の宣言は top-margin
を 10mm
に設定します:
\paper { top-margin = 10 }
top-margin
を 0.5
インチに設定するには、単位接尾辞 \in
を使用します:
\paper { top-margin = 0.5\in }
利用可能な単位接尾辞は \mm
, \cm
, \in
,
それに \pt
です。これらの単位はミリメーターから変換するための値であり、‘ly/paper-defaults-init.ly’ で定義されています。技術的には必要はありませんが、明快さのために、ミリメーターを用いる場合であっても \mm
をコードに記述します。
Scheme を用いて \paper
の値を定義することも可能です。上の例と等価な Scheme は以下のようになります:
\paper { #(define top-margin (* 0.5 in)) }
参照
記譜法リファレンス:
紙面サイズと自動拡縮,
カスタム タイトル、ヘッダ、フッタ,
\layout
ブロック
インストールされているファイル: ‘ly/paper-defaults-init.ly’
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < paper ブロック ] | [ 上へ : ページ レイアウト ] | [ 紙面サイズを設定する > ] |
4.1.2 紙面サイズと自動拡縮
紙面サイズを設定する | ||
紙面サイズに応じた自動拡縮 |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 紙面サイズと自動拡縮 ] | [ 上へ : 紙面サイズと自動拡縮 ] | [ 紙面サイズに応じた自動拡縮 > ] |
紙面サイズを設定する
‘A4’ が紙面サイズを明示的に設定しなかった場合のデフォルト値です。しかしながら、デフォルト値を変更するために使うことができる関数が 2 つあります:
-
set-default-paper-size
-
#(set-default-paper-size "quarto")
この関数は常に最上位スコープに配置する必要があります。
-
set-paper-size
-
\paper { #(set-paper-size "tabloid") }
この間数は常に
\paper
ブロックの中に配置する必要があります。
set-default-paper-size
関数を最上位スコープで用いる場合、どの \paper
ブロックよりも前に配置する必要があります。set-default-paper-size
はすべてのページの紙面サイズを設定しますが、set-paper-size
が設定する紙面サイズは \paper
ブロックが適用されるページだけです。例えば、\paper
ブロックがファイルの最上位に配置されている場合、すべてのページの紙面サイズに摘要されます。\paper
ブロックが \book
の中に配置されている場合、そのブックのページだけに適用されます。
set-paper-size
関数を用いる場合、同じ \paper
ブロック内で用いられる他のすべての関数よりも 前に 配置する必要があります。紙面サイズに応じた自動拡縮 を参照してください。
紙面サイズは ‘scm/paper.scm’ で定義されていて、カスタム サイズを追加することも可能ですが、追加後のソフトウェア アップデートにより上書きされます。利用可能な紙面サイズは 定義された用紙サイズ でリスト アップされています。
以下のコマンドを用いてカスタム紙面サイズを追加することができ、追加した紙面サイズは
set-default-paper-size
または set-paper-size
で使用することがでいます。
#(set! paper-alist (cons '("my size" . (cons (* 15 in) (* 3 in))) paper-alist)) \paper { #(set-paper-size "my size") }
単位 in
(インチ)、cm
(センチメートル)、それに mm
(ミリメートル) のすべてを使うことができます。
紙面サイズ関数にシンボル 'landscape
を渡すとページは 90°回転し、それに応じてより長い行幅となります。
#(set-default-paper-size "a6" 'landscape)
出力を回転させずに紙面の縦横を入れ替えるには (例えば、ポストカードのサイズで出力する場合や、他のドキュメントに埋め込むための楽譜を生成する場合)、紙面サイズの名前にそのまま ‘landscape’ を付け加えます:
#(set-default-paper-size "a6landscape")
紙面サイズの名前が ‘landscape’ や ‘portlait’ で終わっている場合、'landscape
シンボルは出力の回転にのみ影響し、紙面の縦横サイズには影響しません。
参照
記譜法リファレンス: 紙面サイズに応じた自動拡縮, 定義された用紙サイズ
インストールされているファイル: ‘scm/paper.scm’
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 紙面サイズを設定する ] | [ 上へ : 紙面サイズと自動拡縮 ] | [ 固定された垂直方向の paper スペース変数 > ] |
紙面サイズに応じた自動拡縮
Scheme 関数
(set-default-paper-size
または set-paper-size
)
により紙面サイズが変更された場合、いくつかの \paper
変数は自動的に新しいサイズに合わせて拡縮されます。特定の変数の自動拡縮をスキップするには、紙面サイズを設定した後にその変数を設定します。paper-height
変数や paper-width
変数の変更では、自動拡縮は起こらないということに注意してください。しかしながら paper-width
変数の変更は他の値に影響を与えます
(これは拡縮とは別のことで、後で説明します)。
set-default-paper-size
関数と set-paper-size
関数については
紙面サイズを設定する で説明します。
自動拡縮によって影響を受ける垂直方向の長さは
top-margin
と bottom-margin
です
(固定された垂直方向の \paper
スペース変数 を参照してください)。自動拡縮によって影響を受ける水平方向の長さは
right-margin
, inner-margin
, outer-margin
,
binding-offset
, indent
, それに short-indent
です
(水平方向の \paper
スペース変数 を参照してください)。
これらの長さに対するデフォルト値は
top-margin-default
, bottom-margin-default
等の内部変数を用いて ‘ly/paper-defaults-init.ly’ で設定されています。これらはデフォルトの紙面サイズ a4
の場合の値です。参考のために、a4
紙面での
paper-height
は 297\mm
であり、paper-width
は 210\mm
です。
参照
記譜法リファレンス:
固定された垂直方向の \paper
スペース変数,
水平方向の \paper
スペース変数
インストールされているファイル: ‘ly/paper-defaults-init.ly’, ‘scm/paper.scm’
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 紙面サイズに応じた自動拡縮 ] | [ 上へ : ページ レイアウト ] | [ 可変な垂直方向の paper スペース変数 > ] |
4.1.3 固定された垂直方向の \paper
スペース変数
Note: いくつかの \paper
変数は紙面サイズに応じて自動的に拡縮され、結果として予期せぬ振る舞いを引き起こすことがあります。紙面サイズに応じた自動拡縮 を参照してください。
(拡縮する前の) デフォルト値は ‘ly/paper-defaults-init.ly’ で定義されています。
-
paper-height
-
ページの高さ – デフォルトでは設定されていません。これは垂直方向の長さの自動拡縮は影響を与えません。
-
top-margin
-
ページの上端と印刷可能エリアの上端との間のマージン。紙面サイズが変更されると、それに応じてこの長さのデフォルト値も拡縮されます。
-
bottom-margin
-
印刷可能エリアの下端とページの下端との間のマージン。紙面サイズが変更されると、それに応じてこの長さのデフォルト値も拡縮されます。
-
ragged-bottom
-
これが真に設定されている場合、システムは自然なスペーシングを保持します。ページに縦方向にフィットするようにスペースが伸縮されません。
-
ragged-last-bottom
-
これが偽に設定されている場合、最終ページと、
\bookpart
ブロックで作られた各セクションの最終ページが、途中のページと同様に縦方向に伸縮されます。
参照
記譜法リファレンス: 紙面サイズに応じた自動拡縮
インストールされているファイル: ‘ly/paper-defaults-init.ly’
コード断片集: Spacing
既知の問題と警告
(\header
ブロックによって作成された)
タイトルはシステムとして扱われます。このため、ragged-bottom
と ragged-last-bottom
はタイトルと score の最初のシステムとの間にスペースを追加します。
明示的に定義された紙面サイズは、ユーザ定義の上または下のマージン設定を上書きします。
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 固定された垂直方向の paper スペース変数 ] | [ 上へ : ページ レイアウト ] | [ 可変な垂直方向スペース連想リストの構造 > ] |
4.1.4 可変な垂直方向の \paper
スペース変数
たいていの場合、ある要素間
(マージン、タイトル、システム、score 等の間)
の垂直方向の間隔は、状況に応じて伸びたり縮んだりするよう、可変であることが好まれます。いくつかの \paper
変数
(以下でリスト アップします) は、長さを微調整することができます。
このセクションで説明する \paper
変数は、個々のシステム内にある譜のスペースを制御しないということに注意してください。システム内のスペースは、普通は \score
ブロックや \score
ブロックの中に配置される設定を通じて、グラフィカル オブジェクトのプロパティによって制御されます。システム内部の可変な垂直方向のスペース を参照してください。
可変な垂直方向スペース連想リストの構造 | ||
可変な垂直方向の \paper スペース変数のリスト |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 可変な垂直方向の paper スペース変数 ] | [ 上へ : 可変な垂直方向の paper スペース変数 ] | [ 可変な垂直方向の paper スペース変数のリスト > ] |
可変な垂直方向スペース連想リストの構造
可変な垂直方向の \paper
スペース変数は、それぞれが 4 つの キー を保持する連想配列 (association list) です:
-
basic-distance
– 2 つの要素の 参照ポイント 間の垂直方向の間隔。単位は譜スペースです。衝突が生じない場合は、伸縮されません。(タイトルまたは最上位の) マークアップの参照ポイントは最も上の箇所です。システムの参照ポイントは、譜線を持たない (Lyrics
コンテキスト等) であっても、最も近くにあるStaffSymbol
の垂直方向の中心です。basic-distance
の値がpadding
やminimum-distance
よりも小さいと無意味になります。なぜなら、間隔がpadding
やminimum-distance
よりも小さくなることはないからです。 -
minimum-distance
– 2 つの要素の参照ポイント間で、圧縮が起こる場合に許容される最小の垂直方向の間隔。単位は譜スペースです。minimum-distance
の値がpadding
よりも小さいと無意味になります。なぜなら、間隔がpadding
よりも小さくなることはないからです。 -
padding
– 2 つの要素間の境界ボックス (または輪郭) の間に必要な、垂直方向の最小の間隔。単位は譜スペースです。 -
stretchability
– 間隔の伸び率。0 の場合、間隔は広がりません (衝突が生じない限りは)。正の値の場合、ある間隔のstretchability
値は他の間隔のstretchability
との相対関係になります。例えば、ある間隔のstretchability
値がもう一つの間隔のstretchability
の 2 倍である場合、間隔の広がり方は 2 倍になります。値は 0 以上の有限数でなければなりません。+inf.0
はprogramming_error
を引き起こし、無視されます。一方、1.0e7
はほとんど無限の広がり方となります。値が設定されなければ、デフォルト値が設定されます。間隔の 縮み 率をユーザが直接設定することはできず、(basic-distance
-minimum-distance
) であることに注意してください。
譜がページの下端まで広がらない設定の場合、間隔は以下の中の最大値となります:
-
basic-distance
, -
minimum-distance
, -
padding
+ 衝突を回避するのに必要な最小の距離
複数ページの楽譜で、最後のページの楽譜がページ下端まで広がらない場合、最後のページのスペースは前のページと同じです。
配列リストを変更する方法は、連想配列を変更する で説明します。以下の例は、連想配列を変更する 2 つの方法を提示しています。最初の宣言はキー値を個別に変更していて、2 つ目は変数全体を再定義しています:
\paper { system-system-spacing.basic-distance = #8 score-system-spacing = #'((basic-distance . 12) (minimum-distance . 6) (padding . 1) (stretchability . 12)) }
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 可変な垂直方向スペース連想リストの構造 ] | [ 上へ : 可変な垂直方向の paper スペース変数 ] | [ 水平方向の paper スペース変数 > ] |
可変な垂直方向の \paper
スペース変数のリスト
以下の変数の名前は upper-lower-spacing
という形式で、upper
要素と lower
要素との間隔です。間隔の距離は 2 つの要素の参照ポイント間です
(上記の連想配列構造の説明を参照してください)。変数名の中の ‘markup
’ は タイトル マークアップ
(bookTitleMarkup
や scoreTitleMarkup
) と
最上位のマークアップ (ファイル構造) の両方を指します。すべての間隔の距離の単位は譜スペースです。
デフォルト設定は ‘ly/paper-defaults-init.ly’ で定義しています。
-
markup-system-spacing
-
(タイトルまたは最上位の) マークアップと、その後に続くシステムとの間隔。
-
score-markup-spacing
-
score の最後のシステムと、その後に続く (タイトルまたは最上位の) マークアップとの間隔
-
score-system-spacing
-
score の最後のシステムと、その後に score の最初のシステムとの間隔 – score と score の間に (タイトルまたは最上位の) マークアップが無い場合。
-
system-system-spacing
-
同じ score の中にある 2 つのシステムの間隔。
-
markup-markup-spacing
-
2 つの (タイトルまたは最上位の) マークアップの間隔。
-
last-bottom-spacing
-
ページの最後のシステムまたは最上位のマークアップから、印刷可能エリアの下端 (つまり、ボトム マージンの上端) までの距離。
-
top-system-spacing
-
印刷可能エリアの上端 (つまり、トップ マージンの下端) から、ページの最初のシステムまでの距離 – 間に (タイトルまたは最上位の) マークアップが無い場合。
-
top-markup-spacing
-
印刷可能エリアの上端 (つまり、トップ マージンの下端) から、ページの最初の (タイトルまたは最上位の) までの距離 – 間にシステムが無い場合。
参照
記譜法リファレンス: システム内部の可変な垂直方向のスペース
インストールされているファイル: ‘ly/paper-defaults-init.ly’
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 可変な垂直方向の paper スペース変数のリスト ] | [ 上へ : ページ レイアウト ] | [ 幅とマージンの paper 変数 > ] |
4.1.5 水平方向の \paper
スペース変数
Note: いくつかの \paper
の間隔は紙面サイズに応じて自動的に拡縮され、それにより予期せぬ結果となることがあります。紙面サイズに応じた自動拡縮 を参照してください。
幅とマージンの \paper 変数 | ||
両面モードのための \paper 変数 | ||
シフトとインデントのための \paper 変数 |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 水平方向の paper スペース変数 ] | [ 上へ : 水平方向の paper スペース変数 ] | [ 両面モードのための paper 変数 > ] |
幅とマージンの \paper
変数
ここでリスト アップされていない (拡縮する前の) デフォルト値は、‘ly/paper-defaults-init.ly’ で定義されています。
-
paper-width
-
ページの幅 - デフォルトでは、値は設定されていません。
paper-width
は水平方向の自動拡縮に影響を与えませんが、line-width
変数に影響を与えます。paper-width
とline-width
の両方に値が設定された場合、left-margin
とright-margin
が更新されます。check-consistency
も参照してください。 -
line-width
-
\paper
ブロックで設定した場合、インデントされていないシステムの、譜線が利用できる横方向への長さが指定されます。設定されない場合、\paper
のline-width
は(paper-width - left-margin - right-margin)
から計算されます。\paper
のline-width
が設定されており、left-margin
とright-margin
の両方が設定されていない場合は、システムがページの中央に来るように余白が調節されます。check-consistency
も参照してください。line-width
は\layout
ブロックに設定することで、スコア毎に別の値を指定することができます。これらの値は、\score
毎の譜線の長さを設定します。\score
のline-width
が指定されていない場合、デフォルト値は\paper
のline-width
です。\score
のline-width
を設定しても、紙の余白には影響しません。\score
のline-width
で設定された譜線の長さは、\paper
のline-width
で設定された紙面領域を基にして左揃えされます。\score
と\paper
のline-width
が同じ値の場合、譜線は左余白から右余白までちょうどいっぱいに広がりますが、\score
のline-width
が\paper
のline-width
よりも大きい場合、譜線は右余白を超えて広がってしまいます。 -
left-margin
-
ページの左端とインデントされていないシステムの譜線開始点との間のマージンです。紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。
left-margin
に値が設定されず、line-width
とright-margin
の両方に値が設定された場合、left-margin
は(paper-width - line-width - right-margin)
に設定されます。line-width
だけに値が設定された場合、左右のマージンは((paper-width - line-width) / 2)
に設定され、結果としてシステムはページの中央に配置されます。check-consistency
も参照してください。 -
right-margin
-
ページの右端とページの右端まで広がる譜線終点との間のマージンです。紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。
right-margin
に値が設定されず、line-width
とleft-margin
の両方に値が設定された場合、right-margin
は(paper-width - line-width - left-margin)
に設定されます。line-width
だけに値が設定された場合、左右のマージンは((paper-width - line-width) / 2)
に設定され、結果としてシステムはページの中央に配置されます。check-consistency
も参照してください。 -
check-consistency
-
真 (デフォルトの値) にセットされた場合、
left-margin
,line-width
, それにright-margin
の和がpaper-width
にならなければ警告を表示して、left-margin
とright-margin
をデフォルト値に置き換え (必要に応じて紙面サイズに合わせて拡宿し) ます。偽にセットされた場合、不一致を無視して、システムがページの左端からはみ出すことを許可します。 -
ragged-right
-
真にセットされた場合、システムは譜線の幅いっぱいまで広がらず、本来の長さで終了します。デフォルトでは、1 つだけシステムを持つ score の場合は
#t
、複数のシステムを持つ score の場合は#f
です。この変数は\layout
ブロック内でセットされる可能性もあります。 -
ragged-last
-
真にセットされた場合、score の最後のシステムは譜線の幅いっぱいまで広がらず、本来の長さで終了します。デフォルトでは
#f
です。この変数は\layout
ブロック内でセットされる可能性もあります。
参照
記譜法リファレンス: 紙面サイズに応じた自動拡縮
インストールされているファイル: ‘ly/paper-defaults-init.ly’
既知の問題と警告
明示的に定義された紙面サイズは、ユーザ定義の左または右のマージン設定を上書きします。
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 幅とマージンの paper 変数 ] | [ 上へ : 水平方向の paper スペース変数 ] | [ シフトとインデントのための paper 変数 > ] |
両面モードのための \paper
変数
(拡縮される前の) デフォルト値は ‘ly/paper-defaults-init.ly’ で定義されています。
-
two-sided
-
真にセットされた場合、ページ番号が偶数か奇数かに応じて
inner-margin
,outer-margin
それにbinding-offset
を用いてマージンを決定します。これはleft-margin
とright-margin
を上書きします。 -
inner-margin
-
book の一部であるページすべてが見開きページの内側に持つマージンです。(左ページの場合は右側のマージン、右ページの場合は左側のマージンです。) 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。
two-sided
が真にセットされてい場合にのみ、機能します。 -
outer-margin
-
book の一部であるページすべてが見開きページの外側に持つマージンです。(左ページの場合は左側のマージン、右ページの場合は右側のマージンです。) 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。
two-sided
が真にセットされてい場合にのみ、機能します。 -
binding-offset
-
製本により何かが隠れてしまわないように
inner-margin
を増加させる量です。紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。two-sided
が真にセットされてい場合にのみ、機能します。
参照
記譜法リファレンス: 紙面サイズに応じた自動拡縮
インストールされているファイル: ‘ly/paper-defaults-init.ly’
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 両面モードのための paper 変数 ] | [ 上へ : 水平方向の paper スペース変数 ] | [ 他の paper 変数 > ] |
シフトとインデントのための \paper
変数
このにリスト アップされていない (拡縮される前の) デフォルト値は ‘ly/paper-defaults-init.ly’ で定義されています。
-
horizontal-shift
-
(タイトルとシステム セパレータを含む) すべてのシステムを右にシフトさせる量です。デフォルトでは
0.0\mm
です。 -
indent
-
score の最初のシステムに対するインデントのレベルです。紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。最初のシステムの長さは、
line-width
の値からこの設定の値だけ減らされます。\layout
ブロック内で設定された場合、\score
毎にインデントが変更されます。 -
short-indent
-
最初のシステムを除くすべてのシステムに対するインデントのレベルです。紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。最初以外のシステムの長さは、
line-width
の値からこの設定の値だけ減らされます。\layout
ブロック内で設定された場合、\score
毎にインデントが変更されます。
参照
記譜法リファレンス: 紙面サイズに応じた自動拡縮
インストールされているファイル: ‘ly/paper-defaults-init.ly’
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < シフトとインデントのための paper 変数 ] | [ 上へ : ページ レイアウト ] | [ 改行のための paper 変数 > ] |
4.1.6 他の \paper
変数
改行のための \paper 変数 | ||
改ページのための \paper 変数 | ||
ページ番号のための \paper 変数 | ||
その他の \paper 変数 |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 他の paper 変数 ] | [ 上へ : 他の paper 変数 ] | [ 改ページのための paper 変数 > ] |
改行のための \paper
変数
-
max-systems-per-page
-
1 ページに配置されるシステムの最大数です。現在、これは
ly:optimal-breaking
アルゴリズムでのみサポートされます。デフォルトでは、値は設定されていません。 -
min-systems-per-page
-
1 ページに配置されるシステムの最小数です。この値が大きすぎると、システムがページからはみ出す可能性があります。現在、これは
ly:optimal-breaking
アルゴリズムでのみサポートされます。デフォルトでは、値は設定されていません。 -
systems-per-page
-
各ページに配置すべきシステム数です。現在、これは
ly:optimal-breaking
アルゴリズムでのみサポートされます。デフォルトでは、値は設定されていません。 -
system-count
-
score で使用すべきシステム数です。デフォルトでは、値は設定されていません。この変数は
\layout
ブロック内でセットされる可能性もあります。
参照
記譜法リファレンス: 改行
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 改行のための paper 変数 ] | [ 上へ : 他の paper 変数 ] | [ ページ番号のための paper 変数 > ] |
改ページのための \paper
変数
ここでリスト アップされていないデフォルト値は ‘ly/paper-defaults-init.ly’ で定義されています。
-
page-breaking
-
改ページのアルゴリズムを指定します。選択肢は
ly:minimal-breaking
,ly:page-turn-breaking
,ly:one-page-breaking
,ly:one-line-breaking
,ly:one-line-auto-height-breaking
,ly:optimal-breaking
(デフォルト) です。 -
page-breaking-system-system-spacing
-
改ページ アルゴリズムに
system-system-spacing
を実際の値とは異なる値だと思わせるトリックです。例えば、page-breaking-system-system-spacing.padding
をsystem-system-spacing.padding
よりも非常に大きくすると、改ページ アルゴリズムは各ページに数個のシステムしか配置しません。デフォルトではセットされていません。 -
page-count
-
score で使用すべきページ数です。デフォルトでは、値は設定されていません。
次の変数は、page-breaking
が ly:page-turn-breaking
にセットされている場合にのみ有効です。この時、改ページはページめくりの数が最小になるように設定されます。ページめくりはページ番号が奇数のページから偶数のページへと移動する際に起こるため、最後のページ番号が奇数になることが通常望ましいということになります。ページをめくることが好まれる場所は、手動で \allowPageTurn
を挿入することで明示するか、Page_turn_engraver
をインクルードすることで自動的に指定されます
(最適ページめくり を参照してください)。
最適なページめくりにするための選択肢が不十分である場合には、LilyPond はスコアの途中か、(スコアが 2 つ以上ある場合には)スコアとスコアの間に空白のページを挿入したり、偶数ページでスコアを終えることがあります。これらを起こりづらくするために、次の 3 つの変数の値を増やすことができます。
値はペナルティとなります。つまり、大きな値ほど、他の選択肢に比べてその値に関連した動作が起こりづらくなるという意味です。
-
blank-page-penalty
-
楽譜の途中に空白ページが挿入されるペナルティです。
blank-page-penalty
が大きく、ly:page-turn-breaking
が選択されていた場合、LilyPond は楽譜の途中に空白ページを挿入しにくくなります。その代わりに、ページを埋めるように音楽のスペーシングが広くなります。デフォルト: 5. -
blank-last-page-penalty
-
楽譜を偶数ページで終了するペナルティです。
blank-last-page-penalty
が大きく、ly:page-turn-breaking
が選択されていた場合、LilyPond は楽譜を偶数ページで終了しにくくなります。その代わりに、1 ページ増やしたり減らしたりするようにスペーシングを調節します。デフォルト: 0. -
blank-after-score-page-penalty
-
1 つの楽譜の終わりと次の楽譜までの間に、空白ページを挿入するペナルティです。デフォルトでは、これは
blank-page-penalty
より小さくなっています。そのため、全ての楽譜の終わりに空白ページを挿入する方が、楽譜と楽譜の間に空白ページを挿入するよりも優先されます。デフォルト: 2.
参照
記譜法リファレンス: 改ページ, 最適改ページ, 最適ページめくり, 最小改ページ, 1 ページの改ページ, 1 行の改ページ, 高さが自動の 1 行の改ページ
インストールされているファイル: ‘ly/paper-defaults-init.ly’
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 改ページのための paper 変数 ] | [ 上へ : 他の paper 変数 ] | [ その他の paper 変数 > ] |
ページ番号のための \paper
変数
ここでリスト アップされていないデフォルト値は ‘ly/paper-defaults-init.ly’ で定義されています。
-
auto-first-page-number
-
改ページのアルゴリズムは、最初のページの番号が奇数であるか偶数であるかに影響されます。真にセットされた場合、改ページアルゴリズムが最初のページが奇数番号で始めるか偶数番号で始めるかを決定します。したがって、最初のページ番号はそのままになるか、1 加算されます。デフォルト:
#f
. -
first-page-number
-
最初のページのページ番号の値です。
-
print-first-page-number
-
真にセットされた場合、最初のページにページ番号が譜刻されます。
-
print-page-number
-
偽にセットされた場合、ページ番号は譜刻されません。
-
page-number-type
-
ページ番号の種類を設定します。選択肢は
roman-lower
,roman-upper
,arabic
があります。デフォルト:'arabic
.
参照
インストールされているファイル: ‘ly/paper-defaults-init.ly’
既知の問題と警告
奇数のページ番号は常に右側に配置されます。楽譜をページ 1 から始めたいのであれば、カバー ページの裏にブランク ページ配置して、ページ 1 が右側にくるようにする必要があります。
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < ページ番号のための paper 変数 ] | [ 上へ : 他の paper 変数 ] | [ 楽譜レイアウト > ] |
その他の \paper
変数
-
page-spacing-weight
-
(垂直方向の) ページ スペースと (水平方向の) 行スペースの重要度の関係です。大きな値だと、ページ スペースがより重要になります。デフォルトでは、
10
です。 -
print-all-headers
-
真にセットされている場合、出力の各
\score
のすべてのヘッダを譜刻します。通常、piece
ヘッダ変数とopus
ヘッダ変数だけが譜刻されます。デフォルトでは、#f
です。 -
system-separator-markup
-
しばしばオーケストラ譜で使用される、システム間に挿入されるマークアップ オブジェクトです。デフォルトでは、設定されていません。以下の例のように、‘ly/titling-init.ly’ で定義されている
\slashSeparator
マークアップを使用すると適当です:#(set-default-paper-size "a8") \book { \paper { system-separator-markup = \slashSeparator } \header { tagline = ##f } \score { \relative { c''1 \break c1 \break c1 } } }
-
footnote-separator-markup
-
ページの下部の脚注テキストの上に挿入されるマークアップ オブジェクトです。デフォルトでは、‘ly/paper-defaults-init.ly’ で定義されている中央揃いされた水平線です。
参照
インストールされているファイル: ‘ly/titling-init.ly’, ‘ly/paper-defaults-init.ly’
コード断片集: Spacing
既知の問題と警告
デフォルトのページ ヘッダは、ページ番号と \header
ブロックの instrument
フィールドを同一の行に配置します。
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < その他の paper 変数 ] | [ 上へ : スペースの問題 ] | [ layout ブロック > ] |
4.2 楽譜レイアウト
このセクションでは、\layout
ブロックで使用する楽譜レイアウト オプションについて説明します。
4.2.1 \layout ブロック | ||
4.2.2 譜サイズを設定する |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 楽譜レイアウト ] | [ 上へ : 楽譜レイアウト ] | [ 譜サイズを設定する > ] |
4.2.1 \layout
ブロック
\paper
ブロックがドキュメント全体のページ フォーマットに関係する設定を保持する一方で、\layout
ブロックは楽譜特有のレイアウトに関する設定を保持します。楽譜レイアウト オプションを全体に設定するには、設定を最上位の \layout
ブロックに配置します。個々の楽譜に対してレイアウト オプションを設定するには、音楽表記の後の \score
ブロック内の \layout
ブロックの中に設定を配置します。\layout
ブロックに配置される設定には以下のものがあります:
-
layout-set-staff-size
Scheme 関数、 -
\context
ブロック内のコンテキスト変更、それに - 楽譜レイアウトに影響を与える
\paper
変数
layout-set-staff-size
関数は次のセクション 譜サイズを設定する
で説明します。コンテキスト変更は コンテキストのプラグインを変更する と
コンテキストのデフォルト設定を変更する で説明します。
\paper
ブロック内のデフォルト値が用いられ、\layout
ブロック内で使用できる \paper
には以下のものがあります:
-
line-width
,ragged-right
それにragged-last
(幅とマージンの\paper
変数 を参照してください) -
indent
とshort-indent
(シフトとインデントのための\paper
変数 を参照してください) -
system-count
(改行のための\paper
変数 を参照してください)
ここで、\layout
ブロックの例を挙げます:
\layout { indent = 2\cm \context { \StaffGroup \override StaffGrouper.staff-staff-spacing.basic-distance = #8 } \context { \Voice \override TextScript.padding = #1 \override Glissando.thickness = #3 } }
最上位の表記として複数の \layout
ブロックを配置することができます。これは、例えば、異なる設定が別個のファイルに保存されていて、任意の方法でインクルードする場合に有用です。内部的には、\layout
ブロックが評価される時、カレントの
\layout
構成のコピーが作成され、評価する \layout
ブロックの内部で定義されている変更が適用され、その結果が新しいカレントの構成として保存されます。ユーザからは \layout
ブロックが組み合わされたように見えますが、衝突が発生した場合 (複数のブロックで同じプロパティが変更された場合)、最後の定義が有効になります。
例えば、下記のブロック:
\layout { \context { \Voice \override TextScript.color = #magenta \override Glissando.thickness = #1.5 } }
これが一つ前の例の後に配置された場合、TextScript
の 'padding
設定と 'color
設定は組み合わせれますが、Glissando
の
'thickness
設定は前の設定と置き換わります (前の設定を上書きします)。
\layout
ブロックを後で再利用するために変数に代入することができます。しかしながら、この方法は \layout
ブロックを直接記述した場合とは少しですが重大な違いがあります。
変数を以下のように定義した場合:
layoutVariable = \layout { \context { \Voice \override NoteHead.font-size = #4 } }
カレントの \layout
構成に NoteHead.font-size
設定を追加しますが、この組み合わせは新しいカレントの構成として保存され ません。‘カレントの構成’ は変数が定義された時に評価されるのであり、変数が使われる時に評価されるのではありません。そのため、変数の効果は変数がソースに配置された位置によって異なります。
変数を他の \layout
ブロックの中で使うことができます。例えば、以下のように:
\layout { \layoutVariable \context { \Voice \override NoteHead.color = #red } }
上記のような変数を含む \layout
ブロックは、カレントの構成をコピーせず、設定を追加するためのベースとなる構成として \layoutVariable
の内容を用います。このことは、変数が定義されてから使われるまでの間に定義された変更は失われるということを意味します。
layoutVariable
が使われる (あるいは \include
される) 直前に定義されている場合、layoutVariable
の内容はカレントの構成に変数内部で定義した設定を加えたものになります。そのため、上で示した \layoutVariable
の使用例の場合、最終的な
\layout
ブロックの構成は以下のようになります:
TextScript.padding = #1 TextScript.color = #magenta Glissando.thickness = #1.5 NoteHead.font-size = #4 NoteHead.color = #red
これに indent
と StaffGrouper
の設定がプラスしたものです。
しかしながら、変数が最初の \layout
ブロックより前に定義されていた場合、カレントの構成は以下だけになってしまいます:
NoteHead.font-size= #4 % (変数定義で記述されたものです) NoteHead.color = #red % (変数が使用された後に追加されたものです)
注意深く計画を立てれば、\layout
変数はソースのレイアウト設計を構築して、\layout
構成を既知の状態にリセットするための有用なツールになります。
参照
記譜法リファレンス: コンテキストのデフォルト設定を変更する
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < layout ブロック ] | [ 上へ : 楽譜レイアウト ] | [ 改行/改ページ > ] |
4.2.2 譜サイズを設定する
デフォルトの 譜サイズ は 20 ポイントに設定されています。これは、7.03mm の譜の高さ (1 ポイントは 100/7227 インチ、あるいは 2540/7227 mm です) に相当します。譜サイズを変更するには 3 つの方法があります:
-
譜サイズをファイルの中にあるすべての楽譜
(正確には
\book
ブロックの中にあるすべての楽譜) に設定するには、set-global-staff-size
を使用します:#(set-global-staff-size 14)
上の例では、グローバルなデフォルトの譜サイズを高さが 14pt (4.92mm) になるよう設定し、それに応じてすべてのフォントを拡縮します。
-
ブック内の 1 つのスコアの譜サイズを設定するには、スコアの
\layout
ブロックの中にlayout-set-staff-size
を配置してください:\score { … \layout { #(layout-set-staff-size 14) } }
-
システム内の 1 つの譜の譜サイズを設定するには、
\magnifyStaff
コマンドを使います。例えば、ピアノを伴う室内楽の伝統的な譜刻では、ピアノ譜が 7mm である一方で、他の譜は 3/5 から 5/7 の大きさ (60% から 71%) となります。5/7 の比率を得るには、このようにします:\score { << \new Staff \with { \magnifyStaff #5/7 } { … } \new PianoStaff { … } >> }
fontSize
に対応する大きさが分かっている場合は、次の形を使うことが できます:\score { << \new Staff \with { \magnifyStaff #(magstep -3) } { … } \new PianoStaff { … } >> }
伝統的な譜刻の見た目を模倣するには、譜線の太さを減らすのを避けると良いでしょう。
フォント サイズに対応した太さの自動設定
Emmentaler フォントは、Feta 音楽グリフのセットを 8 つの異なるサイズで含んでいます。それぞれは、異なる譜サイズ向けに調整されているものです。グリフのサイズが小さいほど、相対的に細くなる譜線に合わせてより“太く”なります。推奨されるグリフ サイズは以下の表にリスト アップされています:
フォント名 | 譜の高さ (pt) | 譜の高さ (mm) | 用途 |
feta11 | 11.22 | 3.9 | ポケット サイズの楽譜 |
feta13 | 12.60 | 4.4 | |
feta14 | 14.14 | 5.0 | |
feta16 | 15.87 | 5.6 | |
feta18 | 17.82 | 6.3 | 歌集 |
feta20 | 20 | 7.0 | 標準パート譜 |
feta23 | 22.45 | 7.9 | |
feta26 | 25.2 | 8.9 |
参照
記譜法リファレンス: 記譜フォント サイズを選択する, Emmentaler フォント
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 譜サイズを設定する ] | [ 上へ : スペースの問題 ] | [ 改行 > ] |
4.3 改行/改ページ
4.3.1 改行 | ||
4.3.2 改ページ |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 改行/改ページ ] | [ 上へ : 改行/改ページ ] | [ 改ページ > ] |
4.3.1 改行
通常、改行は自動的に決定されます。改行は、行が混み合って見えたり散漫に見えたりしないように、連続する行の密度が同じくらいになるように選択されます。
小節線が引かれる場所で手動で強制的に改行を入れるには、\break
コマンドを使用します:
\relative c'' { c4 c c c | \break c4 c c c | }
デフォルトでは、小節の‘途中’に挿入された \break
コマンドは無視されます
(そして、LilyPond ファイルをコンパイルする時に警告メッセージが出力されます)。小節の途中で強制的に改行を入れるには、不可視の小節線 – ‘\bar ""’ – を \break
コマンドの前に挿入することで、強制的に改行することができます:
\relative c'' { c4 c c \bar "" \break c | c4 c c c | }
連符が開始する小節と終了する小節が異なる場合などのように、前の小節が音符の途中で終わっている場合、前の小節の終わりに \break
を配置しても無視されます。この場合、Voice
コンテキストから Forbid_line_break_engraver
を削除し、同時進行の音楽表記を使い、2 つ目の‘ボイス’の正しい位置に
\break
を挿入してください:
音楽と並列に改行コマンドを追加する必要があるということに注意してください:
\new Voice \with { \remove Forbid_line_break_engraver } \relative { << { c''2. \tuplet 3/2 { c4 c c } c2. | } { s1 | \break s1 | } >> }
同様にデフォルトでは、連桁が小節線を跨いでいる場合も、改行は無視されます。\override Beam.breakable = ##t
コマンドで強制することができます:
\relative c'' { \override Beam.breakable = ##t c2. c8[ c | \break c8 c] c2. | }
\noBreak
コマンドは、コマンドが配置された小節線での改行を禁止します。
楽譜の中で、\autoLineBreaksOff
と \autoLineBreaksOn
の間にある音楽は、自動改行が抑止されます。同様に自動改ページも抑止させたい場合は、\autoBreaksOff
と \autoBreaksOn
コマンドを使うべきです。手動改行や改ページは、これらのコマンドによって影響されません。自動改行を抑止した際、音楽のすべてが 1 行に収まりきらない場合に右の余白を飛び出す可能性があることに注意してください。
自動改行は、小節線のところで \once \autoLineBreaksOn
を用いることで、単一の小節線に対して有効にすることができます (改ページはできません)。これは、強制改行ではなく、許可された改行を示します。
行スペースに影響を与える最も基本的な設定は indent
と
line-width
です。これらは \layout
ブロック内で設定されます。これらは音楽の最初の行のインデントと行の長さを制御します。
\layout
ブロック内で ragged-right
が真にセットされた場合、システムは、行全体に広がらずに、本来の長さで終了します。これは短い楽譜の断片を記譜する場合や、本来のスペースがどれくらい密になっているかチェックする場合に有用です。
オプション ragged-last
は ragged-right
と似ていますが、楽曲の最後の行にだけ効果を持ちます。
\layout { indent = 0\mm line-width = 150\mm ragged-last = ##t }
規則的な間隔で改行を行うには、スキップで区切られた \break
を用いて、それを \repeat
で繰り返します。例えば、以下の例は 28 小節 (4/4 拍子と仮定して) であり、4 小節ごとに改行が入ります
(それ以外の場所で改行が入ることはありません):
<< \repeat unfold 7 { s1 \noBreak s1 \noBreak s1 \noBreak s1 \break } { 実際の音楽… } >>
定義済みコマンド
\break
,
\noBreak
,
\autoBreaksOff
,
\autoBreaksOn
,
\autoLineBreaksOff
,
\autoLineBreaksOn
Selected Snippets
改行のために専用のボイスを用意する
改行や改ページの情報を音楽から分離し、\break
, \pageBreak
やその他のレイアウト情報のみを含む専用のボイスを用意した方が管理しやすい場合があります。
このパターンは、line-break-system-details
のような、NonMusicalPaperColumn
Grob の設定が長いプロパティをオーバライドする際に、特に有用です。
music = \relative c'' { c4 c c c } \score { \new Staff << \new Voice { s1 * 2 \break s1 * 3 \break s1 * 6 \break s1 * 5 \break } \new Voice { \repeat unfold 2 { \music } \repeat unfold 3 { \music } \repeat unfold 6 { \music } \repeat unfold 5 { \music } } >> }
参照
記譜法リファレンス:
改行のための \paper
変数,
\layout
ブロック
コード断片集: Spacing
内部リファレンス: LineBreakEvent
既知の問題と警告
\autoLineBreaksOff
や \autoBreaksOff
を音楽の最初に配置すると、エラー メッセージが表示されます。何らかの音楽の後に、これらのコマンドを配置するようにしてください。
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 改行 ] | [ 上へ : 改行/改ページ ] | [ 手動改ページ > ] |
4.3.2 改ページ
このセクションでは、改ページについてのいくつかの方法や、それらをどのようにカスタマイズするかを示します。
手動改ページ | ||
最適改ページ | ||
最小改ページ | ||
1 ページの改ページ | ||
1 行の改ページ | ||
高さが自動の 1 行の改ページ | ||
最適ページめくり |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 改ページ ] | [ 上へ : 改ページ ] | [ 最適改ページ > ] |
手動改ページ
デフォルトの改ページは、\pageBreak
や \noPageBreak
を挿入することによって上書きすることができます。これらのコマンドは \break
と \noBreak
に似ています。
これらのコマンドは小節線のところに挿入すべきであり、その小節線での改ページを強制/禁止します。当然のことですが、\pageBreak
は強制的に改行も行います。
\pageBreak
コマンドと \noPageBreak
コマンドは最上位レベルに挿入することができ、score や最上位レベルのマークアップの間に挿入することができます。
楽譜の中で、\autoPageBreaksOff
と \autoPageBreaksOn
の間にある音楽は、自動改ページが抑制されます。手動改ページは、これらのコマンドに影響されません。
ragged-right
や ragged-last
と類似で、垂直方向のスペースに対して同じ効果を持つ設定があります。ragged-bottom
が #t
にセットされている場合、システムはページの垂直方向全体には広がりません。ragged-last-bottom
が #t
にセットされている場合
(これがデフォルトです)、最後のページ (あるいは各 \bookpart
の最後のページ) の下部に空きスペースが挿入することが許可されます。固定された垂直方向の \paper
スペース変数 を参照してください。
改ページは page-breaking
関数によって算出されます。LilyPond は改ページを算出するためにいくつかのアルゴリズムを提供します:
ly:optimal-breaking
, ly:page-turn-breaking
, それに
ly:minimal-breaking
などです。デフォルトは ly:optimal-breaking
ですが、\paper
ブロックの中で変更することができます:
\paper { page-breaking = #ly:page-turn-breaking }
1 つのブックが多くの楽譜とページを持つ場合、改ページを処理するのに多くの処理時間とメモリが必要になり、改ページの問題を解決することが困難になる可能性があります。改ページ処理を簡単にするために、\bookpart
ブロックを用いてブックをいくつかのパートに分割します:
改ページはパートごとに別々に処理されます。異なるブック パートには、異なる改ページ関数を使用することもできます。
\bookpart { \header { subtitle = "Preface" } \paper { %% ほとんどテキストしか保持していないパートでは %% ly:minimal-breaking が適しています page-breaking = #ly:minimal-breaking } \markup { … } … } \bookpart { %% このパートは音楽を保持しているので、デフォルトの %% ly:optimal-breaking を使用します \header { subtitle = "First movement" } \score { … } … }
定義済みコマンド
\pageBreak
,
\noPageBreak
,
\autoPageBreaksOn
,
\autoPageBreaksOff
参照
記譜法リファレンス:
改行のための \paper
変数
コード断片集: Spacing
既知の問題と警告
\once
接頭辞は、\autoPageBreaksOn
や \autoPageBreaksOff
には効果がありません。自動改ページがオフになっている時に、改ページを(一時的に) 許可するためにオンにする場合、オフにする前にその後何小節かはオンになっている必要があります (具体的な小節数は楽譜に依存します)。そうしなければ、改ページの機会が失われてしまいます。
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 手動改ページ ] | [ 上へ : 改ページ ] | [ 最小改ページ > ] |
最適改ページ
ly:optimal-breaking
関数は、LilyPond が改ページを決定するためのデフォルトの手法です。
この関数は、ページの (水平方向と垂直方向の両方の) 混み合いや広がりすぎを最小にする改ページを見つけ出そうと試みます。ly:page-turn-breaking
とは異なり、この関数はページめくりについて考慮しません。
参照
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 最適改ページ ] | [ 上へ : 改ページ ] | [ 1 ページの改ページ > ] |
最小改ページ
The ly:minimal-breaking
関数は最小限の改ページを算出します:
この関数は 1 ページに可能な限り多くのシステムを配置します。そのため、多くのページを持つ楽譜
– そのような場合、他の改ページ関数では時間がかかりすぎたり、メモリ使用量が多くなりすぎたりします –
や、多くのテキストを持つ楽譜でこの関数を使用すると良いかもしれません。この関数を有効にするには以下のようにします:
\paper { page-breaking = #ly:minimal-breaking }
参照
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 最小改ページ ] | [ 上へ : 改ページ ] | [ 1 行の改ページ > ] |
1 ページの改ページ
ly:one-page-breaking
関数は特殊な目的のための改ページアルゴリズムで、ページの高さを音楽に合わせて自動的に調整し、全てが 1 ページに収まるようにします。paper ブロックの paper-height
変数は無視されますが、他の設定は通常通り反映されます。特に、最後のシステム (あるいはトップ レベルのマークアップ) とフッターの間のスペースは、paper ブロックの
last-bottom-spacing
でカスタマイズすることができます。ページの幅はデフォルトのままですが、paper ブロックの paper-width
で設定することができます。
既知の問題と警告
ly:one-page-breaking
は現在
\bookpart
と互換性がありません。
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 1 ページの改ページ ] | [ 上へ : 改ページ ] | [ 高さが自動の 1 行の改ページ > ] |
1 行の改ページ
ly:one-line-breaking
関数は特殊な目的のための改ページアルゴリズムで、楽譜をそれぞれ 1 ページに 1 行で配置します。この改ページ関数はタイトルやマージンを譜刻しません。楽譜だけを譜刻します。
ページ幅は最も長い楽譜が 1 行に納まるように調節されます。\paper
ブロックの中にある変数 paper-width
, line-width
それに indent
は無視されますが、left-margin
と
right-margin
は有効です。ページの高さは変更されません。
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 1 行の改ページ ] | [ 上へ : 改ページ ] | [ 最適ページめくり > ] |
高さが自動の 1 行の改ページ
ly:one-line-auto-height-breaking
関数は、ly:one-line-breaking
とほとんど同様に動作しますが、ページの高さが自動的に音楽に合わせて自動的に変更されるところが異なります。具体的には、\paper
ブロックの paper-height
変数が、楽譜の最大の高さ + top-margin
+ bottom-margin
に渡るようにセットされます。
top-system-spacing
設定が、音楽の縦方向の位置に影響することに注意してください。paper ブロックでこれを ##f
にセットすることで、単純に音楽を上部マージンと下部マージンの間に配置することができます。
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 高さが自動の 1 行の改ページ ] | [ 上へ : 改ページ ] | [ 垂直方向のスペース > ] |
最適ページめくり
しばしば、2 枚目のページ (横書きの本を開いたときの右側のページ) の終わりに休符を置くための改ページ構成が必要になります。こうすることで、演奏者は音符を見失うことなくページをめくることができます。ly:page-turn-breaking
関数はページの混み合いや広がりすぎを最小にする改ページを見つけ出そうと試みますが、ページめくりを特定の場所だけに置くための制約を受けます。
この改ページ関数を使うには、2 つのステップがあります。最初に、改ページ で説明されているように、\paper
ブロックの中でこの関数を有効にする必要があります。次に、この関数に改ページを許可したい場所を教える必要があります。
2 番目のステップを達成するには、2 つの方法があります。1 つ目の方法では、入力ファイルの適当な場所に \allowPageTurn
を挿入することによって、ページめくりの許可を手動で指定します。
この方法では手間がかかりすぎる場合は、Page_turn_engraver
を
Staff
あるいは Voice
コンテキストに追加します。Page_turn_engraver
はコンテキストをスキャンして音符の無いセクションを探します
(休符を探すわけではなく、音符の無い部分を探すということに注意してください。単一譜の多声で、ボイスの 1 つが休符を持つ場合に、Page_turn_engraver
に渡されないようにするためです。)
Page_turn_engraver
は音符を持たない十分に長いセクションを見つけると、‘特殊な’ 小節線 (2 重小節線など) がないかぎりは、そのセクションの最後の小節線のところに \allowPageTurn
を挿入します。‘特殊な’ 小節線がある場合には、\allowPageTurn
がそのセクションの最後にあるそのような小節線のところに挿入されます。
Page_turn_engraver
はコンテキスト プロパティ minimumPageTurnLength
を読み込んで、どれくらい音符が無いセクションが続いたらページめくりを考慮するかを決定します。minimumPageTurnLength
のデフォルト値は
(ly:make-moment 1/1)
です。ページめくりを不可にしたいのならば、minimumPageTurnLength
に非常に大きな値をセットします。
\new Staff \with { \consists Page_turn_engraver } { a4 b c d | R1 | % ここでページめくりが許可されます a4 b c d | \set Staff.minimumPageTurnLength = #(ly:make-moment 5/2) R1 | % ここではページめくりは許可されません a4 b r2 | R1*2 | % ここでページめくりが許可されます a1 }
Page_turn_engraver
は volta 繰り返しを検出します。繰り返しの開始と終わりにページめくりを行うのに十分な時間がある場合にのみ、その繰り返しの最中でのページめくりが許可されます。繰り返しが非常に短い場合、Page_turn_engraver
はページめくりを不可にする可能性があります。コンテキスト プロパティ minimumRepeatLengthForPageTurn
に値を設定した場合、その値よりも長い演奏時間を持つ繰り返しに対してのみ、Page_turn_engraver
は繰り返しの最中でページめくりを許可します。
ページめくりコマンド \pageTurn
, \noPageTurn
それに \allowPageTurn
は、最上位レベル、最上位のマークアップや score どうしの間で使用される可能性もあります。
定義済みコマンド
\pageTurn
,
\noPageTurn
,
\allowPageTurn
参照
記譜法リファレンス:
改行のための \paper
変数
コード断片集: Spacing
既知の問題と警告
score の中に配置する Page_turn_engraver
は 1 つだけにするべきです。複数の Page_turn_engraver
がある場合、互いに干渉し合います。
参照
記譜法リファレンス: 垂直方向のスペース
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 最適ページめくり ] | [ 上へ : スペースの問題 ] | [ システム内部の可変な垂直方向のスペース > ] |
4.4 垂直方向のスペース
垂直方向のスペースは 3 つの要素によって制御されます: 利用可能なスペースの量 (つまり、紙面サイズとマージン)、システムの間隔、それにシステム内部での譜の間隔です。
4.4.1 システム内部の可変な垂直方向のスペース | ||
4.4.2 譜とシステムを明示的に配置する | ||
4.4.3 垂直方向の衝突回避 |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 垂直方向のスペース ] | [ 上へ : 垂直方向のスペース ] | [ システム内部のスペース プロパティ > ] |
4.4.1 システム内部の可変な垂直方向のスペース
システム内部の可変な垂直方向のスペースを制御する 3 つの仕組みがあり、以下のカテゴリに分けられます:
- グループ化されていない譜,
-
グループ化されている譜
(
ChoirStaff
等のような譜グループ内の譜) -
譜ではない行
(
Lyrics
,ChordNames
等)
システムの高さは 2 つのステップで決定されます。最初に、すべての譜が利用可能なスペースの量に応じた間隔で配置されます。次に、譜ではない行が譜の間に配置されます。
このセクションでは、システム内部の譜と譜ではない行の垂直方向のスペースを制御する仕組みだけを説明しているということに注意してください。システム、score、マークアップ、それにマージン間の垂直方向のスペースは、\paper
変数によって制御されます
– 可変な垂直方向の \paper
スペース変数 で説明しています。
システム内部のスペース プロパティ | ||
グループ化されていない譜のスペース | ||
グループ化されている譜のスペース | ||
譜ではない行のスペース |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < システム内部の可変な垂直方向のスペース ] | [ 上へ : システム内部の可変な垂直方向のスペース ] | [ グループ化されていない譜のスペース > ] |
システム内部のスペース プロパティ
システム内部の垂直方向のスペースは、2 セットのグラフィカル オブジェクト
プロパティによって制御されます。1 つ目は VerticalAxisGroup
グラフィカル オブジェクト
– これは、譜と譜ではない行によって作成されます –
のプロパティ セットです。2 つ目は StaffGrouper
グラフィカル オブジェクト
– これは、明示的に呼び出された場合に、譜グループによって作成されます –
のプロパティ セットです。これらのプロパティは、このセクションの終わりで説明します。
これらのプロパティの名前は (staff-affinity
を除いて)、item1-item2-spacing
という形式に従います
– ここで、item1
と item2
は、スペースを入れられる要素です。item2
は必ずしも item1
の下にある要素ではないということに注意してください。例えば、staff-affinity
が UP
である場合、nonstaff-relatedstaff-spacing
は譜ではない行から上向きにスペースをとります。
スペースは、2 つの要素の 参照ポイント 間の距離です。譜の参照ポイントは、その譜の StaffSymbol
(すなわち、line-count
が奇数の場合は中央の譜線で、line-count
が偶数の場合は中央のスペースです)
の垂直方向の中央です。譜ではない行の参照ポイントは、以下の表のようになります:
譜ではない行 | 参照ポイント |
---|---|
ChordNames | ベースライン |
NoteNames | ベースライン |
Lyrics | ベースライン |
Dynamics | 垂直方向の中央 |
FiguredBass | 最も上のポイント |
FretBoards | トップ ライン |
以下の画像では、水平方向の線が参照ポイントの位置を示しています:
垂直方向のスペースのグラフィカル オブジェクト プロパティは
(staff-affinity
を除いて)、可変な垂直方向の \paper
スペース変数 で説明した
\paper
スペース変数と同じ連想配列構造を使用します。
連想配列を変更する方法は、連想配列を変更する で説明します。グラフィカル オブジェクト プロパティの調節は、\score
ブロックか \layout
ブロックの内部で、\override
を用いて行う必要があります。
以下の例は、連想配列を変更する 2 つの方法を示しています。最初の宣言は 1 つのキー値を個別に更新して、2 番目の宣言はプロパティ全体を再定義しています:
\new Staff \with { \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10 } { … } \new Staff \with { \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 10) (minimum-distance . 9) (padding . 1) (stretchability . 10)) } { … }
スペース設定をグローバルに変更するには、そのスペース設定を \layout
ブロックの中に配置します:
\layout { \context { \Staff \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10 } }
垂直方向スペースのグラフィカル オブジェクト プロパティの標準設定は VerticalAxisGroup と StaffGrouper でリスト アップしています。特定のタイプの譜ではない行のデフォルト設定は、 Contexts の中にある関連するコンテキストの説明でリスト アップしています。
VerticalAxisGroup
グラフィカル オブジェクトのプロパティ
通常、VerticalAxisGroup
プロパティは、Staff
レベル (あるいはそれと同等のレベル) で、\override
を用いて調節します。
-
staff-staff-spacing
-
カレントの譜とそのすぐ下の譜の間隔 – その間に 1 つ以上の譜ではない行 (
Lyrics
等) が配置されている場合であっても – を決定するために使用します。システムの最下段の譜には適用されません。VerticalAxisGroup
のstaff-staff-spacing
は、譜がグループの一部である場合はStaffGrouper
のstaff-staff-spacing
プロパティを適用し、グループではない譜の場合はその譜のdefault-staff-staff-spacing
を適用する Scheme 関数です。これにより、グループ化されている譜に異なる間隔を入れることが可能です。グループ化されていることとは無関係に同一の間隔を入れるには、上で示したプロパティ再定義を用いて、この関数を可変スペースの連想配列で置き換えます。 -
default-staff-staff-spacing
グループ化されていない譜で使用される
staff-staff-spacing
を定義している可変スペースの連想配列です。staff-staff-spacing
は\override
を用いて上書きされることがあります。-
staff-affinity
カレントの譜ではない行にスペースを入れるために使用する譜の方向です。選択肢は
UP
,DOWN
, それにCENTER
です。CENTER
の場合、衝突や他のスペース上の制約によって妨げられない限り、譜ではない行は上下にある近くの譜から等距離になるよう配置されます。隣接する譜ではない行のstaff-affinity
は、方向が下から上へと増加しないようにする必要があります。例えば、DOWN
に設定された譜ではない行のすぐ後にUP
に設定された譜ではない行を置くべきではありません。システムの最上段にある譜ではない行はDOWN
であるべきで、システムの最下段にある譜ではない行はUP
であるべきです。譜ではない行のstaff-affinity
を#f
に設定すると、その行は譜として扱われます。譜に対してUP
,CENTER
, あるいはDOWN
のstaff-affinity
を設定すると、その譜は譜ではない行として扱われます。-
nonstaff-relatedstaff-spacing
カレントの譜ではない行と
staff-affinity
の方向にある最も近い譜との間隔です – 2 つの間に譜ではない行が無く、staff-affinity
がUP
とDOWN
のどちらかである場合です。staff-affinity
がCENTER
である場合、nonstaff-relatedstaff-spacing
は最も近くにある 上下両サイド の譜の間隔になります – たとえ、カレントの譜ではない行と上下どちらかの譜の間に、他の譜ではない行があったとしてもです。このことは、譜ではない行の配置は、上下にある譜と譜ではない行の両方に依存するということを意味します。このスペースのstretchability
に小さな値を設定すると、そのとおりのスペースになりやすくなります。このスペースのstretchability
に大きな値を設定すると、そのとおりのスペースになりにくくなります。-
nonstaff-nonstaff-spacing
カレントの譜ではない行と
staff-affinity
の方向にある次の譜ではない行の間隔です – 2 つの間に譜が無く、staff-affinity
がUP
とDOWN
のどちらかである場合です。-
nonstaff-unrelatedstaff-spacing
カレントの譜ではない行と
staff-affinity
とは反対方向にある譜の間隔です – 2 つの間に他の譜ではない行が無く、staff-affinity
がUP
とDOWN
のどちらかである場合です。これは、例えば、Lyrics
行とLyrics
が属していない譜との間のパディングを最小にする必要がある場合に使用される可能性があります。
StaffGrouper
グラフィカル オブジェクトのプロパティ
通常、StaffGrouper
プロパティは、StaffGroup
レベル (あるいはそれと同等のレベル) で、\override
を用いて調節します。
-
staff-staff-spacing
カレントの譜グループ内部にある隣接する譜の間隔です。個々の譜の
VerticalAxisGroup
グラフィカル オブジェクトのstaff-staff-spacing
プロパティは、譜毎のスペース設定で上書きされる可能性があります。-
staffgroup-staff-spacing
カレントの譜グループの最後の譜と、同じシステム内にあるすぐ下の譜の間隔です – 2 つの譜の間に 1 つ以上の譜ではない行 (
Lyrics
等) が存在する場合であってもです。システムの最下段の譜には適用されません。個々の譜のVerticalAxisGroup
グラフィカル オブジェクトのstaff-staff-spacing
プロパティは、譜毎のスペース設定で上書きされる可能性があります。
参照
記譜法リファレンス:
可変な垂直方向の \paper
スペース変数,
連想配列を変更する
インストールされているファイル: ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’
内部リファレンス: Contexts, VerticalAxisGroup, StaffGrouper
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < システム内部のスペース プロパティ ] | [ 上へ : システム内部の可変な垂直方向のスペース ] | [ グループ化されている譜のスペース > ] |
グループ化されていない譜のスペース
譜 (Staff
, DrumStaff
, TabStaff
等) は、1 つ以上のボイス コンテキストを保持することができ、他の譜を保持することはできないコンテキストです。
以下のプロパティは、グループ化されていない 譜のスペースに影響を与えます:
-
VerticalAxisGroup
プロパティ:-
default-staff-staff-spacing
-
staff-staff-spacing
-
これらのグラフィカル オブジェクト プロパティは、それぞれ上で説明しています。システム内部のスペース プロパティ を参照してください。
譜グループの一部である譜には、他にもプロパティがあります。グループ化されている譜のスペース を参照してください。
以下の例は、default-staff-staff-spacing
プロパティがどのようにグループ化されていない譜のスペースに影響を与えるかを示しています。staff-staff-spacing
に同じ上書きを適用すると同じ効果を持ちますが、譜がグループ化されている場合にも適用されます。
\layout { \context { \Staff \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 8) (minimum-distance . 7) (padding . 1)) } } << % 非常に低い位置にある音符は 'basic-distance が提供するよりも % 大きなスペースを必要とするため、この譜と次の譜の間隔は 'padding % によって決定されます。 \new Staff { b,2 r | } % ここでは、'basic-distance が十分なスペースを提供していて、 % ページ上にある他の要素のスペースを確保するためにスペースを % ('minimum-distance の値に向かって) 縮める必要はありません。 % そのため、この譜と次の譜の間隔は 'basic-distance によって % 決定されます。 \new Staff { \clef bass g2 r | } % 'padding に負の値を設定することにより、譜を重ねることができます。 % 'basic-distance が取り得る最小の値は 0 です。 \new Staff \with { \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 3.5) (padding . -10)) } { \clef bass g2 r | } \new Staff { \clef bass g2 r | } >>
参照
インストールされているファイル: ‘scm/define-grobs.scm’
コード断片集: Spacing
内部リファレンス: VerticalAxisGroup
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < グループ化されていない譜のスペース ] | [ 上へ : システム内部の可変な垂直方向のスペース ] | [ 譜ではない行のスペース > ] |
グループ化されている譜のスペース
オーケストラ譜や他の大きな楽譜では、譜を譜ループ化することが一般的です。通常、グループ間のスペースは、同じグループの譜の間のスペースよりも大きくなります。
譜グループ (StaffGroup
, ChoirStaff
等) は、同時進行する 1 つ以上の譜を保持することができるコンテキストです。
以下のプロパティは、譜グループの中にある譜のスペースに影響を与えます:
-
VerticalAxisGroup
プロパティ:-
staff-staff-spacing
-
-
StaffGrouper
プロパティ:-
staff-staff-spacing
-
staffgroup-staff-spacing
-
これらのグラフィカル オブジェクト プロパティは、上で個々に説明しています。システム内部のスペース プロパティ を参照してください。
以下の例は、StaffGrouper
グラフィカル オブジェクトのプロパティがどのようにグループ化された譜のスペースに影響を与えるかを示しています:
\layout { \context { \Score \override StaffGrouper.staff-staff-spacing.padding = #0 \override StaffGrouper.staff-staff-spacing.basic-distance = #1 } } << \new PianoStaff \with { \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20 } << \new Staff { c'1 } \new Staff { c'1 } >> \new StaffGroup << \new Staff { c'1 } \new Staff { c'1 } >> >>
参照
インストールされているファイル: ‘scm/define-grobs.scm’
コード断片集: Spacing
内部リファレンス: VerticalAxisGroup, StaffGrouper
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < グループ化されている譜のスペース ] | [ 上へ : システム内部の可変な垂直方向のスペース ] | [ 譜とシステムを明示的に配置する > ] |
譜ではない行のスペース
譜ではない行 (Lyrics
, ChordNames
等) は、それが保持するレイアウト オブジェクトが譜のように譜刻される
(すなわち、システム内部の水平線上での譜刻) コンテキストです。具体的に言うと、譜ではない行は
Axis_group_engraver を含む譜ではないコンテキストです。
以下のプロパティが、譜ではない行のスペースに影響を与えいます:
-
VerticalAxisGroup
プロパティ:-
staff-affinity
-
nonstaff-relatedstaff-spacing
-
nonstaff-nonstaff-spacing
-
nonstaff-unrelatedstaff-spacing
-
これらのグラフィカル オブジェクト プロパティは、上で個々に説明しています。システム内部のスペース プロパティ を参照してください。
以下の例は、nonstaff-nonstaff-spacing
プロパティがどのように隣接する譜ではない行のスペースに影響を与えるかを示しています。ここでは、stretchability
キーに非常に大きな値を設定することにより、通常よりも歌詞が広がりやすくしています:
\layout { \context { \Lyrics \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000 } } \new StaffGroup << \new Staff \with { \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30)) } { c'1 } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #UP } \lyricmode { up } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #CENTER } \lyricmode { center } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #DOWN } \lyricmode { down } \new Staff { c'1 } >>
参照
インストールされているファイル: ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’
コード断片集: Spacing
内部リファレンス: Contexts, VerticalAxisGroup
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 譜ではない行のスペース ] | [ 上へ : 垂直方向のスペース ] | [ 垂直方向の衝突回避 > ] |
4.4.2 譜とシステムを明示的に配置する
上で説明した可変な垂直方向のスペースの仕組みを理解する方法の 1 つに、譜とシステムの間の垂直方向のパティングの大きさを制御する設定をコレクションすることがあります。
NonMusicalPaperColumn.line-break-system-details
を用いて、垂直方向のスペースに別の方法でアプローチすることができます。可変な垂直方向のスペースの仕組みが垂直方向のパディングを指定するのに対して、NonMusicalPaperColumn.line-break-system-details
はページ上の垂直方向の位置を指定することができます。
NonMusicalPaperColumn.line-break-system-details
は
4 つの設定からなる連想配列を受け取ります:
-
X-offset
-
Y-offset
-
extra-offset
-
alignment-distances
以下の NonMusicalPaperColumn
に対する上書きを含む、グラフィカル オブジェクトの上書きは、入力ファイルの中の 3 つの場所に配置することができます:
- 音符入力の途中に直接配置する
-
\context
ブロックの中に配置する -
\with
ブロックの中に配置する
NonMusicalPaperColumn
を上書きする場合、通常は \context
ブロックや \with
ブロックの中で\override
コマンドを使用します。一方、音符入力の途中で NonMusicalPaperColumn
を上書きする場合、特殊なコマンド \overrideProperty
を使用します。ここで、特殊なコマンド \overrideProperty
で
NonMusicalPaperColumn
を上書きする例をいくつか挙げます:
\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)) \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40)) \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20) (Y-offset . 40)) \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15))) \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20) (Y-offset . 40) (alignment-distances . (15)))
これらの異なる設定がそれぞれどのように機能するのかを理解するために、まったく上書きを含まない例を見ることから始めます。
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { s1*5 \break s1*5 \break s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
この楽譜は改行/改ページ情報を専用のボイスに孤立させています。この改行/改ページ用のボイスを作成するテクニックは、例がより複雑になっていくときに、レイアウトと音楽入力を分離することを助けてくれます。改行/改ページ を参照してください。
明示的な \breaks
を使うことで、音楽を 1 行あたり 5 小節に分割しています。垂直方向のスペースは LilyPond のデフォルトですが、各システムの垂直方向の開始位置が、NonMusicalPaperColumn
グラフィカル オブジェクトの
line-break-system-details
属性の中にある
Y-offset
により明示的にセットされています。
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40)) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
line-break-system-details
は潜在的に多くの値を持つ連想リストをとりますが、ここでは値を 1 つだけしかセットしていないということに注意してください。また、ここでは Y-offset
プロパティは、各システムがページに描画される垂直方向の位置を決定しているということにも注意してください。
Y-offset
や X-offset
を用いて絶対位置を指定することができる一方、line-break-system-details
の extra-offset
プロパティを用いて、相対位置を指定することもできます。この時、位置はデフォルトあるいは
X-offset
と Y-offset
によって絶対的に指定された位置からの相対的なものになります。extra-offset
は、X 軸、Y 軸のオフセットからなる ペア
を受け入れます。
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((extra-offset . (0 . 10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((extra-offset . (0 . 10))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
これまでに各システムの垂直方向の開始位置を明示的に設定しましたが、各システム内部の各譜の垂直方向の開始位置を手動で設定することも可能です。line-break-system-details
のサブプロパティ alignment-offsets
を用います。
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20) (alignment-distances . (10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60) (alignment-distances . (15))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 85) (alignment-distances . (20))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
ここでは NonMusicalPaperColumn
グラフィカル オブジェクトのline-break-system-details
属性に 2 つの値を代入しているということに注意してください。line-break-system-details
属性の連想配列はもっと多くのスペース パラメータ
(例えば、Y-offset
ペアに相当する X-offset
ペア)
を受け付けますが、システムと譜の垂直方向の開始地点を制御するのに必要な設定は、Y-offset
ペアと alignment-offsets
ペアだけです。
最後に、alignment-offsets
は譜の垂直方向の位置を指定するのであり、譜グループの位置を指定するわけではないということに注意してください。
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0) (alignment-distances . (30 10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60) (alignment-distances . (10 10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100) (alignment-distances . (10 30))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new StaffGroup << \new Staff { \repeat unfold 15 { d'4 d' d' d' } } \new Staff { \repeat unfold 15 { e'4 e' e' e' } } >> >> } }
考慮すべき点がいくつかあります:
-
alignment-offsets
を使用する場合、歌詞と他の譜ではない行は譜としてカウントされません。 -
X-offset
,Y-offset
,extra-offset
,alignment-offsets
に渡される数の単位は、譜線間隔の倍数と解釈されます。正の値は譜と歌詞を下または右に移動させ、負の値は譜と歌詞を上または左に移動させます。 - ここで扱った
NonMusicalPaperColumn.line-break-system-details
設定は譜とシステムを任意の場所に配置することを可能にするため、紙面領域やマージン領域を犯したり、他の譜やシステムの上に譜刻する可能性さえあります。これらの設定に適切な値を渡すことで、そのようなことは避けられます。
参照
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 譜とシステムを明示的に配置する ] | [ 上へ : 垂直方向のスペース ] | [ 水平方向のスペース > ] |
4.4.3 垂直方向の衝突回避
直観的に、音楽記譜には譜に属するオブジェクトと、譜の外側に配置されるべきオブジェクトがあります。譜の外側に属するオブジェクトには、リハーサル記号、テキスト、それに強弱記号などがあります (これからは、それらを譜外部オブジェクトと呼びます)。LilyPond が譜外部オブジェクトの垂直方向の配置を決定するとき、譜外部オブジェクトをできる限り譜の近くに、しかしながら、他のオブジェクトと衝突しない程度の近さに配置します。
LilyPond は outside-staff-priority
プロパティを用いてあるグラフィカル オブジェクトが譜外部オブジェクトかどうかを決定します:
outside-staff-priority
が数であれば、そのグラフィカル オブジェクトは譜外部オブジェクトです。さらに、outside-staff-priority
は LilyPond に、そのグラフィカル オブジェクトを配置する順番を教えてくれます。
まず最初にに、LilyPond は譜外部オブジェクトには属さないオブジェクトをすべて配置します。次に、譜外部オブジェクトを outside-staff-priority
に従って
(昇順に) ソートします。LilyPond は譜外部オブジェクトを、既に配置済みのオブジェクトと衝突しないよう、一つずつ配置していきます。つまり、2 つの譜外部オブジェクトが同じスペースをめぐって競合する場合、より小さな outside-staff-priority
を持つオブジェクトが譜の近くに配置されます。
\relative c'' { c4_"Text"\pp r2. \once \override TextScript.outside-staff-priority = #1 c4_"Text"\pp % ここでは、テキストが譜の近くに配置されます r2. % outside-staff-priority に数ではない値を設定することにより、 % 自動衝突回避を無効にします \once \override TextScript.outside-staff-priority = ##f \once \override DynamicLineSpanner.outside-staff-priority = ##f c4_"Text"\pp % ここでは、2 つのオブジェクトが衝突します }
譜外部オブジェクト周りの垂直方向のパディングは、
outside-staff-padding
でコントロールできます。
\relative { \once \override TextScript.outside-staff-padding = #0 a'4-"outside-staff-padding = #0" \once \override TextScript.outside-staff-padding = #3 d-"outside-staff-padding = #3" c-"default outside-staff-padding" b-"default outside-staff-padding" R1 }
デフォルトでは、譜外部オブジェクトの配置は、配置済みのグラフィカル オブジェクトとの水平方向の衝突を回避するように配置されます。このことは、オブジェクト同士が水平方向に近く配置される状況を招く可能性があります。下の例にあるように、outside-staff-horizontal-padding
をセットすることで、必要な水平方向のスペースを増やしています。また、この例では、テキストが加線に近づきすぎないように上方向に移動しています。
\relative { c''4^"Word" c c''2 R1 \once \override TextScript.outside-staff-horizontal-padding = #1 c,,4^"Word" c c''2 }
参照
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 垂直方向の衝突回避 ] | [ 上へ : スペースの問題 ] | [ 水平方向のスペースの概要 > ] |
4.5 水平方向のスペース
4.5.1 水平方向のスペースの概要 | ||
4.5.2 新しいスペース セクション | ||
4.5.3 水平方向のスペースを変更する | ||
4.5.4 行の幅 | ||
4.5.5 プロポーショナル ノーテーション |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 水平方向のスペース ] | [ 上へ : 水平方向のスペース ] | [ 新しいスペース セクション > ] |
4.5.1 水平方向のスペースの概要
スペース エンジンは異なる演奏時間を異なる長さの可変距離 (‘スプリング’) に翻訳します。長い演奏時間はより多くのスペースをとり、短い演奏時間はより少ないスペースをとります。最短の演奏時間は固定量のスペース
(これは
SpacingSpanner オブジェクトの中にある
shortest-duration-space
によって制御されます)
をとります。演奏時間が長くなるほど、より多くのスペースをとります:
演奏時間が倍になると、
spacing-increment
分のスペースがその音符に付け加えられます。
例えば、以下の楽曲には多くの 2 分音符、4 分音符、それに 8 分音符が含まれています。 8 分音符の後には符頭幅 (NHW) 1 つ分が挿入されます。4 分音符の後には 2 NHW が挿入され、2 分音符の後には 3 NHW が挿入されます。
\relative c' { c2 c4. c8 c4. c8 c4. c8 c8 c c4 c c }
通常、spacing-increment
は 1.2 譜スペースに設定されています。これは符頭の幅とだいたい同じです。さらに、shortest-duration-space
は 2.0 に設定されています。つまり、最短の音符は 2.4 譜スペース (spacing-increment
の 2 倍) の水平方向のスペースをとります。このスペースはシンボルの左端からカウントされます。そのため、最短の音符の後には一般に 1 NHW のスペースが挿入されます。
上記の手順に正確に従った場合、8 分音符や 16 分音符を含む楽譜に 32 分音符を 1 つ付け加えると、楽譜全体が大きく引き伸ばされます。最短の音符はもはや 16 分音符ではなく、32 分音符であり、それぞれの 16 分音符に 1 NHW が付け加えられます。このことを防ぐため、スペースをとるための最短の演奏時間を、その楽譜の中にある最短の音符ではなく、最も頻繁に出現する音符とします。
最も共通する最短演奏時間は以下のように決定されます: 各小節において、最短の演奏時間が決定されます。スペースの基本として、最も共通する最短演奏時間が選択されます。条件として、この最短演奏時間は常に 8 分音符以上の長さになります。
この演奏時間はカスタマイズすることもできます。
SpacingSpanner の中にある common-shortest-duration
を設定した場合、スペースのための基本演奏時間が設定されれます。この基本演奏時間の最大値 (通常、8 分音符) は、base-shortest-duration
によって設定されます。
共通の最短音符よりも短い音符の後には、その音符の演奏時間と共通の最短音符の演奏時間の比を反映したスペースが付けられます。そのため、上記の例に 16 分音符を数個付け加えた場合、16 分音符の後には NHW の半分の幅のスペースが付けられます:
\relative { c''2 c4. c8 | c4. c16[ c] c4. c8 | c8 c c4 c c }
Essay on automated music engraving で説明したように、符幹の向きはスペーシングに影響し
(
Optical spacing を参照してください)、またそれは (
Voice コンテキスト毎に生成される)
NoteSpacing オブジェクトの stem-spacing-correction
プロパティで調整することができます。
StaffSpacing
オブジェクト (
Staff コンテキストで生成されます) は、符幹や小節線のスペーシングと同じプロパティを持ちます。
次の例ではそのことを示しています。前者はデフォルトの設定で、後者は修正を誇張しています:
プロポーショナル ノーテーション (proportional notation) がサポートされます。プロポーショナル ノーテーション を参照してください。
参照
Essay on automated music engraving: Optical spacing
コード断片集: Spacing
内部リファレンス: SpacingSpanner, NoteSpacing, StaffSpacing, NonMusicalPaperColumn
既知の問題と警告
スペースを手動で上書きするための、手軽な仕組みはありません。余分なスペースを楽譜に挿入するために、以下の手段があります – 必要に応じて、パディングの値を調整しています。
\override Score.NonMusicalPaperColumn.padding = #10
スペースを減らすための手段はありません。
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 水平方向のスペースの概要 ] | [ 上へ : 水平方向のスペース ] | [ 水平方向のスペースを変更する > ] |
4.5.2 新しいスペース セクション
newSpacingSection
コマンドで、異なるスペーシング設定を持った新たなセクションを始めることができます。これは、音符の‘長い’/‘短い’について観念が異なるセクションがある場合に有用です。\newSpacingSection
コマンドは、その時点に新しい
SpacingSpanner
を作り出します。
次の例では、拍子記号が変化したところで新たなセクションを作り出しています。そして、16 分音符の間隔が自動的に少し広がっています。
\relative c' { \time 2/4 c4 c8 c c8 c c4 c16[ c c8] c4 \newSpacingSection \time 4/16 c16[ c c8] }
自動的なスペース調整が要求に合わない場合は、手動で \override
を
SpacingSpanner
のプロパティに適用することができます。これらは、\newSpacingSection
コマンドそのものと同じ音楽タイミングで適用される必要があり、それに続く音楽から新たなスペース セクションでプロパティが変更されるまでの間のスペースに影響します。例を示します:
\relative c' { \time 4/16 c16[ c c8] \newSpacingSection \override Score.SpacingSpanner.spacing-increment = #2 c16[ c c8] \newSpacingSection \revert Score.SpacingSpanner.spacing-increment c16[ c c8] }
参照
コード断片集: Spacing
内部リファレンス: SpacingSpanner
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 新しいスペース セクション ] | [ 上へ : 水平方向のスペース ] | [ 連符を均等に割り付ける > ] |
4.5.3 水平方向のスペースを変更する
連符を均等に割り付ける | ||
厳密な音符のスペーシング |
水平方向のスペースを、base-shortest-duration
で変更することができます。ここで、同じ音楽を比較します。1 つではこのプロパティを変更せず、もう 1 つでは変更します。ly:make-moment
の値が大きくなると、楽譜は小さくなります。ly:make-moment
は演奏時間を構成するため、1/4
は 1/16
よりも長い演奏時間であるということに注意してください。
\score { \relative { g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 | g4 e e2 | f4 d d2 | c4 e g g | c,1 | d4 d d d | d4 e f2 | e4 e e e | e4 f g2 | g4 e e2 | f4 d d2 | c4 e g g | c,1 | } }
\score { \relative { g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 | g4 e e2 | f4 d d2 | c4 e g g | c,1 | d4 d d d | d4 e f2 | e4 e e e | e4 f g2 | g4 e e2 | f4 d d2 | c4 e g g | c,1 | } \layout { \context { \Score \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16) } } }
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 水平方向のスペースを変更する ] | [ 上へ : 水平方向のスペースを変更する ] | [ 厳密な音符のスペーシング > ] |
連符を均等に割り付ける
デフォルトでは、連符のスペースは演奏時間とは関係の無い要素
(臨時記号、音部記号の変化など)
に依存します。そのような記号を無視して、同じ演奏時間に等しいスペースを割り当てるには、Score.SpacingSpanner.uniform-stretching
を使用します。このプロパティは、楽譜の先頭でのみ、変更することができます。
\score { << \new Staff \relative c' { \tuplet 5/4 { c8 c c c c } c8 c c c } \new Staff \relative c' { c8 c c c \tuplet 5/4 { c8 c c c c } } >> \layout { \context { \Score \override SpacingSpanner.uniform-stretching = ##t } } }
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 連符を均等に割り付ける ] | [ 上へ : 水平方向のスペースを変更する ] | [ 行の幅 > ] |
厳密な音符のスペーシング
strict-note-spacing
がセットされている場合、音部記号、小節線、それに装飾小音符を考慮せずに、音符にスペースが割り当てられます。
\override Score.SpacingSpanner.strict-note-spacing = ##t \new Staff \relative { c''8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c] }
参照
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 厳密な音符のスペーシング ] | [ 上へ : 水平方向のスペース ] | [ プロポーショナル ノーテーション > ] |
4.5.4 行の幅
スペースに影響を与える最も基本的な設定は、indent
と line-width
です。これらは \layout
ブロックの中で設定されます。これらの設定は、楽譜の最初の行のインデントと、行の長さを制御します。
\layout
ブロックの中で ragged-right
が真にセットされている場合、システムは行全体を埋めるように水平方向に引き伸ばされず、本来の長さで終了します。これは、小さな楽譜の場合や、本来のスペースがどれくらいの密度なのかをチェックする場合に有用です。通常のデフォルト設定は偽ですが、1 つしかシステムを持たない楽譜の場合のデフォルト値は真です。
ragged-last
オプションは ragged-right
に似ていますが、楽曲の最後の行だけに影響を与えます。最後の行には、何の制限も加えられません。この結果は、文章の段落をフォーマットする場合と同じです。文章の段落において、最後の行は単純にそのままの長さにフォーマットされます。
\layout { indent = #0 line-width = #150 ragged-last = ##t }
参照
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 行の幅 ] | [ 上へ : 水平方向のスペース ] | [ 音楽を少ないページに収める > ] |
4.5.5 プロポーショナル ノーテーション
LilyPond はプロポーショナル ノーテーションをサポートします。この記譜法では、各音符は演奏時間に相当する水平方向のスペースをとります。このタイプの水平スペースは、方眼紙上の水平方向スペースと同等です。20 世紀後半、21 世紀前半の楽譜の中には、複雑なリズムをわかりやすく示すため、あるいは、時間軸や他の図の配置を容易にするために、プロポーショナル ノーテーションを使っているものがあります。
LilyPond はプロポーショナル ノーテーション用に 5 つの設定をサポートします。それらの設定は一緒に使われることもありますし、単独で使われることもあります:
-
proportionalNotationDuration
-
uniform-stretching
-
strict-note-spacing
-
\remove Separating_line_group_engraver
-
\override PaperColumn.used = ##t
以下の例では、これら 5 つのプロポーショナル ノーテーション用の設定を見ていき、それらがどのように相互に作用するかを調べます。
以下のような 1 小節の例から始めます。これは、ragged-right
が ON であり、クラシック音楽でのスペースを使用します。
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> }
小節の始まりに配置された 2 分音符がその小節で占める水平方向のスペースは、半分よりもずっと少ないということに注意してください。そのため、小節の後半に配置された 16 分音符と、16 分音符からなる 5 連符 (すなわち、20 分音符) がその小節で占める水平方向のスペースは、半分よりもずっと多くなっています。
クラシック音楽の譜刻では、このスペースのとり方が望ましいかもしれません。なぜなら、2 分音符から水平方向のスペースを借りてきて、小節全体としてスペースを維持することができるからです。
他方で、時間軸や他の図を楽譜の上または下に挿入しようとした場合、プロポーショナル ノーテーションが必要になります。proportionalNotationDuration
設定でプロポーショナル ノーテーションを有効にします。
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) } } }
今度は、小節の前半に配置された 2 分音符と、後半に配置された短い音符の集まりが占める水平方向のスペースは等しくなりました。これで、この例の上または下に、時間軸や他の図を配置することが可能になりました。
proportionalNotationDuration
設定は、Score
の中にあるコンテキスト設定です。入力ファイルの中でコンテキスト設定が出現するのは、3 つの場所のどれかだということを思い出してください
– \with
ブロックの中、\context
ブロックの中、あるいは、\set
コマンドを前に置いた形で音楽エントリの中に直接配置します。他のすべてのコンテキスト設定と同様に、ユーザはこれら 3 つの場所のどれか 1 つを選択して、そこで proportionalNotationDuration
をセットすることができます。
proportionalNotationDuration
設定は引数を 1 つとります。これはすべての音楽要素へのスペースに関係する参照演奏時間です。LilyPond Scheme 関数 make-moment
は 2 つの引数をとります
– 全音符の分数を表す分子と分母です。それゆえ、(ly:make-moment 1/20)
という呼び出しは、20 分音符の参照演奏時間となります。(ly:make-moment 1/16)
, (ly:make-moment 1/8)
, それに
(ly:make-moment 3/97)
という値はすべてとり得る値です。
では、どのように proportionalNotationDuration
に渡す適切な参照演奏時間を決めるのでしょうか?通常、その楽曲の最速 (あるいは最小) の演奏時間に近い演奏時間から始めて、トライ&エラーで決めます。小さな参照演奏時間にすると疎な楽譜となり、大きな参照演奏時間にすると密な楽譜になります。
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/8) } } } \score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/16) } } } \score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/32) } } }
8 分音符以上などのようなあまりにも大きな演奏時間にすると、楽譜が密になりすぎて、符頭の衝突が発生する可能性があるということに注意してください。さらに、一般にプロポーショナル ノーテーションはクラシック音楽のスペースよりも多くの水平方向スペースをとるということに注意してください。プロポーショナル ノーテーションは、多くの水平方向スペースを使うことで、明快なリズムを提供します。
次に、重複する連符に最適なスペースを割り当てる方法を検証します。
まず、クラシック音楽のスペースで、異なるタイプの連符を付け加えたときに、何が起こるかを見ていきます。
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } \new RhythmicStaff { \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 } } >> }
このスペースのとり方は良くありません。なぜなら、下の譜の音符の間隔が一様ではないからです。クラシック音楽の譜刻には複雑な連符はほとんど含まれないため、クラシック音楽の譜刻規則はこのような結果を生み出す可能性があります。proportionalNotationDuration
を設定することにより、この状況はかなり修正されます。
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } \new RhythmicStaff { \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) } } }
しかしながら、注意深く見ると、9 連符の後半の音符の間隔が、前半の音符の間隔よりもわずかに広くなっています。間隔を一様にするため、SpacingSpanner
のプロパティである
uniform-stretching
を ON にします。
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } \new RhythmicStaff { \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) \override SpacingSpanner.uniform-stretching = ##t } } }
今度は、適切にスペースが割り当てられました。リズムは視覚的に明快になり、必要があれば時間軸や図を挿入することができます。
LilyPond のプロポーショナル ノーテーション パッケージは、すべてのプロポーショナルな楽譜は SpacingSpanner
の
'uniform-stretching
属性が ##t
に設定されているものと見なします。SpacingSpanner
の 'uniform-stretching
属性が ##t
に設定されずに、proportionalNotationDuration
が設定されると、例えば、スキップ (空白音符) の水平方向のスペースが適切に割り当てられません。
SpacingSpanner
は Score
コンテキストの中にある抽象的なグラフィカル オブジェクトです。proportionalNotationDuration
の設定と一緒に、SpacingSpanner
をオーバライドする場所は、入力ファイルの 3 つの場所のいずれかになります
– Score \with
ブロックの中、Score \context
ブロックの中、あるいは音符入力の場所に直接配置するかです。
デフォルトでは、Score
ごとに SpacingSpanner
が 1 つあります。つまり、デフォルトでは、uniform-stretching
は楽譜全体で ON であるか、OFF であるかのどちらかであるということです。しかしながら、この振る舞いをオーバライドして、楽譜内の異なる場所で異なるスペース機能を設定することができます。これを実現するには、コマンド \newSpacingSection
を用います。更なる情報は、新しいスペース セクション を参照してください。
次に、Separating_line_group_engraver
の効果を検証し、なぜプロポーショナルな楽譜は頻繁にこのエングラーバを削除するのかを見ていきます。以下の例は、各システムの最初の音符の直前に小さな “前置きの” スペースがあることを示しています。
\paper { indent = #0 } \new Staff { c'1 \break c'1 }
この前置きのスペースの量は、前にあるのが拍子記号、調号、あるいは音部記号のいずれであっても、同じです。Separating_line_group_engraver
はこのスペースに責任を負います。Separating_line_group_engraver
を削除すると、このスペースはゼロになります。
\paper { indent = #0 } \new Staff \with { \remove Separating_line_group_engraver } { c'1 \break c'1 }
拍子記号、調号、音部記号、それに臨時記号のような非音楽要素は、プロポーショナル ノーテーションでは問題になります。これらはすべて演奏時間を持ちません。しかしながら、これらはすべて水平方向のスペースを消費します。この問題に対して、プロポーショナルな楽譜はいくつかの異なるアプローチをとります。
調号のスペースの問題は、調号を持たないことで回避できるかもしれません。これは有効な選択肢です。なぜなら、たいていのプロポーショナルな楽譜は現代音楽だからです。拍子記号についても同じことが言えるかもしれません。時間軸や他の図を持つ楽譜であれば特にそうです。しかしながら、そのような楽譜は例外的なものであり、たいていのプロポーショナルな楽譜は少なくともいくつかの拍子記号を持ちます。さらに、音部記号と臨時記号はより必須のものです。
それでは、プロポーショナルなコンテキストにおける非音楽要素のスペースに対してどのような解決法が存在するのでしょうか?とり得る選択肢の 1 つに、SpacingSpanner
の strict-note-spacing
プロパティがあります。以下の 2 つの楽譜を比べてください:
\new Staff { \set Score.proportionalNotationDuration = #(ly:make-moment 1/16) c''8 8 8 \clef alto d'2 2 } \new Staff { \set Score.proportionalNotationDuration = #(ly:make-moment 1/16) \override Score.SpacingSpanner.strict-note-spacing = ##t c''8 8 8 \clef alto d'2 2 }
どちらの楽譜もプロポーショナルです。しかしながら、最初の楽譜は音部変更があるため広がりすぎています。2 番目の楽譜は、strict-note-spacing
を ON にしているため、プロポーショナルな間隔を維持しています。strict-note-spacing
を ON にすると、拍子記号、調号、音部記号、それに臨時記号の幅は、スペース アルゴリズムの中で何の役割も果たさなくなります。
この設定に加えて、他にもプロポーショナルな楽譜で頻出する設定があります。以下のような設定です:
-
\override SpacingSpanner.strict-grace-spacing = ##t
-
\set tupletFullLength = ##t
-
\override Beam.breakable = ##t
-
\override Glissando.breakable = ##t
-
\override TextSpanner.breakable = ##t
-
\remove Forbid_line_break_engraver in the Voice context
これらの設定は、装飾小音符のスペースを厳密にし、連譜の囲みをリズム的な開始点、終了点まで拡張し、(連桁のような) 広がりを持つ要素が、システムやページが改まるときに中断されることを許可します。これらの設定について、本書の関連パートを参照してください。
参照
記譜法リファレンス: 新しいスペース セクション
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < プロポーショナル ノーテーション ] | [ 上へ : スペースの問題 ] | [ スペースを表示する > ] |
4.6 音楽を少ないページに収める
ときどき、譜の 1 つ、2 つが 2 番目 (あるいは、3 番目、4 番目…) のページに配置されてしまうことがあります。これは腹立たしいことです – 特に、前のページに十分なスペースがあるように見える場合は。
レイアウトの問題を解決しようとしている時、annotate-spacing
は何にも代え難いツールです。このコマンドはさまざまなレイアウト スペース変数の値を表示します。詳細は以下のセクション スペースを表示する を参照してください。
4.6.1 スペースを表示する | ||
4.6.2 スペースを変更する |
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 音楽を少ないページに収める ] | [ 上へ : 音楽を少ないページに収める ] | [ スペースを変更する > ] |
4.6.1 スペースを表示する
ページ フォーマットのために変更される可能性がある、垂直方向のレイアウト変数の値を表示させるには、\paper
ブロックの中で annotate-spacing
をセットします:
\book { \score { { c4 } } \paper { annotate-spacing = ##t } }
すべてのレイアウト値は、\paper
ブロックや \layout
ブロックの中で指定された単位とは無関係に、譜スペースで表示されます。上の例では、paper-height
の値は 59.75 譜スペース
であり、staff-size
は 20 ポイント (デフォルト値) です。以下のことに注意してください:
1 ポイント | = (25.4/72.27) mm |
1 譜スペース | = (staff-size )/4 ポイント |
= (staff-size )/4 * (25.4/72.27) mm |
この場合、1 譜スペースは約 1.757mm です。それゆえ、59.75 譜スペースである paper-height
は 105mm であり、横置きの A6
紙の高さと同じです。ペア (a,b) は間隔を表します。a は間隔の下端を、b は上端を表します。
参照
記譜法リファレンス: 譜サイズを設定する
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < スペースを表示する ] | [ 上へ : 音楽を少ないページに収める ] | [ デフォルトを変更する > ] |
4.6.2 スペースを変更する
annotate-spacing
の出力は、垂直方向のレイアウト変数の値を詳細に取得します。マージンや他のレイアウト変数を変更することについての詳細は、ページ レイアウト を参照してください。
マージン以外にも、スペースを節約するための選択肢がいくつかあります:
-
(1 ページにできるだけ多くのシステムを収めるために)
スペースがある限り、システムを可能な限り近寄せる。それにより、ページの下部に空きスペースが無くなります。
\paper { system-system-spacing = #'((basic-distance . 0.1) (padding . 0)) ragged-last-bottom = ##f ragged-bottom = ##f }
-
システム数を設定する。これは 2 つの意味でスペースを節約します。システム数を設定することで、たとえそれがデフォルト値であっても、各ページにより多くのシステムを収めることができる場合があります。なぜなら、見積もりのステップが迂回され、より正確な適合が得られるからです。さらに、システム数を減らすことで、より多くのページを節約できる場合があります。例えば、デフォルトのレイアウトが 11 システムである場合、以下の指定により、レイアウトは強制的に 10 システムに収められます。
\paper { system-count = #10 }
-
強制的にページ数を設定する。例えば、以下の設定は強制的に 2 ページにレイアウトさせます。
\paper { page-count = #2 }
-
オブジェクトがシステムの垂直方向のサイズを増加させるのを避ける
(あるいは減らす)。例えば、入れ替えの繰り返しの最後に用いる volta 囲みは余分なスペースを必要とします。これらの囲みが 2 つのシステムに広がっている場合、同じシステムにある場合よりも多くのスペースをとります。別の例では、システムから突き出ている強弱記号を譜に近づけることで、スペースを節約することができます:
\relative e' { e4 c g\f c e4 c g-\tweak X-offset #-2.7 \f c }
-
SpacingSpanner
経由で水平方向のスペースを変更する。詳細は、水平方向のスペースを変更する を参照してください。以下の例は、デフォルトをスペースを示しています:\score { \relative { g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 | g4 e e2 | } }
次の例では、
common-shortest-duration
の値を1/4
から1/2
に変更しています。この例では、4 分音符が最も共通で、最短の演奏時間です。そのため、common-shortest-duration
を長くすることで ‘詰め込む’ 効果を得られます:\score { \relative { g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 | g4 e e2 | } \layout { \context { \Score \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/2) } } }
common-shortest-duration
プロパティを動的に変更することはできません。そのため、このプロパティは常に\context
ブロックの中に配置して、楽譜全体に適用されるようにする必要があります。
参照
記譜法リファレンス: ページ レイアウト, 水平方向のスペースを変更する
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < スペースを変更する ] | [ 上へ : Top ] | [ コンテキストを理解する > ] |
5. デフォルトを変更する
LilyPond はデフォルトで最高品質の出力を提供できるよう設計されています。それにもかかわらず、デフォルトのレイアウトを変更する必要が発生する場合もあります。レイアウトは、‘プロパティ’ と呼ばれる多数の ‘つまみとスイッチ’ によって制御されています。これらのプロパティにアクセスし、変更するための手引は学習マニュアルの中にあります – 出力を調整する を参照してください。まずはこれを読むべきです。本章は同様の内容をカバーしていますが、よりリファレンス マニュアルに適したスタイルで提供します。
調整のために利用できる制御の定義についての説明は、別のドキュメントの中にあります: 内部リファレンス です。このマニュアルは利用可能なすべての変数、関数、それにオプションをリストアップしています。これは HTML ドキュメントとして記述されていて、オンライン で入手可能であり、LilyPond ドキュメント パッケージにも含まれています。
内部的には、LilyPond は Scheme (LISP 派生語) を用いて機能を提供しています。レイアウトについての決定をオーバライドすることは、プログラムの内部にアクセスすることであり、Scheme 入力が必要になります。Scheme の要素は、.ly
の中で、ハッシュ記号 #
を付けて記述します。1
5.1 コンテキストを理解する | ||
5.2 内部リファレンスの説明 | ||
5.3 プロパティを変更する | ||
5.4 役に立つコンセプトとプロパティ | ||
5.5 高度な調整 | ||
5.6 音楽関数を使用する |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < デフォルトを変更する ] | [ 上へ : デフォルトを変更する ] | [ コンテキストの説明 > ] |
5.1 コンテキストを理解する
このセクションでは、コンテキストとは何なのか、それをどのように変更するのかについて説明します。
5.1.1 コンテキストの説明 | ||
5.1.2 コンテキストを作成して参照する | ||
5.1.3 コンテキストを残しておく | ||
5.1.4 コンテキストのプラグインを変更する | ||
5.1.5 コンテキストのデフォルト設定を変更する | ||
5.1.6 新しいコンテキストを定義する | ||
5.1.7 コンテキストの配置順序 |
参照
学習マニュアル: コンテキストとエングラーバ
インストールされているファイル: ‘ly/engraver-init.ly’, ‘ly/performer-init.ly’
コード断片集: Contexts and engravers
内部リファレンス: Contexts, Engravers and Performers
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < コンテキストを理解する ] | [ 上へ : コンテキストを理解する ] | [ 出力定義 - コンテキストの青写真 > ] |
5.1.1 コンテキストの説明
コンテキストは階層的に配置されます:
出力定義 - コンテキストの青写真 | ||
Score - すべてのコンテキストのマスタ | ||
上位コンテキスト - 譜コンテナ | ||
中位コンテキスト - 譜 | ||
下位コンテキスト - ボイス |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < コンテキストの説明 ] | [ 上へ : コンテキストの説明 ] | [ Score - すべてのコンテキストのマスタ > ] |
出力定義 - コンテキストの青写真
このセクションでは、コンテキストを扱う際の出力定義との関連について説明します。実際の出力定義の例については、後で提示します (同じタイプの全コンテキストを変更する を参照してください)。
ファイルに記述される音楽は、コンテキストの種類や名前を参照しますが、コンテキストが作成されるのは、音楽が実際に解釈される時です。LilyPond は‘出力定義’に基づいて音楽を解釈し、異なる出力定義は異なる出力をもたらします。楽譜の見た目の出力に関係する出力定義は \layout
で指定します。
MIDI 出力を作り出すのに使われる出力定義はもっと単純で、\midi
によって指定されます。他の出力定義も LilyPond では内部的に使用されます。例えばパートを結合する出力定義 (自動パート結合) や音楽の引用を作り出す出力定義 (他のボイスを引用する) などです。
出力定義は、各コンテキストのデフォルトの設定だけでなく、コンテキスト同士の関係も定義します。多くの変更は通常 \layout
ブロックで行われますが、MIDI に関係した設定は \midi
ブロックで変更された場合にのみ効果があります。
いくつかの設定は複数の出力に効果があります: 例えば、autoBeaming
があるコンテキストでオフになった場合、歌詞音節の自動演奏時間
で説明しているように、連桁は歌詞を音楽に合わせるためのメリスマとして扱われます。この位置合わせは見た目の出力だけでなく MIDI 出力でも行われます。autoBeaming
が \layout
ブロックの出力定義内で変更されており、しかし対応する \midi
ブロックでは変更されていない場合、MIDI では歌詞と音楽が一致しなくなります。
参照
インストールされているファイル: ‘ly/engraver-init.ly’, ‘ly/performer-init.ly’
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 出力定義 - コンテキストの青写真 ] | [ 上へ : コンテキストの説明 ] | [ 上位コンテキスト - 譜コンテナ > ] |
Score - すべてのコンテキストのマスタ
これは最上位の記譜コンテキストです。他のコンテキストが Score コンテキストを保持することはできません。デフォルトでは、Score コンテキストが拍子記号の管理を扱い、音部記号、拍子記号、調号などのアイテムが譜間で揃っていることを保証します。
Score コンテキストは、\score {…}
ブロックが処理されたときに暗黙的にインスタンス化されます。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < Score - すべてのコンテキストのマスタ ] | [ 上へ : コンテキストの説明 ] | [ 中位コンテキスト - 譜 > ] |
上位コンテキスト - 譜コンテナ
StaffGroup
譜をグループ化して、左端に角括弧を付けます。このコンテキストに保持されている譜の小節線は垂直につながります。StaffGroup
は譜のコレクション、それに左端の角括弧と延長された小節線だけを保持します。
ChoirStaff
保持されている譜の小節線が垂直につながらないことを除けば、StaffGroup
と同じです。
GrandStaff
譜をグループ化して、左端に波括弧を付けます。このコンテキストに保持されている譜の小節線は垂直につながります。
PianoStaff
GrandStaff
と似ていますが、各システムの左端に楽器名を付けることができます。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 上位コンテキスト - 譜コンテナ ] | [ 上へ : コンテキストの説明 ] | [ 下位コンテキスト - ボイス > ] |
中位コンテキスト - 譜
Staff
音部記号、小節線、調、臨時記号を扱います。このコンテキストは Voice
コンテキストを保持することができます。
RhythmicStaff
Staff
と似ていますが、リズムを表示するためのものです。ピッチは譜刻には無視され、音符は線として表示されます。MIDI 出力ではピッチは変更されません。
TabStaff
タブ譜を生成するためのコンテキストです。デフォルトでは、音楽表記を 6 線のギター タブ譜として配置します。
DrumStaff
打楽器の譜刻を扱います。DrumVoice
を保持することができます。
VaticanaStaff
Staff
と同じですが、グレゴリオ聖歌形式の楽曲を譜刻するためにデザインされている点が異なります。
MensuralStaff
Staff
と同じですが、計量形式の楽曲を譜刻するためにデザインされている点が異なります。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 中位コンテキスト - 譜 ] | [ 上へ : コンテキストの説明 ] | [ コンテキストを作成して参照する > ] |
下位コンテキスト - ボイス
Voice レベルのコンテキストはある特定のプロパティを初期化し、適切なエングラーバを開始させます。下位コンテキストは defaultchild
を持たないコンテキストです。中にコンテキストを受け入れたり保持することはできますが、明示的に作成され入力される必要があります。
Voice
譜の上にあるボイスに相当します。このコンテキストは、強弱記号、符幹、連桁、上付き/下付き文字、タイ、それに休符の変換を扱います。1 つの譜に複数のボイスを配置する必要がある場合、ボイスを明示的にインスタンス化する必要があります。
VaticanaVoice
Voice
と同じですが、グレゴリオ聖歌形式の楽曲を譜刻するためにデザインされている点が異なります。
MensuralVoice
Voice
と同じですが、定量形式の楽曲を譜刻するためにデザインされている点が異なります。
Lyrics
歌詞を保持するボイスに相当します。単一行の歌詞の表示を扱います。
DrumVoice
打楽器譜で使用されるボイス コンテキストです。
FiguredBass
このコンテキストの中で、\figuremode
モードで記述された入力から
BassFigure
オブジェクトが作成されます。
TabVoice
TabStaff
コンテキスト内部で使用されるボイス コンテキストです。通常、暗黙的に作成されます。
CueVoice
小さなサイズの音符を描画するために使用されるボイス コンテキストです。主に合図音符を譜に付け加えることを目的としています。合図音符をフォーマットする を参照してください。通常、暗黙的に作成されます。
ChordNames
コード ネームを譜刻します。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 下位コンテキスト - ボイス ] | [ 上へ : コンテキストを理解する ] | [ コンテキストを残しておく > ] |
5.1.2 コンテキストを作成して参照する
LilyPond は、適切なコンテキストが存在しないうちに音楽表記に遭遇すると、自動的に下位コンテキストを作成します。しかしながら、通常これは、シンプルな楽譜やドキュメントの中の楽譜断片のような単純な場合にしかうまくいきません。もっと複雑な楽譜の場合、すべてのコンテキストを \new
コマンドや
\context
コマンドを用いて明示的に指定することをお勧めします。これら 2 つのコマンドの構文はほとんど同じです:
[\new | \context] Context [ = name] [music-expression]
ここで、\new
と \context
のどちらかを使用します。Context は作成するコンテキストのタイプであり、name は作成されるコンテキストにオプションで付けることができる名前であり、music-expression はこのコンテキストのエングラーバとパフォーマによって処理される単一の音楽表記です。
コンテキスト名を持たない \new
コマンドは一般的に複数の譜を持つ
score を作成するのに用いられます:
<< \new Staff \relative { % 暗黙的に Voice コンテキストが作成されます c''4 c } \new Staff \relative { d''4 d } >>
そして、1 つの譜に複数のボイスが配置されます:
\new Staff << \new Voice \relative { \voiceOne c''8 c c4 c c } \new Voice \relative { \voiceTwo g'4 g g g } >>
無名のコンテキストは常に \new
で指定する必要があります。
\new
と \context
は動作が異なります:
-
\new
はコンテキスト名を持っているか、いないかにかかわらず、例え同じ名前を持つコンテキストが存在していたとしても、常に全く新たなコンテキストを作成します:\new Staff << \new Voice = "A" \relative { \voiceOne c''8 c c4 c c } \new Voice = "A" \relative { \voiceTwo g'4 g g g } >>
-
コンテキスト名を持つ
\context
は、階層、名前、それにタイプが同じコンテキストが存在しない場合にのみ、新たなコンテキスを作成します。存在する場合、\context
はすでに作成されているコンテキストへの参照となり、音楽表記はそのコンテキストに渡されて処理されます。名前を持つコンテキストの用途の 1 つとして、楽譜レイアウトと音楽コンテンツを分離させることができます。以下の 2 つの形式はどちらも有効です:
\score { << % 楽譜レイアウト \new Staff << \new Voice = "one" { \voiceOne } \new Voice = "two" { \voiceTwo } >> % 音楽コンテンツ \context Voice = "one" { \relative { c''4 c c c } } \context Voice = "two" { \relative { g'8 g g4 g g } } >> }
\score { << % 楽譜レイアウト \new Staff << \context Voice = "one" { \voiceOne } \context Voice = "two" { \voiceTwo } >> % 音楽コンテンツ \context Voice = "one" { \relative { c''4 c c c } } \context Voice = "two" { \relative { g'8 g g4 g g } } >> }
名前付きコンテキストの他の使用例として、2 つの音楽表記をつなげて 1 つのコンテキストにすることができます。以下の例では、アーティキュレーションと音符は別々に入力されています: 変数を用いても同じことができます。 Organizing pieces with variables を参照してください。
-
コンテキスト名を持たない
\context
は、階層とタイプが一致するコンテキストのうち最初に作成されたものに適用され (例えそのコンテキストが名前を持っていたとしても適用されます)、音楽表記はそのコンテキストに渡されて処理されます。この形式が有用なことは稀です。しかしながら、コンテキスト名と音楽表記を持たない\context
は、コンテキスト内で\applyContext
で記述した Scheme プロシージャを実行させるのに用いられます:\new Staff \relative { c'1 \context Timing \applyContext #(lambda (ctx) (newline) (display (ly:context-current-moment ctx))) c1 }
後で参照するコンテキストには名前を付ける必要があります。例えば、歌詞を音楽に関連付けるような場合です:
\new Voice = "tenor" music … \new Lyrics \lyricsto "tenor" lyrics
歌詞を音楽に関連付ける方法についての詳細は 歌詞音節の自動演奏時間 を参照してください。
ある特定のタイプのすべてのコンテキストのプロパティを \layout
ブロックで変更することができます (構文は異なります)
– 同じタイプの全コンテキストを変更する を参照してください。この構造でもレイアウトを音楽コンテンツから分離させることができます。単一のコンテキストを変更するのであれば、\with
ブロックを用いる必要があります – 指定したコンテキストだけを変更する を参照してください。
参照
学習マニュアル: Organizing pieces with variables
記譜法リファレンス: 指定したコンテキストだけを変更する, 歌詞音節の自動演奏時間
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < コンテキストを作成して参照する ] | [ 上へ : コンテキストを理解する ] | [ コンテキストのプラグインを変更する > ] |
5.1.3 コンテキストを残しておく
通常、コンテキストは何もすることが無くなった最初の音楽的タイミングで消滅させられます。そのため、Voice
コンテキストはすべてのイベントを終えるとすぐに消滅し、Staff
コンテキストは保持しているすべての Voice
コンテキストのイベントが終了するとすぐに消滅する、などとなっています。このことは、早い段階にすでに消滅したコンテキストを参照する必要がある場合に、障害となります。例えば、\change
コマンドで譜を変更する場合、\lyricsto
コマンドで歌詞をボイスに結び付ける場合、あるいは、早い段階で登場したコンテキストに音楽イベントを追加する場合に障害となります。
この一般的な規則には 1 つ例外があります:
{…}
構文 (シーケンシャルな音楽) の中で、構文が対象にする「現在のコンテキスト」は、その中の要素が更に下位のコンテキストを扱う場合、要素が終了した後もその下位のコンテキストを指し続けます。これはいくつかの場合において、暗黙的なコンテキストが誤って作成されることを防ぎますが、最初の下位コンテキストは、表記が終わるまで残り続けるということを意味しています。
一方、<<…>>
構造 (同時に起こる音楽) の表記は持続しません。そのため、コンテキストを作成するコマンドを、余分な <<…>>
で囲むことによって、新たなコンテキストが、囲まれた {…}
表記全体にわたって残り続けることを阻止することができます。
いかなる音楽タイミングでも何かすることがあるようにすることで、任意のコンテキストを残しておくことができます。Staff
コンテキストを残しておくには、それに含まれるボイスの 1 つが維持されることを保証する必要があります。ボイスを残しておく方法の 1 つに、ボイスに含まれる実際の音楽と並列に、空白休符をそのボイスに付け加えるという方法があります。残しておく必要があるすべての Voice
コンテキストに対して、空白休符を付け加える必要があります。ところどころで使用されるボイスがある場合、前述の例外によって必要なボイスを残そうとするよりは、それらのボイスすべてを残しておく方が安全です。
以下の例では、空白休符の追加を用いる方法で、ボイス A とボイス B の両方が楽曲全体を通して維持されます:
musicA = \relative { d''4 d d d } musicB = \relative { g'4 g g g } keepVoicesAlive = { << \new Voice = "A" { s1*5 } % Voice "A" を 5 小節の間、維持する \new Voice = "B" { s1*5 } % Voice "B" を 5 小節の間、維持する >> } music = { \context Voice = "A" { \voiceOneStyle \musicA } \context Voice = "B" { \voiceTwoStyle \musicB } \context Voice = "A" { \musicA } \context Voice = "B" { \musicB } \context Voice = "A" { \musicA } } \score { \new Staff << \keepVoicesAlive \music >> }
以下の例は、空白休符を用いる方法で、途切れ途切れのメロディに歌詞を持たせる方法を示しています。もちろん、実際に楽譜を書く場合は、メロディや伴奏は複数のセクションによって構成されることになります。
melody = \relative { a'4 a a a } accompaniment = \relative { d'4 d d d } words = \lyricmode { These words fol -- low the mel -- o -- dy } \score { << \new Staff = "music" { << \new Voice = "melody" { \voiceOne s1*4 % Voice "melody" を 4 小節の間、残します } { \new Voice = "accompaniment" { \voiceTwo \accompaniment } << \context Voice = "melody" { \melody } \context Voice = "accompaniment" { \accompaniment } >> \context Voice = "accompaniment" { \accompaniment } << \context Voice = "melody" { \melody } \context Voice = "accompaniment" { \accompaniment } >> } >> } \new Lyrics \with { alignAboveContext = "music" } \lyricsto "melody" { \words } >> }
これに代わる方法として、メロディに直接空白休符を付け加えて、メロディが伴奏と揃うようにする方法があります – 多くの場合、こちらの方法の方が良いかもしれません:
melody = \relative { s1 % 1 小節スキップします a'4 a a a s1 % 1 小節スキップします a4 a a a } accompaniment = \relative { d'4 d d d d4 d d d d4 d d d d4 d d d } words = \lyricmode { These words fol -- low the mel -- o -- dy } \score { << \new Staff = "music" { << \new Voice = "melody" { \voiceOne \melody } \new Voice = "accompaniment" { \voiceTwo \accompaniment } >> } \new Lyrics \with { alignAboveContext = "music" } \lyricsto "melody" { \words } >> }
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < コンテキストを残しておく ] | [ 上へ : コンテキストを理解する ] | [ コンテキストのデフォルト設定を変更する > ] |
5.1.4 コンテキストのプラグインを変更する
記譜コンテキスト (Score
や Staff
のような) はプロパティを保存するだけなく、‘エングラーバ’ と呼ばれる記譜要素を作成するプラグインを保持します。例えば、Voice
コンテキストは Note_head_engraver
を保持し、Staff
コンテキストは Key_engraver
を保持します。
各プラグインについての説明は、 Engravers and Performers. を参照してください。 Contexts の中にある各コンテキストについての説明では、そのコンテキストで使用されるエングラーバがリストアップされています。
これらのプラグインを入れ換えると有用な場合があります。プラグインを入れ換えるには、新たに作成するコンテキストを
\new
あるいは \context
で開始し、そのコンテキストを以下のように変更します:
\new context \with { \consists … \consists … \remove … \remove … etc. } { …music… }
ここで、… はエングラーバの名前になります。ここで、Staff
コンテキストから Time_signature_engraver
と
Clef_engraver
を削除する簡単な例を示します:
<< \new Staff \relative { f'2 g } \new Staff \with { \remove Time_signature_engraver \remove Clef_engraver } \relative { f'2 g2 } >>
2 番目の譜には、拍子記号と音部記号がありません。この方法は、オブジェクトを不可視にするよりも乱暴な方法です。なぜなら、譜全体に影響を与えるからです。さらに、望む望まないに係わらず、この方法はスペースにも影響を与えます。オブジェクトを消すもっと洗練された方法については、 オブジェクトの可視性と色 を参照してください。
次の例は、ある実用的な応用です。通常、小節線と拍子記号は楽譜全体で同期されます。これは Timing_translator
と Default_bar_line_engraver
によって行われます。このプラグインは拍子記号の管理や、小節内の配置の管理などを行います。これらのエングラーバを Score
コンテキストから
Staff
コンテキストへ異動させることにより、楽譜の各譜に独自の拍子記号を持たせることが可能になります。
\score { << \new Staff \with { \consists Timing_translator } \relative { \time 3/4 c''4 c c c c c } \new Staff \with { \consists Timing_translator } \relative { \time 2/4 c''4 c c c c c } >> \layout { \context { \Score \remove Timing_translator } } }
既知の問題と警告
エングラーバを指定する順序は、エングラーバが処理を行う順序です。通常、エングラーバが指定される順序は問題にはなりません。しかしながら、いくつかの特殊なケースでは、この順序が重要になります。例えば、あるエングラーバがプロパティを記述して、それを他のエングラーバが読む場合、あるいは、あるエングラーバがグラフィカル オブジェクトを作成し、それを他のエングラーバが処理しなければならない場合です。
以下の順序は重要です:
-
通常、
Bar_engraver
を最初にする必要があります。 -
New_fingering_engraver
をScript_column_engraver
の前に配置する必要があります。 -
Timing_translator
をBar_number_engraver
の前に配置する必要があります。
参照
インストールされているファイル: ‘ly/engraver-init.ly’
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < コンテキストのプラグインを変更する ] | [ 上へ : コンテキストを理解する ] | [ 同じタイプの全コンテキストを変更する > ] |
5.1.5 コンテキストのデフォルト設定を変更する
プロパティを変更する で説明したように、コンテキストとグラフィカル
オブジェクトのプロパティを \set
コマンドや \override
コマンドで変更することができます。これらのコマンドは音楽イベントを生成して、楽譜処理中にコマンドが出現するポイントで変更に効果を発揮させます。
対照的に、このセクションではコンテキストが作成された時点でコンテキストとグラフィカル オブジェクトのプロパティの デフォルト 値を変更する方法を説明します。これを行う方法は 2 つあります。1 つはある特定のタイプの全コンテキストのデフォルト値を変更する方法で、もう 1 つはただ 1 つのコンテキストのインスタンスのデフォルト値を変更する方法です。
同じタイプの全コンテキストを変更する | ||
指定したコンテキストだけを変更する | ||
適用順序 |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < コンテキストのデフォルト設定を変更する ] | [ 上へ : コンテキストのデフォルト設定を変更する ] | [ 指定したコンテキストだけを変更する > ] |
同じタイプの全コンテキストを変更する
Score
, Staff
, Voice
, その他のコンテキストにおいてデフォルトで使用される譜刻のためのコンテキスト設定は、\layout
ブロックの中の\context
ブロックで指定することができます。\layout
ブロックは、それを適用する \score
ブロックの中で、かつ、音楽表記の後に配置する必要があります。
譜刻ではなく MIDI 出力に関する設定をする場合は、\midi
ブロックに別々に指定する必要があります (出力定義 - コンテキストの青写真を参照してください)。
\layout { \context { \Voice [すべての Voice コンテキストのコンテキスト設定] } \context { \Staff [context settings for all Staff contexts] } }
以下のタイプの設定を指定することができます:
-
\override
コマンド – コンテキスト名を省略します\score { \relative { a'4^"Thicker stems" a a a a4 a a\ff a } \layout { \context { \Staff \override Stem.thickness = #4.0 } } }
-
コンテキスト プロパティを直接設定します
\score { \relative { a'4^"Smaller font" a a a a4 a a\ff a } \layout { \context { \Staff fontSize = #-4 } } }
-
\dynamicUp
や\accidentalStyle dodecaphonic
のような音楽表記等、あらかじめ定義されているコマンド\score { \relative { a'4^"Dynamics above" a a a a4 a a\ff a } \layout { \context { \Voice \dynamicUp } \context { \Staff \accidentalStyle dodecaphonic } } }
-
\with
ブロックを有するユーザ定義変数 –\with
ブロックの詳細は 指定したコンテキストだけを変更する を参照してください。StaffDefaults = \with { fontSize = #-4 } \score { \new Staff { \relative { a'4^"Smaller font" a a a a4 a a a } } \layout { \context { \Staff \StaffDefaults } } }
プロパティ設定コマンドは、\context
ブロックで囲まずに、\layout
ブロックの中に配置することができます。そのような設定は、指定されたタイプの任意のコンテキストの開始時にプロパティ設定コマンドをインクルードするのと等価です。コンテキストを指定しない場合、すべての 下位コンテキストに影響を与えます – 下位コンテキスト - ボイス を参照してください。\layout
ブロックの中でのプロパティ設定コマンドの構文は、音楽ストリームの中で同じコマンドを記述するのと同じです。
\score { \new Staff { \relative { a'4^"Smaller font" a a a a4 a a a } } \layout { \accidentalStyle dodecaphonic \set fontSize = #-4 \override Voice.Stem.thickness = #4.0 } }
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 同じタイプの全コンテキストを変更する ] | [ 上へ : コンテキストのデフォルト設定を変更する ] | [ 適用順序 > ] |
指定したコンテキストだけを変更する
\with
ブロックで指定したコンテキスト インスタンスのコンテキスト
プロパティだけを変更することができます。他の全ての同じタイプのコンテキスト インスタンスは、LilyPond に組み込まれてスコープ内の \layout
ブロックによって変更されたデフォルト設定のままです。\with
ブロックは \new
context-type コマンドの直後に配置する必要があります:
\new Staff \with { [このコンテキスト インスタンスだけに適用されるコンテキスト設定] } { … }
あるいは、もし入力モードを指定するような簡略記法のコマンド (例えば
\chordmode
の代わりに \chords
を使うなど) を用いて音楽を入力する場合、\with
をそのようなコマンドのすぐ後に配置する必要があります:
\chords \with { [この (暗黙的) コンテキスト インスタンスだけに適用されるコンテキスト設定] } { … }
このような記法によって作られる暗黙的なコンテキストが変更されます。
これは、同様な入力モードを指定する簡略記法のコマンドにも当てはまります
(\drums
, \figures
)。入力モード を参照してください。
\with
ブロックで行われるコンテキストの変更は音楽の内部にあるため、出力定義内での変更とは異なり、全ての 出力 (楽譜と MIDI の両方) に影響が及びます。
以下のタイプの設定を指定することができます:
-
\override
コマンド – コンテキスト名を省略します\score { \new Staff { \new Voice \with { \override Stem.thickness = #4.0 } { \relative { a'4^"Thick stems" a a a a4 a a a } } } }
-
コンテキスト プロパティを直接設定します
\score { << \new Staff { \relative { a'4^"Default font" a a a a4 a a a } } \new Staff \with { fontSize = #-4 } { \relative { a'4^"Smaller font" a a a a4 a a a } } >> }
-
\dynamicUp
等のあらかじめ定義されているコマンド\score { << \new Staff { \new Voice { \relative { a'4^"Dynamics below" a a a a4 a a\ff a } } } \new Staff \with { \accidentalStyle dodecaphonic } { \new Voice \with { \dynamicUp } { \relative { a'4^"Dynamics above" a a a a4 a a\ff a } } } >> }
参照
記譜法リファレンス: 入力モード
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 指定したコンテキストだけを変更する ] | [ 上へ : コンテキストのデフォルト設定を変更する ] | [ 新しいコンテキストを定義する > ] |
適用順序
ある特定のタイミングで適用されるプロパティの値は以下のように決定されます:
-
入力ストリームの中の
\override
コマンドや\set
コマンドが ある場合、その値が用いられます。 -
さもなければ、コンテキスト初期宣言の
\with
から取得したデフォルト値が用いられます。 -
さもなければ、
\layout
ブロックや\midi
ブロックの中にある直近で適切な\context
ブロックから取得したデフォルト値が用いられます。 - さもなければ、LilyPond の組み込みデフォルト値が用いられます。
参照
学習マニュアル: Modifying context properties
記譜法リファレンス:
コンテキストの説明,
下位コンテキスト - ボイス,
\set
コマンド,
\override
コマンド,
\layout
ブロック
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 適用順序 ] | [ 上へ : コンテキストを理解する ] | [ コンテキストの配置順序 > ] |
5.1.6 新しいコンテキストを定義する
Staff
や Voice
のようなコンテキストは、簡単なブロックの組み合わせで構成されています。
エングラーバ プラグインの組み合わせを変えることで、新しいタイプのコンテキスを作成することができます。
次の例は、ゼロからタイプの異なる Voice
コンテキストを作り上げる方法を示しています。このコンテキストは Voice
コンテキストに似ていますが、音符の代わりにスラッシュを譜の中央に譜刻します。これはジャズで即興を表すのに使うことができます。
これらの設定は \layout
ブロック内部の \context
ブロックの中で定義します:
\layout { \context { … } }
以下では、上記の例の … に入るべき入力について議論します。
最初に、新しいコンテキストの名前を定義する必要があります:
\name ImproVoice
このコンテキストは Voice
コンテキストに似せる必要があるため、(既存の) Voice
コンテキストで動作するコマンドを同じように動作させる必要があります。これは、新しいコンテキストに Voice
のエイリアスを与えることで実現できます。
\alias Voice
このコンテキストは音符と指示テキストを譜刻しますので、それらの機能を提供するエングラーバや、さらに同じタイミングで発生する音符・符幹・休符を列としてグループ化するエングラーバを付加する必要があります:
\consists Note_heads_engraver \consists Text_engraver \consists Rhythmic_column_engraver
符頭のスラッシュは譜の中央線上に配置される必要があります:
\consists Pitch_squash_engraver squashedPosition = #0
Pitch_squash_engraver
は
(Note_heads_engraver
によって作成される) 符頭を変更し、符頭の垂直位置を squashedPosition
にセットします
– 今回は 0
、つまり中央線上です。
音符はスラッシュで、符幹を持ちません:
\override NoteHead.style = #'slash \hide Stem
これらのプラグインすべてがコンテキストの下で協調する必要があります。コンテキストが協調するために用いるメカニズムは、コンテキストの \type
を宣言することで確立することができます。\layout
ブロックの中では、ほとんどのコンテキストは Engraver_group
のタイプに属しています。いくつかの特殊なコンテキストや、\midi
ブロックの中では別のコンテキスト
タイプに属していることがあります。既存のコンテキスト定義をコピーし改変する場合には、タイプについても継承されます。この例では定義を 1 から作っているため、タイプを明示的に指定する必要があります:
\type Engraver_group
まとめると、以下のようになります:
\context { \name ImproVoice \type Engraver_group \consists Note_heads_engraver \consists Text_engraver \consists Rhythmic_column_engraver \consists Pitch_squash_engraver squashedPosition = #0 \override NoteHead.style = #'slash \hide Stem \alias Voice }
コンテキストは階層を構成します。通常の Voice
コンテキストと同様に、ImproVoice
コンテキストを Staff
コンテキストの中に置く必要があります。それゆえ、Staff
の定義を \accepts
コマンドで変更します:
\context { \Staff \accepts ImproVoice }
既存のコンテキスト定義を使い回す場合があるかもしれません。その際、結果としてできるコンテキストは、元のコンテキストが使用できる場所であればどこでも使用できると有用です。
\layout { … \inherit-acceptability to from }
このようにすることで、from を含めることのできるすべてのコンテキストが、to のコンテキストも含めることができるようになります。例えば:
\layout { … \inherit-acceptability "ImproVoice" "Voice" }
これは、\accepts ImproVoice
を、Staff
と RhythmicStaff
の定義に追加するのと同様の効果を示します。
\accepts
の反対は \denies
です。これは既存のコンテキスト定義を再利用する場合に必要となります。
必要なパーツを \layout
ブロックの中に置きます:
\layout { \context { \name ImproVoice … } \inherit-acceptability "ImproVoice" "Voice" }
それから、このサブセクションの最初にあった出力を入力します:
\relative { a'4 d8 bes8 \new ImproVoice { c4^"ad lib" c c4 c^"undress" c c_"while playing :)" } a1 }
この例を完成させるには、コンテキストの階層に影響する変更が \midi
ブロックでも同様に記述される必要があります。そうすることで、MIDI 出力においてもコンテキスト間の関係が同様に定義されます。
参照
内部リファレンス: Note_heads_engraver, Text_engraver, Rhythmic_column_engraver, Pitch_squash_engraver
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 新しいコンテキストを定義する ] | [ 上へ : コンテキストを理解する ] | [ 内部リファレンスの説明 > ] |
5.1.7 コンテキストの配置順序
通常、コンテキストは入力ファイルの中で記述した順に楽譜の段の上から下に配置されます。コンテキストがネストされている場合、外側のコンテキストは入力ファイルの中で指定されたコンテキストを内側に保持して、内側のコンテキストは外側のコンテキストの “accepts” リストに含まれます。ネストされたコンテキストのうち外側のコンテキストの “accepts” リストに含まれないものは、ネストされずに外側のコンテキストの下に再配置されます。
コンテキストの “accepts” リストを \accepts
コマンドや
\denies
コマンドで変更することができます。\accepts
はコンテキストを “accepts” リストに追加して、\denies
は “accepts” リストからコンテキストを削除します。
例えば、角括弧でグループ化された譜表は通常、波括弧でグループ化され小節線が繋げられる譜表グループの中にあることは通常見られず、デフォルトで
GrandStaff
は内部に StaffGroup
を含めることができません。
\score { \new GrandStaff << \new StaffGroup << \new Staff { c'1 } \new Staff { d'1 } >> \new Staff { \set Staff.instrumentName = bottom f'1 } >> }
しかし、\accepts
コマンドを使うことで、StaffGroup
をGrandStaff
コンテキストの中に含めることができます:
\score { \new GrandStaff << \new StaffGroup << \new Staff { c'1 } \new Staff { d'1 } >> \new Staff { \set Staff.instrumentName = bottom f'1 } >> \layout { \context { \GrandStaff \accepts StaffGroup } } }
\denies
は主に、他のコンテキストをベースに新しいコンテキストを作成した時に、中にネストするコンテキストを変更するために用いられます。例えば、VaticanaStaff
コンテキストは Staff
コンテキストをベースにしていますが、“accepts” リストでは Voice
コンテキストの代わりに VaticanaVoice
コンテキストを保持しています。
コンテキストに保持されるべきコマンドが出現して、それを保持するための適切なコンテキストが存在しない場合、コンテキストが暗黙的に作成されるということに注意してください。
コンテキスト定義の中で、暗黙的に作り出されるサブコンテキストの種類は
\defaultchild
により指定されます。多くの音楽イベントは最下位 (‘Bottom’) のコンテキストが必要です。そのようなイベントが現れた場合、‘defaultchild’ 設定を持たないコンテキストに到達するまで、再帰的にサブコンテキストが作られます。
暗黙的にコンテキストが生成されることによって、予期しない譜や楽譜が生み出される可能性があります。\new
で明示的にコンテキストを作ることでこれらの問題を回避できます。
短い期間、あるコンテキストを存在させる必要がある場合があります。オッシアの譜コンテキストが良い例です。通常、これは主音楽の対応するセクションと並列に、適切な場所でコンテキスト定義を行うことで実現します。デフォルトでは、一時コンテキストは既存のすべてのコンテキストの下に配置されます。“main” というコンテキストの上に配置し直すには以下のようにします:
\new Staff \with { alignAboveContext = "main" }
ChoirStaff
のような複数の譜のレイアウトで一時的な歌詞を配置する場合
– 例えば、繰り返しセクションに 2 番目の歌詞を追加する場合 –
にも同様な状況が発生します。デフォルトでは、一時的な歌詞は下段の譜の下に配置されます。一時的な歌詞コンテキストを alignBelowContext
で定義することにより、1 番目の歌詞を保持する (名前付きの) 歌詞コンテキストの下に配置することができます。
一時コンテキストを再配置する例は他にもあります – Nesting music expressions、+個々の譜を変更する、それに 歌詞に特有のテクニック を参照してください。
参照
学習マニュアル: Nesting music expressions
記譜法リファレンス: 個々の譜を変更する, 歌詞に特有のテクニック
アプリケーション使用方法: An extra staff appears
インストールされているファイル: ‘ly/engraver-init.ly’
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < コンテキストの配置順序 ] | [ 上へ : デフォルトを変更する ] | [ 内部リファレンスを使いこなす > ] |
5.2 内部リファレンスの説明
5.2.1 内部リファレンスを使いこなす | ||
5.2.2 レイアウト インターフェイス | ||
5.2.3 グラフィカル オブジェクト プロパティを決定する | ||
5.2.4 命名規約 |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 内部リファレンスの説明 ] | [ 上へ : 内部リファレンスの説明 ] | [ レイアウト インターフェイス > ] |
5.2.1 内部リファレンスを使いこなす
以下の譜面の運指記号を移動させたいとします:
c''-2
運指指示のドキュメント (運指の指示) を見ると、以下のようなセクションがあることに気付くはずです:
参照
内部リファレンス: Fingering
Fingering へのリンクを辿ってください。ページの先頭に、以下のような記述があります:
Fingering objects are created by: Fingering_engraver and New_fingering_engraver.
内部リファレンスの中にある関連リンクを辿っていくことで、プログラム内部の情報フローを追っていくことができます:
-
Fingering:
Fingering objects are created by:
Fingering_engraver
( Fingering: Fingering オブジェクトを作成するのは: Fingering_engraver)
-
Fingering_engraver:
Music types accepted:
fingering-event
( Fingering_engraver: 受け取る音楽タイプは: fingering-event)
-
fingering-event:
Music event type
fingering-event
is in Music expressions named FingeringEvent( fingering-event: 音楽イベント タイプ
fingering-event
は FingeringEvent という名前の音楽表記の中にあります)
このパスは、プログラム内部での情報フローとは逆向きです: 出力からスタートして、入力イベントで終わっています。入力イベントからスタートして、情報フローを読み進め、最後は出力オブジェクトに辿り着くこともできます。
内部リファレンスを通常のドキュメントのように読むこともできます。内部リファレンスに含まれる章は、 Music definitions, Translation, それに Backend です。 各章は、使用されているすべての定義と調整可能なすべてのプロパティをリストアップしています。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 内部リファレンスを使いこなす ] | [ 上へ : 内部リファレンスの説明 ] | [ グラフィカル オブジェクト プロパティを決定する > ] |
5.2.2 レイアウト インターフェイス
前のセクションで見た HTML ページには、 Fingering と呼ばれるレイアウト オブジェクトについての記述がありました。そのようなオブジェクトは楽譜で記号となります。レイアウト オブジェクトは (太さや向きのような) 数値を保持するプロパティを持っていますが、関連オブジェクトへのポインタも持っています。レイアウト オブジェクトは Grob – これはグラフィカル オブジェクトを縮めたものです – とも呼ばれます。Grob についての詳細は、 grob-interface を参照してください。
Fingering
のページは、Fingering
オブジェクトの定義をリストアップしています。例えば、このページには以下のような記述があります:
padding
(dimension, in staff space):
0.5
これは、この運指記号は少なくとも符頭の 0.5 倍の距離を保つということを意味します。
各レイアウト オブジェクトは、記譜要素あるいは写植要素としての機能をいくつか持つ場合があります。例えば、Fingering
オブジェクトは以下の側面を持っています:
-
Its size is independent of the horizontal spacing, unlike slurs or beams.
(このオブジェクトのサイズは、スラーや連桁と異なり、水平方向のスペースとは無関係です)
-
It is a piece of text. Granted, it is usually a very short text.
(このオブジェクトはテキストです。通常、これは非常に短いテキストです。)
-
That piece of text is typeset with a font, unlike slurs or beams.
(このテキストは、スラーや連桁と異なり、フォントで写植されます。)
-
Horizontally, the center of the symbol should be aligned to the
center of the note head.
(水平方向では、この記号の中心は符頭の中心に揃えられます。)
-
Vertically, the symbol is placed next to the note and the staff.
(垂直方向では、この記号は音符や譜の近く配置されます。)
-
The vertical position is also coordinated with other superscript
and subscript symbols.
(また、垂直方向の位置は、他の上付き記号や下付き記号との調整によって決まります。)
これらの側面はそれぞれ、いわゆる インターフェイス として捉えられます。それらは、 Fingering ページの最下部でリストアップされています。
This object supports the following interfaces:
(このオブジェクトは以下のインターフェイスをサポートします:)
item-interface, self-alignment-interface, side-position-interface, text-interface, text-script-interface, font-interface, finger-interface, and grob-interface.
リンクのいずれかをクリックすると、それぞれのオブジェクト インターフェイスのページに行くことができます。各インターフェイスはいくつかのプロパティを持ちます。それらプロパティの中には、ユーザにとって役に立たないもの (‘内部プロパティ’) もありますが、それ以外は変更可能です。
これまで Fingering
オブジェクトについて話してきましたが、これは実際にはそれほど多くのことをしているわけではありません。初期化ファイル (
その他の情報源 を参照してください)
‘scm/define-grobs.scm’ がこの ‘オブジェクト’ の本質を示しています:
(Fingering . ((padding . 0.5) (avoid-slur . around) (slur-padding . 0.2) (staff-padding . 0.5) (self-alignment-X . 0) (self-alignment-Y . 0) (script-priority . 100) (stencil . ,ly:text-interface::print) (direction . ,ly:script-interface::calc-direction) (font-encoding . fetaText) (font-size . -5) ; don't overlap when next to heads. (meta . ((class . Item) (interfaces . (finger-interface font-interface text-script-interface text-interface side-position-interface self-alignment-interface item-interface))))))
見て取ることができるように、Fingering
オブジェクトは変数設定の塊に過ぎず、内部リファレンスの中にある Web ページは、この定義から直接生成されたに過ぎません。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < レイアウト インターフェイス ] | [ 上へ : 内部リファレンスの説明 ] | [ 命名規約 > ] |
5.2.3 グラフィカル オブジェクト プロパティを決定する
以下の 2 の位置を変更しようとしていたことを思い出してください:
c''-2
垂直方向で見て、2 は元の音符の隣に配置されるのですから、この配置に関連するインターフェイスに干渉する必要があります。これは side-position-interface
を用いて行います。このインターフェイスについてのページには、以下のように記述されています:
side-position-interface
Position a victim object (this one) next to other objects (the support). The property
direction
signifies where to put the victim object relative to the support (left or right, up or down?)(対象オブジェクトを他のオブジェクト (サポート オブジェクト) の隣に配置します。このプロパティ
direction
は、対象オブジェクトをどこに配置するかをサポート オブジェクトからの相対位置で示します (左あるいは右、上あるいは下?))
この記述の下に、以下のような変数 padding
についての記述があります:
padding
(dimension, in staff space) (譜スペースを単位とする距離)
Add this much extra space between objects that are next to each other. (隣り合うオブジェクトの間にスペースを付け加えます)
padding
の値を増やすことで、運指記号を符頭から離すことができます。以下のコマンドは、音符と運指記号の間に “3 譜スペース”分の距離を加えます:
\once \override Voice.Fingering.padding = #3
パディングを運指記号オブジェクトが作成される前に挿入すると、以下のようになります:
\once \override Voice.Fingering.padding = #3 c''-2
このケースでは、調整されるコンテキストは Voice
です。
Fingering_engraver プラグインを参照してください。以下のように説明されています:
Fingering_engraver is part of contexts: … Voice
(Fingering_engraver は次のコンテキストの一部です: … Voice)
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < グラフィカル オブジェクト プロパティを決定する ] | [ 上へ : 内部リファレンスの説明 ] | [ プロパティを変更する > ] |
5.2.4 命名規約
内部リファレンスについて他に説明しておくべき事柄として、さまざまな命名規約についての概要があります:
- Scheme 関数: 小文字の単語をハイフンでつなぎます (1 単語の名前も含みます) – 例: lowercase-with-hyphens
- LilyPond 独自の Scheme 関数: Scheme スタイルの先頭に
ly:
を付けます – 例: ly:plus-scheme-style - 音楽イベント、音楽クラス、それに音楽プロパティ: Scheme 関数と同じスタイルです – 例: as-scheme-functions
- グラフィカル オブジェクト インターフェイス: Scheme 関数と同じスタイルです – 例: scheme-style
- バックエンド プロパティ: Scheme 関数と同じスタイルです (が、X と Y があります!)
- コンテキスト (それに、音楽表記とグラフィカル オブジェクト): 大文字で始まる単語、あるいはそれらをつなげます – 例: Capitalized, CamelCase
- コンテキスト プロパティ: 小文字で始まる単語に、大文字で始まる単語をつなげます – 例: lowercaseFollowedByCamelCase
- エングラーバ: 大文字で始まる単語に、小文字で始まる単語をアンダスコアでつなげます – 例: Capitalized_followed_by_lowercase_and_with_underscores
このような疑問があります:
- 命名規約のうち、慣習なのはどれで、規則なのはどれか?
- 命名規約のうち、どれが基本言語の規則で、どれが LilyPond 特有の規則なのか?
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 命名規約 ] | [ 上へ : デフォルトを変更する ] | [ プロパティ変更の概要 > ] |
5.3 プロパティを変更する
5.3.1 プロパティ変更の概要 | ||
5.3.2 \set コマンド | ||
5.3.3 \override コマンド | ||
5.3.4 \tweak コマンド | ||
5.3.5 \set 対 \override | ||
5.3.6 \offset コマンド | ||
5.3.7 連想配列を変更する |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < プロパティを変更する ] | [ 上へ : プロパティを変更する ] | [ set コマンド > ] |
5.3.1 プロパティ変更の概要
各コンテキストは、ある特定のタイプのグラフィカル オブジェクトを作成することについて責任を持ちます。それらのオブジェクトを表示するために使用される設定も、コンテキストによって保存されます。それらの設定を変更することにより、オブジェクトの見た目を変えることができます。
コンテキストに保存されるプロパティには 2 種類あります: コンテキスト プロパティとグラフィカル オブジェクト プロパティです。コンテキスト プロパティは、コンテキスト全体に適用され、コンテキスト自体をどのように表示するかを制御します。対照的に、グラフィカル オブジェクト プロパティは、コンテキストの中に表示されるある特定のタイプのグラフィカル オブジェクトに適用されます。
\set
コマンドと \unset
コマンドは、コンテキスト プロパティの値を変更するために使用されます。\override
コマンドと \revert
コマンドは、グラフィカル オブジェクト プロパティの値を変更するために使用されます。
参照
内部リファレンス: Backend, All layout objects, OverrideProperty, RevertProperty, PropertySet
既知の問題と警告
バックエンドはオブジェクト プロパティのタイプ チェックをそれほど厳密には行いません。Scheme 値の循環参照は、ハング アップまたはクラッシュ、あるいは両方を引き起こす可能性があります。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < プロパティ変更の概要 ] | [ 上へ : プロパティを変更する ] | [ override コマンド > ] |
5.3.2 \set
コマンド
各コンテキストは プロパティ の集合を持ちます。プロパティとは、コンテキストの中に保持されている変数です。コンテキスト プロパティは、\set
コマンドによって変更されます。\set
コマンドは以下のような構文を持ちます:
\set context.property = #value
value は Scheme オブジェクトですので、#
文字を前に置く必要があります。
通常、コンテキスト プロパティの名前は、小文字で始まる単語に大文字で始まる単語をつなげたものです。これらはたいてい音楽から記譜への翻訳を制御します
– 例えば、localAlterations
(臨時記号を表示するかどうかを決定します)
や、measurePosition
(小節線を表示するタイミングを決定します) です。コンテキスト プロパティは、楽曲の解釈をしている間、ずっと値を変更しておくことができます。measurePosition
がその良い例です。コンテキスト プロパティは \set
で変更されます。
例えば、コンテキスト プロパティ skipBars
が
#t
にセットされていれば、複小節休符は 1 つの小節に統合されます
(空の小節を圧縮する で説明されています):
R1*2 \set Score.skipBars = ##t R1*2
context 引数が省略されている場合、プロパティはカレントの最下位のコンテキストにセットされます
(一般に、ChordNames
, Voice
, TabVoice
,
あるいは Lyrics
です)。
\set Score.autoBeaming = ##f \relative { e''8 e e e \set autoBeaming = ##t e8 e e e } \\ \relative { c''8 c c c c8 c c c }
変更は ‘オンザフライ’ (その場、その時々) で適用されるため、設定 \set autoBeaming = ##t
は 2 番目の 8 分音符グループだけに効果を持ちます。
最下位コンテキストが常に変更しようとしているプロパティを持っているとは限らないということに注意してください
– 例えば、skipBars
プロパティをデフォルトの最下位コンテキスト
(この場合は、Voice
です) にセットしようと試みても、効果はありません。なぜなら、skipBars
は Score
コンテキストのプロパティだからです。
R1*2 \set skipBars = ##t R1*2
コンテキストは階層構造をとるため、音楽表記を囲っているコンテキスト
– 例えば、Staff
– が指定された場合、変更は現在の Staff
の中にあるすべての Voice
に適用されます。
\unset
コマンド:
\unset context.property
は、context から property の定義を削除するために使用されます。このコマンドは、context の中にセットされた場合にのみ、定義を削除します。音楽表記を囲っているコンテキストにセットされたプロパティは、囲まれているコンテキストの中にある \unset
では変更されません:
\set Score.autoBeaming = ##t \relative { \unset autoBeaming e''8 e e e \unset Score.autoBeaming e8 e e e } \\ \relative { c''8 c c c c8 c c c }
\set
と同様に、
最下位コンテキストに対しては context 引数を指定する必要はありません。ですから、以下の 2 つの記述:
\set Voice.autoBeaming = ##t \set autoBeaming = ##t
は、カレントの最下位コンテキストが Voice
であれば、等価です。
\set
や \unset
の前に \once
を置くと、その設定は単一の時間ステップにだけ適用されます:
c''4 \once \set fontSize = #4.7 c''4 c''4
利用可能なすべてのコンテキスト プロパティについての完全な記述は、内部リファレンスにあります。以下を参照してください: Tunable context properties.
参照
内部リファレンス: Tunable context properties
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < set コマンド ] | [ 上へ : プロパティを変更する ] | [ tweak コマンド > ] |
5.3.3 \override
コマンド
特殊なタイプのコンテキスト プロパティがあります:
グラフィカル オブジェクト記述です。グラフィカル オブジェクト記述には StudlyCaps
という名前
(大文字で始まります) が付けられています。これらは、関連リストとして、ある特定の種類のグラフィカル オブジェクト用の
‘デフォルト設定’ を保持します。各グラフィカル オブジェクト記述の設定を調べるには、‘scm/define-grobs.scm’ を参照してください。各グラフィカル オブジェクト記述は \override
を用いて変更します。
\override
コマンドの構文は以下の通りです:
\override [context.]GrobName.property = #value
例えば、Stem
オブジェクトの thickness
プロパティをオーバライドすることによって、符幹の太さを太くすることができます:
c''4 c'' \override Voice.Stem.thickness = #3.0 c''4 c''
\override
でコンテキストが指定されていない場合、その下にあるコンテキストに適用されます:
\override Staff.Stem.thickness = #3.0 << \relative { e''4 e \override Stem.thickness = #0.5 e4 e } \\ \relative { c''4 c c c } >>
調整可能なオプションには ‘サブプロパティ’ があり、これはプロパティの内部に存在します。これを調整するには、以下のような形式のコマンドを用います:
\override Stem.details.beamed-lengths = #'(4 4 3)
また、スパナの端を変更するには、以下のようにします:
\override TextSpanner.bound-details.left.text = "left text" \override TextSpanner.bound-details.right.text = "right text"
\override
の効果は、\revert
によって元に戻すことができます。
\revert
の構文は以下の通りです:
\revert [context.]GrobName.property
例を示します:
\relative { c''4 \override Voice.Stem.thickness = #3.0 c4 c \revert Voice.Stem.thickness c4 }
\override
と \revert
の効果は、その時点から影響を受けるコンテキストの中にあるすべてのグラフィカル オブジェクトに適用されます:
<< \relative { e''4 \override Staff.Stem.thickness = #3.0 e4 e e } \\ \relative { c''4 c c \revert Staff.Stem.thickness c4 } >>
\once
を \override
や \revert
と共に用いることで、カレントの時間ステップだけに効果を与えることができます:
<< \relative c { \override Stem.thickness = #3.0 e''4 e e e } \\ \relative { c''4 \once \override Stem.thickness = #3.0 c4 c c } >>
参照
内部リファレンス: Backend
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < override コマンド ] | [ 上へ : プロパティを変更する ] | [ set 対 override > ] |
5.3.4 \tweak
コマンド
\tweak
を用いたグラフィカル オブジェクト プロパティの変更は、コンテキストの中にあるすべてのグラフィカル オブジェクトに適用されます。しかしながら、影響を受けるコンテキストの中にあるすべてのグラフィカル オブジェクトではなく、1 つのグラフィカル オブジェクトだけに変更を適用したい場合もあります。そうするには、\tweak
コマンドを用います。\tweak
コマンドは以下のような構文を持ちます:
\tweak [layout-object.]grob-property value
layout-object
の指定はオプションです。\tweak
コマンドは、音楽の流れの中で
value
のすぐ後に現れる音楽オブジェクトに変更を適用します。
調整コマンドの構文と使用方法についての紹介は、 調整手段 を参照してください。
同じようなオブジェクトがいくつか、同じ音楽タイミングで配置されている場合、\override
コマンドでそれらの 1 つだけを変更することはできません
– \tweak
コマンドを用いる必要があります。同じ音楽タイミングで複数出現する可能性があるオブジェクトには、以下のようなものがあります:
- 和音の中にある音符の符頭
- 1 つの音符に付けられるアーティキュレーション記号
- 和音の中にある音符の間に付けられるタイ
- 同時に始まる連符の囲み
以下の例では、和音の中にある符頭の 1 つの色を変更し、さらに他の符頭のタイプを変更しています:
< c'' \tweak color #red d'' g'' \tweak duration-log #1 a'' > 4
\tweak
を用いて、スラーを変更することができます:
\relative { c'-\tweak thickness #5 ( d e f) }
\tweak
コマンドが機能するためには、入力ファイルが音楽の流れに変換されたときに、\tweak
コマンドのすぐ後に変更が適用されるオブジェクトが配置されている必要があります。
和音全体に対する調整は何の効果もありません。なぜなら、和音の音楽イベントはコンテナと機能するだけで、すべてのレイアウト
オブジェクトは EventChord
の内部にあるイベントによって作成されるからです:
\tweak color #red c''4 \tweak color #red <c'' e''>4 <\tweak color #red c'' e''>4
単純な \tweak
コマンドでは入力から直接作成されないオブジェクトを変更することはできません。特に、符幹、自動連桁、それに臨時記号には効果を持ちません。なぜなら、それらは入力ストリームの中の音楽要素によって生成されるのではなく、後になって NoteHead
レイアウト オブジェクトによって生成されるからです。
そのような直接作成されないレイアウト オブジェクトは、グラフィカル
オブジェクト名を明示的に指定した \tweak
コマンドを用いることで調整することができます:
\tweak Stem.color #red \tweak Beam.color #green c''8 e'' <c'' e'' \tweak Accidental.font-size #-3 ges''>4
\tweak
コマンドで音部記号や拍子記号を変更することはできません。なぜなら、コンテキストを指定するために必要とされる追加要素の自動挿入により、それらは前に配置された \tweak
コマンドとは分離されるからです。
記譜要素の前に複数の \tweak
コマンドを配置することができます
– それらはすべて効果を持ちます:
c' -\tweak style #'dashed-line -\tweak dash-fraction #0.2 -\tweak thickness #3 -\tweak color #red \glissando f''
入力ファイルのあるセクションから生成される音楽の流れ
– 自動的に挿入される要素も含めて –
が、検証されます。
Displaying music expressions を参照してください。これは、\tweak
コマンドによって変更されるオブジェクトを決定するとき、あるいは、\tweak
の適用で入力を調整する方法を決定するときに役に立つかもしれません。
参照
学習マニュアル: 調整手段
拡張: Displaying music expressions
既知の問題と警告
\tweak
コマンドで和音の中にある複数のタイのうち 1 つだけの位置を変更することはできません。入力ファイルの中で最初に遭遇したタイの位置を変更してしまいます。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < tweak コマンド ] | [ 上へ : プロパティを変更する ] | [ offset コマンド > ] |
5.3.5 \set
対 \override
\set
と \override
コマンドは、コンテキストと結びついたプロパティを操作するものです。どちらの場合も、プロパティはコンテキストの階層に従います。そのコンテキスト自身で値がセットされていないプロパティは、対応する親コンテキストのプロパティの値を用いることになります。
コンテキスト プロパティの値や、その有効期間は動的なものであり、音楽が解釈 (つまり、‘イテレート’) されている最中にのみ有効なものです。コンテキストが生成される時、プロパティはそのコンテキストの定義に従って (変更が加えられる場合もあります) 初期化されます。続く変更は、音楽内にある‘プロパティを変更する’コマンドによって行われます。
グラフィカル オブジェクト (あるいは “grob”) の定義は、コンテキスト プロパティの中でも特別なカテゴリに属しており、構造や使用方法が通常のコンテキスト プロパティとは異なります。Grob の定義は、Grob プロパティに細分化されます。
また、通常のコンテキスト プロパティと異なる点がもう一つあり、Grob 定義はそれぞれの Grob プロパティやサブプロパティを追跡するために用いる内部‘記録’を持っています。そのため、これらのプロパティを異なるコンテキストに定義していても、Grob が生成される時には現在のコンテキストとその親の間で保持しているプロパティを受け継ぐことで、全ての Grob 定義を保持している状態になります。
Grob は音楽表記を解釈する際にエングラーバによって作成され、エングラーバが属するコンテキストの現在の Grob 定義から初期プロパティを受け取ります。 その後、エングラーバ (あるいは LilyPond の‘バックエンド’の部分) は Grob の初期プロパティを変更 (または追加) することができます。しかし、これはコンテキスト自身の Grob 定義には影響しません。
LilyPond が、‘ユーザ レベル’での調整において用いる Grob プロパティという言葉は、実はコンテキスト自身の持つ Grob 定義のプロパティを指しています。
Grob 定義は \override
と \revert
という、異なるコマンド セットでアクセスあるいは操作され、大文字で始まる名前を持ちます
(例えば ‘NodeHead’)。一方、通常のコンテキスト プロパティは
\set
と \unset
というコマンドで操作され、小文字で始まる名前を持ちます。
\tweak
や \overrideProperty
は、全てのコンテキスト プロパティを完全に無視して対象の Grob プロパティを変更します。この際、Grob が生成されるタイミングで取得され、\tweak
では音楽イベントに関連する
Grob のプロパティが変更されます。\overrideProperty
は特定のオーバライドに対して使用します。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < set 対 override ] | [ 上へ : プロパティを変更する ] | [ 連想配列を変更する > ] |
5.3.6 \offset
コマンド
\override
, \tweak
, \overrideProperty
コマンドによって
Grob プロパティを新たな値にセットすることができますが、そのようなプロパティをデフォルトの値との相対関係で変更できると便利な場合があります。\offset
コマンドはこのような目的のために使用することができます。
\offset
の記法は:
[-]\offset property offsets item
このコマンドは、item によって指定される Grob の property プロパティのデフォルト値に、offsets の内容を加算します。
コマンドの記法によって、\offset
は \tweak
のように作用するか
\override
のように作用します。この使用法の差は \offset
と用いられる Grob プロパティについてもう少し説明した後に示します。
オフセットできるプロパティ
全てではないですが、多くの Grob プロパティをオフセットすることができます。property がオフセットできない場合、オブジェクトは変更されず、警告が出力されます。このような場合には、代わりに \override
や \tweak
を用いてオブジェクトを変更する必要があります。
トライアンドエラーで、警告を手がかりにしてオフセットできるものとできないものを判別することができます。しかし、より系統的なアプローチも存在します。
次の基準は、プロパティが \offset
で変更できるかどうかの目安になります:
- Grob の説明に‘デフォルト設定’が記述されているプロパティ。このようなプロパティは All layout objects に Grob 毎にリストアップされています。(これらは ‘scm/define-grobs.scm’ からも確認することができます。)
-
数値を取るプロパティ。具体的には
number
、number
のリスト、number-pair
、number-pair-list
を取るものを指します。 All layout objects のページは、それぞれのプロパティが取るデータの型をリストアップしています。これはデフォルト設定が関数であっても問題ありません。 - ‘サブ プロパティ’ではないプロパティ。サブ プロパティとは、他のプロパティの中にあるプロパティを指します。
- 無限大にセットされていないプロパティ。正や負の無限大をオフセットする良い方法はありません。
次の例では、いくつかの Grob プロパティのオフセット可能性を、上の基準に基づいて判断します。
- オフセットできるプロパティ
-
Hairpin.height
-
このプロパティはサブ プロパティではなく、 Hairpin にリストアップされています。値については、‘dimension, in staff space’ を取り、デフォルト値は
0.6666
です—無限大ではないnumber
となっています。 -
Arpeggio.positions
-
Arpeggio のページには、
positions
プロパティが ‘pair of numbers’ を取ると記述されています。デフォルト値はly:arpeggio::positions
となっています—これは、タイプセットの時に評価され、各Arpeggio
オブジェクトについてnumber
のペアを返すコールバック関数です。
-
- オフセットできないプロパティ
offset を override として使う
item が Grob の名前 (例えば Arpeggio
や Staff.OttavaBracket
)
である場合、\offset
の結果は指定された Grob の \override
となります。
\offset property offsets [context.]GrobName
‘override’ の形では、先頭のハイフンは必ず使われません。\override
コマンドにハイフンが使われないのと同様です。
次の例では、最初の小節にあるデフォルト設定のアルペジオを、‘override’ 形でより和音全体に広がるようにオフセットします。アルペジオは上下に譜スペースの半分ずつ広がります。また、最初の和音について通常の方法で positions
プロパティをオーバライドする例も示しています。この方法では端点を相対座標ではなく絶対座標で指定しなければならないため、‘譜スペースの半分だけ広げる’という目的を全く表現できていません。また、他の和音についてはまたサイズや位置が異なるため、それぞれに別の \override
が必要です。
arpeggioMusic = { <c' e' g'>\arpeggio <a' c'' e''>\arpeggio <d' f' a' c''>\arpeggio <c' e' g' b' d'' f'' a''>\arpeggio } { \arpeggioMusic \bar "||" \offset positions #'(-0.5 . 0.5) Arpeggio \arpeggioMusic \bar "||" \once \override Arpeggio.positions = #'(-3.5 . -0.5) <c' e' g'>1\arpeggio \bar "||" }
‘override’ の形では、\offset
の前に \once
や \temporary
を置くことができ、\revert
で元に戻すことができます
(
Intermediate substitution functions を参照してください)。つまり、\offset
は実際には property の \override
を作成していることになります。
music = { c'8\< d' e' f'\! } { \music \offset height 1 Hairpin \music \music \revert Hairpin.height \music \bar "||" \once \offset height 1 Hairpin \music \music \bar "||" \override Hairpin.height = 0.2 \music \temporary \offset height 2 Hairpin \music \music \revert Hairpin.height \music \bar "||" }
また、\override
と同様に、\offset
の ‘override’ 形は
\undo
や \single
と使用することもできます:
longStem = \offset length 6 Stem { \longStem c'4 c''' c' c'' \bar "||" \undo \longStem c'4 c''' c' c'' \bar "||" \single \longStem c'4 c''' c' c'' \bar "||" }
offset を tweak として使う
item が音楽表記 ((
や \arpeggio
など) である場合、‘tweak’ が適用された音楽表記が出力されます。
[-]\offset [GrobName.]property offsets music-expression
‘tweak’ 形の \offset
の記法は、\tweak
コマンドそのものに似ています。引数の順番や、前に付くハイフンはそれと同様です。
次の例は、BreathingSign
オブジェクトの縦位置を調整するために
‘tweak’ 形を用いています。これと、通常の \tweak
コマンドによる例を見比べてください。記法は同一ですが、\tweak
の出力はあまり直感的ではありません。なぜなら、BreathingSign.Y-offset
が譜線の中央を原点として計算されるためです。\offset
を使えば、Y-offset
がどのように計算されているかを知る必要はありません。
{ c''4 \breathe c''4 \offset Y-offset 2 \breathe c''2 \tweak Y-offset 3 \breathe }
前の例では、‘tweak’ されたオブジェクトはユーザの入力から直接作られています:
\breathe
コマンドは BreathingSign
オブジェクトを明示的に作り出すためです。コマンドが対象にするオブジェクトが曖昧ではないため、オブジェクトの名前を指定する必要はありませんでした。しかし、オブジェクトが間接的に作られる場合には、Grob の名前を含める必要があります。これは \tweak
コマンドと同様です。
次の例では、Beam
オブジェクトの positions
プロパティを
\offset
することで、連桁を 2 譜スペース分下にずらしています。
最初の \offset
では、連桁を明示的に作り出すものが存在しないため、
Grob の名前が必要となります。次の \offset
では、連桁が音楽表記
[
によって手動で作り出されるため、Grob の名前は必要ではありません。(また、後者では number-pair
の両方をオフセットするために、単一の number
を用いる省略記法も示しています。)
{ c''8 g'' e'' d'' \offset Beam.positions #'(-2 . -2) c''8 g'' e'' d'' c''8 g'' e'' d'' c''8-\offset positions #-2 [ g'' e'' d''] }
改行するスパナを offset する
改行や改ページにまたがるスパナの一部分を個別に変更することもできます。このような場合、offsets はプロパティが要求する型のリストを取ります。
このように用いられる \offset
コマンドは \alterBroken
コマンドと類似しています。(改行するスパナを変更する を参照してください。)
ただし、\alterBroken
とは異なり、\offset
に与えられる値は絶対値ではなく相対値となります。
次の例は、‘改行する’ OttavaBracket
オブジェクトを、staff-padding
プロパティにより移動します。プロパティは元々 number
を取るため、offsets は number
のリストを取り、改行によって分けられる 2 つの部分に対応します。1 行目のブラケットは、staff-padding
のデフォルト値に
0
が加算されることになるため実質変更されません。2 行目のブラケットはデフォルトの高さから 3 譜スペースだけ上に移動します。高さのデフォルト値
(絶対値) は 2
ですが、位置をオフセットするためにこの値を知る必要はありません。
{ \offset staff-padding #'(0 3) Staff.OttavaBracket \ottava #1 c'''2 c''' \break c'''2 c''' }
次の例は、Slur
オブジェクトの control-points
プロパティをオフセットすることで \shape
コマンドを模倣しています。ここでは、offsets は number-pair-list
のリストとなり、それぞれの要素がスラーの一つの部分に対応します。この例では、形状を変更する に示した例と全く同じ結果を出力します。
{ c'4-\offset control-points #'( ((0 . 0) (0 . 0) (0 . 0) (0 . 1)) ((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5)) ) ( f'4 g' c'' \break d'4 c'' f' c') }
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < offset コマンド ] | [ 上へ : プロパティを変更する ] | [ 役に立つコンセプトとプロパティ > ] |
5.3.7 連想配列を変更する
ユーザが変更可能なプロパティの中には、内部的には 連想配列 として存在しているものがあります – 連想配列は キー と 値 のペアの配列を保持します。連想配列の構造は下記のとおりです:
'((キー1 . 値1) (キー2 . 値2) (キー3 . 値3) …)
ある連想配列がグラフィカル オブジェクト プロパティまたは
\paper
変数である場合、その連想配列の個々のキーを、他のキーに影響を与えることなく、変更することができます。
例えば、譜グループの中にある隣り合う譜間のスペースを減らすには、StaffGrouper
グラフィカル オブジェクトの
staff-staff-spacing
プロパティを使用します。このプロパティは 4 つのキー
– basic-distance
, minimum-distance
,
padding
, それに stretchability
–
を持つ連想配列です。このプロパティの標準設定は、内部リファレンスの “Backend” セクションでリストアップされています
(
StaffGrouper を参照してください):
'((basic-distance . 9) (minimum-distance . 7) (padding . 1) (stretchability . 5))
譜間のスペースを小さくする方法の 1 つは、basic-distance
キーの値 (9
) を
minimum-distance
キーの値 (7
) 近くまで減らすことです。個々のキーを変更するには、ネストされた宣言 を使います:
% デフォルトの譜間スペース \new PianoStaff << \new Staff { \clef treble c''1 } \new Staff { \clef bass c1 } >> % 譜間スペースを減らします \new PianoStaff \with { % this is the nested declaration \override StaffGrouper.staff-staff-spacing.basic-distance = #7 } << \new Staff { \clef treble c''1 } \new Staff { \clef bass c1 } >>
ネストされた宣言は、プロパティの他のキーに変更を加えることなく、指定されたキー (上の例では basic-distance
) を更新します。
今度は、譜を重ならない範囲でできる限り近づけたいとします。最も簡単な方法は、連想配列の 4 つのキーすべてを 0 にセットすることです。しかしながら、4 つのネストされた宣言を記述する必要はありません。1 つの宣言でプロパティを丸ごと再定義することができます:
\new PianoStaff \with { \override StaffGrouper.staff-staff-spacing = #'((basic-distance . 0) (minimum-distance . 0) (padding . 0) (stretchability . 0)) } << \new Staff { \clef treble c''1 } \new Staff { \clef bass c1 } >>
連想配列の再定義でリストアップされなかったキーは、セットされなかった場合のデフォルト値 にリセットされます。staff-staff-spacing
の場合、セットされなかったキーは 0 にリセットされます
(stretchability
は例外で、セットされなかった場合、basic-distance
にリセットされます)。このため、以下の 2 つの宣言は等価です:
\override StaffGrouper.staff-staff-spacing = #'((basic-distance . 7)) \override StaffGrouper.staff-staff-spacing = #'((basic-distance . 7) (minimum-distance . 0) (padding . 0) (stretchability . 7))
連想配列の再定義でリストアップされなかったキーがあることにより、初期化ファイルでセットされたり、入力ファイルがコンパイルされるときに読み込まれた標準設定が (意図せずに) 削除される可能性があります。上の例では、padding
と minimum-distance
の標準設定
(‘scm/define-grobs.scm’ で定義されます) は、セットされなかった場合のデフォルト値 (両方とも 0) にリセットされます。プロパティや (任意のサイズ) 連想配列を定義した場合、セットされなかったキー値はすべて セットされなかった場合のデフォルト値
にリセットされます。そうすることを意図しているのでない限り、ネストされた宣言を用いてキー値を個々に更新する方が安全です。
Note: ネストされた宣言は、コンテキスト プロパティ連想配列
(beamExceptions
, keyAlterations
, timeSignatureSettings
等)
に対しては機能しません。これらのプロパティを変更するには、連想配列として丸ごと再定義するしかありません。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 連想配列を変更する ] | [ 上へ : デフォルトを変更する ] | [ 入力モード > ] |
5.4 役に立つコンセプトとプロパティ
5.4.1 入力モード | ||
5.4.2 向きと配置 | ||
5.4.3 距離と距離の単位 | ||
5.4.4 寸法 | ||
5.4.5 譜記号プロパティ | ||
5.4.6 スパナ | ||
5.4.7 オブジェクトの可視性 | ||
5.4.8 ライン スタイル | ||
5.4.9 オブジェクトを回転させる |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 役に立つコンセプトとプロパティ ] | [ 上へ : 役に立つコンセプトとプロパティ ] | [ 向きと配置 > ] |
5.4.1 入力モード
入力ファイルの中に保持されている記譜を解釈する方法は、現在の入力モードによって決定されます。一般的には、入力モードを指定する方法は 2 種類あります:
長い形 (例えば \chordmode
) と短い形 (例えば \chords
) です。長い形は通常、入力を変数に格納する際や、明示的に作成されたコンテキストに直接音楽を入力する際に使用されます。短い形は、入力に対応したコンテキストを暗黙的に作成し、そのコンテキストに直接入力を渡します。入力を受け取るコンテキストを明示的に生成する必要がないような、シンプルな状況において有用です。
和音モード
このモードは \chordmode
コマンドで有効になり、入力はコード記譜法の構文で解釈されるようになります。和音記譜法 を参照してください。和音モードで入力された音楽は、Staff
コンテキスト内では和音として、ChordNames
コンテキスト内ではコード ネームとして、FretBoards
コンテキスト内ではフレットボードとして表示されます。
和音モードは \chords
コマンドでも有効になります。このコマンドを用いると、入力は暗黙的に作成された ChordNames
コンテキストの中でコード記譜法の構文で解釈され、コード ネームとして表示されます。コード ネームを譜刻する を参照してください。
ドラム モード
このモードは \drummode
コマンドで有効になり、入力はドラム記譜法の構文で解釈されるようになります。基本的な打楽器の記譜法 を参照してください。ドラム モードで入力された音楽は、DrumStaff
コンテキストの中で打楽器の音符として表示されます。
また、ドラム モードは \drums
コマンドでも有効になります。このコマンドを用いると、入力は暗黙的に作成された DrumStaff
コンテキストの中でドラム記譜法の構文で解釈され、打楽器の音符として表示されます。基本的な打楽器の記譜法 を参照してください。
通奏低音モード
このモードは \figuremode
コマンドで有効になり、入力は通奏低音の構文で解釈されるようになります。通奏低音を入力する を参照してください。通奏低音モードで入力された音楽は、FiguredBass
コンテキストか
Staff
コンテキストの中で通奏低音として表示されます。
また、通奏低音モードは \figures
コマンドでも有効になります。このコマンドを用いると、入力は暗黙的に作成された FiguredBass
コンテキストの中で通奏低音の構文で解釈され、通奏低音記号として表示されます。通奏低音の導入部 を参照してください。
フレットとタブ モード
フレット記号とタブ記号を入力するための特別な入力モードはありません。
タブ図を作成するには、音符モードで音符や和音を入力して、それらを TabStaff
コンテキストの中に表示します。デフォルトのタブ譜 を参照してください。
譜の上にフレット図を作成するには、音符モードか和音モードのどちらかで音符や和音を入力し、それらを FretBoards
コンテキストの中に表示します。自動フレット ダイアグラム を参照してください。または、フレット図は \fret-diagram
コマンドを用いて、音符の上にマークアップとして入力することもできます。フレット ダイアグラム マークアップ を参照してください。
歌詞モード
このモードは \lyricmode
コマンドで有効になり、入力はオプションで演奏時間を持つ歌詞音節や、歌詞の修飾子として解釈されます。声楽 を参照してください。歌詞モードでの入力は、Lyrics
コンテキストの中で歌詞音節として表示されます。
また、歌詞モードは \lyrics
コマンドでも有効になります。このコマンドを用いると、入力は暗黙的に作成された Lyrics
コンテキストの中で歌詞音節の構文で解釈され、歌詞音節として表示されます。
また、歌詞モードは \addlyrics
コマンドでも有効になります。このコマンドも同様に Lyrics
コンテキストを暗黙的に作り出しますが、前にある音楽に紐づくように \lyricsto
コマンドも暗黙的に作り出します。歌詞音節の自動演奏時間 を参照してください。
マークアップ モード
このモードは \markup
コマンドで有効になり、入力はマークアップの構文で解釈されるようになります。\markup コマンドの一覧 を参照してください。
音符モード
このモードはデフォルトのモードであり、\notemode
コマンドで有効にすることもできます。入力はピッチ、演奏時間、マークアップなどとして解釈され、譜面上に音楽記譜として写植されます。
通常、音符モードを明示的に指定する必要はありません。しかしながら、ある特定の状況 – 例えば、歌詞モード、和音モード、あるいは他のモードを使っていて、音符モードの構文でしか入力できないものを入力しようとしている場合 – では、音符モードを明示的に指定することが有用な場合があります。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 入力モード ] | [ 上へ : 役に立つコンセプトとプロパティ ] | [ アーティキュレーションの方向指示子 > ] |
5.4.2 向きと配置
楽譜を写植しているとき、多くの要素の向きと配置には選択の余地があります。例えば、音符の符幹は上向きあるいは下向きにすることができ、歌詞、強弱記号、他の表現記号は譜の上あるいは下に配置することができ、テキストは左揃え、右揃え、あるいは中央揃えにすることができる、などです。これらの選択のほとんどは LilyPond によって自動的に決定されますが、強制的に向きや配置を指定することが望ましい場合もあります。
アーティキュレーションの方向指示子 | ||
方向プロパティ |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 向きと配置 ] | [ 上へ : 向きと配置 ] | [ 方向プロパティ > ] |
アーティキュレーションの方向指示子
デフォルトでは、アーティキュレーションのいくつかの向きは常に上または下になっています (例えば、強弱記号やフェルマータ)。一方、他のアーティキュレーションは、符幹の向きによって、向きが上下します (スラーやアクセントなど)。
アーティキュレーションの前に 方向指示子 を置くことで、デフォルトの向きをオーバライドすることができます。3 つの方向指示子があります: ^
(“上向き” を意味します)、_
(“下向き” を意味します)、それに -
(“デフォルトの向き” を意味します) です。通常、方向指示子は省略することができ、その場合は -
と見なされます。しかしながら、以下のものの前には 常に 方向指示子を置く必要があります:
-
\tweak
コマンド -
\markup
コマンド -
\tag
コマンド - 文字列マークアップ。例えば、-"string"
- 運指指示。例えば、
-1
- アーティキュレーションの短縮記法。例えば、
-.
,->
,--
方向指示子は、その後にくる音符だけに効果を持ちます:
\relative { c''2( c) c2_( c) c2( c) c2^( c) }
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < アーティキュレーションの方向指示子 ] | [ 上へ : 向きと配置 ] | [ 距離と距離の単位 > ] |
方向プロパティ
多くのレイアウト オブジェクトの位置や向きは、direction
プロパティによって制御されます。
direction
プロパティの値は、1
(“上向き” あるいは “上” を意味します)、-1
(“下向き” あるいは “下” を意味します)
にセットすることができます。記号 UP
と DOWN
は、それぞれ 1
と -1
の代わりに用いることができます。デフォルトの向きを指定するには、direction
を 0
あるいは CENTER
にセットします。このような方法を用いる代わりに、多くの場合で、向きを指定するための前置コマンドが存在しています。それらはすべて以下のような形式をとります:
\xxxUp, \xxxDown, \xxxNeutral
ここで、\xxxNeutral
は “デフォルトの向きを使用する”
ことを意味します。
譜内部オブジェクト を参照してください。
いくつかのケースでは
– 一般的な例としてはアルペジオしかありません –
direction
プロパティの値は、オブジェクトが親オブジェクトの左右どちらに配置されるかを指定します。
この場合、-1
あるいは LEFT
は “左側” を意味し、1
あるいは RIGHT
は “右側” を意味します。0
あるいは CENTER
は、前のケースと同様に、“デフォルトの向きを使用する” ことを意味します。
これらの指示子は、キャンセルされるまで効果を持ちます。
\relative { c''2( c) \slurDown c2( c) c2( c) \slurNeutral c2( c) }
多声の音楽では、一般的にオブジェクトの向きを変えるよりも明示的に
voice
を指定した方が良いです。更なる情報は、複数のボイス を参照してください。
参照
学習マニュアル: Within-staff objects
記譜法リファレンス: 複数のボイス
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 方向プロパティ ] | [ 上へ : 役に立つコンセプトとプロパティ ] | [ 寸法 > ] |
5.4.3 距離と距離の単位
LilyPond における距離には 2 つのタイプがあります: 絶対距離と相対距離です。
絶対距離は、マージン、インデント、それにその他の詳細なページ レイアウトを指定するために使用され、デフォルトではミリメートルで指定されます。
距離は以下の単位で指定することもできます: \mm
, \cm
,
\inch
(インチ), それに \pt
(ポイント。1/73.27 インチ) です。また、ページ レイアウトにおける距離は、値の後ろに \staff-space
を付けることにより、
比率で指定することもできます (次の段落を参照してください)。ページ レイアウトについての詳細は、ページ レイアウト に記述されています。
相対距離は常に譜スペースを単位として指定されます
– 稀に、半譜スペースが使用されます。譜スペースは隣り合う 2 本の譜線間の距離です。グローバル譜サイズを設定することにより、デフォルト値をグローバルに変更することができます。また、StaffSymbol
の staff-space
プロパティを変更することにより、譜スペースをローカルにオーバライドすることもできます。相対距離は、グローバル譜サイズや StaffSymbol
の staff-space
プロパティのいずれかが変更されると、自動的に変更されます。しかしながら、フォントの比率はグローバル譜サイズが変更された場合にのみ、自動的に変更されます。そのため、グローバル譜サイズは容易に描画される楽譜全体のサイズを変更することができます。グローバル譜サイズを設定するための手段については、譜サイズを設定する を参照してください。
楽譜のある部分だけの比率を変更したいのなら
– 例えば、オッシア セクションや脚注で –
単純にグローバル譜サイズを変更するわけにはいきません。なぜなら、グローバル譜サイズを変更すると、楽譜全体が影響を受けるからです。そのような場合、StaffSymbol
の staff-space
プロパティとフォントのサイズをオーバライドすることにより、サイズを変更します。フォント サイズの変更を staff-space
単位の変更に変換するには、Scheme 関数 magstep
を使用することができます。この関数の説明と使用例については、
オブジェクトの長さと太さ を参照してください。
参照
学習マニュアル: オブジェクトの長さと太さ
記譜法リファレンス: ページ レイアウト, 譜サイズを設定する
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 距離と距離の単位 ] | [ 上へ : 役に立つコンセプトとプロパティ ] | [ 譜記号プロパティ > ] |
5.4.4 寸法
グラフィカル オブジェクトの寸法 (大きさ) は、オブジェクトのバウンディング ボックスの左右端の位置、上下端の位置を指定します。これらはオブジェクトの参照ポイントからの距離で指定し、単位は譜スペースです。これらの位置は通常 2 つの Scheme ペアで表現します。例えば、テキスト マークアップ コマンド \with-dimensions
は
3 つの引数を取り、最初の 2 つが左右端の位置と上下端の位置を示す
Scheme ペアです:
\with-dimensions #'(-5 . 10) #'(-3 . 15) arg
これは arg のバウンディング ボックスの左端を -5, 右端を 10, 下端を -3, 上端を 15 に指定しています。全てオブジェクトの参照ポイントから、譜スペースの単位で計測されています。
参照
記譜法リファレンス: 距離と距離の単位
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 寸法 ] | [ 上へ : 役に立つコンセプトとプロパティ ] | [ スパナ > ] |
5.4.5 譜記号プロパティ
譜線の垂直位置と譜線の本数を同時に定義することができます。以下の例が示すように、音符の位置は譜線の位置には影響されません。
Note: 'line-positions
プロパティは 'line-count
をオーバライドします。譜線の本数は、'line-positions
の値リストの中にある要素数によって、暗黙的に定義されます。
\new Staff \with { \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7) } \relative { a4 e' f b | d1 }
譜の幅を変更することができます。単位は譜スペースです。譜内部のオブジェクトのスペースは、この設定によって影響を受けません。
\new Staff \with { \override StaffSymbol.width = #23 } \relative { a4 e' f b | d1 }
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 譜記号プロパティ ] | [ 上へ : 役に立つコンセプトとプロパティ ] | [ spanner-interface を使用する > ] |
5.4.6 スパナ
多くの音楽記譜オブジェクトは、複数の音符あるいは複数の小節にまたがって、広がりを持ちます。例としては、スラー、連桁、連譜の囲み、volta 繰り返しの囲み、クレッシェンド、トリル、それにグリッサンドがあります。そのようなオブジェクトは総称して “スパナ” と呼ばれ、それらの見た目と振る舞いを制御するための特殊なプロパティを持ちます。これらのプロパティのいくつかは、すべてのスパナに共通しています。他のプロパティはスパナの部分集合に限定されています。
すべてのスパナは spanner-interface
をサポートします。いくつかのスパナ – 2 つのオブジェクトの間に直線を描くもの – は、さらに、line-spanner-interface
をサポートします。
spanner-interface を使用する | ||
line-spanner-interface を使用する |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < スパナ ] | [ 上へ : スパナ ] | [ line-spanner-interface を使用する > ] |
spanner-interface
を使用する
このインターフェイスは、いくつかのスパナに適用される 2 つのプロパティを提供します。
The minimum-length
プロパティ
スパナの最短の長さは、minimum-length
プロパティによって指定されます。通常、このプロパティを増加させると、スパナの両端の間にある音符の間隔は増加します。しかしながら、このオーバライドは多くのスパナで効果を持ちません。なぜなら、それらの長さは他の要素によって決定されるからです。以下に効果を持つ例を 2, 3 示します。
a'~ a' a' % タイの長さを増加させます -\tweak minimum-length #5 ~ a'
\relative \compressMMRests { a'1 R1*23 % 休符バーの長さを増加させます \once \override MultiMeasureRest.minimum-length = #20 R1*23 a1 }
\relative { a' \< a a a \! % ヘアピンの長さを増加させます \override Hairpin.minimum-length = #20 a \< a a a \! }
さらに、このオーバライドはスラーとフレージング スラーの長さを増加させるためにも使用されます:
\relative { a'( g) a -\tweak minimum-length #5 ( g) a\( g\) a -\tweak minimum-length #5 \( g\) }
いくつかのレイアウト オブジェクトでは、minimum-length
プロパティは、set-spacing-rods
プロシージャが明示的に呼び出された場合にのみ効果を持ちます。このプロシージャを呼び出すには、springs-and-rods
プロパティにly:spanner::set-spacing-rods
をセットしておく必要があります。例えば、グリッサンドの最短長は、springs-and-rods
プロパティが設定されていない限り、効果を持ちません:
% デフォルト e' \glissando c'' % 単独では効果を持ちません \once \override Glissando.minimum-length = #20 e' \glissando c'' % 以下の両方のオーバライドが存在する場合にのみ、効果を持ちます \once \override Glissando.minimum-length = #20 \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods e' \glissando c''
Beam
オブジェクトでも同じことが言えます:
% 単独では効果を持ちません \once \override Beam.minimum-length = #20 e'8 e' e' e' % 以下の両方のオーバライドが存在する場合にのみ、効果を持ちます \once \override Beam.minimum-length = #20 \once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods e'8 e' e' e'
The to-barline
プロパティ
spanner-interface
の 2 番目に有用なプロパティは
to-barline
です。デフォルトではこのプロパティは真であり、小節の最初の音符のところで終了するヘアピンや他のスパナは直前の小節線のところで終了させられます。偽に設定すると、スパナは小節線を越えて、音符のところで終了します:
\relative { a' \< a a a a \! a a a \break \override Hairpin.to-barline = ##f a \< a a a a \! a a a }
このプロパティはすべてのスパナに対して効果を持つわけではありません。例えば、スラーやフレージング スラー、あるいは小節線で終了させることに意味が無い他のスパナに対して、このプロパティを #t
に設定しても効果がありません。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < spanner-interface を使用する ] | [ 上へ : スパナ ] | [ オブジェクトの可視性 > ] |
line-spanner-interface
を使用する
line-spanner-interface
をサポートするオブジェクトには以下のものがあります:
-
DynamicTextSpanner
-
Glissando
-
TextSpanner
-
TrillSpanner
-
VoiceFollower
これらのスパナのステンシルを描画する責任を持つルーチンは
ly:line-spanner::print
です。このルーチンはスパナの両端の位置を綿密に決定し、求めに応じたスタイルでそれらの間に線を描きますスパナの両端の位置はオンザフライ (その場、その時々) で算出されますが、それらの Y 座標をオーバライドすることができます。指定する必要のあるプロパティは、プロパティ階層内で 2 階層下にネストされていますが、この \override
コマンドは非常にシンプルです:
e''2 \glissando b' \once \override Glissando.bound-details.left.Y = #3 \once \override Glissando.bound-details.right.Y = #-2 e''2 \glissando b'
Y
プロパティの単位は staff-space
であり、譜の中央線が 0 位置です。グリッサンドでは、スパナの両端は各符頭の中心であり、Y
はそれらの点を上下させます。
Y
が設定されていない場合、値はスパナの両端の垂直位置から算出されます。
改行の場合、終点の Y
の値は bound-details
の部分リスト left-broken
や right-broken
のによって指定されます。例を示します:
\override Glissando.breakable = ##t \override Glissando.bound-details.right-broken.Y = #-3 c''1 \glissando \break f''1
bound-details
プロパティの部分リスト left
や right
の下位プロパティのいくつかは、Y
と同じ方法で変更することができます:
-
Y
終点の Y 座標を、譜の中央線からの
staff-space
オフセットで、設定します。デフォルトでは、終点オブジェクトの中心です。ですから、グリッサンドは符頭の中心に向かって進みます。水平方向に広がるスパナ – テキスト スパナやトリル スパナなど – では、この値は 0 に固定されています。
-
attach-dir
スパナのラインがオブジェクトの左右どちらから始まり、終わるのかを決定します。
-1
(あるいはLEFT
) であれば、ラインは符頭の左側から開始あるいは終了します。-
X
終点の絶対 X 座標です。通常、オンザフライ (その場、その時々) で算出され、これをオーバライドしてもあまり意味がありません。
-
stencil
ライン スパナは開始点や終了点で記号を持つ場合があり、その記号はこのサブ プロパティに保持されています。このサブ プロパティは内部で使用するためのものです。このサブ プロパティの代わりに
text
を使用することを推奨します。-
text
ステンシルを作成するために評価されるマークアップです。水平スパナに cresc., tr それに他のテキストを配置するために使用されます。
\override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } \relative { c''2\startTextSpan b c a\stopTextSpan }
-
stencil-align-dir-y
-
stencil-offset
これらの 1 つを設定しなければ、ステンシルは、
X
とY
サブ プロパティで定義されたとおりに、ラインに中央揃えで、終点に配置されます。stencil-align-dir-y
あるいはstencil-offset
のどちらかを設定すると、記号が上下します:\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2 \override TextSpanner.bound-details.right.stencil-align-dir-y = #UP \override TextSpanner.bound-details.left.text = "ggg" \override TextSpanner.bound-details.right.text = "hhh" \relative { c'4^\startTextSpan c c c \stopTextSpan }
予期される結果とは逆に、負の値はテキストを 上げる ということに注意してください。なぜなら、
-1
あるいはDOWN
はテキストの 下端 をスパナ ラインに揃え、1
あるいはUP
はテキストの 上端 をスパナ ラインに揃えるからです。-
arrow
このサブ プロパティに
#t
をセットするとラインの終点に矢印が描かれます。-
padding
このサブ プロパティはラインの終点と実際の終点の間のスペースを制御します。パディングがなければ、グリッサンドは両端の符頭の中心から描かれます。
音楽関数 \endSpanners
は直後の音符から始まるスパナをすぐに終了させます。ちょうど 1 音符分でスパナを終了させますが、to-barline
が真で、かつ、次の音符の前に小節線がある場合はその小節線のところでスパナを終了させます。
\relative c'' { \endSpanners c2 \startTextSpan c2 c2 \endSpanners c2 \< c2 c2 }
\endSpanners
を使用している場合、\startTextSpan
を \endTextSpan
で閉じる必要はなく、ヘアピンを \!
で閉じる必要もありません。
参照
内部リファレンス: TextSpanner, Glissando, VoiceFollower, TrillSpanner, line-spanner-interface
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < line-spanner-interface を使用する ] | [ 上へ : 役に立つコンセプトとプロパティ ] | [ ステンシルを削除する > ] |
5.4.7 オブジェクトの可視性
レイアウト オブジェクトの可視性を制御する主な方法は 4 つあります:
オブジェクトのステンシルを削除する方法、オブジェクトを透明にする方法、オブジェクトの色を白にする方法、あるいは、オブジェクトの break-visibility
プロパティをオーバライドする方法です。
最初の 3 つの方法はすべてのレイアウト オブジェクトに適用されますが、最後の方法はいくつかの – 改行可能な オブジェクト –
だけに適用されます。学習マニュアルでは、これら 4 つのテクニックについて紹介しています。
オブジェクトの可視性と色 を参照してください。
さらに、特定のレイアウト オブジェクト特有のテクニックがいくつかあります。それらについては、特別な考慮でカバーされています。
ステンシルを削除する | ||
オブジェクトを透明にする | ||
オブジェクトを白で描く | ||
break-visibility を用いる | ||
特別な考慮を必要とするもの |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < オブジェクトの可視性 ] | [ 上へ : オブジェクトの可視性 ] | [ オブジェクトを透明にする > ] |
ステンシルを削除する
レウアウト オブジェクトはそれぞれステンシル プロパティを持ちます。デフォルトでは、このプロパティはそのオブジェクトを描画する特殊な関数にセットされています。このプロパティが #f
にオーバライドされた場合、関数は呼び出されず、そのオブジェクトは描画されません。\revert
でデフォルトの動作に戻すことができます。
a1 a \override Score.BarLine.stencil = ##f a a \revert Score.BarLine.stencil a a a
これはよく使う操作であるため、\omit
という短縮記法が存在します:
a1 a \omit Score.BarLine a a \undo \omit Score.BarLine a a a
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < ステンシルを削除する ] | [ 上へ : オブジェクトの可視性 ] | [ オブジェクトを白で描く > ] |
オブジェクトを透明にする
レイアウト オブジェクトはそれぞれ transparent
プロパティを持っていて、デフォルトでは #f
にセットされています。#t
にセットされると、そのオブジェクトはスペースを占めたままですが、不可視になります。
a'4 a' \once \override NoteHead.transparent = ##t a' a'
これにも \hide
という短縮記法があります:
a'4 a' \once \hide NoteHead a' a'
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < オブジェクトを透明にする ] | [ 上へ : オブジェクトの可視性 ] | [ break-visibility を用いる > ] |
オブジェクトを白で描く
レイアウト オブジェクトはそれぞれ color
プロパティを持っていて、デフォルトでは black
にセットされています。このプロパティが white
にセットされてると、そのオブジェクトは白い背景と区別が付かなくなります。しかしながら、そのオブジェクトが他のオブジェクトと交差している場合、交差している場所の色はオブジェクトの描画順序によって決定されます。これにより、以下に示すように、白いオブジェクトの画像が幽霊のように浮かび上がることがあります:
\override Staff.Clef.color = #white a'1
オブジェクトの描画順序を変更することにより、これを回避することができます。すべてのレイアウト オブジェクトは layer
プロパティを持っており、このプロパティには整数がセットされています。より小さな値の layer
を持つオブジェクトが最初に描画され、より大きな値の layer
を持つオブジェクトが後になってから描画されます。このため、より大きな値を持つオブジェクトがより小さな値を持つオブジェクトを上書きします。デフォルトでは、たいていのオブジェクトの layer
には 1
が代入されています。しかしながら、いくつかのオブジェクト
– StaffSymbol
や BarLine
など –
には 0
が代入されています。同じ値の layer
を持つオブジェクトを描画する順番は不確定です。
上記の例において、白い音部記号
(この layer
のデフォルト値は 1
です)
は譜線 (この layer
のデフォルト値は 0
です)
の後に描画されます。そのため、音部記号は譜線を上書きしています。これを変更するには、Clef
オブジェクトの layer
により小さな値 – 例えば、-1
– を与えて、音部記号を先に描画させる必要があります:
\override Staff.Clef.color = #white \override Staff.Clef.layer = #-1 a'1
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < オブジェクトを白で描く ] | [ 上へ : オブジェクトの可視性 ] | [ 特別な考慮を必要とするもの > ] |
break-visibility を用いる
たいていのレイアウト オブジェクトは 1 回だけ描画されます。しかしながら、小節線、音部記号、拍子記号、それに調号などのオブジェクトは、改行が起こると 2 回描画する必要があります
– 行の最後で 1 回、次の行の最初でもう 1 回。そのようなオブジェクトは 改行可能 と呼ばれ、それらのオブジェクトが描画される可能性がある 3 つの場所
– 行の先頭、行の途中 (それらが変更された場合)、それに、行の最後 (そこで変更が行われた場合) –
における可視性を制御する break-visibility
プロパティを持ちます。
例えば、デフォルトでは拍子記号は最初の行の先頭で描画されますが、変更されない限り他の場所には描画されません。変更された場合、拍子記号は変更が行われた場所に描画されます。この変更が行の最後で行われた場合、新しい拍子記号は次の行の先頭に描画され、その前の行の最後にも忠告の拍子記号が描画されます。
この振る舞いは break-visibility
プロパティによって制御されます。このプロパティについての説明は
オブジェクトの可視性と色
を参照してください。このプロパティは 3 つのブール値からなるベクトルをとり、順に、そのオブジェクトが行の最後で描画されるかどうか、行の途中で描画されるかどうか、そして、行の先頭で描画されるかどうかを決定します。より正確には、改行の前、改行がない場合、改行の後です。
break-visibility
プロパティによって制御する代わりに、これら 8 通りの組み合わせを ‘scm/output-lib.scm’ で定義されている定義済み関数によって指定することもできます。このファイルの中で、最後の 3 列がその列のヘッダで示される場所での可視性を表しています:
関数形式 | ベクトル形式 | 改行前 | 改行なし | 改行後 |
---|---|---|---|---|
all-visible | #(#t #t #t) | yes | yes | yes |
begin-of-line-visible | #(#f #f #t) | no | no | yes |
center-visible | #(#f #t #f) | no | yes | no |
end-of-line-visible | #(#t #f #f) | yes | no | no |
begin-of-line-invisible | #(#t #t #f) | yes | yes | no |
center-invisible | #(#t #f #t) | yes | no | yes |
end-of-line-invisible | #(#f #t #t) | no | yes | yes |
all-invisible | #(#f #f #f) | no | no | no |
break-visibility
のデフォルト設定はレイアウト オブジェクトによって異なります。以下の表は、break-visibility
によって影響をうけるすべてのレイアウト オブジェクトと、そのプロパティのデフォルト設定を示しています:
レイアウト オブジェクト | 通常のコンテキスト | デフォルト設定 |
---|---|---|
BarLine | Score | calculated |
BarNumber | Score | begin-of-line-visible |
BreathingSign | Voice | begin-of-line-invisible |
Clef | Staff | begin-of-line-visible |
Custos | Staff | end-of-line-visible |
DoublePercentRepeat | Voice | begin-of-line-invisible |
KeyCancellation | Staff | begin-of-line-invisible |
KeySignature | Staff | begin-of-line-visible |
ClefModifier | Staff | begin-of-line-visible |
RehearsalMark | Score | end-of-line-invisible |
TimeSignature | Staff | all-visible |
以下の例は、小節線の可視性を制御するベクトルの使用方法を示しています:
\relative { f'4 g a b f4 g a b % カレント行の最後で小節線を削除します \once \override Score.BarLine.break-visibility = ##(#f #t #t) \break f4 g a b f4 g a b }
break-visibility
をオーバライドするために使用されるベクトルの要素 3 つをすべて記述する必要がありますが、それらすべてが各レイアウト オブジェクトに対して効果を持つわけではなく、組み合わせによってはエラーになる場合もあります。以下の制限があります:
- 小節線を行の先頭に描画することはできません。
- 小節番号が
1
から始まるのでなければ、最初の行の先頭に描画することはできません。 - 音部記号 – 次のセクションを参照してください
- 2 重線のパーセント繰り返しはすべて描画するか、すべて描画しないかのどちらかです。描画するには
begin-of-line-invisible
を用い、描画しないのならall-invisible
を用います。 - Key signature – 次のセクションを参照してください
- ClefModifier – 次のセクションを参照してください
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < break-visibility を用いる ] | [ 上へ : オブジェクトの可視性 ] | [ ライン スタイル > ] |
特別な考慮を必要とするもの
明示的な変更の後の可視性
break-visibility
プロパティが調号の可視性と音部記号の変更を制御するのは、行の先頭 – つまり、改行の後 – においてだけです。行の途中や終わりでの明示的な調の変更や音部記号の変更の後に出現する調号や音部記号の可視性には効果を持ちません。以下の例では、all-invisible
がセットされていますが、B フラット メジャーへの明示的な変更の後に出現する調号は可視のままです。
\relative { \key g \major f'4 g a b % すべての調号を削除しようと試みます \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
そのような明示的な調号や音部記号の変更の可視性は
explicitKeySignatureVisibility
プロパティや
explicitClefVisibility
プロパティによって制御されます。これらは break-visibility
プロパティと等価であり、どちらも break-visibility
と同様に 3 つのブール値からなるベクトルか上でリストアップした定義済み関数をとります。どちらも Staff
コンテキストのプロパティであり、レイアウト オブジェクト自体のプロパティではありません。ですから、これらは \set
コマンドでセットします。どちらもデフォルトでは all-visible
がセットされています。これらのプロパティは明示的な変更の結果として生じる調号と音部記号の可視性だけを制御し、行の先頭での調号や音部記号には効果を持ちませんので、オブジェクトを削除するには適切な break-visibility
をオーバライドする必要があります。
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
前の調をキャンセルする臨時記号の可視性
明示的な調の変更で描画される前の調をキャンセルする臨時記号を削除するには、Staff
コンテキスト プロパティ printKeyCancellation
に
#f
をセットします:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.printKeyCancellation = ##f \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
このオーバライドによって、調の変更を示す臨時記号だけが残ります。
調を C メジャーや A マイナーに変更する時、前の調をキャンセルする臨時記号は前の調のキャンセルしている だけ であることに注意してください。そのようなケースでは、printKeyCancellation
を #f
に設定しても効果はありません:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.printKeyCancellation = ##f \key c \major f4 g a b \break f4 g a b f4 g a b }
調を C メジャーや A マイナーに変更する場合に、前の調をキャンセルする臨時記号を消すには、KeyCancellation
グラフィカル オブジェクトの可視性をオーバライドします:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \override Staff.KeyCancellation.break-visibility = #all-invisible \key c \major f4 g a b \break f4 g a b f4 g a b }
自動小節線
特殊なケースとして、Score
コンテキストの automaticBars
プロパティを設定することにより、小節線の描画を Off にすることもできます。#f
をセットされた場合、小節線は自動的には描画されなくなり、\bar
コマンドで明示的に作成しなければならなくなります。定義済みコマンド \cadenzaOn
とは異なり、小節数はカウントされ続けます。後になってこのプロパティに #t
がセットされると、このカウントに従って小節線の生成が再開されます。#f
がセットされている場合、改行が起こりえるのは明示的な \bar
コマンドがある場所でだけになります。
オクターブ移調付きの音部記号
オクターブ移調付きの音部記号上の小さな移調記号は
ClefModifier
レイアウト オブジェクトによって作り出されます。このオブジェクトの可視性は
Clef
オブジェクトの可視性とは独立して制御されます。そのため、各行の先頭においてそのような音部記号を完全に消そうとするなら、Clef
オブジェクトと ClefModifier
オブジェクトの両方に対して必要な break-visibility
のオーバライドを行う必要があります。
明示的な音部記号の変更では、explicitClefVisibility
プロパティが音部記号とそれに関連する移調記号の両方を制御します。
参照
学習マニュアル: オブジェクトの可視性と色
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 特別な考慮を必要とするもの ] | [ 上へ : 役に立つコンセプトとプロパティ ] | [ オブジェクトを回転させる > ] |
5.4.8 ライン スタイル
いくつかの演奏指示子 – 例えば、rallentando, accelerando それに trills など – はテキストとして記述され、線で (点線や波線の場合もあります) でいくつもの小節にわたって広がります。
これらはすべてグリッサンドと同じルーチンを用いてテキストと線を描きます。そのため、それらの振る舞いの調整も同じように行います。これらはスパナによって実現され、スパナを描くルーチンは
ly:line-spanner::print
です。このルーチンは 2 つの スパン ポイント の位置を決定し、要求されたスタイルに応じてそれら 2 点の間に線を描きます。
利用可能なライン スタイルと、それらをどのように調整するかを示す例を挙げます。
\relative { d''2 \glissando d'2 \once \override Glissando.style = #'dashed-line d,2 \glissando d'2 \override Glissando.style = #'dotted-line d,2 \glissando d'2 \override Glissando.style = #'zigzag d,2 \glissando d'2 \override Glissando.style = #'trill d,2 \glissando d'2 }
スパナの終点の位置は各グラフィック オブジェクトごとにオンザフライ (その場、その時々) で計算されますが、それらをオーバライドすることもできます:
\relative { e''2 \glissando f \once \override Glissando.bound-details.right.Y = #-2 e2 \glissando f }
グリッサンドの終点の Y
には -2
がセットされています。right
の代わりに left
を指定することにより、始点も同じように調整することができます。
Y
がセットされていない場合、その値はスパナが取り付けられるポイントの垂直位置から算出されます。
スパナに他の調整を行うことも可能です。詳細は スパナ を参照してください。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < ライン スタイル ] | [ 上へ : 役に立つコンセプトとプロパティ ] | [ レイアウト オブジェクトを回転させる > ] |
5.4.9 オブジェクトを回転させる
レイアウト オブジェクトとマークアップ テキストの要素はどちらも任意のポイントを中心にして任意の角度で回転させることができます。しかしながら、回転させる方法はまったく異なります。
レイアウト オブジェクトを回転させる | ||
マークアップを回転させる |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < オブジェクトを回転させる ] | [ 上へ : オブジェクトを回転させる ] | [ マークアップを回転させる > ] |
レイアウト オブジェクトを回転させる
grob-interface
をサポートするすべてのレイアウト オブジェクトは、それらのオブジェクトの rotation
プロパティを設定することにより、回転させることができます。これは 3 要素のリストをとります: 反時計回りの回転の角度、オブジェクトの参照ポイントからの相対座標 x と y
(この座標が回転の中心になります) です。回転の角度は ‘°’で指定し、座標は譜スペースで指定します。
回転の角度と回転の中心座標は、トライ&エラーで決定する必要があります。
レイアウト オブジェクトを回転させることが有用な状況はあまりありません。以下の例は、有用であるかもしれないシチュエーションの 1 つを示しています:
g4\< e' d'' f''\! \override Hairpin.rotation = #'(15 -1 0) g4\< e' d'' f''\!
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < レイアウト オブジェクトを回転させる ] | [ 上へ : オブジェクトを回転させる ] | [ 高度な調整 > ] |
マークアップを回転させる
すべてのマークアップ テキストは、\rotate
コマンドを前に置くことにより、任意の角度に回転させることができます。このコマンドは 2 つの引数をとります: 反時計回りの回転の角度 ‘°’ と、回転させられるテキストです。テキストの領域は回転しません:
テキストの領域は回転させられるテキストの四隅になります。以下の例では、自動衝突回避を不可にするためにテキストの outside-staff-priority
プロパティに #f
をセットしています。そうしなければテキストのいくつかは高く押し上げられてしまいます。
\override TextScript.outside-staff-priority = ##f g4^\markup { \rotate #30 "a G" } b^\markup { \rotate #30 "a B" } des'^\markup { \rotate #30 "a D-Flat" } fis'^\markup { \rotate #30 "an F-Sharp" }
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < マークアップを回転させる ] | [ 上へ : デフォルトを変更する ] | [ オブジェクトを揃える > ] |
5.5 高度な調整
このセクションでは、楽譜の見た目を細かく調節するためのさまざまなアプローチについて議論します。
5.5.1 オブジェクトを揃える | ||
5.5.2 グラフィカル オブジェクトを垂直方向にグループ化する | ||
5.5.3 ステンシルを変更する | ||
5.5.4 形状を変更する | ||
5.5.5 改行するスパナを変更する | ||
5.5.6 unpure-pure コンテナ |
参照
記譜法リファレンス: 内部リファレンスの説明, プロパティを変更する
拡張: Interfaces for programmers
インストールされているファイル: ‘scm/define-grobs.scm’
コード断片集: Tweaks and overrides
内部リファレンス: All layout objects
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 高度な調整 ] | [ 上へ : 高度な調整 ] | [ X-offset と Y-offset を直接設定する > ] |
5.5.1 オブジェクトを揃える
self-alignment-interface
と/あるいは side-position-interface
をサポートするグラフィカル オブジェクトは、さまざまな形式で配置済みのオブジェクトに揃えることができます。そのようなオブジェクトのリストは、
self-alignment-interface と
side-position-interface を参照してください。
すべてのグラフィカル オブジェクトは参照ポイント、水平方向の広がり、それに垂直方向の広がりを持ちます。水平方向の広がりは、参照ポイントから左端と右端までの距離を意味する数値のペアであり、左端は負値です。垂直方向の広がりは、参照ポイントから下端と上端までの距離を意味する数値のペアであり、下端は負値です。
あるオブジェクトの譜面上の位置は、X-offset
プロパティと
Y-offset
プロパティの値によって与えられます。X-offset
の値は、親オブジェクトの参照ポイントの X 座標からの距離を意味します。Y-offset
の値は、譜の中央線からの距離を意味します。X-offset
と Y-offset
の値は直接設定されることもありますし、いくつかの形式で親オブジェクトと揃えるためにプロシージャによって算出されることもあります。
Note: 多くのオブジェクトは特殊な配置規則を持っています。そのため、そのオブジェクトが self-alignment-interface
をサポートしていたとしても、X-offset
あるいは Y-offset
の設定は無視されたり、変更されることがあります。
例えば、臨時記号は Y-offset
を設定することにより垂直方向の位置を変更することができますが、X-offset
は効果を持ちません。
リハーサル記号は、小節線、音部記号、拍子記号それに調号などの改行可能なオブジェクトに揃えることができます。リハーサル記号をそのようなオブジェクトに合わせて配置するために、break-aligned-interface
の中に特別なプロパティがあります。
参照
記譜法リファレンス:
break-alignable-interface
を使用する,
X-offset と Y-offset を直接設定する | ||
side-position-interface を使用する | ||
self-alignment-interface を使用する | ||
break-alignable-interface を使用する |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < オブジェクトを揃える ] | [ 上へ : オブジェクトを揃える ] | [ side-position-interface を使用する > ] |
X-offset
と Y-offset
を直接設定する
多くのオブジェクトの X-offset
プロパティと Y-offset
プロパティに数値を与えることができます。以下の例は、3 つの音符を示していて、1 つはデフォルト配置の運指記号を持ち、他の 2 つの運指記号は X-offset
と Y-offset
が変更されています。
a'-3 a' -\tweak X-offset #0 -\tweak Y-offset #0 -3 a' -\tweak X-offset #-1 -\tweak Y-offset #1 -3
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < X-offset と Y-offset を直接設定する ] | [ 上へ : オブジェクトを揃える ] | [ self-alignment-interface を使用する > ] |
side-position-interface
を使用する
side-position-interface
をサポートするオブジェクトは、その親オブジェクトの隣に配置することができ、それにより、それら 2 つのオブジェクトの指定された端をくっつけることができます。オブジェクトを親オブジェクトの上、下、右、あるいは左に配置することができます。親オブジェクトを指定することはできません:
親オブジェクトは入力ストリームの中での要素の順序によって決定されます。たいていのオブジェクトの親オブジェクトは、そのオブジェクトに関連する符頭となります。
side-axis
プロパティと direction
プロパティの値は、以下のように、オブジェクトが配置される場所を決定します:
side-axis | direction | |
---|---|---|
property | property | Placement |
0 | -1 | 左 |
0 | 1 | 右 |
1 | -1 | 下 |
1 | 1 | 上 |
side-axis
が 0
である場合、X-offset
にはプロシージャ ly:side-position-interface::x-aligned-side
をセットする必要があります。このプロシージャは、direction
の値に基づいて親オブジェクトの左あるいは右にオブジェクトを配置するための適切な値を
X-offset
に返します。
side-axis
が 1
である場合、Y-offset
にはプロシージャ ly:side-position-interface::y-aligned-side
をセットする必要があります。このプロシージャは、direction
の値に基づいて親オブジェクトの上あるいは下にオブジェクトを配置するための適切な値を
Y-offset
に返します。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < side-position-interface を使用する ] | [ 上へ : オブジェクトを揃える ] | [ break-alignable-interface を使用する > ] |
self-alignment-interface
を使用する
オブジェクトを自動的に水平方向に揃える
self-alignment-interface
をサポートするオブジェクトの水平方向の揃えは、self-alignment-X
プロパティの値によって制御され、そのオブジェクトの X-offset
プロパティにはly:self-alignment-interface::x-aligned-on-self
がセットされています。
self-alignment-X
には任意の実数値を与えることができますが、
与える値は、そのオブジェクトの X 方向の広がりの半分を単位とします。負値はオブジェクトを右に移動させ、正値はオブジェクトを左に移動させます。値が 0
であればそのオブジェクトは親オブジェクトの参照ポイントに中央揃えされ、値が -1
であればそのオブジェクトの左端が親オブジェクトの参照ポイントに揃えられ、値が 1
であればそのオブジェクトの右端が親オブジェクトの参照ポイントに揃えられます。記号 LEFT
, CENTER
, それに RIGHT
はそれぞれ -1
, 0
, それに 1
に対応します。
通常、\override
コマンドを用いて self-alignment-X
の値を変更しますが、\tweak
コマンドを用いることで単一の音符に付けられている複数の注釈を個別に揃えることができます:
a' -\tweak self-alignment-X #-1 ^"left-aligned" -\tweak self-alignment-X #0 ^"center-aligned" -\tweak self-alignment-X #RIGHT ^"right-aligned" -\tweak self-alignment-X #-2.5 ^"aligned further to the right"
オブジェクトを自動的に垂直方向に揃える
オブジェクトの Y-offset
プロパティに
ly:self-alignment-interface::y-aligned-on-self
がセットされていれば、水平方向の揃えと同じように、垂直方向に揃えることができます。しかしながら、垂直方向の揃えには他のメカニズムも関与します:
Y-offset
の値は、垂直方向の揃えに関与する変数の 1 つに過ぎません。このことにより、いくつかのオブジェクトの Y-offset
値の調整はややこしくなります。単位はそのオブジェクトの垂直方向の広がりの半分です。通常これは非常に小さいため、非常に大きな数値が必要になる可能性があります。値が -1
であればそのオブジェクトの下端が親オブジェクトの参照ポイントに揃えられ、値が 0
であればそのオブジェクトの中央が親オブジェクトの参照ポイントに揃えられ、値が 1
であればそのオブジェクトの上端が親オブジェクトの参照ポイントに揃えられます。記号 DOWN
, CENTER
, それに UP
はそれぞれ -1
, 0
, それに 1
に対応します。
オブジェクトを自動的に両方向に揃える
X-offset
と Y-offset
の両方の設定を行うことで、オブジェクトの水平方向と垂直方向の揃えを同時に行うことができます。
以下の例は、運指記号を符頭に近づけるための調整方法を示しています。
a' -\tweak self-alignment-X #0.5 % 左方向に移動させます -\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self -\tweak self-alignment-Y #-1 % 上方向に移動させます -3 % 3 の指
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < self-alignment-interface を使用する ] | [ 上へ : オブジェクトを揃える ] | [ グラフィカル オブジェクトを垂直方向にグループ化する > ] |
break-alignable-interface
を使用する
リハーサル記号と小節番号を小節線ではなく、記譜オブジェクトに揃えることができます。対象となる記譜オブジェクトには、ambitus
,
breathing-sign
, clef
, custos
, staff-bar
,
left-edge
, key-cancellation
, key-signature
, それに
time-signature
があります。
それぞれの記号は、リハーサル記号が揃えられるデフォルトの参照点を持ち、その位置は種類ごとに異なります。
% リハーサル記号は音部記号の右端に揃えられます \override Score.RehearsalMark.break-align-symbols = #'(clef) \key a \major \clef treble \mark "↓" e'1 % リハーサル記号は拍子記号の左端に揃えられます \override Score.RehearsalMark.break-align-symbols = #'(time-signature) \key a \major \clef treble \time 3/4 \mark "↓" e'2. % リハーサル記号はブレス記号の中央に揃えられます \override Score.RehearsalMark.break-align-symbols = #'(breathing-sign) \key a \major \clef treble \time 4/4 e'1 \breathe \mark "↓"
揃えの対象となり得るオブジェクトのリストを指定することができます。揃えを行う時点で対象リストの中にあるオブジェクトのいくつかが不可視である
– break-visibility
の設定や、調号と音部に対する明示的な可視性の設定により –
場合、リハーサル記号あるいは小節番号はリストの中にある最初の可視のオブジェクトに揃えられます。リストの中にあるオブジェクトがすべて不可視である場合、小節線に揃えられます。小節線が不可視である場合、小節線があるはずの場所に揃えられます。
% リハーサル記号は調号の右端に揃えられます \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" e'1 % リハーサル記号は音部記号の右端に揃えられます \set Staff.explicitKeySignatureVisibility = #all-invisible \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef bass \mark "↓" gis,1 % リハーサル記号は小節線の中央に揃えられます \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.explicitClefVisibility = #all-invisible \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" e'1
以下の例で示すように、記譜オブジェクトに対するリハーサル記号の揃えを変更することができます。複数の譜を持つ楽譜では、この設定はすべての譜に適用されます。
% リハーサル記号は調号の右端に揃えられます \override Score.RehearsalMark.break-align-symbols = #'(key-signature) \key a \major \clef treble \time 4/4 \mark "↓" e'1 % リハーサル記号は調号の中央に揃えられます \once \override Score.KeySignature.break-align-anchor-alignment = #CENTER \mark "↓" \key a \major e'1 % リハーサル記号は調号の左端に揃えられます \once \override Score.KeySignature.break-align-anchor-alignment = #LEFT \key a \major \mark "↓" e'1
また、リハーサル記号を左端に揃えて、さらに任意の量だけ右あるいは左にずらすことができます。単位は譜スペースです:
% リハーサル記号は調号の左端に揃えられて % さらに 3.5 譜スペース右にずらされます \override Score.RehearsalMark.break-align-symbols = #'(key-signature) \once \override Score.KeySignature.break-align-anchor = #3.5 \key a \major \mark "↓" e'1 % リハーサル記号は調号の左端に揃えられて % さらに 2 譜スペース左にずらされます \once \override Score.KeySignature.break-align-anchor = #-2 \key a \major \mark "↓" e'1
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < break-alignable-interface を使用する ] | [ 上へ : 高度な調整 ] | [ ステンシルを変更する > ] |
5.5.2 グラフィカル オブジェクトを垂直方向にグループ化する
VerticalAlignment グラフィカル オブジェクトと VerticalAxisGroup グラフィカル オブジェクトは対で機能します。VerticalAxisGroup は Staff, Lyrics, 等のような異なるグラフィカル オブジェクトをグループにまとめます。それから、VerticalAlignment が VerticalAxisGroup によってグループ化されたグラフィカル オブジェクトを垂直方向に揃えます。通常、楽譜には VerticalAlignment は 1 つしかありませんが、Staff, Lyrics 等はそれ自体でそれぞれに VerticalAxisGroup を持ちます。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < グラフィカル オブジェクトを垂直方向にグループ化する ] | [ 上へ : 高度な調整 ] | [ 形状を変更する > ] |
5.5.3 ステンシルを変更する
すべてのレイアウト オブジェクトは、grob-interface
の一部である stencil
プロパティを持ちます。通常、デフォルトでこのプロパティには、出力でそのオブジェクトを具現化する記号を描画するための特有の関数がセットされています。例えば、MultiMeasureRest
オブジェクトの stencil
プロパティに対する標準設定は、ly:multi-measure-rest::print
です。
stencil
プロパティを変更して異なる描画関数を参照させることにより、オブジェクトの標準記号を置き換えることができます。これには LilyPond 内部機能についての高い知識が求められます。しかしながら、多くの場合にまずまずの結果を生み出すもっと簡単な方法があります。
簡単な方法では、stencil
プロパティにテキストを描画する関数
– ly:text-interface::print
– をセットし、必要な記号を生み出すマークアップ テキストを保持するよう設定された
text
プロパティ与えます。マークアップの自由度の高さにより、多くのことを達成できます。詳細は、マークアップ内部でのグラフィック記譜法 を参照してください。
以下の例では、この方法を用いて符頭記号を内部に×を持つ円に変更しています。
XinO = { \once \override NoteHead.stencil = #ly:text-interface::print \once \override NoteHead.text = \markup { \combine \halign #-0.7 \draw-circle #0.85 #0.2 ##f \musicglyph "noteheads.s2cross" } } \relative { a' a \XinO a a }
\musicglyph
マークアップ コマンドで、Emmentaler フォントに含まれる任意の Feta
グリフを使用することができます。Emmentaler フォント を参照してください。
‘EPS’ ファイルや Postscript コマンドを、それぞれ
\epsfile
や \postscript
マークアップ コマンドを使って行内に埋め込むことができます。Graphic を参照してください。
参照
記譜法リファレンス: マークアップ内部でのグラフィック記譜法, テキストをフォーマットする, \markup コマンドの一覧, Emmentaler フォント, Graphic
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < ステンシルを変更する ] | [ 上へ : 高度な調整 ] | [ タイとスラーの形状を変更する > ] |
5.5.4 形状を変更する
タイとスラーの形状を変更する |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 形状を変更する ] | [ 上へ : 形状を変更する ] | [ 改行するスパナを変更する > ] |
タイとスラーの形状を変更する
Tie
, Slur
, PhrasingSlur
, LaissezVibrerTie
,
それに RepeatTie
はすべて 3 次のベジエ曲線として描かれます。自動的に算出されるタイやスラーの形状が最適ではない場合、以下の 2 つの方法を用いて手動で形状を変更することができます:
- 自動的に算出されるベジエ曲線の制御ポイントの移動させる
- 求める曲線を定義するのに必要な 4 つの制御ポイントの位置を明示的に指定する
2 つの方法について以下で説明します。曲線の調節がわずかであれば、最初の方法が適しています。2 番目の方法は単一の音符に関連付けられる曲線を作り出す場合に適しています。
3 次ベジエ曲線
3 次あるいは 3 乗のベジエ曲線は、4 つの制御ポイントによって定義されます。1 番目と 4 番目の制御ポイントは曲線の始点と終点になります。間にある 2 つの制御ポイントは曲線の形状を定義します。Web でベジエ曲線が描かれる様子を示すアニメーションを見つけることができるでしょう。しかしながら、以下の記述も役に立つかもしれません。ベジエ曲線は最初の制御ポイントから 2 番目の制御ポイントに進み、徐々に 3 番目の制御ポイントの方へ向きを変えながら 4 番目の制御ポイントの方へ向かい続け、3 番目の制御ポイントから 4 番目の制御ポイントに到達します。ベジエ曲線は 4 つの制御ポイントからなる四角形の中に納まります。制御ポイントの平行移動、回転、伸縮はすべて同じ操作です。
制御ポイントを移動させる
以下の例では、タイの自動配置が最適ではなく、\tieDown
も役に立ちません。
<< { e'1~ 1 } \\ \relative { r4 <g' c,> <g c,> <g c,> } >>
\shape
でタイの制御ポイントを調節することで衝突を避けることができます。
\shape
の構文は以下の通りです:
[-]\shape displacements item
これは item の制御ポイントを displacements だけ移動させます。引数 displacements は数のペアのリスト、あるいはそのようなリストのリストです。ペアの要素は制御ポイントの座標の移動量を表しています。item が文字列の場合、指定されたグラフィカル オブジェクト タイプに \once \override
で適用されます。item が音楽表記の場合、その音楽表記に調節が適用されます。
言い換えると、\shape
関数は、引数 item が “Slur”
のようなグラフィカル オブジェクト名であるか “(” のような音楽表記であるかによって、\once \override
コマンドあるいは \tweak
コマンドのどちらにでもなり得ます。引数 displacements は 4 つの (dx . dy) ペアのリストで 4 つの制御ポイントの移動を指定します – 値の単位は譜スペースです。
(曲線が複数のセグメントを持つ場合、引数 displacements は 4 つのペアを持つリストのリストになります。)
\tweak
形式で用いる場合にのみ、先頭にハイフン -
を付ける必要があります。
それでは、上記の例に \once \override
形式の \shape
を使ってタイを 0.5 譜スペースだけ上に移動させてみましょう:
<< { \shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie e'1~ 1 } \\ \relative { r4 <g' c,> <g c,> <g c,> } >>
タイの位置は改善されましたが、中央部分をもっと持ち上げるべきです。以下の例で \tweak
形式でそれを行っています:
<< { e'1-\shape #'((0 . 0.5) (0 . 1) (0 . 1) (0 . 0.5)) ~ e' } \\ \relative { r4 <g' c,> <g c,> <g c,> } >>
同じ方法で制御ポイントを水平方向に移動させることもできて、同じ音楽タイミングで発生する 2 つの曲線をうまく配置することができます:
\relative { c''8(\( a) a'4 e c\) \shape #'((0.7 . -0.4) (0.5 . -0.4) (0.3 . -0.3) (0 . -0.2)) Slur \shape #'((0 . 0) (0 . 0.5) (0 . 0.5) (0 . 0)) PhrasingSlur c8(\( a) a'4 e c\) }
\shape
関数は改行を跨ぐ曲線の制御ポイントを移動させることもできます。分割される曲線それぞれにリストを与えて制御ポイントを移動させます。片方の曲線は変更する必要がない場合、空のリストを渡します。以下の例では、1 つのスラーが改行で 2 つに分割されています:
\relative { c'4( f g c \break d,4 c' f, c) }
分割されたスラーの形状を変更することで、改行を跨いで続くスラーであることがわかりやすくなります:
% 片方のスラーを変更する必要がない場合、 % () を ((0 . 0) (0 . 0) (0 . 0) (0 . 0)) の短縮形として使うことができます \relative c' { \shape #'( (( 0 . 0) (0 . 0) (0 . 0) (0 . 1)) ((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5)) ) Slur c4( f g c \break d,4 c' f, c) }
S 字曲線が求められた場合は、常に制御ポイントを手動で調節する必要があります — LilyPond が自動的にそのような形状を選択することはありません。
\relative c'' { c8( e b-> f d' a e-> g) \shape #'((0 . -1) (5.5 . -0.5) (-5.5 . -10.5) (0 . -5.5)) PhrasingSlur c8\( e b-> f d' a e-> g\) }
制御ポイントの位置を明示的に指定する
ベジエ曲線の制御ポイントの座標を指定します – 単位は譜スペースです。X 座標はタイあるいはスラーを取り付ける音符の参照ポイントからの相対位置で、X 座標は譜の中央線からの相対位置です。制御ポイントの座標をリストで指定します – リストは数のペアを 4 つ持ちます。両端の座標を推測して、それから 2 つ中間点の座標を推測します。最適値はトライ&エラーで見つけます。音楽やレイアウトに変更が加えられた場合、手動で値を調節する必要があるということに注意してください。
制御ポイントを移動させるよりも、位置を明示的に指定する方が望ましいシチュエーションの 1 つは、単一の音符に関連付けられる曲線の場合です。ここで、そのような例を示します。繰り返しの差し替え部分まで延びるスラーを表示する方法を示しています。
\relative { c''1 \repeat volta 3 { c4 d( e f } \alternative { { g2) d } { g2 % スラーを作成して、新しい位置に移動させます % <> はスラーを終わらせるための空の和音です -\tweak control-points #'((-2 . 3.8) (-1 . 3.9) (0 . 4) (1 . 3.4)) ( <> ) f, } { e'2 % スラーを作成して、新しい位置に移動させます -\tweak control-points #'((-2 . 3) (-1 . 3.1) (0 . 3.2) (1 . 2.4)) ( <> ) f, } } }
既知の問題と警告
同じ音楽タイミングに複数のタイあるいはスラーが存在する場合、control-points
プロパティを変更してもそれらの形状を変更することはできません。\tweak
コマンドを用いたとしても変更できません。しかしながら、TieColumn
の tie-configuration
プロパティをオーバライドすることで、タイの垂直方向の位置と領域を変更することができます。
参照
内部リファレンス: TieColumn
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < タイとスラーの形状を変更する ] | [ 上へ : 高度な調整 ] | [ alterBroken を使用する > ] |
5.5.5 改行するスパナを変更する
\alterBroken を使用する |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 改行するスパナを変更する ] | [ 上へ : 改行するスパナを変更する ] | [ unpure-pure コンテナ > ] |
\alterBroken
を使用する
スパナが改行や改ページにまたがる場合、それぞれの部分は元のスパナの属性を受け継ぎます。そのため、通常と同じようにスパナを変更することで、改行するスパナの各部分を変更することができます。下の例では
thickness
をオーバライドしていますが、改行するスラーの両方の部分が変更されています。
\relative c'' { r2 \once\override Slur.thickness = 10 c8( d e f \break g8 f e d) r2 }
\alterBroken
コマンドを用いることで、改行するスパナの各部分をそれぞれ独立して変更することができます。このコマンドはスパナのプロパティを
\override
あるいは \tweak
することができます。
\alterBroken
の構文は:
[-]\alterBroken property values item
引数 values は値のリストを取り、スパナの各部分に対応します。item が Slur
や Staff.PianoPedalBracket
のような
Grob の名前である場合、結果はその Grob の \override
となります。item が “(” や “[” のような音楽表記である場合、\tweak
が適用された音楽表記が出力されます。
\tweak
形では前にハイフンが必要です。\alterBroken
を
\override
として用いる場合には、ハイフンを付けないでください。
\override
として使用する場合、\alterBroken
は
\once
や \temporary
を前置することができ、\revert
で元に戻すことができます
(
Intermediate substitution functions を参照してください)。
次のコードは、前の例におけるスラーの各部分をそれぞれ \override
しています。
\relative c'' { r2 \alterBroken thickness #'(10 1) Slur c8( d e f \break g8 f e d) r2 }
\alterBroken
コマンドは全てのスパナに対して用いることができます
(例えば Tie
, PhrasingSlur
, Beam
, TextSpanner
などです)。例えば、校訂譜を作成する際には、原典に無いスラーを追加する際に点線で表示させたいことがあります。次の例ではこれをどのように実現するかを示しており、今回は \tweak
形を用いています:
% 空リストが dash-definition のデフォルト設定であり、 % 繋がった曲線が出力されます \relative { c''2-\alterBroken dash-definition #'(() ((0 1.0 0.4 0.75))) \(e \break g2 e\) }
\alterBroken
において、values のリストの各要素がスパナの各部分のプロパティに影響するということは重要です。もしスパナの要素数よりも少ない数の値がセットされていた場合、残りの部分は空リストがセットされたとして扱われます。この時、プロパティのデフォルト値が空リストではない場合には意図しない結果をもたらす可能性があります。そのような場合には、各部分について正しい値をセットしてください。
既知の問題と警告
レイアウトが変更された場合、改行の位置も変更されることがあります。このように改行位置が変更されて、スパナの跨る行数が増減した場合、\alterBroken
の設定は適切ではなくなるでしょう。明示的に \break
を用いることによってこれを防止します。
\alterBroken
コマンドは、direction
のように、改行処理の前にアクセスされるプロパティに対しては効果がありません。
参照
拡張: Difficult tweaks
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < alterBroken を使用する ] | [ 上へ : 高度な調整 ] | [ 音楽関数を使用する > ] |
5.5.6 unpure-pure コンテナ
unpure-pure コンテナは Y-axis スペース - 特に Y-offset
と
Y-extent
- の算出をリテラル (つまり、数字やペア) ではなく、Scheme 関数で上書きする際に有用です。
ある特定のグラフィカル オブジェクトでは、Y-extent
は stencil
プロパティをベースにしていて、それらの stencil
プロパティを上書きする場合は
unpure-pure コンテナで Y-extent
も上書きする必要があります。関数によって Y-offset
と/または Y-extent
を上書きした場合、その関数はコンパイルの最中の早すぎるタイミングで、改行の算出が行われるものと見なされます。そのため、その関数はまったく評価されず (通常、‘0’ または ‘'(0 . 0)’ の値を返します)、結果として衝突を引き起こすことがあります。‘pure’ 関数はプロパティ、オブジェクト、あるいはグラフィカル オブジェクトの消失に影響を与えないため、その関数の Y-axis に関する評価は常に正しく行われます。
現在のところ ‘pure’ と見なされる関数が約 30 あり、Unpure-pure コンテナを用いて ‘pure’ ではない関数を ‘pure’ な関数としてセットすることができます。‘pure’ 関数は改行の 前に 評価されるため、水平方向のスペースを ‘正しいタイミングで’ 調節することができます。‘unpure’ 関数は改行の 後に 評価されます。
Note: どの関数が ‘pure’ であるかを常に把握していることは困難なので、作成する ‘pure’
関数ではグラフィカル オブジェクト Beam
や VerticalAlignment
を使わないことをおすすめします。
unpure-pure コンテナは以下のように構築します:
(ly:make-unpure-pure-container f0 f1)
ここで f0
は n (n >= 1) 個の引数を取る関数であり、最初の引数は常にグラフィカル オブジェクトである必要があります。これが実際に結果を返す関数です。f1
は ‘pure’ であると見なされる関数であり、n + 2 個の引数を取ります。f1
も最初の引数は常にグラフィカル オブジェクトである必要があり、2 番目と
3 番目の引数は ‘start’ と ‘end’ です。
start と end は事実上、Spanners
(つまり、Hairpin
や
Beam
) だけで問題となるダミー値であり、スパナが開始あるいは終了する段によって、高さの予想値が異なってくる場合に使用されるものです。
f1
の残りの引数は f0
の引数と同じです (n = 1 である場合は残りの引数はありません)。
関数 f1
の結果は概算であり、f0
が実際の値を得るのに用いられます。f0
の結果はもっと後のスペースの処理で微調整に用いられます。
#(define (square-line-circle-space grob) (let* ((pitch (ly:event-property (ly:grob-property grob 'cause) 'pitch)) (notename (ly:pitch-notename pitch))) (if (= 0 (modulo notename 2)) (make-circle-stencil 0.5 0.0 #t) (make-filled-box-stencil '(0 . 1.0) '(-0.5 . 0.5))))) squareLineCircleSpace = { \override NoteHead.stencil = #square-line-circle-space } smartSquareLineCircleSpace = { \squareLineCircleSpace \override NoteHead.Y-extent = #(ly:make-unpure-pure-container ly:grob::stencil-height (lambda (grob start end) (ly:grob::stencil-height grob))) } \new Voice \with { \remove Stem_engraver } \relative c'' { \squareLineCircleSpace cis4 ces disis d \smartSquareLineCircleSpace cis4 ces disis d }
最初の小節では unpure-pure コンテナを用いていないため、スペース算出エンジンは符頭の幅を知ることができず、符頭と臨時記号が衝突しています。次の小節では unpure-pure コンテナを用いているため、スペース算出エンジンは符頭の幅を知ることができ、それに応じて小節の幅を増やすことで衝突を回避しています。
通常、簡単な計算では、unpure-pure コンテナの ‘unpure’ パートと ‘pure’ パートの両方に、引数の数とスコープを変えただけのほとんど同じ関数を用いることができます。このように使用されることが多いため、ly:make-unpure-pure-container
に関数を 1 つだけ与えた場合、デフォルトで同じ関数を用いてコンテナを作り出します。
Note: ‘pure’ と見なした関数が ‘pure’ でなかった場合、予期しない結果となることがあります。
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < unpure-pure コンテナ ] | [ 上へ : デフォルトを変更する ] | [ 置換関数の構文 > ] |
5.6 音楽関数を使用する
調整を異なる音楽表記に再利用する必要がある場合、その調整を音楽関数にしておくと便利です。このセクションでは、置換 関数についてだけ議論します。置換関数は変数を LilyPond 入力コードに置き換えます。他のもっと複雑な関数については、 Music functions で記述されています。
5.6.1 置換関数の構文 | ||
5.6.2 置換関数の例 |
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 音楽関数を使用する ] | [ 上へ : 音楽関数を使用する ] | [ 置換関数の例 > ] |
5.6.1 置換関数の構文
変数を LilyPond コードに置換する関数を作成することは簡単にできます。置換関数の一般的な形式は以下のようなものです:
function = #(define-music-function (arg1 arg2 …) (type1? type2? …) #{ …music… #})
ここで
argN | n 番目の引数 |
typeN? | argN が #t を返す Scheme の 型述語 (type predicate)。 |
…music… | 通常の LilyPond 入力。引数を参照するには $ (LilyPond 構造が許可されている場合のみ) や # (引数を Scheme 値、音楽関数の引数、あるいは音楽リスト内部の音楽として使う場合) を用います
(例: ‘#arg1’)。 |
です。
引数として、型述語のリストが必須です。音楽関数で用いられる一般的な型述語には下記のものがあります:
boolean? cheap-list? (‘list?’ の代わりに用いることで、処理を高速にします) ly:duration? ly:music? ly:pitch? markup? number? pair? string? symbol?
利用可能な型述語のリストは、定義された型述語 を参照してください。ユーザが型述語を定義することもできます。
参照
記譜法リファレンス: 定義された型述語
拡張: Music functions
インストールされているファイル: ‘lily/music-scheme.cc’, ‘scm/c++.scm’, ‘scm/lily.scm’
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
[ < 置換関数の構文 ] | [ 上へ : 音楽関数を使用する ] | [ 付表 > ] |
5.6.2 置換関数の例
このセクションでは、置換関数の例をいくつか紹介します。高度なことはしていませんが、シンプルな置換関数を実現する方法を示しています。
最初の例では、TextScript
のパディング設定を容易にするための関数が定義されています:
padText = #(define-music-function (padding) (number?) #{ \once \override TextScript.padding = #padding #}) \relative { c''4^"piu mosso" b a b \padText #1.8 c4^"piu mosso" b a b \padText #2.6 c4^"piu mosso" b a b }
数値のほかに、音符などの音楽表記を音楽関数への引数にすることができます:
custosNote = #(define-music-function (note) (ly:music?) #{ \tweak NoteHead.stencil #ly:text-interface::print \tweak NoteHead.text \markup \musicglyph "custodes.mensural.u0" \tweak Stem.stencil ##f #note #}) \relative { c'4 d e f \custosNote g }
上に挙げた例の両方では、関数やオーバライドにおける最後の引数が空きになっているだけの、単一の式の形をしています。このような特別な場合では、よりシンプルな関数の定義方法があり、一定の部分はそのまま書き出し、引数となる最後の部分を \etc
で置き換えるという書き方をします:
padText = \once \override TextScript.padding = \etc \relative { c''4^"piu mosso" b a b \padText #1.8 c4^"piu mosso" b a b \padText #2.6 c4^"piu mosso" b a b }
custosNote = \tweak NoteHead.stencil #ly:text-interface::print \tweak NoteHead.text \markup \musicglyph "custodes.mensural.u0" \tweak Stem.stencil ##f \etc \relative { c'4 d e f \custosNote g }
複数の引数をとる置換関数を定義することもできます:
tempoPadded = #(define-music-function (padding tempotext) (number? markup?) #{ \once \override Score.MetronomeMark.padding = #padding \tempo \markup { \bold #tempotext } #}) \relative { \tempo \markup { "Low tempo" } c''4 d e f g1 \tempoPadded #4.0 "High tempo" g4 f e d c1 }
[ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 置換関数の例 ] | [ 上へ : Top ] | [ コード ネーム表 > ] |
A. 付表
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 付表 ] | [ 上へ : 付表 ] | [ 一般的な和音修飾子 > ] |
A.1 コード ネーム表
次の図は、コード ネームを表示する LilyPond の一般的な方式を、ピッチと共に示しています。初期の LilyPond リリース (バージョン 1.7 まで) でデフォルトで用いられた Harald Banter (1982) から着想を得た記譜法を含む追加の (サポートされていない) 命名システムも、Chords の “Chord names alternative” スニペットで紹介します。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < コード ネーム表 ] | [ 上へ : 付表 ] | [ 定義された弦チューニング > ] |
A.2 一般的な和音修飾子
次の表は、一般的な和音を作るために使われる修飾子を示しています:
種類 | 音程 | 修飾子 | 例 | 出力 |
メジャー | 長三度, 完全五度 | 5 または無し | c1:5 | |
マイナー | 短三度, 完全五度 | m or m5 | c1:m | |
オーグメント | 長三度, 増五度 | aug | c1:aug | |
ディミニッシュ | 短三度, 減五度 | dim | c1:dim | |
セブンス | 長三和音, 短七度 | 7 | c1:7 | |
メジャー セブンス | 長三和音, 長七度 | maj7 or maj | c1:maj7 | |
マイナー セブンス | 短三和音, 短七度 | m7 | c1:m7 | |
ディミニッシュト セブンス | 減三和音, 減七度 | dim7 | c1:dim7 | |
オーグメンテッド セブンス | 増三和音, 短七度 | aug7 | c1:aug7 | |
ハーフ ディミニッシュト セブンス | 減三和音, 短七度 | m7.5- | c1:m7.5- | |
マイナー メジャー セブンス | 短三和音, 長七度 | m7+ | c1:m7+ | |
メジャー シックス | 長三和音, 長六度 | 6 | c1:6 | |
マイナー シックス | 短三和音, 長六度 | m6 | c1:m6 | |
ナインス | セブンス, 長九度 | 9 | c1:9 | |
メジャー ナインス | メジャー セブンス, 長九度 | maj9 | c1:maj9 | |
マイナー ナインス | マイナー セブンス, 長九度 | m9 | c1:m9 | |
イレブンス | ナインス, 完全十一度 | 11 | c1:11 | |
メジャー イレブンス | メジャー ナインス, 完全十一度 | maj11 | c1:maj11 | |
マイナー イレブンス | マイナー ナインス, 完全十一度 | m11 | c1:m11 | |
サーティーンス | ナインス, 長十三度 | 13 | c1:13 | |
サーティーンス | イレブンス, 長十三度 | 13.11 | c1:13.11 | |
メジャー サーティーンス | メジャー イレブンス, 長十三度 | maj13.11 | c1:maj13.11 | |
マイナー サーティーンス | マイナー イレブンス, 長十三度 | m13.11 | c1:m13.11 | |
サスペンデッド セカンド | 長二度, 完全五度 | sus2 | c1:sus2 | |
サスペンデッド フォース | 完全四度, 完全五度 | sus4 | c1:sus4 | |
パワー コード (2 音) | 完全五度 | 1.5 | c1:5 | |
パワー コード (3 音) | 完全五度, 完全八度 | 1.5.8 | c1:5.8 |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 一般的な和音修飾子 ] | [ 上へ : 付表 ] | [ 定義されたフレット図 > ] |
A.3 定義された弦チューニング
下の図は、予め定義された弦チューニングの一覧を示しています。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 定義された弦チューニング ] | [ 上へ : 付表 ] | [ ギターのフレット図 > ] |
A.4 定義されたフレット図
ギターのフレット図 | ||
ウクレレのフレット図 | ||
マンドリンのフレット図 |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 定義されたフレット図 ] | [ 上へ : 定義されたフレット図 ] | [ ウクレレのフレット図 > ] |
ギターのフレット図
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < ギターのフレット図 ] | [ 上へ : 定義されたフレット図 ] | [ マンドリンのフレット図 > ] |
ウクレレのフレット図
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < ウクレレのフレット図 ] | [ 上へ : 定義されたフレット図 ] | [ 定義された用紙サイズ > ] |
マンドリンのフレット図
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < マンドリンのフレット図 ] | [ 上へ : 付表 ] | [ MIDI 楽器 > ] |
A.5 定義された用紙サイズ
用紙サイズは、‘scm/paper.scm’ に定義されています。
“ISO 216” A シリーズ
-
"a10"
(26 x 37 mm)
-
"a9"
(37 x 52 mm)
-
"a8"
(52 x 74 mm)
-
"a7"
(74 x 105 mm)
-
"a6"
(105 x 148 mm)
-
"a5"
(148 x 210 mm)
-
"a4"
(210 x 297 mm)
-
"a3"
(297 x 420 mm)
-
"a2"
(420 x 594 mm)
-
"a1"
(594 x 841 mm)
-
"a0"
(841 x 1189 mm)
“ISO 216” B シリーズ (訳注: 日本の B 判とは異なります)
-
"b10"
(31 x 44 mm)
-
"b9"
(44 x 62 mm)
-
"b8"
(62 x 88 mm)
-
"b7"
(88 x 125 mm)
-
"b6"
(125 x 176 mm)
-
"b5"
(176 x 250 mm)
-
"b4"
(250 x 353 mm)
-
"b3"
(353 x 500 mm)
-
"b2"
(500 x 707 mm)
-
"b1"
(707 x 1000 mm)
-
"b0"
(1000 x 1414 mm)
“DIN 476” で定義された A0 より大きなサイズ
-
"4a0"
(1682 x 2378 mm)
-
"2a0"
(1189 x 1682 mm)
“ISO 269” C シリーズ
-
"c10"
(28 x 40 mm)
-
"c9"
(40 x 57 mm)
-
"c8"
(57 x 81 mm)
-
"c7"
(81 x 114 mm)
-
"c6"
(114 x 162 mm)
-
"c5"
(162 x 229 mm)
-
"c4"
(229 x 324 mm)
-
"c3"
(324 x 458 mm)
-
"c2"
(458 x 648 mm)
-
"c1"
(648 x 917 mm)
-
"c0"
(917 x 1297 mm)
北米規格
-
"junior-legal"
(8.0 x 5.0 in)
-
"legal"
(8.5 x 14.0 in)
-
"ledger"
(17.0 x 11.0 in)
-
"letter"
(8.5 x 11.0 in)
-
"tabloid"
(11.0 x 17.0 in)
-
"11x17"
(11.0 x 17.0 in)
-
"17x11"
(17.0 x 11.0 in)
IEEE Printer Working Group の Government-letter など
-
"government-letter"
(8 x 10.5 in)
-
"government-legal"
(8.5 x 13.0 in)
-
"philippine-legal"
(8.5 x 13.0 in)
ANSI 規格
-
"ansi a"
(8.5 x 11.0 in)
-
"ansi b"
(17.0 x 11.0 in)
-
"ansi c"
(17.0 x 22.0 in)
-
"ansi d"
(22.0 x 34.0 in)
-
"ansi e"
(34.0 x 44.0 in)
-
"engineering f"
(28.0 x 40.0 in)
北米図面用紙規格
-
"arch a"
(9.0 x 12.0 in)
-
"arch b"
(12.0 x 18.0 in)
-
"arch c"
(18.0 x 24.0 in)
-
"arch d"
(24.0 x 36.0 in)
-
"arch e"
(36.0 x 48.0 in)
-
"arch e1"
(30.0 x 42.0 in)
旧式のサイズ (イギリスで使われる)
-
"statement"
(5.5 x 8.5 in)
-
"half letter"
(5.5 x 8.5 in)
-
"quarto"
(8.0 x 10.0 in)
-
"octavo"
(6.75 x 10.5 in)
-
"executive"
(7.25 x 10.5 in)
-
"monarch"
(7.25 x 10.5 in)
-
"foolscap"
(8.27 x 13.0 in)
-
"folio"
(8.27 x 13.0 in)
-
"super-b"
(13.0 x 19.0 in)
-
"post"
(15.5 x 19.5 in)
-
"crown"
(15.0 x 20.0 in)
-
"large post"
(16.5 x 21.0 in)
-
"demy"
(17.5 x 22.5 in)
-
"medium"
(18.0 x 23.0 in)
-
"broadsheet"
(18.0 x 24.0 in)
-
"royal"
(20.0 x 25.0 in)
-
"elephant"
(23.0 x 28.0 in)
-
"double demy"
(22.5 x 35.0 in)
-
"quad demy"
(35.0 x 45.0 in)
-
"atlas"
(26.0 x 34.0 in)
-
"imperial"
(22.0 x 30.0 in)
-
"antiquarian"
(31.0 x 53.0 in)
PA4 ベースのサイズ
-
"pa0"
(840 x 1120 mm)
-
"pa1"
(560 x 840 mm)
-
"pa2"
(420 x 560 mm)
-
"pa3"
(280 x 420 mm)
-
"pa4"
(210 x 280 mm)
-
"pa5"
(140 x 210 mm)
-
"pa6"
(105 x 140 mm)
-
"pa7"
(70 x 105 mm)
-
"pa8"
(52 x 70 mm)
-
"pa9"
(35 x 52 mm)
-
"pa10"
(26 x 35 mm)
東南アジアやオーストラリアで使用されるサイズ
-
"f4"
(210 x 330 mm)
ドキュメントの @lilypond
で使用される A8 横長ベースのサイズ
-
"a8landscape"
(74 x 52 mm)
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 定義された用紙サイズ ] | [ 上へ : 付表 ] | [ 色の一覧 > ] |
A.6 MIDI 楽器
次のリストは、midiInstrument
プロパティに使用することのできる名前です。General MIDI 規格の 128 個のプログラム順に左列から並んでいます。
acoustic grand contrabass lead 7 (fifths) bright acoustic tremolo strings lead 8 (bass+lead) electric grand pizzicato strings pad 1 (new age) honky-tonk orchestral harp pad 2 (warm) electric piano 1 timpani pad 3 (polysynth) electric piano 2 string ensemble 1 pad 4 (choir) harpsichord string ensemble 2 pad 5 (bowed) clav synthstrings 1 pad 6 (metallic) celesta synthstrings 2 pad 7 (halo) glockenspiel choir aahs pad 8 (sweep) music box voice oohs fx 1 (rain) vibraphone synth voice fx 2 (soundtrack) marimba orchestra hit fx 3 (crystal) xylophone trumpet fx 4 (atmosphere) tubular bells trombone fx 5 (brightness) dulcimer tuba fx 6 (goblins) drawbar organ muted trumpet fx 7 (echoes) percussive organ french horn fx 8 (sci-fi) rock organ brass section sitar church organ synthbrass 1 banjo reed organ synthbrass 2 shamisen accordion soprano sax koto harmonica alto sax kalimba concertina tenor sax bagpipe acoustic guitar (nylon) baritone sax fiddle acoustic guitar (steel) oboe shanai electric guitar (jazz) english horn tinkle bell electric guitar (clean) bassoon agogo electric guitar (muted) clarinet steel drums overdriven guitar piccolo woodblock distorted guitar flute taiko drum guitar harmonics recorder melodic tom acoustic bass pan flute synth drum electric bass (finger) blown bottle reverse cymbal electric bass (pick) shakuhachi guitar fret noise fretless bass whistle breath noise slap bass 1 ocarina seashore slap bass 2 lead 1 (square) bird tweet synth bass 1 lead 2 (sawtooth) telephone ring synth bass 2 lead 3 (calliope) helicopter violin lead 4 (chiff) applause viola lead 5 (charang) gunshot cello lead 6 (voice)
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < MIDI 楽器 ] | [ 上へ : 付表 ] | [ Emmentaler フォント > ] |
A.7 色の一覧
通常の色
使用する際の構文は オブジェクトに色を付ける に詳しく説明されています。
black white red green blue cyan magenta yellow grey darkred darkgreen darkblue darkcyan darkmagenta darkyellow
X 色名
X の色名にはいくつかの種類があります:
単語が大文字で区切られている色名 (例えば ‘LightSlateBlue’) は、小文字かつスペースで区切った名前を用いることもできます (例えば ‘light slate blue’)
‘grey’ は ‘gray’ と綴ることもできます (例えば ‘DarkSlateGray’)。
数字の接尾辞を付けることができる色名があります (例えば ‘LightSalmon4’)。
数字を付けない色名
AliceBlue LawnGreen OrangeRed firebrick AntiqueWhite LemonChiffon PaleGoldenrod gainsboro BlanchedAlmond LightBlue PaleGreen gold BlueViolet LightCoral PaleTurquoise goldenrod CadetBlue LightCyan PaleVioletRed green CornflowerBlue LightGoldenrod PapayaWhip grey DarkBlue LightGoldenrodYellow PeachPuff honeydew DarkCyan LightGreen PowderBlue ivory DarkGoldenrod LightGrey RosyBrown khaki DarkGreen LightPink RoyalBlue lavender DarkGrey LightSalmon SaddleBrown linen DarkKhaki LightSeaGreen SandyBrown magenta DarkMagenta LightSkyBlue SeaGreen maroon DarkOliveGreen LightSlateBlue SkyBlue moccasin DarkOrange LightSlateGrey SlateBlue navy DarkOrchid LightSteelBlue SlateGrey orange DarkRed LightYellow SpringGreen orchid DarkSalmon LimeGreen SteelBlue peru DarkSeaGreen MediumAquamarine VioletRed pink DarkSlateBlue MediumBlue WhiteSmoke plum DarkSlateGrey MediumOrchid YellowGreen purple DarkTurquoise MediumPurple aquamarine red DarkViolet MediumSeaGreen azure salmon DeepPink MediumSlateBlue beige seashell DeepSkyBlue MediumSpringGreen bisque sienna DimGrey MediumTurquoise black snow DodgerBlue MediumVioletRed blue tan FloralWhite MidnightBlue brown thistle ForestGreen MintCream burlywood tomato GhostWhite MistyRose chartreuse turquoise GreenYellow NavajoWhite chocolate violet HotPink NavyBlue coral wheat IndianRed OldLace cornsilk white LavenderBlush OliveDrab cyan yellow
数字を付ける色名
接尾辞 N は 1-4 の数字を取ります:
AntiqueWhiteN LightSkyBlueN SteelBlueN khakiN CadetBlueN LightSteelBlueN VioletRedN magentaN DarkGoldenrodN LightYellowN aquamarineN maroonN DarkOliveGreenN MediumOrchidN azureN orangeN DarkOrangeN MediumPurpleN bisqueN orchidN DarkOrchidN MistyRoseN blueN pinkN DarkSeaGreenN NavajoWhiteN brownN plumN DeepPinkN OliveDrabN burlywoodN purpleN DeepSkyBlueN OrangeRedN chartreuseN redN DodgerBlueN PaleGreenN chocolateN salmonN HotPinkN PaleTurquoiseN coralN seashellN IndianRedN PaleVioletRedN cornsilkN siennaN LavenderBlushN PeachPuffN cyanN snowN LemonChiffonN RosyBrownN firebrickN tanN LightBlueN RoyalBlueN goldN thistleN LightCyanN SeaGreenN goldenrodN tomatoN LightGoldenrodN SkyBlueN greenN turquoiseN LightPinkN SlateBlueN honeydewN wheatN LightSalmonN SpringGreenN ivoryN yellowN
グレースケール
グレースケールは 0-100 の数字を使うことができます:
greyN
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 色の一覧 ] | [ 上へ : 付表 ] | [ 音部記号グリフ > ] |
A.8 Emmentaler フォント
Emmentaler フォントは 2 つのグリフのサブセットから成ります。一つは “Feta” で、伝統的な記譜法に用いられ、もう一つは “Parmesan” で、古代の記譜法に用いられます。
Emmentaler フォントの全てのグリフは、テキスト マークアップでグリフの名前を指定することでアクセスすることができます。グリフの名前は以下の表にあります。例えば:
g^\markup {\musicglyph "scripts.segno" }
または
\markup {\musicglyph "five"}
詳しくは テキストをフォーマットする を参照してください。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Emmentaler フォント ] | [ 上へ : Emmentaler フォント ] | [ 拍子記号グリフ > ] |
音部記号グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 音部記号グリフ ] | [ 上へ : Emmentaler フォント ] | [ 数字グリフ > ] |
拍子記号グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 拍子記号グリフ ] | [ 上へ : Emmentaler フォント ] | [ 臨時記号グリフ > ] |
数字グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 数字グリフ ] | [ 上へ : Emmentaler フォント ] | [ デフォルトの符頭グリフ > ] |
臨時記号グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 臨時記号グリフ ] | [ 上へ : Emmentaler フォント ] | [ 特殊な符頭グリフ > ] |
デフォルトの符頭グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < デフォルトの符頭グリフ ] | [ 上へ : Emmentaler フォント ] | [ シェイプ ノートの符頭グリフ > ] |
特殊な符頭グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 特殊な符頭グリフ ] | [ 上へ : Emmentaler フォント ] | [ 休符グリフ > ] |
シェイプ ノートの符頭グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < シェイプ ノートの符頭グリフ ] | [ 上へ : Emmentaler フォント ] | [ 符尾グリフ > ] |
休符グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 休符グリフ ] | [ 上へ : Emmentaler フォント ] | [ 付点グリフ > ] |
符尾グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 符尾グリフ ] | [ 上へ : Emmentaler フォント ] | [ 強弱記号グリフ > ] |
付点グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 付点グリフ ] | [ 上へ : Emmentaler フォント ] | [ スクリプト グリフ > ] |
強弱記号グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 強弱記号グリフ ] | [ 上へ : Emmentaler フォント ] | [ 矢印グリフ > ] |
スクリプト グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < スクリプト グリフ ] | [ 上へ : Emmentaler フォント ] | [ 括弧の端部分のグリフ > ] |
矢印グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 矢印グリフ ] | [ 上へ : Emmentaler フォント ] | [ ペダル グリフ > ] |
括弧の端部分のグリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 括弧の端部分のグリフ ] | [ 上へ : Emmentaler フォント ] | [ アコーディオン グリフ > ] |
ペダル グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < ペダル グリフ ] | [ 上へ : Emmentaler フォント ] | [ タイ グリフ > ] |
アコーディオン グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < アコーディオン グリフ ] | [ 上へ : Emmentaler フォント ] | [ Vaticana グリフ > ] |
タイ グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < タイ グリフ ] | [ 上へ : Emmentaler フォント ] | [ Medicaea グリフ > ] |
Vaticana グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Vaticana グリフ ] | [ 上へ : Emmentaler フォント ] | [ Hufnagel グリフ > ] |
Medicaea グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Medicaea グリフ ] | [ 上へ : Emmentaler フォント ] | [ 計量音楽グリフ > ] |
Hufnagel グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Hufnagel グリフ ] | [ 上へ : Emmentaler フォント ] | [ Neomensural グリフ > ] |
計量音楽グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 計量音楽グリフ ] | [ 上へ : Emmentaler フォント ] | [ Petrucci グリフ > ] |
Neomensural グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Neomensural グリフ ] | [ 上へ : Emmentaler フォント ] | [ Solesmes グリフ > ] |
Petrucci グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Petrucci グリフ ] | [ 上へ : Emmentaler フォント ] | [ キエフ記譜法グリフ > ] |
Solesmes グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Solesmes グリフ ] | [ 上へ : Emmentaler フォント ] | [ 符頭のスタイル > ] |
キエフ記譜法グリフ
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < キエフ記譜法グリフ ] | [ 上へ : 付表 ] | [ 音部記号のスタイル > ] |
A.9 符頭のスタイル
以下は、符頭のスタイルの一覧です。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 符頭のスタイル ] | [ 上へ : 付表 ] | [ 通常の音部記号 > ] |
A.10 音部記号のスタイル
以下の表は、使用できる音部記号のスタイルの一覧です (ミドル C がどこに位置するかも表示してあります)。
通常の音部記号 | ||
打楽器譜の音部記号 | ||
タブ譜の音部記号 | ||
古代音楽の音部記号 |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 音部記号のスタイル ] | [ 上へ : 音部記号のスタイル ] | [ 打楽器譜の音部記号 > ] |
通常の音部記号
例 | 出力 | 例 | 出力 |
---|---|---|---|
\clef G | \clef "G2" | ||
\clef treble | \clef violin | ||
\clef french | \clef GG | ||
\clef tenorG |
| ||
\clef soprano | \clef mezzosoprano | ||
\clef C | \clef alto | ||
\clef tenor | \clef baritone |
| |
\clef varC | \clef altovarC | ||
\clef tenorvarC | \clef baritonevarC |
| |
\clef varbaritone | \clef baritonevarF | ||
\clef F | \clef bass | ||
\clef subbass |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 通常の音部記号 ] | [ 上へ : 音部記号のスタイル ] | [ タブ譜の音部記号 > ] |
打楽器譜の音部記号
例 | 出力 | 例 | 出力 |
---|---|---|---|
\clef percussion | \clef varpercussion |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 打楽器譜の音部記号 ] | [ 上へ : 音部記号のスタイル ] | [ 古代音楽の音部記号 > ] |
タブ譜の音部記号
例 | 出力 | 例 | 出力 |
---|---|---|---|
\new TabStaff { |
\new TabStaff { |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < タブ譜の音部記号 ] | [ 上へ : 音部記号のスタイル ] | [ \markup コマンドの一覧 > ] |
古代音楽の音部記号
グレゴリオ聖歌
例 | 出力 | 例 | 出力 |
---|---|---|---|
\clef "vaticana-do1" | \clef "vaticana-do2" | ||
\clef "vaticana-do3" | \clef "vaticana-fa1" | ||
\clef "vaticana-fa2" |
| ||
\clef "medicaea-do1" | \clef "medicaea-do2" | ||
\clef "medicaea-do3" | \clef "medicaea-fa1" | ||
\clef "medicaea-fa2" |
| ||
\clef "hufnagel-do1" | \clef "hufnagel-do2" | ||
\clef "hufnagel-do3" | \clef "hufnagel-fa1" | ||
\clef "hufnagel-fa2" | \clef |
計量音楽
例 | 出力 | 例 | 出力 |
---|---|---|---|
\clef "mensural-c1" | \clef "mensural-c2" | ||
\clef "mensural-c3" | \clef "mensural-c4" | ||
\clef "mensural-c5" |
| ||
\clef "mensural-f" | \clef "mensural-g" |
| |
\clef "blackmensural-c1" | \clef "blackmensural-c2" | ||
\clef "blackmensural-c3" | \clef "blackmensural-c4" | ||
\clef "blackmensural-c5" |
| ||
\clef "neomensural-c1" | \clef "neomensural-c2" | ||
\clef "neomensural-c3" | \clef "neomensural-c4" | ||
\clef "neomensural-c5" |
| ||
\clef "petrucci-c1" | \clef "petrucci-c2" | ||
\clef "petrucci-c3" | \clef "petrucci-c4" | ||
\clef "petrucci-c5" |
| ||
\clef "petrucci-f" | \clef "petrucci-f2" | ||
\clef "petrucci-f3" | \clef "petrucci-f4" | ||
\clef "petrucci-f5" |
| ||
\clef "petrucci-g1" | \clef "petrucci-g2" | ||
\clef "petrucci-g" |
キエフ記譜法
例 | 出力 | ||
---|---|---|---|
\clef "kievan-do" |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 古代音楽の音部記号 ] | [ 上へ : 付表 ] | [ Font > ] |
A.11 \markup コマンドの一覧
以下に挙げるコマンドは、\markup { }
の内部で用いることができます。
システムの制約により、以下の一覧は英語での提供となります。
The following commands can all be used inside \markup { }
.
A.11.1 Font | ||
A.11.2 Align | ||
A.11.3 Graphic | ||
A.11.4 Music | ||
A.11.5 Conditionals | ||
A.11.6 Instrument Specific Markup | ||
A.11.7 Accordion Registers | ||
A.11.8 Other |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < \markup コマンドの一覧 ] | [ 上へ : \markup コマンドの一覧 ] | [ Align > ] |
A.11.1 Font
-
\abs-fontsize
size (number) arg (markup) -
Use size as the absolute font size (in points) to display arg. Adjusts
baseline-skip
andword-space
accordingly.\markup { default text font size \hspace #2 \abs-fontsize #16 { text font size 16 } \hspace #2 \abs-fontsize #12 { text font size 12 } }
Used properties:
-
baseline-skip
(3
) -
word-space
(0.6
)
-
-
\bold
arg (markup) -
Switch to bold font-series.
\markup { default \hspace #2 \bold bold }
-
\box
arg (markup) -
Draw a box round arg. Looks at
thickness
,box-padding
andfont-size
properties to determine line thickness and padding around the markup.\markup { \override #'(box-padding . 0.5) \box \line { V. S. } }
Used properties:
-
box-padding
(0.2
) -
font-size
(0
) -
thickness
(1
)
-
-
\caps
arg (markup) -
Copy of the
\smallCaps
command.\markup { default \hspace #2 \caps { Text in small caps } }
-
\dynamic
arg (markup) -
Use the dynamic font. This font only contains s, f, m, z, p, and r. When producing phrases, like ‘più f’, the normal words (like ‘più’) should be done in a different font. The recommended font for this is bold and italic.
\markup { \dynamic { sfzp } }
-
\figured-bass
arg (markup) -
Set arg as small numbers for figured bass. Specially slashed digits can be achieved with a trailing backslashes (for numbers 6, 7, and 9) or a trailing plus (for numbers 2, 4, and 5).2
The use of a backslash is in analogy to
\figuremode
(see 通奏低音を入力する). Note that to get a backslash character in markup it must be escaped by doubling it. Additionally, it must be put into double quotes.\markup { \figured-bass { 2 3 4+ 7 "9\\" } }
-
\finger
arg (markup) -
Set arg as small numbers for fingering instructions.
\markup { \finger { 1 2 3 4 5 } }
-
\fontCaps
arg (markup) -
Set
font-shape
tocaps
Note:
\fontCaps
requires the installation and selection of fonts which support thecaps
font shape. -
\fontsize
increment (number) arg (markup) -
Add increment to the font-size. Adjusts
baseline-skip
accordingly.\markup { default \hspace #2 \fontsize #-1.5 smaller }
Used properties:
-
baseline-skip
(2
) -
word-space
(1
) -
font-size
(0
)
-
-
\huge
arg (markup) -
Set font size to +2.
\markup { default \hspace #2 \huge huge }
-
\italic
arg (markup) -
Use italic
font-shape
for arg.\markup { default \hspace #2 \italic italic }
-
\large
arg (markup) -
Set font size to +1.
\markup { default \hspace #2 \large large }
-
\larger
arg (markup) -
Increase the font size relative to the current setting.
\markup { default \hspace #2 \larger larger }
-
\magnify
sz (number) arg (markup) -
Set the font magnification for its argument. In the following example, the middle A is 10% larger:
A \magnify #1.1 { A } A
Note: Magnification only works if a font name is explicitly selected. Use
\fontsize
otherwise.\markup { default \hspace #2 \magnify #1.5 { 50% larger } }
-
\medium
arg (markup) -
Switch to medium font-series (in contrast to bold).
\markup { \bold { some bold text \hspace #2 \medium { medium font series } \hspace #2 bold again } }
-
\normal-size-sub
arg (markup) -
Set arg in subscript with a normal font size.
\markup { default \normal-size-sub { subscript in standard size } }
Used properties:
-
font-size
(0
)
-
-
\normal-size-super
arg (markup) -
Set arg in superscript with a normal font size.
\markup { default \normal-size-super { superscript in standard size } }
Used properties:
-
font-size
(0
)
-
-
\normal-text
arg (markup) -
Set all font related properties (except the size) to get the default normal text font, no matter what font was used earlier.
\markup { \huge \bold \sans \caps { huge bold sans caps \hspace #2 \normal-text { huge normal } \hspace #2 as before } }
-
\normalsize
arg (markup) -
Set font size to default.
\markup { \teeny { this is very small \hspace #2 \normalsize { normal size } \hspace #2 teeny again } }
-
\number
arg (markup) -
Set font family to
number
, which yields the font used for digits. This font also contains some punctuation; it has no letters.The appearance of digits in the Emmentaler font can be controlled with four OpenType features: ‘tnum’, ‘cv47’, ‘ss01’, and ‘kern’, which can be arbitrarily combined.
- tnum
If off (which is the default), glyphs ‘zero’ to ‘nine’ have no left and right side bearings. If on, the glyphs all have the same advance width by making the bearings non-zero.
- cv47
If on, glyphs ‘four’ and ‘seven’ have shorter vertical strokes. Default is off.
- ss01
If on, glyphs ‘zero’ to ‘nine’ have a fatter design, making them more readable at small sizes. Default is off.
- kern
If on (which is the default), provide pairwise kerning between (most) glyphs.
\markuplist \number \fontsize #5 \override #'((padding . 2) (baseline-skip . 4) (box-padding . 0) (thickness . 0.1)) \table #'(-1 -1 -1 -1) { 0123456789 \box 147 \concat { \box 1 \box 4 \box 7 } \normal-text \normalsize "(time signatures)" \override #'(font-features .("cv47")) { 0123456789 \box 147 \concat { \box 1 \box 4 \box 7 } } \normal-text \normalsize "(alternatives)" \override #'(font-features .("tnum" "cv47" "-kern")) { 0123456789 \box 147 \concat { \box 1 \box 4 \box 7 } } \normal-text \normalsize "(fixed-width)" \override #'(font-features . ("tnum" "cv47" "ss01")) { 0123456789 \box 147 \concat { \box 1 \box 4 \box 7 } } \normal-text \normalsize "(figured bass)" \override #'(font-features . ("cv47" "ss01")) { 0123456789 \box 147 \concat { \box 1 \box 4 \box 7 } } \normal-text \normalsize "(fingering)" }
See also the markup commands
\figured-bass
and\finger
, which set the font features accordingly. -
\overtie
arg (markup) -
Overtie arg.
\markup \line { \overtie "overtied" \override #'((offset . 5) (thickness . 1)) \overtie "overtied" \override #'((offset . 1) (thickness . 5)) \overtie "overtied" }
Used properties:
-
shorten-pair
((0 . 0)
) -
height-limit
(0.7
) -
direction
(1
) -
offset
(2
) -
thickness
(1
)
-
-
\replace
replacements (list) arg (markup) -
Used to automatically replace a string by another in the markup arg. Each pair of the alist replacements specifies what should be replaced. The
key
is the string to be replaced by thevalue
markup. Note the quasiquoting syntax with a backquote in the second example.\markup \replace #'(("2nd" . "Second")) "2nd time" \markup \replace #`(("2nd" . ,#{ \markup \concat { 2 \super nd } #})) \center-column { \line { Play only } \line { the 2nd time } }
Used properties:
-
replacement-alist
-
-
\roman
arg (markup) -
Set font family to
roman
.\markup { \sans \bold { sans serif, bold \hspace #2 \roman { text in roman font family } \hspace #2 return to sans } }
-
\sans
arg (markup) -
Switch to the sans serif font family.
\markup { default \hspace #2 \sans { sans serif } }
-
\simple
str (string) -
\markup \simple "x"
is equivalent to\markup "x"
. This command was previously used internally, but no longer is, and is being kept for backwards compatibility only. -
\small
arg (markup) -
Set font size to -1.
\markup { default \hspace #2 \small small }
-
\smallCaps
arg (markup) -
Emit arg as small caps.
\markup { default \hspace #2 \smallCaps { Text in small caps } }
-
\smaller
arg (markup) -
Decrease the font size relative to the current setting.
\markup { \fontsize #3.5 { large text \hspace #2 \smaller { smaller text } \hspace #2 large text } }
-
\sub
arg (markup) -
Set arg in subscript.
\markup { \concat { H \sub { 2 } O } }
Used properties:
-
font-size
(0
)
-
-
\super
arg (markup) -
Set arg in superscript.
\markup { E = \concat { mc \super 2 } }
Used properties:
-
font-size
(0
)
-
-
\teeny
arg (markup) -
Set font size to -3.
\markup { default \hspace #2 \teeny teeny }
-
\text
arg (markup) -
Use a text font instead of music symbol or music alphabet font.
\markup { \number { 1, 2, \text { three, four, } 5 } }
-
\tie
arg (markup) -
Adds a horizontal bow created with
make-tie-stencil
at bottom or top of arg. Looks atthickness
to determine line thickness, andoffset
to determine y-offset. The added bow fits the extent of arg,shorten-pair
may be used to modify this. direction may be set using anoverride
or direction-modifiers orvoiceOne
, etc.\markup { \override #'(direction . 1) \tie "above" \override #'(direction . -1) \tie "below" }
Used properties:
-
shorten-pair
((0 . 0)
) -
height-limit
(0.7
) -
direction
(1
) -
offset
(2
) -
thickness
(1
)
-
-
\tiny
arg (markup) -
Set font size to -2.
\markup { default \hspace #2 \tiny tiny }
-
\typewriter
arg (markup) -
Use
font-family
typewriter for arg.\markup { default \hspace #2 \typewriter typewriter }
-
\underline
arg (markup) -
Underline arg. Looks at
thickness
to determine line thickness,offset
to determine line y-offset from arg andunderline-skip
to determine the distance of additional lines from the others.underline-shift
is used to get subsequent calls correct. Overriding it makes little sense, it would end up adding the provided value to the one ofoffset
.\markup \justify-line { \underline "underlined" \override #'(offset . 5) \override #'(thickness . 1) \underline "underlined" \override #'(offset . 1) \override #'(thickness . 5) \underline "underlined" \override #'(offset . 5) \override #'(underline-skip . 4) \underline \underline \underline "multiple underlined" }
Used properties:
-
underline-skip
(2
) -
underline-shift
(0
) -
offset
(2
) -
thickness
(1
)
-
-
\undertie
arg (markup) -
\markup \line { \undertie "undertied" \override #'((offset . 5) (thickness . 1)) \undertie "undertied" \override #'((offset . 1) (thickness . 5)) \undertie "undertied" }
Used properties:
-
shorten-pair
((0 . 0)
) -
height-limit
(0.7
) -
direction
(1
) -
offset
(2
) -
thickness
(1
)
-
-
\upright
arg (markup) -
Set
font-shape
toupright
. This is the opposite ofitalic
.\markup { \italic { italic text \hspace #2 \upright { upright text } \hspace #2 italic again } }
-
\with-string-transformer
transformer (procedure) arg (markup) -
Interpret the markup arg with a string transformer installed. Whenever a string is interpreted inside arg, the transformer is first called, and it is the result that is interpreted. The arguments passed to the transformer are the output definition, the property alist chain, and the string. See New markup command definition about the two first arguments.
\markup \with-string-transformer #(lambda (layout props str) (string-upcase str)) "abc"
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Font ] | [ 上へ : \markup コマンドの一覧 ] | [ Graphic > ] |
A.11.2 Align
-
\align-on-other
axis (non-negative, exact integer) other-dir (number) other (markup) self-dir (number) self (markup) -
Align markup self on markup other along axis axis, using self-dir and other-dir for mutual alignment of self and other, respectively. This command translates self as requested relative to its surroundings; other is not printed.
\markup \column { 1 12 \align-on-other #X #RIGHT 12 #LEFT 12345 123 }
-
\center-align
arg (markup) -
Align
arg
to its X center.\markup { \column { one \center-align two three } }
-
\center-column
args (markup list) -
Put
args
in a centered column.\markup { \center-column { one two three } }
Used properties:
-
baseline-skip
-
-
\column
args (markup list) -
Stack the markups in args vertically. The property
baseline-skip
determines the space between markups in args.\markup { \column { one two three } }
Used properties:
-
baseline-skip
-
-
\combine
arg1 (markup) arg2 (markup) -
Print two markups on top of each other.
Note:
\combine
cannot take a list of markups enclosed in curly braces as an argument; for this purpose use\overlay
instead.\markup { \fontsize #5 \override #'(thickness . 2) \combine \draw-line #'(0 . 4) \arrow-head #Y #DOWN ##f }
-
\concat
args (markup list) -
Concatenate args in a horizontal line, without spaces in between. Strings are concatenated on the input level, allowing ligatures. For example,
\concat { "f" "i" }
is equivalent to"fi"
.\markup { \concat { one two three } }
-
\dir-column
args (markup list) -
Make a column of args, going up or down, depending on the setting of the
direction
layout property.\markup { \override #`(direction . ,UP) \dir-column { going up } \hspace #1 \dir-column { going down } \hspace #1 \override #'(direction . 1) \dir-column { going up } }
Used properties:
-
baseline-skip
-
direction
-
-
\fill-line
args (markup list) -
Put markups in a horizontal line of width line-width. The markups are spaced or flushed to fill the entire line. If there are no arguments, return an empty stencil.
\markup { \column { \fill-line { Words evenly spaced across the page } \null \fill-line { \line { Text markups } \line { \italic { evenly spaced } } \line { across the page } } \null \override #'(line-width . 50) \fill-line { Width explicitly specified } } }
Used properties:
-
line-width
(#f
) -
word-space
(0.6
) -
text-direction
(1
)
-
-
\fill-with-pattern
space (number) dir (direction) pattern (markup) left (markup) right (markup) -
Put left and right in a horizontal line of width
line-width
with a line of markups pattern in between. Patterns are spaced apart by space. Patterns are aligned to the dir markup.\markup \column { "right-aligned :" \fill-with-pattern #1 #RIGHT . first right \fill-with-pattern #1 #RIGHT . second right \null "center-aligned :" \fill-with-pattern #1.5 #CENTER - left right \null "left-aligned :" \override #'(line-width . 50) \fill-with-pattern #2 #LEFT : left first \override #'(line-width . 50) \fill-with-pattern #2 #LEFT : left second }
Used properties:
-
line-width
-
word-space
-
-
\general-align
axis (integer) dir (number) arg (markup) -
Align arg in axis direction to the dir side.
\markup { \column { one \general-align #X #LEFT two three \null one \general-align #X #CENTER two three \null \line { one \general-align #Y #UP two three } \null \line { one \general-align #Y #3.2 two three } } }
-
\halign
dir (number) arg (markup) -
Set horizontal alignment. If dir is
-1
, then it is left-aligned, while+1
is right. Values in between interpolate alignment accordingly.\markup { \column { one \halign #LEFT two three \null one \halign #CENTER two three \null one \halign #RIGHT two three \null one \halign #-5 two three } }
-
\hcenter-in
length (number) arg (markup) -
Center arg horizontally within a box of extending length/2 to the left and right.
\new StaffGroup << \new Staff { \set Staff.instrumentName = \markup { \hcenter-in #12 Oboe } c''1 } \new Staff { \set Staff.instrumentName = \markup { \hcenter-in #12 Bassoon } \clef tenor c'1 } >>
-
\hspace
amount (number) -
Create an invisible object taking up horizontal space amount.
\markup { one \hspace #2 two \hspace #8 three }
-
\justify
args (markup list) -
Like
\wordwrap
, but with lines stretched to justify the margins. Use\override #'(line-width . X)
to set the line width; X is the number of staff spaces.\markup { \justify { Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. } }
Used properties:
-
text-direction
(1
) -
word-space
-
line-width
(#f
) -
baseline-skip
-
-
\justify-field
symbol (symbol) -
Justify the data which has been assigned to symbol.
\header { title = "My title" myText = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." } \paper { bookTitleMarkup = \markup { \column { \fill-line { \fromproperty #'header:title } \null \justify-field #'header:myText } } } \markup { \null }
-
\justify-line
args (markup list) -
Put markups in a horizontal line of width line-width. The markups are spread to fill the entire line and separated by equal space. If there are no arguments, return an empty stencil.
\markup { \justify-line { Constant space between neighboring words } }
Used properties:
-
line-width
(#f
) -
word-space
(0.6
) -
text-direction
(1
)
-
-
\justify-string
arg (string) -
Justify a string. Paragraphs may be separated with double newlines
\markup { \override #'(line-width . 40) \justify-string #"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" }
Used properties:
-
text-direction
(1
) -
word-space
-
line-width
-
baseline-skip
-
-
\left-align
arg (markup) -
Align arg on its left edge.
\markup { \column { one \left-align two three } }
-
\left-column
args (markup list) -
Put
args
in a left-aligned column.\markup { \left-column { one two three } }
Used properties:
-
baseline-skip
-
-
\line
args (markup list) -
Put args in a horizontal line. The property
word-space
determines the space between markups in args.\markup { \line { one two three } }
Used properties:
-
text-direction
(1
) -
word-space
-
-
\lower
amount (number) arg (markup) -
Lower arg by the distance amount. A negative amount indicates raising; see also
\raise
.\markup { one \lower #3 two three }
-
\overlay
args (markup list) -
Takes a list of markups combining them.
\markup { \fontsize #5 \override #'(thickness . 2) \overlay { \draw-line #'(0 . 4) \arrow-head #Y #DOWN ##f \translate #'(0 . 4)\arrow-head #Y #UP ##f } }
-
\pad
amount (number) arg (markup) -
Add space around a markup object. Identical to
pad-around
.\markup { \box { default } \hspace #2 \box { \pad-markup #1 { padded } } }
-
\pad-around
amount (number) arg (markup) -
Add padding amount all around arg.
\markup { \box { default } \hspace #2 \box { \pad-around #0.5 { padded } } }
-
\pad-to-box
x-ext (pair of numbers) y-ext (pair of numbers) arg (markup) -
Make arg take at least x-ext, y-ext space.
\markup { \box { default } \hspace #4 \box { \pad-to-box #'(0 . 10) #'(0 . 3) { padded } } }
-
\pad-x
amount (number) arg (markup) -
Add padding amount around arg in the X direction.
\markup { \box { default } \hspace #4 \box { \pad-x #2 { padded } } }
-
\put-adjacent
axis (integer) dir (direction) arg1 (markup) arg2 (markup) -
Put arg2 next to arg1, without moving arg1.
-
\raise
amount (number) arg (markup) -
Raise arg by the distance amount. A negative amount indicates lowering, see also
\lower
.The argument to
\raise
is the vertical displacement amount, measured in (global) staff spaces.\raise
and\super
raise objects in relation to their surrounding markups.If the text object itself is positioned above or below the staff, then
\raise
cannot be used to move it, since the mechanism that positions it next to the staff cancels any shift made with\raise
. For vertical positioning, use thepadding
and/orextra-offset
properties.\markup { C \small \bold \raise #1.0 9/7+ }
-
\right-align
arg (markup) -
Align arg on its right edge.
\markup { \column { one \right-align two three } }
-
\right-column
args (markup list) -
Put
args
in a right-aligned column.\markup { \right-column { one two three } }
Used properties:
-
baseline-skip
-
-
\rotate
ang (number) arg (markup) -
Rotate object with ang degrees around its center.
\markup { default \hspace #2 \rotate #45 \line { rotated 45° } }
-
\translate
offset (pair of numbers) arg (markup) -
Translate arg relative to its surroundings. offset is a pair of numbers representing the displacement in the X and Y axis.
\markup { * \translate #'(2 . 3) \line { translated two spaces right, three up } }
-
\translate-scaled
offset (pair of numbers) arg (markup) -
Translate arg by offset, scaling the offset by the
font-size
.\markup { \fontsize #5 { * \translate #'(2 . 3) translate \hspace #2 * \translate-scaled #'(2 . 3) translate-scaled } }
Used properties:
-
font-size
(0
)
-
-
\vcenter
arg (markup) -
Align
arg
to its Y center.\markup { one \vcenter two three }
-
\vspace
amount (number) -
Create an invisible object taking up vertical space of amount multiplied by 3.
\markup { \center-column { one \vspace #2 two \vspace #5 three } }
-
\wordwrap
args (markup list) -
Simple wordwrap. Use
\override #'(line-width . X)
to set the line width, where X is the number of staff spaces.\markup { \wordwrap { Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. } }
Used properties:
-
text-direction
(1
) -
word-space
-
line-width
(#f
) -
baseline-skip
-
-
\wordwrap-field
symbol (symbol) -
Wordwrap the data which has been assigned to symbol.
\header { title = "My title" myText = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." } \paper { bookTitleMarkup = \markup { \column { \fill-line { \fromproperty #'header:title } \null \wordwrap-field #'header:myText } } } \markup { \null }
-
\wordwrap-string
arg (string) -
Wordwrap a string. Paragraphs may be separated with double newlines.
\markup { \override #'(line-width . 40) \wordwrap-string #"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" }
Used properties:
-
text-direction
(1
) -
word-space
-
line-width
-
baseline-skip
-
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Align ] | [ 上へ : \markup コマンドの一覧 ] | [ Music > ] |
A.11.3 Graphic
-
\arrow-head
axis (integer) dir (direction) filled (boolean) -
Produce an arrow head in specified direction and axis. Use the filled head if filled is specified.
\markup { \fontsize #5 { \general-align #Y #DOWN { \arrow-head #Y #UP ##t \arrow-head #Y #DOWN ##f \hspace #2 \arrow-head #X #RIGHT ##f \arrow-head #X #LEFT ##f } } }
-
\beam
width (number) slope (number) thickness (number) -
Create a beam with the specified parameters.
\markup { \beam #5 #1 #2 }
-
\bracket
arg (markup) -
Draw vertical brackets around arg.
\markup { \bracket { \note {2.} #UP } }
-
\circle
arg (markup) -
Draw a circle around arg. Use
thickness
,circle-padding
andfont-size
properties to determine line thickness and padding around the markup.\markup { \circle { Hi } }
Used properties:
-
circle-padding
(0.2
) -
font-size
(0
) -
thickness
(1
)
-
-
\draw-circle
radius (number) thickness (number) filled (boolean) -
A circle of radius radius and thickness thickness, optionally filled.
\markup { \draw-circle #2 #0.5 ##f \hspace #2 \draw-circle #2 #0 ##t }
-
\draw-dashed-line
dest (pair of numbers) -
A dashed line.
If
full-length
is set to #t (default) the dashed-line extends to the whole length given by dest, without white space at beginning or end.off
will then be altered to fit. To insist on the given (or default) values ofon
,off
use\override #'(full-length . #f)
Manual settings foron
,off
andphase
are possible.\markup { \draw-dashed-line #'(5.1 . 2.3) \override #'((on . 0.3) (off . 0.5)) \draw-dashed-line #'(5.1 . 2.3) }
Used properties:
-
full-length
(#t
) -
phase
(0
) -
off
(1
) -
on
(1
) -
thickness
(1
)
-
-
\draw-dotted-line
dest (pair of numbers) -
A dotted line.
The dotted-line always extends to the whole length given by dest, without white space at beginning or end. Manual settings for
off
are possible to get larger or smaller space between the dots. The given (or default) value ofoff
will be altered to fit the line-length.\markup { \draw-dotted-line #'(5.1 . 2.3) \override #'((thickness . 2) (off . 0.2)) \draw-dotted-line #'(5.1 . 2.3) }
Used properties:
-
phase
(0
) -
off
(1
) -
thickness
(1
)
-
-
\draw-hline
-
Draws a line across a page, where the property
span-factor
controls what fraction of the page is taken up.\markup { \column { \draw-hline \override #'(span-factor . 1/3) \draw-hline } }
Used properties:
-
span-factor
(1
) -
line-width
-
thickness
(1
)
-
-
\draw-line
dest (pair of numbers) -
A simple line.
\markup { \draw-line #'(4 . 4) \override #'(thickness . 5) \draw-line #'(-3 . 0) }
Used properties:
-
thickness
(1
)
-
-
\draw-squiggle-line
sq-length (number) dest (pair of numbers) eq-end? (boolean) -
A squiggled line.
If
eq-end?
is set to#t
, it is ensured the squiggled line ends with a bow in same direction as the starting one.sq-length
is the length of the first bow.dest
is the end point of the squiggled line. To matchdest
the squiggled line is scaled accordingly. Its appearance may be customized by overrides forthickness
,angularity
,height
andorientation
.\markup \column { \draw-squiggle-line #0.5 #'(6 . 0) ##t \override #'(orientation . -1) \draw-squiggle-line #0.5 #'(6 . 0) ##t \draw-squiggle-line #0.5 #'(6 . 0) ##f \override #'(height . 1) \draw-squiggle-line #0.5 #'(6 . 0) ##t \override #'(thickness . 5) \draw-squiggle-line #0.5 #'(6 . 0) ##t \override #'(angularity . 2) \draw-squiggle-line #0.5 #'(6 . 0) ##t }
Used properties:
-
orientation
(1
) -
height
(0.5
) -
angularity
(0
) -
thickness
(0.5
)
-
-
\ellipse
arg (markup) -
Draw an ellipse around arg. Use
thickness
,x-padding
,y-padding
andfont-size
properties to determine line thickness and padding around the markup.\markup { \ellipse { Hi } }
Used properties:
-
y-padding
(0.2
) -
x-padding
(0.2
) -
font-size
(0
) -
thickness
(1
)
-
-
\epsfile
axis (number) size (number) file-name (string) -
Inline an EPS image. The image is scaled along axis to size.
\markup { \general-align #Y #DOWN { \epsfile #X #20 #"context-example.eps" \epsfile #Y #20 #"context-example.eps" } }
-
\filled-box
xext (pair of numbers) yext (pair of numbers) blot (number) -
Draw a box with rounded corners of dimensions xext and yext. For example,
\filled-box #'(-.3 . 1.8) #'(-.3 . 1.8) #0
creates a box extending horizontally from -0.3 to 1.8 and vertically from -0.3 up to 1.8, with corners formed from a circle of diameter 0 (i.e., sharp corners).
\markup { \filled-box #'(0 . 4) #'(0 . 4) #0 \filled-box #'(0 . 2) #'(-4 . 2) #0.4 \combine \filled-box #'(1 . 8) #'(0 . 7) #0.2 \with-color #white \filled-box #'(3.6 . 5.6) #'(3.5 . 5.5) #0.7 }
-
\hbracket
arg (markup) -
Draw horizontal brackets around arg.
\markup { \hbracket { \line { one two three } } }
-
\oval
arg (markup) -
Draw an oval around arg. Use
thickness
,x-padding
,y-padding
andfont-size
properties to determine line thickness and padding around the markup.\markup { \oval { Hi } }
Used properties:
-
y-padding
(0.75
) -
x-padding
(0.75
) -
font-size
(0
) -
thickness
(1
)
-
-
\parenthesize
arg (markup) -
Draw parentheses around arg. This is useful for parenthesizing a column containing several lines of text.
\markup { \parenthesize \column { foo bar } \override #'(angularity . 2) \parenthesize \column { bah baz } }
Used properties:
-
width
(0.25
) -
line-thickness
(0.1
) -
thickness
(1
) -
size
(1
) -
padding
-
angularity
(0
)
-
-
\path
thickness (number) commands (list) -
Draws a path with line thickness according to the directions given in commands. commands is a list of lists where the
car
of each sublist is a drawing command and thecdr
comprises the associated arguments for each command.There are seven commands available to use in the list
commands
:moveto
,rmoveto
,lineto
,rlineto
,curveto
,rcurveto
, andclosepath
. Note that the commands that begin with r are the relative variants of the other three commands. You may also use the standard SVG single-letter equivalents:moveto
=M
,lineto
=L
,curveto
=C
,closepath
=Z
. The relative commands are written lowercase:rmoveto
=r
,rlineto
=l
,rcurveto
=c
.The commands
moveto
,rmoveto
,lineto
, andrlineto
take 2 arguments; they are the X and Y coordinates for the destination point.The commands
curveto
andrcurveto
create cubic Bézier curves, and take 6 arguments; the first two are the X and Y coordinates for the first control point, the second two are the X and Y coordinates for the second control point, and the last two are the X and Y coordinates for the destination point.The
closepath
command takes zero arguments and closes the current subpath in the active path.Line-cap styles and line-join styles may be customized by overriding the
line-cap-style
andline-join-style
properties, respectively. Available line-cap styles are'butt
,'round
, and'square
. Available line-join styles are'miter
,'round
, and'bevel
.The property
filled
specifies whether or not the path is filled with color.samplePath = #'((lineto -1 1) (lineto 1 1) (lineto 1 -1) (curveto -5 -5 -5 5 -1 0) (closepath)) \markup { \path #0.25 #samplePath \override #'(line-join-style . miter) \path #0.25 #samplePath \override #'(filled . #t) \path #0.25 #samplePath }
Used properties:
-
filled
(#f
) -
line-join-style
(round
) -
line-cap-style
(round
)
-
-
\polygon
points (list of number pairs) -
A polygon delimited by the list of points. extroversion defines how the shape of the polygon is adapted to its thickness. If it is 0, the polygon is traced as-is. If -1, the outer side of the line is just on the given points. If 1, the line has its inner side on the points. The thickness property controls the thickness of the line; for filled polygons, this means the diameter of the blot.
regularPentagon = #'((1 . 0) (0.31 . 0.95) (-0.81 . 0.59) (-0.81 . -0.59) (0.31 . -0.95)) \markup { \polygon #'((-1 . -1) (0 . -3) (2 . 2) (1 . 2)) \override #'(filled . #f) \override #'(thickness . 2) \combine \with-color #(universal-color 'blue) \polygon #regularPentagon \with-color #(universal-color 'vermillion) \override #'(extroversion . 1) \polygon #regularPentagon }
Used properties:
-
thickness
(1
) -
filled
(#t
) -
extroversion
(0
)
-
-
\postscript
str (string) -
Insert str directly into the output as a PostScript command string.
This command is meant as a last resort. Almost all needs are better fulfilled by other markup commands (see, for example,
\path
and\draw-line
). If you do use this command, keep the following points in mind:-
\postscript
does not work in SVG output. - There are no stability guarantees on the details of how LilyPond produces its own output (i.e., the context into which the PostScript code is inserted). They may change substantially across versions.
- LilyPond cannot understand the shape of the drawing, leading to suboptimal spacing.
- Depending on how you install LilyPond, the version of the PostScript interpreter (GhostScript) can vary, and some of its features may be disabled.
ringsps = #" 0.15 setlinewidth 0.9 0.6 moveto 0.4 0.6 0.5 0 361 arc stroke 1.0 0.6 0.5 0 361 arc stroke " rings = \markup { \with-dimensions #'(-0.2 . 1.6) #'(0 . 1.2) \postscript #ringsps } \relative c'' { c2^\rings a2_\rings }
-
-
\rounded-box
arg (markup) -
Draw a box with rounded corners around arg. Looks at
thickness
,box-padding
andfont-size
properties to determine line thickness and padding around the markup; thecorner-radius
property makes it possible to define another shape for the corners (default is 1).c4^\markup { \rounded-box { Overtura } } c,8. c16 c4 r
Used properties:
-
box-padding
(0.5
) -
font-size
(0
) -
corner-radius
(1
) -
thickness
(1
)
-
-
\scale
factor-pair (pair of numbers) arg (markup) -
Scale arg. factor-pair is a pair of numbers representing the scaling-factor in the X and Y axes. Negative values may be used to produce mirror images.
\markup { \line { \scale #'(2 . 1) stretched \scale #'(1 . -1) mirrored } }
-
\triangle
filled (boolean) -
A triangle, either filled or empty.
\markup { \triangle ##t \hspace #2 \triangle ##f }
Used properties:
-
thickness
(1
) -
font-size
(0
) -
extroversion
(0
)
-
-
\with-url
url (string) arg (markup) -
Add a link to URL url around arg. This only works in the PDF backend.
\markup { \with-url #"https://lilypond.org/" { LilyPond ... \italic { music notation for everyone } } }
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Graphic ] | [ 上へ : \markup コマンドの一覧 ] | [ Conditionals > ] |
A.11.4 Music
-
\accidental
alteration (an exact rational number) -
Select an accidental glyph from an alteration, given as rational number.
\markup \accidental #1/2
Used properties:
-
alteration-glyph-name-alist
-
-
\coda
-
Draw a coda sign.
\markup { \coda }
-
\compound-meter
time-sig (number or pair) -
Draw a numeric time signature.
\markup { \column { \line { Single number: \compound-meter #3 } \line { Conventional: \compound-meter #'(4 . 4) or \compound-meter #'(4 4) } \line { Compound: \compound-meter #'(2 3 8) } \line { Single-number compound: \compound-meter #'((2) (3)) } \line { Complex compound: \compound-meter #'((2 3 8) (3 4)) } } }
-
\customTabClef
num-strings (integer) staff-space (number) -
Draw a tab clef sans-serif style.
-
\doubleflat
-
Draw a double flat symbol.
\markup { \doubleflat }
-
\doublesharp
-
Draw a double sharp symbol.
\markup { \doublesharp }
-
\fermata
-
Create a fermata glyph. When direction is
DOWN
, use an inverted glyph. Note that within music, one would usually use the\fermata
articulation instead of a markup.{ c''1^\markup \fermata d''1_\markup \fermata } \markup { \fermata \override #`(direction . ,DOWN) \fermata }
Used properties:
-
direction
(1
)
-
-
\flat
-
Draw a flat symbol.
\markup { \flat }
-
\multi-measure-rest-by-number
duration-scale (non-negative, exact integer) -
Returns a multi-measure rest symbol.
If the number of measures is greater than the number given by
expand-limit
a horizontal line is printed. For every multi-measure rest lasting more than one measure a number is printed on top.\markup { Multi-measure rests may look like \multi-measure-rest-by-number #12 or \multi-measure-rest-by-number #7 (church rests) }
Used properties:
-
multi-measure-rest-number
(#t
) -
width
(8
) -
expand-limit
(10
) -
hair-thickness
(2.0
) -
thick-thickness
(6.6
) -
word-space
-
style
(()
) -
font-size
(0
)
-
-
\musicglyph
glyph-name (string) -
glyph-name is converted to a musical symbol; for example,
\musicglyph #"accidentals.natural"
selects the natural sign from the music font. See The Emmentaler font for a complete listing of the possible glyphs.\markup { \musicglyph #"f" \musicglyph #"rests.2" \musicglyph #"clefs.G_change" }
-
\natural
-
Draw a natural symbol.
\markup { \natural }
-
\note
duration (duration) dir (number) -
This produces a note with a stem pointing in dir direction, with the duration for the note head type and augmentation dots. For example,
\note {4.} #-0.75
creates a dotted quarter note, with a shortened down stem.\markup { \override #'(style . cross) \note {4..} #UP \hspace #2 \note {\breve} #0 }
Used properties:
-
style
(()
) -
dots-direction
(0
) -
flag-style
(()
) -
font-size
(0
)
-
-
\note-by-number
log (number) dot-count (number) dir (number) -
Construct a note symbol, with stem and flag. By using fractional values for dir, longer or shorter stems can be obtained. Supports all note-head-styles. Ancient note-head-styles will get mensural-style-flags.
flag-style
may be overridden independently. Supported flag-styles aredefault
,old-straight-flag
,modern-straight-flag
,flat-flag
,mensural
andneomensural
. The latter two flag-styles will both result in mensural-flags. Both are supplied for convenience.\markup { \note-by-number #3 #0 #DOWN \hspace #2 \note-by-number #1 #2 #0.8 }
Used properties:
-
style
(()
) -
dots-direction
(0
) -
flag-style
(()
) -
font-size
(0
)
-
-
\rest
duration (duration) -
Returns a rest symbol.
If
multi-measure-rest
is set to true, a multi-measure rest symbol my be returned. In this case the duration needs to be entered as{ 1*2 }
to get a multi-measure rest for two bars. Actually, it’s only the scaling factor that determines the length, the basic duration is disregarded.\markup { Rests: \hspace #2 \rest { 4.. } \hspace #2 \rest { \breve } \hspace #2 Multi-measure rests: \override #'(multi-measure-rest . #t) { \hspace #2 \override #'(multi-measure-rest-number . #f) \rest { 1*7 } \hspace #2 \rest { 1*12 } } }
Used properties:
-
multi-measure-rest-number
(#t
) -
width
(8
) -
expand-limit
(10
) -
hair-thickness
(2.0
) -
thick-thickness
(6.6
) -
word-space
-
style
(()
) -
font-size
(0
) -
style
(()
) -
ledgers
((-1 0 1)
) -
font-size
(0
)
-
-
\rest-by-number
log (integer) dot-count (integer) -
A rest symbol.
For duration logs specified with property
ledgers
, rest symbols with ledger lines are selected.\markup { \rest-by-number #3 #2 \hspace #2 \rest-by-number #0 #1 }
Used properties:
-
style
(()
) -
ledgers
((-1 0 1)
) -
font-size
(0
)
-
-
\rhythm
music (music) -
An embedded rhythmic pattern.
\relative { \tempo \markup { Swing \hspace #0.4 \rhythm { 8[ 8] } = \rhythm { \tuplet 3/2 { 4 8 } } } b8 g' c, d ees d16 ees d c r8 }
Within
\rhythm
, there is no time signature and no division in measures (as with\cadenzaOn
, see 無韻律の音楽). Beaming must be added explicitly with the syntax explained in 手動連桁.\markup { The rhythmic pattern \rhythm { 16[ 8 16] } is a type of syncopation. }
\stemDown
can be used to flip the stems.\markup \rhythm { \stemDown 8 16 8 }
\rhythm
works by creating aStandaloneRhythmVoice
context. The parents of this context areStandaloneRhythmStaff
andStandaloneRhythmScore
. It is possible to apply global tweaks to the output by using a\layout
block.\layout { \context { \StandaloneRhythmVoice \xNotesOn } } \markup \rhythm { 8 16 8 }
Note:
rhythm
does not work when its argument is a single duration, e.g.,rhythm { 8 }
. Use extra braces:rhythm { { 8 } }
.Used properties:
-
font-size
(-2
)
-
-
\score
score (score) -
Inline an image of music. The reference point (usually the middle staff line) of the lowest staff in the top system is placed on the baseline.
\markup { \score { \new PianoStaff << \new Staff \relative c' { \key f \major \time 3/4 \mark \markup { Allegro } f2\p( a4) c2( a4) bes2( g'4) f8( e) e4 r } \new Staff \relative c { \clef bass \key f \major \time 3/4 f8( a c a c a f c' es c es c) f,( bes d bes d bes) f( g bes g bes g) } >> \layout { indent = 0.0\cm \context { \Score \override RehearsalMark.break-align-symbols = #'(time-signature key-signature) \override RehearsalMark.self-alignment-X = #LEFT } \context { \Staff \override TimeSignature .break-align-anchor-alignment = #LEFT } } } }
Used properties:
-
baseline-skip
-
-
\segno
-
Draw a segno symbol.
\markup { \segno }
-
\semiflat
-
Draw a semiflat symbol.
\markup { \semiflat }
-
\semisharp
-
Draw a semisharp symbol.
\markup { \semisharp }
-
\sesquiflat
-
Draw a 3/2 flat symbol.
\markup { \sesquiflat }
-
\sesquisharp
-
Draw a 3/2 sharp symbol.
\markup { \sesquisharp }
-
\sharp
-
Draw a sharp symbol.
\markup { \sharp }
-
\tied-lyric
str (string) -
Replace ‘~’ tilde symbols with tie characters in the argument.
\markup \column { \tied-lyric #"Siam navi~all'onde~algenti Lasciate~in abbandono" \tied-lyric #"Impetuosi venti I nostri~affetti sono" \tied-lyric #"Ogni diletto~e scoglio Tutta la vita~e~un mar." }
Used properties:
-
word-space
-
-
\varcoda
-
Draw a varcoda sign.
\markup { \varcoda }
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Music ] | [ 上へ : \markup コマンドの一覧 ] | [ Instrument Specific Markup > ] |
A.11.5 Conditionals
-
\if
condition? (procedure) argument (markup) -
Test condition, and only insert argument if it is true. The condition is provided as a procedure taking an output definition and a property alist chain. The procedure is applied, and its result determines whether to print the markup. This command is most useful inside
oddHeaderMarkup
or similar. Here is an example printing page numbers in bold:\paper { oddHeaderMarkup = \markup \fill-line { "" \if #print-page-number \bold \fromproperty #'page:page-number-string } evenHeaderMarkup = \markup \fill-line { \if #print-page-number \bold \fromproperty #'page:page-number-string "" } }
-
\unless
condition? (procedure) argument (markup) -
Similar to
\if
, printing the argument if the condition is false.The following example shows how to print the copyright notice on all pages but the last instead of just the first page.
\paper { oddFooterMarkup = \markup { \unless #on-last-page-of-part \fill-line { \fromproperty #'header:copyright } } } \header { copyright = "© LilyPond Authors. License: GFDL." tagline = "© LilyPond Authors. Documentation placed under the GNU Free Documentation License version 1.3." }
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Conditionals ] | [ 上へ : \markup コマンドの一覧 ] | [ Accordion Registers > ] |
A.11.6 Instrument Specific Markup
-
\fret-diagram
definition-string (string) -
Make a (guitar) fret diagram. For example, say
\markup \fret-diagram #"s:0.75;6-x;5-x;4-o;3-2;2-3;1-2;"
for fret spacing 3/4 of staff space, D chord diagram
Syntax rules for definition-string:
- - Diagram items are separated by semicolons.
- -
Possible items:
-
s:
number – Set the fret spacing of the diagram (in staff spaces). Default: 1. -
t:
number – Set the line thickness (relative to normal line thickness). Default: 0.5. -
h:
number – Set the height of the diagram in frets. Default: 4. -
w:
number – Set the width of the diagram in strings. Default: 6. -
f:
number – Set fingering label type (0 = none, 1 = in circle on string, 2 = below string). Default: 0. -
d:
number – Set radius of dot, in terms of fret spacing. Default: 0.25. -
p:
number – Set the position of the dot in the fret space. 0.5 is centered; 1 is on lower fret bar, 0 is on upper fret bar. Default: 0.6. -
c:
string1-
string2-
fret – Include a barre mark from string1 to string2 on fret. -
string
-
fret – Place a dot on string at fret. If fret is ‘o’, string is identified as open. If fret is ‘x’, string is identified as muted. -
string
-
fret-
fingering – Place a dot on string at fret, and label with fingering as defined by thef:
code.
-
- - Note: There is no limit to the number of fret indications per string.
Used properties:
-
thickness
(0.5
) -
fret-diagram-details
-
size
(1.0
) -
align-dir
(-0.4
)
-
\fret-diagram-terse
definition-string (string) -
Make a fret diagram markup using terse string-based syntax.
Here is an example
\markup \fret-diagram-terse #"x;x;o;2;3;2;"
for a D chord diagram.
Syntax rules for definition-string:
- Strings are terminated by semicolons; the number of semicolons is the number of strings in the diagram.
- Mute strings are indicated by ‘x’.
- Open strings are indicated by ‘o’.
- A number indicates a fret indication at that fret.
- If there are multiple fret indicators desired on a string, they should be separated by spaces.
-
Fingerings are given by following the fret number with a
-
, followed by the finger indicator, e.g. ‘3-2’ for playing the third fret with the second finger. -
Where a barre indicator is desired, follow the fret (or fingering) symbol
with
-(
to start a barre and-)
to end the barre.
Used properties:
-
thickness
(0.5
) -
fret-diagram-details
-
size
(1.0
) -
align-dir
(-0.4
)
-
\fret-diagram-verbose
marking-list (pair) -
Make a fret diagram containing the symbols indicated in marking-list.
For example,
\markup \fret-diagram-verbose #'((mute 6) (mute 5) (open 4) (place-fret 3 2) (place-fret 2 3) (place-fret 1 2))
produces a standard D chord diagram without fingering indications.
Possible elements in marking-list:
-
(mute string-number)
Place a small ‘x’ at the top of string string-number.
-
(open string-number)
Place a small ‘o’ at the top of string string-number.
-
(barre start-string end-string fret-number)
Place a barre indicator (much like a tie) from string start-string to string end-string at fret fret-number.
-
(capo fret-number)
Place a capo indicator (a large solid bar) across the entire fretboard at fret location fret-number. Also, set fret fret-number to be the lowest fret on the fret diagram.
-
(place-fret string-number fret-number [finger-value] [color-modifier] [color] ['parenthesized ['default-paren-color]])
Place a fret playing indication on string string-number at fret fret-number with an optional fingering label finger-value, an optional color modifier color-modifier, an optional color color, an optional parenthesis
'parenthesized
and an optional paranthesis color'default-paren-color
. By default, the fret playing indicator is a solid dot. This can be globally changed by setting the value of the variable dot-color or for a single dot by setting the value of color. The dot can be parenthesized by adding'parenthesized
. By default the color for the parenthesis is taken from the dot. Adding'default-paren-color
will take the parenthesis-color from the global dot-color, as a fall-back black will be used. Setting color-modifier toinverted
inverts the dot color for a specific fingering. The values for string-number, fret-number, and the optional finger should be entered first in that order. The order of the other optional arguments does not matter. If the finger part of theplace-fret
element is present, finger-value will be displayed according to the setting of the variable finger-code. There is no limit to the number of fret indications per string.
Used properties:
-
thickness
(0.5
) -
fret-diagram-details
-
size
(1.0
) -
align-dir
(-0.4
)
-
-
\harp-pedal
definition-string (string) -
Make a harp pedal diagram.
Possible elements in definition-string:
-
^
pedal is up
-
-
pedal is neutral
-
v
pedal is down
-
|
vertical divider line
-
o
the following pedal should be circled (indicating a change)
The function also checks if the string has the typical form of three pedals, then the divider and then the remaining four pedals. If not it prints out a warning. However, in any case, it will also print each symbol in the order as given. This means you can place the divider (even multiple dividers) anywhere you want, but you’ll have to live with the warnings.
The appearance of the diagram can be tweaked inter alia using the size property of the TextScript grob (
\override Voice.TextScript.size = #0.3
) for the overall, the thickness property (\override Voice.TextScript.thickness = #3
) for the line thickness of the horizontal line and the divider. The remaining configuration (box sizes, offsets and spaces) is done by the harp-pedal-details list of properties (\override Voice.TextScript.harp-pedal-details.box-width = #1
). It contains the following settings:box-offset
(vertical shift of the box center for up/down pedals),box-width
,box-height
,space-before-divider
(the spacing between two boxes before the divider) andspace-after-divider
(box spacing after the divider).\markup \harp-pedal #"^-v|--ov^"
Used properties:
-
thickness
(0.5
) -
harp-pedal-details
(()
) -
size
(1.2
)
-
-
\woodwind-diagram
instrument (symbol) user-draw-commands (list) -
Make a woodwind-instrument diagram. For example, say
\markup \woodwind-diagram #'oboe #'((lh . (d ees)) (cc . (five3qT1q)) (rh . (gis)))
for an oboe with the left-hand d key, left-hand ees key, and right-hand gis key depressed while the five-hole of the central column effectuates a trill between 1/4 and 3/4 closed.
The following instruments are supported:
- - piccolo
- - flute
- - oboe
- - clarinet
- - bass-clarinet
- - saxophone
- - bassoon
- - contrabassoon
To see all of the callable keys for a given instrument, include the function
(print-keys 'instrument)
in your .ly file, where instrument is the instrument whose keys you want to print.Certain keys allow for special configurations. The entire gamut of configurations possible is as follows:
- - 1q (1/4 covered)
- - 1h (1/2 covered)
- - 3q (3/4 covered)
- - R (ring depressed)
- - F (fully covered; the default if no state put)
Additionally, these configurations can be used in trills. So, for example,
three3qTR
effectuates a trill between 3/4 full and ring depressed on the three hole. As another example,threeRT
effectuates a trill between R and open, whereasthreeTR
effectuates a trill between open and shut. To see all of the possibilities for all of the keys of a given instrument, invoke(print-keys-verbose 'instrument)
.Lastly, substituting an empty list for the pressed-key alist will result in a diagram with all of the keys drawn but none filled, for example:
\markup \woodwind-diagram #'oboe #'()
Used properties:
-
woodwind-diagram-details
(()
) -
font-size
(0
) -
graphical
(#t
) -
thickness
(0.1
) -
size
(1
)
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Instrument Specific Markup ] | [ 上へ : \markup コマンドの一覧 ] | [ Other > ] |
A.11.7 Accordion Registers
-
\discant
name (string) -
\discant name
generates a discant accordion register symbol.To make it available,
#(use-modules (lily accreg))
is required near the top of your input file.
The register names in the default
\discant
register set have modeled after numeric Swiss notation like depicted in http://de.wikipedia.org/wiki/Register_%28Akkordeon%29, omitting the slashes and dropping leading zeros.The string name is basically a three-digit number with the lowest digit specifying the number of 16’ reeds, the tens the number of 8’ reeds, and the hundreds specifying the number of 4’ reeds. Without modification, the specified number of reeds in 8’ is centered in the symbol. Newer instruments may have registrations where 8’ can be used either within or without a tone chamber, ‘cassotto’. Notationally, the central dot then indicates use of cassotto. One can suffix the tens’ digits ‘1’ and ‘2’ with ‘+’ or ‘-’ to indicate clustering the dots at the right or left respectively rather than centered.
Some examples are
Used properties:
-
font-size
(0
)
-
-
\freeBass
name (string) -
\freeBass name
generates a free bass/converter accordion register symbol for the usual two-reed layout.To make it available,
#(use-modules (lily accreg))
is required near the top of your input file.
Available registrations are
Used properties:
-
font-size
(0
)
-
-
\stdBass
name (string) -
\stdBass name
generates a standard bass accordion register symbol.To make it available,
#(use-modules (lily accreg))
is required near the top of your input file.
The default bass register definitions have been modeled after the article http://www.accordions.com/index/art/stradella.shtml originally appearing in Accord Magazine.
The underlying register model is
This kind of overlapping arrangement is common for Italian instruments though the exact location of the octave breaks differ.
When not composing for a particular target instrument, using the five reed definitions makes more sense than using a four reed layout: in that manner, the ‘Master’ register is unambiguous. This is rather the rule in literature bothering about bass registrations at all.
Available registrations are
Used properties:
-
font-size
(0
)
-
-
\stdBassIV
name (string) -
\stdBassIV name
generates a standard bass accordion register symbol.To make it available,
#(use-modules (lily accreg))
is required near the top of your input file.
The main use is for four-reed standard bass instruments with reedbank layout
Notable instruments are Morino models with MIII (the others are five-reed instead) and the Atlantic IV. Most of those models have three register switches. Some newer Morinos with MIII might have five or even seven.
The prevalent three-register layout uses the middle three switches ‘Tenor’, ‘Master’, ‘Soft Bass’. Note that the sound is quite darker than the same registrations of ‘c,’-based instruments.
Available registrations are
Used properties:
-
font-size
(0
)
-
-
\stdBassV
name (string) -
\stdBassV name
generates a standard bass accordion register symbol.To make it available,
#(use-modules (lily accreg))
is required near the top of your input file.
The main use is for five-reed standard bass instruments with reedbank layout
This tends to be the bass layout for Hohner’s Morino series without convertor or MIII manual.
With the exception of the rather new 7-register layout, the highest two chord reeds are usually sounded together. The Older instruments offer 5 or 3 bass registers. The Tango VM offers an additional ‘Solo Bass’ setting that mutes the chord reeds. The symbol on the register buttons of the Tango VM would actually match the physical five-octave layout reflected here, but it is not used in literature.
Composers should likely prefer the five-reed versions of these symbols. The mismatch of a four-reed instrument with five-reed symbols is easier to resolve for the player than the other way round.
Available registrations are
Used properties:
-
font-size
(0
)
-
-
\stdBassVI
name (string) -
\stdBassVI name
generates a standard bass accordion register symbol for six reed basses.To make it available,
#(use-modules (lily accreg))
is required near the top of your input file.
This is primarily the register layout for the Hohner “Gola” model. The layout is
The registers are effectively quite similar to that of
\stdBass
. An additional bass reed at alto pitch is omitted for esthetical reasons from the ‘Master’ setting, so the symbols are almost the same except for the ‘Alto/Soprano’ register with bass notes at Alto pitch and chords at Soprano pitch.Available registrations are
Used properties:
-
font-size
(0
)
-
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Accordion Registers ] | [ 上へ : \markup コマンドの一覧 ] | [ \markuplist コマンドの一覧 > ] |
A.11.8 Other
-
\auto-footnote
mkup (markup) note (markup) -
Have footnote note act as an annotation to the markup mkup.
\markup { \auto-footnote a b \override #'(padding . 0.2) \auto-footnote c d }
The footnote will be annotated automatically.
Used properties:
-
padding
(0.0
) -
raise
(0.5
)
-
-
\backslashed-digit
num (integer) -
A feta number, with backslash. This is for use in the context of figured bass notation.
\markup { \backslashed-digit #5 \hspace #2 \override #'(thickness . 3) \backslashed-digit #7 }
Used properties:
-
thickness
(1.6
) -
font-size
(0
)
-
-
\char
num (integer) -
Produce a single character. Characters encoded in hexadecimal format require the prefix
#x
.\markup { \char #65 \char ##x00a9 }
-
\eyeglasses
-
Prints out eyeglasses, indicating strongly to look at the conductor.
\markup { \eyeglasses }
-
\first-visible
args (markup list) -
Use the first markup in args that yields a non-empty stencil and ignore the rest.
\markup { \first-visible { \fromproperty #'header:composer \italic Unknown } }
-
\footnote
mkup (markup) note (markup) -
Have footnote note act as an annotation to the markup mkup.
\markup { \footnote a b \override #'(padding . 0.2) \footnote c d }
The footnote will not be annotated automatically.
-
\fraction
arg1 (markup) arg2 (markup) -
Make a fraction of two markups.
\markup { π ≈ \fraction 355 113 }
Used properties:
-
font-size
(0
)
-
-
\fromproperty
symbol (symbol) -
Read the symbol from property settings, and produce a stencil from the markup contained within. If symbol is not defined, it returns an empty markup.
\header { myTitle = "myTitle" title = \markup { from \italic \fromproperty #'header:myTitle } } \markup { \null }
-
\left-brace
size (number) -
A feta brace in point size size.
\markup { \left-brace #35 \hspace #2 \left-brace #45 }
-
\lookup
glyph-name (string) -
Lookup a glyph by name.
\markup { \override #'(font-encoding . fetaBraces) { \lookup #"brace200" \hspace #2 \rotate #180 \lookup #"brace180" } }
-
\markalphabet
num (integer) -
Make a markup letter for num. The letters start with A to Z and continue with double letters.
\markup { \markalphabet #8 \hspace #2 \markalphabet #26 }
-
\markletter
num (integer) -
Make a markup letter for num. The letters start with A to Z (skipping letter I), and continue with double letters.
\markup { \markletter #8 \hspace #2 \markletter #26 }
-
\null
-
An empty markup with extents of a single point.
\markup { \null }
-
\on-the-fly
procedure (procedure) arg (markup) -
Apply the procedure markup command to arg. procedure takes the same arguments as
interpret-markup
and returns a stencil. -
\override
new-prop (pair) arg (markup) -
Add the argument new-prop to the property list. Properties may be any property supported by font-interface, text-interface and instrument-specific-markup-interface.
new-prop may be either a single alist pair, or non-empty alist of its own.
\markup { \undertie "undertied" \override #'(offset . 15) \undertie "offset undertied" \override #'((offset . 15)(thickness . 3)) \undertie "offset thick undertied" }
-
\page-link
page-number (number) arg (markup) -
Add a link to the page page-number around arg. This only works in the PDF backend.
\markup { \page-link #2 { \italic { This links to page 2... } } }
-
\page-ref
label (symbol) gauge (markup) default (markup) -
Reference to a page number. label is the label set on the referenced page (using
\label
or\tocItem
), gauge a markup used to estimate the maximum width of the page number, and default the value to display when label is not found.(If the current book or bookpart is set to use roman numerals for page numbers, the reference will be formatted accordingly – in which case the gauge’s width may require additional tweaking.)
-
\pattern
count (non-negative, exact integer) axis (non-negative, exact integer) space (number) pattern (markup) -
Prints count times a pattern markup. Patterns are spaced apart by space (defined as for
\hspace
or\vspace
, respectively). Patterns are distributed on axis.\markup \column { "Horizontally repeated :" \pattern #7 #X #2 \flat \null "Vertically repeated :" \pattern #3 #Y #0.5 \flat }
-
\property-recursive
symbol (symbol) -
Print out a warning when a header field markup contains some recursive markup definition.
-
\right-brace
size (number) -
A feta brace in point size size, rotated 180 degrees.
\markup { \right-brace #45 \hspace #2 \right-brace #35 }
-
\slashed-digit
num (integer) -
A feta number, with slash. This is for use in the context of figured bass notation.
\markup { \slashed-digit #5 \hspace #2 \override #'(thickness . 3) \slashed-digit #7 }
Used properties:
-
thickness
(1.6
) -
font-size
(0
)
-
-
\stencil
stil (stencil) -
Use a stencil as markup.
\markup { \stencil #(make-circle-stencil 2 0 #t) }
-
\strut
-
Create a box of the same height as the space in the current font.
-
\transparent
arg (markup) -
Make arg transparent.
\markup { \transparent { invisible text } }
-
\verbatim-file
name (string) -
Read the contents of file name, and include it verbatim.
\markup { \verbatim-file #"en/included/simple.ly" }
-
\whiteout
arg (markup) -
Provide a white background for arg. The shape of the white background is determined by
style
. The default isbox
which produces a rectangle.rounded-box
produces a rounded rectangle.outline
approximates the outline of the markup.\markup { \combine \filled-box #'(-1 . 15) #'(-3 . 4) #1 \override #'(thickness . 1.5) \whiteout whiteout-box } \markup { \combine \filled-box #'(-1 . 24) #'(-3 . 4) #1 \override #'((style . rounded-box) (thickness . 3)) \whiteout whiteout-rounded-box } \markup { \combine \filled-box #'(-1 . 18) #'(-3 . 4) #1 \override #'((style . outline) (thickness . 3)) \whiteout whiteout-outline }
Used properties:
-
thickness
(()
) -
style
(box
)
-
-
\with-color
color (color) arg (markup) -
Draw arg in color specified by color.
\markup { \with-color #red red \hspace #2 \with-color #green green \hspace #2 \with-color "#0000ff" blue }
-
\with-dimension
axis (integer) val (pair of numbers) arg (markup) -
Set the horizontal dimension of arg to val if axis is equal to
X
. If axis is equal toY
, set the vertical dimension of arg to val instead. -
\with-dimension-from
axis (integer) arg1 (markup) arg2 (markup) -
Print arg2 but replace the horizontal dimension with the one from arg1 if axis is set to
X
. If axis is set toY
, replace the vertical dimension with the one from arg1 instead. -
\with-dimensions
x (pair of numbers) y (pair of numbers) arg (markup) -
Set the horizontal and vertical dimensions of arg to x and y.
-
\with-dimensions-from
arg1 (markup) arg2 (markup) -
Print arg2 with the horizontal and vertical dimensions of arg1.
-
\with-link
label (symbol) arg (markup) -
Add a link to the page holding label label around arg. This only works in the PDF backend.
\markup { \with-link #'label { \italic { This links to the page containing the label... } } }
-
\with-outline
outline (markup) arg (markup) -
Print arg with the outline and dimensions of outline. The outline is used by skylines to resolve collisions (not for whiteout).
-
\with-true-dimension
axis (integer) arg (markup) -
Give arg its actual dimension (extent) on axis. Sometimes, the extents of a markup’s printed ink differs from the default extents. The main case is if glyphs are involved. By default, the extents of a glyph are based on the glyph’s metrics (i.e., a default vertical and horizontal size for the glyph), which, for various reasons, are often not identical to its bounding box (i.e., the smallest rectangle that completely encompasses the glyph’s outline) – in most cases, the outline protrudes the box spanned up by the metrics.
\markup \fontsize #10 \override #'((box-padding . 0) (thickness . 0.2)) \box \musicglyph "scripts.trill"
For purposes other than setting text, this behavior may not be wanted. You can use
\with-true-dimension
in order to give the markup its actual printed extent.\markup \fontsize #10 \override #'((box-padding . 0) (thickness . 0.2)) \box \with-true-dimension #X \musicglyph "scripts.trill"
-
\with-true-dimensions
arg (markup) -
\markup \with-true-dimensions arg
is short for\markup \with-true-dimension #X \with-true-dimension #Y arg
, i.e.,\with-true-dimensions
has the effect of\with-true-dimension
on both axes.
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Other ] | [ 上へ : 付表 ] | [ 特殊文字の一覧 > ] |
A.12 \markuplist コマンドの一覧
以下に挙げるコマンドは、\markuplist
の内部で用いることができます。
システムの制約により、以下の一覧は英語での提供となります。
-
\column-lines
args (markup list) -
Like
\column
, but return a list of lines instead of a single markup.baseline-skip
determines the space between each markup in args.Used properties:
-
baseline-skip
-
-
\justified-lines
args (markup list) -
Like
\justify
, but return a list of lines instead of a single markup. Use\override-lines #'(line-width . X)
to set the line width; X is the number of staff spaces.Used properties:
-
text-direction
(1
) -
word-space
-
line-width
(#f
) -
baseline-skip
-
-
\map-commands
compose (procedure) args (markup list) -
This applies the function compose to every markup in args (including elements of markup list command calls) in order to produce a new markup list. Since the return value from a markup list command call is not a markup list but rather a list of stencils, this requires passing those stencils off as the results of individual markup calls. That way, the results should work out as long as no markups rely on side effects.
-
\override-lines
new-prop (pair) args (markup list) -
Like
\override
, for markup lists. -
\score-lines
score (score) -
This is the same as the
\score
markup but delivers its systems as a list of lines. Its score argument is entered in braces like it would be for\score
. -
\string-lines
strg (string) -
Takes the string strg and splits it at the character provided by the property
split-char
, defaulting to#\newline
. Surrounding whitespace is removed from every resulting string. The returned list of markups is ready to be formatted by other markup or markup list commands like\column
,\line
, etc.\markup { \column \string-lines "foo, foo, bar, bar, buzz, buzz!" }
Used properties:
-
split-char
(#\newline
)
-
-
\table
column-align (number list) lst (markup list) -
Returns a table.
column-align specifies how each column is aligned, possible values are -1, 0, 1. The number of elements in column-align determines how many columns will be printed. The entries to print are given by lst, a markup-list. If needed, the last row is filled up with
point-stencil
s. Overridingpadding
may be used to increase columns horizontal distance. Overridingbaseline-skip
to increase rows vertical distance.% A markup command to print a fixed-width number. \markup fwnum = \markup \override #'(font-features . ("ss01" "-kern")) \number \etc \markuplist { \override #'(padding . 2) \table #'(0 1 0 -1) { \underline { center-aligned right-aligned center-aligned left-aligned } one \fwnum 1 thousandth \fwnum 0.001 eleven \fwnum 11 hundredth \fwnum 0.01 twenty \fwnum 20 tenth \fwnum 0.1 thousand \fwnum 1000 one \fwnum 1.0 } }
Used properties:
-
baseline-skip
-
padding
(0
)
-
-
\table-of-contents
-
Used properties:
-
baseline-skip
-
-
\wordwrap-internal
justify (boolean) args (markup list) -
Internal markup list command used to define
\justify
and\wordwrap
.Used properties:
-
text-direction
(1
) -
word-space
-
line-width
(#f
)
-
-
\wordwrap-lines
args (markup list) -
Like
\wordwrap
, but return a list of lines instead of a single markup. Use\override-lines #'(line-width . X)
to set the line width, where X is the number of staff spaces.Used properties:
-
text-direction
(1
) -
word-space
-
line-width
(#f
) -
baseline-skip
-
-
\wordwrap-string-internal
justify (boolean) arg (string) -
Internal markup list command that is used to define
\justify-string
and\wordwrap-string
.Used properties:
-
text-direction
(1
) -
word-space
-
line-width
-
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < \markuplist コマンドの一覧 ] | [ 上へ : 付表 ] | [ アーティキュレーションの一覧 > ] |
A.13 特殊文字の一覧
以下の特殊文字参照を用いることができます。詳しくは ASCII エイリアス を参照してください。
記法は HTML と同一で、参照の名前の多くも HTML 由来のものです。残りは LaTeX に由来するものです。
文字はボックスで囲まれており、サイズを確認することができます。見やすさのために、文字とボックスの間にはわずかに隙間があります。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 特殊文字の一覧 ] | [ 上へ : 付表 ] | [ アーティキュレーション スクリプト > ] |
A.14 アーティキュレーションの一覧
以下のリストは、音符に付加することのできる Feta フォントのスクリプト (例: ‘f\accent’, ‘f->’) の一覧です。例はそれぞれ上 (up)、下 (down)、デフォルト (neutral) の順番に示しています。
アーティキュレーション スクリプト | ||
装飾音スクリプト | ||
フェルマータ スクリプト | ||
楽器に固有のスクリプト | ||
繰り返し記号のスクリプト | ||
古代音楽のスクリプト |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < アーティキュレーションの一覧 ] | [ 上へ : アーティキュレーションの一覧 ] | [ 装飾音スクリプト > ] |
アーティキュレーション スクリプト
\accent または ->
| \espressivo
| \marcato または -^
| \portato または -_
|
\staccatissimo または -!
| \staccato または -.
| \tenuto または --
|
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < アーティキュレーション スクリプト ] | [ 上へ : アーティキュレーションの一覧 ] | [ フェルマータ スクリプト > ] |
装飾音スクリプト
\prall
| \prallup
| \pralldown
| \upprall
|
\downprall
| \prallprall
| \lineprall
| \prallmordent
|
\mordent
| \upmordent
| \downmordent
| \trill
|
\turn
| \reverseturn
| \slashturn
| \haydnturn
|
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 装飾音スクリプト ] | [ 上へ : アーティキュレーションの一覧 ] | [ 楽器に固有のスクリプト > ] |
フェルマータ スクリプト
\veryshortfermata
| \shortfermata
| \fermata
| \longfermata
|
\verylongfermata
| \henzeshortfermata
| \henzelongfermata
|
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < フェルマータ スクリプト ] | [ 上へ : アーティキュレーションの一覧 ] | [ 繰り返し記号のスクリプト > ] |
楽器に固有のスクリプト
\upbow
| \downbow
| \flageolet
| \open
|
\halfopen
| \lheel
| \rheel
| \ltoe
|
\rtoe
| \snappizzicato
| \stopped or -+
|
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 楽器に固有のスクリプト ] | [ 上へ : アーティキュレーションの一覧 ] | [ 古代音楽のスクリプト > ] |
繰り返し記号のスクリプト
\segno
| \coda
| \varcoda
|
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 繰り返し記号のスクリプト ] | [ 上へ : アーティキュレーションの一覧 ] | [ 打楽器の音符 > ] |
古代音楽のスクリプト
\accentus
| \circulus
| \ictus
|
\semicirculus
| \signumcongruentiae
|
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 古代音楽のスクリプト ] | [ 上へ : 付表 ] | [ 技術用語集 > ] |
A.15 打楽器の音符
bassdrum
| acousticbassdrum
| snare
| acousticsnare
|
electricsnare
| lowfloortom
| highfloortom
| lowtom
|
hightom
| lowmidtom
| himidtom
| hihat
|
closedhihat
| openhihat
| halfopenhihat
| pedalhihat
|
crashcymbal
| crashcymbala
| crashcymbalb
| ridecymbal
|
ridecymbala
| ridecymbalb
| chinesecymbal
| splashcymbal
|
ridebell
| cowbell
| hibongo
| openhibongo
|
mutehibongo
| lobongo
| openlobongo
| mutelobongo
|
hiconga
| openhiconga
| mutehiconga
| loconga
|
openloconga
| muteloconga
| hitimbale
| lotimbale
|
hiagogo
| loagogo
| sidestick
| hisidestick
|
losidestick
| guiro
| shortguiro
| longguiro
|
cabasa
| maracas
| shortwhistle
| longwhistle
|
handclap
| tambourine
| vibraslap
| tamtam
|
claves
| hiwoodblock
| lowoodblock
| opencuica
|
mutecuica
| triangle
| opentriangle
| mutetriangle
|
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 打楽器の音符 ] | [ 上へ : 付表 ] | [ alist (連想配列) > ] |
A.16 技術用語集
LilyPond の内部で用いられる技術的な用語やコンセプトの一覧です。これらはマニュアル、メーリング リスト、ソースコードなどに現れます。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 技術用語集 ] | [ 上へ : 技術用語集 ] | [ callback (コールバック) > ] |
alist (連想配列)
連想配列 (association list, 縮めて alist) は、キーと値を結びつける Scheme ペアです: ‘(key . value)
’。例えば ‘scm/lily.scm’ には、連想配列 “type-p-name-alist”
があり、型述語 (例えば ly:music?
) と型の名前 (例えば “music”)
を結びつけています。そのため、型チェックに失敗した場合には、型述語に結びついた名前がエラー メッセージに表示されます。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < alist (連想配列) ] | [ 上へ : 技術用語集 ] | [ closure (クロージャ) > ] |
callback (コールバック)
コールバック (callback) はルーチン、関数、メソッドの一種で、他のルーチンの引数にその参照が渡されることで呼び出されるものです。このテクニックを用いて、低レベルのソフトウェア レイヤから高レベルで定義した関数を呼び出すことができます。LilyPond では、コールバックは、低レベルのアクションがどれぐらい実行されるかをユーザ レベルの Scheme コードが定義できるようにするために広く使われています。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < callback (コールバック) ] | [ 上へ : 技術用語集 ] | [ glyph (グリフ) > ] |
closure (クロージャ)
Scheme では、クロージャ (closure) は関数 (通常はラムダ式) が変数として渡された際に作られます。クロージャは、関数のコードと共に、関数における自由変数 (つまり、関数の中で使われているが、関数の外で定義されている変数) の静的束縛 (lexical binding) への参照が含まれます。この関数が異なる引数で再度呼ばれた際、クロージャで捕捉された自由変数の束縛が、 計算で使用される自由変数の値を得るために使われます。クロージャの便利な性質の一つは、内部変数の値を複数の呼び出しの間で保持できることです。これにより、状態を保存することができます。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < closure (クロージャ) ] | [ 上へ : 技術用語集 ] | [ grob (グラフィカル オブジェクト) > ] |
glyph (グリフ)
グリフ (glyph) は印刷される文字一つ一つの形、あるいは複数の文字が組み合わされて合字となった際の形を表します。あるスタイルや形のグリフが集まってフォントを形成し、いくつかのスタイルやサイズのフォントが集まると書体となります。
参照
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < glyph (グリフ) ] | [ 上へ : 技術用語集 ] | [ immutable (イミュータブル) > ] |
grob (グラフィカル オブジェクト)
LilyPond のオブジェクトの内、
符頭、符幹、スラー、タイ、運指、音部記号などの、印刷される出力におけるアイテムを表すものは、‘レイアウト オブジェクト’
(‘layout object’) またはよく グラフィカル オブジェクト
(‘GRaphical OBject’, 略して grob) と呼ばれます。これらは Grob
クラスのインスタンスとして表されます。
参照
学習マニュアル: Objects and interfaces, Naming conventions of objects and properties, Properties of layout objects
内部リファレンス: grob-interface, All layout objects
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < grob (グラフィカル オブジェクト) ] | [ 上へ : 技術用語集 ] | [ interface (インターフェイス) > ] |
immutable (イミュータブル)
イミュータブルな (immutable) オブジェクトは、生成された後にも状態を変更できるミュータブル オブジェクトとは異なり、生成された後は状態を変更できないオブジェクトを指します。
LilyPond では、イミュータブル プロパティまたは共有プロパティはデフォルトのスタイルや Grob の挙動を定義します。これらは多くのオブジェクトの間で共有されます。名前に反して実際には
\override
や \revert
で変更することができます。
参照
記譜法リファレンス: mutable (ミュータブル)
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < immutable (イミュータブル) ] | [ 上へ : 技術用語集 ] | [ lexer (字句解析器) > ] |
interface (インターフェイス)
複数の Grob で共通のアクションやプロパティは、grob-interface
あるいは短く‘インターフェイス’ (‘interface’) と呼ばれるオブジェクトにまとめられます。
参照
学習マニュアル: Objects and interfaces, Naming conventions of objects and properties, Properties found in interfaces
記譜法リファレンス: レイアウト インターフェイス
内部リファレンス: Graphical Object Interfaces
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < interface (インターフェイス) ] | [ 上へ : 技術用語集 ] | [ mutable (ミュータブル) > ] |
lexer (字句解析器)
字句解析器 (lexer) は、文字列をトークンの列に変換する、字句解析を行うプログラムです。LilyPond の字句解析器は、‘.ly’ ファイルから取得されるストリームをトークン化したストリームに変換し、構文解析という次の処理により適した形にします。構文解析については parser (構文解析器、パーサ) を参照してください。LilyPond の字句解析器は Flex を用いて、字句に関する規則を定義したファイル ‘lily/lexer.ll’ から作られます。このファイルはソース コードの一部であり、LilyPond のバイナリには含まれていません。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < lexer (字句解析器) ] | [ 上へ : 技術用語集 ] | [ output-def (出力定義クラス) > ] |
mutable (ミュータブル)
ミュータブルな (mutable) オブジェクトは、生成された際に状態が固定されるイミュータブル オブジェクトとは異なり、生成された後にも状態を変更できるオブジェクトを指します。
LilyPond では、ミュータブル プロパティは Grob ごとに固有の値を保持するために用いられます。通常、他のオブジェクトのリストや、計算結果がミュータブル プロパティに格納されます。
参照
記譜法リファレンス: immutable (イミュータブル)
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < mutable (ミュータブル) ] | [ 上へ : 技術用語集 ] | [ parser (構文解析器、パーサ) > ] |
output-def (出力定義クラス)
Output-def
クラスのインスタンスは、出力ブロックに関連したデータ構造やメソッドを保持します。インスタンスは midi, layout, paper
ブロックに対して作られます。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < output-def (出力定義クラス) ] | [ 上へ : 技術用語集 ] | [ parser variable (パーサ変数) > ] |
parser (構文解析器、パーサ)
構文解析器 (parser, パーサ) は、字句解析器によって出力されたトークンの列を文法規則に従ってより大きなグループにまとめていくことによって、その文法的構造を決定します。トークンの列が正しいものであれば、結果はトークンの木構造となり、その根は文法の始端記号になります。結果が得られない場合には入力が誤っており、正しいエラー メッセージが出力されます。文法的なグループと、そのグループを作り上げる LilyPond の文法は、‘lily/parser.yy’ に定義されており、 LilyPond grammar にあるようにバッカス標準形 (Backus Normal Form, BNF) で記述されています。このファイルはプログラムのビルド時に Bison にによって構文解析器を生成する際に用いられます。このファイルはソース コードの一部であり、LilyPond のバイナリには含まれていません。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < parser (構文解析器、パーサ) ] | [ 上へ : 技術用語集 ] | [ prob (プロパティ オブジェクト) > ] |
parser variable (パーサ変数)
これらは Scheme で直接定義される変数です。これらをユーザが直接操作することは、変数のスコープが難解であるため推奨されません。
このような変数が ‘.ly’ ファイル内で変更された場合、変更はグローバルに適用され、明示的に戻さない限り、新たな値がファイルの最後まで保持されます。そのため、後に続く \score
ブロックや、\include
コマンドで読み込まれた外部ファイルの出力に影響します。これは予期しない結果を生み出す可能性があり、複雑なプロジェクトではエラーを追跡するのが難しくなります。
LilyPond は以下のパーサ変数を使用します:
- afterGraceFraction
- musicQuotes
- mode
- output-count
- output-suffix
- partCombineListener
- pitchnames
- toplevel-bookparts
- toplevel-scores
- showLastLength
- showFirstLength
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < parser variable (パーサ変数) ] | [ 上へ : 技術用語集 ] | [ smob (Scheme オブジェクト) > ] |
prob (プロパティ オブジェクト)
プロパティ オブジェクト (PRoperty OBject, 略して prob) は、Prob
クラスのインスタンスであり、ミュータブルまたはイミュータブルなプロパティの連想配列や、それらを操作するメソッドを保持するシンプルな基底クラスです。Music
や Stream_event
クラスは Prob
から派生しています。Prob
クラスは、ページ レイアウトの際にシステム Grob やタイトル ブロックのフォーマットされた内容を保持するためにも生成されます。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < prob (プロパティ オブジェクト) ] | [ 上へ : 技術用語集 ] | [ stencil (ステンシル) > ] |
smob (Scheme オブジェクト)
Scheme オブジェクト (ScheMe OBjects, 略して smob) は、C や C++ オブジェクトを Scheme コードにエクスポートする際に Guile によって用いられます。LilyPond では、Scheme オブジェクトはマクロを用いて C++ オブジェクトから生成されます。Scheme オブジェクトには 2 種類あります: 数値のような単純なイミュータブル オブジェクトを格納するシンプル smob と、自身を持つオブジェクトに用いられる複合 smob です。LilyPond のソース コードがアクセスできる場合、より詳しい情報は ‘lily/includes/smobs.hh’ にあります。
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < smob (Scheme オブジェクト) ] | [ 上へ : 技術用語集 ] | [ 音楽関数の一覧 > ] |
stencil (ステンシル)
ステンシル (stencil) クラスのインスタンスは、印刷に出力されるオブジェクトの情報を保持します。ステンシルは、オブジェクトの縦方向と横方向の大きさを決定するボックスと、評価された際にオブジェクトを出力する Scheme 式からなる シンプルな Scheme オブジェクトです。いくつかのステンシルの Scheme 式を組み合わせて複雑なステンシルを定義することもできます。
stencil
プロパティは、grob-inteface
で定義されており、grob とステンシルを繋ぐ役目を果たします。
参照
内部リファレンス: grob-interface
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < stencil (ステンシル) ] | [ 上へ : 付表 ] | [ コンテキストを変更する識別子 > ] |
A.17 音楽関数の一覧
システムの制約により、以下の一覧は英語での提供となります。
-
\absolute
[music] - music (music) -
Make music absolute. This does not actually change the music itself but rather hides it from surrounding
\relative
and\fixed
commands. -
\acciaccatura
[music] - music (music) -
Create an acciaccatura from the following music expression
-
\accidentalStyle
[music] - style (symbol list) -
Set accidental style to symbol list style in the form ‘piano-cautionary’. If style has a form like ‘Staff.piano-cautionary’, the settings are applied to that context. Otherwise, the context defaults to ‘Staff’, except for piano styles, which use ‘GrandStaff’ as a context.
-
\addChordShape
[void] - key-symbol (symbol) tuning (pair) shape-definition (string or pair) -
Add chord shape shape-definition to the chord-shape-table hash with the key
(cons key-symbol tuning)
. -
\addInstrumentDefinition
[void] - name (string) lst (list) -
Create instrument name with properties list.
This function is deprecated.
-
\addQuote
[void] - name (string) music (music) -
Define music as a quotable music expression named name
-
\after
[music] - delta (duration) ev (music) mus (music) -
Add music ev (usually a post-event) with a delay of delta after the onset of mus.
-
\afterGrace
[music] - fraction [non-negative rational, fraction, or moment] main (music) grace (music) -
Create grace note(s) after a main music expression.
The musical position of the grace expression is after a given fraction of the main note’s duration has passed. If fraction is not specified as first argument, it is taken from
afterGraceFraction
which has a default value of3/4
. -
\allowPageTurn
[music] -
Allow a page turn. May be used at toplevel (ie between scores or markups), or inside a score.
-
\allowVoltaHook
[void] - bar (string) -
Allow the volta bracket hook being drawn over bar line bar.
-
\alterBroken
[music] - property (key list or symbol) arg (list) target (key list or music) -
Override property for pieces of broken spanner target with values arg. target may either be music in the form of a starting spanner event, or a symbol list in the form ‘Context.Grob’ or just ‘Grob’. Iff target is in the form of a spanner event, property may also have the form ‘Grob.property’ for specifying a directed tweak.
-
\ambitusAfter
[music] - target (symbol) -
Move the ambitus after the break-align symbol target.
-
\appendToTag
[music] - tag (symbol) more (music) music (music) -
Append more to the back of music tagged with tag. A
post-event
can be added to the articulations of rhythmic events or chords; other expressions may be added to chords, sequential or simultaneous music. -
\applyContext
[music] - proc (procedure) -
Modify context properties with Scheme procedure proc.
-
\applyMusic
[music] - func (procedure) music (music) -
Apply procedure func to music.
-
\applyOutput
[music] - target (symbol list or symbol) proc (procedure) -
Apply function
proc
to every layout object matched by target which takes the formContext
orContext.Grob
. -
\appoggiatura
[music] - music (music) -
Create an appoggiatura from music
-
\assertBeamQuant
[music] - l (pair) r (pair) -
Testing function: check whether the beam quants l and r are correct
-
\assertBeamSlope
[music] - comp (procedure) -
Testing function: check whether the slope of the beam is the same as
comp
-
\autoChange
[music] - pitch [pitch] clef-1 [context modification] clef-2 [context modification] music (music) -
Make voices that switch between staves automatically. As an option the pitch where to switch staves may be specified. The clefs for the staves are optional as well. Setting clefs works only for implicitly instantiated staves.
-
\balloonGrobText
[music] - grob-name (symbol) offset (pair of numbers) text (markup) -
Attach text to grob-name at offset offset (use like
\once
) -
\balloonText
[post event] - offset (pair of numbers) text (markup) -
Attach text at offset (use like
\tweak
) -
\bar
[music] - type (string) -
Insert a bar line of type type, overriding any automatic bar lines.
-
\barNumberCheck
[music] - n (integer) -
Print a warning if the current bar number is not n.
-
\beamExceptions
(any type) - music (music) -
Extract a value suitable for setting
Timing.beamExceptions
from the given pattern with explicit beams in music. A bar check|
has to be used between bars of patterns in order to reset the timing. -
\bendAfter
[post event] - delta (real number) -
Create a fall or doit of pitch interval delta.
-
\bendHold
[post event] - mus (music) -
Sets the
'style
of aBendSpanner
to'hold
. -
\bendStartLevel
[post event] - idx (non-negative, exact integer) mus (music) -
Sets the
details.successive-level
of aBendSpanner
to idx. -
\bookOutputName
[void] - newfilename (string) -
Direct output for the current book block to newfilename.
-
\bookOutputSuffix
[void] - newsuffix (string) -
Set the output filename suffix for the current book block to newsuffix.
-
\breathe
[music] -
Insert a breath mark.
-
\caesura
[music] -
Insert a caesura.
-
\chordRepeats
[music] - event-types [list] music (music) -
Walk through music putting the notes of the previous chord into repeat chords, as well as an optional list of event-types such as
#'(string-number-event)
. -
\clef
[music] - type (string) -
Set the current clef to type.
-
\codaMark
[music] - num [non-negative, exact integer] -
Create a coda mark. num may be 1 for the first mark, 2 for the second, etc., or it may be
\default
to use the next number in sequence automatically. -
\compoundMeter
[music] - args (pair) -
Create compound time signatures. The argument is a Scheme list of lists. Each list describes one fraction, with the last entry being the denominator, while the first entries describe the summands in the enumerator. If the time signature consists of just one fraction, the list can be given directly, i.e. not as a list containing a single list. For example, a time signature of (3+1)/8 + 2/4 would be created as
\compoundMeter #'((3 1 8) (2 4))
, and a time signature of (3+2)/8 as\compoundMeter #'((3 2 8))
or shorter\compoundMeter #'(3 2 8)
. -
\compressMMRests
[music] - music (music) -
Remove the empty bars created by multi-measure rests, leaving just the first bar containing the MM rest itself.
-
\crossStaff
[music] - notes (music) -
Create cross-staff stems
-
\cueClef
[music] - type (string) -
Set the current cue clef to type.
-
\cueClefUnset
[music] -
Unset the current cue clef.
-
\cueDuring
[music] - what (string) dir (direction) main-music (music) -
Insert contents of quote what corresponding to main-music, in a CueVoice oriented by dir.
-
\cueDuringWithClef
[music] - what (string) dir (direction) clef (string) main-music (music) -
Insert contents of quote what corresponding to main-music, in a CueVoice oriented by dir.
-
\deadNote
[music] - note (music) -
Print note with a cross-shaped note head.
-
\defineBarLine
[void] - bar (string) glyph-list (list) -
Define bar line settings for bar line bar. The list glyph-list must have three entries which define substitute glyphs for the end of a line, the beginning of a line, and a span bar, respectively. The substitute glyphs may be either strings or booleans:
#t
calls for the same value as bar and#f
calls for no glyph. -
\displayLilyMusic
[music] - port [output port] music (music) -
Display the LilyPond input representation of music to port, defaulting to the console.
-
\displayMusic
[music] - port [output port] music (music) -
Display the internal representation of music to port, default to the console.
-
\displayScheme
(any type) - port [output port] expr (any type) -
Display the internal representation of expr to port, default to the console.
-
\dropNote
[music] - num (integer) music (music) -
Drop a note of any chords in music, in num position from above.
-
\enablePolymeter
[void] -
For use within an output definition. Enables polymetry, moving timing management from
Score
toStaff
-like contexts. This is done by removing theTiming_translator
fromScore
, and adding it to all contexts having theStaff
alias. -
\endSpanners
[music] - music (music) -
Terminate the next spanner prematurely after exactly one note without the need of a specific end spanner.
-
\eventChords
[music] - music (music) -
Compatibility function wrapping
EventChord
around isolated rhythmic events occuring since version 2.15.28, after expanding repeat chords ‘q’. -
\featherDurations
[music] - scale (non-negative rational, fraction, or moment) argument (music) -
Adjust durations of music in argument by scale.
-
\finger
[post event] - finger (index or markup) -
Apply finger as a fingering indication.
-
\fixed
[music] - pitch (pitch) music (music) -
Use the octave of pitch as the default octave for music.
-
\footnote
[music] - mark [markup] offset (pair of numbers) footnote (markup) item (symbol list or music) -
Make the markup footnote a footnote on item. The footnote is marked with a markup mark moved by offset with respect to the marked music.
If mark is not given or specified as \default, it is replaced by an automatically generated sequence number. If item is a symbol list of form ‘Grob’ or ‘Context.Grob’, then grobs of that type will be marked at the current time step in the given context (default
Bottom
).If item is music, the music will get a footnote attached to a grob immediately attached to the event, like \tweak does. For attaching a footnote to an indirectly caused grob, write
\single\footnote
, use item to specify the grob, and follow it with the music to annotate.Like with
\tweak
, if you use a footnote on a following post-event, the\footnote
command itself needs to be attached to the preceding note or rest as a post-event with-
. -
\grace
[music] - music (music) -
Insert music as grace notes.
-
\grobdescriptions
(any type) - descriptions (list) -
Create a context modification from descriptions, a list in the format of
all-grob-descriptions
. -
\harmonicByFret
[music] - fret (number) music (music) -
Convert music into mixed harmonics; the resulting notes resemble harmonics played on a fretted instrument by touching the strings at fret.
-
\harmonicByRatio
[music] - ratio (number) music (music) -
Convert music into mixed harmonics; the resulting notes resemble harmonics played on a fretted instrument by touching the strings at the point given through ratio.
-
\harmonicNote
[music] - note (music) -
Print note with a diamond-shaped note head.
-
\harmonicsOn
[music] -
Set the default note head style to a diamond-shaped style.
-
\hide
[music] - item (symbol list or music) -
Set item’s ‘transparent’ property to
#t
, making it invisible while still retaining its dimensions.If item is a symbol list of form
GrobName
orContext.GrobName
, the result is an override for the grob name specified by it. If item is a music expression, the result is the same music expression with an appropriate tweak applied to it. -
\incipit
[music] - incipit-music (music) -
Output incipit-music before the main staff as an indication of its appearance in the original music.
-
\inherit-acceptability
[void] - to (symbol) from (symbol) -
When used in an output definition, will modify all context definitions such that context to is accepted as a child by all contexts that also accept from.
-
\inStaffSegno
[music] -
Put the segno variant ’varsegno’ at this position into the staff, compatible with the repeat command.
-
\instrumentSwitch
[music] - name (string) -
Switch instrument to name, which must have been predefined with function
\addInstrumentDefinition
.This function is deprecated.
-
\inversion
[music] - around (pitch) to (pitch) music (music) -
Invert music about around and transpose from around to to.
-
\invertChords
[music] - num (integer) music (music) -
Invert any chords in music into their num-th position. (Chord inversions may be directed downwards using negative integers.)
-
\jump
[music] - text (markup) -
Mark a point of departure, e.g. ‘Gavotte I D.C.’.
-
\keepWithTag
[music] - tags (symbol list or symbol) music (music) -
Include only elements of music that are tagged with one of the tags in tags. tags may be either a single symbol or a list of symbols.
Each tag may be declared as a member of at most one tag group (defined with
\tagGroup
). If none of a music element’s tags share a tag group with one of the specified tags, the element is retained. -
\key
[music] - tonic [pitch] pitch-alist [list of number pairs] -
Set key to tonic and scale pitch-alist. If both are null, just generate
KeyChangeEvent
. -
\killCues
[music] - music (music) -
Remove cue notes from music.
-
\label
[music] - label (symbol) -
Create label as a referrable label.
-
\language
[void] - language (string) -
Set note names for language language.
-
\languageRestore
[void] -
Restore a previously-saved pitchnames alist.
-
\languageSaveAndChange
[void] - language (string) -
Store the previous pitchnames alist, and set a new one.
-
\magnifyMusic
[music] - mag (positive number) music (music) -
Magnify the notation of music without changing the staff-size, using mag as a size factor. Stems, beams, slurs, ties, and horizontal spacing are adjusted automatically.
-
\magnifyStaff
[music] - mag (positive number) -
Change the size of the staff, adjusting notation size and horizontal spacing automatically, using mag as a size factor.
-
\makeClusters
[music] - arg (music) -
Display chords in arg as clusters.
-
\makeDefaultStringTuning
[void] - symbol (symbol) pitches (list) -
This defines a string tuning symbol via a list of pitches. The symbol also gets registered in
defaultStringTunings
for documentation purposes. -
\mark
[music] - label [index or markup] -
Create a rehearsal mark. If label is an integer, create the rehearsal mark for the given sequence number. If label is
\default
, create the next sequential rehearsal mark. If label is markup, use it for the mark. -
\markupMap
[music] - path (symbol list or symbol) markupfun (markup-function) music (music) -
This applies the given markup function markupfun to all markup music properties matching path in music.
For example,
\new Voice { g'2 c'' } \addlyrics { \markupMap LyricEvent.text \markup \with-color #red \etc { Oh yes! } }
-
\modalInversion
[music] - around (pitch) to (pitch) scale (music) music (music) -
Invert music about around using scale and transpose from around to to.
-
\modalTranspose
[music] - from (pitch) to (pitch) scale (music) music (music) -
Transpose music from pitch from to pitch to using scale.
-
\musicMap
[music] - proc (procedure) mus (music) -
Apply proc to mus and all of the music it contains.
-
\noPageBreak
[music] -
Forbid a page break. May be used at toplevel (i.e., between scores or markups), or inside a score.
-
\noPageTurn
[music] -
Forbid a page turn. May be used at toplevel (i.e., between scores or markups), or inside a score.
-
\octaveCheck
[music] - pitch (pitch) -
Octave check.
-
\offset
[music] - property (symbol list or symbol) offsets (any type) item (key list or music) -
Offset the default value of property of item by offsets. If item is a string, the result is
\override
for the specified grob type. If item is a music expression, the result is the same music expression with an appropriate tweak applied. -
\omit
[music] - item (symbol list or music) -
Set item’s ‘stencil’ property to
#f
, effectively omitting it without taking up space.If item is a symbol list of form
GrobName
orContext.GrobName
, the result is an override for the grob name specified by it. If item is a music expression, the result is the same music expression with an appropriate tweak applied to it. -
\once
[music] - music (music) -
Set
once
to#t
on all layout instruction events in music. This will complain about music with an actual duration. As a special exception, if music might be the result of a\tweak
command, no warning will be given in order to allow for\once \propertyTweak
to work as both one-time override and proper tweak. -
\ottava
[music] - octave (integer) -
Set the octavation.
-
\overrideProperty
[music] - grob-property-path (list of indexes or symbols) value (any type) -
Set the grob property specified by grob-property-path to value. grob-property-path is a symbol list of the form
Context.GrobName.property
orGrobName.property
, possibly with subproperties given as well.As opposed to
\override
which overrides the context-dependent defaults with which a grob is created, this command usesOutput_property_engraver
at the grob acknowledge stage. This may be necessary for overriding values set after the initial grob creation. -
\overrideTimeSignatureSettings
[music] - time-signature (fraction, as pair) base-moment (fraction, as pair) beat-structure (list) beam-exceptions (list) -
Override
timeSignatureSettings
for time signatures of time-signature to have settings of base-moment, beat-structure, and beam-exceptions. -
\pageBreak
[music] -
Force a page break. May be used at toplevel (i.e., between scores or markups), or inside a score.
-
\pageTurn
[music] -
Force a page turn between two scores or top-level markups.
-
\palmMute
[music] - note (music) -
Print note with a triangle-shaped note head.
-
\palmMuteOn
[music] -
Set the default note head style to a triangle-shaped style.
-
\parallelMusic
[void] - voice-ids (list) music (music) -
Define parallel music sequences, separated by ’|’ (bar check signs), and assign them to the identifiers provided in voice-ids.
voice-ids: a list of music identifiers (symbols containing only letters)
music: a music sequence, containing BarChecks as limiting expressions.
Example:
\parallelMusic A,B,C { c c | d d | e e | d d | e e | f f | } <==> A = { c c | d d } B = { d d | e e } C = { e e | f f }
The last bar checks in a sequence are not copied to the result in order to facilitate ending the last entry at non-bar boundaries.
-
\parenthesize
[music] - arg (symbol list or music) -
Tag arg to be parenthesized. arg may be either a music event or a grob path.
-
\partCombine
[music] - chord-range [pair of numbers] part1 (music) part2 (music) -
Take the music in part1 and part2 and return a music expression containing simultaneous voices, where part1 and part2 are combined into one voice where appropriate. Optional chord-range sets the distance in steps between notes that may be combined into a chord or unison.
-
\partCombineDown
[music] - chord-range [pair of numbers] part1 (music) part2 (music) -
Take the music in part1 and part2 and typeset so that they share a staff with stems directed downward.
-
\partCombineForce
[music] - type [symbol] -
Override the part-combiner.
-
\partCombineUp
[music] - chord-range [pair of numbers] part1 (music) part2 (music) -
Take the music in part1 and part2 and typeset so that they share a staff with stems directed upward.
-
\partial
[music] - dur (duration) -
Make a partial measure.
-
\phrasingSlurDashPattern
[music] - dash-fraction (number) dash-period (number) -
Set up a custom style of dash pattern for dash-fraction ratio of line to space repeated at dash-period interval for phrasing slurs.
-
\pitchedTrill
[music] - main-note (music) secondary-note (music) -
Print a trill with main-note as the main note of the trill and print secondary-note as a stemless note head in parentheses.
-
\pointAndClickOff
[void] -
Suppress generating extra code in final-format (e.g. pdf) files to point back to the lilypond source statement.
-
\pointAndClickOn
[void] -
Enable generation of code in final-format (e.g. pdf) files to reference the originating lilypond source statement; this is helpful when developing a score but generates bigger final-format files.
-
\pointAndClickTypes
[void] - types (symbol list or symbol) -
Set a type or list of types (such as
#'note-event
) for which point-and-click info is generated. -
\preBend
[post event] - mus (music) -
Sets the
'style
of aBendSpanner
to'pre-bend
. -
\preBendHold
[post event] - mus (music) -
Sets the
'style
of aBendSpanner
to'pre-bend-hold
. -
\propertyOverride
[music] - grob-property-path (list of indexes or symbols) value (any type) -
Set the grob property specified by grob-property-path to value. grob-property-path is a symbol list of the form
Context.GrobName.property
orGrobName.property
, possibly with subproperties given as well. This music function is mostly intended for use from Scheme as a substitute for the built-in\override
command. -
\propertyRevert
[music] - grob-property-path (list of indexes or symbols) -
Revert the grob property specified by grob-property-path to its previous value. grob-property-path is a symbol list of the form
Context.GrobName.property
orGrobName.property
, possibly with subproperties given as well. This music function is mostly intended for use from Scheme as a substitute for the built-in\revert
command. -
\propertySet
[music] - property-path (symbol list or symbol) value (any type) -
Set the context property specified by property-path to value. This music function is mostly intended for use from Scheme as a substitute for the built-in
\set
command. -
\propertyTweak
[music] - prop (key list or symbol) value (any type) item (key list or music) -
Add a tweak to the following item, usually music. This generally behaves like
\tweak
but will turn into an\override
when item is a symbol list.In that case, item specifies the grob path to override. This is mainly useful when using
\propertyTweak
as as a component for building other functions like\omit
. It is not the default behavior for\tweak
since many input strings in\lyricmode
can serve equally as music or as symbols which causes surprising behavior when tweaking lyrics using the less specific semantics of\propertyTweak
.prop can contain additional elements in which case a nested property (inside of an alist) is tweaked.
-
\propertyUnset
[music] - property-path (symbol list or symbol) -
Unset the context property specified by property-path. This music function is mostly intended for use from Scheme as a substitute for the built-in
\unset
command. -
\pushToTag
[music] - tag (symbol) more (music) music (music) -
Add more to the front of music tagged with tag. A
post-event
can be added to the articulations of rhythmic events or chords; other expressions may be added to chords, sequential or simultaneous music. -
\quoteDuring
[music] - what (string) main-music (music) -
Indicate a section of music to be quoted. what indicates the name of the quoted voice, as specified in an
\addQuote
command. main-music is used to indicate the length of music to be quoted; usually contains spacers or multi-measure rests. -
\raiseNote
[music] - num (integer) music (music) -
Raise a note of any chords in music, in num position from below.
-
\reduceChords
[music] - music (music) -
Reduce chords contained in music to single notes, intended mainly for reusing music in RhythmicStaff. Does not reduce parallel music.
-
\relative
[music] - pitch [pitch] music (music) -
Make music relative to pitch. If pitch is omitted, the first note in music is given in absolute pitch.
-
\removeWithTag
[music] - tags (symbol list or symbol) music (music) -
Remove elements of music that are tagged with one of the tags in tags. tags may be either a single symbol or a list of symbols.
-
\resetRelativeOctave
[music] - pitch (pitch) -
Set the octave inside a \relative section.
-
\retrograde
[music] - music (music) -
Return music in reverse order.
-
\revertTimeSignatureSettings
[music] - time-signature (pair) -
Revert
timeSignatureSettings
for time signatures of time-signature. -
\rightHandFinger
[post event] - finger (index or markup) -
Apply finger as a fingering indication.
-
\scaleDurations
[music] - fraction (non-negative rational, fraction, or moment) music (music) -
Multiply the duration of events in music by fraction.
-
\sectionLabel
[music] - text (markup) -
Mark the beginning of a named passage, e.g. “Coda”. This is well suited for use at a section division created with
\section
, but it does not imply\section
and may be used alone. -
\segnoMark
[music] - num [non-negative, exact integer] -
Create a segno mark (or bar line, if the
segnoStyle
context property is'bar-line
). num may be 1 for the first segno, 2 for the second, etc., or it may be\default
to use the next number in sequence automatically. -
\settingsFrom
(any type) - ctx [symbol] music (music) -
Take the layout instruction events from music, optionally restricted to those applying to context type ctx, and return a context modification duplicating their effect.
-
\shape
[music] - offsets (list) item (key list or music) -
Offset control-points of item by offsets. The argument is a list of number pairs or list of such lists. Each element of a pair represents an offset to one of the coordinates of a control-point. The y-coordinate of each number pair is scaled by staff space. If item is a string, the result is
\once\override
for the specified grob type. If item is a music expression, the result is the same music expression with an appropriate tweak applied. -
\shiftDurations
[music] - dur (integer) dots (integer) arg (music) -
Change the duration of arg by adding dur to the
durlog
of arg and dots to thedots
of arg. -
\single
[music] - overrides (music) music (music) -
Convert overrides to tweaks and apply them to music. This does not convert
\revert
,\set
or\unset
. -
\skip
[music] - arg (duration-or-music) -
Skip over arg, which may be music or a duration.
-
\slashedGrace
[music] - music (music) -
Create slashed graces (slashes through stems, but no slur) from the following music expression
-
\slurDashPattern
[music] - dash-fraction (number) dash-period (number) -
Set up a custom style of dash pattern for dash-fraction ratio of line to space repeated at dash-period interval for slurs.
-
\staffHighlight
[music] - color (color) -
Start a highlight with the specified color.
-
\storePredefinedDiagram
[void] - fretboard-table (hash table) chord (music) tuning (pair) diagram-definition (string or pair) -
Add predefined fret diagram defined by diagram-definition for the chord pitches chord and the stringTuning tuning.
-
\stringTuning
(any type) - chord (music) -
Convert chord to a string tuning. chord must be in absolute pitches and should have the highest string number (generally the lowest pitch) first.
-
\styledNoteHeads
[music] - style (symbol) heads (symbol list or symbol) music (music) -
Set heads in music to style.
-
\tabChordRepeats
[music] - event-types [list] music (music) -
Walk through music putting the notes, fingerings and string numbers of the previous chord into repeat chords, as well as an optional list of event-types such as
#'(articulation-event)
. -
\tabChordRepetition
[void] -
Include the string and fingering information in a chord repetition. This function is deprecated; try using
\tabChordRepeats
instead. -
\tag
[music] - tags (symbol list or symbol) music (music) -
Tag the following music with tags and return the result, by adding the single symbol or symbol list tags to the
tags
property of music. -
\tagGroup
[void] - tags (symbol list) -
Define a tag group comprising the symbols in the symbol list tags. Tag groups must not overlap.
-
\temporary
[music] - music (music) -
Make any
\override
in music replace an existing grob property value only temporarily, restoring the old value when a corresponding\revert
is executed. This is achieved by clearing the ‘pop-first’ property normally set on\override
s.An
\override
/\revert
sequence created by using\temporary
and\undo
on the same music containing overrides will cancel out perfectly or cause a warning.Non-property-related music is ignored, warnings are generated for any property-changing music that isn’t an
\override
. -
\textEndMark
[music] - text (markup) -
(undocumented; fixme)
-
\textMark
[music] - text (markup) -
(undocumented; fixme)
-
\tieDashPattern
[music] - dash-fraction (number) dash-period (number) -
Set up a custom style of dash pattern for dash-fraction ratio of line to space repeated at dash-period interval for ties.
-
\time
[music] - beat-structure [number list] fraction (fraction, as pair) -
Set fraction as time signature, with optional number list beat-structure before it.
-
\times
[music] - fraction (fraction, as pair) music (music) -
Scale music in time by fraction.
-
\tocItem
[music] - label [symbol list or symbol] text (markup) -
Add a line to the table of contents, using the
tocItemMarkup
paper variable markup and assigning it to label if one is provided. If a hierarchy of labels is given, make the current item a child of the corresponding objects. -
\transpose
[music] - from (pitch) to (pitch) music (music) -
Transpose music from pitch from to pitch to.
-
\transposedCueDuring
[music] - what (string) dir (direction) pitch (pitch) main-music (music) -
Insert notes from the part what into a voice called
cue
, using the transposition defined by pitch. This happens simultaneously with main-music, which is usually a rest. The argument dir determines whether the cue notes should be notated as a first or second voice. -
\transposition
[music] - pitch (pitch) -
Set instrument transposition
-
\tuplet
[music] - ratio (fraction, as pair) tuplet-span [duration] music (music) -
Scale the given music to tuplets. ratio is a fraction that specifies how many notes are played in place of the nominal value: it will be ‘3/2’ for triplets, namely three notes being played in place of two. If the optional duration tuplet-span is specified, it is used instead of
tupletSpannerDuration
for grouping the tuplets. For example,\tuplet 3/2 4 { c8 c c c c c }
will result in two groups of three tuplets, each group lasting for a quarter note.
-
\tupletSpan
[music] - tuplet-span [duration] -
Set
tupletSpannerDuration
, the length into which\tuplet
without an explicit ‘tuplet-span’ argument of its own will group its tuplets, to the duration tuplet-span. To revert to the default of not subdividing the contents of a\tuplet
command without explicit ‘tuplet-span’, use\tupletSpan \default
-
\tweak
[music] - prop (key list or symbol) value (any type) music (music) -
Add a tweak to the following music. Layout objects created by music get their property prop set to value. If prop has the form ‘Grob.property’, like with
\tweak Accidental.color #red cis'
an indirectly created grob (‘Accidental’ is caused by ‘NoteHead’) can be tweaked; otherwise only directly created grobs are affected.
prop can contain additional elements in which case a nested property (inside of an alist) is tweaked.
If music is an ‘event-chord’, every contained ‘rhythmic-event’ is tweaked instead.
-
\undo
[music] - music (music) -
Convert
\override
and\set
in music to\revert
and\unset
, respectively. Any reverts and unsets already in music cause a warning. Non-property-related music is ignored. -
\unfolded
[music] - music (music) -
Mask music until the innermost enclosing repeat is unfolded.
-
\unfoldRepeats
[music] - types [symbol list or symbol] music (music) -
Force
\repeat volta
,\repeat tremolo
or\repeat percent
commands in music to be interpreted as\repeat unfold
, if specified in the optional symbol-list types. The default for types is an empty list, which will force any of those commands in music to be interpreted as\repeat unfold
. Possible entries arevolta
,tremolo
orpercent
. Multiple entries are possible. -
\voices
[music] - ids (list of indexes or symbols) music (music) -
Take the given key list of numbers (indicating the use of ‘\voiceOne’…) or symbols (indicating voice names, typically converted from strings by argument list processing) and assign the following
\\
-separated music to contexts according to that list. Named rather than numbered contexts can be used for continuing one voice (for the sake of spanners and lyrics), usually requiring a\voiceOne
-style override at the beginning of the passage and a\oneVoice
override at its end.The default
<< … \\ … \\ … >>
construct would correspond to
\voices 1,2,3 << … \\ … \\ … >>
-
\void
[void] - arg (any type) -
Accept a scheme argument, return a void expression. Use this if you want to have a scheme expression evaluated because of its side-effects, but its value ignored.
-
\volta
[music] - volta-numbers (number list) music (music) -
Mark music as being limited to the volte given in volta-numbers when the innermost enclosing repeat is unfolded. Volta number begins at 1 and increases by 1 with each repetition.
-
\vshape
[music] - offsets (list) item (key list or music) -
Like
\shape
, but additionally show control points for ease of tweaking. -
\withMusicProperty
[music] - sym (symbol) val (any type) music (music) -
Set sym to val in music.
-
\xNote
[music] - note (music) -
Print note with a cross-shaped note head.
-
\=
[post event] - id (index or symbol) event (post event) -
This sets the
spanner-id
property of the following event to the given id (non-negative integer or symbol). This can be used to tell LilyPond how to connect overlapping or parallel slurs or phrasing slurs within a singleVoice
.\fixed c' { c\=1( d\=2( e\=1) f\=2) }
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 音楽関数の一覧 ] | [ 上へ : 付表 ] | [ 定義された型述語 > ] |
A.18 コンテキストを変更する識別子
\layout
や \with
ブロック内でコンテキストを変更するのに使用できるコマンドの一覧です。
システムの制約により、以下の一覧は英語での提供となります。
-
\EnableGregorianDivisiones
-
Configure division commands such as
\section
to createDivisio
grobs rather thanBarLine
grobs. This does not affect measure bar lines or the properties of the grobs themselves.- Sets translator property
caesuraTypeTransform
tocaesura-to-divisio
. - Sets translator property
doubleRepeatBarType
to'()
. - Sets translator property
endRepeatBarType
to'()
. - Sets translator property
fineBarType
to""
. - Sets translator property
sectionBarType
to""
. - Sets translator property
startRepeatBarType
to'()
. - Sets translator property
underlyingRepeatBarType
to""
. - Sets translator property
doubleRepeatSegnoBarType
to"S-||"
. - Sets translator property
endRepeatSegnoBarType
to"S-||"
. - Sets translator property
fineSegnoBarType
to"S-||"
. - Sets translator property
fineStartRepeatSegnoBarType
to"S-||"
. - Sets translator property
segnoBarType
to"S-||"
. - Sets translator property
startRepeatSegnoBarType
to"S-||"
.
- Sets translator property
-
\RemoveAllEmptyStaves
-
Remove staves which are considered to be empty according to the list of interfaces set by
keepAliveInterfaces
, including those in the first system.- Sets grob property
remove-empty
inVerticalAxisGroup
to#t
. - Sets grob property
remove-first
inVerticalAxisGroup
to#t
.
- Sets grob property
-
\RemoveEmptyStaves
-
Remove staves which are considered to be empty according to the list of interfaces set by
keepAliveInterfaces
.- Sets grob property
remove-empty
inVerticalAxisGroup
to#t
.
- Sets grob property
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < コンテキストを変更する識別子 ] | [ 上へ : 付表 ] | [ R5RS primary predicates > ] |
A.19 定義された型述語
システムの制約により、以下の一覧は英語での提供となります。
Predicates return #t
when their argument is of the named type
and #f
if it isn’t.
R5RS primary predicates | ||
R5RS secondary predicates | ||
Guile predicates | ||
LilyPond scheme predicates | ||
LilyPond exported predicates |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < 定義された型述語 ] | [ 上へ : 定義された型述語 ] | [ R5RS secondary predicates > ] |
R5RS primary predicates
Primary predicates can be applied to any expression. They can be used on their own as predicates for LilyPond functions. The predicates here are part of the Scheme standard R5RS.
Type predicate | Description |
---|---|
boolean? | boolean |
char? | character |
complex? | complex number |
eof-object? | end-of-file object |
input-port? | input port |
integer? | integer |
list? | list (use cheap-list?
for faster processing) |
null? | null |
number? | number |
output-port? | output port |
pair? | pair |
port? | port |
procedure? | procedure |
rational? | rational number |
real? | real number |
string? | string |
symbol? | symbol |
vector? | vector |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < R5RS primary predicates ] | [ 上へ : 定義された型述語 ] | [ Guile predicates > ] |
R5RS secondary predicates
Secondary predicates are only applicable to specific expressions (for example, to numbers). They will throw a type error when applied to expressions they are not intended for. The predicates here are part of the Scheme standard R5RS.
Type predicate | Description |
---|---|
char-alphabetic? | alphabetic character |
char-lower-case? | lower-case character |
char-numeric? | numeric character |
char-upper-case? | upper-case character |
char-whitespace? | whitespace character |
even? | even number |
exact? | exact number |
inexact? | inexact number |
negative? | negative number |
odd? | odd number |
positive? | positive number |
zero? | zero |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < R5RS secondary predicates ] | [ 上へ : 定義された型述語 ] | [ LilyPond scheme predicates > ] |
Guile predicates
These predicates are defined by Guile but are not part of a Scheme standard.
Type predicate | Description |
---|---|
hash-table? | hash table |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < Guile predicates ] | [ 上へ : 定義された型述語 ] | [ LilyPond exported predicates > ] |
LilyPond scheme predicates
These predicates are only available within LilyPond and defined in Scheme.
Type predicate | Description |
---|---|
alist? | association list (list of pairs) |
boolean-or-symbol? | boolean or symbol |
cheap-list? | list (use this instead of
list? for faster processing) |
color? | color |
exact-rational? | an exact rational number |
fraction? | fraction, as pair |
grob-list? | list of grobs |
index? | non-negative, exact integer |
index-or-markup? | index or markup |
key? | index or symbol |
key-list? | list of indexes or symbols |
key-list-or-music? | key list or music |
key-list-or-symbol? | key list or symbol |
ly:skyline-pair? | pair of skylines |
markup? | markup |
markup-command-list? | markup command list |
markup-list? | markup list |
moment-pair? | pair of moment objects |
number-list? | number list |
number-or-grob? | number or grob |
number-or-pair? | number or pair |
number-or-string? | number or string |
number-pair? | pair of numbers |
number-pair-list? | list of number pairs |
rational-or-procedure? | an exact rational or procedure |
rhythmic-location? | rhythmic location |
scale? | non-negative rational, fraction, or moment |
scheme? | any type |
string-or-music? | string or music |
string-or-pair? | string or pair |
string-or-symbol? | string or symbol |
symbol-key-alist? | alist, with symbols as keys |
symbol-list? | symbol list |
symbol-list-or-music? | symbol list or music |
symbol-list-or-symbol? | symbol list or symbol |
void? | void |
[ << 付表 ] | [トップ][目次][インデックス] | [ カンニング ペーパー >> ] |
[ < LilyPond scheme predicates ] | [ 上へ : 定義された型述語 ] | [ カンニング ペーパー > ] |
LilyPond exported predicates
These predicates are only available within LilyPond and usually defined in C++.
Type predicate | Description |
---|---|
ly:book? | book |
ly:context? | context |
ly:context-def? | context definition |
ly:context-mod? | context modification |
ly:dimension? | dimension, in staff space |
ly:dir? | direction |
ly:dispatcher? | dispatcher |
ly:duration? | duration |
ly:event? | post event |
ly:font-metric? | font metric |
ly:grob? | graphical (layout) object |
ly:grob-array? | array of grobs |
ly:grob-properties? | grob properties |
ly:input-location? | input location |
ly:item? | item |
ly:iterator? | iterator |
ly:lily-lexer? | lily-lexer |
ly:lily-parser? | lily-parser |
ly:listener? | listener |
ly:moment? | moment |
ly:music? | music |
ly:music-function? | music function |
ly:music-list? | list of music objects |
ly:music-output? | music output |
ly:otf-font? | OpenType font |
ly:output-def? | output definition |
ly:page-marker? | page marker |
ly:pango-font? | Pango font |
ly:paper-book? | paper book |
ly:paper-system? | paper-system Prob |
ly:pitch? | pitch |
ly:prob? | property object |
ly:score? | score |
ly:skyline? | skyline |
ly:source-file? | source file |
ly:spanner? | spanner |
ly:spring? | spring |
ly:stencil? | stencil |
ly:stream-event? | stream event |
ly:transform? | coordinate transform |
ly:translator? | translator |
ly:translator-group? | translator group |
ly:unpure-pure-container? | unpure/pure container |
[ << 付表 ] | [トップ][目次][インデックス] | [ GNU Free Documentation License >> ] |
[ < LilyPond exported predicates ] | [ 上へ : Top ] | [ GNU Free Documentation License > ] |
B. カンニング ペーパー
構文 | 説明 | 例 |
1 2 8 16 | 演奏時間 | |
c4. c4.. | 増音の付点 | |
c d e f g a b | 音階 | |
fis bes | 変音 | |
\clef treble \clef bass | 音部記号 | |
\time 3/4 \time 4/4 | 拍子記号 | |
r4 r8 | 休符 | |
d ~ d | タイ | |
\key es \major | 調号 | |
note' | 1 オクターブ上げる | |
note, | 1 オクターブ下げる | |
c( d e) | スラー | |
c\( c( d) e\) | プレージング スラー | |
a8[ b] | 連桁 | |
<< \new Staff … >> | 複数の譜 | |
c-> c-. | アーティキュレーション | |
c2\mf c\sfz | 強弱記号 | |
a\< a a\! | クレッシェンド | |
a\> a a\! | デクレッシェンド | |
< > | 和音 | |
\partial 8 | 上拍 | |
\tuplet 3/2 {f g a} | 3 連符 | |
\grace | 装飾小音符 | |
\lyricmode { twinkle } | 歌詞を入力する | twinkle |
\new Lyrics | 歌詞を譜刻する | |
twin -- kle | 歌詞のハイフン | |
\chordmode { c:dim f:maj7 } | コード | |
\new ChordNames | コード ネームを譜刻する | |
<<{e f} \\ {c d}>> | 多声 | |
s4 s8 s16 | 空白休符 |
[ << カンニング ペーパー ] | [トップ][目次][インデックス] | [ LilyPond コマンド インデックス >> ] |
[ < カンニング ペーパー ] | [ 上へ : Top ] | [ LilyPond コマンド インデックス > ] |
C. GNU Free Documentation License
Version 1.3, 3 November 2008
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. https://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. |
-
PREAMBLE
The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of “copyleft”, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
-
APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The “Document”, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as “you”. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.
A “Modified Version” of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.
The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.
A “Transparent” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not “Transparent” is called “Opaque”.
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.
The “Title Page” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text.
The “publisher” means any person or entity that distributes copies of the Document to the public.
A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Document means that it remains a section “Entitled XYZ” according to this definition.
The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.
-
VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
-
COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
-
MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
- Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
- List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.
- State on the Title page the name of the publisher of the Modified Version, as the publisher.
- Preserve all the copyright notices of the Document.
- Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
- Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
- Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice.
- Include an unaltered copy of this License.
- Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled “History” in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
- Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the “History” section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
- For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
- Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
- Delete any section Entitled “Endorsements”. Such a section may not be included in the Modified Version.
- Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section.
- Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version’s license notice. These titles must be distinct from any other section titles.
You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
-
COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled “History” in the various original documents, forming one section Entitled “History”; likewise combine any sections Entitled “Acknowledgements”, and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements.”
-
COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
-
AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an “aggregate” if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.
-
TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.
If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.
-
TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it.
-
FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See https://www.gnu.org/licenses/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License “or any later version” applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Document.
-
RELICENSING
“Massive Multiauthor Collaboration Site” (or “MMC Site”) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A “Massive Multiauthor Collaboration” (or “MMC”) contained in the site means any set of copyrightable works thus published on the MMC site.
“CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.
“Incorporate” means to publish or republish a Document, in whole or in part, as part of another Document.
An MMC is “eligible for relicensing” if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.
The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
Copyright (C) year your name. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. |
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with…Texts.” line with this:
with the Invariant Sections being list their titles, with the Front-Cover Texts being list, and with the Back-Cover Texts being list. |
If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.
[ << GNU Free Documentation License ] | [トップ][目次][インデックス] | [ LilyPond インデックス >> ] |
[ < GNU Free Documentation License ] | [ 上へ : Top ] | [ LilyPond インデックス > ] |
D. LilyPond コマンド インデックス
このインデックスは、すべての LilyPond コマンドとキーワードをリストアップしていて、それらの使い方について説明しているマニュアルのセクションへのリンクがあります。各リンクは 2 つのパートに分かれています。最初のパートは、マニュアルの中でコマンドあるいはキーワードが出現する場所へのリンクです。2 番目のパートは、マニュアルの中でコマンドあるいはキーワードが出現するセクションの先頭へのリンクです。
行き先: | !
"
%
'
(
)
,
-
.
/
:
<
=
>
?
[
\
]
^
_
|
~
A B C D E F G H I K L M N O P Q R S T U V W X |
---|
行き先: | !
"
%
'
(
)
,
-
.
/
:
<
=
>
?
[
\
]
^
_
|
~
A B C D E F G H I K L M N O P Q R S T U V W X |
---|
[ << LilyPond コマンド インデックス ] | [トップ][目次][インデックス] | [ >> ] |
[ < LilyPond コマンド インデックス ] | [ 上へ : Top ] | [ > ] |
E. LilyPond インデックス
すべての LilyPond コマンドとキーワードに加えて、このインデックスは、それらに関連する音楽用語や単語をリストアップしていて、そのトピックスについて説明しているマニュアルのセクションへのリンクがあります。各リンクは 2 つのパートに分かれています。最初のパートは、マニュアルの中でトピックスが出現する場所へのリンクです。2 番目のパートは、マニュアルの中でトピックスが出現するセクションの先頭へのリンクです。
行き先: | !
"
%
'
(
)
,
-
.
/
1
8
:
<
=
>
?
[
\
]
^
_
|
~
そ
ア
オ
コ
ネ
ピ
ボ
マ
余
出
実
私
表
調
譜
A B C D E F G H I J K L M N O P Q R S T U V W X |
---|
行き先: | !
"
%
'
(
)
,
-
.
/
1
8
:
<
=
>
?
[
\
]
^
_
|
~
そ
ア
オ
コ
ネ
ピ
ボ
マ
余
出
実
私
表
調
譜
A B C D E F G H I J K L M N O P Q R S T U V W X |
---|
[トップ][目次][インデックス] |
脚注
[1] Scheme tutorial の中に、Scheme 形式で数、リスト、文字列、それに記号を入力するための簡単な手引きがあります。
[2] Internally, this works by activating the ‘dlig’ OpenType feature of the Emmentaler font.
[トップ][目次][インデックス] |
目次
- 1. 音楽記譜法
- 2.1 声楽
- 2.2 キーボードと他の複数譜の楽器
- 2.3 フレットの無い弦楽器
- 2.4 フレットのある弦楽器
- 2.5 打楽器
- 2.6 管楽器
- 2.7 和音記譜法
- 2.8 現代音楽
- 2.9 古代の記譜法
- 2.10 世界の音楽