This work on mass-interaction physical models in gen~ has now stabilised and progressed further.
The new, up to date tools can be dowloaded here: github.com/mi-creative/mi-gen
and a Python-based model editor (with Qt UI) can be found here: github.com/mi-creative/MIMS
Recently, I have spent a little time playing around with Physical Models.
More specifically, I have been working on getting modular Mass-Interaction simulations to run inside Max/MSP, so as to simulate all kinds of mechanical vibrating objects, that can be connected to pretty much anything else going on in Max (MIDI or OSC controls, effect post-processing, etc.): I called this genPhyMdl.
Some similar things have been done by others, namely Edgar Berdahl and Alexandros Kontogeorgakopoulos (HSP and Synth-A-Modeler projects). Hovewer, the main difference of my work is that it runs in gen~ (Max’s efficient, DSP-oriented tool), meaning simulating single sample delay loops for computation is no hassle, and meaning that it runs pretty fast!
Here is a quick low-down on genPhyMdl:
- Physical Models are described by a number of masses and links (springs, detents, non linear interactions, etc) in a fairly simple text file format.
- A set of Python scripts generate gen~ Codebox dsp code from the model description and encapsulate it into a nice clean .gendsp object that can be included into any Max patch.
- The user can now connect this object to inlets and outlets, depending on what he wants to do with the model!
(edit: go to github.com/mi-creative/mi-gen instead)
It also contains a PDF document that goes into some more detail about mass-interaction modelling for sound synthesis, how genPhyMdl syntax works and how you can do some fun stuff in Max.
Of course, it also comes with a bunch of examples (with pre-compiled .gendsp objects) that should be ready to go on any machine with Max/MSP running.
Now, as this is a small-scale project that I’ve been doing on my spare time… some stuff may not be perfect. In particular, I haven’t fully checked the compatibility/easiness of getting this all to run on Mac (I develop on Windows/Linux, hence Windows for Max stuff).
Here’s hoping that some people will be interested enough to bug-test it, provide me with additional feedback and maybe create some nice physically-based virtual musical instruments in Max/MSP!
I leave you with a short track I created, using several layers of a bowed “monochord” type instrument…. Have a happy new year everyone!