PluginsDAW用VSTプラグイン自作
目で見たかったWhy
曲を作っていると、「いま音に何が起きているのか、目で見て確かめたい」と思う場面があります。
欲しかったのは、その瞬間をそのまま映してくれる道具でした。見つからなかったので、DAW で使う VST プラグインとして自分で作りました。
ToneDiffFrequency response
プラグインを通ると、周波数特性がどう変わるのか。それを目で見るためのツールです。
ターゲットにしたいプラグインの前後に挿して、通過することで周波数特性がどう変化したかを視覚的にとらえるツールを作りました。
ビンテージ EQ のツマミをまわすとどんな挙動をするのかを、曲の制作のなかでリアルタイムに観測できるツールが欲しかったからです。耳で聞くだけでなく、視覚でとらえることの意義は大きいと感じています。
あの「Pultec EQ」のブーストとアッテネーションもよく分かります。
- 形式
- VST3(Windows)
- 表示
- 周波数特性(横軸は対数の周波数、縦軸は 0 〜 -120 dB)
- 演算
- FFT 8192 点、L+R を解析
- 比較
- 共有メモリ 8 スロット(A 〜 H)。別の位置に挿した ToneDiff が書き込んだ特性を読み込み、重ねて描く
- 差分
- 通過前と通過後の差を ±24 dB の軸で別に描画
WaveDiffOscilloscope
音の立ち上がりの差を見て、そのまま そろえるところまでを 1 枚の画面で。
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 枚の画面で比べられるのは、この仕組みのおかげです。