Latenzoptimierung für Jamulus unter Linux

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
seppi1234
Beiträge: 3
Registriert: 01.08.2021 16:44:25

Latenzoptimierung für Jamulus unter Linux

Beitrag von seppi1234 » 01.08.2021 17:14:27

Hallo zusammen,

ich bin neu hier und möchte zu Beginn erstmal alle recht herzlich grüßen :D

Wie der Titel schon besagt, möchte ich die Latenzen unter Jamulus optimieren und bräuchte dazu bitte eure Hilfe.
Ich verwende Jamulus schon einige Zeit... unter Windows... bitte klickt mich nicht gleich weg :roll:
Bin mit Win10 und 7 offensichtlich an der Grenze und teste seit ein paar Tagen Ubuntu Studio 21.04 mit einem Live-USB-Stick.

Unter Ubuntu erziele ich etwas bessere Werte als unter Win (bei identischem System).
Zum Vergleich die Latenz bei einem Ping von 11ms...
- unter Win7 27-28ms
- unter Ubuntu 25-27ms
Beides ziemlich Dropout stabil.

Mit den Werten kann ich einigermaßen leben, aber... je kleiner umso besser :mrgreen:

Besteht eine Chance die Latenz mit dem vorhandenen System noch etwas zu verbessern?
Hier ein paar Daten...
Audio-Interface Focusrite Scarlett 2i2 (3rd Gen)
Einstellungen in Jack...
Treiber ALSA, SR 48000, Buffersize 64, Buffer 4

Danke für eure Rückinfo im Voraus.

Gruß
seppi1234

wanne
Moderator
Beiträge: 7448
Registriert: 24.05.2010 12:39:42

Re: Latenzoptimierung für Jamulus unter Linux

Beitrag von wanne » 03.08.2021 17:24:37

aber... je kleiner umso besser
Naja: Die Frage ist zu was für einem Preis. Im allgemeinen kann der Mensch mit konstanten Verzögerungen ganz gut umgehen. Das Gehirn ist sogar so gut, dass wir es meist nicht mal wirklich wahrnehmen bzw. nur als Entfernung 26ms ist die Verzögerung die ein 9m Entfernter Kollege auf der Bühne hat. Auch mit dem können wir gleichzeitig spielen. Jitter (also abwechselnd große und kleine Verzögerungen) können wir dagegen gar nicht ab. Das kommt in der Natur auch nicht vor.
Du kannst natürlich die Buffer noch weiter runter drehen. Du läufst dann aber natürlich immer mehr die Gefahr, dass du nur noch verzerrten Müll – und den dafür schneller bekommst.
Du siehst ja: Jamulus leistet da ganze Arbeit. Ich wette dein Ping schwankt weit stärker als deine Latenz in Jamulus. Im Prinzip willst du halt lieber konstant worst case als ausreißer nach Unten haben.
Im Allgemeinen: So von den Größenordnungen her kostet dich ADSL ~40ms VDSL ~10ms g-WIFI ~10ms ac-WIFI 2ms, GbE-Switch 0.02ms Gerät mit schelchtem Empfang im Wifi: +20ms-100ms  (Je hin und zurück) ein iptables-Maquerade 0.1ms Kontextwächsel (Paket versenden, Datei öffnen, Programm starten (also nicht wie lange das Programm selbst zum starten braucht sondern wie lange es braucht bis es mit starten anfängt)) unter Linux ca. 1ms.
Du kannst da schon rum optimieren. Aber dein DSL wirst du nicht ersetzen. Dein Jamulus auch nicht als Kernelmodul neu laden. Und ein bisschen Puffer braucht deine Audiohardware. An einem Wifi wirst du vermutlich nicht sitzen. Vielleicht findest du da noch was. Aber 2*8ms sind für übliche Audiohardware sinnvoll. Dann hast du deine 11ms Internet drauf. Ich glaube da ist kaum merklich was zu holen.
rot: Moderator wanne spricht, default: User wanne spricht.

seppi1234
Beiträge: 3
Registriert: 01.08.2021 16:44:25

Re: Latenzoptimierung für Jamulus unter Linux

Beitrag von seppi1234 » 04.08.2021 12:38:34

Hallo wanne,

danke für deine Nachricht.

Rechner ist per Gb-LAN im Netzwerk.
Hab VDSL100 und einen Ping von 4-6ms zum Telekom-Server nach München (ca. 60km Luftlinie). Das ist denke ich schon ziemlich gut.
Eine Latenz von 28ms ist sicher auch schon ziemlich gut. Ich spiele Gitarre und singe und merke es am ehesten beim Singen. Der Kopfhörer ist nicht
wirklich dicht - ich höre also meine eigene Stimme und dazu das versetzte Signal meiner Stimme. Wie gesagt kann ich an sich gut damit leben, versuche
aber trotzdem noch etwas zu optimieren.

Buffer = 4 und Buffersize = 64 (oder Framesize) in Jack hab ich niedriger probiert... Buffer = 2 oder auch Framesize = 32. Da kommt nur noch knattern an.
Jamulus ist auch schon optimal mit "kleine Netzwerkpuffer" usw. Recht viel mehr kann man nicht machen (soll ja auch stabil sein).

Wenn ich einen eigenen Server auf dem selben Rechner starte, hab ich natürlich einen Ping von 0-1ms und die Latenz ist entsprechend niedriger (21-22ms).
Die Latenz zwischen original Stimme und der verzögerten ist dann fast nicht mehr wahrnehmbar. Mir geht es nicht so sehr um das klick-genaue spielen.
Das kompensiert man (wie du sagst) recht gut. Es geht eher um den Sound der Stimme. Die bekommt ja zum Original noch ein phasenverschobenes Signal dazu 8)
Klingt fremd, aber man gewöhnt sich auch daran.

Ich möchte kein zusätzliches Geld investieren. Die Frage ging eigentlich dahin, ob man unter Linux noch was optimieren könnte.
Z.B. unnötige Hintergrundprozesse deaktivieren, System verschlanken. Oder gibt es eine Version mit einem noch schnelleren Kernel?
Das waren meine Überlegungen. Der größte Latenzanteil wird sowieso durch die Hardware kommen.
Ich kenne mich halt mit Linux so gut wie garnicht aus - deshalb meine Frage :mrgreen:

mk1967
Beiträge: 67
Registriert: 24.04.2013 18:55:20

Re: Latenzoptimierung für Jamulus unter Linux

Beitrag von mk1967 » 13.08.2021 21:13:33

Spontan fällt mir ein - Stichwort schnellerer Kernel -, daß man eine debianbasierte Multimedia-Distribution wie LibraZiK Studio https://librazik.tuxfamily.org/base-sit ... nglish.php ausprobieren könnte.

LibraZiK bringt u.a. einen Niedriglatenzkernel mit, der lt. Entwicklern 95% der Aufgaben übernehmen kann, für die man sonst einen Echtzeitkernel einsetzen könnte. Bei mir läuft das System deutlich schneller und zuverlässiger als UbuntuStudio. Speziell wenn die JACK-Steuerung mit Cadence https://kx.studio/Applications:Cadence ins Spiel kommt.

Michael

seppi1234
Beiträge: 3
Registriert: 01.08.2021 16:44:25

Re: Latenzoptimierung für Jamulus unter Linux

Beitrag von seppi1234 » 16.08.2021 13:15:30

Danke mk1967,

werde ich mir mal genauer ansehen. Mal sehen ob ich das im "Kreuz" habe :wink:

Benutzeravatar
novalix
Beiträge: 1908
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: Latenzoptimierung für Jamulus unter Linux

Beitrag von novalix » 18.08.2021 14:27:51

Hi,

der Königsweg ist, das Monitoring von der digitalen Verarbeitung zu entkoppeln. Man kann z.B. einen analogen Mixer vor das Interface setzen und dessen Monitorschleife auf den Kopfhörer legen. Dann hört man sich selber in Phase.
Offensichtlich gelangt dann aber der backing bzw. der click track aus dem Rechner mit Verzögerung an das Ohr, so dass der produzierte live part (z.B. Gesang) zu diesem Zeitpunkt schon ein paar Samples hinter her hinkt. Bis der neu produzierte part seinen Platz auf der Festplatte findet, vergehen wieder ein paar Millisekunden. Diese Schleifenverzögerung (roundtrip latency) lässt sich allerdings berechnen und kompensieren. Dazu gibt es logischerweise keinen allgemeingültigen Wert. Der muss jeweils für die gegebenen Umstände (vor allen Dingen hardwareseitig) ermittelt werden.
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

Antworten