Here are some conclusions, some questions, some feelings for my system myUniverse.
First, I won't use COSM. It doesn't fit my needs and extensibility doesn't seem to be its strong point (which doesn't mean it isn't a good system!) In my visuals & sounds & spaces research, I also need to build my tool. It is a kind of pre-requisites and those gorgeous artists you are will understand that, I know.
Second, I digged some parts, not all, because I cannot dive between to have that global vision we all need at that point.
Thanks for your time.
Little abstract before
I'm building a 3D based system in which I'll placed objects.
Each object has visuals & audio properties.
All audio will be made using an external system (SC probably)
I'll use the system to compose & play my music/visuals : it means I'd have to build a light gui/system to place objects, move them, change their properties and to save the whole parameters, to retrieve them too at load time.
What I really need
I need to have a system able to save all parameters & retrieve them from presets (a preset is call a map to figure the spaceness of the concept)
I need to be able to build efficient visuals new objects to make the system evolving (not at runtime, I mean, prepare new objects, create maps
Those objects would be easily instantiable and could be queried for their attributes & properties (even custom ones)
The system designed following this would be upgradable & totally open for me to create more visuals modules/bits to use them in this map, or that other one.
I'd have a lib of objects (visuals only, visual + audio, etc) that I could use (=instantiate & play) in some compositions.
I'd need a way to place objects in my 3D map and to change their properties.
This part could be done manually (I'd instantiate not only abstractions but some numbox & lists too and I'd tweak that in the patcher... UGLY and unmaintenable)
But I'd love to do that on a centralize way and I could even make a little GUI for that.
I would like to be able to select an object in the map, to have the GUI filled by the properties of the object selected, tweaking them etc.
This is important and would involve a lot of message between the central stuff and the bits/objects.
Some bits I explored
Here are some ways I explored in the previous days.
Of course, I didn't dig them to the end, because it would be impossible at that point.
Each way involve:
- a core central system which build/call/instantiate the other part, take care of restore/save map, propagate messages to each objects, request objects for their position, know about the position of the user/cam
- some bits instantiated for some maps which would be in charge of visuals & which would message the core to trigger audio
- a way of work (develop but compose too) ; this part is very important.
-1/ JAVA as the core of all stuff
In that case, I'd build the whole stuff in JAVA.
It means I would have to translate my jitter bits to JAVA, creating them from scratch at map load time etc.
And probably not efficient at some point
-2/ JS loading abstractions
In that nice case, I would "only" call & place previously made abstractions in my patcher at load time (and during my composition sessions)
It means I would create powerful little visuals bits using jit.gen, & more . I would have a bunch of objects like that and I would load one of this type, or this another type in my maps.
The BIG problem is the communication between the core & the objects.
Indeed, I'd need to create all getters / setters using a complex system of messnamed/receive/send objects.
I would also have to build my abstractions AND the wiring of them. Maybe, a full system of receive/send would save that part ... at least.
Of course it could be simplified... I mean, standardized according to my standards. For instance, all objects would have to be informed about some master clocks.
-3/ JAVA loading abstractions
Same than before but with JAVA.
Even in the mood of my words, it seems obvious I'd prefer the 2 or 3 parts.
But the problems involve with the objects communications etc seem to be annoying.
What would you advice to me about the way to follow ?
What would you make for the messaging system ?
What would be the most efficient between to instantiate a lot of abstractions (one per visual objects, some object being jit.gl.multiplied..) versus to create all encapsulated in JS or JAVA ?
What could be used to make a GUI without to have to rebuild ALL each time I add an object ? (I thought about an external system but ..)
It makes a bunch of stuff.
Things begin to have shapes in my prototype patchers, in my notes, in my head.
Even if you have one word for a particular part, it would help me a lot.
You ever helped me a lot since 4 years on this forum so I'm asking some help here.
I'd be very interested by a global vision about my system.
Even in several words.
Especially about the architecture core+bits (where bits would be those famous objects in my 3D maps), and about the GUI to interact with it at composition time.
Last point: I have to begin, choosing one way but I know I'll refine & sharp the system in the next months, years. Maybe, some parts (GUI, communication system with external) will be translated in C external (using open frameworks for instance) for efficiency. I know that. I mean, I'm conscious I won't build THE system that fits at the first hours of code. But this step-point is important for me to really begin to code.