I'm working on a large patch that requires data structures that are more complex than anything I've dealt with in Max, and am looking for some advice from some of you more seasoned patchers.
Basically I need to be able to create objects containing arbitrary key/value pairs that also allow me to nest objects inside of them (and objects inside of them, etc), ultimately resulting in a tree-like structure that will have (hopefully) interesting musical/visual results. I also need to be able to add/delete/edit any value at any layer dynamically, save the state of any of these objects for future use, and cherry pick individual objects at any layer to parse and do sexy things to. Also, performance is a concern as this component will be used pretty heavily in the overall patch.
After digging around a fair bit, here are some options I'm considering...
On the surface this looks like exactly the kind of thing I need and was a big selling point on upgrading to Max 6. That said, after messing around a bit and reading forum posts it seems pretty convoluted to me. Nesting dicts seems difficult/clumsy, as does referencing and altering individual values at different layers. I may very well just not be educated enough on how these work but am yet to be convinced this is the best option or that it can do everything I need it to. I'd like to use this if possible since it's native and seems to be intended for what I want to do.
The idea here is that I'd serialize these objects and write a parser that would dump everything I'd need into a coll(s) that I could then edit at will. This is more in my wheelhouse than other options I'm considering but sounds pretty messy and error prone (and fun). I'm guessing there are better ways to do this than what I've sketched out.
Those are the big three I'm considering right now but am totally open to anything at this point, even if it requires significant learning. This is a system I intend on using for a while and want to do it right.
Thanks much in advance,