ジェネレーティブ音楽・アルゴリズム2 分で読めます公開: 2026-08-19更新: 2026-08-27執筆・検証:甘党工藤

模様を音に変える - 反応拡散とフラクタルのSonification

反応拡散の濃度場とフラクタルの複素平面は、どう音へ変換されるのか。走査、閾値、経路、発散回数を同じ条件で聴き比べます。

模様を音に変える - 反応拡散とフラクタルのSonification

反応拡散とフラクタルはどちらも画面の数値場を音へ変えますが、前者は時間で成長する濃度場、後者は複素平面の反復結果です。走査位置、Threshold、Escape Timeと音のMappingを分け、画面のどこが発音理由になったかを確認します。

反応拡散の濃度場

Gray–Scott型モデルではUとVの濃度を拡散・反応で更新し、FeedとKillが斑点や縞の成長傾向を変えます。Brushは局所的にV成分を加え、Seedは初期場の比較に使います。LIVEでは場が時間で変わり、FREEZEでは同じ場を走査できます。

フラクタルの複素平面

反応拡散の濃度場とフラクタル平面を走査して音へ変換する比較図
画面上の値を走査し、音高やベロシティへ変換

Mandelbrot/Juliaでは複素座標を反復式へ入れ、発散までの回数をEscape Timeとして色と音へ写像します。境界付近では値が細かく変わり、ZoomとCenterが読み取る領域を決めます。高倍率は浮動小数点精度と描画負荷の影響を受けます。

走査位置と音の対応

Scan LineまたはPlayheadがどの座標をいつ読むかを表示し、Y/X、濃度、活性度、Escape TimeのどれをPitch、Velocity、Filter、Panへ割り当てるか確認します。Mappingを複数同時に変えず、最初はPitchとTriggerだけで比較します。

Thresholdと発音

Thresholdは、読み取った値がどの範囲へ入ったときに発音するかを決めます。低すぎると発音が密になり、高すぎると無音が増えます。場または表示範囲を固定し、発音数を数えられる短い区間で調整します。

発散回数とマッピング

FractalのEscape Timeは発散までの反復回数で、Iteration上限に達した点は別扱いになります。値をScale Indexへ丸める、Velocityへ連続対応させる等、Mapping方法で同じ画像から別の音が生まれます。数学上の値と音楽的評価を同じものとして扱いません。

画面の変化を追いながら聴く

反応拡散はFREEZEとLIVE、Fractalは固定表示とZoom後をそれぞれ比較します。Playhead付近を目で追い、発音した瞬間の色や座標を確認します。動画サンプルでは走査線と音を同時に記録し、音だけでは分からない対応を示します。

要点

画面、走査、Threshold、Mappingの四段階を分けます。見た目が複雑でも、発音条件を一つずつ固定すれば違いを追えます。

この状態はこのブラウザだけに保存されます。