Skip to content

楽器 ​

エンジンは楽器を General MIDI プログラム、出力音域、装飾密度傾向として扱います。ボウイング方向、手の幅、フレット位置、疲労といった演奏者の身体的条件はシミュレートしません。

楽器が選択するもの ​

instrument の選択は次の5つに影響します。

  1. General MIDI プログラム — MIDI ファイルに書き込まれる音色。
  2. 出力音域 — 作曲後に使う音域の目安です。指定した調を適用した後、まず全音符が収まる楽譜全体のオクターヴ移動を試みます。個別の音を丸め込まず、一つの移動で全体を収められないときは音域からの超過が最小になる移動を選びます。
  3. 装飾密度 — 装飾処理が線をどれだけ濃密に装飾するか(character と組み合わせて)。
  4. ベロシティカーブ — オルガンとチェンバロは固定された既定値を保ち、ピアノ、ヴァイオリン、チェロ、ギターにはフレーズを考慮したカーブを適用します。
  5. コントローラープロファイル — オルガンとチェンバロは CC 7 のレベルイベント、ピアノ、ヴァイオリン、チェロは CC 11 の表現イベントを使い、ギターには連続表現プロファイルを適用しません。

声部数・拍子・構造は instrument ではなく form から決まります。各形式には互換楽器が明示的に定義されています。形式ごとの既定楽器を参照してください。

楽器と声部

楽器は再生音色と音域傾向です。声部は生成される音楽上の線です。オルガンのように、一つの楽器が複数の声部を担うこともあります。

General MIDI プログラム ​

楽器文字列GMプログラム音色
オルガン"organ"19チャーチオルガン
チェンバロ"harpsichord"6チェンバロ
ピアノ"piano"0アコースティックグランドピアノ
ヴァイオリン"violin"40ヴァイオリン
チェロ"cello"42チェロ
ギター"guitar"24アコースティックギター(ナイロン)

不明な楽器文字列は既定へ暗黙的に代替せず却下されます(例外を投げます)。

出力音域 ​

以下は製品の楽器プロファイルが使う MIDI 音域です。ヴァイオリンとチェロは、生成されたテクスチュアやグラウンドバスの楽章を一つの出力楽器に保てるよう、意図的に広い範囲を持ちます。独奏で無伴奏の最低音を快適に弾ける範囲を示すものではありません。

楽器MIDI 音域
オルガンC1〜C7(24〜96)
チェンバロC2〜C7(36〜96)
ピアノA0〜C8(21〜108)
ヴァイオリンC2〜C7(36〜96)
チェロC1〜C7(24〜96)
ギターE2〜B5(40〜83)

形式ごとの既定楽器 ​

形式既定楽器他に選べる楽器
fugue、prelude_and_fugue、trio_sonata、chorale_prelude、toccata_and_fugue、passacaglia、fantasia_and_fugueオルガン--
cello_preludeチェロ--
chaconneヴァイオリン--
goldberg_variationsチェンバロピアノ

ギターは General MIDI プログラムと音域傾向を持ちますが、現在どの形式からも受け付けられていません。表の行にない楽器を指定すると楽器非互換エラーになります。

装飾密度 ​

決定論的な装飾処理がトリル(終止での開始音と最後のナッハシュラークを含む)、アポジャトゥーラ、ターン、スライド、モルデントを追加します。どれだけ濃密に装飾するかは character と instrument の両方に依存し、一部の線や音は保護されます。

装飾語彙と保護

これらは構造上の音の周囲に置かれる短い装飾音型です。主な作曲結果を検証した後に追加されるため、"material" や "compose" ではなく source: "ornament" として記録されます。主唱・応唱・ストレッタ、および拡大・縮小・反行した主唱提示は素のままです。中間提示は装飾対象に残ります。グラウンドキャリアは免除され、定旋律は小節頭を素のままにします。対象となる小節内の音は装飾できますが、Severe では定旋律全体を素のままにします。

  • グラウンドバスの線(パッサカリア、シャコンヌ、ゴルトベルクのバス)は決して装飾されません。

ここで追加されたノートは source: "ornament" 由来タグを持ちます。

アーティキュレーション ​

最終スコアの検証とベロシティ処理の後、エンジンは性格に応じたリリースを対象ノートへ適用します。分離量は 480 tick を四分音符 1 拍とするグリッドで定義されています。

性格宣言された分離量
Noble24 tick
Severe40 tick
Playful56 tick
Restless72 tick

各声部で、次の発音が現在の音価の終わりまでに始まるノートだけが対象です(直後に続くか、重なっている場合です)。同音の反復は長さに関係なくリリースの対象になります。2半音を超える跳躍は、現在の音価が8分音符以上(240 ティック)の場合だけ対象になります。1〜2半音の順次進行、8分音符未満の広い跳躍、後続音の前に休符があるノート、各声部の最後の発音は、記譜上の音価全体を保ちます。

チェロ前奏曲とシャコンヌは既定楽器が弓奏楽器なので、これらの値を半分にします。定旋律の声部は分離量 0 です。240 ティック未満(このグリッドでの8分音符未満)の音では、宣言された分離量が音の長さに応じて縮小されます。短縮量は元の音価の半分を超えません。検証と解析には記譜上の長さを使い、MIDI と公開イベントデータには短くなった再生時の長さを使います。

ベロシティ ​

オルガンとチェンバロの音は固定された既定ベロシティを保ちます。ピアノ、ヴァイオリン、チェロ、ギターには、基準値70、拍とフレーズのアクセント、小さな終止前の減衰、50〜110への最終クランプからなる決定論的カーブを適用します。これは MIDI 上の整形であり、タッチ、弓圧、レジストレーションの変化をモデル化するものではありません。

表現の出力 ​

装飾に加え、エンジンは選択した楽器と形式のプロファイルから決定論的な MIDI コントロールとテンポイベントを書き込みます。これらは MIDI ファイルだけでなくイベントデータからも読み取れます。

  • MIDI レベルと表現 — オルガンとチェンバロには CC 7 のアーク点と段階的なレベルを、ピアノ、ヴァイオリン、チェロには CC 11 のフレーズイベントを加えます。これは再生時の自動化イベントであり、オルガンのストップ選択(レジストレーション)ではありません。チェンバロのプロファイルは鍵盤のタッチによる連続的な強弱を使いません。ギターにはベロシティカーブだけを適用し、連続表現プロファイルは適用しません。すべてのイベントは重複を統合した control_changes としてトラックごとに報告されます。
  • テンポマップ — trio_sonata 以外の全形式に終結のリタルダンドを加え、さらに prelude_and_fugue、toccata_and_fugue、fantasia_and_fugue ではフーガ入りでセクションテンポを変化させます。tempos として報告します。
  • 拍子記号 — パッサカリアとシャコンヌは3/4、それ以外は4/4。time_signatures として報告。

性格はコントローラー曲線の形を変えず、全体のレベルだけをずらします。値は Severe を基準にしたオフセットです。

性格レベルオフセット
Noble+5
Severe0
Playful-7
Restless+2

オルガンとチェンバロではこのオフセットが CC 7 のチャンネルボリュームを、ピアノ、ヴァイオリン、チェロでは CC 11 の表現レベルをずらします。CC 7 は MIDI の再生レベルを変えるもので、オルガンのストップ選択ではありません。ストップ構成はシンセサイザー側の音色設定に依存します。

曲の途中でテンポが変わるため、イベントを実時間に対応づけるときは bpm ではなくテンポマップを使ってください。ティックを秒に変換するを参照。

TIP

声部が楽器とトラックにどう割り当てられるかは声部アーキテクチャを、装飾と表現の処理がどこに位置するかは生成パイプラインを参照してください。

Dual-licensed: AGPL-3.0 · commercial licensing available. Generated MIDI is yours to use freely.