visibility of pattr objects for pattrstorage.

May 18, 2006 at 10:22am

visibility of pattr objects for pattrstorage.

I want to exclude some pattr objects out of the visibility of a
pattrstorage.
I haven’t found any ways to achive this. I could imagine two methods,
one method to tell pattrstorage to exclude an object (with a message)
or to tell a pattr/autopattr object to make itself invisible for
pattrstorage.
The reson I need that is, I have an abstraction which translates values
from a Midicontroler (a dial) this is fine to have it pattrified. But if
I have multiple destinations, I need to exclude it from the visibility,
as otherwise I get inconsistant memories, the dial remebers its values
and throws it to wrong places…

Another related problem is: I store VST parameters into a pattrstorage,
but when I change the VST, the number of parameters can vary
dramatically, I’d like to store only the relevant ones, If I choose an
additive synth, its up to 1000 parameters, if its a delay it might be
only two.

Any tips how to streamline this are welcome. At the moment I keep track
only of 64 parameters… which is not ideal.
Storing them inside the VST preset system is not an option, as I want to
interpolate presets (for the same VST…)

Stefan


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

#26036
May 18, 2006 at 11:33am

On 18.05.2006, at 12:22, Stefan Tiedje wrote:
> I want to exclude some pattr objects out of the visibility of a
> pattrstorage.

hi stefan, check out pattrstorages ‘active’ message, demonstrated in
the ‘active’ subpatcher!

jan

#77337
May 18, 2006 at 12:22pm

Jan Klug wrote:
> hi stefan, check out pattrstorages ‘active’ message, demonstrated in
> the ‘active’ subpatcher!

just found it myself, I assumed all messages are listed in the manual,
but in this case the help file seems more complete…

thanks,

Stefan


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

#77338
May 18, 2006 at 2:53pm

As far as writing a general patch for interpolating VST presets goes, I have had moderate amounts of succes with two different approaches.

Option one involves writing some array based thing in js or java and performing some kind of interpolation between array elements.

Option number 2, which is much quicker to hook up, is to throw the vst parameter data into a jitter matrix and use jit.xfade to go between the matrices.

The problem remains with plugs which have a gazillion parameters, performing preset morphs can become a fairly sluggish business.

Here’s my clunky Jitter patch.

#P toggle 144 63 15 0;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P message 100 93 42 9109513 loop $1;
#P message 168 94 28 9109513 open;
#N sfplay~ 1 120960 0 ;
#P newobj 144 140 39 9109513 sfplay~;
#P toggle 235 85 15 0;
#P window setfont Verdana 9.;
#P message 236 106 31 13172745 open;
#P window setfont Verdana 14.;
#P user textedit 235 124 518 145 32896 201 14 Hematohm_vst2win.dll;
#P button 234 65 15 0;
#P toggle 74 351 15 0;
#P window setfont Verdana 9.;
#P newex 135 408 64 13172745 dac~ 1 2;
#P user gain~ 170 263 24 100 158 0 1.071519 7.94321 10.;
#P user gain~ 135 263 24 100 158 0 1.071519 7.94321 10.;
#N vpatcher 199 151 997 828;
#P origin 0 35;
#P window setfont “Sans Serif” 9.;
#P newex 552 513 75 9109513 route 1 2 44 3;
#P window setfont Verdana 9.;
#P newex 298 278 21 13172745 t b;
#P inlet 348 29 15 0;
#P newex 208 232 27 13172745 + 1;
#P newex 348 76 68 13172745 qmetro 100;
#P number 406 53 35 9 0 0 0 201 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 430 167 38 13172745 / 100.;
#P toggle 367 102 15 0;
#N counter 0 1 100;
#X flags 1 0;
#P newobj 348 129 89 13172745 counter 0 1 100;
#P newex 348 253 72 13172745 select 100 1;
#P newex 275 306 96 13172745 jit.noise 1 float32;
#P newex 378 410 159 13172745 jit.matrix noisebuffer 1 float32;
#P message 430 188 51 13172745 xfade $1;
#P newex 378 374 46 13172745 jit.xfade;
#P newex 224 339 166 13172745 jit.matrix noisebuffer1 1 float32;
#P inlet 682 24 15 0;
#P outlet 166 606 15 0;
#P inlet 157 29 15 0;
#P inlet 38 467 15 0;
#P inlet 134 467 15 0;
#P outlet 38 606 15 0;
#P outlet 58 606 15 0;
#P message 208 253 78 13172745 dim 1 $1;
#P newex 29 127 85 13172745 prepend set;
#P newex 172 155 84 13172745 prepend plug;
#P newex 157 96 50 13172745 strippath;
#P button 157 53 15 0;
#P newex 157 73 81 13172745 opendialog;
#P newex 198 185 20 13172745 t b;
#N counter;
#X flags 0 0;
#P newobj 198 208 66 13172745 counter;
#P newex 472 376 108 13172745 sprintf getcell 0 %i;
#P newex 442 279 40 13172745 Uzi;
#P newex 498 340 166 13172745 jit.matrix noisebuffer2 1 float32;
#P newex 442 253 40 13172745 t b b b;
#P newex 513 312 96 13172745 jit.noise 1 float32;
#P newex 157 126 130 13172745 t params s 1;
#P newex 527 432 52 13172745 route cell;
#P newex 552 480 60 13172745 pack 0 0.;
#P newex 527 455 86 13172745 unpack 0 0 s 0.;
#N vst~ loaduniqueid 0;
#P newobj 38 569 106 13172745 vst~;
#P comment 177 28 100 13172745 load a plugin;
#P comment 183 606 100 13172745 to textedit;
#P comment 63 466 100 13172745 Audio;
#P comment 591 25 90 13172745 open edit window;
#P comment 365 28 100 13172745 crossfade on/off;
#P window setfont “Sans Serif” 9.;
#P comment 550 538 100 9109513 use this to filter out parameters you might not want to change;
#P comment 339 433 100 9109513 you can connect this outlet to a jit.window;
#P fasten 21 0 23 0 162 119 34 119;
#P fasten 11 0 7 0 162 503 43 503;
#P fasten 22 0 7 0 177 503 43 503;
#P connect 28 0 7 0;
#P fasten 31 0 7 0 687 503 43 503;
#P connect 46 4 7 0;
#P connect 7 0 26 0;
#P connect 7 1 25 0;
#P connect 27 0 7 1;
#P fasten 29 0 20 0 162 46 162 46;
#P connect 20 0 19 0;
#P connect 19 0 21 0;
#P connect 21 0 11 0;
#P fasten 23 0 30 0 34 503 171 503;
#P fasten 11 1 22 0 222 150 177 150;
#P fasten 7 2 18 0 81 630 34 630 34 180 203 180;
#P connect 18 0 17 0;
#P fasten 17 0 43 0 203 229 213 229;
#P connect 43 0 24 0;
#P fasten 24 0 32 0 213 273 229 273;
#P fasten 13 1 32 0 462 273 229 273;
#P fasten 36 0 32 0 280 332 229 332;
#P fasten 11 2 17 2 282 180 231 180;
#P fasten 45 0 36 0 303 299 280 299;
#P fasten 24 0 36 0 213 273 280 273;
#P fasten 37 0 36 0 353 273 280 273;
#P fasten 24 0 45 0 213 273 279 273 279 273 303 273;
#P connect 44 0 42 0;
#P connect 42 0 38 0;
#P connect 38 0 37 0;
#P fasten 38 2 39 0 405 160 454 160 454 96 372 96;
#P fasten 38 1 39 0 379 160 454 160 454 96 372 96;
#P connect 39 0 38 1;
#P fasten 34 0 33 0 435 364 383 364;
#P fasten 32 0 33 0 229 364 383 364;
#P fasten 24 0 35 0 213 399 383 399;
#P fasten 33 0 35 0 383 400 383 400;
#P fasten 16 0 35 0 477 399 383 399;
#P connect 41 0 42 1;
#P fasten 14 0 33 1 503 370 419 370;
#P fasten 38 0 40 0 353 160 435 160;
#P connect 40 0 34 0;
#P fasten 34 0 13 0 435 238 447 238;
#P fasten 13 0 15 0 447 273 447 273;
#P fasten 17 0 15 1 203 273 477 273;
#P fasten 15 2 16 0 477 335 477 335;
#P fasten 13 2 14 0 477 273 503 273;
#P fasten 12 0 14 0 518 333 503 333;
#P fasten 24 0 14 0 213 273 503 273;
#P fasten 45 0 12 0 303 299 518 299;
#P fasten 37 1 12 0 384 273 518 273;
#P fasten 24 0 12 0 213 273 518 273;
#P connect 35 1 10 0;
#P connect 10 0 8 0;
#P connect 8 1 9 0;
#P connect 9 0 46 0;
#P connect 8 3 9 1;
#P pop;
#P newobj 135 203 141 13172745 p random_parameters;
#P comment 269 107 138 13172745 view plugin edit window;
#P comment 251 66 149 13172745 load new vst effect;
#P comment 252 85 184 13172745 start/stop morph;
#P hidden connect 10 0 3 4;
#P hidden connect 3 2 9 0;
#P hidden connect 11 0 3 3;
#P hidden connect 8 0 3 2;
#P connect 5 0 6 1;
#P connect 4 1 5 0;
#P connect 3 1 5 0;
#P connect 12 0 3 0;
#P connect 12 0 3 1;
#P connect 15 0 14 0;
#P connect 15 0 12 0;
#P connect 14 0 12 0;
#P connect 13 0 12 0;
#P connect 7 0 6 0;
#P connect 4 0 6 0;
#P connect 3 0 4 0;
#P window clipboard copycount 16;

#77339
May 18, 2006 at 3:45pm

i also experienced very faster interpolation with jit.xfade than doing it
directly in pattr.
I think it is not a problem to interpolate gazillion parameters, considering
that when you interpolate 2 matrices sized 320*240, that already
make 76800 parameters… Maybe gazillion is more than i think, but i see
nothing sluggish there..
Andrew Bhas written a patch for that in the Jitter recipes.
best

#77340
May 18, 2006 at 4:27pm

what i use is this relatively simple patch (no jitter nor js) not
sure how many elements you may store in a coll (on the same line) but
it’s more than 64 (just tried with more than 100)

of course you could save the coll with the patcher – or coll it
differently, according to the vst you use

hope it can help

best

kasper

Kasper T. Toeplitz
noise, composition, bass, computer

http://www.sleazeArt.com

#77341
May 18, 2006 at 4:50pm

Not inside Jitter there isn’t. Getting the data to the vst plugin is where you can get a bottleneck.

-A

#77342
May 18, 2006 at 5:20pm

ooops, forgot to include the patch

kasper

#P user ezdac~ 390 378 434 411 0;
#P user gain~ 397 227 24 100 158 0 1.071519 7.94321 10.;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P message 345 144 111 196617 midievent 144 50 110;
#P window linecount 3;
#P comment 16 151 100 196617 3_ and choose the preset location (+ bang);
#P window linecount 1;
#P newex 168 296 27 196617 t b i;
#P user gswitch2 79 336 39 32 0 0;
#P flonum 100 387 35 9 0. 1. 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 99 310 47 196617 Lmult 1.;
#N vpatcher 70 70 494 476;
#P window setfont “Sans Serif” 9.;
#P newex 60 234 27 196617 f;
#P newex 155 181 40 196617 t b b l;
#P newex 185 236 35 196617 zl reg;
#P newex 276 180 40 196617 t b l b;
#P newex 276 237 35 196617 zl reg;
#N comlet input list 2;
#P inlet 276 87 15 0;
#N comlet inpute list 1;
#P inlet 155 86 15 0;
#N comlet interpolated mix;
#P outlet 162 330 15 0;
#N comlet (float) between 0. and 1. , mix level;
#P inlet 29 86 15 0;
#P newex 162 285 75 196617 list-interpolate;
#P connect 6 0 9 0;
#P connect 8 0 9 0;
#P connect 1 0 9 0;
#P connect 3 0 8 0;
#P connect 9 0 0 0;
#P connect 7 0 0 0;
#P connect 5 0 0 0;
#P connect 0 0 2 0;
#P connect 8 2 7 0;
#P connect 6 2 7 0;
#P connect 4 0 6 0;
#P connect 8 1 5 0;
#P connect 6 1 5 0;
#P pop;
#P newobj 32 419 69 196617 p list-mixer;
#P newex 281 374 55 196617 zl group 2;
#P number 172 272 35 9 0 0 64 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N coll ;
#P newobj 63 287 53 196617 coll;
#P button 47 180 15 0;
#P number 70 177 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 61 232 27 196617 i;
#P newex 62 257 38 196617 zl join;
#P newex 232 242 62 196617 prepend get;
#P newex 90 231 54 196617 thresh 99;
#P number 232 219 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N counter;
#X flags 0 0;
#P newobj 232 196 66 196617 counter;
#P button 246 46 15 0;
#P newex 246 71 59 196617 t params 1;
#P button 232 173 15 0;
#P message 73 66 26 196617 plug;
#N vst~ loaduniqueid 0;
#P newobj 76 125 140 196617 vst~;
#P comment 58 47 56 196617 choose plug;
#P window linecount 2;
#P comment 273 44 100 196617 2_for each preset clik here;
#P window linecount 3;
#P comment 210 275 100 196617 choose the 2 presets you want to
interpolate between;
#P window linecount 1;
#P comment 138 388 100 196617 and interpolate;
#P connect 27 0 28 0;
#P connect 27 0 28 1;
#P connect 4 0 27 0;
#P connect 20 0 19 0;
#P connect 7 1 9 2;
#P connect 8 0 7 0;
#P connect 10 0 12 0;
#P connect 9 0 10 0;
#P connect 6 0 9 0;
#P connect 4 2 6 0;
#P connect 18 0 24 0;
#P connect 21 0 23 1;
#P connect 17 0 21 0;
#P connect 23 1 20 2;
#P connect 11 0 13 1;
#P connect 4 3 11 0;
#P connect 24 0 23 0;
#P connect 15 0 14 1;
#P connect 19 0 4 0;
#P connect 12 0 4 0;
#P connect 7 0 4 0;
#P connect 5 0 4 0;
#P connect 26 0 4 0;
#P connect 24 1 17 0;
#P connect 13 0 17 0;
#P connect 14 0 13 0;
#P connect 23 0 20 1;
#P connect 16 0 14 0;
#P connect 22 0 20 0;
#P window clipboard copycount 29;

#77343
May 18, 2006 at 10:52pm

Quote: Kasper T Toeplitz wrote on Thu, 18 May 2006 12:27
—————————————————-

> what i use is this relatively simple patch (no jitter nor js)

here is one using only pattr & multislider

#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P comment 518 136 100 196617 interpolate;
#P flonum 483 135 35 9 1. 3. 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 53 83 26 196617 plug;
#P message 372 241 69 196617 clientwindow;
#P message 372 224 78 196617 storagewindow;
#P message 416 128 45 196617 recall 3;
#P message 416 111 45 196617 recall 2;
#P message 416 94 45 196617 recall 1;
#P message 372 128 43 196617 store 3;
#P message 372 111 43 196617 store 2;
#P message 372 94 43 196617 store 1;
#P newex 372 164 67 196617 pattrstorage;
#X client_rect 0 0 640 240;
#X storage_rect 0 0 640 240;
#P objectname u194000009;
#P message 116 131 38 196617 get -4;
#N vst~ loaduniqueid 0;
#P newobj 53 209 79 196617 vst~;
#N vpatcher 387 225 1015 713;
#P window setfont “Sans Serif” 9.;
#P window linecount 0;
#P newex 38 43 50 196617 deferlow;
#P window linecount 1;
#P newex 68 406 50 196617 deferlow;
#P number 55 119 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 0;
#P newex 221 381 51 196617 pack 1 0.;
#P newex 221 333 26 196617 t b f;
#P message 249 311 14 196617 1;
#P button 249 291 15 0;
#P window linecount 1;
#N counter;
#X flags 0 0;
#P newobj 221 357 66 196617 counter;
#P window linecount 0;
#P newex 221 310 25 196617 iter;
#P window linecount 1;
#P newex 38 91 27 196617 t i i;
#P window linecount 0;
#P message 263 185 54 196617 set $1 $2;
#P message 221 185 43 196617 size $1;
#P user multiSlider 221 210 350 73 0. 1. 8 2681 15 0 0 2 0 0 0;
#M frgb 0 0 0;
#M brgb 255 255 255;
#M rgb2 127 127 127;
#M rgb3 0 0 0;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#P objectname plugin_parameters;
#P window linecount 1;
#P newex 267 67 166 196617 pattr vst_settings @autorestore 0;
#X prestore 8 0 0. 0. 0. 0. 0. 0. 0. 0.;
#P objectname vst_settings;
#P message 68 175 39 196617 get $1;
#P newex 38 143 40 196617 uzi;
#P newex 38 67 48 196617 route -4;
#P inlet 38 19 15 0;
#P outlet 68 431 15 0;
#P connect 1 0 18 0;
#P connect 18 0 2 0;
#P connect 2 0 9 0;
#P connect 9 0 3 0;
#P connect 9 1 16 0;
#P connect 3 2 4 0;
#P connect 4 0 17 0;
#P fasten 15 0 17 0 226 402 73 402;
#P connect 17 0 0 0;
#P fasten 9 1 7 0 60 113 226 113;
#P connect 5 1 6 0;
#P fasten 8 0 6 0 268 205 226 205;
#P connect 7 0 6 0;
#P connect 6 0 10 0;
#P connect 10 0 14 0;
#P connect 14 0 11 0;
#P connect 11 0 15 0;
#P fasten 6 0 12 0 226 290 254 290;
#P connect 12 0 13 0;
#P connect 13 0 11 2;
#P connect 14 1 15 1;
#P fasten 2 1 8 0 81 92 268 92;
#P pop;
#P newobj 92 237 105 196617 p vst~ pattr example;
#P objectname “sub patch”;
#P comment 116 116 148 196617 2. Poll the parameters to pattr;
#P comment 53 70 100 196617 1. load a plugin;
#P window linecount 2;
#P comment 370 68 100 196617 Try doing some presets;
#P hidden connect 7 0 6 0;
#P hidden connect 8 0 6 0;
#P hidden connect 9 0 6 0;
#P hidden connect 10 0 6 0;
#P hidden connect 11 0 6 0;
#P hidden connect 12 0 6 0;
#P connect 13 0 6 0;
#P connect 14 0 6 0;
#P connect 16 0 6 0;
#P connect 4 3 3 0;
#P connect 5 0 4 0;
#P connect 15 0 4 0;
#P fasten 3 0 4 0 97 261 47 261 47 206 58 206;
#P window clipboard copycount 18;

#77344
May 19, 2006 at 8:32am

oh, nice – and the use of “get -4″ will clean up my own patch!

best

kasper

#77345
May 19, 2006 at 8:42am

#77346
May 19, 2006 at 10:14am

i’m also sure the bottleneck is getting the messages thru to vst~

there will be performance problems with plugs holding to many params… one thing that might help is to qlim the output of the multislider a bit – relative to the number of parameters (i.e. the more params in plugin, the higher granulation of the interpolation messages ;)

#77347
Mar 17, 2007 at 1:11pm

Excuse me for reopening this thread.

I would like to be able to exclude a pattr from the visibility of every pattrstorage by setting an attribute -on the pattr-.

Have a look at this patch. For obvious reasons I want to exclude the bottommost pattr:

#P flonum 215 292 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 216 240 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 216 215 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 311 273 14 9109513 2;
#P message 296 273 14 9109513 1;
#P newex 296 292 103 9109513 sprintf bindto Param%i;
#P objectname Param1[2];
#P newex 253 292 40 9109513 pattr;
#X prestore 1 0 0.23;
#P objectname u045000506;
#P newex 253 240 62 9109513 pattr Param2;
#X prestore 1 0 0.29;
#P objectname Param2;
#P newex 253 215 62 9109513 pattr Param1;
#X prestore 1 0 0.23;
#P objectname Param1;
#P newex 253 184 58 9109513 pattrstorage;
#X client_rect 184 220 922 730;
#X storage_rect 0 0 640 240;
#P objectname u442000507;
#P connect 3 0 9 0;
#P connect 9 0 3 0;
#P connect 2 0 8 0;
#P connect 1 0 7 0;
#P connect 7 0 1 0;
#P connect 8 0 2 0;
#P connect 4 0 3 0;
#P connect 6 0 4 0;
#P connect 5 0 4 0;

Is there a way to do this? If not, I’d like to make it a feature request.

Cheers,
Mattijs

Quote: Jan Klug wrote on Thu, 18 May 2006 13:33
—————————————————-
>
> On 18.05.2006, at 12:22, Stefan Tiedje wrote:
> > I want to exclude some pattr objects out of the visibility of a
> > pattrstorage.
>
> hi stefan, check out pattrstorages ‘active’ message, demonstrated in
> the ‘active’ subpatcher!
>
> jan
>
>
>
—————————————————-

#77348
Mar 17, 2007 at 1:25pm

No. I will add your feature request to pile of similar feature
requests you surely noticed as you were searching the forum.

jb

Am 17.03.2007 um 14:11 schrieb Mattijs Kneppers:

> Is there a way to do this? If not, I’d like to make it a feature
> request.

#77349
Mar 17, 2007 at 2:31pm

Thanks,

I personally find this approach to feature requests very inspiring:

http://www.cockos.com/wiki/index.php/ReaperSuggestions

Best,
Mattijs

Quote: Jeremy Bernstein wrote on Sat, 17 March 2007 14:25
—————————————————-
> No. I will add your feature request to pile of similar feature
> requests you surely noticed as you were searching the forum.
>
> jb
>
> Am 17.03.2007 um 14:11 schrieb Mattijs Kneppers:
>
> > Is there a way to do this? If not, I’d like to make it a feature
> > request.
>
>
—————————————————-

#77350

You must be logged in to reply to this topic.