How many people are using OSC for automation, and/or persistence (store/recall)? 

I'm trying to establish a standard for automation of my own library of modules (abstractions).  Note that I have no plans at the moment for using OSC for network remote control. I only want to use the OSC hierarchical way of addressing components, like

/Instrument/Component/SubComponent/Parameter

But once this is done, network control is easy.

Basic Address Space questions

Like, let's say I have an instrument called Screech. Inside, there are 4 MultiOsc modules 1-4. Each MultiOsc has several things which can be set, like Sine, Saw, PWM, Noise, etc. 

So does it make sense to have my address space look like this:

/Screech/MultiOsc*/Sine = 0.5  # sets this parameter in all instances
/Screech/MultiOsc1/Freq = 110
/Screech/MultiOsc2/Freq = 220
/Screech/MultiOsc3/Freq = 440
/Screech/MultiOsc4/Freq = 0
...etc...

Or should I make each instance of MultiOsc addressable like this:

/Screech/MultiOsc/*/Sine = 0.5
/Screech/MultiOsc/1/Freq = 110
/Screech/MultiOsc/2/Freq = 220
/Screech/MultiOsc/3/Freq = 440

OSC for Persistance (SAVE/RECALL of patch settings)

One thing that frustrates me is when I build a large and wonderful patch, and find some settings I like, when I exit PD all those settings are lost.

My style of building instruments is to build patches from a library of small modules (abstractions) as building blocks which I string together to make high-level instruments.

(I am only stating this because I notice that some people build instruments from the basic elements each time)

I want to develop a library of abstractions which have persistence built in, so that when I build an instrument with these abstractions, Save/Recall is also built in.

I am trying to imagine how this would work....???

My idea is that after I assemble a patch built with my OSC-enabled abstractions, I can issue a global command like:

/Screech/CONTROL/Show

This command would  be routed to instrument Screech, to a special management module called CONTROL which would query each OSC-enabled abstraction within the patch and say "Tell me your present state".

Each OSC-enabled abstraction which would receive a /Show command, and query the state of every OSC-setable parameter, and report back (how?).

Management module CONTROL then can take these settings and write to a file, which can then be recalled....

I really don't know what I'm doing here, just thinking out loud.
Has anyone already done anything like this??

GOAL=PD Interoperability Standard

My ultimate goal is to develop an interoperability standard for
OSC-enabled PD modules which can then be shared, which have both automation (remote control) and persistence (store/recall) integrated. 


Anyway-- I'm quite new to OSC... So I would love to hear/see some *high-level* descriptions of how people are using OSC with PD (block diagrams, or design documents), and/or your general thoughts about how to create a library of abstractions which have built-in Automation and Persistence using OSC, and how these might be addressed in a higher level patch.

THANKS!
BH



--
--
May you, and all beings
be happy and free from suffering :)
-- ancient Buddhist Prayer (Metta)