very basic question re: abstractions in M4L
Newbie question. I find that I have to close the Max editor window and reopen it (to force a save of the .amxd) to get a newly instantiated abstraction to work. I’m on Live 8.2.2 but have Max 6. Is that by design?
Here’s a super simple abstraction (choose track, change volume) that illustrates (I’m also attaching the actual maxpat in case that effects the issue).
----------begin_max5_patcher---------- 714.3ocyW1sjZBCEG+Z3oHCSujRSBxW8t1WiNcbhPVMagfCIZscm8cu4CvkU AE6nzdgHbRL4+424jyAew0waU8ApvC7Yv2.NNu353XLoM3z9riWE4PdIQXll WdcUEkK87siIoGjF6BpT.pX7Oolc2f7cJCkpAzy.8lw5cxNqvVqaIx7ML95k MzboUOKPAPe.J17UZr9JFF.Aeu8mvJLab8pm+HF1skOUykbRE0LzWZXjx9iH X+1LBBG.0Ve00Ueweh99Sk0J0eCdGt0p0j7WaoVWSuRDECAdqH70dGcoAn.J LIH5HFhfmgAkHXUJUogY.7b1fxtNa1RZT1kzlkTNYUIsejQQft0Gcb8uCvjS +oRdmkGo.SQEUH.3afynw37EQKN1PSD1jakfuTFVxrjfY7yA8a3czuQ1rnrP iCG0ccvCVcho6Xud.u+a8LLJapdF5d4Y5jUxZ5PEDA6Ik6nfOfFzww2+PJNz 3+wI1Jmi34nwykAestrXvDZ3eUB8XvQ4Ba.kr8zkZLIaH4+Pn3jpAxAUQnB5 dVNErutbWE8gyt1jFThoBKFitD7RmO1MRARIXEn7dzCxz5w+ZvILpWhUTloW T5vrI7eNazYTApAzx+gejKMTCCbh8HmsUxHjIZhjIutrtwt7vfrzEgnE9p6R QYwvT8cvHXl5FTus4TZ1ZVP1SKVZYwRhT1vVsSZeUOmiP0wa4VZifIjTdtsq uwtIZbOiI5y62PNa3nQD+1OS3.MFZ5nGgtTjAAmwPSOnZlihM7Se6ai+ns+d RKp20j2Qg1BQf21oBpPx3DIql2aNZmq2j1vJJn798bKXB8q6UbLxeVHepxIY BxIc1TipRD.cE0D8t47HUCdJgprYCNmrUinGz7oGzDzSz7IG3DRdBmO47.OX YKBQ1tcutIfcIMBQUX+Ya0tXeW6+wz9nYE8ZTueV27Cc0q1qt+Azv4qO -----------end_max5_patcher-----------
I think this behavior is more or less by design. Since the editor runs in the Max environment, the device needs to be loaded once into Live (by closing the editor) to initialize the API operations in the Live environment. Generally, the initialization aspects of Max vs. M4L are rather tricky and you may find some related discussions on this forum.
Its also one of the reasons why I hardly use the ‘system abstractions’ but only my own stuff. Most abstractions are very good examples but IMO you gain more by coding them yourselves (sometimes you can even make things a little more fluent).
What I do so far is keep a "HelloWorld" patch around which contains a selection of patcher objects with all my routines. When I need something I simply drag this in, copy the patcher objects I need and then paste those into my new patch. I know I could also add this patch to the "Extra’s" menu but so far couldn’t be bothered with that ;)