I am currently taking a special projects in music technology class. The emphasis for this session is on instrument acoustics and we are each tasked with a project to build an instrument based on research of the principles and phenomena involved. I will be working in the virtual arena trying to emulate a unique instrument in software that can emulate the physical properties or characteristics of real instruments. This process is known as physical modeling.
I have currently been surveying a variety of platforms to work as the only music programming I have done so far was in Java and a little bit of C# in the earliest iterations of my wii theremin project. I will most likely end up working with Max/MSP as it is a modular, object based system with a graphical interface – and I need to get up and running as soon as possible. I am also looking at the following languages/platforms which I’ve found along the way:
- Csound – “…a sound design, music synthesis, and signal processing system, providing facilities for composition and performance over a wide range of platforms.”
- SuperCollider – “…an environment and programming language for real time audio synthesis and algorithmic composition.”
- PureData – “…a real-time graphical programming environment for audio, video, and graphical processing.”
- Steinberg’s VST SDK– allows developers to develop plugins that can operate within Steinberg’s Virtual Studio Technology environment.
Now, these comprise just the basic platforms I am looking at to get started and they are just general synthesis and digital sound processing type programming environments. For physical modeling itself, I have discovered the following packages:
- PMPd(Physical Modeling for Pure Data) – PMPd offers a collection of objects for Pure Data , and also ported to Max/MSP, which provide real time simulation of physical behaviors.
- rtcmix~– rtcmix is an open source audio programming language written in C/C++, however the component I am interested in is the rtcmix~ object for Max/MSP which the developers have provided.
- Tao – “… software package for sound synthesis using physical models. It provides a virtual acoustic material constructed from masses and springs which can be used as the basis for building quite complex virtual musical instruments. Tao comes with a synthesis language for creating and playing instruments and a fully documented (eventually) C++ API for those who would like to use it as an object library.”
- Percolate – “…an open-source distribution of a variety of synthesis and signal processing algorithms for Max/MSP.” Percolate is based on a port of the Synthesis Toolkit, another system I am looking to work with. Unfortunately, the Max/MSP windows port link for this seems to not be working…
- Modalys– Developed by Ircam, this seems like it would be the holy grail of physical modeling tools for me to work with. Unfortunately, it is for Macs only (although it looks like some folks have tried to get it running in Linux) and to gain access to it one must become a member of the Ircam forums which costs a decent chuck of cash, so this is out of reach for me; at least for the time being.
The following videos show Modalys in action. What is amazing about Modalys is its accurate representation of actual instruments. These aren’t samples or Wavetable lookups, these are synthesized emulations that completely capture the timbre, characteristics and even peculiarities of the instruments, right down to reeded instruments such as the clarinet or saxophone squeaking.