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
| | |-+  Rappresentare una catena di "n" effetti
« precedente successivo »
Pagine: 1 [2] 3 Stampa
Autore Topic: Rappresentare una catena di "n" effetti  (Letto 2259 volte)
brunozamborlin
Hero Member
*****
Posts: 786



Guarda Profilo
« Risposta #15 il: Novembre 11, 2006, 17:02:05 »

Ci stiamo riuscendo eh... tutto tramite lcd e js.
A breve qualche screenshot Sorriso
Loggato

franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #16 il: Novembre 14, 2006, 12:51:23 »

l'idea è ottima, fateci vedere che siete riusciti a combinare, mi raccomando Sorriso
Loggato

mic
Sr. Member
****
Posts: 401


Guarda Profilo
« Risposta #17 il: Novembre 14, 2006, 13:18:05 »

si la parte grafica della cosa sta venedo fuori, il problema secondo le prime prove che ho fatto sta nel routing vero e proprio dell'audio, il metodo di send-receive dinamico che avevo proposto pur essendo molto più economico nel consumo di cpu rispetto a matrix è naturlamente molto meno flessibile e non proprio "pulito", a volte ci sono cliks pops and crakles!..natulamente bisognerà introdurre veloci fade nell'audio quando si riordina la catena.. Occhiolino
« Ultima modifica: Novembre 14, 2006, 13:21:07 da mic » Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #18 il: Novembre 14, 2006, 13:29:59 »

gli inviluppi per evitare i clicks fatelli con wave~ e forme d'onda hanning, è la cosa migliore!
Loggato

brunozamborlin
Hero Member
*****
Posts: 786



Guarda Profilo
« Risposta #19 il: Novembre 14, 2006, 15:12:02 »

No mic secondo me matrix~, oltre ad essere più semplice e flessibile, è anche più economico.
Ti ricordo che si tratterebbe di utilizzare "n" send~ e "n" receive~, molto più cari di semplici cavi audio. Senza contare tutti gli altri oggetti line~ e compagnia bella che dovresti metterci, che in matrix~ sono già implementati in C.
Il fatto è che quest'oggettino che stiamo facendo dovrebbe davvero essere il più economico possibile, perchè pensato per essere usato su qualsiasi patch.

A domani sera Sorriso
Loggato

mic
Sr. Member
****
Posts: 401


Guarda Profilo
« Risposta #20 il: Novembre 14, 2006, 17:38:22 »

dunque bru il discorso è questo, sulla flessibilità ti dò ragione sull'economicità avrei da osservare qualcosa: l'oggetto matrix in realtà non è altro che un mega mixer che poi noi lo usiamo in pratica in modalità binaria 0/1 ma ogni canale può avere tutti i valori tra 0. e 1. per cui quando noi deselezioniamo un canale non è che mettiamo in mute quel canale, cioè non è che metti in mute la parte dsp che non usi, per cui se vuoi fare una catena mettiamo di 10 effetti e, come nel nostro caso non ti interessa poter connettere tutto con tutto, avrai un sacco di "canali" che non userai che peseranno sulla cpu..a proposito avevo letto alcuni post sulla lista ed effettivamente se fai la prova, il metodo con i send/receive è un po più leggero..bisogna fare un po di prove e trovare il giusto compromesso adatto al nostro caso  Occhiolino
Loggato
mauriziogiri
Amministratore
Sr. Member
*****
Posts: 348


Guarda Profilo WWW
« Risposta #21 il: Novembre 14, 2006, 21:52:00 »

mic, quando parli di send/receive intendi quelli di max, senza la tilde? In questo caso hanno il problema che non possono modificare il mittente o il destinatario, quindi anche se sono effettivamente leggeri mancano della caratteristica principale che vi serve per questo progetto.
Gli oggetti send~ e receive~ invece sono molto più pesanti anche se possono modificare il destinatario tramite il messaggio "set" e sono comunque molto meno pratici di matrix~ per smistare i dati.

La soluzione ottimale secondo me è un matrix~ collegato agli ingressi, alle uscite e ai vari effetti magari tramite dei send e receive (senza tilde, tanto sono fissati una volta per tutte) e ogni effetto è racchiuso dentro un poly~ (ad una voce) che può essere messo in mute quando non serve, per risparmiare CPU.

m
Loggato

Maurizio Giri Home Page: http://www.giri.it
mic
Sr. Member
****
Posts: 401


Guarda Profilo
« Risposta #22 il: Novembre 14, 2006, 22:53:25 »

intendevo quelli di msp..scusate non avevo messo la tilde, solo che quando sono fuori casa e uso il pc non mi ricordo mai come si mette Occhiolino
« Ultima modifica: Novembre 14, 2006, 23:02:10 da mic » Loggato
mic
Sr. Member
****
Posts: 401


Guarda Profilo
« Risposta #23 il: Novembre 14, 2006, 23:07:37 »

..ma dai..non lo sapevo mica che send/receive senza tilde mandavano anche il signale!!
vergogna!!
« Ultima modifica: Novembre 14, 2006, 23:12:52 da mic » Loggato
brunozamborlin
Hero Member
*****
Posts: 786



Guarda Profilo
« Risposta #24 il: Novembre 14, 2006, 23:48:38 »

Si lo mandano, solo che non fanno alcuni controlli sul vector da quel che ricordo.
Si quella è senz'altro la soluzione più economica... Tra l'altro matrix~ pesa poco... Dai fatta Sorriso
Loggato

lorbi
Full Member
***
Posts: 211


Guarda Profilo
« Risposta #25 il: Novembre 15, 2006, 01:28:45 »

Si lo mandano, solo che non fanno alcuni controlli sul vector da quel che ricordo.



rispiega?
Loggato
mauriziogiri
Amministratore
Sr. Member
*****
Posts: 348


Guarda Profilo WWW
« Risposta #26 il: Novembre 15, 2006, 09:58:36 »

rispiega?

Come sicuramente sai MSP non elabora il segnale un campione alla volta per poi passarlo al mondo esterno, ma esegue i calcoli a blocchi, detti signal vector, la cui dimensione può essere impostata nella finestra DSP Status.
In generale più piccola è la dimensione del signal vector maggiore è il consumo della CPU (il contrario non è sempre vero).
Gli oggetti MSP che lavorano a coppie, come send~ e receive~, comunicano tra loro tramite un buffer interno che ha la dimensione di un signal vector: ovvero l'oggetto send~ scrive nel buffer interno il blocco di campioni che riceve e l'oggetto receive~ legge questo blocco quando arriva il suo turno di gestire il segnale. Questa procedura non produce alcun ritardo perché l'operazione di lettura e scrittura avviene all'interno del calcolo di un singolo blocco (signal vector). Il vantaggio è che possiamo mettere in feedback il circuito, ovvero possiamo prendere il segnale che arriva a receive~ e rimandarlo a send~: quello che riceve send~ però è il contenuto del buffer precedente (in quanto il nuovo lo deve ancora scrivere!) e quindi il feedback ha un ritardo pari alla dimensione di un signal vector.
Gli oggetti send e receive (senza tilde) invece non sanno niente dei segnali e non comunicano tramite un buffer interno ma mettono direttamente gli oggetti a cui sono collegati in comunicazione tra loro (per questo sono più leggeri per la CPU). Per questo motivo è impossibile metterli in feedback, in quanto dovrebbero passarsi dei dati che non sono ancora stati calcolati.
Questa patch dovrebbe aiutare a chiarire il concetto:

#P window setfont "Sans Serif" 9.;
#P window linecount 5;
#P comment 292 368 173 196617 se trasformate il send~ e il receive~ di questa patch in send e receive il motore DSP andrà in mute perché viene eseguito un feedback non consentito;
#P user gain~ 371 220 21 89 158 0 1.071519 7.94321 10.;
#P user gain~ 144 205 21 89 158 0 1.071519 7.94321 10.;
#P window linecount 2;
#P comment 359 60 100 196617 4) fare clic sul bang button;
#P window linecount 5;
#P comment 441 189 100 196617 5) i click di feedback arrivano alla distanza di un vettore l'uno dall'altro;
#P window linecount 3;
#P comment 167 179 100 196617 3) i due click arrivano contemporaneamente;
#P window linecount 2;
#P comment 164 49 100 196617 2) fare clic sul bang button;
#P window linecount 1;
#P message 298 323 27 196617 stop;
#P message 298 306 67 196617 startwindow;
#P newex 372 344 29 196617 dac~;
#P user gain~ 411 219 21 89 158 0 1.071519 7.94321 10.;
#P newex 329 179 41 196617 *~ 0.9;
#P newex 329 151 95 196617 receive~ tanticlick;
#P button 328 62 15 0;
#P newex 328 87 37 196617 click~;
#P newex 328 127 81 196617 send~ tanticlick;
#P message 46 326 27 196617 stop;
#P message 46 309 67 196617 startwindow;
#P newex 119 326 29 196617 dac~;
#P user gain~ 119 206 21 89 158 0 1.071519 7.94321 10.;
#P newex 144 153 84 196617 receive~ unclick;
#P button 142 50 15 0;
#P newex 142 78 37 196617 click~;
#P newex 142 125 70 196617 send~ unclick;
#P window linecount 4;
#P comment 9 36 100 196617 1) impostare un signal vector size pari a 1024 campioni o più;
#P window linecount 1;
#P comment 372 181 66 196617 feedback;
#P window linecount 4;
#P comment 46 356 173 196617 se trasformate il send~ e il receive~ di questa patch in send e receive senza tilde non noterete alcuna differenza;
#P fasten 4 0 7 0 147 109 124 109;
#P connect 10 0 8 0;
#P connect 9 0 8 0;
#P connect 7 0 8 0;
#P connect 24 0 8 1;
#P connect 5 0 4 0;
#P connect 4 0 3 0;
#P connect 6 0 24 0;
#P connect 7 1 24 0;
#P connect 13 0 12 0;
#P connect 12 0 11 0;
#P fasten 15 0 11 0 334 205 322 205 322 119 333 119;
#P connect 14 0 15 0;
#P fasten 12 0 25 0 333 111 308 111 308 210 376 210;
#P connect 18 0 17 0;
#P connect 19 0 17 0;
#P connect 25 0 17 0;
#P connect 16 0 17 1;
#P fasten 14 0 16 0 334 172 416 172;
#P connect 25 1 16 0;
#P window clipboard copycount 27;

« Ultima modifica: Novembre 15, 2006, 10:16:10 da mauriziogiri » Loggato

Maurizio Giri Home Page: http://www.giri.it
mic
Sr. Member
****
Posts: 401


Guarda Profilo
« Risposta #27 il: Novembre 15, 2006, 10:34:51 »

che dire, grazie mille   Wow
Loggato
lorbi
Full Member
***
Posts: 211


Guarda Profilo
« Risposta #28 il: Novembre 15, 2006, 12:09:51 »

molto interessante, graze mille.

io sapevo che S an R gestivano anche il segnale solo perché lo ho visto fare in alcuni patch di altri...ma non ne ho mai capito il motivo..
risparmio CPU mi sembra un ottimo motivo.

il vantaggio del feedback del vector size invece non lo capisco  Huh


e poi non capisco quindi un'altra cosa: in un utilizzo normale di invio di un segnale..che so..a un mixer finale del patch piuttosto che solo ai lead di visualizzazione della dinamica...voi suggerite di usare s and r e non send~ e receive~ Huh in quanto piú leggeri?


grassie mille

lorbi
Loggato
franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #29 il: Novembre 15, 2006, 13:27:26 »

per mia esperienza personale non sono mai stato un grande sostenitore dei send~ e receive~ e ho ridotto il loro utilizzo alle sole situazioni dove erano indispensabili...ho sempre preferito tirare due-quattro cavi in più perchè le volte in cui li ho usati ho notato anche un uso della cpu molto più forte. Oltretutto lessi, credo proprio sul forum di c74, che se usati in grosse quantità, possono provocare anche fastidiosi problemi di latenza interi ad msp...
Fin ora l'idea migliore, secondo me, è quella di Maurizi: usare un matrix~ con tot canali con un effetto dentro un poly~ ad una voce che va in mute e unmute, magari con un breve fade-in gestito  da matrix~ che ha come starting point l'attivazione del poly~  e lasciar perdere i send~ receive~ Sorriso

teneteci informati sugli sviluppi eh!
Loggato

Pagine: 1 [2] 3 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!