[ << Top ] | [トップ][目次] | [ Rhythms >> ] |
[ < Top ] | [ 上へ : Top ] | [ Pitches: 音域をボイスごとに追加する > ] |
Pitches
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches ] | [ 上へ : Pitches ] | [ Pitches: オッターバを単一のボイスに対して適用する > ] |
音域をボイスごとに追加する
音域をボイスごとに追加することができます。この場合、衝突を避けるために
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 } >>
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 音域をボイスごとに追加する ] | [ 上へ : Pitches ] | [ Pitches: Aiken head thin variant noteheads > ] |
オッターバを単一のボイスに対して適用する
譜に 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 } >> }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: オッターバを単一のボイスに対して適用する ] | [ 上へ : Pitches ] | [ Pitches: 連桁で繋がれた音符の符幹の長さを変更する > ] |
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 } }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: Aiken head thin variant noteheads ] | [ 上へ : Pitches ] | [ Pitches: 音域 > ] |
連桁で繋がれた音符の符幹の長さを変更する
連桁で繋がれた音符の符幹の長さは、Stem.details
の
beamed-lengths
プロパティをオーバライドすることで変更できます。引数として単一の値が与えられた場合、設定された長さは連桁内の全ての音符に適用されます。複数の引数が与えられた場合、1 つ目は 8 分音符に対して、2 つ目は 16 分音符に対してというように適用されます。最後の引数は、それより音価の短い音符全てに対しても適用されます。整数でない値を用いることができます。
\relative c'' { \override Stem.details.beamed-lengths = #'(2) a8[ a] a16[ a] a32[ a] \override Stem.details.beamed-lengths = #'(8 10 12) a8[ a] a16[ a] a32[ a] r8 \override Stem.details.beamed-lengths = #'(8) a8[ a] \override Stem.details.beamed-lengths = #'(8.5) a8[ a] \revert Stem.details.beamed-lengths a8[ a] a16[ a] a32[ a] r16 }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 連桁で繋がれた音符の符幹の長さを変更する ] | [ 上へ : Pitches ] | [ Pitches: Ambitus after key signature > ] |
音域
音域を表示します。
最高音や最低音が調号に含まれない場合には臨時記号が表示されます。Grob AmbitusNoteHead
には加線を含みます。
\layout { \context { \Voice \consists "Ambitus_engraver" } } << \new Staff { \relative c' { \time 2/4 c4 f' } } \new Staff { \relative c' { \time 2/4 \key d \major cis4 as' } } >>
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 音域 ] | [ 上へ : Pitches ] | [ Pitches: 複数のボイスを持つ譜での音域 > ] |
Ambitus after key signature
By default, ambitus are positioned at the left of the clef. The
\ambitusAfter
function allows for changing this
placement. Syntax is \ambitusAfter grob-interface
(see
Graphical Object Interfaces for a list of possible values for
grob-interface
.)
A common use case is printing the ambitus between key signature and time signature.
\new Staff \with { \consists Ambitus_engraver } \relative { \ambitusAfter key-signature \key d \major es'8 g bes cis d2 }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: Ambitus after key signature ] | [ 上へ : Pitches ] | [ Pitches: 音階に応じて異なる符頭のスタイルを適用する > ] |
複数のボイスを持つ譜での音域
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 } >>
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 複数のボイスを持つ譜での音域 ] | [ 上へ : Pitches ] | [ Pitches: メロディに合わせて譜の中央にある音符の符幹の向きを自動で変更する > ] |
音階に応じて異なる符頭のスタイルを適用する
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 } }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 音階に応じて異なる符頭のスタイルを適用する ] | [ 上へ : Pitches ] | [ Pitches: オッターバ囲みのテキストを変更する > ] |
メロディに合わせて譜の中央にある音符の符幹の向きを自動で変更する
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 } }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: メロディに合わせて譜の中央にある音符の符幹の向きを自動で変更する ] | [ 上へ : Pitches ] | [ Pitches: 音域の隙間を変更する > ] |
オッターバ囲みのテキストを変更する
内部的には、\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 }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: オッターバ囲みのテキストを変更する ] | [ 上へ : Pitches ] | [ Pitches: 譜線の音程を変更する > ] |
音域の隙間を変更する
音域表示において、デフォルトの符頭と線との隙間を変更することができます。
\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'' }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 音域の隙間を変更する ] | [ 上へ : Pitches ] | [ Pitches: 音部記号を移動する > ] |
譜線の音程を変更する
音符の位置を変更するためには、staffLineLayoutFunction
を使用します。このスニペットは、これを ly:pitch-semitones
にセットし、半音が間隔 1 つ分になるクロマティック スケールを作り出しています。
scale = \relative c' { a4 ais b c cis4 d dis e f4 fis g gis a1 } \new Staff \with { \remove "Accidental_engraver" staffLineLayoutFunction = #ly:pitch-semitones } { << \scale \context NoteNames { \set printOctaveNames = ##f \scale } >> }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 譜線の音程を変更する ] | [ 上へ : Pitches ] | [ Pitches: ピッチに応じて符頭の色を変更する > ] |
音部記号を移動する
音部記号をオクターブだけでなく、任意の位置に移動することができます。
\relative c' { \clef treble c4 c c c \clef "treble_8" c4 c c c \clef "treble_5" c4 c c c \clef "treble^3" c4 c c c }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 音部記号を移動する ] | [ 上へ : Pitches ] | [ Pitches: 異なるピッチの音符列を作成する > ] |
ピッチに応じて符頭の色を変更する
符頭の色を、ピッチや名前に応じて変更することができます: この例で使われている関数では、異名同音を区別しています。
%Association list of pitches to colors. #(define color-mapping (list (cons (ly:make-pitch 0 0 NATURAL) (x11-color 'red)) (cons (ly:make-pitch 0 0 SHARP) (x11-color 'green)) (cons (ly:make-pitch 0 1 FLAT) (x11-color 'green)) (cons (ly:make-pitch 0 2 NATURAL) (x11-color 'red)) (cons (ly:make-pitch 0 2 SHARP) (x11-color 'green)) (cons (ly:make-pitch 0 3 FLAT) (x11-color 'red)) (cons (ly:make-pitch 0 3 NATURAL) (x11-color 'green)) (cons (ly:make-pitch 0 4 SHARP) (x11-color 'red)) (cons (ly:make-pitch 0 5 NATURAL) (x11-color 'green)) (cons (ly:make-pitch 0 5 FLAT) (x11-color 'red)) (cons (ly:make-pitch 0 6 SHARP) (x11-color 'red)) (cons (ly:make-pitch 0 1 NATURAL) (x11-color 'blue)) (cons (ly:make-pitch 0 3 SHARP) (x11-color 'blue)) (cons (ly:make-pitch 0 4 FLAT) (x11-color 'blue)) (cons (ly:make-pitch 0 5 SHARP) (x11-color 'blue)) (cons (ly:make-pitch 0 6 FLAT) (x11-color 'blue)))) %Compare pitch and alteration (not octave). #(define (pitch-equals? p1 p2) (and (= (ly:pitch-alteration p1) (ly:pitch-alteration p2)) (= (ly:pitch-notename p1) (ly:pitch-notename p2)))) #(define (pitch-to-color pitch) (let ((color (assoc pitch color-mapping pitch-equals?))) (if color (cdr color)))) #(define (color-notehead grob) (pitch-to-color (ly:event-property (event-cause grob) 'pitch))) \score { \new Staff \relative c' { \override NoteHead.color = #color-notehead c8 b d dis ees f g aes } }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: ピッチに応じて符頭の色を変更する ] | [ 上へ : Pitches ] | [ Pitches: カスタマイズされた調号を作成する > ] |
異なるピッチの音符列を作成する
同じ音符列が異なる音高で複数出現する音楽では、次の音楽関数が便利です。これは音符を引数として取り、その音高のみが使用されます。この例では Holst の The Planets の一曲、Mars に使用されるリズムを作り出しています。
rhythm = #(define-music-function (p) (ly:pitch?) "Make the rhythm in Mars (the Planets) at the given pitch" #{ \tuplet 3/2 { $p 8 8 8 } 4 4 8 8 4 #}) \new Staff { \time 5/4 \rhythm c' \rhythm c'' \rhythm g }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 異なるピッチの音符列を作成する ] | [ 上へ : Pitches ] | [ Pitches: Direction of merged 'fa' shape note heads > ] |
カスタマイズされた調号を作成する
LilyPond はカスタマイズされた調号をサポートしています。この例では、フラットを広範囲に表示する D マイナーを作成しています。
\new Staff \with { \override StaffSymbol.line-count = #8 \override KeySignature.flat-positions = #'((-7 . 6)) \override KeyCancellation.flat-positions = #'((-7 . 6)) % presumably sharps are also printed in both octaves \override KeySignature.sharp-positions = #'((-6 . 7)) \override KeyCancellation.sharp-positions = #'((-6 . 7)) \override Clef.stencil = # (lambda (grob)(grob-interpret-markup grob #{ \markup\combine \musicglyph "clefs.C" \translate #'(-3 . -2) \musicglyph "clefs.F" #})) clefPosition = #3 middleCPosition = #3 middleCClefPosition = #3 } { \key d\minor f bes, f bes, }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: カスタマイズされた調号を作成する ] | [ 上へ : Pitches ] | [ Pitches: Force a cancellation natural before accidentals > ] |
Direction of merged ’fa’ shape note heads
Using property NoteCollision.fa-merge-direction
, the
direction of ‘fa’ shape note heads (‘fa’, ‘faThin’, etc.)
can be controlled independently of the stem direction if two
voices with the same pitch and different stem directions are
merged. If this property is not set, the ‘down’ glyph variant
is used.
{ \clef bass << { \aikenHeads f2 \override Staff.NoteCollision.fa-merge-direction = #UP f2 } \\ { \aikenHeads f2 f2 } >> }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: Direction of merged 'fa' shape note heads ] | [ 上へ : Pitches ] | [ Pitches: 音部記号を強制的に表示する > ] |
Force a cancellation natural before accidentals
The following example shows how to force a natural sign before an accidental.
\relative c' { \key es \major bes c des \tweak Accidental.restore-first ##t eis }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: Force a cancellation natural before accidentals ] | [ 上へ : Pitches ] | [ Pitches: ランダムな音符を生成する > ] |
音部記号を強制的に表示する
音部記号がその前に表示されており、別の音部記号に変化していない場合、\clef
コマンドで音部記号を指定しても何も表示されません。\set Staff.forceClef = ##t
を指定することで、音部記号を強制的に再表示させることができます。
\relative c' { \clef treble c1 \clef treble c1 \set Staff.forceClef = ##t c1 \clef treble c1 }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 音部記号を強制的に表示する ] | [ 上へ : Pitches ] | [ Pitches: タイで繋がれた音符が改行した際の臨時記号を隠す > ] |
ランダムな音符を生成する
この Scheme ベースのスニペットは、24 の (あるいは必要な分の) ランダムな音符を、現在の時間から (あるいは毎回同じ結果を得るために指定した数から) 生成します。別の音符列を生成したい場合は、数字を変更します。
\score { { $(let ((random-state (seed->random-state (current-time)))) (make-sequential-music (map (lambda (x) (let ((idx (random 12 random-state))) (make-event-chord (list (make-music 'NoteEvent 'duration (ly:make-duration 2 0 1/1) 'pitch (ly:make-pitch (quotient idx 7) (remainder idx 7) 0)))))) (make-list 24)))) } }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: ランダムな音符を生成する ] | [ 上へ : Pitches ] | [ Pitches: 音部記号の変更を大きく表示する > ] |
タイで繋がれた音符が改行した際の臨時記号を隠す
タイで繋がれた音符が改行した際の臨時記号を隠す方法を示しています。
\relative c'' { \override Accidental.hide-tied-accidental-after-break = ##t cis1~ cis~ \break cis }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: タイで繋がれた音符が改行した際の臨時記号を隠す ] | [ 上へ : Pitches ] | [ Pitches: マカームの例 > ] |
音部記号の変更を大きく表示する
音部記号が変更される際、その音部記号は行頭のものよりも小さく表示されます。これは full-size-change
で変更することができます。
\relative c' { \clef "treble" c1 \clef "bass" c1 \clef "treble" c1 \override Staff.Clef.full-size-change = ##t \clef "bass" c1 \clef "treble" c1 \revert Staff.Clef.full-size-change \clef "bass" c1 \clef "treble" c1 }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 音部記号の変更を大きく表示する ] | [ 上へ : Pitches ] | [ Pitches: オッターヴァのスパナの傾きを変更する > ] |
マカームの例
マカームはトルコ発祥の旋法で、1/9 音の微分音を使用します。ピッチの名前や調号についての詳細は、初期化ファイル ‘ly/makam.ly’ を参照してください。
% Initialize makam settings \include "makam.ly" \relative c' { \set Staff.keyAlterations = #`((6 . ,(- KOMA)) (3 . ,BAKIYE)) c4 cc db fk gbm4 gfc gfb efk fk4 db cc c }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: マカームの例 ] | [ 上へ : Pitches ] | [ Pitches: 非伝統的な調号 > ] |
オッターヴァのスパナの傾きを変更する
オッターヴァのスパナの傾きを変更することができます。
\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 }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: オッターヴァのスパナの傾きを変更する ] | [ 上へ : Pitches ] | [ Pitches: 演奏を容易にする記譜法で数字を使用する > ] |
非伝統的な調号
広く使われている \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 | }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 非伝統的な調号 ] | [ 上へ : Pitches ] | [ Pitches: オーケストラ、コーラス、ピアノのテンプレート > ] |
演奏を容易にする記譜法で数字を使用する
演奏を容易にする記譜法では、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 }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 演奏を容易にする記譜法で数字を使用する ] | [ 上へ : Pitches ] | [ Pitches: 追加のナチュラル記号が自動で追加されないようにする > ] |
オーケストラ、コーラス、ピアノのテンプレート
このテンプレートは StaffGroup
と GrandStaff
コンテキストをネストさせて用いることで、楽器のサブ グループを表示しています。また、\transpose
を使用して、移調楽器の音符をコンサート ピッチの状態で変数に格納しています。
#(set-global-staff-size 17) \paper { indent = 3.0\cm % add space for instrumentName short-indent = 1.5\cm % add less space for shortInstrumentName } fluteMusic = \relative c' { \key g \major g'1 b } % Pitches as written on a manuscript for Clarinet in A % are transposed to concert pitch. clarinetMusic = \transpose c' a \relative c'' { \key bes \major bes1 d } trumpetMusic = \relative c { \key g \major g''1 b } % Key signature is often omitted for horns hornMusic = \transpose c' f \relative c { d'1 fis } percussionMusic = \relative c { \key g \major g1 b } sopranoMusic = \relative c'' { \key g \major g'1 b } sopranoLyrics = \lyricmode { Lyr -- ics } altoIMusic = \relative c' { \key g \major g'1 b } altoIIMusic = \relative c' { \key g \major g'1 b } altoILyrics = \sopranoLyrics altoIILyrics = \lyricmode { Ah -- ah } tenorMusic = \relative c' { \clef "treble_8" \key g \major g1 b } tenorLyrics = \sopranoLyrics pianoRHMusic = \relative c { \key g \major g''1 b } pianoLHMusic = \relative c { \clef bass \key g \major g1 b } violinIMusic = \relative c' { \key g \major g'1 b } violinIIMusic = \relative c' { \key g \major g'1 b } violaMusic = \relative c { \clef alto \key g \major g'1 b } celloMusic = \relative c { \clef bass \key g \major g1 b } bassMusic = \relative c { \clef "bass_8" \key g \major g,1 b } \score { << \new StaffGroup = "StaffGroup_woodwinds" << \new Staff = "Staff_flute" \with { instrumentName = "Flute" } \fluteMusic \new Staff = "Staff_clarinet" \with { instrumentName = \markup { \concat { "Clarinet in B" \flat } } } % Declare that written Middle C in the music % to follow sounds a concert B flat, for % output using sounded pitches such as MIDI. %\transposition bes % Print music for a B-flat clarinet \transpose bes c' \clarinetMusic >> \new StaffGroup = "StaffGroup_brass" << \new Staff = "Staff_hornI" \with { instrumentName = "Horn in F" } % \transposition f \transpose f c' \hornMusic \new Staff = "Staff_trumpet" \with { instrumentName = "Trumpet in C" } \trumpetMusic >> \new RhythmicStaff = "RhythmicStaff_percussion" \with { instrumentName = "Percussion" } << \percussionMusic >> \new PianoStaff \with { instrumentName = "Piano" } << \new Staff { \pianoRHMusic } \new Staff { \pianoLHMusic } >> \new ChoirStaff = "ChoirStaff_choir" << \new Staff = "Staff_soprano" \with { instrumentName = "Soprano" } \new Voice = "soprano" \sopranoMusic \new Lyrics \lyricsto "soprano" { \sopranoLyrics } \new GrandStaff = "GrandStaff_altos" \with { \accepts Lyrics } << \new Staff = "Staff_altoI" \with { instrumentName = "Alto I" } \new Voice = "altoI" \altoIMusic \new Lyrics \lyricsto "altoI" { \altoILyrics } \new Staff = "Staff_altoII" \with { instrumentName = "Alto II" } \new Voice = "altoII" \altoIIMusic \new Lyrics \lyricsto "altoII" { \altoIILyrics } >> \new Staff = "Staff_tenor" \with { instrumentName = "Tenor" } \new Voice = "tenor" \tenorMusic \new Lyrics \lyricsto "tenor" { \tenorLyrics } >> \new StaffGroup = "StaffGroup_strings" << \new GrandStaff = "GrandStaff_violins" << \new Staff = "Staff_violinI" \with { instrumentName = "Violin I" } \violinIMusic \new Staff = "Staff_violinII" \with { instrumentName = "Violin II" } \violinIIMusic >> \new Staff = "Staff_viola" \with { instrumentName = "Viola" } \violaMusic \new Staff = "Staff_cello" \with { instrumentName = "Cello" } \celloMusic \new Staff = "Staff_bass" \with { instrumentName = "Double Bass" } \bassMusic >> >> \layout { } }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: オーケストラ、コーラス、ピアノのテンプレート ] | [ 上へ : Pitches ] | [ Pitches: 調号が変化する際にナチュラル記号が表示されないようにする > ] |
追加のナチュラル記号が自動で追加されないようにする
伝統的な譜刻のスタイルに合わせて、前に出現したダブルシャープやダブルフラットがシャープやフラットでキャンセルされた場合には、ナチュラル記号が表示されます。これを現代の慣習に合わせて変更するには、Staff
コンテキストの
extraNatural
プロパティを f
に設定します。
\relative c'' { aeses4 aes ais a \set Staff.extraNatural = ##f aeses4 aes ais a }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 追加のナチュラル記号が自動で追加されないようにする ] | [ 上へ : Pitches ] | [ Pitches: 移調を含む他のボイスの引用 > ] |
調号が変化する際にナチュラル記号が表示されないようにする
調号が変化する際、前の調号を打ち消すナチュラル記号が自動的に表示されます。これは 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 }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 調号が変化する際にナチュラル記号が表示されないようにする ] | [ 上へ : Pitches ] | [ Pitches: 調号の取り消し表示を新たな調号から離す > ] |
移調を含む他のボイスの引用
音楽の引用では、ソースとターゲットの両方で移調が考慮されます。この例では、全ての楽器が絶対ピッチとしてミドル C を演奏します。ターゲットは
F 管の楽器です。ターゲットとなるパート内で \transpose
を用いて移調することができ、この場合は全てのピッチが移調されます
(訳注: 以前は引用を含めたピッチが移調されていましたが、2.18 時点で挙動が変更されており、引用のピッチが変更されないようになっています)。
\addQuote clarinet { \transposition bes \repeat unfold 8 { d'16 d' d'8 } } \addQuote sax { \transposition es' \repeat unfold 16 { a8 } } quoteTest = { % french horn \transposition f g'4 << \quoteDuring "clarinet" { \skip 4 } s4^"clar." >> << \quoteDuring "sax" { \skip 4 } s4^"sax." >> g'4 } { \new Staff \with { instrumentName = \markup { \column { Horn "in F" } } } \quoteTest \transpose c' d' << \quoteTest s4_"up a tone" >> }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 移調を含む他のボイスの引用 ] | [ 上へ : Pitches ] | [ Pitches: 臨時記号の数が最小になるようにピッチを移調する ("スマート" トランスポーズ) > ] |
調号の取り消し表示を新たな調号から離す
デフォルトでは、調号が変更される際のナチュラルによる取り消し表示は、新たな調号のすぐ隣に配置されます。この挙動は、BreakAlignment
Grob の
break-align-orders
プロパティをオーバライドすることで変更できます。
break-align-orders
は長さ 3 のベクトルで、それぞれが改行可能なアイテムを要素とした quote リストを取ります。この例では
2 つ目のリストのみを変更しており、key-cancellation
を staff-bar
の前に移動しています。2 番目の要素はシステムの途中における配置に影響し、行頭あるいは行末には影響しません。
\new Staff { \override Score.BreakAlignment.break-align-orders = ##((left-edge ambitus breathing-sign clef staff-bar key-cancellation key-signature time-signature custos) (left-edge ambitus breathing-sign clef key-cancellation staff-bar key-signature time-signature custos) (left-edge ambitus breathing-sign clef key-cancellation key-signature staff-bar time-signature custos)) \key des \major c'1 \bar "||" \key bes \major c'1 }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 調号の取り消し表示を新たな調号から離す ] | [ 上へ : Pitches ] | [ Pitches: Turkish Makam example > ] |
臨時記号の数が最小になるようにピッチを移調する ("スマート" トランスポーズ)
この例は、臨時記号の数が最小になるように、異名同音を置き換える 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 { } }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 臨時記号の数が最小になるようにピッチを移調する ("スマート" トランスポーズ) ] | [ 上へ : Pitches ] | [ Pitches: 音部記号のプロパティを調整する > ] |
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 | }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: Turkish Makam example ] | [ 上へ : Pitches ] | [ Pitches: autoChange を 2 つ以上のボイスで使用する > ] |
音部記号のプロパティを調整する
音部記号のグリフ、位置、オクターブ記号を変更するだけでは、変更後の音符の位置は変更されません。調号を正しい位置に表示するためには、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 }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 音部記号のプロパティを調整する ] | [ 上へ : Pitches ] | [ Rhythms > ] |
autoChange を 2 つ以上のボイスで使用する
autoChange
は 2 つ以上のボイスで使用することができます。
\score { \new PianoStaff << \new Staff = "up" { << \set Timing.beamExceptions = #'() \set Timing.beatStructure = #'(4) \new Voice { \voiceOne \autoChange \relative c' { g8 a b c d e f g g,8 a b c d e f g } } \new Voice { \voiceTwo \autoChange \relative c' { g8 a b c d e f g g,,8 a b c d e f g } } >> } \new Staff = "down" { \clef bass } >> }
[ << Pitches ] | [トップ][目次] | [ Rhythms >> ] |
[ < Pitches: 音部記号のプロパティを調整する ] | [ 上へ : Pitches ] | [ Rhythms > ] |