Presetmanagement with similar subpatchers in pattrstorage

Feb 7, 2008 at 12:47pm

Presetmanagement with similar subpatchers in pattrstorage

I have a question about strategies how to deal with the following problem:

If I have a mixer with multiple channelstrips, and lets say each strip
has its own filter. I would place a channelstrip into a bpatcher by the
way, but for voices of polyphonic synths/samplers the same problem would
apply:

Now what I want, ist o have a single pattrstorage to be shared among the
multiple strips/voices. As far as I know, if I place a pattrstorage into
one strip, and duplictate it, I get several independent pattrstorages…
But I want to acces them like a named coll and share their data across
multiple instances…

I always thought naming the patterstorage is ment for that purpose, but
it isn’t… :-(

The solution I have at the moment is, to writeagain the pattrstorage on
any change always to disk, and notify the other instances to readagain…

Any better solutions around ???

Stefan


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com

#35703
Feb 7, 2008 at 1:21pm

Unless I miss the point about why pattrstorages should be instantiated locally, the suggestion would be to have one globally?

_
johan

#122000
Feb 7, 2008 at 1:33pm

i think Stefan is looking for a dynamic system for applying specific sets of presets to identical modules.
these modules can probably have their own set of presets as well as copying the ones of any other moduleand/or having one set of presets from one module being applied to all the other modules.
right now i could only think about storing individual groups of presets into individual colls via “dump” message ( to pattrstorage) and have have a matrix based routing system from which routes the chosen contents of these colls back to chosen nested pattrstorages …

probably a little cumbersome …

Quote: jvkr wrote on Thu, 07 February 2008 14:21
—————————————————-
> Unless I miss the point about why pattrstorages should be instantiated locally, the suggestion would be to have one globally?
>
> _
> johan
—————————————————-

#122001
Feb 7, 2008 at 1:42pm

Now I see.

#122002
Feb 7, 2008 at 2:33pm

Ok, Stefan, to make up for my previous stupid remark. This patch makes use of a pattrhub and an actual object performing as a hub. I believe it works.

_
johan

#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#N vpatcher 417 44 1152 620;
#P button 471 166 15 0;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 473 188 45 196617 s store!;
#P window linecount 0;
#P newex 317 218 62 196617 mousefilter;
#P window linecount 1;
#P newex 78 387 49 196617 append /;
#P newex 78 409 78 196617 prepend append;
#P newex 102 333 80 196617 t getstate clear;
#P window linecount 0;
#P newex 84 293 56 196617 route text;
#P newex 199 204 48 196617 loadbang;
#P message 200 229 63 196617 separator /;
#P newex 107 227 62 196617 prepend set;
#P user textedit 85 261 116 283 32896 3 9;
#P noclick;
#P newex 63 203 54 196617 t clear b l;
#P number 181 73 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 181 94 48 196617 loc2 , $1;
#B color 5;
#P newex 181 116 55 196617 s getstate;
#P newex 63 153 37 196617 r loc2;
#B color 5;
#P number 419 164 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname number[3];
#P number 374 163 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname number[2];
#P number 332 164 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname number[1];
#P number 289 162 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname number;
#P newex 304 91 53 196617 autopattr;
#X prestore number 1 0 0;
#X prestore number[1] 1 0 0;
#X prestore number[2] 1 0 0;
#X prestore number[3] 1 0 0;
#P objectname u562000021;
#P outlet 159 463 15 0;
#P newex 47 360 48 196617 pattrhub;
#P comment 218 71 36 196617 recall;
#P comment 184 163 100 196617 change numbers:;
#P comment 70 103 100 196617 location 2;
#P comment 490 169 100 196617 store;
#P connect 20 0 4 0;
#P connect 21 0 4 0;
#P connect 11 0 15 0;
#P connect 4 1 23 0;
#P connect 23 0 22 0;
#P connect 16 0 20 0;
#P connect 15 0 16 0;
#P connect 15 1 16 0;
#P connect 17 0 16 0;
#P connect 18 0 16 0;
#P connect 24 0 21 0;
#P connect 15 2 17 0;
#P connect 21 1 5 0;
#P connect 22 0 5 0;
#P connect 14 0 13 0;
#P connect 13 0 12 0;
#P connect 19 0 18 0;
#P connect 6 0 7 0;
#P connect 7 0 24 0;
#P connect 8 0 24 0;
#P connect 9 0 24 0;
#P connect 10 0 24 0;
#P connect 6 0 8 0;
#P connect 6 0 9 0;
#P connect 6 0 10 0;
#P connect 26 0 25 0;
#P pop;
#P newobj 374 106 58 196617 p pattrex2;
#P objectname pattrex[1];
#P newex 28 174 45 196617 r store!;
#P newex 29 216 27 196617 + 1;
#N counter;
#X flags 0 0;
#P newobj 28 195 66 196617 counter;
#P newex 289 276 56 196617 route text;
#P newex 178 199 27 196617 t b i;
#P newex 232 318 68 196617 prepend send;
#P newex 233 340 47 196617 forward;
#P newex 178 176 49 196617 route int;
#P newex 178 149 55 196617 r getstate;
#P number 77 273 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 130 304 78 196617 storagewindow;
#P message 29 237 97 196617 store presetbox $1;
#P newex 62 302 67 196617 pattrstorage;
#X client_rect 20 74 660 314;
#X storage_rect 20 74 660 314;
#P objectname u486000019;
#P newex 324 211 53 196617 autopattr;
#X prestore presetbox 12 0 number 0 / number[1] 0 / number[2] 0 / number[3] 0 /;
#P objectname u458000017;
#P user textedit 286 241 691 266 98432 3 9 number 0 / number[1] 0 / number[2] 0 / number[3] 0 /;
#P noclick;
#P objectname presetbox;
#N vpatcher 396 178 1131 754;
#P button 471 166 15 0;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 473 188 45 196617 s store!;
#P window linecount 0;
#P newex 317 218 62 196617 mousefilter;
#P window linecount 1;
#P newex 78 387 49 196617 append /;
#P newex 78 409 78 196617 prepend append;
#P newex 102 333 80 196617 t getstate clear;
#P window linecount 0;
#P newex 84 293 56 196617 route text;
#P newex 199 204 48 196617 loadbang;
#P message 200 229 63 196617 separator /;
#P newex 107 227 62 196617 prepend set;
#P user textedit 85 261 116 283 32896 3 9;
#P noclick;
#P newex 63 203 54 196617 t clear b l;
#P number 181 73 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 181 94 48 196617 loc1 , $1;
#B color 5;
#P newex 181 116 55 196617 s getstate;
#P newex 63 138 37 196617 r loc1;
#B color 5;
#P number 419 164 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname number[3];
#P number 374 163 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname number[2];
#P number 332 164 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname number[1];
#P number 289 162 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P objectname number;
#P newex 304 91 53 196617 autopattr;
#X prestore number 1 0 99;
#X prestore number[1] 1 0 99;
#X prestore number[2] 1 0 99;
#X prestore number[3] 1 0 99;
#P objectname u274000013;
#P outlet 159 463 15 0;
#P newex 47 360 48 196617 pattrhub;
#P comment 218 71 36 196617 recall;
#P comment 184 163 100 196617 change numbers:;
#P comment 65 103 100 196617 location 1;
#P comment 490 169 100 196617 store;
#P connect 21 0 4 0;
#P connect 20 0 4 0;
#P connect 11 0 15 0;
#P connect 4 1 23 0;
#P connect 23 0 22 0;
#P connect 16 0 20 0;
#P connect 18 0 16 0;
#P connect 17 0 16 0;
#P connect 15 1 16 0;
#P connect 15 0 16 0;
#P connect 24 0 21 0;
#P connect 15 2 17 0;
#P connect 22 0 5 0;
#P connect 21 1 5 0;
#P connect 14 0 13 0;
#P connect 13 0 12 0;
#P connect 19 0 18 0;
#P connect 6 0 7 0;
#P connect 10 0 24 0;
#P connect 9 0 24 0;
#P connect 8 0 24 0;
#P connect 7 0 24 0;
#P connect 6 0 8 0;
#P connect 6 0 9 0;
#P connect 6 0 10 0;
#P connect 26 0 25 0;
#P pop;
#P newobj 303 105 58 196617 p pattrex1;
#P objectname pattrex;
#P comment 115 274 100 196617 recall;
#P comment 310 87 141 196617 two duplicate patches:;
#P connect 17 0 15 0;
#P connect 15 0 16 0;
#P connect 16 0 6 0;
#P connect 8 0 5 0;
#P connect 7 0 5 0;
#P connect 6 0 5 0;
#P connect 13 1 8 0;
#P connect 9 0 10 0;
#P connect 10 0 13 0;
#P connect 10 1 12 0;
#P connect 14 0 11 0;
#P connect 12 0 11 0;
#P connect 18 0 3 0;
#P connect 2 0 3 0;
#P connect 13 0 3 0;
#P connect 4 0 3 0;
#P connect 3 0 14 0;
#P window clipboard copycount 19;

#122003
Feb 8, 2008 at 11:40am

jvkr schrieb:
> Ok, Stefan, to make up for my previous stupid remark. This patch
> makes use of a pattrhub and an actual object performing as a hub. I
> believe it works.

Thanks for sharing, it does work. Though I’d probably prefer the
writeagain/readagain method, as its simpler and more readable in the
resulting XML files (Yours squeeze all the preset information into a
single pattr. I doubt it will scale easily into bigger patches).

I don’t mind to have several preset.XML files, as in that scenario the
way of thinking is also by seperate collections of presets. I just see
the impossibility to undo or not save a new setting with that method…

Maybe I have to save them to a temp file, which will in turn make it as
complex as your solution… ;-)

Stefan


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
– _|_)—-|—–()————–
———-()——–www.ccmix.com

#122004

You must be logged in to reply to this topic.