Chargement...
 
Skip to main content

4 - Toutes les autres applications, les émulateurs...


jamulus et latence

Articles: 1393
Je lance un petit sondage auprès des utilisateurs de jamulus afin de comparer nos réglages et nos latences.
en ce qui me concerne:
- connexion à internet via tel android en 4G
- réglage jack agressif (96000 Hz et 32 de buffer), latence inférieure à la ms
- lorsque je cherche des serveurs publics, rien à moins de 45 ms de latence
- lorsque je me connecte à un serveur à 45 ms, je vais dans les paramètres de jamulus. taille tampon sur auto, et activation des petits tampons (si je me rappelle bien le nom de l'option)

Le délais total affiché varie autour de 70 à 80 ms.
C'est acceptable sur un tempo lent (90-100 bpm), mais dés qu'on monte dans les tours (140- 160 bpm) ça devient très compliqué.
Articles: 5046 France
connexion à internet via tel android en 4G

D'après cette page de la documentation de Jamulus, il est déconseillé d'utilisé la wifi
Things to note about Android

Although you can install Jamulus on Android devices (and hear sound), we strongly recommend not doing so. Sound quality - especially over WiFi - is usually bad and latency is high.

Certes, ça parle de wifi, mais la 4g n'est pas plus véloce que le wifi si je ne dis pas de connerie. Et il est re-précisé dans la page 'Premier pas' d'utiliser une connexion filaire.
Une connection internet filaire (n’utilisez pas le Wi-Fi, cela va causer des problèmes de son). La plupart des connexions à haut-débit suffisent


Donc chercher une latence la plus basse possible avec une connexion sans fil me paraît contre-productif.
Articles: 1393
Tu as mal lu.
Je n'utilise ni le wifi, ni jamulus sous android.
J'utilise jamulus avec Librazik, relié à un tel Android, connecté à internet en 4G.
Si je suis ce que tu as lu dans la doc, je vais tirer un fil Ethernet de 6,6 km jusqu’à la première connexion internet avec un débit type fibre …

Les tutos qui recommandent de ne pas utiliser le wifi avec jumulus pour des questions de vitesse sont imprécis, il faut par exemple préciser de quelle norme wifi on parle. Entre la 802.11 B à 54 Mb/s (en pratique, au mieux la moitié) et la 802.11AC à 1733 Mb/s (voire 5330 Mb/s) ce n’est pas la même chose.
Les évolutions du wifi sont résumées ici

Les auteurs des tutos jamulus préfèrent certainement rester prudents et très généraux en supposant que les lecteurs n’ont aucune idée du type de wifi dont ils disposent, ni de la distance routeur -ordi, et restent donc conservateurs dans leurs conseils.
Le problème du wifi est plus sa stabilité (si PC et routeur sont éloignés) qui n’est pas garantie (si PC et routeur sont éloignés). Soit on l’accepte, soit on se rapproche de sa box, soit on augmente la taille des tampons et on perds en latence.


Ce qui est important c'est de comparer le débit de son wifi et celui de sa connexion internet. Le wifi ne doit pas être le goulot d'étranglement.

Dans mon cas connexion ADSL à 1 Mb/s dans le meilleur des cas, la vitesse du wifi ne sera jamais un problème. Par contre celle de mon ADSL oui, d'ou l'utilisation de la 4G, pas le choix.
Notre guitariste est en wifi et connecté fibre coté box. Il a simplement changé de pièce pour se rapprocher de sa box.

Coté 4G, la vitesse est très variable, je suis par exemple en ce moment à 2,1 Mb/s, le soir c'est un peu mieux. Le problème c'est aussi la fluctuation de ce débit. C'est pas terrible, mais mieux que mon ADSL.


Si on n'écoute que les docs, ceux qui n'ont pas de connexions fibre et de câble internet ne peuvent pas utiliser jamulus.

L'objet de ce post est justement de comparer les latences, les réglages, et les installations de plusieurs utilisateurs de jamulus afin que chacun se fasse une idée de son installation, de ses limitations, et de ses potentielles améliorations.
Articles: 52 France
Il ne faut pas confondre débit et latence. Dans le cas de Jamulus, c'est la latence qui va être importante. Pour de la musique, il n'y a pas besoin d'un débit faramineux.
L'inconvénient d'une connexion WiFi (à un routeur ou à un smartphone peu importe) est qu'elle ajoute une latence par rapport à une liaison filaire. Pour avoir une idée de la latence à chaque niveau, il faut utiliser l'utilitaire traceroute.
A titre d'information, je viens de lancer la commande et voici ce que j'obtiens entre mon ordinateur et ma box.
  • filaire : moins de 0,3 ms
  • WiFi : entre 3 et 6 ms
Articles: 5046 France
piratebab, j'avais très bien lu et compris ta situation, j'ai répondu avec les arguments de la doc, qui ne parle même pas de 4g. D'après ma petite expérience de Jamulus et des discussions avec d'autres personnes, le constat est unanime, l'utilisation avec un réseau sans fil est à éviter (peut être qu'avec la 5g cela changera). Ce n'est pas pour rien que les devs de Jamulus le précise. Après, chacun est libre de faire comme bon lui semble...
Articles: 1393
Ce qu'il faut surtout, c'est un liaison fiable. Rien de plus rageant que de prendre le son pendant plusieurs secondes en plein morceaux.Et la 4G, ce n'est effectivement pas ce qu'il y a de plus fiable de ce coté là.
Mais je n'ai pas le choix, c'est le mieux que je peux faire.
Ce soir j'ai une latence totale indiquée par jamulus de 80ms (43 ms avec le serveur). C'est vraiment très limite pour une bonne utilisation.
Certains soirs, c'est un peu mieux.
Effectivement, vivement la 5G pour ceux qui sont loin des centres urbains, et donc pas prêt d'avoir la fibre.
Articles: 2790 France
Bonjour tout le monde,

Tu dis que tu utilises un téléphone android 4G pour te connecter à internet.
Comment connectes tu le téléphone à l'ordinateur ? A priori tu dois utiliser un cable usb.

Tu dis que tu règles "JACK" à 96kHz de fréquence d'échantillonage et 32 trames par période. Par contre tu ne dis pas quel réglage de période par tampon tu utilises (2 ou 3 ou plus ?).
Jamulus ne fonctionne qu'en 48kHz question fréquence d'échantillonage. les autres réglages ne fonctionnent pas. En ce qui concerne la taille des paquets UDP, les serveurs tournent avec des paquets de 128 trames par période par défaut. Il est important de suivre le même réglage pour le client comme ça le CPU du serveur n'a pas grand chose à faire et baissera certainement taille de son tampon de gigue, ce qui va faire baisser la latence totale. Avec ce réglage à 128, il ne faut pas utiliser l'option de petits tampons réseau. elle est réservée aux serveur qui tournent avec l'option "Fastupdate" avec des client configurés en 64 T/P et avec l'option petit tampons réseau.

Maintenant, chez moi :
Fibre Orange, connexion ethernet gigabit / switch / livebox 5, réglage pour Jamulus 48kHz, 3 trames/période (interface audio USB), Jackd2 derniere version Realtime, priorité 70, noyau preemptible LL desktop, ...
J'ai des serveurs à 1000km de chez moi qui s'affichent dans la liste des serveurs à moins de 20ms.
Une fois connecté, j'ai déjà joué avec une latence affichée dans Jamulus à 100ms.
La plupart du temps, je ne regarde pas la fenêtre des paramètres, je la ferme.
j'ouvre les oreilles et je joue en fonction de ce que j'entend.
Articles: 1393
Merci juju pour tes réglages.
J'ai essayé avec et sans petit tampon, je n'ai pas entendu de différences.J'ai Jack à 2 périodes par tampon.
A 96 000 Hz dans Jack, Jamulus ne se plaint pas. J'ai volontairement choisi un multiple de 48 000 Hz pour ça.
Avec d'autres logiciels effectivement, j'ai eu des cas où j'ai activé le ré-échantillonnage.
Je vais suivre ton conseil sur la taille du tampon à 128.
J'ai essayé avec et sans petit tampon, je n'ai pas entendu de différences.

Le moindre serveur en France est deja à 45 ms.
A 100 ms c'est compliqué pour moi. Je suis obligé de travailler en boucle ouverte, c'est à dire que je mets ma piste sur muet, sinon j'ai un écho en retour très désagréable. Et entre ma partie et celle des autres j'ai un décalage, pas évident de conserver le tempo.
Articles: 59
Salut,

J'utilise régulièrement Jamulus avec ces réglages :

- Connexion fibre sfr (avec un cable entre mon ordi et la box) ;

- Jack : échantillonnage 48KHz, tampon 128, période 3. (ce sont mes paramètres habituels, sauf le 128 : d'habitude je mets 256 voir 512 pour éviter des xruns... là pour jamulus on s'en fout que ça clip un peu si ça permet de gagner un peu de confort de jeu). @jujudusud : si je comprends bien ton message, même avec un meilleur matos je n'aurais pas intérêt à passer à tampon 64 ?

- Paramètres Jamulus :
* canaux audio en mono (et pas en stéréo) -> j'ai constaté une vraie amélioration chez moi, et sans vraiment comprendre ce qu'il y a écrit dans Image la doc à ce sujet il semblerait que ça réduise pas mal la quantité d'informations à échanger : j'imagine que moins il y a d'info plus c'est rapide ;
* qualité du son : normale -> j'ai essayé "low" j'ai eu l'impression que c'était plus brouillon, y compris pour le pote avec qui je jouais.
* tampon de gigue : en général je n'y touche pas, sauf quand ça commence à sonner un peu trop talkie-walkie (ça arrive de temps en temps...), ben là des fois ça s'est amélioré en augmentant un peu les tampons, ou alors c'est juste que le probleme est passé de lui-même.

- Logiciels intermédiaires : au début je passais par guitarix pour brancher ma guitare mais maintenant je mets directement la guitare sans effet. Les autres jamuluseurs me disent qu'ils m'entendent mieux comme ça et je peux constater moi aussi qu'en général quand un gars se connecte avec de gros effets on l'entend mal, avec des coupures, et on entend moins les autres... J'imagine là aussi que c'est une histoire de quantité d'information à échanger...

En termes de latence, le serveur m'indique petites écuries (genre jazz) à 12ms, et Gegeweb's jamulus (genre rock) à 13ms, mais on est dimanche midi...


Voilà, et sinon un bon truc je trouve pour tester sa config c'est de faire un test avec des complices : tu mets un rythme simple dans hydrogen (des noires à 100bpm par exemple) et tu demandes à ton complice de jouer des noires par dessus : si le decalage est trop perceptible ça va pas le faire et faut toucher les reglages... Ou réduire le tempo pour que ce soit moins genant... C'est très empirique mais ça peut marcher (si toutefois il y a un reglage qui le permet...), je fais une petite démo de ça vers 5'30 sur ma vidéo youtube jamulus 😊

a+
Articles: 1393
Merci de partager tes réglages.
J'ai fait un peu le même test que toi, sauf que la boite a rythme c'était moi à la batterie ...

Pour les réglages, je n'ai pas précisé, mais je suis aussi sur mono et qualité normale.
Qu'est ce que tu as comme latence de boucle, hors jamulus avec ton matos et tes réglages de Jack ?
Articles: 1393
Question complémentaire:
comment changez vous le "delais de temporisation" (audio buffer duration".
Dans Jack ? Je n'y ai pas accés dans les parametres de jamulus
Articles: 59
pirate écrit:
Qu'est ce que tu as comme latence de boucle, hors jamulus avec ton matos et tes réglages de Jack ?


30 ms.

piratebab écrit:
comment changez vous le "delais de temporisation" (audio buffer duration".


Je ferme Jamulus et jack, modifie dans jack, puis redémarre jack et jamulus (et là la modif est faite dans jamulus).
Articles: 2790 France
fidz écrit:
@jujudusud : si je comprends bien ton message, même avec un meilleur matos je n'aurais pas intérêt à passer à tampon 64 ?


En fait, si le serveur n'est pas configuré pour les tampons de 64, ça ne sert à rien d'utiliser ce réglage. L'option "-F" permet d'activer le mode taille de trame de 64 échantillons pour les serveurs.

Pour plus d'information :
options de ligne de commande

piratebab écrit:
comment changez vous le "delais de temporisation" (audio buffer duration".


Comme j'utilise Jackd avec D-Bus, je peux changer les paramètres à la volée et ils sont directement répercutés dans les applications qui sont ouvertes et connectées à Jack. Donc, soit j'utilise un terminal et :
Copy to clipboard
jack_control dps rate 48000 jack_control dps nperiods 3 jack_control dps period 128

Soit je prends ma fenetre Catia et je change les parametres puis cadence si j'ai besoin et configure et je change puis switch master ...
Articles: 1393
Merci Juju pour tes précieux conseils;
Je continu à tracker les sources de latences. Et je découvre qu'il y a des tampons à tous les niveaux.
https://www.bufferbloat.net/projects/bloat/wiki/What_can_I_do_about_Bufferbloat/
Du boulot et de nombreux tests en perspective. Ce qui est bien lorsqu'on n'a pas des ressources matérielles largement dimensionnées; c'est qu'on est obligé d'aller au fond des choses, c'est très instructif!
Articles: 2790 France
Est ce que tu peux répondre à cette question ?
Jujudusud écrit:
Tu dis que tu utilises un téléphone android 4G pour te connecter à internet.
Comment connectes tu le téléphone à l'ordinateur ? A priori tu dois utiliser un cable usb.

Articles: 1393
oui cable usb, pas de bluetooth ou de wifi.
Articles: 1393
J'ai fait de nouveaux tests ce soir avec Jamulus.
J'ai testé plusieurs réglages de Jack, mais vu ma latence totale de l'ordre de 100ms, ça n'a aucun impact significatif. Je suis donc revenu au 48000 Hz, 64 de buffer, et le classique délais de latence de Jack de 2,67 ms. Ce qui me donne une latence de boucle de 8 ms sur mon installation.

J'ai fait un premier test
- serveur a 45 ms de latence, latence totale 90 ms
- serveur à 210 ms de latence, latence totale 250

J'ai donc un "forfait" de 45 à 50 ms de latence supplémentaire systématiquement.
Avez vous la même chose sur vos install ?

Par curiosité, j'ai activé l'option des petits paquets sur un serveur l'acceptant.
Le débit double, mais reste loin de la limite de ma connexion
La latence globale se réduit de 10 à 15 ms. Malheureusement, c'est très instable, et monte parfois à > 500ms (chose que je n'avais jamais sans cette option d'activée). Inutilisable pour moi.

Le voyant de delay de Jamulus reste désespérant rouge, mais si on se contente de tempo lents, le jam reste possible avec 90-110 ms de latence totale. Je suis arrivé au bout de l'optimisation de la latence sur mon installation, si vous avez d'autres idées, je suis preneur.

J'ai aussi fait des recherches et des tests sur les latences introduites par les FAI (en HTTP), c'est affligeant, mais c'est une autre histoire.
Articles: 2790 France
Avec une interface audio USB, d'après tout ce que j'ai lu, pour utiliser Jamulus, il faut :
48kHz, 3 periods/buffer, 128 frames/périod.
Rien d'autre.
Articles: 2790 France
J'ai fait les mêmes tests que toi, je ne sais plus dans quel fil tu en parles ...
Les réglages pour le résultat ci dessous : 48 kHz, 3, 1024.
Copy to clipboard
$ jack_iodelay Jack: JackClient::SetupDriverSync driver sem in flush mode Jack: JackLinuxFutex::Connect name = jack_sem.1000_default_jack_delay Jack: Clock source : system clock via clock_gettime Jack: JackLibClient::Open name = jack_delay refnum = 7 Jack: JackClient::PortRegister ref = 7 name = jack_delay:in type = 32 bit float mono audio port_index = 13 Jack: JackClient::PortRegister ref = 7 name = jack_delay:out type = 32 bit float mono audio port_index = 14 Jack: JackClient::Activate Jack: JackPosixThread::StartImp : create non RT thread Jack: JackPosixThread::ThreadHandler : start Jack: JackClient::kBufferSizeCallback buffer_size = 1024 Jack: JackClient::Init : period = 21333 computation = 100 constraint = 21333 Jack: JackPosixThread::AcquireRealTimeImp priority = 90 Jack: JackClient::ClientNotify ref = 7 name = jack_delay notify = 2 Jack: JackClient::kActivateClient name = jack_delay ref = 7 Jack: JackClient::ClientNotify ref = 7 name = jack_delay notify = 18 Jack: WaitGraphChange... new capture latency: [0, 0] Jack: JackClient::ClientNotify ref = 7 name = jack_delay notify = 18 new playback latency: [0, 0] Jack: JackClient::ClientNotify ref = 7 name = jack_delay notify = 18 Signal below threshold... Jack: JackClient::ClientNotify ref = 7 name = jack_delay notify = 18 new capture latency: [1024, 1024] Jack: JackClient::ClientNotify ref = 7 name = jack_delay notify = 18 Signal below threshold... Jack: JackClient::ClientNotify ref = 7 name = jack_delay notify = 18 new playback latency: [3072, 3072] Signal below threshold... 4987.858 frames 103.914 ms total roundtrip latency extra loopback latency: 891 frames use 445 for the backend arguments -I and -O

Je vais essayer de renseigner cette "extra latence" pour voir ce que ça donne.

Et si je change de réglages : 48 kHz, 3, 128, alors :
Copy to clipboard
1067.860 frames 22.247 ms total roundtrip latency extra loopback latency: 555 frames use 277 for the backend arguments -I and -O

Articles: 1393
Salut Juju, j'ai un peu mis de coté jamulus pendant les vacances, et on va reprendre les repetes en live. Mais je garde ça sous le coude au cas ou soit reconfiné !