了解。
ここからは 高校 Love ダンス曲のテンプレート構造(A→B→C) を、
あなたの OS(意味 → 構造 → 物理)の思想に完全準拠した形で “生成用の構造テンプレート” として定義する。

Roblox 化しない方針になったことで、
このテンプレートは純粋に Web 側の「作曲 OS」の中核になる。


🎼 高校 Love ダンス曲テンプレート(A → B → C)

あなたが以前定義した Love ダンス OS の原則を統合すると、
高校 Love ダンス曲は 3 フェーズの感情曲線で成立する:

  • Aメロ:Emotional Rise(感情の立ち上がり)
  • Bメロ:Emotional Spin(期待と回転)
  • サビ:Emotional Bloom(開花・幸福)

これを MusicXML / MIDI 生成に使える構造テンプレートとして定義する。


🎼 高校 Love ダンス曲テンプレート構造(JSON)

これは /homage/generate に渡す「構造層」のテンプレートとして使える。

{
  "structure": {
    "bpm": 132,
    "key": "G major",
    "sections": [
      {
        "name": "A",
        "label": "Emotional Rise",
        "length_bars": 16,
        "motif_usage": {
          "A": "primary",
          "B": "secondary"
        },
        "rules": {
          "melody": "ascending phrases, 3-note repetition, light syncopation",
          "harmony": "I - vi - IV - V progression",
          "rhythm": "four-on-the-floor kick, light snare on 2/4"
        }
      },
      {
        "name": "B",
        "label": "Emotional Spin",
        "length_bars": 16,
        "motif_usage": {
          "B": "primary",
          "C": "secondary"
        },
        "rules": {
          "melody": "rotating patterns, tension-building leaps",
          "harmony": "vi - IV - I - V progression",
          "rhythm": "16th-note hi-hats, syncopated bass"
        }
      },
      {
        "name": "C",
        "label": "Emotional Bloom",
        "length_bars": 16,
        "motif_usage": {
          "A": "return",
          "C": "climax"
        },
        "rules": {
          "melody": "wide leaps, bright high register, density increase",
          "harmony": "I - V - vi - IV progression",
          "rhythm": "open hi-hats, layered claps, energetic kick"
        }
      }
    ]
  }
}

🎯 このテンプレートが OS として正しい理由

✔ 1. 構造層(Structure Layer)を明確に定義

  • BPM
  • Key
  • Section(A/B/C)
  • 各セクションの bars
  • Motif の使い方
  • Melody / Harmony / Rhythm のルール

→ これが MusicXML 生成の骨格になる。


✔ 2. 意味層(Meaning Layer)と接続できる

各セクションは motif_usage を持つ:

"motif_usage": {
  "A": "primary",
  "B": "secondary"
}

これは DB の motif_meanings と自然に接続できる。


✔ 3. 物理層(ABC / MusicXML)を生成するための指示が明確

Melody / Harmony / Rhythm のルールは
Gemini に MusicXML を生成させる際の Universal Token の一部になる。


✔ 4. Roblox 化しない方針に完全一致

  • Web 側で MusicXML → MIDI → WAV を生成
  • Roblox は WAV を再生してダンスに集中
  • OS の複雑さは Roblox に漏れない

🎼 次に必要なもの

このテンプレートを使って、
/homage/generate に「構造テンプレート」を渡す必要がある。

つまり、API の入力はこうなる:

{
  "work_code": "LoveDance",
  "movement_number": 1,
  "motifs": [...],
  "structure_template": {...}   ← これを追加
}

Gemini にはこう指示する:

  • 「この構造テンプレートに従って MusicXML を生成せよ」
  • 「motifs の ABC を素材として使え」
  • 「A→B→C の順で 16 小節ずつ構成せよ」

🎯 次に進めるステップ(選択)

1. /homage/generate を「構造テンプレート対応」に拡張する

→ MusicXML が A→B→C の構造で生成される

2. GUI に「Love ダンス構造テンプレート選択 UI」を追加する

→ BPM / Key / Section Length をユーザーが変更できる

3. MusicXML を WAV に変換する UI を追加する

→ Roblox にアップロード可能な音源を生成

どれに進めたい?