J’ai commencé à intégrer l’audio après avoir construit un espace visuel suffisamment complet :
Pour mieux comprendre la spatialisation, il faut comprendre comment fonctionne l’espace tridimensionnel avec Three.js, et le placement et la direction des objets et de la caméra.
L’espace est disposé selon trois axes x
, y
et z
:
x
et z
représentent les axes horizontauxy
représente l’axe verticalLe positionnement des objets suit cette distribution, mais la rotation de la caméra est prévue différemment :
camera.rotation = {
_x: number,
_y: number,
_z: number,
_order: "YXZ"
}
C’est la dernière ligne qui nous intéresse : les axes sont inversés, ce qui signifie que x
contrôle la rotation sur l’axe vertical, et y
sur l’axe horizontal ; la propriété z
ne change pas et n’est pas déterminante. Les calculs sont établis sur le cercle trigonométrique : par exemple, deux tours complets de droite à gauche signifient que y ≈ 12.6
(2 * 2π) ; tourner le regard vers le haut, à 90° donne x ≈ 1.6
(π / 2).
Ces éléments doivent être pris en considération lors de la construction d’une librairie, et lors de son utilisation, si elle ne fournit pas de variations de la spatialisation fondées sur un ensemble de vecteurs (une matrice, celle de la caméra, par exemple).
La création sonore est assez élémentaire, puisqu’il s’agit là surtout d’exemples audio pour l’intégration technique en ambisonique. J’ai réalisé des nappes sonores, très denses et enveloppantes, avec des bruitages sous-marins concentrés dans les basses fréquences. Le tout est interrompu par des bruits de respiration sous-marine, de scaphandre. Une spatialisation en ambisonique sur quatre canaux répartit les sons autour de l’auditeur et la respiration se déplace souvent. Je pense que cet ensemble assez simple permet de créer une atmosphère immersive, sans surcharger l’utilisateur d’informations. Des objets émanent des boucles, qui permettent aisément de tester la spatialisation.