Mass-Interaction Sound Synthesis Toolbox for gen~

.quasar's icon

Don't think this has been posted before on the forum. I just wanted to share this awesome work by James Leonard because it does show how far gen~ allows you to go with physical models.

In this case, the physical modeling paradigm chosen is related to Mass Spring Systems which describes an audio object as a set of mass and springs (which could be nonlinear). It is quite like Genesis and other work by ACROE & Cadoz.

Here's the github link, there are some great examples in there !

.quasar's icon

Started playing around with the examples' models and added nonlinear-springs to this Plucked String instrument.

You should first download the whole gen~ library on github and then save it in your max library folder. Then save these 2 files in that same library folder and have fun !

    

PluckedStringModelNonlin2.maxpat
text/plain 44.45 KB

PluckedStringModelNonlin3.gendsp
gendsp 34.13 KB

James Leonard's icon

Hi Quasar,
Thanks for sharing !
I've been doing some more work on this stuff (correcting a few bugs, trying out new features), hopefully I can make a series of tutorial videos to make it easier to get into.
I like your non-linear string code!
When switching from some presets to others it can go unstable, but you found some nice tones.
Let me know if you want it integrated into the mi-gen~ examples, and keep me posted if you work on other things.
Cheers,
James

.quasar's icon

Thanks for your reply and the work you've put in ! Yeah I agree, the nonlinearity can make the system unstable under some conditions (as always when it comes to feedback systems). I've worked a bit on adding parameter scaling to prevent unstability (increase damping by a small amount if the mass is high or the stiffness low and scale the nonlinearity depending on the stiffness - lower stiffness = lower nonlinearity).

I'll share it when I made those adjustements :) It just takes a bit of time and care to adjust the parameters' mapping but I would gladly have it included in the mi-gen~ examples if you feel it is suitable :)

To be honest I'm having a blast with the examples and the toolkit. I'm working on a nonlinear mesh based percussion instrument to be used in real time. Adding the nonlinear springs to the 15x15 mesh examples gave me wonderful results and really realistic cymbals and kettledrum sounds !

.quasar's icon

Just thought about it but I would just love to do an implementation of Scanned Synthesis with the Mass Spring Toolkit just like what was done in the PMPD package's mass interaction toolkit for Pure Data.

So basically each mass would represent a sample in a wavetable which is updated at a rate chosen by the user.