5 つの技術と用途
- FFT(周波数解析)
- 短時間フーリエ変換で音声を周波数ごとのエネルギーに分解。ベース帯域(〜250Hz)、ミッド(〜4kHz)、ハイ(〜16kHz)などを別個に取り出せる。「ベースで色が変わる」「ハイハットでキラッと光る」等の帯域別演出に向く。Web Audio API なら AnalyserNode の getByteFrequencyData() で即取得可能。
- ラウドネス(RMS / Peak)
- 瞬時の音量。RMS は平均的な "体感音量"、Peak は瞬間ピーク。音量 → brightness や scale にマッピングする最もシンプルな反応。ライブ VJ のデフォルトレイヤー。
- BPM 検出(Beat tracking)
- 曲のテンポを自動推定。Dance 系 120-140 BPM、Hip Hop 90 BPM、DnB 170 BPM など。検出できれば LFO を BPM に同期させたり、ビートごとに映像をパッと切り替えたりできる。精度は環境音の多いクラブではやや落ちる。
- オンセット検出(Onset detection)
- キックやスネアなど「突然の音の立ち上がり」を検出。瞬発的な演出(ストロボ、色反転、切替)に使う。FFT のエネルギー変化や spectral flux を監視するアルゴリズムが一般的。
- LFO(Low-Frequency Oscillator)
- 音声とは独立して、自律的に揺らぐ信号源。正弦波・三角波・鋸波などで 0.1Hz〜数 Hz の低周波を生成。「音に反応していないのに生きている画面」を作る唯一の手段で、音反応とブレンドすると "自然な揺らぎ+ピーク反応" の両立ができる。
実装環境と参考ライブラリ
プロの現場で最もよく使われるのは Max/MSP(Cycling '74)と TouchDesigner(Derivative)。どちらも FFT・オンセット検出・BPM 検出のモジュールが標準で用意されており、映像側にノード接続するだけで音反応演出が組めます。Max/MSP は Ableton Live と Max for Live として深く統合され、Henke / Monolake のようなアーティストが長年使う道具です。
ブラウザ側でやるなら Web Audio API の AnalyserNode が入口。JavaScript だけで FFT・RMS・waveform データが取れ、Three.js や Hydra と組み合わせて映像に繋げられます。Butterchurn(MilkDrop の Web 移植、jberg 作)は音反応ビジュアライザの完成形に近い形で、プリセットの読み込みだけで始められます。