Pagine: [1] 2
|
 |
|
Autore
|
Topic: riempire un buffer in tempo reale... (Letto 4202 volte)
|
marco
Full Member
  
Posts: 116
|
Domanda n°1mettiamo che voglia elborare l'audio in tempo reale...ad esempio construendo un VST pluggo. l'audio che mi arriva dall'oggetto "plugin" lo voglio spedire subito in un buffer... come faccio? con l'oggetto record~ mi si crea una sorta di fastidioso delay... Domanda n°2sto osservando un pò di granularizzatori....vedo che molti hanno una struttura tipo delay..nel senso che hanno del parametri time,feedback, ecc... qualcuno saprebbe descrivermi schematicamente la loro struttura... e se si pòo anche quella di un granulizer standard.. ho scaricato i vari objects della serie http://www.nathanwolek.com/ ma sto studiando + che altro la struttura in se di un intero granulizer... spero di essermi spiegato! GRAZIE 1000! ciao Marco
|
|
|
|
|
Loggato
|
|
|
|
brunozamborlin
Hero Member
    
Posts: 768

|
Per la domanda numero uno, se vuoi specificatamente memorizzare del segnale audio in un buffer, il record è l'unica soluzione. Dipende da che vuoi farci in seguito capire se si può fare a meno di utilizzare il buffer...
Per la seconda domanda hai praticamente chiesto di riassumerti un'enciclopedia Marco! Se fossi in te mi farei una bella ricerca su google, se non hai problemi con l'inglese trovi materiale da studiarti a volontà.
Un grano è un evento acustico di durata molto breve, con una durata prossima al limite della percezione uditiva umana (che tipicamente è di alcuni millisecondi). Per creare un suono di elevata complessità e dinamicità ( e che quindi vari la sua struttura spettrale nel tempo), secondo la filosofia della sintesi granulare asincrona, è necessario unire insieme un elevato numero di grani. Questo significa che il singolo grano è l' elemento costituente e più elementare di un evento sonoro composto da un certo numero di grani stessi. Già di per sé l'idea è affascinante: volendo fare un paragone con la fisica, il nostro grano costituisce la particella elementare, l'oggetto base, e riunisce in sé tutte le caratteristiche di ciò che poc'anzi definivamo elemento microstrutturale: è dotato di una propria frequenza di pitch (altezza), una ampiezza, una durata, un proprio contenuto spettrale (timbro), ed una eventuale propria collocazione spaziale: una sorta di quanto acustico. Questa idea di rappresentazione granulare nasce dalla mente del fisico inglese Dennis Gabor, che pubblicò sull' argomento due brillanti articoli nel 1946 e 1947, dove propugnava il concetto che fosse possibile rappresentare qualsiasi tipo di suono tramite l'appropriata combinazione di migliaia di grani.
Negli anni '60 il compositore Iannis Xenakis riprende quest' idea descrivendo in questo modo un suo modello di sintesi granulare: "Ogni genere di suono, anche variante dinamicamente nel tempo, va visto come se fosse costituito tramite un assemblaggio di un grande numero di suoni elementari adeguatamente disposti nel tempo. Nel tempo di attacco, sostegno, e decadimento di un suono complesso, appaiono migliaia di suoni 'puri' (di tipo cioè sinusoidale) in un più o meno corto intervallo di tempo Æt. " Xenakis propugna anche l'idea degli screens , una sorta di intervalli di tempo all' interno dei quali vengono distribuiti in maniera statistica migliaia di grani. Ecco quindi, tramite lo screen , apparire l'idea dell' evento formato da molti, elementari, elementi costitutivi. Nella sintesi granulare asincrona il risultato sonoro finale di ogni evento è quindi prodotto da molte sequenze di grani parallele le una alle altre ove i grani stessi sono distribuiti statisticamente o pseudocasualmente in maniera non sincrona appunto tra i grani stessi e/o le sequenze . Ma la visione di Xenakis non può ancora attuarsi per la mancanza della tecnologia necessaria: solo più tardi, negli anni '70, il compositore Curtis Roads riuscirà mediante calcolatore a produrre le prime composizioni ottenute con la sintesi granulare. Col passare degli anni, molti altri scienziati e compositori (compreso chi scrive) si sono avvicinati allo studio di questo sistema di sintesi che, sia per la sua eleganza formale rispetto ai modelli micro e macrostrutturali, sia per l'enorme potenza di elaborazione sonora che offre, ha affascinato ed affascina tuttora, a discapito del suo enorme costo computazionale, perché, più che unicamente un sistema di sintesi, costituisce una filosofia operativa nel concepire e comporre una composizione musicale.
|
|
|
|
|
Loggato
|
|
|
|
|
|
mauriziogiri
Amministratore
Sr. Member
    
Posts: 345
|
Se memorizzi l'audio in un buffer e poi lo rileggi e' ovvio che ci sia un delay. In genere per elaborare l'audio in tempo reale non devi memorizzarlo in un buffer, ma mandarlo direttamente ai moduli che lo elaborano (filtri etc.), a meno che tu non voglia fare un granulatore, in quel caso registri il suono e poi lo rileggi a pezzettini (e il delay c'è per forza, almeno in questo universo)...
Per quanto riguarda la struttura di un granulatore, come ti hanno già detto è una domanda un po' difficile: è come chiedere come si costruisce il motore dello shuttle il primo giorno di lezione alla facoltà di ingegneria...
comunque la granulazione si basa sulla lettura di piccole porzioni di un suono registrato in precedenza: questa lettura può avvenire a velocità diverse e su porzioni di suono più o meno grandi, prese in punti diversi del suono d'origine (all'inizio, alla fine, al centro... dipende da dove tu "dici" alla tua applicazione di leggere il suono). Questi grani, per evitare clic e altri rumori fastidiosi vanno modificati con un inviluppo che ne attenui l'inizio e la fine. L'inviluppo può avere varie forme, ad es. un triangolo, oppure una curva gaussiana (una forma a campana) e deve naturalmente durare quanto il grano: in pratica si moltiplica il suono per l'inviluppo. In una sintesi granulare che si rispetti i grani sono molti e si sovrappongono, questo significa che con msp bisogna usare l'oggetto poly~ e creare molte istanze diverse. I parametri che tu vedi nelle applicazioni di granulazione spesso non sono standard: ad esempio feedback si riferisce probabilmente ad una applicazione che prende l'uscita del granulatore e la riscrive nel buffer che contiene il suono originale, per aumentare la densità della granulazione, ma magari si tratta semplicemente di un delay con feedback che viene applicato all'uscita del granulatore... Insomma e' un gran casino, e non e' una cosa che si puo' imparare in un giorno... la cosa migliore e' analizzare le patch esistenti (come hai visto ce ne sono molte) e approfondire il piu' possibile maxmsp, perché per fare la sintesi granulare bisogna conoscerlo mooooolto bene...
m
|
|
|
|
|
Loggato
|
|
|
|
marco
Full Member
  
Posts: 116
|
grazie 1000 franzrosati per il link...ora scarico!!!!  maurizio, grazie anche a te per le preziosissime info... si lo so in effetti non è una cosa molto semplice e logicamente si deve conoscere benone max...(io sto imparando ad usarlo da poco).. ora vedo in giro un pò tutto il materiale che sto trovando... cmq ho una domandina...voi ve lo siete mai costruiti un granulizer? se si con che logica (in generale)? ...sapevo dei meccanismi della granular synthesis...ma mi sfugge una cosa: io pensavo che il suono in input venisse registrato a pezzettini e non interamente...giusto?? e poi ogni pezzettino veniva letto ad una certa velocità con l'inviluppo desiderato (triangle o gauss)... mmm...mi sbaglio forse? thx!
|
|
|
|
|
Loggato
|
|
|
|
marco
Full Member
  
Posts: 116
|
già che ci sono faccio una domanda inerente all'oggetto poly~ che mi dovrebbe servire: bene...lo voglio capire: ho visto nell'help che praticamente è un oggetto che permette il caricamento di una patch (il formato *.pat che è???!) già esistente la quale debba contenere degli in~ out~ al posto degli inlets e outles tradizionali... questa patch viene caricata per un numero di n istanze... bene...ma io nn ne colgo il suo utilizzii, in parole povere: a che serve? quando e come la si usa? nel caso del granulizer come mi poò servire? p.s. scusate se faccio domande in continuazione,,,,ma sono un principiante e ho voglia di imparare un po questo benedetto maxmsp! ciaooooo! 
|
|
|
|
|
Loggato
|
|
|
|
franz
AAA1
Hero Member

Posts: 828
|
Ciao marco innanzitutto l'estensione .pat è l'estensione di una qualsiasi patch di maxmsp. Per l'oggetto poly_(non posso fare la tilde sono da linux quindi utilizzo un _) il suo utilizzo risulta estremamente necessario nel momento in cui tu abbia bisogno di creare uno strumento polifonico. In poche parole poly_ agisce aprendo più istanze della stessa patch contemporaneamente. Se tu costruissi per esempio un sintetizzatore di qualsiasi tipo in max, pilotato via MIDI, avresti uno strumento monofonico, inserendo la patch del sintetizzatore in un poly_ con argomento 16 (che si riferisce alla polifonia, ovvero alle istanze che puoi aprire) riusciresti a suonare fino a 16 note diverse contemporaneamente, l'alternativa sarebbe aprire 16 patch dello stesso sintetizzatore o qualsiasi altra cosa si tratti gravando sulla cpu. Ogni patch che vuoi utilizzare con l'oggetto poly_ deve avere i suoi In_ e out_ e l'oggetto thispoly_ con i rispettivi argomenti che ti permettono di aprire e chiudere istanze nel momento in cui non ti servono, l'help dell'oggetto è sicuramente molto più chiaro di come ti sto esponendo la cosa. Ti lascio immaginare gli utilizzi dell'oggetto poly_ nel caso della sintesi granulare  o di qualsiasi altra cosa necessiti di polifonia. Immagina per esempio di costruirti una specie di campionatore utilizzando un solo buffer_ invece di utilizzarne, che so, 60. Per quanto riguarda il "granulizzatore" io non ho ancora affrontato l'argomento in maniera pratica anche se ho fatto qualche esperimento per la generazione di grani in max collegandolo ad un buffer da "polverizzare" con un delay particolare, il mio franzdelay, che da un effetto simile alla granulazione ma non è controllabile secondo parametri standard come sincronia di pitch e lunghezza dei grani ecc...è tutto piuttosto aleatorio  . In ogni modo c'è il Granular Toolkit che è molto ben fatto però non è molto utile a capire come si può strutturare un modello di sintesi granulare sincrona o asincrona che sia. Il link alla patch di Sakodna invece può essere già più utile da vivisezionare e capire qualcosina in più. Spero di non essere stato troppo prolisso! .franz
|
|
|
|
|
Loggato
|
|
|
|
marco
Full Member
  
Posts: 116
|
grazie 1000 franz! la tua spiegazione mi ha chiarito moolto le idee...boh, si vede che alcuni helps di max per me sono un pò troppo sintetici senza venire al dunque... cmq grazie ancora...rileggerò bene la tua risposta e smanetterò un pò su sto poly~.... cmq volevo condividere con voi questo rottame:  ...è una sorta di granulizzatore.. il perno del suo motore è l'oggetto grain.bang~... ecco alcuni esempi audio facendogli passare attraverso dei loops: loop_1loop_2...tenete basso il volume dei vostri monitors...diciamo che non è sto suono così limpido e lieve..  bhe diciamo che magari è utile ad ottenere quei suonini molto glithc che (soprattutto x uno come me) sono molto utili... magari registrando il risultato in un file *.wav e poi spezzettare tutto con Recycle o simili....  ciaooooo
|
|
|
|
« Ultima modifica: Dicembre 03, 2005, 05:29:30 pm da marco »
|
Loggato
|
|
|
|
marco
Full Member
  
Posts: 116
|
cavolo franz ho ascoltato il tuo pezzo wasserfester on AFE Records Ten Years Compilation...complimenti!!!!!!!!!!!! mi piace molto quell'atmosfera così dolce con quel sottofondo minimal electro!! bravo! ...a proposito..quel suono iniziale in wasserfester...(penso un cymbal o qualcosa processato) l'hai magari ottenuto con il tuo "franzdelay"? mmm...sto ascoltando anche le altre tracce .01 ek soner .02 p3 re t1 ta .03 cycal et nova .04 raw estivo session#1 complimenti...hai talento. io cmq spargerei un pò + di melodie e ritmiche...diciamo che mi sposterei verso un TelefonTelAviv style...  ciao...
|
|
|
|
« Ultima modifica: Dicembre 03, 2005, 05:38:26 pm da marco »
|
Loggato
|
|
|
|
|
|
marco
Full Member
  
Posts: 116
|
ah...praticamente quell'effetto lì è fatto smanettando sul range di riproduzione dell'oggetto groove~?? se sì, anch'io avevo costruito una patch simile...che faceva variare anche il pitch della porzione in modo random... ok...posta uno screenshot che sono curioso!!! (ho come il presentimento che quando lo vedrò mi verrano i complessi di inferiorità...tipo quando namaste posta i suoi screenshots..)  p.s. li hai ascoltati i sample che ho postato?
|
|
|
|
« Ultima modifica: Dicembre 03, 2005, 09:19:13 pm da marco »
|
Loggato
|
|
|
|
franz
AAA1
Hero Member

Posts: 828
|
i sample purtroppo mi reindirizzano alla home page di altervista quindi non sono riuscito a scaricarli. Ma quello è un oggetto interamente costruito da te (sembra molto carino quindi complimenti). ecco uno screenshot, comunque fidati non è niente di che  è solo una mega accozzaglia di robe purtroppo
|
|
|
|
|
Loggato
|
|
|
|
|
|
|
|
marco
Full Member
  
Posts: 116
|
si si ho fatto tutto io...  raga nn mi avete ancora detto come vi sembrano i samples... azz...farnz l'avevo detto: ora c'ho ancora i complessi d'inferiorità!!  ...cavolo sembra una figata pazzesca!! ma fammi capire.. tu importi i campioni e poi? li triggeri con qualcosa li looppi? come si muove il suono li dentro? sarebbe bello provarla..ma sicuramente (e giustamente) con le ore che ti è costata nn sarai così propenso a darla in giro! 
|
|
|
|
|
Loggato
|
|
|
|
Pagine: [1] 2
|
|
|
|
|