The PlayStation 1 SPU reverb as a VST3/AU plugin, in C++ with JUCE.
Built from nocash's SPU notes, reverb formula, reverb examples, and psx-spx.
In addition to the PS1 base reverb, this plugin also allows you to mix the input and output levels, as well as stereo width, pre-delay, and dampening.
Taken from the SPU registers:
Room, Studio Small, Studio Medium, Studio Large, Hall,
Half Echo, Space Echo, Chaos Echo, Delay
Dry, then the same source through Hall:
demo.mp4
The core is in integer Q15 format, running the reverb algorithm at the SPU's half rate, accurately to the original PS1 SPU. The preset tables were verified against register dumps from a running emulator. It was also found that Wipeout tunnels use the "Hall" preset through these register dumps.
Needs JUCE. The .jucer uses
Projucer's global module path, so either clone JUCE to ~/JUCE or set
Projucer -> Settings -> Global Paths -> JUCE Modules to the install location.
Open Ps1Verb.jucer in Projucer, save to generate the build files, then build.
