"CD-SR1" Spring Reverb
- Aug 20, 2021
- 2 min read
Updated: Feb 11
Modal Resonator powered VST Plugin
This VST plugin designed, programmed and developed for my masters degree final thesis uses a novel method of modal resonance to successfully model true spring reverberation as well as that of physically impossible springs.
A novel modal resonator model of spring reverb was developed and implemented as a realtime
functioning plugin in C++. Through the use of physically informed damping profiles, multi-dimensional interpolated lookup tables and SSE optimisation a commercially competitive sounding and performing spring reverb plugin was achieved. In addition, physically impossible springs (over 100m in length, inordinately dense etc) were modelled and included, producing some weird and wonderful results.
Spring Reverb as a Modal Resonator

The helical spring is a notoriously complex physical system (over 13 independent variables!), so in order to create a physically accurate model which could run at real time some kind of simplification had to be made.
By calculating the modal distributions and weights of resonance offline and storing them in lookup tables, the spring could be brought to life with very low computational cost.
However, to allow the user to control the dimensions of the spring in real-time many sets of modes had to be stored, meaning multi-dimensional interpolation was required to allow smooth parameter adjustment.
Parameter Space Analysis

As mentioned before, the helical spring has over 13 free variables, meaning deciding on which parameters to allow the user to control presented an interesting challenge. Extensive parameter space analysis was performed to explore which physical properties of a spring yielded the most varied and interesting results. These were then combined into macro-controls to allow for an even wider range of possible sounds, with directly understandable names.
Physically-informed Damping & Non-Physical Parameter Extension

A variety of real spring impulse responses were analysed with their frequency-dependant decay profiles extracted and applied to the modal model. In addition, non-physical sets of modal distributions were also generated. Springs hundreds of meters long, incredibly dense or other strange physical properties. These extended parameters were included under Real/Experimental toggle in the UI of the plugin. Finally SIMD optimisation was applied to further increase efficiency and decrease computation load.
Video Demonstration
My full thesis report details the physics and mathematics behind this project, the functionality of the C++ programming and the intentions behind all majors decisions made during the project. This can be found below:



