プリセットを作る

🥁 拍・BPM・低音 — リズムをどう見せるか

拍の「供給(BPM・頭出し)」と「視覚化(プリセット)」は別問題。低音と拍が同時になる理由と、VJ 設計の選択肢。

🥁 拍・BPM・低音 — リズムをどう見せるか

VJ で「曲のノリ」を出す心臓部。ここは 2つの層に分けて考えると一気に整理できる。

  • ① 拍を正確に供給する(タイミングの問題)
  • ② 拍を見て分かる絵にする(表現の問題)

両方そろって初めて、見ている人に拍が伝わる。どちらか欠けると伝わらない。


🎯 ① 拍を供給する

⚡ VJam のデフォルト:リアルタイム推定

VJam は曲を事前に知らない。その場でマイク/ファイルの音を聞いて、**「直近の平均より急に大きくなった瞬間 = 拍」**と推定する(audio-analyzer.js)。

const avg = this._rmsHistory.avg();    // 最近30回ぶんの平均音量
if (rms > avg * 1.3) rmsBeat = true;   // 平均の1.3倍を超えたら拍
  • 3つの角度で見る:音量スパイク + 音色変化(spectral flux)+ 低音の立ち上がり(bass onset)。どれか1つでも反応したら拍
  • 連発しないよう 0.25秒のクールダウン
  • 利点:マイクで何でも拾える(ライブ・環境音もOK)。欠点:「だいたい」で、曲によって外す

🎧 本物の DJ ソフト:事前解析グリッド

rekordbox / Serato は曲を読み込んだ瞬間に全体を解析してビートグリッド(拍の地図)を作る。再生中はそれに従うだけなので正確・ズレない。ただし「自分が再生する曲データ」が前提。

本物の DJ ソフト VJam(デフォルト)
拍の出し方 事前解析でグリッド リアルタイム推定
精度 正確・ズレない だいたい・曲で外す
対象 自分が流す曲だけ マイクで拾える音なら何でも

🔧 VJam を「本物寄り」にする手段

  • tapBeat — 曲に合わせてタップ → BPM を割り出す
  • 手動 BPM(clock mode) — BPM を直接入れて、音の大小と無関係に等間隔で正確に刻む
  • syncBeatClockTo — PAD を小節の頭で押すと、その瞬間が 1拍目になる(=頭出し)。BPM ↔ 曲 ↔ Clip が揃う

プロ VJ ソフトが MIDI クロックや Ableton Link で DJ 機材から拍をもらうのも同じ発想。


👁️ ② 拍を見せる(プリセット次第)

いくら①で正確な拍が来ても、プリセットがそれを目立つ絵にしなければ伝わらない。

これは my-circle で実際に体験できる:

  • beat を「大きさ」に足した → bass の膨らみに埋もれて拍に見えない
  • beat を「波紋」に独立させた → 拍がはっきり見える

同じ拍データでも、プリセットの作り方で「伝わる/伝わらない」が決まる。拍は独立した視覚要素(波紋・フラッシュ・カット)に割り当てるのがコツ。

✨ プロが拍を見せる定番手

  • 拍でカット(映像をパッと切り替える)
  • 拍でフラッシュ/ストロボ(一瞬飛ばす)
  • 拍でクリップ発火(別ビジュアルを launch)
  • BPM にエフェクトの周期を同期(回転・点滅が曲に乗る)

🥁 拍と低音は「同時」になりやすい

my-circle で「大きさ(bass)」と「波紋(beat)」が同時に動いて区別しにくいのは、偶然ではなく当然。理由が2つ重なっている。

🦵 理由1:キックが拍の頭に来る

バスドラム(キック)は拍の頭で鳴る。特にテクノ/ハウスの4つ打ちは毎拍キック = キックは「低音」かつ「拍の頭」なので、bass と beat が物理的に一致する。

🔎 理由2:VJam の検出が低音を拍判定に使ってる

3方式の1つが bass onset(低音の急な立ち上がり):

if (bassEnergy > avg * this._bassRatio) bassBeat = true;  // 低音が急に上がった → 拍

つまり「低音がドンと来た」こと自体が拍の判定材料。だから構造的にも bass と beat は連動する。


🎚️ VJ 設計の選択肢

拍と低音が連動しがちなのを踏まえて、設計を選ぶ:

  • 同時を活かす → bass と beat 両方に派手な反応を当て、キックで「ドカン!」と相乗効果(テクノ向き)
  • 拍を独立させたい
    • treble(ハイハット) は拍のに来ることが多い → 拍と違うリズムが出せる
    • clock mode(BPM固定)なら、音の大小と無関係に等間隔で刻むので低音とズレても出せる
  • ジャンルで変わる — 4つ打ちは bass=beat 完全一致、生バンドやヒップホップは bass と拍がズレる

📝 まとめ

  • 拍は ①供給(タイミング)②視覚化(表現) の2層。両方そろって伝わる
  • VJam の拍は「平均より急に大きい瞬間」を推定。正確にしたいなら TAP / 手動BPM / 頭出し
  • 拍は独立した視覚要素(波紋・フラッシュ・カット)に割り当てると見える
  • 低音と拍は キック + bass onset 検出で同時になりやすい。活かすか、treble/clock で独立させるか

© 2022-2025 infoHiroki. All rights reserved.