3.5.1 MIDI ファイルを作り出す

LilyPond 入力ファイルから MIDI ファイルを作り出すには、score に \midi ブロックを付け加えます。例えば、以下のように:

\score {
  ...music...
  \midi { }
}

\layout ブロックを持たない \score の中に \midi ブロックがある場合、MIDI 出力だけが生成されます。楽譜も必要な場合は、\layout ブロックも存在している必要があります。

\score {
  ...music...
  \midi { }
  \layout { }
}

ピッチ、リズム、タイ、強弱記号、テンポの変更は解釈されて正確に MIDI 出力に翻訳されます。強弱記号、クレッシェンド、デクレッシェンドは MIDI ボリューム レベルに翻訳されます。強弱記号は利用可能な MIDI ボリューム レンジ内のある固定値に翻訳されます。クレッシェンドとデクレッシェンドはそれらの開始点と終了点の間でボリュームを線形に変化させます。MIDI 出力における強弱記号の効果を完全に削除することができます – MIDI ブロック を参照してください。

初期のテンポと後のテンポ変化は、音楽記譜内部の \tempo コマンドで指定することができます。通常このコマンドはメトロノーム記号を表示させますが、表示を抑制することができます – メトロノーム記号 を参照してください。初期 MIDI テンポあるいは MIDI 全体のテンポを指定するための代替手段がこの後で記述されています – MIDI ブロック を参照してください。


楽器名

Staff.midiInstrument プロパティに楽器名を設定することで、使用する MIDI 楽器が指定されます。楽器名は @ref{MIDI instruments} にあるリストから選択しなければなりません。

\new Staff {
  \set Staff.midiInstrument = #"glockenspiel"
  ...notes...
}
\new Staff \with {midiInstrument = #"cello"} {
  ...notes...
}

選択された楽器が MIDI 楽器のリストにある楽器に一致しない場合、グランド ピアノ ("acoustic grand") 楽器が使用されます。

Selected Snippets

Changing MIDI output to one channel per voice

When outputting MIDI, the default behavior is for each staff to represent one MIDI channel, with all the voices on a staff amalgamated. This minimizes the risk of running out of MIDI channels, since there are only 16 available per track.

However, by moving the Staff_performer to the Voice context, each voice on a staff can have its own MIDI channel, as is demonstrated by the following example: despite being on the same staff, two MIDI channels are created, each with a different 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"
    }
    \context {
      \Score
      tempoWholesPerMinute = #(ly:make-moment 72 2)
    }
  }
}

[image of music]

既知の問題と警告

MIDI ボリュームの変化は音符の開始点でのみ起こります。そのため、クレッシェンドとデクレッシェンドは単一の音符のボリューム変化には効果を持ちません。

すべての MIDI プレイヤが MIDI 出力の中にあるテンポ変化を正しく処理するわけではありません。正しく機能するプレイヤとして知られているものには MS Windows の Media Player や timidity があります。


他の言語: English, deutsch, español

LilyPond — 記譜法リファレンス

inserted by FC2 system