目で見たかったWhy

曲を作っていると、「いま音に何が起きているのか、目で見て確かめたい」と思う場面があります。
欲しかったのは、その瞬間をそのまま映してくれる道具でした。見つからなかったので、DAW で使う VST プラグインとして自分で作りました。

ToneDiffFrequency response

プラグインを通ると、周波数特性がどう変わるのか。それを目で見るためのツールです。

EQ プラグインの前後に ToneDiff を挿し、通過前と通過後の周波数特性を重ねて表示している画面。下段には両者の差分が別の線で描かれている。
ターゲットにしたいプラグインを ToneDiff ではさみ、通過の前後を比べているところ。

ターゲットにしたいプラグインの前後に挿して、通過することで周波数特性がどう変化したかを視覚的にとらえるツールを作りました。

ビンテージ EQ のツマミをまわすとどんな挙動をするのかを、曲の制作のなかでリアルタイムに観測できるツールが欲しかったからです。耳で聞くだけでなく、視覚でとらえることの意義は大きいと感じています。

あの「Pultec EQ」のブーストとアッテネーションもよく分かります。

形式
VST3(Windows)
表示
周波数特性(横軸は対数の周波数、縦軸は 0 〜 -120 dB)
演算
FFT 8192 点、L+R を解析
比較
共有メモリ 8 スロット(A 〜 H)。別の位置に挿した ToneDiff が書き込んだ特性を読み込み、重ねて描く
差分
通過前と通過後の差を ±24 dB の軸で別に描画

WaveDiffOscilloscope

音の立ち上がりの差を見て、そのまま そろえるところまでを 1 枚の画面で。

WaveDiff の画面。4 トラック分の波形が色分けされて縦に並び、右側にチャンネルごとの Intensity・Zoom・Zero のツマミ、下部に Range・Trigger・X1・X2・TimeDelay の操作が並んでいる。
4 チャンネル分の波形を並べて、立ち上がりの差を見ているところ。

4 チャンネルのオシロスコープを模して作りました。比べたいトラックそれぞれに挿して使います。

トラック別に挿せば、音の立ち上がりの差がひと目で分かります。発音の遅い音源があったりしたときに便利です。

見るだけではなく、「TimeDelay」のツマミをいじればその波形をそろえることもできます。ドラムのズレ、ブラス楽器の遅れ、調整するところはたくさんあるはずです。

形式
VST3(Windows)
表示
4 チャンネルのオシロスコープ(チャンネルごとに色分け)
横軸
1/64 音符から 4 小節まで切り替え。小節と msec の表示を切り替え可能
縦軸
1 〜 32 倍のズーム。チャンネルごとに明るさとゼロ位置を調整
測定
X1・X2 の 2 本のカーソルで、2 点間の時間差を数値表示
補正
TimeDelay で -500 〜 +500 ミリ秒。ズレた波形をその場でそろえる

作り方のメモHow

どちらも同じ土台の上に作っています。

  • VST3 プラグインとして作る

    Steinberg の VST3 SDK を使い、C++ で書いています。音そのものには手を加えず、入力をそのまま出力へ通しながら、通り過ぎる信号を観測しています。

  • 画面は自分で描く

    グラフも波形も、VSTGUI のカスタムビュー上に自前で描画しています。ダブルバッファで描くことで、演奏しながらでも引っかからずに動きます。

  • プラグイン同士で見せ合う

    離れた場所に挿した同じプラグイン同士が、共有メモリを通じて観測結果をやりとりします。「前と後ろ」「このトラックとあのトラック」を 1 枚の画面で比べられるのは、この仕組みのおかげです。

  • C++
  • VST3 SDK
  • VSTGUI
  • FFT
  • 共有メモリ
  • Windows