| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Creating MIDI output
LilyPond は MIDI (Musical Instrument Digital Interface) 標準に従うファイルを出力することが出来るため、音楽の出力を聴いてチェックすることができます (MIDI を解釈できるアプリケーションやデバイスが必要です)。MIDI 出力を聞くことで、間違えて入力された音符や、臨時記号の欠落などのミスを発見しやすくなります。
MIDI ファイルは (AAC, MP3, Vorbis ファイルのような) 音を含みません。これらから音を作り出すためには、追加のソフトウェアが必要です。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Supported notation for MIDI
次に挙げる記法は、LilyPond の標準 MIDI 出力機能で使うことができます:
ppppp から fffff までの強弱記号
(mp, mf, sf を含む)
\tempo 関数が使われたテンポ変化
:[number]’ で入力されていないトレモロ
パン、バランス、エクスプレッション、リバーブ、コーラスのエフェクトはコンテキスト プロパティをセットすることで操作できます。@ref{Context properties for MIDI effects} を参照してください。
次の ‘articulate’ スクリプトと一緒に使うと、これらの表記も MIDI に出力することができます:
\appoggiatura c8 d2. |
では、c の音が四分音符の長さを取ります。
@ref{Enhancing MIDI output} を参照してください。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Unsupported notation for MIDI
次の記法は、MIDI に出力することはできません:
\tempo 以外で入力されたテンポ変化 (注釈として入力された場合など)
:[number]’ で入力されたトレモロ
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof The MIDI block
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 コードを追加することでも変更することができます。@ref{File structure} を参照してください。
#(ly:set-option 'midi-extension "mid") |
記譜法リファレンス: @ref{File structure}, @ref{Creating output file metadata}
インストールされているファイル: ‘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"
}
}
|
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Controlling MIDI dynamics
MIDI 全体の音量や、強弱記号による相対的な音量、楽器ごとの相対的な音量を設定することができます。
強弱記号は、可能な範囲内の MIDI 音量に変換されます。一方、クレッシェンドやデクレッシェンドは、始点と終点の間の音量を線形に変化させます。強弱記号の相対的な音量や、楽器ごとの全体的な音量を設定することができます。
| MIDI での強弱記号 | ||
| MIDI の音量を設定する | ||
| MIDI ブロック プロパティを設定する |
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Dynamic marks in MIDI
mp, mf, sf を含む、ppppp から fffff までの強弱記号のみが音量値を設定されています。そして、この値が全体の MIDI 音量レンジの値に適用されます。MIDI 出力において、指定された強弱記号に対応した最終的な音量を得るために、これらの値が全体の音量範囲に収まるように適用されます。デフォルトで、割合の最小値は 0.25 (ppppp) で、最大値は
0.95 (fffff) です。全ての強弱記号と、それに関連付けられた音量の割合の一覧は ‘scm/midi.scm’ にあります。
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’
コード断片集: (snippets)MIDI section ‘MIDI’ in Snippets
内部リファレンス: (internals)Dynamic_performer section ‘Dynamic_performer’ in Internals Reference
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Setting MIDI volume
全体の 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’
記譜法リファレンス: @ref{Score layout}
内部リファレンス: (internals)Dynamic_performer section ‘Dynamic_performer’ in Internals Reference
デフォルトの 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 での音量変化は音符の開始時にのみ適用されます。そのため、クレッシェンドやデクレッシェンドが単一の音符に適用された場合、音量は変化しません。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Setting MIDI block properties
\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) と呼ばれます。
学習マニュアル: (learning)Other sources of information section ‘Other sources of information’ in Learning Manual
記譜法リファレンス: @ref{Expressive marks}, @ref{Score layout}
インストールされているファイル: ‘ly/performer-init.ly’
コード断片集: (snippets)MIDI section ‘MIDI’ in Snippets
内部リファレンス: (internals)Dynamic_performer section ‘Dynamic_performer’ in Internals Reference
MIDI プレイヤの中には,出力のテンポ変化を正しく処理しないものがあります。
midiInstrument や他の MIDI オプションの変更を譜の始めに行った場合、MIDI 出力ファイル内でその変更が二重に記述されている場合があります。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Using MIDI instruments
MIDI の楽器は、Staff コンテキストで midiInstrument プロパティをセットすることで指定することができます:
\score {
\new Staff {
\set Staff.midiInstrument = "glockenspiel"
… music …
}
\midi { }
}
|
または:
\score {
\new Staff \with {midiInstrument = "cello"} {
… music …
}
\midi { }
}
|
楽器名が ‘MIDI の楽器’ セクションにある一覧のどれにも当てはまらない場合、acoustic grand 楽器が代わりに使用されます。
@ref{MIDI instruments} を参照してください。
学習マニュアル: (learning)Other sources of information section ‘Other sources of information’ in Learning Manual
記譜法リファレンス: @ref{MIDI instruments}, @ref{Score layout}
インストールされているファイル: ‘scm/midi.scm’.
DrumStaff コンテキストで記譜されるパーカッションの楽器は、正しく MIDI の 10 チャンネルに出力されますが、いくつかのピッチ付きのパーカッション楽器 (シロフォン、マリンバ、ビブラフォン、ティンパニなど) は“通常の”楽器として扱われます。そのため、これらの楽器の MIDI 出力を正しく得る場合には、音楽は
(DrumStaff ではなく) Staff コンテキストに入力されるべきです。10 チャンネルのドラム キット (channel 10 drum-kits) の完全なリストは、‘scm/midi.scm’ にあります。
(learning)Other sources of information section ‘Other sources of information’ in Learning Manual を参照してください。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Using repeats with 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 出力を得るためには全てのボイスの繰り返しが完全に展開されている必要があります。
記譜法リファレンス: @ref{Repeats}
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof MIDI channel mapping
楽譜から 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
}
}
}
|
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 } }
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Context properties for MIDI effects
以下のコンテキスト プロパティは、様々な MIDI エフェクトを、割り当てられた MIDI チャンネルの音符に適用するために使われます。
(チャンネルが譜、MIDI 楽器、ボイスのどの単位で割り当てられるかは、Score.midiChannelMapping コンテキスト プロパティと、Staff_performer がどのコンテキストに配置されるかに依存します。@ref{MIDI channel mapping} を参照してください)。
これらのコンテキスト プロパティを変更すると、チャンネルに属するその後の全ての音符に影響を与えます。しかし、この内のいくつかは、すでに音が鳴っている音符にも適用されるものがあります (これは、MIDI 出力デバイスの実装次第です)。
以下のコンテキスト プロパティがサポートされています:
Staff.midiPanPositionパン ポジションは、MIDI チャンネルの音が左から右までのどこに定位するかを設定します。このコンテキスト プロパティは -1.0 (#LEFT) から
1.0 (#RIGHT) までの数値を受理します。-1.0 は全ての音がステレオの左側から鳴るようになります (右側からは音が鳴りません)。0.0 (#CENTER) は左側と右側に均等に音を振り割ります。1.0 は全ての音が右側から鳴るようになります。-1.0 と 1.0 の間の値は、完全な左側と、完全な右側の間にある定位となります。
Staff.midiBalanceMIDI チャンネルのステレオ バランスを設定します。パンと同様に、このコンテキスト プロパティは -1.0 (#LEFT) から
1.0 (#RIGHT) までの数値を受理します。ステレオ信号の分布状態を変化させずに、2 つのステレオ スピーカーに送られる音量の相対値を調節します。
Staff.midiExpressionMIDI チャンネルに適用するエクスプレッション レベルを (可能な最大レベルとの比として) 設定します。MIDI デバイスは MIDI チャンネルのエクスプレッション
レベルと、ボイスの現在の強弱レベル (\p や \ff などで設定されます) とを組み合わせて、ボイス中の各音符の最終的な音量を決定します。エクスプレッションは、例えば、1 つの長い音符の中でクレッシェンドやデクレッシェンドを表現するために使うことができます (LilyPond はこれを自動ではサポートしません)。
エクスプレッション レベルは 0.0 (ゼロ エクスプレッション、つまり音量ゼロ) から 1.0 (フル エクスプレッション) までです。
Staff.midiReverbLevelMIDI チャンネルに適用するリバーブ レベルを (可能な最大レベルとの比として) 設定します。このプロパティは 0.0 (リバーブ無し) から 1.0 (フル エフェクト) までの数値を受理します。
Staff.midiChorusLevelMIDI チャンネルに適用するコーラス レベルを (可能な最大レベルとの比として) 設定します。このプロパティは 0.0 (コーラス無し) から 1.0 (フル エフェクト) までの数値を受理します。
MIDI ファイルは実際の音声データを含まないため、これらのコンテキスト プロパティの変化は、MIDI ファイル内においてはチャンネル コントロールを変化させるという要求に変換されるに過ぎません。ある MIDI デバイス (例えばソフトウェア MIDI プレイヤ) が、MIDI ファイル内にあるこれらの要求を実際に扱うかどうかは、そのデバイスの実装に完全に依存します。つまり、デバイスによっては、要求のいくつか、または全てを無視することがあるということです。また、MIDI デバイスがこれらのコントロールの値の違いをどのように解釈するか (MIDI の標準規格は、コントロールが最小値や最大値を取る時にどのように振る舞うかを標準化しているのみです)、あるいはコントロールの値の変化が、その MIDI チャンネルで既に演奏されている音符に対して影響を与えるかも、MIDI デバイスの実装次第です。
MIDI ファイルを生成する際、LilyPond は範囲内にある割合の数値を、対応する整数へと (通常 7 ビット: 0-127、MIDI チャンネル コントロールがより細かな分解能をサポートする場合は 14 ビット: 0-32767) 線形に変換します。その際、小数は四捨五入されます。変換された整数値が、生成された MIDI ファイルにそのまま記録されます。手持ちの MIDI デバイスがこれらの値をどのように扱うかについては、デバイスのドキュメントを参照してください。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Enhancing MIDI output
| 奏法スクリプト | ||
| スウィング スクリプト |
MIDI の楽器や、\midi ブロックのプロパティを設定することでより良くすることができます。
追加されたスクリプトで、強弱、アーティキュレーション、リズムを MIDI に書き出す方法を微調整することができます: ‘articulate’ スクリプトと ‘swing’ スクリプトです。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof The articulate script
奏法スクリプトを使うには、入力ファイルの最初にこのような
\include コマンドを追加します:
\include "articulate.ly" |
このスクリプトは、アーティキュレーションやテンポ表示を反映させるために、MIDI 出力の音符を正しく‘タイム スケール’します。しかし、譜刻された出力も MIDI 出力の結果と対応して変化してしまいます。
\score {
\articulate <<
… music …
>>
\midi { }
}
|
\articulate コマンドは、省略記号 (トリルやターンなど) を解釈できます。対応している記号の一覧は、スクリプト内に記載してあります。‘ly/articulate.ly’ を参照してください。
学習マニュアル: (learning)その他の情報源 section ‘その他の情報源’ in Learning Manual
記譜法リファレンス: 楽譜レイアウト
インストールされているファイル: ‘ly/articulate.ly’
Note: 奏法スクリプトは和音の長さを短くすることがあります。これはオルガン音楽などには適さないかもしれません。また、アーティキュレーションが全く付いていない音符も長さが短くなります。articulate 関数を使う場所を一部分に限定するか、奏法スクリプトに定義された変数を書き換えることによって、長さが短くなる挙動を抑えることができます。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof The swing script
‘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’ を参照してください。
学習マニュアル: (learning)Other sources of information section ‘Other sources of information’ in Learning Manual
記譜法リファレンス: @ref{Rhythms}
インストールされているファイル: ‘ly/swing.ly’
\repeat 構造 (\repeat unfold であっても)
は、いつ音符のタイミングが決定されるかを考慮しません。これはすべての繰り返される部分の長さがスウィング周期の長さの整数倍でない場合に問題を起こします。
\applySwingWithOffset
を用いて提供される必要があるのはこのためです。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] |
This document was generated by gub on 7 月 13, 2020 using texi2html 1.82.
他の言語: English, català, deutsch, español, français, italiano
About automatic language selection.