Since the first synthesizers came out, users have wanted - besides creating new, synthetic sounds - to accurately generate the sounds of other instruments, such as organs, pianos, or guitars. The most often used method is playing back pre-recorded samples from an onboard memory, while shaping the waveforms and filtering the output. The spread of virtual synthesizers and the increasing computing power of CPUs have allowed more demanding, physics based syntesis methods to gain ground. In my B.Sc. thesis I created a modal-based bass synthesizer that, among other things, modeled the slap bass playing style.
This present work is about developing more functions to the previous synthesizer, putting emphasis on the modeling of the coupling between strings. The strings are connected to each other through the guitar bridge and body, and thus when the player plucks a string, all the others will also start to resonate.
For modeling the guitar bridge, measurements or estimation of the transfer functions between strings are needed. With these in hand, the guitar bridge model can be viewed and implemented as an addmittance matrix describing the transfer functions between the polarizations of the strings.
In this present work, for efficiently implementing the admittance matrix, a digital waveguide model is used for modeling the string. In this model the coupling between strings can be easily realized with passive parallel filters.
After modeling this coupling, there's a possibility to simulate all four strings continuously. For this model to work as intended, all the major forces acting on the string have to be modeled. These include an excitation model to be used for different playing stlyes, the fret and collision models describing the collisions during slap bass, and - as the waveguide is a fixed length one - the finger model for playing different notes by pitching.
The ultimate goal of this work is creating a synthesizer that runs in real time as a VSTi plugin and implements all previously stated functions. VST is a de facto standard environment developed by Steinberg that allows DAWs (Digital Audio Workstations) to access virtual synthesizers. After loading the plugin in one of these workstations, the user is able to control the synthesizer with an external MIDI controller, e.g. a keyboard, in real time.