# Why PlayStation's reverb only (almost) worked at 22050 Hz?

The no\$psx emulator is shipped with extensive docs.

In the SPU reverb section, there's the algorithm and the following note:

The reverb hardware spends one 44100h cycle on left calculations, and the next 44100h cycle on right calculations (unlike as shown in the above formula, where left/right are shown simultaneously at 22050Hz).

This is a bit puzzling as the author uses the suffix h when it talks in hexadecimal units, but in this case, `44100h` makes no sense so I suppose it's a typo and Hz are meant instead.

That said, I re-implemented the algorithm and it sounds 99% like the closed-source emulator.

After fiddling with it, it turns out that it can also work at 44100 Hz! (*1)

Sadly, trying to make it working at, say, 48000 Hz, didn't work at all. (*2)

*1 - by multiplying all coefficients by 2 and apply a 22050 Hz LP filter for crazy highs

*2 - upgraded it from shorts to floats, which worked fine for 22050 Hz and 44100 Hz

Question:

So, why is the PS1 reverb stubbornly tied to a multiple of 22050 Hz?

• If the hardware such as the chip or clocks that drive it is made to work at a single rate then it does not work at any other rate. For example a CD player and the audio system that processes the audio is made to work only at one specific rate, or in case of oversampling, multiples of that base rate. Are you simply asking why it does not support other rates? If you alter the rate you need to alter the coefficients to have same impulse response at the new rate. You can implement anything in software but the original hardware can't. Commented Jul 31 at 10:30
• @Justme: Additionally, trying to playback a waveform using an output sample rate other than the one with which it is recorded requires a lot of CPU horsepower to do well, but a lot less to do adequately; doing the "adequate" level of processing on a reverb effect, however, is likely to make things sound bad. Commented Jul 31 at 14:44
• @supercat The SPU seems to do that already, it looks like you can select at which rate each channel plays data and the sound chip outputs at a fixed rate of 44.1 kHz. Commented Jul 31 at 16:14
• Per github.com/psx-spx/psx-spx.github.io "An important detail to know about this current document, as well as the original from Martin, is that it isn't a clean room reverse engineering project, as some people may seem to believe or repeat. A good chunk of the original document has been either directly copy/pasted from the confidential code and documentation from Sony, or summarized and rephrased." So I'm not sure your opening sentence "The no\$psx emulator is shipped with extensive reverse-engineering docs." is accurate. Commented Jul 31 at 16:38