Panoramique fondé sur la distance : KNN

KNN sélectionne les  haut-parleurs les plus proches de la position de la source et applique des différences de niveau entre eux. Les différences de gain sont calculées en fonction de la distance entre la source et les haut-parleurs sélectionnés.

La quantité d’enceintes  K est choisie par l’utilisateur avec le paramètre “Neighbors“ (voisins).

Contrairement aux algorithmes de panoramique angulaires, KNN ne pose aucune contrainte quant au placement des enceintes, et peut donc s’adapter à presque n’importe quelle disposition de haut-parleurs. Cette grande flexibilité le rend appréciable dans les cas de figure où le VBAP ou le LBAP ne fonctionnent pas, ou bien lorsque l’on souhaite plus de souplesse dans les options créatives. C’est le cas fréquent des installations artistiques immersives dont l’espace d’écoute est constitué de parfois plusieurs zones d’écoutes aux géométries différentes et aux distributions hétérogènes des haut-parleurs.

Plus précisément, KNN (K Nearest Neighbours) détermine la distance entre une source S et les “k” haut-parleurs les plus proches de la source ( \(k=3\) par exemple) pour calculer le gain à appliquer sur le signal \(S(t)\) à chacun d’entre eux.

exemple de distribution du signal d’une source sur les k=3 haut-parleurs les plus proches, KNN.

Pour le haut-parleur le plus proche de la source, la distance étant la plus petite (\(d_{2}\)), le niveau sera le plus fort et un gain (\(G_{2}\)) maximal sera appliqué au signal \(S\) de la source dans ce haut-parleur.

Pour les autres  \((k-1)\) haut-parleurs “i”, le gain \(G_{i}\) sera évaluer entre la distance \(d_{i}\) de chacun avec la source et la distance la plus petite (\(d_{2}\)). Ici nous aurons  \(d_{2}\)>\(d_{1}\)>\(d_{3}\) et donc in fine  \(G_{2}\)>\(G_{1}\)>\(G_{3}\).

Contrairement à DBAP[1] (Distance Based Amplitude Panning) seul \(k\) haut-parleurs sont mis à contribution. Cela permet d’éviter la contribution de certains haut-parleurs qui ne sont pas dans la direction de la source et qui pourraient être perçus par un auditeur proche de ceux-ci : le haut-parleur numéro 6 par exemple.

Du point de vue de la mise en œuvre, cet algorithme n’est pas contraint par la bonne distribution du réseau de haut-parleurs autour de l’auditoire.

Un paramètre de “spread” (distribution, répartition) de 0 à 100% permettra d’effacer la différence de gain entre les \(k\) haut-parleurs mis à contribution. Si “spread” est à 100% alors dans notre exemple \(G_{2}\)=\(G_{1}\)=\(G_{3}\).


[1] DBAP n’est pas implémenté dans Holophonix. C’est un cas particulier de KNN pour une valeur de k égale au nombre total de haut-parleurs.