Giter Club home page Giter Club logo

lv2-psx-reverb's Introduction

PSX Reverb (LV2 Plugin)

Overview

PSX Reverb is a small audio plugin for LV2 hosts (I like to use Carla). It is intended to emulate the PlayStation SPU's reverb algorithm.

psxreverb

It now works for all samplerates and compensates for different buffer sizes and coefficient changes accordingly. 10 different presets are available which are the ones you'll find in most commercial games. Games will likely use one of the available algorithms but usually they vary the wet level, so you may have to tweak around with that.

In order to find out which preset a game uses you can use NO$PSX and check the contents of the reverb registers.

http://www.problemkaputt.de/psx-spx.htm#spureverbregisters

Compare the register values to the presets here:

http://www.problemkaputt.de/psx-spx.htm#spureverbexamples

Games usually only adjust vLOUT and vROUT (usually equal) which you can convert to logarithmic units in order to tweak the wet level of this plugin.

If you want to add new presets, you'll have to do so in the code. Exposing the reverb registers directly as control ports would make the plugin almost unusable since you have to deeply understand the algorithm in order to make the sound not go bad.

This plugin was originally based on the "Simple Amplifier" example plugin code.

Examples

This is a demo with a Final Fantasy XII sequence. It's not a PSX game but it still sounds reasonable:

Large Studio @ -5 dB wet:

reverb_on_Projekt.mp4

Clean:

reverb_off_Projekt.mp4

The next one is from Final Fantasy IX and tries to mimic the original reverb settings as close as possible. It sounds somewhat different because, unlike the real console, this code doesn't downsample the reverb to 22050 Hz. But other than the additional brightness of the higher frequencies it sounds almost spot on to the original:

Large Studio @ -9.3 dB wet:

vivi_reverb.mp4

Clean:

vivi_no_reverb.mp4

For now I don't have examples of the other presets recorded, but the Large Studio is no doubt my favorite presets, followed by Hall.

How to compile

Install your distribution's lv2-dev package, init all submodules with git submodule update --init and run ./build.sh. This will automatically install the plugin to your home directory ~/.lv2 where most hosts will be able to find it. If you want to install it to somewhere else, change the build.sh script.

lv2-psx-reverb's People

Contributors

ipatix avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.