< Back to IRCAM Forum

Modalys~ in poly?

will there soon be a way too use one script multiple times in a poly~ object in max? and is there any kind of clear-message I can send to the modalys~ object so that the object doesn’t eat away cpu while I don’t need it?

you can tell to any instance of modalys~ inside a poly~ to read a different script, if you wish. You have to make a local receive for that.

to economize cpu:

  • you can use mute inside poly~
  • you can freeze objects
  • or also you can put the weight of connections at 0

thanks man! knew about mute inside poly but not the two other ones. but I also found the message enable $1
thanks again. cheers

thanks man! knew about mute inside poly but not the two other ones. but I also found the message enable $1
thanks again. still to be able to use one script in poly~ with several instances would be cool…cheers

Hi,
of course there is always the message enable. The freeze message (and unfreeze) is a recent function…i’ve not tested it yet.

I’m not sure to understand which is your problem of using one script in poly~ with several instance. You can make all you want:

  • an unique script for all instances
  • a different script for every instance (just create several of them and find a way in Max to give it to the different instances)
  • several scripts in several modalys~ objets in the same instance of a poly~ (but, why to do that?)

if you can explain better which is exactly what you are not able to do…we can help somehow.

cheers

hey! sorry for my reduced explenation. I tried to put a modalys object with a loaded scripted rectplate in a poly today and the poly doesn’t work as it usually does with other things. if I play different pitches one after the other, the 1st plays and the 2nd only starts to sound once the 1st poly-instance is freed (with mute)…have you tried it? Did it work for you?
thanks and cheers

hm, this sounds to me a typical poly~ instantiation problem…are you sure to use in the right way the poly~ object=

post a patch with “copy compressed” if you need an help.

Cheers

ok! my first version was a bit messy but in my opinion should have worked. I will build a clean version tomorrow and let you know in any case! Thanks for the help!
cheers

ok. so I have built this following poly~ and am sending in messages with the format note $1 $2 (pitch and velocity). it still does the same thing: plays the first note and then just refuses to play more until the first poly-instance is muted…am I missing something? (I have also attached the script)

  
----------begin_max5_patcher----------  
971.3oc2Zt0aaBCEG+YxmBDZOMkh7Etk819FrG1aSUUNA2T2AFD3zkrp0O6y  
WHsYcIEaFAktW.4Kw9b9weerOV4wYdAKq1RaC7+j+2787dblmmtJUEdck8BJ  
IaWUPZ0cKfS+Q0x6ClaZRP2JzU+Q+qfg6q81Jtnk8SppEHJDzUMKW2U4O+pj  
388kuojwKnB8ni5prlHVcGiu9lF5Jgw5foP4.IGN8KLV8DABA9W+x.UsQrej  
fc0ZpRrqlZFlfaKpHxg75CLUNoT2ZvmaXjh.UC+Z1L0i4+aPocEof5CBkVcZ  
n5crKHJ5nHJoWDs.oAEHdnHZhnSNsvOB..1iDDvYUyhLMEfZxDmNTjrjvWO1  
Xoj11RVS+KtTW0xDrJt+GfRMC.jYOffKF3xJTZjQzXzNYWrhlBFWshxAjb7H  
M39izXPRTROZFzIIx7wmJmRy.CmqjKXGVLAQCMDrAIlESWvRkM7Zxpu6C7c.  
JIGkIv2fIl8iRzHIYwP0JLtPIWTulHESCkj6+0lceofHnvvxhcsNDHF6p1AC  
.GFmAdwHdNEeJ2HnRqvEwCzYpDgSOfJIvK8fuUjb8Ng1iDnqKn1iDyN1If2C  
6Xq0JpOcN.FmOJSLF7dRqH7K7WZOOxFXfWrlFXTX7v2j9bHUNAUJqxIxHsO4  
CcRrLT3nGN+LzP2VpkslK8+4Smp4NVacUwtmrGNwtBmtERcvIN68yd10LoyH  
OmmCJmDmOjmQ5f5NjG9BOLSon5VGvQz.WI0clWSzlK3bpkyqKAVbFGnTsf.G  
qubAbe4SCNsO20RK4AZ9MRaQNE2PDhF1R4loscddmq6EnZ4lUUkkTtwQ0Ly.  
swCcO4B6vCMnrgcQQ+GwNF2ExgFH4zpML3rrDb7Qpd1z2WwqteUsCpp+O4ba  
0llU6s082Qp+KdYNsUv3D0MCcPmTYwePmtikmS4GJexYsjkETM8AG8Kt01ib  
lf8XNpKsbpLmHKvyqX34FO890Z5vSlMzYRsl9zNpThdSyojkWWIOtU25InID  
Zr4IdgJE.UgWllQy7U22Q+ebcy7w.sEiAP0KnLt19RmCG.XiCfcyCPfTcZWw  
HyFZIOW5b3AV3.YSldVcQ6isf.lAlNAALYDbfQzbhsH.ABLs1Su3YwzYO1rY  
Gb5hmCsIfXra5+t.Hc5+t.5mM8uMwSfS2oGfPKrGDdPDEEgLmbdwykNGDENF  
awLh1CXDjnin4Xg0LT3XR0fTW+.sosaH0FhL4s6qZd9uMfTevME0IIEzPefs  
u+o5ZHMxbuDxje1zXxNZaVhL2F477qY+FXM9DOJ  
-----------end_max5_patcher-----------  

TryPlate1.mlys (2.81 KB)

Hi,

there are some misunderstanding in your use of strike envelope in modalys:
you make a scaling of the midi velocity to vary the edge of the strike envelope. This simply doesn’t work.
You have to do a simple abstract strike envelope that works fine, for example between 1 (no strike on the plate) and 0 (position of the strike on the plate). If you want to vary the timbre of the sound related to the midi velocity you have to scale the velocity using the weight of the strike connection between 0 (or a little more) and 1. But in your script the weight of the strike connection is not a dynamic controller.

Moreover, in your script you made two envelopes in the place of 1: the first with the note on and the second with the note off…this is because you trigger the envelope when any velocity is received inside the poly~.

I attach an archive with two patches (the main an the poly~) that you can use with the metro or with a midi keyboard. If you see inside the poly~, i used an adsr~ to trigger the envelope ONLY when the velocity is not 0.
You will have always a problem muting a modalys~ instance starting from a midi note message because every modalys resonator has its own resonance duration that you cannot manage with a note off (the resonator often is resonating yet when your finger ends a note). This is a problem for all and for this reason you put a delay of 4 seconds for muting the instance (and me too in the adsr~). This is a problem for all that everybody solve in some way.

I suggest also to use a signal control to make the strike envelope, is more precise than a dynamic controller. If you see in my patch i put the grain of my line to 1 msec

I see that you realized the script in Modalys Lisp. I highly recommend to use the mlys. externals and environment (you can download them in the ForumMaxApps) to build your modalys instruments and scripts. In this environment all the modalys instruments building is realist with max externals and, what is more easy to do than in Modalys Lisp, every object or connection you use comes with all the parameter set with dynamic controllers! Then you’ve only to use them! It’s handy and useful.
You’ve a very good tutorial in the ForumMaxApp Mlys onglet. Use it to built your instruments and study modalys.

Plate-example.zip (4.46 KB)

Wow! Thanks a lot! that really helped.
I have looked into the mlys-externals but somehow not a single of the example-patches works. one crashes and the rest produces no sound. In addition to that there are no helpfiles. That’s why I stuck to the script, which I created in OM with the Modalys-Library…I’m not initially a programer so I’m kind of an autodidact with this stuff…
thanks again! Will for sure continue to work with modalys

cheers

I assure you that doing the mlys tutorial is a very good start.
It’s strange that it doesn’t work for you, did you have installed correctly the mlys objects in your Max Search Paths?

When you instal modalys, go to Applications/Modalys/Components/Max
Inside this folder you find a modalys folder. Copy this folder in your search paths and the mlys environment will work properly.

Install the externals and go to the tutorial, all is well explained. you can find patches in presentation mode and you can go on patching mode.
If you’ve not sound just wait 1-2 seconds (some patches need this delay to be charged). Or turn off then on the audio.

The modalys team is currently preparing the help files for the mlys objects but if you know a little the logic of modalys and you do the mlys tutorial is enough to start and directly interactive, the opposite of OM with Modalys lib.

Cheers

the advantage of Mlys environment is that every parameter is already a dynamic controller…so you need only to vary it in Max.
Go in the Patching view of Mlys tutorial and soon you’ll be able to construct your own instrument.

Hey, I reinstalled the mlys-library. however the hybrid-examples do not work (see attached screenshot of max-window 10.16.30). The force help seems to not work either (attached screenshot 10.19.52).
However my first mlys-patch with a rect-plate kind of worked…I still have to experiment how to control the force better, how to dynamically control f.ex. the pitch…the problem is, that the max-window tells me, that @target-attribute isn’t a valid attribute for expression. then when I connect it to the object and just evaluate, max crashes or tells me “Could not make controller expression”…:-(…I guess I am doing something wrong but the controllers_example just crashes on me every time I push the bang…

here is my patch at the moment

  
----------begin_max5_patcher----------  
1242.3ocyY0rbihCD9r8SAE0daCtjv.Fumx9Dr68TakRAKi0rXIVP3wdlZlm  
8UpEfww+DEBCNGBF5tE5Se8OpE46Sm39hXOsz04ObdxYxjuOcxDPjVvj5mm3  
tkrOIiTBl4tNSvq159fQknRlQkxC4Ty6PqlHcevw8EBO004epsKmHS1v3oOW  
PSjFSChlOC8fief9ZHBtWcscHqEbYI6avKF6qT27lJHaoRZwyTN4kLPciN1J  
.hhW9hGdoam2CWMDP0eVvHYMZTqCFWAeXggOJzrn.o9Zg+X5T8kGrjg1RKKI  
ozlYQR2CqXW597BkJlf67a3qRf1vYXDPWwgvCwuMo0kXvuShw+hDCtGDCm9U  
EBNiW1lcnbVGx4QMnbNJ.67njTjRkdDorf8Rkj5jyTbyGiCCgelO221HuNjX  
3fDb0Hsjrit5Y06UgwmaWik0LYMUNoS7CLa0Sj5k1L+cnrVkU4qHRpGiqxX1  
oPmxNO7LDnEbeCjS72cBPpnx2ntvs7KKVBtkkQP8.bO7J9n6VncFaGcVJgw+  
YyDsiTzhfy0dF+TxR4ZT18N8es0SyXk1veyQwvOAl5D9cHvKU4DegBDKdGbU  
3Igvswt2HJVEDVQEqaD2HuK7T6vjdct6DSK2HJjVZaCaitftspUJjar.M6x5  
If6O5hZYbljYRtdxoSL6IFUoLpTdvv6AF8lLv9kHR+1JRRa.0UCHB7gDpfvl  
qswCc84QuCeNZ.K8KVQTU++oCxw+8kZ71YB9KfJ6w8o9NdXJvOe.6dXsnHgh  
eD9o28OTyL9Pvvxk8o8gf6VM1Aqyy5cZhh+0z4o+cqyyqjkUP3qDa0cMhtJ6  
oZPvFNaNTLItO6Niue6NKEooYzO3Zu93JmGtXYbwx2SmgCXIVprPnZK35tdK  
yWLkKhB6gqewcyyqZAQp5Wt2Kc+vfa566rHitS9W8omJSJX4x9smP8RzOFRs  
iVzC+avvbbnAlTxEpDaO0DjWIcdT2VnCdV3GijBq25.0CVZ983PiIaHbNMqy  
Hm3poBPvrvyNC4eqIs+B3L2A+PhfawzAi4P9llZ9Ptj5tXB5Sbq+8vi.qYXO  
h1yRbj9OgPl39UJKciz3qP+ZbGZB0KOiHa7Iv8XmGWWP+OuLQYoBnpGSD7RY  
6yerrHj4npA8pMh6gOijjnZK2iw8pOpmWtnTcif6su8TegsG66V1e3F1q.3M  
l.rc1e3B1ez4YB7ZKErhxUCCFxhXTmHxVu+qFPFkmJ2fLRCOUJ9URUmtyPkw  
mGnahxZCzMeOO8AiC5.BPpWa+Uv.gniVCDrxRy2CCMadiT4FVx+xoMXG0B9C  
hJ898Z5AB8Vpi75eZkNdoh0D0oexzsY6z2ujjnfNeeRbXe1pAGO36HCytaFi  
+5+cAvRPK+TlpTTUWm6oieQdmiKBUngjwIx5Om4SG+5zcLZCakJBsaC0qXk5  
drWc8ODg03AaAdBGM3DZC6LdjiEnY93gl3OUji+mJzXSZ0hQCMKrgaPiFbhr  
.N9iFZBrgbFuRNys.NAiWVExF1Y7vC1pP4nwEOXavCdbviU6XMdUd.7fsAOi  
D+7IKaGay1V9iWoYrU468s3rocURd9NZQy+xb.JpV3+h.ZTO5A3QF27HzBra  
AcGqw9EfDRgpCcop87pBSWz6iibmpmmeL8+Aup+Cp  
-----------end_max5_patcher-----------  

Screen-Shot-2014-07-31-at-10.16.30.png

ahhh found the way just ignoring expression and sending the attribute directly to the modalys~ object!

but could you tell me how I can define the access-position of the point-output (don’t want it on the same spot as the hit) and how I can create 2 working point-outputs with different access-positions going to 2 channels (stereo)?

  • I can see it is really time for us to release the whole mlys objects help files!
    (soon to come…)
    :wink:

Robert

…“j’attendraaaaiiii…le jour et la nuit j’attendrai toujoooouuurs…” (french song) http://www.youtube.com/watch?v=Uqvr6igV3Wc

anyway thanks man! am starting to figuring it out…found stereo through another forum topic and also the access-point stuff! thanks a lot for the help!
cheers