2026年5月12日 · 開発ストーリー

SiteTuneの開発ストーリー

SiteTuneは「Webサイトを音楽に変換する」という、よく考えると奇妙なサービスです。なぜこれを作ろうと思ったのか、どんな試行錯誤を経て今の形に落ち着いたのか、開発の経緯を振り返ります。

きっかけ:「サイトの個性を視覚以外で感じたい」

普段、Webサイトの「個性」は視覚的な要素(色・レイアウト・フォント)で判断されます。でも本当はそれ以前に、HTMLの構造そのものに、サイト運営者の思想が反映されているはずです。

  • セマンティックタグを丁寧に使うサイト
  • divだらけで構造をフレームワークに任せるサイト
  • ミニマルなランディングページ
  • 大量のコンテンツを階層的に整理するサイト

この「構造的な個性」を、視覚以外の方法で感じてみたい — それが原点でした。聴覚なら、ロジックの違いがそのまま「音色の違い」として伝わるのではないか。そんな仮説から始まりました。

初期プロトタイプ:SF2サンプルベース

最初のバージョンでは、SoundFont(SF2)ファイルからピアノ・ギター・ベースのサンプル音を読み込み、再生する設計でした。

このアプローチには次の問題がありました:

  • サイズが巨大 — ピアノ9MB + ギター10MB + ベース3.4MB = 約22MB のSF2が必要
  • ロード時間 — 初回再生まで数秒の待ち時間
  • 音色の制約 — リアル系の音色なので、デジタル系のサイトにマッチしない
  • ライセンス — SF2の二次配布ライセンスを毎回確認する必要

「Web上でWebサイトを音楽化する」という小さなツールにしては、装備が重すぎました。

転換点:「デジタル音 = 正解」のジャンル選定

悩んだ末、思い切ってリアル系楽器を捨て、デジタル系シンセサウンドだけに振り切ることを決めました。理由はシンプルです:

  • Webサイトは デジタル なメディア
  • デジタルなものをデジタルな音で表現すれば、違和感がない
  • シンセは WebAudio API のオシレータだけで合成できる
  • サンプルファイルが不要になる

「ピアノでサイトを表現するのは、写真を油絵で模写するようなもの。元のメディアと表現手段がズレている」と気づいた瞬間、霧が晴れました。

純WebAudioシンセエンジンの構築

v2.0では、すべての楽器をWebAudio APIのオシレータ + フィルタ + エンベロープで合成するようにしました。

  • ベース — 2オシレータ(saw + square)+ レゾナントローパスフィルタのエンベロープ
  • コード — synthPluck(短いアタック + 速いディケイ)または synthPad(長いアタック + 持続)
  • リード — デチューンとポルタメント、遅延ビブラート
  • キック — サイン波のピッチスウィープ + サブベース + クリック
  • スネア・ハイハット — ノイズ + バンドパスフィルタの組み合わせ

結果、プラグインサイズは 20MB → 362KB(97%削減)。それでいて、ジャンルがデジタル系に振り切れたことで「サンプルなしの方が逆にマッチしている」という、嬉しい誤算がありました。

4ジャンルの分岐:Synthwave / Electropop / Techno / Ambient

サイトの構造的特徴に応じて、4つのジャンルに自動振り分けする仕組みを実装しました。

  • シンプル系 → Ambient
  • 個人ブログ・コーポレート → Synthwave
  • ポータル・ニュース → Electropop
  • 大規模・SPA → Techno

同じURLからは必ず同じジャンルになるよう、URLハッシュを決定論的乱数源として使用しました。ジャンル判定の詳細はこちら

こだわりポイント:あえてAIを使わない

近年「音楽生成」はほぼAIの独擅場ですが、SiteTuneはあえてAIを使っていません。理由は3つあります。

1. 透明性

「このHTMLが、こういう音にマッピングされた」というプロセスがすべてコードとして開示できます。AIだとブラックボックスになり、説明が難しくなります。

2. 再現性

同じURLからは必ず同じ曲。これは、ユーザー体験として極めて重要だと考えました。「あの時聴いた曲が、今は違う」となるとサービスの軸がぶれます。

3. 軽量性

AIモデルは、軽量なものでも数十MB、しっかりしたものは数GB単位。SiteTuneは362KBで完結します。WordPressプラグインとして配布できる手軽さが、この方針の副産物として手に入りました。

WordPressプラグイン化の判断

当初はSPA(単独のWebアプリ)として作る想定でしたが、最終的にWordPressプラグイン形式にしました。理由は次のとおりです。

  • サーバーサイドのHTML取得・解析を、WP REST API を流用すれば既存資産で実装できる
  • 誰でもWPにインストールするだけで動く
  • 独自ドメインで運営できる
  • ショートコードで好きなページに埋め込める

結果、SiteTuneは「sitetune.net」という公式サイトと、配布可能なプラグインの2つの形を持つことになりました。

これからの開発予定

v2.0系のシンセ基盤が固まったので、次は表現の幅を広げる方向に向かう予定です。

  • ジャンルの追加(Lo-fi Hip-Hop / Drum’n’Bass 等)
  • 解析対象のフォーマット拡張(Markdown / JSON / RSS 等)
  • 音楽イベントJSONのエクスポート(DAWに取り込んで編集できる形式)
  • サイト同士の「相性診断」(音楽的な類似度で診断)

最後に:作っていて楽しかった

「Webサイトを音楽にする」という試みは、技術的にもアイデア的にも変わったものでした。完成してみて思うのは、「視覚 ⇔ 聴覚 の橋渡し」自体が、実はあまりやられていない領域だったということです。

SiteTuneを使ってみて「自分のサイト、こんな音だったのか」と新たな発見があれば、開発した側としては嬉しい限りです。