2.18 から 2.20 での新機能
記譜に関する新機能
ピッチの表示に関する改善
-
名前にシャープやフラットを持つピッチは、ハイフンが必要となりました。
\key aflat \major
ではなく、以下を使用してください:
\key a-flat \major
しかし、ダブル シャープやフラットを持つものは、2 つ目のハイフンは必要ありません。
cisis
(オランダ音名) は以下のようになります:\key c-sharpsharp \major
-
臨時記号ルールを
ChoirStaff
全体に対して定義できるようになりました。 -
臨時記号ルールとして 2 種類が追加されました。どちらも
modern-voice
とpiano
を合わせたようなものです:choral
これが
ChoirStaff
の新しいデフォルトになります。choral-cautionary
choral
と同じですが、追加の臨時記号が括弧付きで表示されます。Automatic accidentals も参照してください。
-
音部記号のグリフが 4 つ追加されました: ‘GG’ (ダブル G), ‘Tenor G’, ‘varC’,
‘Varpercussion’ です。‘varC’ についてはいくつかの音域用のものが定義されています。
Example
Output
Example
Output
\clef GG
\clef tenorG
\clef varC
\clef altovarC
\clef tenorvarC
\clef baritonevarC
\clef varpercussion
Clef styles も参照してください。
-
フランス語の音名が明示的に定義されました (これまではイタリア語の音名のエイリアスになっていました)。d のピッチを
re
とré
のどちらでも入力することができます。\language "français" do ré mi fa | sol la si do | ré1
ダブルシャープは
x
を付加します。\language "français" dob, rebb misb fabsb | sold ladd six dosd | rédsd1
リズムに関連した改善
-
複数小節にまたがる休符は、
MultiMeasureRest.space-increment
を基にして、長さ分の幅を持つようになりました。デフォルト値は2.0
です。\compressFullBarRests R1*2 R1*4 R1*64 R1*16
\compressFullBarRests \override Staff.MultiMeasureRest.space-increment = 2.5 R1*2 R1*4 R1*64 R1*16
-
\partial
コマンドを多声の音楽や複数のコンテキストで用いる場合の動作が改善しました。 -
\time
と\partial
コマンドを同時に使用することで、小節の途中で拍子記号を変更することができるようになりました。f f f f | f2. \bar "||" \time 3/4 \partial 4 f8 8 | f2 f8 f |
-
長さだけを入力することで、ピッチを持たない音符を入力できるようになりました。その場合、前の音符や和音のピッチを受け継ぎます。これは、音楽や Scheme 関数でリズムのみを指定する場合に有用であり、また LilyPond ソースの可読性が向上します。
c64[ 64] 32 16 8^- <g b d>4~ 2 | 1
\new DrumStaff \with { \override StaffSymbol.line-count = 1 } \drummode { \time 3/4 tambourine 8 \tuplet 3/2 { 16 16 16 } 8 \tuplet 3/2 { 16 16 16 } 8 8 | }
-
連桁の例外を、シンプルな
\beamExceptions
Scheme 関数で設定することができるようになりました。これまでは以下のように設定していましたが:\set Timing.beamExceptions = #'( ;start of alist (end . ;entry for end of beams ( ;start of alist of end points ((1 . 32) . (2 2 2)) ;rule for 1/32 beams -- end each 1/16 ))) \time #'(2 1) 3/16 c16 c c \repeat unfold 6 { c32 }
新しい
\beamExceptions
Scheme 関数を使用することで、以下のようになります:\set Timing.beamExceptions = \beamExceptions { 32[ 32] 32[ 32] 32[ 32] } \time #'(2 1) 3/16 c16 c c | \repeat unfold 6 { c32 } |
複数の例外を設定するには、小節チェック記号
|
で区切ります。注意: 例外パターンをピッチ無しで指定する方法は便利ですが、強制ではありません (この前にある改善項目の、長さだけを入力することで、ピッチを持たない音符を入力できるようになりました を参照してください)。 -
向きが変わる連桁に付加される連符の数字が改善されました。以前は、連符の括弧が表示されない場合であっても、括弧の位置を基準にして数字が配置されており、場合によっては数字が離れた位置に表示されていました。
以前:
現在は、括弧が表示されない場合には、数字が連桁の近くに表示されます。
-
向きが変わる連桁に付加される連符の数字に対して、衝突検知が行われるようになりました。数字が隣の音符列に近すぎる場合には、水平方向に移動します
(垂直方向の距離は維持します)。衝突が起こった – 例えば臨時記号と –
場合、垂直方向に数字が移動します。連符の数字自体が大きすぎて、使用できるスペースに収まらない場合には、従来の‘括弧ベースの’配置システムが代わりに使用されます。k
従来の連符の挙動は、
TupletNumber
レイアウト オブジェクトの新たなknee-to-beam
プロパティによって得ることができます。\time 2/4 \override Beam.auto-knee-gap = 3 \override TupletNumber.knee-to-beam = ##f \override TupletBracket.bracket-visibility = ##t \tuplet 3/2 4 { g8 c'' e, } \once \override TupletBracket.bracket-visibility = ##f \tuplet 3/2 4 { g,,8 c'' e, }
発想記号に関する改善
-
ヘアピンの端点を
shorten-pair
Grob プロパティで微調整できるようになりました。従来は、このプロパティはテキスト スパナに対してのみ有効でした (例えばTupletBracket
やOttavaBracket
)。正の値は右に、負の値は左に移動します。
\once \override Hairpin.shorten-pair = #'(0 . 2) a1\< | a2 a\! \once \override Hairpin.shorten-pair = #'(2 . 0) \once \override Hairpin.stencil = #constante-hairpin a1\< | a2 a\! \once \override Hairpin.shorten-pair = #'(-1 . -1) \once \override Hairpin.stencil = #flared-hairpin a1\< | a2 a\!
-
Individual slurs and phrasing slurs may now be started from an explicit
note within a chord.
<f a( c>1 | <c') e g(> | <a c) e>
<f( a\( c>1 | <c'\) e\( g> | <a c e\)>
-
新たなコマンド
\=X
が追加されました。‘X’ には任意の非負整数やシンボルを使用することができます。これを用いることで、特定のスラーやフレージング スラーの始点や終点に ‘id’ を付与することができます。これは、同時に複数のスラーが現れる場合、スラーが他のスラーと重なる場合、長いスラーの中に短いスラーが現れる場合などに有用です。
<a c e\=7\(>1 | <g b d\=£(> | <f\=A( a c\="foo"(> | <c'\="foo")\=A) e\=£) g\=7\)> |
Expressive marks as curves も参照してください。
繰り返しの記譜に関する改善
-
トレモロを表すスラッシュの見た目 (形、スタイル、傾き) をより詳細にコントロールできるようになりました。
-
\unfoldRepeats
音楽関数は、任意のargument-list
引数を取るようになりました。これは、繰り返される音符がどのように展開されるかを設定します。選択肢はpercent
,tremolo
,volta
です。リストが指定されない場合、repeated-music
が全て展開されます。
譜の記譜法に関する改善
-
新しいコマンド
\magnifyStaff
が追加されました。これは、譜のサイズ、譜線、小節線、連桁、水平方向のスペーシングをStaff
コンテキストのレベルでスケーリングするものです。符幹やスラーのような線の太さは譜線の太さを基にしているため、譜線がデフォルトより細くなることはありません。 -
新しいコマンド
\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 } } >>
-
新しいコマンド
\RemoveAllEmptyStaves
が使用できるようになりました。これは、\RemoveEmptyStaves
と同様に動作しますが、楽譜の最初のシステムにある空の譜も削除するところが異なります。 -
新しいマークアップ コマンド
\justify-line
が追加されました。\fill-line
マークアップ コマンドと似ていますが、マークアップ内に 3 つ以上の語があった場合に、語を列に揃えるのではなく、同じ大きさのホワイトスペースを追加して均衡を取る点が異なります。\markup \fill-line {oooooo oooooo oooooo oooooo} \markup \fill-line {ooooooooo oooooooo oo ooo}
\markup \justify-line {oooooo oooooo oooooo oooooo} \markup \justify-line {ooooooooo oooooooo oo ooo}
編集者の注釈に関する改善
-
HorizontalBracketText
オブジェクトを用いて、分析の囲みにテキストを追加することができるようになりました。\layout { \context { \Voice \consists "Horizontal_bracket_engraver" } } { \once \override HorizontalBracketText.text = "a" c''\startGroup d''\stopGroup e''-\tweak HorizontalBracketText.text "a'" \startGroup d''\stopGroup }
テキストのフォーマットに関する改善
- LilyPond のデフォルトである Emmentaler 以外の‘音楽’フォントをより簡単に使用できるようになりました。更なる情報は、 Replacing the notation font を参照してください。
-
デフォルトのテキスト フォントは
Century Schoolbook L
,sans-serif
,monospace
から変更されました。svg
バックエンドでは:ファミリ
デフォルト フォント
roman
serif
sans
sans-serif
typewriter
monospace
serif
,sans-serif
,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
を参照してください。 -
OpenType フォントを使用する際に、OpenType 機能が使用できるようになりました。注意: 全ての OpenType フォントが全機能を使用できるとは限りません。
% True small caps \markup { Normal Style: Hello HELLO } \markup { \caps { Small Caps: Hello } } \markup { \override #'(font-features . ("smcp")) { True Small Caps: Hello } } % Number styles \markup { Normal Number Style: 0123456789 } \markup { \override #'(font-features . ("onum")) { Old Number Style: 0123456789 } } % Stylistic Alternates \markup { \override #'(font-features . ("salt 0")) { Stylistic Alternates 0: εφπρθ } } \markup { \override #'(font-features . ("salt 1")) { Stylistic Alternates 1: εφπρθ } } % Multiple features \markup { \override #'(font-features . ("onum" "smcp" "salt 1")) { Multiple features: Hello 0123456789 εφπρθ } }
-
ホワイトアウトに 2 つの新しいスタイルが使用できるようになりました。
outline
スタイルは、グリフの外側にある輪郭を近似し、ホワイトアウトはその外形を複数の場所に移動して作られます。rounded-box
スタイルは、角丸の長方形を使用します。デフォルトのbox
を含めた 3 つある全てのスタイルに対して、ホワイトアウトのthickness
をカスタマイズすることができます。単位は譜線の太さです。\markup { \combine \filled-box #'(-1 . 15) #'(-3 . 4) #1 \override #'(thickness . 3) \whiteout whiteout-box } \markup { \combine \filled-box #'(-1 . 24) #'(-3 . 4) #1 \override #'(style . rounded-box) \override #'(thickness . 3) \whiteout whiteout-rounded-box } \markup { \combine \filled-box #'(-1 . 18) #'(-3 . 4) #1 \override #'(style . outline) \override #'(thickness . 3) \whiteout whiteout-outline } \relative { \override Staff.Clef.whiteout-style = #'outline \override Staff.Clef.whiteout = 3 g'1 }
-
新しいマークアップ コマンド
\with-dimensions-from
が使用できるようになりました。これは、最初の引数にマークアップ オブジェクトを指定することで、そのマークアップの寸法を使用するもので、これにより\with-dimensions
をより簡単に使用することができます。\markup { \pattern #5 #Y #0 "x" \pattern #5 #Y #0 \with-dimensions-from "x" "f" \pattern #5 #Y #0 \with-dimensions-from "x" "g" \override #'(baseline-skip . 2) \column { \pattern #5 #X #0 "n" \pattern #5 #X #0 \with-dimensions-from "n" "m" \pattern #5 #X #0 \with-dimensions-from "n" "!" } }
-
新しいマークアップ コマンド
\draw-squiggle-line
が使用できるようになりました。thickness
,angularity
,height
andorientation
をオーバライドすることでカスタマイズできます。\markup \overlay { \draw-squiggle-line #0.5 #'(3 . 3) ##t \translate #'(3 . 3) \override #'(thickness . 4) \draw-squiggle-line #0.5 #'(3 . -3) ##t \translate #'(6 . 0) \override #'(angularity . -5) \draw-squiggle-line #0.5 #'(-3 . -3) ##t \translate #'(3 . -3) \override #'(angularity . 2) \override #'(height . 0.3) \override #'(orientation . -1) \draw-squiggle-line #0.2 #'(-3 . 3) ##t }
-
新しいマークアップ コマンド
\undertie
,\overtie
, また両方向の\tie
が使用できるようになりました。\markup { \undertie "undertied" \overtie "overtied" } m = { c''1 \prall -\tweak text \markup \tie "131" -1 } { \voiceOne \m \voiceTwo \m }
専門的な記譜法に関する新機能
声楽に関する改善
-
様々な合唱音楽に対応する柔軟なテンプレートが使用できるようになりました。シンプルな合唱譜を、ピアノ伴奏の有無や、2 段譜か 4 段譜かを選択して作成することができます。他のテンプレートとは異なり、このテンプレートは‘組み込み’であるため、使用するためにコピーし編集する必要はありません。その代わり、入力ファイル内で
\include
することによって使用します。詳細については、 Built-in templates を参照してください。 -
\addlyrics
関数が、Staff
を含む任意のコンテキストで使用できるようになりました。 -
\lyricsto
と\addLyrics
が‘調和’されました。これらの関数は、\lyrics
や\chords
が受け入れるような区切られた引数リストを受け入れるようになりました。後方互換性を追加し、音楽識別子 (例えば\mus
) を引数に取ることができるようになりました。convert-ly
のルールが追加され、余分に使用されている\lyricmode
を削除し、コンテキストを開始するコマンドと各種歌詞コマンドが組み合わせて使用されている場合には、通常\lyricsto
が最後に配置されるように変換されます。
フレットの無い / ある弦楽器に関する改善
-
タブ譜に使用できる新たな符頭スタイルが追加されました –
TabNoteHead.style = #'slash
です。 -
フレット図において、フレット間の距離と弦間の距離が個別に調整できるようになりました。
fret-diagram-details
のサブプロパティであるfret-distance
とstring-distance
を使用します。fretMrkp = \markup { \fret-diagram-terse #"x;x;o;2;3;2;" } \markuplist \override #'(padding . 2) \table #'(0 -1) { "default" \fretMrkp "fret-distance" \override #'(fret-diagram-details . ((fret-distance . 2))) \fretMrkp "string-distance" \override #'(fret-diagram-details . ((string-distance . 2))) \fretMrkp }
-
\fret-diagram-verbose
マークアップ コマンドを使用したフレット図において、点や括弧の色を個別に設定できるようになりました。\new Voice { c1^\markup { \override #'(fret-diagram-details . ( (finger-code . in-dot))) { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1 red) (place-fret 4 5 2 inverted) (place-fret 3 5 3 green) (place-fret 2 5 4 blue inverted) (place-fret 1 3 1 violet) (barre 5 1 3 )) } } c1^\markup { \override #'(fret-diagram-details . ( (finger-code . below-string))) { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1 red parenthesized) (place-fret 4 5 2 yellow default-paren-color parenthesized) (place-fret 3 5 3 green) (place-fret 2 5 4 blue ) (place-fret 1 3 1) (barre 5 1 3)) } } }
-
\fret-diagram-verbose
マークアップ コマンドを使用したフレット図において、fret-digrams-details
のプロパティが 2 つ追加されました。fret-label-horizontal-offset
はfret-label-indication
に影響し、paren-padding
は、点とそれを囲む括弧との間にある空白を調整します。\new Voice { c1^\markup { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1) (place-fret 4 5 2) (place-fret 3 5 3) (place-fret 1 6 4 parenthesized) (place-fret 2 3 1) (barre 5 2 3)) } c1^\markup { \override #'(fret-diagram-details . ( (fret-label-horizontal-offset . 2) (paren-padding . 0.25))) { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1) (place-fret 4 5 2) (place-fret 3 5 3) (place-fret 1 6 4 parenthesized) (place-fret 2 3 1) (barre 5 2 3)) } } }
-
(リュートのタブ譜に使用する) 追加の低音弦に対応しました。
m = { f'4 d' a f d a, g, fis, e, d, c, \bar "|." } \score { \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") } } }
-
弦番号をローマ数字で表示することができるようになりました
(例えば、フレットの無い弦楽器で使用します)。
c2\2 \romanStringNumbers c\2 \arabicStringNumbers c1\3
-
TabStaff
が、ベンディングに使用する微分音を表示できるようになりました。\layout { \context { \Score supportNonIntegerFret = ##t } } mus = \relative { c'4 cih d dih } << \new Staff << \clef "G_8" \mus >> \new TabStaff \mus >>
和音の記譜法に関する改善
-
\chordmode
で< >
や<< >>
表記を使用することができるようになりました。 -
コード ネームの
text
プロパティをオーバライドすることができるようになりました。<< \new ChordNames \chordmode { a' b c:7 \once \override ChordName.text = #"foo" d } >>
入出力に関する新機能
入力ファイルの構造に関する改善
-
\header
ブロックの内容を変数に保存し、音楽関数や Scheme 関数の引数として、または#{…#}
構造の内容として使用できるようになりました。これらは Guile モジュールとして表現されます。\book
,\bookpart
,\score
,\with
,\layout
,\midi
,\paper
ブロックも同様に渡すことができますが、これらは異なるデータ型で表現されています。
タイトルとヘッダに関する改善
-
page-number-type
paper 変数をセットすることで、ページ番号をローマ数字で表示できるようになりました。
入力ファイルに関する改善
-
新しいコマンド
\tagGroup
が追加されました。これは\keepWithTag
や\removeWithTag
とセットで使用します。例えば:\tagGroup #'(violinI violinII viola cello)
で‘タグ’のリストを宣言し、それらが一つの‘タグ グループ’を作ります。
\keepWithTag #'violinI
は、‘violinI’ が属するタグ グループ内のタグにのみ影響します。
violinI の属するグループのタグが付いていて、しかし violinI の付いていない音楽が全て削除されます。
出力に関する改善
- 生成された PDF ファイルに LilyPond ソース ファイルを埋め込むことができるようになりました。この実験的な機能はデフォルトで無効化されており、また隠されたコンテンツを含む PDF ドキュメントにはセキュリティ上のリスクがあるため、安全な機能ではありません。全ての PDF ビューアが埋め込みドキュメントを扱えるわけではないことに注意してください (扱えない場合、PDF 出力は通常通りとなり、ソース ファイルは不可視のままです)。この機能は PDF バックエンドでのみ有効です。
-
output-classic-framework
プロシージャと-dclip-systems
がSVG
バックエンドで使用できるようになりました。 -
-dcrop
引数が追加されました。SVG
やPDF
出力において、余白や改ページのない楽譜を生成します。 -
SVG 出力において、
output-attributes
Grob プロパティがid
Grob プロパティの代わりに使用できるようになりました。このプロパティは連想配列で定義された複数の属性をセットすることができます。例えば、#'((id . 123) (class . foo) (data-whatever . “bar”))
は SVG ファイルに置いて以下のグループ タグを作り出します:<g id=“123” class=“foo” data-whatever=“bar”> … </g>
-
PostScript の線幅補正の機能は自動で適用されなくなりました。この機能は PostScript デバイスの裁量で適用されるようになります
(デフォルトでは、Ghostscript は 150dpi までのラスタ画像を生成する際に有効にします)。これが有効な場合、符幹や小節線などに対して、線幅補正に適したより複雑な描画アルゴリズムが使用されます。
線幅補正はコマンドライン オプション ‘-dstrokeadjust’ を LilyPond に指定することで強制することができます。
PDF
ファイルを生成する際には、このオプションを有効にするとPDF
プレビューの見た目が著しく良くなりますが、ファイルサイズが非常に大きくなります。高い解像度での印刷の見た目には影響しません。 -
新しい関数
make-path-stencil
が追加されました。これは、相対座標と絶対座標両方のpath
コマンドをサポートします:lineto
,rlineto
,curveto
,rcurveto
,moveto
,rmoveto
,closepath
. この関数は SVG 標準の path コマンドで用いられる ‘1 文字’の構文もサポートしています:L
,l
,C
,c
,M
,m
,Z
,z
. 更に、このコマンドは従来のmake-connected-path-stencil
関数との後方互換性を持ちます。‘scm/stencil.scm’ も参照してください。
MIDI に関する改善
-
標準的なアーティキュレーションが MIDI 出力に反映されるようになりました。アクセントやマルカートは音量を大きくし、スタッカート、スタッカーティシモ、ポルタートは長さを短くします。ブレス記号は前の音符を短くします。
この挙動は
ArticulationEvent
のmidiLength
やmidiExtraVelocity
プロパティを変更することでカスタマイズできます。‘script-init.ly’ に例があります。 -
ブレス記号の MIDI 出力が改善されました。タイで繋がれた音符の後にブレス記号がある場合、タイの最後の音符のみが短くなります。つまり、
{ c4~ c8 \breathe }
は{ c4 r8 }
ではなく{ c4~ c16 r }
のようになります。こうすることにより、アーティキュレーションとの一貫性が保たれるようになり、また人間がタイの後にあるブレスを解釈した際の挙動に近くなります。更に、複数のパートで異なる長さの音符を演奏し、同じ位置にブレス記号がある場合に、タイミングが揃えられることになります。 -
Staff.midiExpression
コンテキスト プロパティを使用することで、MIDI チャンネルの‘エクスプレッション レベル’を設定できるようになりました。これを使用すると、音符が持続中であっても音量を変化させることができます (非常に‘低レベルな’方法ではありますが)。このプロパティは0.0
から1.0
までの値を取ります。\score { \new Staff \with { midiExpression = #0.6 midiInstrument = #"clarinet" } << { a'1~ a'1 } { \set Staff.midiExpression = #0.7 s4\f\< \set Staff.midiExpression = #0.8 s4 \set Staff.midiExpression = #0.9 s4 \set Staff.midiExpression = #1.0 s4 \set Staff.midiExpression = #0.9 s4\> \set Staff.midiExpression = #0.8 s4 \set Staff.midiExpression = #0.7 s4 \set Staff.midiExpression = #0.6 s4\! } >> \midi { } }
-
MIDI ファイルを出力する際、シーケンスの名前に
\header
ブロックのtitle
が使われるようになりました (\score
レベルでtitle
が存在しない場合、外側にある\bookpart
,\book
, トップ レベルの\header
ブロックを探し、最初にあるものが使用されます)。また、\header
に新しいmidititle
フィールドが追加され、title
フィールドとは別に MIDI シーケンスの名前をオーバライドできるようになりました (例えば、title
がマークアップ コードを含み、プレーン テキストに自動で変換された結果が望ましくない場合に用いることができます)。 - LilyPond のデフォルトである Emmentaler 以外の‘音楽’フォントをより簡単に使用できるようになりました。更なる情報は、 Replacing the notation font を参照してください。
音楽の抽出に関する改善
-
\displayLilyMusic
と、それが使用する Scheme 関数は、音長を省略しなくなりました。これは以下のような例において、音長が単独で出現した際の誤読を防ぎます:{ c4 d4 8 }
スペーシングに関する新機能
改ページに関する改善
-
新しい改ページ関数が 2 つ追加されました。
ly:one-page-breaking
は、ページの高さを音楽に合わせて自動的に調節し、全てが 1 ページに収まるようにします。ly:one-line-auto-height-breaking
は、ly:one-line-breaking
と同様に音楽を 1 行に配置してページの幅を調節しますが、音楽に合わせて高さも自動的に調節するところが異なります。
縦方向と横方向のスペーシングに関する改善
-
NonMusicalPaperColumn.line-break-system-details
を用いて、システムを現在の位置からの相対値で移動することができるようになりました。縦方向にも横方向にも移動できます。この機能は、各システムの縦方向の位置のデフォルトに対して、細かな調整を行う際に特に有用です。詳しくは Explicit staff and system positioning を参照してください。 - 小さいもの (Funk, Walker) と通常サイズのもの (Aiken など) の両方のシェイプ ノートで‘ミ’の符頭のスペーシングが改善され、他の階名の音符と同じ幅を持つようになりました。また、‘ソ’の符頭も見た目が改善されました。
-
LeftEdge
にY-extent
(縦方向) を定義できるようになりました。 LeftEdge を参照してください。 - Grob とその親の揃え位置を別に設定することができるようになり、Grob の配置方法がより柔軟になりました。例えば、Grob の‘左’端をその親の‘中央’に揃えることができるようになります。
-
TextScript
をDynamicText
やLyricText
と共に使用した際の、水平方向の揃え位置が改善されました。
デフォルトの変更に関する新機能
-
\override
,\revert
,\set
,\unset
の全てに対して、一回限りの設定を示す\once
接頭辞を付加することができるようになりました。\relative { c'4 d \override NoteHead.color = #red e4 f | \once \override NoteHead.color = #green g4 a \once \revert NoteHead.color b c | \revert NoteHead.color f2 c | }
内部インタフェースと関数に関する新機能
-
同時に出現するスラーやフレージング スラーを区別するための音楽プロパティや Grob プロパティ
spanner-id
が、文字列ではなくキーを取るようになりました。これにより、文字列以外に非負整数やシンボルを取ることができます (発想記号に関する改善にある 新たなコマンド\=X
が追加されました も参照してください)。 -
‘alternativeRestores’ プロパティに名前がセットされているコンテキスト プロパティの値は、別の入れ替え部分が始まった時に、
入れ替え部分が始まる前の値に戻されるようになりました。
デフォルトのセットでは以下のプロパティを戻すようになっています。‘拍子記号’:
\time 3/4 \repeat volta 2 { c2 e4 | } \alternative { { \time 4/4 f2 d | } { f2 d4 | } } g2. |
‘小節内の位置’:
\time 3/4 \repeat volta 2 { c2 e4 | } \alternative { { \time 4/4 \set Timing.measurePosition = #(ly:make-moment -1/2) f2 | } { f2 d4 | } } g2. |
‘コード ネームの変更’:
<< \new ChordNames { \set chordChanges = ##t \chordmode { c1:m d:m c:m d:m } } \new Staff { \repeat volta 2 { \chordmode { c1:m } } \alternative { { \chordmode { d:m } } { \chordmode { c:m } } } \chordmode { d:m } } >>
-
define-music-function
,define-event-function
,define-scheme-function
,define-void-function
で定義された LilyPond 関数は、通常の Scheme プロシージャであるかのように Scheme から直接呼び出せるようになりました。引数のチェックやマッチングは、LilyPond 入力から呼び出された時と同じように動作します。この変更により、省略可能な引数についてデフォルト値を挿入する機能が追加されました。省略可能な引数列を明示的にスキップするために、実際の引数リストの中で\default
の代わりに*unspecified*
を使用することができるようになります。 -
現在の入力位置やパーサは Guile の fluid に格納されるようになり、
(*location*)
,(*parser*)
という関数呼び出しで参照できるようになりました。これにより、明示的にparser
引数を取る必要のあった関数の多くはその必要がなくなりました。define-music-function
,define-event-function
,define-scheme-function
,define-void-function
で定義された関数は、parser
,location
引数を取る必要がなくなりました。これらで定義された関数に関しては、しばらくは後方互換性を維持するために、
parser
,location
を引数に取る従来の使い方も認識します。 - Scheme 関数や識別子を出力定義内で使用することができるようになりました。
- Scheme 式を和音構造内で使用することができるようになりました。
-
音楽関数 (あるいは Scheme 関数や void 関数) やマークアップ コマンドの定義に
\etc
が使用できるようになりました。定義する関数やコマンドの内容がオーバライドのみである場合や、音楽関数やマークアップ コマンドの最後に受け取った引数を渡すのみである場合に、引数を渡す位置に\etc
を記述することで定義を簡略化できます。\markup bold-red = \markup \bold \with-color #red \etc highlight = \tweak font-size 3 \tweak color #red \etc \markup \bold-red "text" \markuplist \column-lines \bold-red { One Two } { c' \highlight d' e'2-\highlight -! }
-
FretBoard.stencil
のようなドットで区切られたシンボルのリストはバージョン 2.18で既にサポートされていますが、符号なし整数を含むこともできるようになりました。また、コンマで区切られた形もサポートするようになりました。これにより以下のような表記が可能になります:{ \time 2,2,1 5/8 g'8 8 8 8 8 }
や
\tagGroup violin,oboe,bassoon
-
上のようなリストは、代入文、set, override に対しても使用することができます。以下のような表記が可能になります:
{ \unset Timing.beamExceptions \set Timing.beatStructure = 1,2,1 g'8 8 8 8 8 8 8 8 }
-
連想配列の要素は個別に割り当てることができるようになっています
(例えば、
system-system-spacing.basic-distance
のような paper 変数) が、以下のような形で参照することもできるようになりました:\paper { \void \displayScheme \system-system-spacing.basic-distance }
先の変更と合わせることで、
violin.1
のような疑似変数をセットしたり参照したりすることができるようになりました。 -
マークアップ リスト コマンド
\table
が使用できるようになりました。それぞれの列に対して異なる揃え位置を指定することができます。\markuplist { \override #'(padding . 2) \table #'(0 1 0 -1) { \underline { center-aligned right-aligned center-aligned left-aligned } one "1" thousandth "0.001" eleven "11" hundredth "0.01" twenty "20" tenth "0.1" thousand "1000" one "1.0" } }
-
InstrumentName
がtext-interface
をサポートするようになりました。 -
BarLine
Grob のthin-kern
プロパティの名前がsegno-kern
に変更されました。 -
KeyCancellation
Grob が合図の音部記号を無視するようになりました (KeySignature
と同様の挙動になりました)。 -
\once \unset
をサポートしました。
古いニュースに関しては、http://lilypond.org/doc/v2.18/Documentation/changes/, http://lilypond.org/doc/v2.16/Documentation/changes/ を参照するか、ドキュメントのトップに戻ってください。
他の言語: English, español, français, italiano
About automatic language selection.