Signal Physics: Not Jitter physics but 100% MSP/signal based physics simulations
Hi all,
Please enlighten me if you can.
I was wondering if there was signal based physics simulation engine.
Not Jitter's physics engine (bullet).
What I mean is , using Jitter's physic engine and converting it to Max to then trigger and filter stuff in MSP
will not give us MSP tightness.
In the same way that using Max to control signal/sound triggers and mathematics
versus 100% MSP to do calculations and process sound.
So I was wondering if there was a MSP/signal version of a physics simulation engine.
Endless Thanks
phiol
I don't believe there is, but this article provides a good orientation:
https://cycling74.com/tutorials/physical-modeling-synthesis-for-max-users-a-primer
Thanks floating point, had read it and forgot to mention it.
Thanks for the link.
If you see in the last video posted , you can hear something pretty from ircam that
seems pretty tight, but to have access to the tool you need to buy a forum subscription
of 350CAN$. Geez, a little expensive to try an library. Maybe subscribed to the ircam libraries is worth.
The only thing I found really funny is that they sell Max 518.44US$ when it is sold here for $399US$
mmm. Europeans pay heavy dollars for anything gear & instruments.
anyways , have you tried the IRCAM subscription. If so , is it worth it ?
thanks
phiol
either I'm too stingy or ircam is too greedy, but no i cannot see myself paying that much, unless it was for a project with a budget...
if it was me i'd probably spend time cobbling something together using other resources such as the rtcmix~ or the csound~ objects... but yes it would be great to have all that under the hood inside max-- i'd be interested to read any progress you make, maybe a library of gen patches?
Thanks for sharing your views.
phiol
hey phiol!
i found a free library and I'm trying to figure out what the possibilities are and how to integrate it into my workflow:
"The Synth-A-Modeler compiler, enables musicians to synthesize binary DSP modules according to mechanical analog model specications. This open-source tool promotes modular design and ease of use. By leveraging the Faust DSP programming environment, an output Pd, Max/MSP, SuperCollider, VST, LADSPA, or other external module is created, allowing the musician to hear the sound of the physical model in real time using an audio host application"
there is also a graphical user interface:
https://github.com/ptrv/SaM-Designer
and there is modalys from ircam which costs around 140 bucks
great topic!
there is also this which i haven't tried, yet:
The SDT consists of a library of ecologically-founded (e.g. physics-based) sound synthesis algorithms, available as externals and patches for Max and Pure Data.
thanks for the link ARF ,
what is of interest to me is more physics emulation behaviours that physical modelling synthesis
Simple Pendulum
Bouncy Balls
Cloth
Cloud
Random Arboretum
Tendrils
Box
simular to what we have in Jitter, but wanted to take away the jitter processing part.
have it all done in MSP.
As for physical modelling , the best tool I ever heard it logic's sculpture.
And finally , I remember there was a Max physics engine emulator , prior to jit.phys
but I can't find it anywhere. I remember trying it back in 2007-2008.
Would you know what I'm talking about ?
thanks again for the links.
phiol
I believe that it may have been pmpd, but the link is down.
Anybody still have the libraries and would like to share.
more on the topic
https://cycling74.com/forums/jit-phys-vs-pmpd-vs-msd
yeah , again I can't seem to find the, (i believe it was) the pmpd patches
that do
bouncing ball, string movement, Brownian movement, chaos, fluid dynamics, sand, gravitation
simulation directly to sound.
thanks again
phiol
pmpd downloads still available here: http://mathieu.chamagne.free.fr/max.htm
Thanks a lot spectro.
I have found them in the mean time , I tried box2d , pmpd, msd, modalys , and SDT.
I could not find any sound example based on triggering
quick question, do you know of patch series.
bouncing ball, string movement, Brownian movement, chaos, fluid dynamics, sand, gravitation , simulation
directly to sound triggers. As mentioned , I remember finding one in 2007-2008.
I will probably end up using the setup I already had with jit.phys to max to MSP.
What I'm trying to achieve is the behaviour of logic's sculpture instrument with the bouncing marble preset.
Have you ever heard this ?
Sorry can't find a link right now.
phiol
You know , something precisely like this but all MSP
https://cycling74.com/forums/bouncing-ball
still missing
string movement, Brownian movement, chaos, fluid dynamics, sand, gravitation
This is a domain I have been investigating for a long time as a musician, mainly because it's a way to implement in software what is called "modalités énergétiques" or "énergies" in acousmatic music. It was developed by French composer Guy Reibel in the seventies. It's a way to structure sonic sequences around sonic archetypes such as bounces, fluxes, oscillations, friction, rotations, etc.
I am especially interested in seeking the right gesture controllers for such models.
IRCAM's library is nice but IMHO it is too much oriented towards instrumental models and it's hard to go beyond the examples.
Some SDT models are really interesting.
The Cordis-Anima models from ACROE can provide really interesting and moving sounds, evolving continuously between pitched sound and noise. Sadly, there's no development towards Max and the licence is expensive.
Thanks for the feedback Roald,
I couldn't find any demos on the Acroe sight, no price quote either.
all I found upon google search was this
https://vimeo.com/126108629
Again,
thanks for the feedback
phil
There's a video with a short demo of Synth-A at the end: https://www.youtube.com/watch?v=rKsGPX3PwaQ but it's a bit disappointing, not much more than one can get with a resonant filter bank.
Here are some sound examples from Genesis (the sound synthesis software based on Cordis-Anima) : http://www.acroe-ica.org/fr/mediatheque/sonotheque but they are quite old.
By the way I think Logic's Sculpture is based on waveguides algorithms, probably the ones you can implement in Max the most easily among all families of physical modelling techniques.
Endless thanks Roald,
I will listen to these. I very briefly listen to the 1st link and noticed he was using an object called faustgen~
https://cycling74.com/forums/faustgen-llvm-powered-faust-embedded-compiler-as-an-external-for-maxmsp
I will investigate further.
In the 2nd link this precisely what I mean't !
In the meantime I
- rebuilt the patch from here (I couldn't find it anywhere)
https://www.youtube.com/watch?v=1rxFlwNb4YQ
Of course you need the modalys for this patch.
- plan on building a poly~ version of the bouncing ball patch here
the DB version.
https://cycling74.com/forums/bouncing-ball
- and finally,
I am using jit.phys to control/pilot the mubu.granular synth. That way I keep the sound processing in signal domain :-)
So much fun to use real sound samples of piano notes , ceramic ring etc..
I've built a set of pendulums that dictate the playhead position and amplitude.
When everything is done I'll share.
thanks again for the links
Ah! The patcher you rebuilt with the bouncing ball patcher controller by jit.physics is exactly what I tried to achieve with students a few years ago but I have never finished it because of some issues with jit.physics I couldn't solve. Nice! No idea who made it?
I have built a polyphonic bounce model with samples too but the idea is more to control how the sequence unfolds in time. It's controlled by Lemur. So one can choose where in the sequence to start (with bounces very close to each other or more distant), with gesture set the speed to which the sequence is unfolded, and in which direction to go (natural/reverse). At any moment the playhead can be dragged to change its position in the sequence or its direction. Otherwise one can also let it go with its inertia till one end or the other. Actually my patcher is more a temporal model than just a physical one but I might couple it with a percussion model later. I can share it but it won't work per se because it's part of my global patcher for live electronics (some buffer and control data are handled outside this part). Let me know if you want it.
When it comes to Faust, I think it's more a toot to ease generation of software DSP circuits in general than a tool for physical modelling specifically.
After a closer look, Synth-A Modeler and FAUST appear to be a powerful combination, especially with the faustgen~ external. In SaM Designer, there's a GUI to build synths and it's easy to export FAUST code. Then the code can be pasted directly into faustgen~ where it can be further edited and compiled.
Here's a patcher I made from SaM's "mass-spring-chain" example. FAUST code is embedded within the patcher.
Best for last: SaM can use components from modal, mass/spring and waveguide techniques and also combine them!!!!
Merci tellement Roald, this is pure gold!
I will investigate further, in the coming week as i am away from my computer right now .
thx again
phiol
Could Jitter get better/more performance because it's offloading physics calculations to GPU? My understanding is that GPU is often better suited to physics calculations anyway? (as well as using jitter for array/matrix type processing...?) ... dunno enough about jitter to know if you don't actually display a visual result how that impacts CPU/GPU overhead.
anyway, w/ in max there is gen-chaos example, stuff like gen centroids example could probably be useful too. and navier- stokes here: https://cycling74.com/tutorials/gen-patch-a-day
if it is a for a nonrealtime application or if you use a high framerate, it might be clever anyway to only calculate physics stuff (as one form of a parameter modulator) only at framerate. MSP would be a total overkill in my opinion, jitter externals or math objects like pmpd will be much lower on the CPU.
To both Jonah and Roman , thanks for your answers
@roman
realtime at all time :-) !
Right now I'm using jit.phys to pilot mubu.granulator .
i.e. in an bouncing ball example, as it reaches it's crescendo right before it stops, jit.phys is not fast enough.
Using the mubu.granulator
@jonah I will take a look @ what you suggested.
thanks guys , this is turning out to be a good thread :-)
phiol