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
| | |-+  riempire un buffer in tempo reale...
« precedente successivo »
Pagine: [1] 2 Stampa
Autore Topic: riempire un buffer in tempo reale...  (Letto 4618 volte)
marco
Full Member
***
Posts: 120


Guarda Profilo
« il: Dicembre 02, 2005, 15:49:18 »

Domanda n°1

mettiamo 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°2

sto 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: 780



Guarda Profilo
« Risposta #1 il: Dicembre 02, 2005, 17:31:45 »

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

franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #2 il: Dicembre 02, 2005, 18:16:42 »

ciao marco

http://dm-in.hfk-bremen.de/_oeffentlich_/Heintz_Joachim/Granularsynthese/

è una patch di max per la sintesi granulare sviluppata da Nobuyasu Sakodna, è fatta molto bene e la puoi vivisezionare approfonditamente!

Loggato

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


Guarda Profilo WWW
« Risposta #3 il: Dicembre 02, 2005, 23:18:48 »

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

Maurizio Giri Home Page: http://www.giri.it
marco
Full Member
***
Posts: 120


Guarda Profilo
« Risposta #4 il: Dicembre 03, 2005, 00:02:42 »

grazie 1000  franzrosati per il link...ora scarico!!!!  Occhiolino

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! Sorriso

 
Loggato

marco
Full Member
***
Posts: 120


Guarda Profilo
« Risposta #5 il: Dicembre 03, 2005, 00:51:05 »

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! Occhiolino
Loggato

franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #6 il: Dicembre 03, 2005, 15:00:29 »

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  Grossa risata 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 Linguaccia.

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: 120


Guarda Profilo
« Risposta #7 il: Dicembre 03, 2005, 18:25:38 »

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_1

loop_2

...tenete basso il volume dei vostri monitors...diciamo che non è sto suono così limpido e lieve.. Wow

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....  Occhiolino

ciaooooo
« Ultima modifica: Dicembre 03, 2005, 18:29:30 da marco » Loggato

marco
Full Member
***
Posts: 120


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

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... Wow

ciao...
« Ultima modifica: Dicembre 03, 2005, 18:38:26 da marco » Loggato

franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #9 il: Dicembre 03, 2005, 20:53:08 »

Ti ringrazio moltissimo per i complimenti!!

tutti i pezzi che senti li sono "suonati" e improvvisati con il mio software dal nome provvisorio "groovesection" che nient'altro è che un coso modulare pieno effetti e basato sostanzialmente sull'elaborazione di Loop o Samples, e sull'elaborazione dei segnale proveniente da sorgenti esterne (chitarra, basso, microfoni ecc...), appena ho due minuti allego uno screenshot. Ovviamente il tutto fatto in Maxmsp. Il suono all'inizio è semplicemente un sample mandato in play, riducendo e aumentando la porzione di buffer che viene letta Linguaccia un piccolo trucchetto molto carino eheheh. Il franzdelay fa tutte altre cose Wow
Loggato

marco
Full Member
***
Posts: 120


Guarda Profilo
« Risposta #10 il: Dicembre 03, 2005, 22:15:57 »

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..)   Triste

p.s. li hai ascoltati i sample che ho postato?
« Ultima modifica: Dicembre 03, 2005, 22:19:13 da marco » Loggato

franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #11 il: Dicembre 04, 2005, 14:09:25 »

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 Wow è solo una mega accozzaglia di robe purtroppo
Loggato

brunozamborlin
Hero Member
*****
Posts: 780



Guarda Profilo
« Risposta #12 il: Dicembre 04, 2005, 14:52:46 »

Per ascoltare mp3 uplodati su altervista devi cliccarci col tasto dx (ctrl+click se usi mac) e copiare il link su clipboard.
Poi apri una nuova finestra del browser e incolli.

Dall'immagine la patch sembra complessa, tipica interfaccia maxiana direi!! Wow

Io sto provando a personalizzare un po le mie interfacce con fotografie e piccoli jpg che metto sui dial, i toggle e i button, ma è difficile non appesantire l'applicazione.
Loggato

franz
AAA1
Hero Member
*
Posts: 829


Guarda Profilo WWW
« Risposta #13 il: Dicembre 04, 2005, 18:48:52 »

si infatti è meglio evitare, io almeno tendo a mettere interfacce piuttosto "carine" e funzionali senza appesantire troppo con immagini e grafica troppo pesante, se devo proprio appesantire la cpu preferisco farlo per motivi di programmazione Wow Con un interfaccia del genere e quel programma però sul mio powerbook 1,33 con 1,25gb di ram riesco a tenermi entro il 35% di cpu usage.
Loggato

marco
Full Member
***
Posts: 120


Guarda Profilo
« Risposta #14 il: Dicembre 04, 2005, 21:44:28 »

si si ho fatto tutto io... Occhiolino

raga nn mi avete ancora detto come vi sembrano i samples...

azz...farnz l'avevo detto: ora c'ho ancora i complessi d'inferiorità!!  Grossa risata

...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!  Grossa risata

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!