MaxForLive plugin crashing Live 10.1.43
I have a really odd issue that I have been trying to debug for a week now and I am getting nowhere with it - so maybe someone here has some ideas that might help.
I have an existing M4L plugin that is released and working fine in Live 10, 11 and 12.
I've made some updates to it and Livee now it crashes when a project containing the plugin is loaded into Live 10.1.43 - it does not crash Live 11 or 12.
I've created two new Live 10 projects that only contain the original plugin. One I save with the default plugin settings. The other I save with a change to one live.numbox item.
If I then switch the plugin file to the new version, restart Live 10, and load the project with the default plugin settings it works fine. But if I try and load the project that has the one change saved it crashes every time.
I have now deleted everything else from inside the new version of the plugin apart from the single live.numbox item and the crash still happens - it seems to simply be the act of Live setting the value of the live.numbox that is crashing it. The only thing that might be slightly out of the ordinary is that the live.numbox is in a bpatcher maxpat which is itself contained in another maxpat because this code is reused in a number of other plugins - but these nexted bpatchers have been working fine in previous versions.
I've also found one other UI item, a live.menu, that has the same effect. But other live.menu items in the maxpat work fine and don't cause a crash. Same thing happens with this - if a test project is saved with the original default settings then it works fine, but if the selection of the menu is changed then it crashes when loaded.
I have tried this on Mac and Windows - same crash on both - so I don't think it can be some local config issue. Besides that this has all be working fine for previous releases.
Anyone got any ideas how I can work out what is going on here?
In what version of Max did you make updates to the M4L device? And what version of Max is Live 10 using?
My guess would be that in your latest update with the new live.numbox/live.menu, the changes to the .maxpat are adding some additional new settings for things which are not supported in Live 10 and not backwards compatible. (Perhaps it would be related to parameter modulation?). Theoretically stuff like that shouldn't cause a crash but in the reality of software compatibility…
You might try to make the same changes to the device in Max 8.3 and see if that gets you a version that works seamlessly with 10, 11, and 12.
Also, if you can dig up the crash logs from Console app on macOS that may have some clues as well. In general anytime you're talking about a crash having a crashlog is a useful thing.
Thanks for the response Tyler.
So the original updates to the plugin were made in Live 11 using the version of Max built into that (8.5.8) - and that has always been backwards compatible with the version built into Live 10 (Max 8.1.11) before.
But like you I was worried there was some compatibility issue there so in the process of stripping out everything but the live.numbox I made all those edits in Max 8.1.11 bundled with Live 10 - so all of the components have been edited and saved again by Max 8.1.11 - so I think I've removed that as a possibility.
Also now that the patch literally contains nothing but bpatchers and a live.numbox there really cannot be a backwards compatibility issue as these two things should always work.
The crash logs all look very similar - example attached below - they all seem to be the Live app itself crashing on the main thread after executing some code as a result of a menu operation - in this case loading the problematic Ableton set from the recents menu. Without the symbolification it is hard to know what the issue is - but maybe you can see something I missed.
Thanks, Simon.
Due diligence, done! Looks like you checked all the right things, Simon. I also don't see anything jumping out in the logs, and I can't even be suspicious of rosetta stuff since you said this happens on Windows as well.
The last thing I might be able to offer is that I've once or twice had a patch that got corrupted... somehow, I don't really know or why, and led to some bewildering crashes and behavior. Eventually I opened the patch and then copy-pasted the whole thing into a new patch and saved it, and that worked okay. I realize this sounds like maximum desperation and utter hocus pocus -- which it was! -- but it worked. So if other patches you make export/freeze with similar objects don't induce this crash, you might give that a try.
As an aside, props for continuing to support "legacy" configurations.
Thanks for the support Tyler.
I've tried a bunch more things today. Moving the numbox to the top level plugin stops the crash so it is something to do with the nesting the bpatchers and/or the parameters list I think. I've looked at the source json and can't see any obvious corruption though.
Will give the cut and pasting a go - I guess it forces a clean rewrite of the files.
Yeah I'm trying to keep supporting Live 10 but if this is not fixed by the end of the week I'll give up and only support Live 11 and up.
Unfortunately, cut and pasting new versions of all the patchers and the main plugin made no difference.
Running out of ideas now.