7. 形式固有の制約
これまでの章は、生成されるすべての曲に適用される規則でした。この章で扱うのは、どんな種類の曲を作っているかによって生まれる契約です。パッサカリアは低音主題を決して変えないと約束し、コラール前奏曲は賛美歌の旋律が装飾を生き延びると約束し、チェロ前奏曲は一本の楽器の線が筋の通った多声対位法を暗示すると約束します。エンジンはそれぞれの約束を、素材キャリアと検証ルールの組として実装しています。
不変の素材——固執低音
パッサカリアとシャコンヌは固執低音(グラウンド)形式です。短い低音主題が曲の全体を通して変わらずに反復され、その上のテクスチュアだけが周回ごとに変奏されます。二つのルール——ground_bass_immutable(シャコンヌ。BWV 1004 のシャコンヌがモデル)と passacaglia_ground_immutable(オルガン・パッサカリアの8小節グラウンド。BWV 582 がモデル)——が、プロビナンスビット——エンジンが各音に添えて持ち運ぶ出自タグで、イベント JSON の source: "material" | "compose" | "ornament" を出力するのと同じ仕組み——を通じて毎周の完全な再生を検証します。これらは StructuralFail です。変更されたグラウンドは下手な対位法ではなく、別の曲だからです。
BWV 番号とは
BWV(バッハ作品目録 / Bach-Werke-Verzeichnis)はバッハ作品の標準的なカタログ番号です。BWV 582 はオルガンのためのパッサカリア ハ短調、BWV 1004 は終楽章にシャコンヌを持つヴァイオリン・パルティータを指します。ルールが「〜がモデル」と言うとき、エンジンの形式テンプレートはその特定の曲のプロポーションを符号化しています。
関連ルールが変奏の層の誠実さも保ちます。variation_role_ornament_constraint は、グラウンドの役割を担う変奏スパンが4分音符より細かく分割されることを防ぎます。別の声部に置き直されても、グラウンドはゆっくりした線として聴き取れなければなりません。
バッハで最も有名なグラウンドは、実はパッサカリアの中にはありません——ゴルトベルク変奏曲を支えています。アリアのバスが歩む骨組みを、30の変奏が再提示し続けるのです。譜例の上の切り替えで、実際の変奏が同じ骨組みを歩くのを聴き比べられます。
不変の素材——定旋律
コラール前奏曲は賛美歌の旋律(定旋律)を長い音価で運び、別の声部がその周りを装飾します。cantus_firmus_immutable は各小節の小節頭を宣言された骨格音と照合します。小節頭のあいだの装飾は自由ですが、骨格は自由ではありません。グラウンドと同じく、定旋律の声部は装飾処理から完全に除外されます。
これこそオルゲルビュッヒラインの設計図です。「われ汝に呼ばわる」では、16分音符の内声とつぶやくペダルの上を、旋律が手つかずのまま漂います。
material ソースの最も純粋な形です。その下で内声が途切れない16分音符の刺繍を続け、ペダルは静かな8分音符の F を繰り返す。各層がそれぞれのリズム格子の上にいます。旋律は契約であり、残りの二声はその実現です。旋律をひとつでも変えれば、それはもうこのコラールではありません。(ペダルの最初の2音は、出典の録音では1オクターヴ低く鳴っています。録音のまま記しています。)フィグレーションの和声
自由な前奏曲のスタイル(BWV 543 の冒頭を思い浮かべてください)は、ゆっくりした和声リズム——その下で和音が入れ替わる速さのことで、ここではおおむね1小節に1和音——の上で絶え間ないフィグレーションを走らせます。figuration_harmonic_consistency がその錨です。各小節を開く音は、その小節の和音の和声音でなければなりません。小節頭以外の音は無制約です——その自由こそが、コラール書法ではなくフィグレーションである理由です。ペダルの音は免除されます。
レパートリーの中で最も純粋な実例が、平均律 I 巻の幕開けにあります。ハ長調プレリュードの最初の2小節——二つの保持音の上を走る一本の16分音符の線が、1小節に一つの和音を描き出します。
figuration_harmonic_consistency が検査する錨——であり、耳は一本の書かれた線から5つの声部を組み立てます。独奏弦——一本の線の中の対位法
独奏のチェロやヴァイオリンは4声を同時に鳴らせませんが、バッハの独奏曲は耳にいくつもの声部を聴かせます。チェロ前奏曲はエンジン唯一の単声形式であり、一つの声部に対位法の検証を成立させているのが、ここで扱うルールです。
復元は三つの具体的な手順です。エンジンはアルペジオの線の音を発音順に集め、宣言された group_size 個ずつの連続したセルに区切り、各セルの最低音を暗示低音線、最高音を暗示上声線として取り出します。決め手はセル内の位置ではなく音域です——BWV 1007 の音型では、知覚される旋律音が書かれたセルの真ん中にありますが、最小値・最大値による抽出はそれを正しく見つけます。
そして、この音型の本家がこちらです——チェロ組曲第1番の冒頭に、エンジンが計算する抽出をそのまま書き出して添えました。
取り出された線は、本物の声部と同じ基準で検査されます。下の二つの簡約譜は線だけを取り出したもので、先に失敗例、次に合格例です。
| ルール | 契約 |
|---|---|
implicit_voice_counterpoint | 連続するセル間で、暗示低音線・上声線が第4章の旋律跳躍ルールに従う——オルガンの Compose 声部を裁くのと同じ禁止跳躍の述語が再利用される。 |
arpeggio_no_parallel_perfect | 連続するセルが同じ完全音程(5度またはオクターヴ)の枠を作り、かつ両方の線が同方向に動いてはならない。斜行・反行・静止は許される——第2章で本物の声部に与えられるのと、まったく同じ逃げ道。 |
独奏弦書法の物理的な側面——各楽器の演奏可能な音域——は楽器で扱っています。
フレーズの構造
二つのルールが、生成された音楽をバロックの小節グリッドに乗せ続けます。アウフタクト(弱起)とは、小節頭より前に鳴り始める短い助走——1小節目の前の「ン・タ」という導入音——のことです。
バッハの舞曲はこの身振りの上に生きています——チェロ組曲第1番のクーラントは、8分音符ひとつぶんの助走で飛び立ちます。
anacrusis_consistent が検査するのは弱起の有無ではなく、その一貫性です。| ルール | 契約 |
|---|---|
phrase_periodicity_4_or_8_bar | 宣言されたフレーズ開始の間隔は正確に4小節または8小節。バロックの楽章の根底にある、舞曲由来の規則性。 |
anacrusis_consistent | アウフタクト(弱起)を宣言したなら、すべての弱起断片はフレーズ開始のちょうどその距離だけ前に始まる。宣言していないなら、弱起の断片が紛れ込んでいない。 |
テクスチュアと楽器の契約
トリオ・ソナタの独立性の契約は、テクスチュア系ルールの中で唯一、目標の形を五線譜に描けるものです。違反そのものはセクション全体の性質ですが、エンジンが目指して採点しているのは、この「三つの声部が三つのリズムグリッドに乗る」テクスチュアです。
オルガン・トリオソナタは、このルールを6曲まるごと追求した作品群です。その第1番は、開始3小節目にしてすでに完全なテクスチュアを見せています。
voice_independence_threshold が目指して採点するテクスチュアです。すべての声部ペアがリズムのずれと反行・斜行で測られ、どこかのペアがしきい値を割れば曲は失敗します。(主題最後の G は次の小節へタイでつながれており、譜例は小節線で切り上げています。)| ルール | 形式 | 契約 |
|---|---|---|
pedal_range_soft_penalty | オルガン系 | ペダルの音が物理的に演奏可能な音域に収まる(ハード境界は MIDI 12〜62。快適な C1〜D3 はスコアリング段階で優遇)。 |
voice_independence_threshold | トリオ・ソナタ | 2つの手鍵盤声部とペダルがペアごとに独立を保つ(スコア 0.6 以上)。リズムのずれと反行・斜行で測定。互いの影になったトリオ・ソナタは、その唯一の仕事に失敗している。 |
section_contrast_required | ファンタジア | 隣接セクションが密度(小節あたり2音以上の差)または音域(平均で5半音以上の差)で聴き取れるほど異なる。対比の劇こそファンタジアの本領。 |
toccata_archetype_compatible | トッカータ | 選ばれたセクション原型が宣言された性格と両立する(noble 性格は設定段階でトッカータ形式から拒否され、相容れない原型の組み合わせはここで失敗する)。 |
残りの構造ルールには、指し示せる「その瞬間」の譜面がありません。違反はセクション全体の性質だからです。そのため譜例ではなく表で記載しています。発火した場合は、個々の音ではなくイベント JSON のセクション構成を調べてください。
検証器はこの章をどう見るか
| ルール | FailKind |
|---|---|
ground_bass_immutable, passacaglia_ground_immutable, cantus_firmus_immutable | StructuralFail |
variation_role_ornament_constraint, figuration_harmonic_consistency, toccata_archetype_compatible | MusicalFail |
implicit_voice_counterpoint, arpeggio_no_parallel_perfect | MusicalFail |
phrase_periodicity_4_or_8_bar, anacrusis_consistent | MusicalFail |
pedal_range_soft_penalty, voice_independence_threshold, section_contrast_required | MusicalFail |
これでコースは終わりです。フラットなルール索引は 検証器ルール一覧を、これらのルールと生成パイプラインの関係は生成パイプラインを参照してください。