Audio 3d - percro.sssup.itpercro.sssup.it/marcello/didattica/16_Audio3d.pdf · vibrazione delle...
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