Benvenuto, Visitatore. Per favore, effettua il login o registrati.

  Hai perso la tua email di attivazione?

Main Home Help Ricerca Login Registrati

+  Virtual Sound - FORUM
|-+  Linguaggi per la Computer Music
| |-+  Max MSP Jitter
| | |-+  pattrstorage e i vst
« precedente successivo »
Pagine: [1] 2 Stampa
Autore Topic: pattrstorage e i vst  (Letto 1996 volte)
brunozamborlin
Hero Member
*****
Posts: 774



Guarda Profilo
« il: Dicembre 02, 2005, 15:27:20 »

Sto costruendo in max un'applicazione che funge essenzialmente da vst host per processare in tempo reale il segnale audio entrante.

Usando l'oggetto pattrstorage sono riuscito a fare in modo che si possano salvare tutti i parametri dei vari oggetti (per i bpatcher presenti uso l'oggetto autopattr perchè il "greedy" del pattrstorage non li salva).

Purtroppo però pattrstorage non riconosce (ovviamente) i vari parametri dei vst caricati dentro l'oggetto vst~.

Come potrei fare per salvare anche quei parametri nel file xml del pattrstorage?
E magari vorrei anche, quando si carica un certo stato, interpolarlo dal precedente. Ma per questo basta una semplice line.

Mi era venuto in mente di collegare una lista da 128 elementi all'uscita di vst~ e salvare quella... E' fattibile?

ps: uno screenshot dell'applicazione:
Loggato

brunozamborlin
Hero Member
*****
Posts: 774



Guarda Profilo
« Risposta #1 il: Dicembre 02, 2005, 17:41:47 »

Alla precedente domanda vorrei aggiungerne un'altra, sempre inerente al pattrstorage: vorrei salvare anche CHE vst sono stati caricati durante il salvataggio.

Intendo, se al momento del salvataggio del file xml sono caricati 2 vst con nomi "fx1.dll", "fx2.dll", vorrei che alla lettura del file xml quei vst venissero ricaricati, se presenti nella stessa subfolder della patch.

Per far questo credo sia indispensabile poter salvare da pattrstorage una stringa di testo... cosa che purtroppo non fa.
Come posso quindi salvare i nomi dei vst?
Loggato

mauriziogiri
Amministratore
Sr. Member
*****
Posts: 348


Guarda Profilo WWW
« Risposta #2 il: Dicembre 02, 2005, 22:49:58 »

Come potrei fare per salvare anche quei parametri nel file xml del pattrstorage?
E magari vorrei anche, quando si carica un certo stato, interpolarlo dal precedente. Ma per questo basta una semplice line.

Mi era venuto in mente di collegare una lista da 128 elementi all'uscita di vst~ e salvare quella... E' fattibile?

Puoi fare una lista e memorizzarla in un pattr, a quel punto puoi anche interpolare facilmente i dati. Ti allego un esempio che usa un multislider per memorizzare temporaneamente la lista mentre modifichi i parametri nel vst. Fai così: carica un plugin nel vst~ in alto, poi per scaricare tutti i parametri nella lista fai clic sul messaggio "get -4". Memorizza i tuoi preset nel pattrstorage facendo clic sui vari numeri collegati al messaggio "store $1". Per rimandare la lista al plugin usa la parte bassa della patch: carica lo stesso plugin nel vst~ in basso e richiama i preset dal pattrstorage. Usando un altro pattr puoi memorizzare anche il nome del plugin utilizzato.

#P window setfont "Sans Serif" 9.;
#P number 207 443 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P newex 137 421 34 196617 zl len;
#P flonum 391 440 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 381 404 14 196617 4;
#P message 358 404 14 196617 3;
#P message 334 404 14 196617 2;
#P message 311 404 14 196617 1;
#P message 326 440 49 196617 store \$1;
#P newex 117 370 96 196617 pattr parametrivst;
#X prestore 38 0 0.941176 0.12549 0.627451 0.941176 1. 0. 0. 0. 0. 0. 0. 0. 0.807843 0.807843 0.807843 0.784314 0.745098 0.705882 0. 0. 0. 0. 0. 1. 1. 1. 1. 0.345098 0.305882 0.282353 0.282353 0.282353 0.282353 0.282353 0.282353 0.313726 1. 1.;
#P objectname parametrivst;
#P newex 326 494 67 196617 pattrstorage;
#X client_rect 665 54 1305 294;
#X storage_rect 0 0 640 240;
#P objectname u317000008;
#P window linecount 3;
#P comment 178 466 90 196617 recupera i parametri dal multislider;
#P window linecount 1;
#P newex 57 238 62 196617 prepend get;
#P newex 57 214 40 196617 uzi;
#P newex 75 399 73 196617 t l 1 l;
#P newex 68 503 97 196617 pack 0 0.;
#P newex 75 445 90 196617 t b f;
#P newex 75 420 25 196617 iter;
#N counter 1 1;
#X flags 0 0;
#P newobj 68 478 89 196617 counter 1 1;
#P message 139 541 26 196617 plug;
#N vst~ loaduniqueid 0;
#P newobj 79 565 79 196617 vst~;
#P newex 57 184 27 196617 t i i;
#P newex 117 212 66 196617 prepend size;
#P newex 57 160 48 196617 route -4;
#P message 50 84 38 196617 get -4;
#P newex 199 211 75 196617 prepend select;
#P user multiSlider 117 278 245 84 0. 1. 38 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 vstmulti;
#P message 194 85 26 196617 plug;
#N vst~ loaduniqueid 0;
#P newobj 117 131 79 196617 vst~;
#P window linecount 3;
#P comment 366 280 120 196617 per l'editing parziale delle liste si puo' usare un multislider;
#P window linecount 1;
#P comment 0 68 147 196617 clic per scaricare i parametri;
#P window linecount 3;
#P comment 299 181 100 196617 memorizza i parametri sul multislider;
#P window linecount 2;
#P comment 169 541 100 196617 deve essere lo stesso plugin!;
#P window linecount 1;
#P comment 383 426 81 196617 interpolazione;
#P connect 25 0 23 0;
#P connect 30 0 23 0;
#P connect 29 0 25 0;
#P connect 28 0 25 0;
#P connect 27 0 25 0;
#P connect 26 0 25 0;
#P connect 31 0 15 4;
#P connect 31 0 32 0;
#P connect 10 1 8 0;
#P connect 17 1 18 1;
#P connect 19 2 31 0;
#P connect 7 0 24 0;
#P connect 8 0 7 0;
#P connect 11 0 7 0;
#P connect 12 1 11 0;
#P connect 6 0 5 0;
#P connect 9 0 5 0;
#P fasten 21 0 5 0 62 264 292 264 292 114 122 114;
#P lcolor 3;
#P connect 19 1 15 2;
#P connect 14 0 13 0;
#P connect 18 0 13 0;
#P connect 16 0 17 0;
#P connect 19 0 16 0;
#P connect 24 0 19 0;
#P connect 15 0 18 0;
#P connect 17 0 15 0;
#P connect 20 2 21 0;
#P connect 12 0 20 0;
#P connect 10 0 12 0;
#P connect 5 3 10 0;
#P window clipboard copycount 33;
Loggato

Maurizio Giri Home Page: http://www.giri.it
mauriziogiri
Amministratore
Sr. Member
*****
Posts: 348


Guarda Profilo WWW
« Risposta #3 il: Dicembre 02, 2005, 22:54:23 »

PS. se vedi che il multislider NON si modifica mentre cambi i parametri nel plugin (alcuni non mandano automaticamente fuori il cambio di parametri), ricordati di fare clic su "get -4" prima di memorizzare la lista nel pattrstorage
Loggato

Maurizio Giri Home Page: http://www.giri.it
brunozamborlin
Hero Member
*****
Posts: 774



Guarda Profilo
« Risposta #4 il: Dicembre 02, 2005, 23:19:46 »

Va perfettamente mi viene da piangere  Wow

L'idea di settare la size del multislider con il numero dei parametri del vst è perfetta, così la patch funziona per qualunque vst.

Se ho problemi avverto, ma mi pare perfetta!

Grazie mille.
Loggato

brunozamborlin
Hero Member
*****
Posts: 774



Guarda Profilo
« Risposta #5 il: Dicembre 02, 2005, 23:50:57 »

Ecco appunto  Grossa risata

Altra cosa: vorrei poter dire all'oggetto vst~:
"all'avvio dell'applicazione pluggami automaticamente l'ultimo vst caricato".

1-Per fare questo devo semplicemente storare il testo contenuto in un messaggio.
Purtroppo però il pattrstorage non salva il testo dei messaggi. Come posso fare?

2-Non centra ma ne approfitto. Dovrei passare degli argomenti alla patch racchiusa nell'oggetto poly, come si fa?

Grazie ancora.
« Ultima modifica: Dicembre 02, 2005, 23:55:51 da namaste » Loggato

mauriziogiri
Amministratore
Sr. Member
*****
Posts: 348


Guarda Profilo WWW
« Risposta #6 il: Dicembre 04, 2005, 23:20:16 »

Ecco appunto  Grossa risata

Altra cosa: vorrei poter dire all'oggetto vst~:
"all'avvio dell'applicazione pluggami automaticamente l'ultimo vst caricato".

1-Per fare questo devo semplicemente storare il testo contenuto in un messaggio.
Purtroppo però il pattrstorage non salva il testo dei messaggi. Come posso fare?

Usa un oggetto pattr (te lo avevo gia' scritto nel messaggio precedente) per memorizzare il testo e pattrstorage sarà ben felice di registrarlo al suo interno. "pattr" è un contenitore universale che funziona alla grande con pattrstorage.

Citazione
2-Non centra ma ne approfitto. Dovrei passare degli argomenti alla patch racchiusa nell'oggetto poly, come si fa?

Il manuale di riferimento di MSP a pag 318 risponde a questa domanda.   Occhiolino
(vedi alla voce "args")

m
Loggato

Maurizio Giri Home Page: http://www.giri.it
brunozamborlin
Hero Member
*****
Posts: 774



Guarda Profilo
« Risposta #7 il: Dicembre 05, 2005, 20:42:30 »

Perfetto grazie mille!!
Loggato

brunozamborlin
Hero Member
*****
Posts: 774



Guarda Profilo
« Risposta #8 il: Dicembre 21, 2005, 18:18:41 »

Purtroppo ho ancora un problemino...
Mentre utilizzando i "GRM Tools" tutto funziona alla perfezione, con molti altri vst (sto provando con Spektral Delay e con Guitar Rig adesso) il multislider non viene settato... neanche con il comando "get -4".

Dove può essere la differenza tra questi vst? Come posso rimediare?

Allego la patch che ho fatto, ci sono un po di cose in più e i parametri si chiamano "#1" perchè la patch è contenuta nell'applicazione...

salvare come "vst_effetteria_storage"

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 171 141 29 9109513 print;
#P newex 207 205 98 9109513 autopattr vst_storage;
#X prestore vstmulti 21 0 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.714286 0. 0. 0.;
#P objectname vst_storage;
#P newex 8 47 40 9109513 route -4;
#P outlet 8 373 15 0;
#P inlet 8 27 15 0;
#P number 193 289 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 144 265 34 9109513 zl len;
#P newex 68 208 96 9109513 pattr parametrivst;
#X prestore 21 0 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.714286 0. 0. 0.;
#P objectname parametrivst;
#P comment 192 270 83 9109513 numero parametri;
#P newex 8 140 62 9109513 prepend get;
#P newex 8 107 40 9109513 uzi;
#P newex 68 237 87 9109513 t l 1 l;
#P newex 68 348 97 9109513 pack 0 0.;
#P newex 68 290 97 9109513 t b f;
#P newex 68 265 25 9109513 iter;
#N counter 1 1;
#X flags 0 0;
#P newobj 68 323 89 9109513 counter 1 1;
#P newex 8 77 27 9109513 t i i;
#P newex 68 107 66 9109513 prepend size;
#P newex 150 107 57 9109513 prepend set;
#P user multiSlider 68 171 105 30 0. 1. 21 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 vstmulti;
#P fasten 13 0 4 4 149 312 149 312;
#P fasten 13 0 14 0 149 287 198 287;
#P connect 2 0 0 0;
#P connect 2 0 19 0;
#P connect 6 1 7 1;
#P fasten 17 1 1 0 43 86 155 86;
#P connect 8 2 13 0;
#P connect 17 0 3 0;
#P connect 8 1 4 2;
#P connect 4 0 7 0;
#P connect 6 0 4 0;
#P connect 5 0 6 0;
#P connect 8 0 5 0;
#P fasten 12 0 8 0 73 232 73 232;
#P connect 0 0 12 0;
#P fasten 1 0 0 0 155 148 73 148;
#P fasten 3 1 2 0 30 100 73 100;
#P fasten 7 0 16 0 73 370 13 370;
#P connect 10 0 16 0;
#P fasten 9 2 10 0 43 133 13 133;
#P connect 3 0 9 0;
#P connect 15 0 17 0;
#P window clipboard copycount 20;

principale:

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 3 167 45 9109513 loadbang;
#P newex 173 50 38 9109513 del 500;
#P message 173 75 38 9109513 plug $1;
#P newex 60 240 38 9109513 r $1vst;
#P newex 3 189 98 9109513 r $1getvstparameters;
#P message 3 213 38 9109513 get -4;
#P newex 150 151 102 9109513 effetteria_vst_storage;
#P objectname effetteria_vst_storage;
#P newex 43 368 106 9109513 autopattr effetteria_vst;
#P objectname effetteria_vst;
#P newex 195 338 57 9109513 prepend set;
#P newex 311 280 50 9109513 expr $i1*2;
#P newex 257 308 30 9109513 zl nth;
#P newex 257 258 49 9109513 prepend 0;
#P button 280 52 15 0;
#P newex 257 338 74 9109513 prepend append;
#P newex 257 373 49 9109513 s $1name;
#P message 280 74 54 9109513 pgmnames;
#P newex 264 27 24 9109513 r $1;
#P objectname receive[2];
#P message 122 51 28 9109513 open;
#P newex 122 27 44 9109513 r $1open;
#P objectname receive;
#P newex 173 27 45 9109513 loadbang;
#N vst~ loaduniqueid 0;
#P newobj 60 103 163 9109513 vst~;
#P outlet 60 137 15 0;
#P inlet 28 27 15 0;
#P newex 257 280 52 9109513 thresh 200;
#P comment 100 191 75 9109513 prima di salvare;
#P comment 318 259 136 9109513 Per ottenere il nome del preset;
#P connect 21 0 20 0;
#P connect 25 0 20 0;
#P fasten 9 0 5 0 269 96 65 96;
#P connect 19 0 5 0;
#P fasten 23 0 5 0 178 96 65 96;
#P connect 22 0 5 0;
#P connect 20 0 5 0;
#P fasten 8 0 5 0 127 96 65 96;
#P fasten 3 0 5 0 33 96 65 96;
#P fasten 10 0 5 0 285 96 65 96;
#P connect 5 0 4 0;
#P connect 7 0 8 0;
#P connect 5 3 19 0;
#P connect 6 0 24 0;
#P connect 24 0 23 0;
#P fasten 15 0 17 0 262 332 200 332;
#P fasten 5 5 14 0 215 127 262 127;
#P connect 14 0 2 0;
#P connect 2 0 15 0;
#P connect 15 0 12 0;
#P fasten 17 0 11 0 200 365 262 365;
#P connect 12 0 11 0;
#P fasten 16 0 15 1 316 306 282 306;
#P fasten 9 0 13 0 269 49 285 49;
#P connect 13 0 10 0;
#P fasten 9 0 16 0 269 130 316 130;
#P window clipboard copycount 26;
Loggato

mauriziogiri
Amministratore
Sr. Member
*****
Posts: 348


Guarda Profilo WWW
« Risposta #9 il: Dicembre 21, 2005, 22:13:19 »

mi ricordo che è capitato anche a me con certi plugin. Non so se sia un problema di vst~, o sia il plugin ad essere programmato in modo non standard, e ahimé non conosco la soluzione al problema (se esiste)

m
Loggato

Maurizio Giri Home Page: http://www.giri.it
brunozamborlin
Hero Member
*****
Posts: 774



Guarda Profilo
« Risposta #10 il: Dicembre 22, 2005, 00:02:22 »

Ho meglio inquadrato il problema.  Il fatto è che per ricaricare perfettamente lo stato di un vst salvato precedentemente sono necessari molti più parametri di quelli comandabili via midi.
Vale a dire che molti parametri dei vst sono settabili solo da interfaccia grafica e non via midi, pertanto nemmeno da max... o sbaglio?
Se quel che ho detto è vero, vuol dire che ho fatto tutto per nulla!!!  Scioccato  Pianto
Loggato

franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #11 il: Dicembre 22, 2005, 00:38:44 »

eh questo purtroppo è un problema di plug-in, i plug-in che utilizzo io (pochi a dire il vero) per ogni parametro hanno un parametro MIDI corrispondente quindi la storia si fa più facile...però ci sono dei plug-in che non sono fatti per essere controllati via MIDI, eccetti i parametri "standard" tipo volumi, inviluppi, e via dicendo e la cosa diventa ovviamente completa o addirittura irrisolvibile...purtroppo...per esmpio con i plug in di Smartelectronix questi problemi non ci sono! Wow

.franz
Loggato

brunozamborlin
Hero Member
*****
Posts: 774



Guarda Profilo
« Risposta #12 il: Dicembre 22, 2005, 11:52:38 »

già.
a me serve usare Spektral Delay e Guitar Rig, qualcuno ha esperienze in proposito?

Il fatto è che non solo non riesco a salvare tutti i parametri, ma non riesco neppure a richiamare i preset della banca dati del vst!!!!
Dai mi sembra impossibile... ma non possono mettersi d'accordo?  Scioccato
Loggato

brunozamborlin
Hero Member
*****
Posts: 774



Guarda Profilo
« Risposta #13 il: Dicembre 23, 2005, 01:02:12 »

Per il momento mi arrendo quindi, rimando il problema.

Però vorrei chiedere: come faccio a cambiare il banco dei preset tramite l'oggetto vst~?
Mi spiego, lo spektral delay ad esempio ha già caricati (senza aprire nessun fxb esterno) 4 banchi da 128 preset l'uno. Come faccio a switchare tra un preset e l'altro senza usare l'interfaccia grafica?

Grazie.
Loggato

franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #14 il: Dicembre 23, 2005, 01:31:26 »

questo credo sia fattibilissimo mandando parametri MIDI al plug-in, prova a vedere sul manuale di Spektral Delay qual'è la mappatura MIDI esatta, un pò come faresti per pilotare NN-XT di Reason per capirci. Dovrebbe funzionare...non so se internamente ad un oggetto vst~ però se lo carichi su un sequencer dovrebbe funzionare 99%

.franz
Loggato

Pagine: [1] 2 Stampa 
« precedente successivo »
Salta a:  


Login con username, password e lunghezza della sessione

Powered by MySQL Powered by PHP © Copyright 1996 - 2008 - ConTempoNet Edizioni Musicali ® - P.IVA: 05174251008
Tutti i diritti riservati - Tutti i marchi sono registrati -
È vietata la riproduzione, anche parziale, dei testi e delle immagini.
Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC
Traduzione Italiana a cura di SMItalia
XHTML 1.0 Valido! CSS Valido!