前回実装したCQTでスペクトログラムをリアルタイムに解析するWindowsアプリをVST3プラグインにした。
描画処理
はじめ、VSTGUIの描画メソッド(drawLineなど)で、全面を描画するようにしたが、カクついてリアルタイムに表示できなった。
オフスクリーンのビットマップを作成してからビットマップを描画するように変更したところ、リアルタイムに描画できるようになった。
拡大処理
VSTGUIでビットマップを作成すると、オフスクリーンのピクセルとスクリーンのピクセルがずれるため、正しく表示されなかった。
試行錯誤したところ、
VSTGUI::CGraphicsTransform tm; tm.scale (scaleX, scaleY); tm.translate(pr.left, pr.top);
のようにして、行列変換することでピッタリ表示されるようになった。
スペクトルの補間
スペクトルの放物線補間は、スクリーンのピクセル単位まで細かくする必要はないため、オフスクリーンではビンの中心周波数の間の2点を補間して、それをスクリーンに拡大表示するようにした。
2点を補間することで、画面上の半音が3分割され、中心をビンの中心周波数にできるためである。
