HarmonicSeam

HarmonicSeam

BGM の変わり目まで、演出のうち

曲の楽譜データ(MIDI)を解析し、音楽理論のうえで切り替えてよい地点を探す。調が遠い2曲には、短い「橋」を組む。切り替えも橋も、その場で鳴らして確かめられる。ゲームの中では、場面が変わると次の切り替えてよい地点まで待って移る(Windows 版で解析して書き出し、Unity 版が鳴らす)。

21秒・ループ

ゲームの中の切り替え。調がいちばん遠い2曲なので、毎回短い橋を挟む。YouTube で見る

背景

ゲームの BGM は場面ごとに曲が用意され、場面が変わると曲も変わる。切り替わる瞬間は作曲家が決められない。プレイヤーがいつ場面を変えるかは分からず、「曲Aの何小節目で曲Bに移るか」はゲームのプログラムがその場で決める。

既存の仕組みは拍や小節には合わせられるが、和音の中身は見ていない。離脱の和音、進入の和音、声部の動き、調の距離。曲をつなぐときに必ず見るものが、検査されないまま継ぎ目が決まる。

検査に使うのは、西洋音楽で数百年にわたり作曲家たちが磨いてきた和声の規則。人が曲をつなぐときに守ってきた決まりを、継ぎ目の1つ1つに当てはめる。

できること

和声の計算は、ゲームの外で前もって済ませる。曲の MIDI を解析して「どの曲のどの地点から、どの曲へ移れるか」を表にしておく。

  1. 1

    曲を入れる

    曲ごとに MIDI を1つ(2曲以上)。テンポと拍子は1曲の中で一定であること。調・拍子・外すトラック(ドラム、キースイッチ)・使う範囲は、読み違えたときに画面で直せる。音声ファイルを付けると、その音で鳴る。

  2. 2

    継ぎ目を見る・聴く

    曲Aから曲Bへの1方向の組を「継ぎ目」と呼ぶ。上の帯は、曲Aの各地点から曲Bへ移れるかの判定(緑=切れる・黄=橋なら切れる・灰=そのままでは切れない・斜線=禁則は無いが曲Aが解決しないまま入る)。帯を押すと前後をピアノロールで見て、試聴できる。全部の組はマトリクスで一覧。検査するのは継ぎ目だけで、曲の中の和声は評価しない。

    継ぎ目Fis-moll → Fis-dur
    スタンドアロン版の継ぎ目の画面。上に切替点の帯、下にピアノロール、右にマトリクスと橋の設定
    スタンドアロン版の継ぎ目の画面。上が帯、下がピアノロール、右がマトリクスと橋の設定。
  3. 3

    橋を組む

    調が違い、そのままでは移れない地点に、曲Aの離脱和音から曲Bの進入和音へ渡る短い経過句を4声で組む。和音の進め方(レシピ)・長さ・音型を選べる。音色は内蔵の音色か VST3 の楽器。

    橋V → V7/vi
    ピアノロールの橋のまわり。曲Aの終わり、水色の4声の橋、曲Bの頭
    ピアノロールの橋のまわり。曲Aの終わりと曲Bの頭の間に、4声の橋(水色)。
  4. 4

    ライブで試す

    曲の名前を押すと鳴る。鳴っている間に別の曲を押すと、次に切れる所で移る(橋があれば橋を通る)。押した時刻・渡り方・着いた所が記録に残る。

  5. 5

    書き出す

    継ぎ目の札(.txt)、DAW 用のマーカー(.mid)、橋の MIDI・仕様・音声、ゲーム用の JSON。橋は、選んだ楽器で焼いた音声をそのまま使える。手を入れたいときは橋の MIDI を DAW へ。マーカーで、切替点を DAW の上で見られる。

何を検査するか

切り替えの前後に、和声の授業で「避ける」と教わる声部の動き(禁則)が出ないか。2曲の調が離れすぎていないか。

  • 継ぎ目の声部進行の禁則7種(連続5度・8度・ユニゾン、並達5度・8度、内声の大きな跳躍、途中の入りでソプラノが跳び上がる)。6種は芸大和声(和声の教科書)に依拠し、最後の1つは試聴から足した。
  • 初期設定では並達5度・8度を許していて、この2つでは止めない。許可する禁則は選べる。
  • トラックが分かれた MIDI は、書き方によって「鍵盤書法」(ピアノ譜のように、1つの手で和音を弾く書き方)として読み、内側のパートを声部進行の検査から外すことがある。そう読んだときは画面に出て、曲ごとに内側も検査するよう切り替えられる。
  • 調の近さ。離れる所と入る所で、調の感じがどれだけ近いか。
  • 帯とマトリクスの色は、ゲームが引く表と同じ計算から出る。

ゲームで鳴らす(Unity 版)

作曲者から受け取る物は、曲ごとの MIDI と、MIDI と同じ所から1周ぶんちょうどで書き出した音声。Windows 版で解析と橋を済ませ、JSON・曲の音声・橋の WAV を Unity に入れる。

書き出した JSON と音声を Unity に取り込む。ゲームの中ではその表を引いて切り替えるだけで、MIDI は読まない。

「曲Bへ」の指示に対し、切り替えてよい地点まで待ち、必要なら橋を挟んで切り替える。橋が鳴っている最中の指示は、着地してから次の切り替えとして回す。ゲーム側には切り替えの予定・完了・取り消しを知らせ、一時停止中など受けられない指示には理由をつけて返す。

待ち時間と橋の本数

切り替えてよい地点まで待つのが既定。帯の緑が多い組ほど、待ちは短い。橋を通したほうが早く着くときは、橋を使う。待たせたくない場面では「禁則より近さを優先」(検査より速さを取る設定)を入れると、一番近い地点で切る。

切り替えてよい地点が1つも無いときは、橋があれば橋を渡る。無ければ一番近い地点で切り、検査を通っていないことをゲームへ知らせる。

曲を足しても、組み合わせの数だけ橋を作る必要はない。切り替えてよい地点が無い組でも、1方向に橋が1本あれば移れる。本数を増やすほど待ちは縮む(1本だけだと、最長で曲1周ぶん待つ)。

できないこと

  • MIDI が必要。音声だけの曲は読めない。
  • 検査するのは橋の設計図(音符)まで。人や楽器が音にしたものは検査していない。
  • ゲームの中では、橋の音声を取り込んだ継ぎ目でだけ橋が架かる。
  • 曲の雰囲気の違いは埋めない。調の遠さは橋で渡れるが、音色・リズムの違いはそのまま(テンポは、橋の中で徐々に寄せる設定がある)。
  • ドラムやキースイッチを自動では外さない。外さないまま解析すると、判定が狂う。
  • 和声で書かれていない曲は未検証。lo-fi やアンビエントなど、機能和声に沿っていない曲でどこまで意味を持つかは、まだ測っていない。

ぶつ切りもクロスフェードも正しい演出。このツールはそれらを置き換えない。「和声的につながる」という選択肢を1つ足す。

試す

いまの形(2026年10月)

  • スタンドアロン版:Windows。mac 版は準備中。
  • Unity 版:書き出した物を、ゲームの中で切り替える。Unity 6.3(6000.3)以降。
  • ほかのエンジン向けは、JSON の書き出しまで。
  • 試用版:受け取った人が試すためのもの。作った橋の MIDI と音声は自由に使える。

連絡先

更新履歴

2026-10
スタンドアロン版でも、橋の音源を持てるように。
2026-09
スタンドアロン版に、ライブ・VST3 の楽器・書き出し。
2026-08
HarmonicLogic から改名。
2026-07
橋の生成と、ゲーム内への挿入。

English

Even the moment the game music changes is part of the show.

HarmonicSeam analyzes each piece's MIDI in advance and marks, by rules from classical harmony, where one piece may move to another. When the scene changes, it waits for the next such point and switches there.

When the keys are far apart, it builds a short four-part "bridge". You can play the switches and bridges right away, with built-in sounds or VST3 instruments.

Hard cuts and crossfades are valid choices. This tool does not replace them. It adds one option: a harmonically connected transition.

As of October 2026, the main app is a standalone Windows app: analysis, bridges, listening, a live switching test, and export. The Unity version (Unity 6.3 or later) plays the exported results inside a game. A macOS version is in preparation.

To try it without your own music, play the browser demo (unityroom; PC with a keyboard). The Windows app is a trial build, shared individually; please get in touch. What you make with it (bridge MIDI and audio) is yours to use.

Contact: X @HeySugu / sugusan.chan@gmail.com