Ideas for a storage-system

lx's icon

Hey everybody,

I'm thinking about a storage-system for quite a while now. The problem is that there are a lot of things still unclear to me so I don't really know how to move on. pattr and dict seem not being capable to do the job.

In the end I want a system that can save the constellation of objects, how they are connected and what their values are. With constellation I mean something like a track known from AbletonLive. So what abstractions where chosen(in that track), whats the way they are connected with each other.

I thought about having a "main/song preset" which saves what tracks (and "track presets") were chosen/used.
The "track presets" shall save whats going on in the track. So if I have a saved "track preset" I can load it as many times as I want into the "song" because values and constellation are known.

What I'm looking at at the moment is the Jamoma-package (http://jamoma.org/).
The other idea is building a system with Sqlite (written in C). Right now it seems to me that the Sqlite-C version might be the most powerful, flexible but also the most complicated to build. Unfortunately I'd have to learn SQLite and C that for which I know would take a while.

Beside common max objects, at least variables from mxj externals and objects from the FTM Ircam package need to be saved. (http://recherche.ircam.fr/equipes/temps-reel/ftm/api/)

I would like to know what the capabalities of the APIs are. Does the C API provide the biggest functionality? I mean can I do a lot more with the C API than with Java? And can Javascript do less than both?

Can I acces these types of objects (common, mxj, ftm) from a C external (the SQLite database) directly, so I can get or send values, retrieve or change their state? And also how they are connected?

Any help, opinions and ideas are appreciated,
Greetings, Alex

Tj Shredder's icon

You don't need to learn C to get a SQLite solution. There is SQLite built into Max. You can access it from a js object.
Here is a tutorial which got me started into the subject well:
https://cycling74.com/tutorials/data-collection-building-databases-using-sqlite/