A few days ago, I’ve released my first VST plugin. Now it is time to analyze how it works.
I’m pleased to announce the release of my first VST plugin (Windows 32bits), based on the simple overdrive prototype.
It is a mono filter, with an oversampling of 2 to 32, based on polyphase filters, and the undersampling is done after an 8th order Butterworth lowpass filter with a cut frequency of 22kHz.
The source code will be available (under the GPL) in the future if there is interest in the plugin and its support. The exact way it works will be explained in a future blog post.
The audio plugin is available on Sourceforge: https://sourceforge.net/projects/qtvst/files/QtSimpleOverdrive/
If you find any issue, please submit it on Github: https://github.com/mbrucher/qtvst
Please note that the oversampling can be quite CPU intensive (on my laptop, an Intel Core2 T7200, using an oversampling of 4 at 96kHz uses the full power of one core).
The review will not be as thorough as the one on Advisor Lite, because Advisor is an update of Advisor Lite. It has some additional features, and that’s what I’d like to focus on.
I won’t dwell into the details of Intel’s new offer, suffice to say that Intel took the opportunity of changing some offers name and of incorporating some parts of Parallel Studio in its other products, and of course on Linux (which was left alone until then).
After presenting Valgrind as an emulation profiler, I will present Microsoft solution, Visual Studio Performance Tool. It is available in the Team Suite editions, and offers a sampling- and an instrumentation-based profiler. Of course, it is embedded in Visual Studio IDE and accessible from a solution.
Profiling comes in three different flaviors. The first is emulation, where a processor behavior is emulated, the second is sampling, where at regular intervals, the profiler samples the status of a program, and fianlly instrulentation, where the profiler gets information when a subroutine is called and when it returns. As with the Heisenberg uncertainty, profiling changes the exact behavior of your program. This is something you have to remember when analyzing a profile.
Valgrind is an Open Source emulation profiler. It is freely available on standard Linux platforms. As it is an emulation, it is far slower than the actual program. This means that the I/O are underestimated. The advantage is that you can have every detail on the memory behavior (cache misses for instance). Valgrind does not emulate all processors, but you can tweak it to approach your own one.