Genetic Reverb - Genetic Algorithm-based VST Reverb Plugin
A VST 2 audio effect plugin written in MATLAB that uses a genetic algorithm to generate a random impulse response describing the reverberation of an artificial room, and uses the impulse response to apply convolution reverb to a signal in real-time. A MATLAB script version (main.m) is also available, which accepts a WAV audio file as input instead. The input is combined with the impulse response via convolution, applying the reverb effect to the pre-recorded audio.
Since no two impulse responses will ever be the same, both the script and the plugin are also able to save the generated impulse responses to new files as well. You can then load the generated impulse response files into other programs such as my simple IR Reverb Pure Data patch (https://github.com/edward-ly/reverb-pd) or the Convolution Reverb device in Ableton Live (https://www.ableton.com/en/packs/convolution-reverb/) to perform the same reverb effect.
A video explaining and demonstrating (an older version of) the plugin is below:
https://www.youtube.com/watch?v=Ef1d6nr7TqE
This plugin was selected as a finalist in the MATLAB Plugin Student Competition at the 147th AES Convention in New York, 2019, then later published in the Special Issue "Artificial Intelligence and Complexity in Art, Music, Games and Design" of the journal "Entropy".
For details regarding generating and running the plugin as well as an explanation of the user parameters in the plugin, see the included README.md file.
Cite As
Ly, Edward, and Julián Villegas. “Generating Artificial Reverberation via Genetic Algorithms for Real-Time Applications.” Entropy, vol. 22, no. 11, MDPI AG, Nov. 2020, p. 1309, doi:10.3390/e22111309.
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
components
components/@GeneticReverb
scripts
Versions that use the GitHub default branch cannot be downloaded
Version | Published | Release Notes | |
---|---|---|---|
3.5.2.1 | See release notes for this release on GitHub: https://github.com/edward-ly/GeneticReverb/releases/tag/3.5.2.1 |
||
3.5.2 | Modified user parameters, multiple bug fixes. |
|
|
3.2.1 | Added predelay parameters, modified genetic algorithm, changed some parameter defaults and implementation |
|
|
3.1.1 | Major reworks to the genetic algorithm (esp. in the initialization step) as well as to the plugin parameters and UI window. Also, a new IR is now automatically generated using initial settings when the plugin is run for the first time. |
|
|
2.2.0 | -Added parameter that enables/disables normalization of stereo IRs based on RMS amplitude
|
|
|
2.1.0 | Added an additional toggle parameter to trigger the genetic algorithm to generate new impulse responses (instead of triggering by changing each GA parameter individually). |
|
|
2.0.1 | - Added ability to save current impulse response to new file (requires write access).
|
|
|
1.4.2.2 | Updated description |
|
|
1.4.2.1 | Fixed description |
|
|
1.4.2 | - Re-tuned default parameter values
|
|
|
1.4.1 | Updated master branch |
|
|
1.4.0 |
|