What it does
The oversampler "hosts" another VST plugin, and oversamples it by 2. Because of this, aliasing has twice the frequency range to unfold, which means that the aliasing that enters back into the audible domain is much less, and upon downsampling, the upper range (containing only aliasing) is discarded. This results in audibly reduced aliasing.
Here's an audio demo that demonstrates the effect of the oversampler on a simple synthesizer with naive, digital oscillators. The sequence plays twice. The first time it plays the regular synthesizer, and the second time it is played through the oversampler. You'll easily notice that audible aliasing is reduced substantially (but not completely). This is using the old oversampler, the newer ones are even better!
How to use
It's quite simple. Place the .dll into the same folder as the .dll of the VST you wish to oversample. If the plugin you want to oversample is called <plugin>.dll, then rename the oversampler .dll to <plugin>.os.dll or <plugin>_os.dll. If you have "Show known file extensions" turned off, you will see <plugin> instead, so simply rename the oversampler to <plugin>.os.
How it works
Instead of writing a traditional "Host" inside of the plugin, Oversampler takes advantage of how VST works internally, and hooks itself into the dispatch callbacks of the plugin. Most things are passed on as they are, however a few things (such as setting the samplerate or the number of samples to process) are intercepted and adjusted accordingly.
This approach is superior to the regular hosting approach for many reasons:
- It is faster. The VST Oversampler only initializes a few bytes of memory at startup, and allocates only those buffers it needs before processing begins. It doesn't need any event storage buffers, and the overhead from hooking the dispatchers is negligible.
- It is more compatible. Since the host still talks directly with the plugin, it will work as long as the plugin works with the host on its own, and supports the higher samplerate.
- It is smaller. Excluding the parts of HIIR and the VST SDK included, Version 1.4 has 713 lines of code (including the logic to use SSE/3DNow!), with a compiled size of 88KB.
The DSP is, starting with 1.3, from the HIIR library by Laurent de Soras. Previous versions used my own DSP which worked but was not as good as Laurent's.
Compatibility
Care has been taken so that most if not all plugins work. Offline plugins as used by some audio editors are not supported. Shell plugins should theoretically work, but none have been tested.
I've only tested this on Windows XP, but it should work under 2000 and Vista as well.