Comment fonctionne la latence haptique

La pile de latence.
Pourquoi les logiciels
bass shaker sont lents.

Les tests de la communaute mesurent systematiquement 140 a 200ms de latence de bout en bout avec les logiciels bass shaker standards de sim racing, sur de nombreuses cartes son et configurations materielles. Cette page analyse chaque couche responsable, avec des chiffres sources lorsque disponibles, et des mentions claires lorsqu'ils ne le sont pas.

Explications Architecture audio 12 min de lecture
Dans ce guide

Chaque etape
ajoute de la latence.

Le retour haptique est une chaine allant de l'evenement en jeu au mouvement physique du shaker. Dans les logiciels haptiques standards, trois couches dominent le retard total. Aucune couche n'est catastrophique seule. Le probleme, c'est qu'elles s'empilent.

Portee et precision

Le chiffre de 140 a 200ms provient de mesures communautaires sur plus de 7 configurations de cartes son. Les chiffres par couche ci-dessous sont documentes ou calcules a partir de sources techniques publiques. Lorsque les chiffres sont des estimations ou derives de premiers principes, cela est indique dans le texte.

Moteur du sim (iRacing, ACC, AC)
Le jeu calcule la physique et rend les donnees disponibles
~0ms
↓ boucle d'interrogation telemetrie
Boucle telemetrie du logiciel bass shaker
Le logiciel verifie les nouvelles donnees jusqu'a 60 fois par seconde
0 – 16,7ms
↓ traitement des effets, envoi au moteur audio
Moteur audio generaliste
L'audio est mis en file d'attente dans de grands tampons internes avant la sortie
~50ms moy.
↓ mixeur audio Windows
WASAPI mode partage de Windows
Le systeme mixe l'audio de toutes les applications avant la sortie materielle
>20ms plancher
↓ carte son, ampli, shakers
Interface audio, amplificateur, shakers
Conversion materielle : negligeable dans ce contexte
~1–3ms

Total mesure : 140-200ms.[1]

16,7ms par tick.
A chaque tick.

Avant toute synthese audio, le logiciel bass shaker doit savoir que quelque chose s'est passe dans le sim. La plupart des logiciels bass shaker utilisent un modele d'interrogation : ils verifient les nouvelles donnees sur un minuteur fixe, traitent les effets et ecrivent la sortie audio.

Le taux de rafraichissement des proprietes des logiciels bass shaker standards atteint un maximum de 60Hz.[2] A 60Hz, une verification est effectuee toutes les 16,7ms. Un evenement qui arrive juste apres une verification attendra les 16,7ms completes avant de declencher une sortie haptique. En moyenne, cela ajoute environ 8ms de temps d'attente.

C'est distinct du propre taux de telemetrie du jeu. iRacing ecrit en memoire partagee (une region de la RAM de votre PC ou le jeu publie la telemetrie en direct) a 360Hz via des sous-echantillons. ACC et AC ecrivent un instantane une fois par image rendue, generalement 60 a 240Hz selon vos FPS. Dans tous les cas, le goulot d'etranglement est la lecture par le logiciel bass shaker, pas la production par le sim.

Comparaison avec Track Impulse

Track Impulse lit la memoire partagee d'iRacing en utilisant un modele pilote par evenements. Il n'y a pas de boucle d'interrogation. Le moteur se reveille au moment ou une nouvelle telemetrie est ecrite, generalement en moins de 1ms apres le tick physique du jeu.

De grands tampons.
Par conception.

Avant que le son n'atteigne vos enceintes ou vos shakers, il passe par un moteur audio : un logiciel qui mixe, met en tampon et traite l'audio. Les logiciels bass shaker standards utilisent un moteur audio generaliste concu pour les bandes-son de jeux et l'audio cinematique. Ces moteurs privilegient la stabilite a la vitesse et utilisent de grands tampons internes pour eviter les coupures audio.

Les logs de crash des logiciels bass shaker standards montrent des appels d'initialisation audio coherents avec FMOD, un moteur audio tres repandu.[3] La documentation officielle de l'API FMOD indique que ses parametres de tampon interne par defaut mettent l'audio en file d'attente a travers 4 blocs d'environ 21ms chacun. Voici les chiffres :

FMOD latency formula (from official FMOD API documentation)
// FMOD System::setDSPBufferSize defaults
bufferlength = 1024    // samples per block
numbuffers   = 4       // blocks in the ring buffer
samplerate   = 48000   // Hz

block_ms     = 1024 / 48000 * 1000        // = 21.33ms per block
avg_latency  = (4 - 1.5) * 21.33          // = ~53ms average latency

La documentation de FMOD confirme la formule de latence comme (numbuffers - 1.5) x blocksize, donnant environ 53ms de latence moyenne du mixeur avec les valeurs par defaut, avant toute surcharge audio du systeme d'exploitation.[3]

Mise en garde

Nous ne pouvons pas confirmer la configuration exacte utilisee par une application haptique tierce. La taille du tampon et le nombre de blocs peuvent differer des valeurs par defaut de FMOD. Les chiffres ci-dessus illustrent la categorie du probleme, pas necessairement la contribution precise dans un produit specifique. Le total de 140 a 200ms est mesure par la communaute, pas calcule a partir de ces chiffres par couche.

Le mixeur du systeme
a toujours un cout.

WASAPI (Windows Audio Session API) est la facon dont la plupart des applications Windows envoient l'audio a votre carte son. En mode partage, le mode par defaut utilise par la plupart des applications, Windows achemine l'audio de plusieurs applications a travers un mixeur central avant que quoi que ce soit n'atteigne votre materiel. Cette etape de mixage ajoute un delai que vous ne pouvez pas supprimer en modifiant les parametres du tampon.

Les tests independants utilisant FlexASIO montrent systematiquement que le mode partage WASAPI produit une latence superieure a 20ms quelle que soit la taille du tampon.[4] C'est un plancher impose par Windows lui-meme, pas un parametre ajustable.

Windows ne peut-il pas corriger cela ?

Microsoft a ajoute une option audio faible latence dans Windows 10/11 qui peut theoriquement reduire ce delai a 1,3ms. Cependant, l'application et le pilote de votre carte son doivent tous deux le prendre en charge specifiquement. Les logiciels bass shaker standards ne l'utilisent pas.[5]

Directement au materiel.
Pas de mixeur systeme.

ASIO (Audio Stream Input/Output) a ete developpe par Steinberg specifiquement pour resoudre le probleme de latence audio de Windows pour la production musicale en temps reel. Sa difference architecturale cle : il contourne entierement le mixeur audio de Windows et communique directement avec le pilote de votre carte son.

Propriete
WASAPI partage
WASAPI exclusif
ASIO (pilote natif)
Latence pratique min.
>20ms plancher
~4–10ms
~1,3ms
Mixage du systeme Windows
Oui, toutes les apps mixees
Non
Non, direct au materiel
Modele de callback
Gere par le systeme
Gere par le systeme
Direct depuis le materiel

A 64 echantillons / 48kHz (un reglage ASIO courant), la latence de sortie audio est de 64 / 48000 x 1000 = 1,33ms. C'est le chiffre que Track Impulse peut atteindre avec un tampon ASIO de 64 echantillons.

Concu pour minimiser
chaque couche.

Track Impulse s'attaque a chaque couche de la pile directement :

1

Telemetrie du sim : pilotee par evenements

Au lieu de verifier les nouvelles donnees sur un minuteur, Track Impulse ecoute directement : le jeu informe le moteur au moment ou une nouvelle telemetrie est prete. Aucun delai d'interrogation. iRacing delivre des sous-echantillons a 360Hz (plusieurs instantanes physiques regroupes dans chaque image) via cette methode. ACC et AC delivrent un instantane par image rendue, la fraicheur de la telemetrie evolue donc avec vos FPS.

2

Moteur d'effets

Quatre moteurs d'effets independants (un par coin de la voiture) traitent simultanement la velocite des amortisseurs, la hauteur de vibration, la vitesse des roues et le regime moteur. Lorsque le sim regroupe plusieurs mises a jour physiques dans une seule image, toutes sont traitees en sequence. <1ms de temps de traitement.

3

Sortie audio ASIO

La sortie via ASIO contourne entierement la pile audio de Windows. 1,3ms de latence de sortie audio. Pas de middleware audio generaliste, pas de surcharge WASAPI en mode partage, pas de mixage systeme.

4

Interface audio, amplificateur, shakers

Fonctionne avec n'importe quelle interface audio compatible ASIO. LF, RF, LR, RR mappees independamment. Environ 1ms de surcharge materielle. Total : aussi bas que 2ms de bout en bout.

Latence de bout en bout par sim

La latence totale depend du taux de telemetrie du sim et de la structure de ses images. La sortie ASIO et la surcharge materielle (environ 2,3ms combines) sont constantes pour tous les sims. La variable est l'age de la telemetrie.

Sim
Plage de bout en bout
Taux de telemetrie
A 200 km/h
iRacing
5–19ms
Sous-echantillon 360Hz
Moins de 1 metre
ACC
2–9ms
Instantane par image
Moins de 0,5 metre
AC
2–9ms
Instantane par image
Moins de 0,5 metre

Le modele de sous-echantillonnage a 360Hz d'iRacing signifie que la donnee la plus recente dans une image donnee a seulement 2,78ms d'anciennete au moment de l'envoi. La plus ancienne a 16,67ms. Avec environ 1,3ms de sortie ASIO et environ 1ms de surcharge materielle, la plage complete est de 5 a 19ms. ACC et AC utilisent un instantane par image rendue : le jeu ecrit une mise a jour de telemetrie par image dessinee a l'ecran. A 144 FPS, l'intervalle entre images est de 6,9ms, donc avec environ 2,3ms de surcharge de la pile, la plage est de 2 a 9ms. Des FPS plus eleves offrent une telemetrie plus fraiche. A 60 FPS, la plage s'elargit a environ 2 a 19ms.

Sources et notes
  1. 140 a 200ms mesures sur 7 cartes son : Forum SimHub, "Usage of low latency audio driver"
  2. Taux de rafraichissement de 60Hz de SimHub : Overtake.gg, discussion profil ShakeIt AM ("SimHub maximum refresh rate is 60Hz")
  3. Valeurs par defaut des tampons FMOD et formule de latence : FMOD Engine API, documentation System::setDSPBufferSize. Utilisation de FMOD visible dans les logs de crash des logiciels haptiques ("Disposing FMOD output / Allocating FMOD output").
  4. Plancher du mode partage WASAPI superieur a 20ms quelle que soit la taille du tampon : FlexASIO GitHub issue #55
  5. Microsoft IAudioClient3 et WASAPI faible latence de Windows 10/11 : Microsoft Learn, Low Latency Audio (Windows drivers)

Telecharger Track Impulse gratuitement

Installez Track Impulse, le logiciel bass shaker a faible latence concu pour combler cet ecart, a cote de votre configuration haptique actuelle et comparez directement. Gratuit pendant la beta. Aucune carte bancaire requise. Installation en moins de 10 minutes.