Demonstration Spectral Plugins (pvoc)  for VST 2.3 (Win32) and DirectX

Description and caveats.

VST plugins

These have no built-in GUI, but use the facilities of the host. each effect is implemented as a separate plugin.

Download  (517K)

(You are recommended NOT to Bookmark this page - it will probably move soon, and this 'documentation' will get better!) The zipfile contains all three example  plugins.  The files should be copied into the VST Plugins folder(s) of your VST host application(s).

DirectX plugin "PVStream"

The plugin implements, and serves to demonstrate, a simple internal spectral plugin framework, enabling three slots to be occupied by any of the three supported effects. Effects can be added/removed while the plugin is running. It has been developed using the DirectX 7 SDK, and hence does not support DX8 automation, which is planned for a future release. It has been tested in SoundForge, Cool Edit Pro, Cakewalk Pro Audio 9,  and Cakewalk SONAR, using a Pentium II 333MHz machine.  View Screenshot.

Download (189K)

Standalone version.

If you do not have a suitable DX host application, you can download a standalone version of PVStream.
This functions similarly to the Windows MediaPlayer. It reads a mono soundfile from disk, and streams the audio to the soundcard via the pvoc plugin framework. By being based on a disk file, it offers one special experimental facility, to 'freeze' the audio at any point, while continuing to apply the effects. Looping playback is also supported. 

Download PVStream (Standalone) (257KB)
NB: provisional release. Licensing for these sources is not resolved yet. It is best if they are treated as if being under the GPL.
See the file readme_src.txt for more information.
To build VST plugins, the Steinberg VST SDK is required. For best performance, the FFTW libraries must be used. (31KB)        pvpsrc.tar.gz (25KB)

What do they do?

The plugins are based on programs from the CDP system , developed by Trevor Wishart.

They are all strictly mono  only, so in Cubase VST, for example, they will have to be used as channel Inserts.
They have only been tested so far at the 44100 sample rate, and I fully expect them only to work at that rate. On a Pentium II 333MHz machine each plugin runs cleanly in real time, running around 40% to 50% CPU load. Your mileage may vary. There is no GUI - they use the default GUI provided by the host application.

PVACCU:  spectral accumulation. The most extreme effect of the three! Applies feedback echo to each analysis channel, with the possibility also to apply a pitch glissando up or down. Echo is amplitude dependent, so this effect is most apparent when applied to percussive sounds, or any sound with distinct changes.

PVEXAG: exaggerates the spectrum. Positive exaggeration will emphasize spectral peaks, eventually becoming distinct pitches. Negative exaggeration flattens peaks, and larger values will effectively generate  a granular noise. This can sometimes be effective for some percussive sounds, such as drum loops.

PVTRANSP: an unsophisticated pitch shifter, offering a range of one octave up and down. Really little more than a demo of the fact it can be done at all!

Implementation details.

The plugins are based on 'pvoc' from the CARL distribution, adapted to use the FFTW libraries, for a significant speed increase. All the plugins use a 1024-sample FFT, with a double-length analysis window. For PVACCU and PVEXAG the overlap is 256 samples, so that plugin processes some 344  FFT/IFFT pairs (analysis and resynthesis) per second at the 44100 sample rate. PVTRANSP uses a slighly small overlap of 160 samples, which offers a reasonable compromise between processing time and quality.

Richard Dobson
CDP 2001, 2012