楽器
エンジンは楽器を General MIDI プログラム、演奏可能音域、装飾密度傾向として扱います。ボウイング方向、手の幅、フレット位置、疲労といった演奏者の身体的条件はシミュレートしません。
楽器が選択するもの
instrument の選択は次の3つに影響します。
- General MIDI プログラム — MIDI ファイルに書き込まれる音色。
- 演奏可能音域 — 作曲後の出力を収める音域です。指定した調を適用した後、個別のノートを丸め込むのではなく、楽譜全体をオクターブ単位で移動して音域に収めます。
- 装飾密度 — 装飾処理が線をどれだけ濃密に装飾するか(
characterと組み合わせて)。
声部数・拍子・構造は instrument ではなく form から決まります。各形式には互換楽器が明示的に定義されています。形式ごとの既定楽器を参照してください。
楽器と声部
楽器は再生音色と音域傾向です。声部は生成される音楽上の線です。オルガンのように、一つの楽器が複数の声部を担うこともあります。
General MIDI プログラム
| 楽器 | 文字列 | GMプログラム | 音色 |
|---|---|---|---|
| オルガン | "organ" | 19 | チャーチオルガン |
| チェンバロ | "harpsichord" | 6 | チェンバロ |
| ピアノ | "piano" | 0 | アコースティックグランドピアノ |
| ヴァイオリン | "violin" | 40 | ヴァイオリン |
| チェロ | "cello" | 42 | チェロ |
| ギター | "guitar" | 24 | アコースティックギター(ナイロン) |
不明な楽器文字列は既定へ暗黙的に代替せず却下されます(例外を投げます)。
形式ごとの既定楽器
| 形式 | 既定楽器 | 他に選べる楽器 |
|---|---|---|
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" として記録されます。
- グラウンドバスの線(パッサカリア、シャコンヌ、ゴルトベルクのバス)は決して装飾されません。
- 定旋律の線(コラール前奏曲)は決して装飾されません。
ここで追加されたノートは source: "ornament" 由来タグを持ちます。
表現の出力
装飾に加え、エンジンは形式にふさわしい表現を書き込みます。これらは MIDI ファイルだけでなくイベントデータからも読み取れます。
- レジストレーションカーブ — 形式のエネルギーアークに従う CC 7 と CC 11 の点列。トラックごとに
control_changesとして報告され、重複は統合済み。 - テンポマップ — 終結のリタルダンドに加え、前奏曲・トッカータ・ファンタジア系の形式ではフーガ入りでのセクションテンポ変化。
temposとして報告。 - 拍子記号 — パッサカリアとシャコンヌは3/4、それ以外は4/4。
time_signaturesとして報告。
曲の途中でテンポが変わるため、イベントを実時間に対応づけるときは bpm ではなくテンポマップを使ってください。ティックを秒に変換するを参照。