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