Musical Synthesis with Physical Modeling

Introduction

Physical Modeling is the most recent generation of musical synthesis.  In the past, synthesis has evolved through several forms.  First there were analog methods of combining wave generators and filters to generate sounds.  These sounds were expressive, but were not very "realistic" and had the same limitations of analog recordings.  Digital techniques were incorporated with FM synthesis, which wasn't much more realistic.  Sampling synthesis can yield a realistic sound for a given note (since it is fundamentally a recording of that note), but where it fails is that it assumes everything about the instrument to stay fixed except for the pitch, which with acoustic instruments, is the exact opposite of what really happens.  Physical modeling generates sounds based on an actual model of the instrument which allows for complete interaction with the parameters of synthesis, yielding unsurpassed expression and sonic quality.

The physical model is implemented using a digital waveguides to simulate the traveling waves which forms the heart of all acoustic instruments.  These digital waveguides can be efficiently implemented in either hardware or software using digital delays.  This technology was pioneered at Stanford's CCRMA (Center for Computer Research in Music and Acoustics) and has been licensed to Yamaha for use in both hardware synthesizers, the VL series, and a soon to come software synth, Sondius.
 

Parts

Delay Line

Fractional Delay

Reverb

Conclusion

We learned a lot about physical modeling.  If we had more time, we would like to implement a more sophisticated model, and add real-time control and interaction.  This would allow us to more easily experiment with the effect of the parameters, and also take advantage of the expression that physical modeling gives.  Perry Cook has a good C++ class framework for the basis of physical modeling.   Unfortunately, we were unable to get this working on the computers we have access to, so we couldn't build on the tools that he gave us.  Also, the reverb was incredibly slow, since it required a for loop in Matlab.  The code would be fairly straightforward to convert to C, and would would probably have real-time performance.
 
 
This is a Gang Project for Elec431.
Members: Bryan Cook | Vijay Iyer | Rebecca Ma | Jill Nelson | Mara Prandi-Abrams