ShelLuser wrote:Thanks for testing lalo, this is really helpful!
I come to the conclusion that its now proven that the problem is actually with the javascript file "M4L.chooser.js". The patch gets loaded and initialized ("loaded bang") and eventually you see that the javascript file spits out some kind of information (the 'device' and 'track' stuff) but with many errors. As such it somehow doesn't manage to get all the tracks and devices.
That is the reason why your umenu's don't work: they don't get filled with usable data because the javascript file doesn't work.
And because this test patch contains everything (frozen device and I also told the 'bpatcher' object to embed stuff) path problems are out of the question.
My conclusion: the M4L.chooser.js script has one or more bugs.
I have little experience with javascript, so unfortunately this is where my capacities come to an end. But hopefully someone from C'74 can shed more light on this.
In the mean time I kinda wonder why they resorted to javascript whereas the native Max environment could have provided the same kind of information (all tracks and all devices).
If time allows next week I'm going to see what happens if I replace their javascript code with a native patch of my own.
Still; I think we have provided a lot of information which C'74 should be able to use to get their fingers behind the problem.
Thanks for the information. We're looking into the problem.
As for why we "resorted" to Javascript: the JS interface is a) somewhat easier to use, since we have basically combined the features of live.path, live.object and live.observer in a single JS Object, b) more maintainable when designing complex behavior, and c) more efficient -- changing the "Poletti Chooser" from a Max to a JS backend sped up device load time by something like 7x.
Of course, if you don't like JS, or don't speak JS, there's nothing inherently wrong with using the Max objects for these tasks. I personally find certain programming concepts like iteration easier to manage in a procedural language such as JS.