VRML offre diverse possibilità per inserire fonti sonore. In particolare offre supporto per files in formato MIDI e WAV. Supporta inoltre audio MPEG1 e quindi consente la sincronizzazione tra video e sonoro. Mentre i files MIDI risultano di dimensioni abbastanza contenute, i files WAV hanno dimensioni difficilmente gestibili in rete, se non per effetti limitati
I files MIDI quindi possono essere utilizzati soprattutto come musiche di sottofondo; mentre i files WAV potrebbero essere utili per brevi spezzoni di parlato o piccoli effetti sonori.
Ecco le specifiche del nodo Sound:
Sound {
exposedField SFVec3f direction 0 0 1 # (- <img width=21 height=10
src="http://html.it/guide/img/vrml/image014.gif" > , <img width=21 height=10
src="http://html.it/guide/img/vrml/image014.gif" > )
exposedField SFFloat intensity 1 # [0,1]
exposedField SFVec3f location 0 0 0 # (- <img width=21 height=10
src="http://html.it/guide/img/vrml/image014.gif" > , <img width=21 height=10
src="http://html.it/guide/img/vrml/image014.gif" > )
exposedField SFFloat maxBack 10 # [0, <img width=21 height=10
src="http://html.it/guide/img/vrml/image014.gif" > )
exposedField SFFloat maxFront 10 # [0, <img width=21 height=10
src="http://html.it/guide/img/vrml/image014.gif" > )
exposedField SFFloat minBack 1 # [0, <img width=21 height=10
src="http://html.it/guide/img/vrml/image014.gif" > )
exposedField SFFloat minFront 1 # [0, <img width=21 height=10
src="http://html.it/guide/img/vrml/image014.gif" > )
exposedField SFFloat priority 0 # [0,1]
exposedField SFNode source NULL
field SFBool spatialize trUE
}
Il nodo Sound specifica la rappresentazione spaziale di una fonte sonora in una scena VRML. La fonte sonora è localizzata, mediante il campo location, in un punto delle coordinate spaziali ed emette il suono all'interno di un'area definita da due ellissi. Tali ellissi sono orientati lungo la direzione specificata dal campo direction.
Il field intensity descrive il volume del suono. Può avere un valore compreso tra 0.0 (nessun suono) e 1.0 (il massimo volume della fonte sonora).
Come detto, il nodo Sound è composto da due ellissoidi che descrivono per così dire la "portata spaziale" del suono, distribuendone il valore dell'intesità nello spazio. L'ellissoide maggiore descrive un campo all'esterno del quale il suono non è più udibile. Esso è definito dai due campi maxFront e maxBack, i cui valori descrivono i confini dell'ellissoide rispettivamente di fronte e dietro il campo location.L'ellissoide minore descrive invece lo spazio all'interno del quale il suono viene percepito al massimo livello di volume settato nel campo intensity.
tra i due ellissoidi, si realizza la cosiddetta attenuazione dell'intensità sonora. In pratica il suono decresce di volume in maniera lineare da un punto all'altro.
La figura sotto rappresenta una versione semplificata di quella offerta dalle specifiche tecniche ufficiali:

Il campo spatialize dichiara se il suono viene percepito o meno come direzionale relativamente alla posizione dell'utente. Può assumere uno dei seguenti valori di tipo booleano: trUE o FALSE.
Quando la scena contiene più di un suono, il campo priority consente di informare il browser sull'importanza di un suono rispetto agli altri, in modo da sopperire agli eventuali problemi di tempo di download. Anche in questo caso si può settare un valore compreso tra 0.0 (priorità minima) e 1.0 (massima priorità).
Il campo source infine, specifica la sorgente sonora del nodo Sound. Questo campo può essere rappresentato sia da un nodo Audioclip che da un nodo MovieTexture. Nel secondo caso MovieTexture deve fare riferimento ad un formato che, ovviamente, supporti il suono come l' MPEG1.
Un semplice esempio
Come esempio si utilizzerà un file Wav come semplice sottofondo a un mondo
VRML vuoto:
#VRML V2.0 utf8
# sound VRML: suono in background
Sound {
minFront 10
maxFront 100
minBack 10
maxBack 100
spatialize FALSE
source AudioClip {
description "suono"
loop trUE
startTime 1
url "sound1.wav"
}
}
Come si vede, per inserire la fonte sonore in VRML si è utilizzato il nodo Sound. Nel nostro caso, abbiamo un campo location che localizza la fonte sonora. Abbiamo poi un campo direction che ne specifica la direzione, quattro campi (maxBack, minBack, maxFront, minFront) che, come detto, specificano la regione in cui il suono è udibile e intensity che determina l'intensità del suono. L'ultimo campo è il campo source. Questo campo contiene un nodo AudioClip che consente di specificare il file da usare e come farlo girare. AudioClip infatti contiene a sua volta un campo url per indicare il nome del file da usare, un campo loop e uno startTime.
Open Graph Protocol, Facebook e il Web SemanticoCome sfruttare il Web Semantico "made in Facebook" |
Introduzione a RDFa - 2Arricchire un documento HTML con metadati semantici presi dal... |
Introduzione a RDFaCos'è e a cosa serve il linguaggio che potrebbe aprire il campo alle... |
Usare SVG per creare sfondi flessibili, scalabili e divertentiScopriamo cos'è il formato SVG e come possiamo usarlo in modo... |
Visualizzare i metadati RDF Dublin core con le trasformazioni XSLMettere insieme XSL, XPATH e le definizioni Dublin core per... |
Guida PodcastingUn percorso in 16 lezioni, per entrare nella filosofia del podcast... |
Guida Smil 2.0Un percorso pratico alla scoperta di SMIL: il linguaggio (XML) per... |
Guida Web serviceCosa sono, a cosa servono e come si creano servizi Web, i sistemi... |
Ogni mese, direttamente nella tua e-mail: articoli, guide, FAQ e approfondimenti sui linguaggi della famiglia XML.
Iscriviti alla newsletter