Skip to content

検証器ルール一覧 ​

このページは検証器の全60ルールのフラットな索引です。音楽上の考え方を学ぶには対位法コースを読み、エラー・ログ・イベントデバッグでルール ID を見たときは、このページから該当する解説へ飛んでください。

ルール ID の読み方

ルール ID は品質スコアではなく、破られた音楽的契約の名前です。同じ楽句が複数の契約に同時に違反することもあります。検証器は最初の失敗で停止せず、その処理で見つけた失敗をまとめ、各違反を指摘対象のスパンとともに報告します。

ルールの層 ​

検証器は作曲の複数の層を守ります。局所的な音程ルールと形式の同一性ルールはどちらも失敗ですが、理解に必要な文脈が異なります。

検証器が守る層9 つの規則層を、その層の規則が譜面のどれだけを見なければならないかの長さで並べた棒グラフです。もっとも短いものは 1 拍上の 2 声、あるいは 1 声部の隣り合う 2 音だけを見ます。もっとも長いものは形式レイアウト全体と、記述されたすべてのスパンの来歴記録を必要とします。下段は、失敗が持つ 3 つの FailKind — MusicalFail、StructuralFail、ConfigFail です。規則の層その規則が見なければならない範囲失敗の理解に必要な文脈局所的な縦の響き1 拍上の 2 声旋律としての自然さ1 声部の、直前の音と現在の音声部の独立性2 つの時点にまたがる 2 声物理的な限界声部の音域と楽器の音域フレーズ構造フレーズのメタデータと拍子調性の文法和声プランとフレーズ上の位置フーガの構造宣言された素材と、その提示スパン形式の同一性素材担体と形式レイアウト全体宣言との整合来歴記録と、記述された全スパンどの失敗も FailKind を持つMusicalFail対位法・和声の契約違反(既定)StructuralFail形式が守るはずの構造上の約束が破れたConfigFail不正な要求。作曲に入る前に報告されるルール ID を読むときは、まずその層を見る。局所的な音の規則と形式の同一性の規則は、どちらも失敗だが、説明に必要な証拠が違う。
層守るもの必要な文脈
局所的な縦の響き安定した音程、和声音ある拍で鳴る二声
旋律の妥当性一つの声部内の自然な動き同じ声部の前後の音
声部の独立別々に聴き取れる線二つの時点にまたがる二声
調性の文法終止、借用和音、転調和声プランとフレーズ上の位置
フーガの構造主唱・応唱・対主題・模倣宣言された素材とエントリのスパン
フレーズの構造小節グリッドの一貫性フレーズのメタデータと拍子
形式の同一性固定されたグラウンド・定旋律・フィグレーションの役割素材キャリアと形式の配置
物理的な制約演奏可能な音域、楽器の音域声部音域・ペダル音域・楽器傾向
宣言との整合出力された音が形式の宣言どおりか来歴レコードと作譜済みスパン

すべての失敗には FailKind も付きます。MusicalFail(対位法・和声の契約。既定値)、StructuralFail(形式の構造的な約束——不変キャリアと終止レイアウトの破綻)、ConfigFail(不正なリクエスト。作曲前に報告)の三種です。

停止させる失敗と参考情報

最終スコアの検査は、作譜済みの素材も含めて出力された音そのものを対象にします。対位法の観測レコーダーが扱う検出結果では、すべての対象音が有効な作譜コンテキストを持つ場合に限り、実行を止める失敗ではなく参考情報として記録されます。Compose 音は作曲器が作譜した音として扱い、Material 音は宣言との一致を、Ornament 音は宣言されたキャリア内での実現マーカーと音域を確認します。それ以外は、対処可能なスパンを持つ停止失敗としてレコーダーから送られます。生成時は、対象音がすべて不変の Material または Ornament なら exempted として数え、それ以外(Compose 音を含む)は gated として停止失敗へ送ります。声部交差、掛留、終止、宣言整合性などの直接検査はそれぞれ失敗を直接追加するため、作譜コンテキストに関係なく停止します。さらに、形式別の対位法予算で閉じている垂直規則に一致すると、span_id: null の停止 MusicalFail が1件追加されます。現在の公開生成経路は停止させる失敗があると処理を中止し、スコアの修復や生成の再試行は行いません。getDiagnostic() が返すのは停止させる失敗であり、参考情報ではありません。

幾何分類・振り分け・形式別予算 ​

生成されたスコアは、検出結果を失敗または参考情報へ振り分ける前に、対位法の一致を記録します。geometry の linear は1声部内の進行、vertical は発音中の声部同士または声部と和声プランの関係を示します。unclassified は幾何分類表に登録されていない規則 ID 用です。total は振り分け前の一致数、gated は停止させる失敗へ送った件数、exempted は生成時にすべての対象音が不変の Material または Ornament だったため除外した件数です。このレコーダーで扱う検出結果では、total - gated - exempted が参考情報として表現される一致数です。独立した参考情報ルールには観測値がない場合があります。

形式別予算の対象は垂直規則だけです。予算表にある規則は、その形式ではまだ開いています。一致は counterpoint_observations に記録されますが、それだけでは処理を停止しません。ソースの Unresolved 行は未修復の作業を、Accepted 行は測定したトレードオフまたは形式上の制約を記録します。どちらも開いている行で、ゲートは理由ではなく行の存在を使います。形式の表にない垂直規則は閉じています。その規則の観測値が1件以上になると、span_id: null の停止 MusicalFail が1件追加されます。旋律規則はこの予算の対象外で、前述の素材または作譜済みコンテキストによる通常の振り分けを使います。対位法予算のソースが10形式の開いている (form, rule_id) 組み合わせを定める完全な許可リストの正本です。

この予算表は、開いている規則を音楽的に望ましいと宣言するものではなく、実装が現在許容して測定する形式別の境界です。行を削除するとその形式で規則が閉じ、行を追加すると再び開きます。

声部の運動と独立 ​

Rule IDコースの章読み方
parallel_fifth2. 運動両声部が同方向に動き、直前と現在の縦の音程がどちらも完全5度に縮約される。
parallel_octave2. 運動両声部が同方向に動き、直前と現在の音程がどちらもユニゾンまたはオクターヴに縮約される。
anti_parallel_perfect2. 運動反行で、同じ種類の完全音程(完全5度またはユニゾン/オクターヴ)から同じ種類へ進む。
battuta2. 運動反行で新しいユニゾン/オクターヴへ進み、到達時の上声が全音より大きく下降跳躍する。
hidden_parallel_fifth2. 運動異なる直前の音程から同方向運動で完全5度へ入り、慣例上の上声が全音より大きく(>2半音)跳躍する。
hidden_parallel_octave2. 運動同じ隠伏完全音程の条件でユニゾン/オクターヴへ入る。上声ペアや強拍だけに限定されない。
voice_crossing2. 運動慣例上の上声(小さいインデックス)が下声(大きいインデックス)より低い音を鳴らす。トリオ・ソナタでは上二声の一時的な交換を許す場合があるが、持続する交差は失敗となり、全体の音域も重なる必要がある。
spacing_adjacent_voices_within_octave2. 運動三声以上で、隣接する上声部の間隔がオクターヴを超えた。
invertible_at_octave2. 運動隣接する上声部のペアが構造的アクセントで並行オクターヴを作った。転回すると並行ユニゾンになるためで、最下ペアは対象外。

発音中のペアで、現在の下声部の音に CadenceCellCommitted プロビナンスビットが付いている拍では、parallel_fifth、parallel_octave、hidden_parallel_fifth、hidden_parallel_octave、anti_parallel_perfect、battuta を検査しません。この終止セルの除外は、声部交差、間隔、その他の検査を一括して免除するものではありません。

不協和音の扱い ​

Rule IDコースの章読み方
strong_beat_dissonance3. 不協和構造的アクセントの音がその場の和音構成音の外にある。宣言された第7音は和音構成音に含める。
vertical_dissonance3. 不協和強拍で同時に鳴る声部が、支えのない不協和音程を作った。
unprepared_dissonance3. 不協和弱拍の非三和音音が、前後とも順次進行(最大2半音)になっていない。
suspension_preparation3. 不協和掛留の準備が、最下声の相手に対して協和になっていない。
suspension_preparation_duration3. 不協和準備が、それが準備する掛留より短い。
suspension_metrical_accent3. 不協和掛留が準備より強い拍に置かれていない。
suspension_resolution_step_down3. 不協和掛留が定められた方向への順次進行で解決していない(4-3/7-6/9-8 は下行、エンジンの Sus2_3 は上行)。歴史的な下声部の 2-3 掛留は下行解決として説明されることが多いため、用語を対応付けるときは Open Music Theory も参照してください。
suspension_interval3. 不協和掛留声部と同時に鳴る他声部の最低音との音程が、宣言された型(4-3 / 7-6 / 9-8 / 2-3)に合っていない。2-3 では掛留声部がバスなので、そこから上向きに測定します。
suspension_seventh_sixth3. 不協和宣言された 7-6 掛留が、バス上の本物の7度→6度の形を作っていない。

旋律のルール ​

Rule IDコースの章読み方
augmented_melodic4. 旋律増音程の旋律進行(副次ドミナント圏では免除)。
diminished_melodic4. 旋律減音程の旋律進行(同上の免除)。
tritone_melodic4. 旋律三全音の跳躍(同上の免除)。
consecutive_leaps4. 旋律大跳躍(5度以上)が2回連続した(方向は問わない)。
leading_tone_resolution4. 旋律印づけられた導音が主音へ上行解決していない。
voice_range_integrity4. 旋律音が声部の宣言された MIDI 音域の外に出た。

調性の文法 ​

Rule IDコースの章読み方
cadence_voice_leading5. 調性終止の声部が宣言された終止型(完全・不完全正格・変格・半・偽・フリギア・ピカルディ)に一致しない。StructuralFail になるのは終止に到達する声部がない場合、または終止位置が最初の拍より前の場合だけで、単旋律形式は旋律終止として検査する。声部進行の不一致そのものは MusicalFail。
doubling_no_leading_tone5. 調性導音を含む和音で導音が重複された。
doubling_no_seventh5. 調性和音の第7音が重複された。
cross_relation5. 調性後の開始位置で有効な局所調で、同じ音度を異なる変化記号で鳴らす声部が、同時、またはどちらの声部にも途中の開始位置がない隣接する音符開始位置で続けて鳴らす。異なる音度どうしの自然な半音は除外。
secondary_dominant_resolution5. 調性副次ドミナントの次に目標の度数が来ていない。
modulation_pivot_chord_required5. 調性ピボット転調のピボット和音が両方の調で全音階的でない。

フーガの構造 ​

Rule IDコースの章読み方
tonal_answer_dominant_mapping6. フーガ変応の冒頭が主唱の開始ピッチクラスを I↔V で写像していない。
countersubject_continuous6. フーガ応唱の区間で対主題が途切れた。
episode_motif_derived6. フーガ嬉遊部の音が、宣言された元スライス×モチーフ変形の結果と一致しない。
sequence_pattern_consistency6. フーガゼクエンツの段が、種の宣言どおりの正確な移調になっていない。
imitation_entry_match6. フーガ後続声部のエントリが、宣言された時間差または音程差とずれている。
imitation_entry_realization6. フーガ出力された音が、宣言された主唱・応唱のエントリをキャリア声部で実際には実現していない。
countersubject_invertible6. フーガ対主題が強拍で主唱に対して完全5度を作り、オクターヴで転回できない。参考情報のみ — 自由書法の対主題では正当に起こるため、実行を止めることはない。
middle_entry_in_related_key6. フーガ中間入りの調が V/vi/IV/ii の一族でない、またはその調の音階から外れた。
stretto_overlap_valid6. フーガストレッタのエントリが重なっていない、または後続が正確な移調でない。
pedal_point_tonic_or_dominant6. フーガ保続音が主音・属音以外の音度に置かれた。

フレーズ・テクスチュア・物理的制約 ​

Rule IDコースの章読み方
phrase_periodicity_4_or_8_bar7. 形式宣言されたフレーズ開始の間隔が3〜8小節の整数小節ではない。互換性のため固定されたルール ID には、以前の「4または8小節」という名前が残っている。
anacrusis_consistent7. 形式弱起のメタデータとフレーズ開始のメタデータが食い違っている。
pedal_range_soft_penalty7. 形式オルガンのペダル音が演奏可能な音域(MIDI 12〜62)の外に出た。
voice_independence_threshold7. 形式トリオ・ソナタの声部ペアの独立度スコアが 0.6 を下回った。
trio_upper_register_overlap7. 形式トリオ・ソナタの2つの上声部が音域をまったく共有せず、掛け合う一対ではなく別々の鍵盤に聞こえる。
section_contrast_required7. 形式ファンタジアの隣接セクションが密度でも音域でも対比していない。

形式の同一性 ​

Rule IDコースの章読み方
ground_bass_immutable7. 形式シャコンヌの再現が、同じ周回相対位置にある固執低音の小節頭の音高骨格を変えた。弱拍の細分音は比較しない。StructuralFail。
passacaglia_ground_immutable7. 形式パッサカリアの再現が、同じ周回相対位置にある8小節グラウンドの小節頭の音高骨格を変えた。弱拍の細分音は比較しない。StructuralFail。
cantus_firmus_immutable7. 形式コラール前奏曲の小節頭が宣言された骨格音を再現していない。StructuralFail。
goldberg_aria_bass_immutable7. 形式ゴルトベルクの変奏ブロックが、宣言されたアリア・バスのすべての開始位置を、周回相対の開始位置・長さ・音高まで同じに再現していない。終端の CodaCarrier による主和音終止は最後のブロック範囲を置き換えられる。StructuralFail。
variation_role_ornament_constraint7. 形式グラウンド役の変奏が4分音符より細かく分割された。
figuration_harmonic_consistency7. 形式フィグレーションの小節頭が非和声音で始まった。
toccata_archetype_compatible7. 形式トッカータのセクション原型が宣言された性格と両立しない。
implicit_voice_counterpoint7. 形式独奏弦のアルペジオの暗示声部(低音線・上声線)が旋律ルールに違反した。
arpeggio_no_parallel_perfect7. 形式暗示声部がセル間で完全音程の並行を作った。

宣言との整合 ​

これらは音楽的な契約ではなく、出力された楽譜と宣言を突き合わせます。来歴の検査は最終スコアでのみ走りますが、declared_doubling_integrity は検証器が宣言された重複を認める前にも確認します。いずれも StructuralFail です。出力が宣言と一致していないため、再試行の前に宣言と出力された音を確認します。

Rule IDコースの章読み方
note_provenance_alignment--ノート列と来歴列の長さが異なり、どの音も来歴に紐付けられない。
carrier_declaration_integrity7. 形式作譜済みキャリアを名乗る音が、そのキャリアの宣言された開始位置・長さ・音高と一致しない。
ornament_declaration_integrity7. 形式装飾音について、それが装飾するキャリアとの間で同じ不一致が起きた。
ornament_group_integrity7. 形式装飾の展開が元のキャリアを正確に覆っていない(隙間・重なり、または主要音以外で終わっている)。
declared_doubling_integrity7. 形式宣言された重複が、異なる2声部と主声部の音符を少なくとも1つ含む有効で空でない半開区間を指定していない、またはその区間内の出力された音符数・開始位置・長さ・移調後の音高と一致しない。StructuralFail。

デバッグの手順 ​

  1. ルール ID と FailKind を特定する。
  2. 問題の音がイベント JSON で source: "material" / "compose" / "ornament" のどれかを確認する。
  3. 局所ルールなら、前後の音のペアを調べる。
  4. 構造ルールなら、宣言された形式・素材スパン・フレーズスパン・和声プランを調べる。
  5. API レベルではなく音楽的なルールなら、リンク先のコース章を読む。

役に立つメンタルモデル

形式ディレクターが構築する音楽オブジェクトを宣言する。既定では素材キャリアがすべての作譜済みスパンを再生し、採点付き探索は任意の自由対位法でのみ使われる。検証器は宣言された音楽的契約への違反をすべて報告し、公開生成経路は停止させる失敗があれば処理を中止する。

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