Audio 3d - percro.sssup.itpercro.sssup.it/marcello/didattica/16_Audio3d.pdf · vibrazione delle...

48
Audio 3D Audio 3D Nozioni di acustica Nozioni di acustica Audio 3d Audio 3d Audio Modeling Audio Modeling Audio Rendering Audio Rendering API per l’Audio 3d API per l’Audio 3d DirectSound DirectSound OpenAL OpenAL EAX EAX XVR XVR Audio 3d Audio 3d

Transcript of Audio 3d - percro.sssup.itpercro.sssup.it/marcello/didattica/16_Audio3d.pdf · vibrazione delle...

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Nozioni di acusticaNozioni di acustica

Audio 3dAudio 3d

Audio ModelingAudio Modeling

Audio RenderingAudio Rendering

API per l’Audio 3dAPI per l’Audio 3d DirectSoundDirectSound

OpenALOpenAL

EAXEAX

XVRXVR

Audio 3dAudio 3d

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Il suonoIl suono

Il suono è un’onda frutto della Il suono è un’onda frutto della propagazione di un movimento propagazione di un movimento attraverso un mezzoattraverso un mezzo

Una sorgente sonora provoca la Una sorgente sonora provoca la vibrazione delle molecole del mezzo vibrazione delle molecole del mezzo (es.aria), che a loro volta fanno vibrare (es.aria), che a loro volta fanno vibrare altre molecole finchè il movimento non altre molecole finchè il movimento non arriva al timpano dell’ascoltatore che lo arriva al timpano dell’ascoltatore che lo percepisce come variazione di pressionepercepisce come variazione di pressione

Si noti che ogni molecola non percorre Si noti che ogni molecola non percorre grandi distanze ma si limita ad oscillare, grandi distanze ma si limita ad oscillare, trasmettendo il movimento urtando le trasmettendo il movimento urtando le altre molecolealtre molecole

A causa del comportamento oscillatorio A causa del comportamento oscillatorio si parla di “onda sonora”si parla di “onda sonora”

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Proprietà fondamentali del suonoProprietà fondamentali del suono

VelocitàVelocità: si riferisce a quanto celermente il suono si propaga. : si riferisce a quanto celermente il suono si propaga.

E’ strettamente dipendente dal mezzo (ad es. il suono si propaga più E’ strettamente dipendente dal mezzo (ad es. il suono si propaga più

velocemente nell’acqua che nell’aria), ma anche dalla temperatura velocemente nell’acqua che nell’aria), ma anche dalla temperatura

(le onde sonore sono più veloci alle alte temperature).(le onde sonore sono più veloci alle alte temperature).

PitchPitch: si riferisce alla frequenza del suono, misurata in oscillazioni per : si riferisce alla frequenza del suono, misurata in oscillazioni per

secondo (Hertz). Misura quanto velocemente le molecole oscillano secondo (Hertz). Misura quanto velocemente le molecole oscillano

nell’aria. L’orecchio umano discerne suoni compresi in un campo di nell’aria. L’orecchio umano discerne suoni compresi in un campo di

frequenza variabile tra i 20 Hz e i 18 kHz.frequenza variabile tra i 20 Hz e i 18 kHz.

VolumeVolume: si riferisce all’ampiezza del suono così com’è percepito dalle : si riferisce all’ampiezza del suono così com’è percepito dalle

orecchie umane. E’ solitamente misurato in decibel (dB). L’orecchio orecchie umane. E’ solitamente misurato in decibel (dB). L’orecchio

umano non percepisce suoni al di sotto degli 0 dB.umano non percepisce suoni al di sotto degli 0 dB.

IntensitàIntensità: si riferisce alla potenza richiesta per produrre il suono. : si riferisce alla potenza richiesta per produrre il suono.

La relazione tra intensità e volume non è proporzionale: è necessario La relazione tra intensità e volume non è proporzionale: è necessario

decuplicare la potenza per raddoppiare il volume.decuplicare la potenza per raddoppiare il volume.

PosizionePosizione: si riferisce alla dislocazione spaziale del suono. L’uomo può : si riferisce alla dislocazione spaziale del suono. L’uomo può

percepire la direzione del suono e la sua distanza approssimata, se il percepire la direzione del suono e la sua distanza approssimata, se il

suo volume è noto.suo volume è noto.

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

L’ambienteL’ambiente

Le precedenti proprietà riguardavano Le precedenti proprietà riguardavano l’interazione tra il suono e l’ascoltatore.l’interazione tra il suono e l’ascoltatore.

Nella realtà la propagazione del suono Nella realtà la propagazione del suono avviene in un ambiente, e le proprietà avviene in un ambiente, e le proprietà dell’ambiente influenzano il modo in cui il dell’ambiente influenzano il modo in cui il suono viene percepito.suono viene percepito.

Un “campo sonoro” completo Un “campo sonoro” completo è composto di:è composto di: Sorgenti sonoreSorgenti sonore

AscoltatoreAscoltatore

AmbienteAmbiente

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Il campo sonoro realeIl campo sonoro reale

Sorgente sonora:Sorgente sonora:

è un “oggetto” che emette onde sonore. è un “oggetto” che emette onde sonore.

Tali onde si trasmettono, solitamente, Tali onde si trasmettono, solitamente,

in una direzione preferenzialein una direzione preferenziale

Ambiente:Ambiente:

una volta emessa, l’onda attraversa uno spazio: una volta emessa, l’onda attraversa uno spazio:

l’ambiente. All’interno dell’ambiente l’onda può l’ambiente. All’interno dell’ambiente l’onda può

subire varie trasformazioni che ne modificano le subire varie trasformazioni che ne modificano le

proprietà.proprietà.

Ascoltatore:Ascoltatore:

è un “oggetto” che riceve onde sonore ed, è un “oggetto” che riceve onde sonore ed,

eventualmente, le elabora ricavando informazioni eventualmente, le elabora ricavando informazioni

sulla sorgente sonora e sull’ambiente.sulla sorgente sonora e sull’ambiente.

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Fenomeni ambientaliFenomeni ambientali

Interferenza:Interferenza: E’ il fenomeno di “composizione” di più onde sonore E’ il fenomeno di “composizione” di più onde sonore

che si propagano nello stesso spazio.L’interferenza che si propagano nello stesso spazio.L’interferenza

può essere:può essere:

Costruttiva: la combinazione provoca l’aumento Costruttiva: la combinazione provoca l’aumento

dell’ampiezzadell’ampiezza

Distruttiva: la combinazione provoca la diminuzione Distruttiva: la combinazione provoca la diminuzione

dell’ampiezzadell’ampiezza

Mista: una combinazione delle dueMista: una combinazione delle due

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Fenomeni ambientaliFenomeni ambientali

Falloff:Falloff:

decadimento dell’intensità del suono all’aumentare decadimento dell’intensità del suono all’aumentare

della distanza fra l’ascoltatore e la sorgente sonora.della distanza fra l’ascoltatore e la sorgente sonora.

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Fenomeni ambientaliFenomeni ambientali

RiflessioneRiflessione: :

accade quando un’onda sonora cambia mezzo di accade quando un’onda sonora cambia mezzo di

propagazione: una porzione dell’onda viene trasmessa propagazione: una porzione dell’onda viene trasmessa

nel nuovo mezzo, il resto dell’onda viene riflessa. La nel nuovo mezzo, il resto dell’onda viene riflessa. La

riflessione è responsabile di fenomeni come l’eco.riflessione è responsabile di fenomeni come l’eco.

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Fenomeni ambientaliFenomeni ambientali

DiffrazioneDiffrazione: :

si riferisce alla deviazione di un’onda sonora causata si riferisce alla deviazione di un’onda sonora causata

dall’incontro con ostacoli. Le onde sonore tendono a dall’incontro con ostacoli. Le onde sonore tendono a

curvarecurvare attorno ad angoli o spigoli così come, ad esempio, attorno ad angoli o spigoli così come, ad esempio,

un’onda d’acqua farebbe attorno ad una roccia.un’onda d’acqua farebbe attorno ad una roccia.

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Fenomeni ambientaliFenomeni ambientali

EffettoEffetto DopplerDoppler::

sisi riferisceriferisce allaalla variazionevariazione apparenteapparente delladella frequenzafrequenza

subitasubita dada unun suonosuono quandoquando lala sorgente,sorgente, l’ascoltatore,l’ascoltatore,

oo entrambientrambi sonosono inin movimentomovimento.. IlIl fenomenofenomeno sisi puòpuò

spiegarespiegare qualitativamentequalitativamente pensandopensando cheche quandoquando lala

sorgentesorgente sonorasonora sisi avvicinaavvicina all’ascoltatoreall’ascoltatore lele ondeonde

subisconosubiscono unauna compressione,compressione, mentrementre quandoquando lala

sorgentesorgente sisi allontanaallontana lele ondeonde sisi espandonoespandono..

V =V sorgente sonora

u = V ascoltatore

c0=V suono nel mezzo trasmissivo

fout = frequenza propria del suono

fin = frequenza percepita

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Fenomeni ambientaliFenomeni ambientali

RiflessioneRiflessione: :

accade quando un’onda sonora cambia mezzo di accade quando un’onda sonora cambia mezzo di

propagazione: una porzione dell’onda viene trasmessa propagazione: una porzione dell’onda viene trasmessa

nel nuovo mezzo, il resto dell’onda viene riflessa. La nel nuovo mezzo, il resto dell’onda viene riflessa. La

riflessione è responsabile di fenomeni come l’eco.riflessione è responsabile di fenomeni come l’eco.

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

•• EffettoEffetto dell’ambientedell’ambiente::

gligli oggettioggetti presentipresenti nell’ambientenell’ambiente sonosono caratterizzaticaratterizzati

dada parametriparametri didi riflessioneriflessione ee assorbimentoassorbimento sonoro,sonoro,

dipendentidipendenti dalladalla loroloro formaforma ee daldal materialemateriale cheche lili

componecompone.. L’ondaL’onda sonorasonora vieneviene modificatamodificata dada talitali

oggetti,oggetti, ee ilil cervellocervello puòpuò ricostruirericostruire dada essaessa

informazioniinformazioni sull’ambientesull’ambiente..

IlIl cervellocervello puòpuò percepirepercepire

individualmenteindividualmente lele riflessioniriflessioni

didi primoprimo ordine,ordine, mentrementre

quellequelle didi ordineordine maggioremaggiore

vengonovengono percepitepercepite comecome

combinatecombinate ee formanoformano ilil

riverberoriverbero..

Localizzazione del suonoLocalizzazione del suono

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

IlIl riverberoriverbero èè unun importanteimportante fenomenofenomeno acusticoacustico.. C’è,C’è, infatti,infatti, unun solosolo percorsopercorso direttodiretto frafra sorgentesorgente ee ascoltatoreascoltatore mama milionimilioni didi percorsipercorsi indirettiindiretti,, speciespecie inin ambientiambienti moltomolto riflettentiriflettenti.. DiDi solitosolito grangran parteparte dell’energiadell’energia acusticaacustica cheche arrivaarriva all’ascoltatoreall’ascoltatore èè inin effettieffetti energiaenergia riflessariflessa..

IlIl riverberoriverbero forniscefornisce importantiimportanti informazioniinformazioni sulsul tipotipo ee sullesulle dimensionidimensioni dell’ambientedell’ambiente:: BreveBreve duratadurata →→ suonosuono percepitopercepito èè quasiquasi tuttotutto direttodiretto →→ indizioindizio didi ambienteambiente piccolopiccolo.. LungoLungo →→ benben distinguibiledistinguibile daldal suonosuono originaleoriginale →→ indizioindizio didi ambienteambiente grandegrande.. MoltaMolta energiaenergia nellenelle frequenzefrequenze altealte →→ indizioindizio ambienteambiente moltomolto riflettenteriflettente (non(non assorbeassorbe

lele altealte frequenze)frequenze) PocaPoca energiaenergia nellenelle frequenzefrequenze altealte →→ indizioindizio ambienteambiente fonoassorbentefonoassorbente

IlIl riverberoriverbero forniscefornisce infineinfine informazioniinformazioni sullasulla distanzadistanza delladella sorgentesorgente:: sese lala sorgentesorgente sisi allontana,allontana, lala componentecomponente direttadiretta diminuisce,diminuisce, mentrementre ilil

riverberoriverbero rimanerimane aa lungolungo inalteratoinalterato..

RiverberoRiverbero

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Localizzazione del suonoLocalizzazione del suono

DifferenzaDifferenza interauraleinteraurale didi intensitàintensità ((IIDIID))::

IlIl suonosuono vieneviene percepitopercepito comecome piùpiù intensointenso

dall’orecchiodall’orecchio piùpiù vicinovicino allaalla sorgentesorgente sonora,sonora, nonnon

solosolo aa causacausa delladella distanzadistanza mama ancheanche aa causacausa deldel

“mascheramento”“mascheramento” delladella testatesta

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Localizzazione del suonoLocalizzazione del suono

DifferenzaDifferenza interauraleinteraurale didi tempotempo ((ITDITD))::

IlIl suonosuono vieneviene percepitopercepito primaprima dall’orecchiodall’orecchio piùpiù vicinovicino

allaalla sorgentesorgente sonorasonora..

La fisiologia binaurale è capace di La fisiologia binaurale è capace di utilizzare le informazioni di faseutilizzare le informazioni di fase provenienti dallo ITD solo a provenienti dallo ITD solo a bassebasse frequenzefrequenze, inferiori a 1500Hz. , inferiori a 1500Hz. Ma la sensibilità del sistemaMa la sensibilità del sistema uditivo alla ITD si riduce uditivo alla ITD si riduce rapidamente nel range 1000rapidamente nel range 1000-- 1500Hz.1500Hz. Le informazioni di ITD, inLe informazioni di ITD, in definitiva, sono dunque spesso definitiva, sono dunque spesso non decisive per la localizzazione.non decisive per la localizzazione.

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Localizzazione del suonoLocalizzazione del suono

Effetto della frequenza:Effetto della frequenza:

le distanze in gioco nell’apparato acustico sono dell’ordine le distanze in gioco nell’apparato acustico sono dell’ordine

dei cm dei cm (distanza interaurale≈15cm, grandezza dell’orecchio≈5cm)(distanza interaurale≈15cm, grandezza dell’orecchio≈5cm)

Le informazioni di IID sono ridotte quanto maggiore è la Le informazioni di IID sono ridotte quanto maggiore è la

lunghezza d’onda lunghezza d’onda ll del suono: quando del suono: quando ll è dell’ordine del cm è dell’ordine del cm

o più, tali informazioni sono inutilizzabili.o più, tali informazioni sono inutilizzabili. Es.: un’onda di frequenza f=3.3kHz si propaga nell’aria alla velocità v=330 m/s. Es.: un’onda di frequenza f=3.3kHz si propaga nell’aria alla velocità v=330 m/s.

La lunghezza d’onda è l=v/f=10 cm, dunque al limite dell’area in cui gli effetti La lunghezza d’onda è l=v/f=10 cm, dunque al limite dell’area in cui gli effetti

di IID sono significativi. Per frequenze inferiori, l diventa così grande da non di IID sono significativi. Per frequenze inferiori, l diventa così grande da non

provocare praticamente alcun effetto di diffrazione o mascheramento.provocare praticamente alcun effetto di diffrazione o mascheramento.

I suoni a bassa frequenza sono dunque “scarsamente” I suoni a bassa frequenza sono dunque “scarsamente”

localizzabili. Questo è il motivo per cui in un sistema multilocalizzabili. Questo è il motivo per cui in un sistema multi--

canale il subcanale il sub--woofer può essere unico e collocato ovunque.woofer può essere unico e collocato ovunque.

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Localizzazione del suonoLocalizzazione del suono

LaLa combinazionecombinazione deglidegli effettieffetti didi

ITDITD ee didi IIDIID permettepermette alal cervellocervello

umanoumano didi individuareindividuare lala posizioneposizione

didi unauna sorgentesorgente sonorasonora inin unun

puntopunto didi unun conocono centratocentrato sullasulla

congiungentecongiungente delledelle orecchieorecchie..

NonostanteNonostante ITDITD ee IIDIID sianosiano parametriparametri moltomolto efficaciefficaci perper

studiarestudiare lala localizzazione,localizzazione, essiessi hannohanno limitilimiti piuttostopiuttosto

importantiimportanti..

InIn cuffia,cuffia, adad eses..,, l'ascoltatorel'ascoltatore haha l'impressionel'impressione didi lateralizzazionelateralizzazione

comecome previsto,previsto, mama ilil suonosuono appareappare essereessere dentrodentro lala testatesta..

PerPer evitareevitare lala confusioneconfusione deldel “davanti“davanti--dietro”dietro” ee perper ottenereottenere

l'esternalizzazionel'esternalizzazione deldel sonorosonoro èè necessarionecessario unun altroaltro parametroparametro perper lala

localizzazionelocalizzazione deldel suonosuono:: lala funzionefunzione didi trasferimentotrasferimento anatomicaanatomica

(HRTF)(HRTF)..

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

AttenuazioneAttenuazione::

L’orientazione e la conformazione delle orecchie fa sì che L’orientazione e la conformazione delle orecchie fa sì che

un suono situato alle spalle dell’ascoltatore risulti più un suono situato alle spalle dell’ascoltatore risulti più

attenuato rispetto ad un suono proveniente da posizione attenuato rispetto ad un suono proveniente da posizione

frontale, così come un suono proveniente dal basso è più frontale, così come un suono proveniente dal basso è più

attenuato rispetto ad un suono proveniente dall’alto attenuato rispetto ad un suono proveniente dall’alto

((effetto di mascheramento del corpoeffetto di mascheramento del corpo).).

MobilitàMobilità delladella testatesta::

UnUn importanteimportante aiutoaiuto vieneviene dalladalla possibilitàpossibilità didi ruotareruotare lala

testatesta:: unun suonosuono equidistanteequidistante tratra destradestra ee sinistrasinistra puòpuò

suscitaresuscitare dubbidubbi sullasulla suasua provenienzaprovenienza frontalefrontale oo

posteriore,posteriore, mama unauna piccolapiccola rotazionerotazione delladella testatesta permettepermette

didi scioglieresciogliere l’ambiguitàl’ambiguità

Localizzazione: Effetto dell’anatomiaLocalizzazione: Effetto dell’anatomia

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

HRTFHRTF

PerPer ricostruirericostruire ee riprodurreriprodurre informazioniinformazioni spazialispaziali susu didi unun

suono,suono, sisi puòpuò considerareconsiderare unun sistemasistema acusticoacustico “head“head--

centered”,centered”, cheche tengatenga contoconto didi tuttitutti gligli effettieffetti appenaappena

descritti,descritti, ee calcolarnecalcolarne lala funzionefunzione didi trasferimentotrasferimento..

HRTFHRTF == HeadHead RelatedRelated TransferTransfer FunctionFunction

NotiNoti ii segnalisegnali didi ingressoingresso (sorgenti(sorgenti sonore)sonore) ee lala funzionefunzione didi

trasferimento,trasferimento, sisi possonopossono calcolarecalcolare ii segnalisegnali didi uscitauscita (i(i

suonisuoni comecome arrivanoarrivano allealle nostrenostre orecchie)orecchie)..

LaLa HRTFHRTF èè propriapropria didi ogniogni essereessere umanoumano ((earear--printprint),), mama sese

nene puòpuò considerareconsiderare una,una, “media”,“media”, cheche approssimiapprossimi quellaquella

individualeindividuale concon buonabuona precisioneprecisione perper tuttetutte lele personepersone..

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Funzione di trasferimentoFunzione di trasferimento

Sistema:Sistema:

Trasformata di Fourier:Trasformata di Fourier: X(f) = X(f) = L[ L[ x(t)x(t)]]

Sistema trasformato:Sistema trasformato:

Funzione di trasferimento (risposta in frequenza)Funzione di trasferimento (risposta in frequenza)

H(f) = Y(f) / X(f)H(f) = Y(f) / X(f)

Per ricavare H(f) si manda un segnale x(t) tale che Per ricavare H(f) si manda un segnale x(t) tale che L[ L[ x(t)x(t)] ] = X(f) = 1 e si misura l’uscita. Tale segnale = X(f) = 1 e si misura l’uscita. Tale segnale

(ideale) si dice DELTA di Dirac (ideale) si dice DELTA di Dirac dd(t), o (t), o impulsoimpulso..

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

HRTF: analisiHRTF: analisi

PerPer calcolarecalcolare l’HRTFl’HRTF sisi puòpuò usareusare

unun procedimentoprocedimento standardstandard:: SiSi collocanocollocano duedue microfonimicrofoni vicinovicino aiai

canalicanali uditiviuditivi LL ee RR (si(si usausa unun manichino)manichino)..

SiSi collocacolloca unun altoparlantealtoparlante inin unauna

posizioneposizione notanota PP..

SiSi emetteemette unun segnalesegnale notonoto (ideale(ideale::

impulso)impulso) tramitetramite l’altoparlantel’altoparlante..

SiSi registraregistra ilil suonosuono usandousando ii microfonimicrofoni..

ConfrontandoConfrontando ilil segnalesegnale originaleoriginale

concon lala risultanterisultante rispostarisposta impulsiva,impulsiva,

ricavataricavata dalladalla registrazione,registrazione, sisi ricavaricava

l’HRTFl’HRTF perper LALA particolareparticolare posizioneposizione PP..

SiSi ripeteripete ilil procedimentoprocedimento facendofacendo

muoveremuovere PP susu didi unauna sferasfera..

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

HRTF: analisiHRTF: analisi

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

HRTF: sintesiHRTF: sintesi

II procedimentiprocedimenti didi calcolocalcolo dell’HRTFdell’HRTF produconoproducono inin

realtàrealtà unauna tabellatabella delledelle HRTFHRTF relativerelative adad unauna certacerta

testatesta..

NotaNota l’HRTF,l’HRTF, èè necessarionecessario sintetizzarlasintetizzarla perchèperchè essaessa

possapossa essereessere usatausata inin tempotempo realereale nellanella RVRV..

VengonoVengono usatiusati aa taletale scoposcopo algoritmialgoritmi DSPDSP (Digital(Digital

SoundSound Processing)Processing) realreal--timetime cheche realizzanorealizzano filtrifiltri dada

applicareapplicare aa segnalisegnali didi ingressoingresso nonnon--direzionalidirezionali cheche

vengonovengono cosìcosì “localizzati”“localizzati”

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Audio ModelingAudio Modeling

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Virtual Environment Work FlowVirtual Environment Work Flow

SynthesisSynthesis SynthesisSynthesis SamplingSampling SamplingSampling

BehaviourBehaviour BehaviourBehaviour PropertiesProperties PropertiesProperties

RenderingRendering RenderingRendering

USER USER

InteractionInteraction InteractionInteraction

VIRTUAL ENVIRONMENT VIRTUAL ENVIRONMENT

ModellingModelling ModellingModelling

ManagementManagement ManagementManagement

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Sound ModelingSound Modeling

Tecniche:Tecniche:

Playback di suoni registrati (Playback di suoni registrati (campionaticampionati) )

ProPro: massima fedeltà del singolo evento: massima fedeltà del singolo evento ControContro: statico, non reattivo, ripetitivo: statico, non reattivo, ripetitivo

Sintesi tradizionale signalSintesi tradizionale signal--based based (sottrattiva, additiva, FM…)(sottrattiva, additiva, FM…) ProPro: maggior flessibilità, risorse non eccessive: maggior flessibilità, risorse non eccessive ControContro: limitata, suono “artificiale”: limitata, suono “artificiale”

PhysicalPhysical--based modelingbased modeling

ProPro: realistico, altamente reattivo: realistico, altamente reattivo ControContro: Complesso (sia come calcolo che come : Complesso (sia come calcolo che come controllo), spesso troppo “perfetto”controllo), spesso troppo “perfetto”

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Sound Modeling Sound Modeling –– Physically BasedPhysically Based

Approcci possibili:Approcci possibili: -- Accento su come viene Accento su come viene prodottoprodotto il suono.il suono.

Il suono è modellato simulando il comportamento degli Il suono è modellato simulando il comportamento degli oggetti solidi che lo producono, in termini di forze, masse, oggetti solidi che lo producono, in termini di forze, masse, accelerazioni. Si studia come tali dinamiche, associate al accelerazioni. Si studia come tali dinamiche, associate al comportamento delle superfici degli oggetti, inducano la comportamento delle superfici degli oggetti, inducano la produzione di onde sonore nell’ambiente e come tali onde produzione di onde sonore nell’ambiente e come tali onde si propaghino fino all’ascoltatore.si propaghino fino all’ascoltatore.

-- Accento su come Accento su come percepiamopercepiamo il suonoil suono

Il suono è modellato considerando che molti fenomeni Il suono è modellato considerando che molti fenomeni fisici posseggono dei fisici posseggono dei modi modi (oscillazioni smorzate) e (oscillazioni smorzate) e dunque possono essere simulati come somma di sinusoidi dunque possono essere simulati come somma di sinusoidi smorzate, mediante la trasformata di Fourier.smorzate, mediante la trasformata di Fourier.

Non simula la propagazione.Non simula la propagazione.

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Sound models Sound models − Modal Synthesis− Modal Synthesis

Modal SynthesisModal Synthesis Tecnica basata sul fatto che la maggior parte Tecnica basata sul fatto che la maggior parte

degli oggetti che producono suoni sono costituiti degli oggetti che producono suoni sono costituiti

da sottoinsiemi semplici che possono essere da sottoinsiemi semplici che possono essere

approssimativamente modellati come a sè stantiapprossimativamente modellati come a sè stanti

Ogni sottoinsieme viene considerato Ogni sottoinsieme viene considerato

responsabile di un particolare responsabile di un particolare modomodo, ovvero un , ovvero un

particolare pattern di vibrazioneparticolare pattern di vibrazione

Efficiente ma non adatta per ogni possibile Efficiente ma non adatta per ogni possibile

suono.suono.

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

SW per AudioSW per Audio

SAMPLINGSAMPLING::

ApplicazioniApplicazioni perper audioaudio capturecapture ee perper audioaudio editingediting

(es(es.. CoolCool EditEdit,, AudacityAudacity,, AuditionAudition))

MODELINGMODELING::

ApplicazioniApplicazioni perper sintesisintesi signalsignal--basedbased

ApplicazioniApplicazioni perper sintesisintesi physicallyphysically basedbased

(es(es.. PurePure DataData:: httphttp:://pd//pd..iemiem..at/)at/)

RENDERINGRENDERING::

ApplicazioniApplicazioni ee APIAPI perper AudioAudio RenderingRendering 22DD

EsEs.. DirectSoundDirectSound,, MCIMCI

ApplicazioniApplicazioni ee APIAPI perper AudioAudio RenderingRendering 33DD

EsEs.. OpenALOpenAL,, DirecsSoundDirecsSound33D,D, EAX,EAX, FMODFMOD

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Audio RenderingAudio Rendering

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

SW per 3D Audio RenderingSW per 3D Audio Rendering

II concetticoncetti didi basebase delledelle APIAPI perper l’audiol’audio 33DD sonosono moltomolto similisimili aa

quelliquelli delladella graficagrafica 33DD..

PerPer definiredefinire unouno scenarioscenario acusticoacustico tridimensionaletridimensionale èè necessarionecessario

definiredefinire::

ListenerListener (ascoltatore)(ascoltatore):: èè l’equivalentel’equivalente delladella

cameracamera nellanella graficagrafica 33DD.. UnUn listenerlistener èè definitodefinito

mediantemediante posizioneposizione ee orientazioneorientazione (vettori(vettori frontfront ee toptop))

SourcesSources (sorgenti(sorgenti sonore)sonore):: comecome lele sorgentisorgenti

luminose,luminose, possonopossono essereessere puntiformipuntiformi

(omnidirezionali)(omnidirezionali) oo spotspot (direzionali(direzionali lungolungo unun cono)cono)

EnvironmentEnvironment (ambiente)(ambiente):: definiscedefinisce lele proprietàproprietà

dell’ambientedell’ambiente inin terminitermini didi riflessione,riflessione, assorbimenassorbimen--

toto etcetc.. NelleNelle APIAPI didi basebase spessospesso l’ambientel’ambiente nonnon

vieneviene consideratoconsiderato..

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

DirectSoundDirectSound

API Microsoft per piattaforme WindowsAPI Microsoft per piattaforme Windows

Gestisce il normale output audio 2D, l’audio 3D Gestisce il normale output audio 2D, l’audio 3D

e l’acquisizione del suonoe l’acquisizione del suono

Dispone di uno strato per l’accelerazione HW (HAL) Dispone di uno strato per l’accelerazione HW (HAL)

per le schede che lo supportano, e di uno strato di per le schede che lo supportano, e di uno strato di

emulazione SW (HEL) per le altre (da Vista in poi solo HEL…)emulazione SW (HEL) per le altre (da Vista in poi solo HEL…)

Permette la gestione cooperativa o esclusiva dell’HW sonoroPermette la gestione cooperativa o esclusiva dell’HW sonoro

Usa dei “buffer” sonori per memorizzare i dati relativi al suono Usa dei “buffer” sonori per memorizzare i dati relativi al suono

((samplesample). Tali buffer sono di più tipi:). Tali buffer sono di più tipi:

Primario (unico: contiene i dati attualmente riprodotti)Primario (unico: contiene i dati attualmente riprodotti)

Secondario (multipli: contengono i dati di altri samples)Secondario (multipli: contengono i dati di altri samples)

SoundSound--capture (multipli: per dati acquisiti da device di input)capture (multipli: per dati acquisiti da device di input)

Proprietà modificabili di un buffer2D: volume, frequenza, pan Proprietà modificabili di un buffer2D: volume, frequenza, pan

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

DirectSound3DDirectSound3D

StratoStrato didi DSDS cheche gestiscegestisce l’audiol’audio 33DD

BufferBuffer 33DD -- bufferbuffer sonorosonoro concon proprietàproprietà aggiuntiveaggiuntive::

PosizionePosizione

DeterminaDetermina ilil volumevolume deldel suonosuono percepitopercepito.. DSDS nonnon consideraconsidera

gligli effettieffetti ambientali,ambientali, dunquedunque nonnon cici sonosono distorsionidistorsioni..

VelocitàVelocità

DeterminaDetermina l’effettol’effetto DopplerDoppler

DistanzaDistanza min/maxmin/max

DeterminaDetermina ilil volumevolume min/maxmin/max inin relazionerelazione allaalla distanzadistanza

OrientazioneOrientazione

DeterminaDetermina ilil volumevolume inin relazionerelazione all’angoloall’angolo

(solo(solo sorgentisorgenti SPOT)SPOT)

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Modello distanza in DirectSound3DModello distanza in DirectSound3D

•• UnaUna sorgentesorgente cheche sisi avvicinaavvicina all’ascoltatoreall’ascoltatore vieneviene

percepitapercepita concon unun volumevolume crescentecrescente

•• TuttaviaTuttavia èè ragionevoleragionevole pensarepensare che,che, oltreoltre unun certocerto

punto,punto, ilil volumevolume nonnon crescacresca piùpiù

•• AlloAllo stessostesso modomodo sisi puòpuò pensarepensare che,che, oltreoltre unauna certacerta

distanzadistanza massima,massima, ilil suonosuono abbiaabbia praticamentepraticamente

volumevolume zerozero

•• CorrispondeCorrisponde alal concettoconcetto didi “clipping”“clipping” nellanella graficagrafica

33D,D, inin particolareparticolare aiai pianipiani NEARNEAR ee FARFAR

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

LPDIRECTSOUNDBUFFER PrimaryBuffer; LPDIRECTSOUND3DLISTENER Listener; LPDIRECTSOUND DirectSound; LPDIRECTSOUNDBUFFER Buffer; LPDIRECTSOUND3DBUFFER Buffer3D; DSBUFFERDESC BufferDesc; //---- INIZIALIZZAZIONE DIRECTSOUND ----// DirectSoundCreate ( NULL, &DirectSound, NULL ); Init(BufferDesc); // In particolare: dwFlags = DSBCAPS_PRIMARYBUFFER | DSBCAPS_CTRL3D; DirectSound->CreateSoundBuffer ( &BufferDesc, &PrimaryBuffer, NULL ); PrimaryBuffer->Play( 0, 0, DSBPLAY_LOOPING ) ; Init(OutputFormat // In particolare (es.): wFormatTag = WAVE_FORMAT_PCM; nChannels = 2; nSamplesPerSec = 22050; PrimaryBuffer->SetFormat ( &OutputFormat ); //---- INIZIALIZZAZIONE LISTENER ----// PrimaryBuffer->QueryInterface ( IID_IDirectSound3DListener, ( LPVOID * ) &Listener ); // Ottiene l’interfaccia al listener Listener->SetPosition ( ListPos[0], ListPos[1], ListPos[2], DS3D_DEFERRED ); Listener->SetOrientation ( ListOr[0], ListOr[1], ListOr[2], ListOr[3], ListOr[4], ListOr[5], DS3D_DEFERRED ); Listener->SetVelocity ( ListVel[0], ListVel[1], ListVel[2], DS3D_DEFERRED ); Listener->SetRolloffFactor ( ROLLOFF_FACTOR, DS3D_DEFERRED); Listener->SetDopplerFactor ( DOPPLER_FACTOR, DS3D_DEFERRED); Listener->CommitDeferredSettings (); // Alternativa a DEFERRED: IMMEDIATE DirectSound->CreateSoundBuffer ( &BufferDesc, &Buffer, NULL ); //---- INIZIALIZZAZIONE DEL BUFFER SONORO ----// Buffer->QueryInterface (IID_IDirectSound3DBuffer,(LPVOID*)&Buffer3D); // Ottiene un'interfaccia 3D al sound buffer VOID *BufferPointer = NULL, *pbData2 = NULL; DWORD Bytes1, dwLength2; LONG Datasize; InputWave.Load (<FileName>); // NB: Funzione di libreria esterna! DS non fornisce mezzi per caricare suoni DataSize = InputWave.GetDataSize (); Buffer->Lock ( 0, DataSize, &BufferPointer, &Bytes1, &pbData2, &dwLength2,0 ); // Ottiene un puntatore all'area di memoria del buffer InputWave.GetData ( BufferPointer, DataSize ); // Funzione di libreria: memorizza il contenuto del file nel buffer Buffer->Unlock ( BufferPointer, DataSize, NULL, NULL ); //---- OPERAZIONI SUL BUFFER SONORO ----// Buffer3D->SetPosition ( SPos[0], SPos[1], SPos[2], DS3D_IMMEDIATE ); Buffer3D->SetVelocity ( SVel[0], SVel[1], SVel[2], DS3D_IMMEDIATE ); Buffer->Play ( 0, 0, DSBPLAY_LOOPING ); // Altre funzioni del BUFFER: SetPan, SetFrequency, SetVolume Buffer->Stop(); //---- RILASCIO DELLE RISORSE ----// Buffer->Release(); Buffer3D->Release(); Listener->Release(); PrimaryBuffer->Release(); DirectSound->Release();

WAVEFORMATEX OutputFormat; // Formato di output per il sample audio WaveFile InputWave; // File contenente i dati del sample audio float ListPos[3], ListVel[3]; // (x y z) e (Vx Vy Vz) dell'ascoltatore float ListOr[6]; // Vettore up e front dell'ascoltatore float SPos[3]; // x y z della sorgente. Orientazione solo per sorgenti spot float SVel[3]; // Vx Vy Vz della sorgente

DirectSound3D DirectSound3D -- CodiceCodice

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Open ALOpen AL

•• OpenOpen ALAL èè un’interfacciaun’interfaccia SWSW perper l’HWl’HW audioaudio..

•• ComeCome OpenOpen GLGL taletale interfacciainterfaccia èè crosscross--platformplatform

•• OpenOpen ALAL gestiscegestisce unicamenteunicamente AudioAudio 33D,D, dunquedunque

nonnon permettepermette didi agireagire direttamentedirettamente sullesulle

proprietàproprietà deldel sistemasistema didi riproduzioneriproduzione (volume,(volume,

pan,pan, etcetc..)) mama solosolo sullesulle proprietàproprietà delledelle sorgentisorgenti

sonoresonore (posizione,(posizione, intensitàintensità etcetc..))

•• OpenOpen ALAL nonnon gestiscegestisce direttamentedirettamente lele

funzionalitàfunzionalità legatelegate all’ambiente,all’ambiente, mama puòpuò farlofarlo

tramitetramite estensioniestensioni certificatecertificate comecome compatibilicompatibili..

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Open AL e OpenGLOpen AL e OpenGL

•• GliGli oggettioggetti fondamentalifondamentali didi OpenALOpenAL sonosono:: •• BufferBuffer (contiene(contiene ii datidati audio)audio)

•• SourceSource (si(si associanoassociano posizione,posizione, orientazione,orientazione, velocitàvelocità ee unun

buffer)buffer)

•• ListenerListener (unico)(unico)

•• AnalogiaAnalogia concon GraficaGrafica 33DD:: •• BufferBuffer <<-->> MeshMesh

•• SourceSource <<-->> ObjObj

•• ListenerListener <<-->> CameraCamera

•• L’interfacciaL’interfaccia OpenALOpenAL èè moltomolto similesimile aa quellaquella didi

OpenGLOpenGL::

•• alXYZi(),alXYZi(), alXYZf(),alXYZf(), alXYZfv()alXYZfv() etcetc..,,

concon XYZ=Listener,XYZ=Listener, Buffer,Buffer, SourceSource

•• EsisteEsiste l’analogol’analogo didi GLUTGLUT:: ALUTALUT

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Modello distanza in OpenALModello distanza in OpenAL

void DistanceModel ( enum modelName );void DistanceModel ( enum modelName );

NONE (non ci sono attenuazioni in base alla distanza)NONE (non ci sono attenuazioni in base alla distanza)

INVERSE_DISTANCE_CLAMPED (come DS3D)INVERSE_DISTANCE_CLAMPED (come DS3D)

INVERSE_DISTANCE (come DS3D, ma senza limiti)INVERSE_DISTANCE (come DS3D, ma senza limiti)

E’ possibile specificare un guadagno aggiuntivo, ovvero E’ possibile specificare un guadagno aggiuntivo, ovvero

un fattore moltiplicativo per l’intensità:un fattore moltiplicativo per l’intensità:

alListeneri(GAIN,val); // Per tutte le sorgentialListeneri(GAIN,val); // Per tutte le sorgenti

alSourcei(source, GAIN,val); // Per la specifica sorgentialSourcei(source, GAIN,val); // Per la specifica sorgenti

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Per realizzare sorgenti direzionali (spot) si gioca sui Per realizzare sorgenti direzionali (spot) si gioca sui

parametri:parametri:

DIRECTIONDIRECTION

DIRECTION = 0 DIRECTION = 0 →→ OmnidirezionaleOmnidirezionale

DIRECTION = [x,y,z] DIRECTION = [x,y,z] →→ DirezionaleDirezionale

CONE_INNER ANGLE e CONE_OUTER_ANGLECONE_INNER ANGLE e CONE_OUTER_ANGLE

Valori di default = 360, omnidirezionaleValori di default = 360, omnidirezionale

Se il listener è nella zona interna, Se il listener è nella zona interna,

volume = INSIDE_VOLUMEvolume = INSIDE_VOLUME

Se è nella zona esterna, Se è nella zona esterna,

volume = OUTSIDE_VOLUMEvolume = OUTSIDE_VOLUME

Se è nella zona intermedia, Se è nella zona intermedia,

varia linearmente tra i due valorivaria linearmente tra i due valori

Tipi di sorgenteTipi di sorgente

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

ALfloat listenerPos[]={0.0,0.0,4.0}; ALfloat listenerVel[]={0.0,0.0,0.0}; ALfloat listenerOri[]={0.0,0.0,1.0, 0.0,1.0,0.0}; ALfloat source0Pos[]={ -2.0, 0.0, 0.0}; ALfloat source0Vel[]={ 0.0, 0.0, 0.0}; ALuint buffer, source; uint bufferName; enum format; void *data; sizei size; uint freq; //---- INIZIALIZZAZIONE CONTESTO ----// alutInit(0, NULL); //---- SETTAGGIO PROPRIETA’ DEL LISTENER ----// alListenerfv(AL_POSITION,listenerPos); alListenerfv(AL_VELOCITY,listenerVel); alListenerfv(AL_ORIENTATION,listenerOri); //---- GENERAZIONE E INIZIALIZZAZIONE DEL BUFFER ----// alGenBuffers(1, buffer); alutLoadWAVFile(<filename>, &format, &data, &size, &freq); alBufferData(buffer, format, data, size, freq); alutUnloadWAV(format, data, size, freq); //---- GENERAZIONE E INIZIALIZZAZIONE DELLA SORGENTE ----// alGenSources(1, source); alSourcef(source,AL_PITCH,1.0f); alSourcef(source,AL_GAIN,1.0f); alSourcefv(source,AL_POSITION,source0Pos); alSourcefv(source,AL_VELOCITY,source0Vel); alSourcei(source,AL_BUFFER,buffer); alSourcei(source,AL_LOOPING,AL_TRUE); //---- USO DEL BUFFER ----// alSourcePlay(source); //---- RILASCIO DEL CONTESTO ----// alutExit();

OpenALOpenAL-- CodiceCodice

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Environmental Audio ExtensionsEnvironmental Audio Extensions

Nè DS3D nè OpenAL forniscono mezzi per gestire l’ambienteNè DS3D nè OpenAL forniscono mezzi per gestire l’ambiente

EAX esiste come estensione sia per DS3D sia per OpenALEAX esiste come estensione sia per DS3D sia per OpenAL

EAX permette di intervenire sui parametri relativi EAX permette di intervenire sui parametri relativi

all’ambiente e agli effetti acustici determinati da esso all’ambiente e agli effetti acustici determinati da esso

(riverbero e riflessioni)(riverbero e riflessioni)

EAX aggiunge funzionalità legate alla direzionalità delle EAX aggiunge funzionalità legate alla direzionalità delle

sorgenti, distinguendo i contenuti ad alta frequenza e quelli sorgenti, distinguendo i contenuti ad alta frequenza e quelli

a bassa frequenzaa bassa frequenza

EAXEAX

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Ambiente singolo:Ambiente singolo:

Caso più semplice: esistono dei preset relativi a possibile ambienti, il Caso più semplice: esistono dei preset relativi a possibile ambienti, il

riverbero e le riflessioni sono “automatici”. Si può però intervenire più a riverbero e le riflessioni sono “automatici”. Si può però intervenire più a

basso livello sui parametri ambientali.basso livello sui parametri ambientali.

Ambiente multiplo:Ambiente multiplo:

Si possono creare più ambienti acustici che vengono attivati quando Si possono creare più ambienti acustici che vengono attivati quando

l’ascoltatore è in determinati punti. Più a basso livello, è possibile l’ascoltatore è in determinati punti. Più a basso livello, è possibile

gestire la transizione fra gli ambienti.gestire la transizione fra gli ambienti.

Ostruzione nell’ambiente:Ostruzione nell’ambiente:

Avviene quando un ostacolo si frappone, nello stesso ambiente, fra Avviene quando un ostacolo si frappone, nello stesso ambiente, fra

ascoltatore e sorgente. Il suono passa per diffrazione attorno all’ostacolo ascoltatore e sorgente. Il suono passa per diffrazione attorno all’ostacolo

ed, eventualmente, direttamente attraverso l’ostacolo se trasmittivo.ed, eventualmente, direttamente attraverso l’ostacolo se trasmittivo.

Occlusione fra ambienti:Occlusione fra ambienti:

Quando l’ascoltatore e la sorgente sono in ambienti diversi separati da Quando l’ascoltatore e la sorgente sono in ambienti diversi separati da

una superficie, il suono può essere udibile ma con un effetto di una superficie, il suono può essere udibile ma con un effetto di

occlusione. E’ possibile gestire la presenza di aperture (porte etc.)occlusione. E’ possibile gestire la presenza di aperture (porte etc.)

EAX EAX –– Effetti ambientaliEffetti ambientali

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

Transizione fra ambientiTransizione fra ambienti

(ENVIRONMENT MORPHING)(ENVIRONMENT MORPHING)

EAX EAX –– Effetti ambientaliEffetti ambientali

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

EAX EAX –– Modello di riverberoModello di riverbero

Il riverbero viene diviso in tre sezioni, distinte Il riverbero viene diviso in tre sezioni, distinte temporalmente:temporalmente: Componente direttaComponente diretta

Riflessione primaria Riflessione primaria (dopo un (dopo un DDtt11 = Reflections Delay)= Reflections Delay)

Riflessioni secondarieRiflessioni secondarie (riverbero, dopo un (riverbero, dopo un DDtt22 = Reverb Delay, per un = Reverb Delay, per un

tempo pari a Decay Time)tempo pari a Decay Time)

I parametri in gioco sono:I parametri in gioco sono:

Energia nelle tre sezioni alle basse freq.Energia nelle tre sezioni alle basse freq.

I filtri sulle alte freq. che agiscono nelle sezioni:I filtri sulle alte freq. che agiscono nelle sezioni:

Direct FilterDirect Filter

Room Filter (Ref + Rev)Room Filter (Ref + Rev)

Room diffusion (densità del Rev)Room diffusion (densità del Rev)

Room size (intensità di Ref + Rev e time)Room size (intensità di Ref + Rev e time)

Room absorption (Reverb delay)Room absorption (Reverb delay)

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

CVmVRAWAVCVmVRAWAV

Audio 3D posizionale samplesAudio 3D posizionale samples--based based (no synthesis)(no synthesis)

Supporto a cuffie e array di speakerSupporto a cuffie e array di speaker

Basato su OpenAL e DirectSound 3D Basato su OpenAL e DirectSound 3D (possibile scegliere l’implementazione)(possibile scegliere l’implementazione)

Supporto a EAX ed environmental soundSupporto a EAX ed environmental sound

XVR Scene Graph : 3D AudioXVR Scene Graph : 3D Audio

SceneScene SceneScene

Audio SourceAudio Source Audio SourceAudio Source

Audio SourceAudio Source Audio SourceAudio Source

…… ……

ListenerListener ListenerListener

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

XVR Scene Graph: 3D Audio methodsXVR Scene Graph: 3D Audio methods

Load()Load()

Pause()Pause()

Play()Play()

Stop()Stop()

SetPosition()SetPosition()

SetOrientation()SetOrientation()

SetFrequency()SetFrequency()

SetVolume()SetVolume()

SetBalance()SetBalance()

SetVelocity()SetVelocity()

ListenerSetPosition()ListenerSetPosition()

ListenerSetOrientation()ListenerSetOrientation()

ListenerSetVelocity()ListenerSetVelocity()

EAXSetEnvironment()EAXSetEnvironment()

EAXSetOcclusion()EAXSetOcclusion()

EAXSetObstruction()EAXSetObstruction()

……

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

XVR Scene Graph : 3D AudioXVR Scene Graph : 3D Audio

Importante:

Il front vector del listener è orientato

in direzione opposta

al front vector della camera !!!

Importante:

Il front vector del listener è orientato

in direzione opposta

al front vector della camera !!!

ListenerSetPosition ( CameraGetPosition() )

ListenerSetOrientation (- CameraGetDirection() )

SceneScene SceneScene

Audio SourceAudio Source Audio SourceAudio Source

Audio SourceAudio Source Audio SourceAudio Source

…… ……

ListenerListener ListenerListener

CameraLinkToListener()

Alternativa Alternativa

Realtà Virtuale: il presente, il passato, il futuroRealtà Virtuale: il presente, il passato, il futuro Audio 3DAudio 3D

XVR XVR -- CodiceCodice

XVR - Codice