ETH-68 ist ein Ethernet-Audio-Interface für Linux, das auf einem STM32H7-Mikrocontroller mit Bare-Metal-Firmware basiert und einen netJACK1-Master-Endpoint emuliert. Es bietet eine Round-Trip-Latenz von 3,620 ms bei 48 kHz mit einem 64-Sample-Buffer, unterstützt 6 symmetrische Eingänge, 8 Ausgänge sowie MIDI und verbindet sich über 100M-Vollduplex-Ethernet. Mehrere Geräte lassen sich über High-Frequency-Taktung (BNC) und UDP-Broadcasts kaskadieren. Das System erreicht Latenzwerte, die mit professionellen PCIe-Audiokarten wie der RME HDSPe AIO Pro vergleichbar sind oder diese bei 96 kHz leicht übertreffen.
Wichtigste Punkte
Hardware-Architektur: Verwendet einen STM32H7-Mikrocontroller mit maßgeschneiderter Bare-Metal-Firmware und den Audio-Codec Burr-Brown PCM3168A für 6 symmetrische 1/4-Zoll-TRS-Eingänge und 8 Ausgänge sowie DIN-MIDI.
Latenz-Leistung: Erzielt eine gemessene Round-Trip-Latenz von 3,620 ms bei 48 kHz und 64 Samples (bzw. 1,814 ms bei 96 kHz/64 Samples), validiert via jack_delay und Loopback-Kabel.
Software-Integration: Emuliert nativ einen netJACK1-Master oder bindet sich über den PipeWire-Client pw-eth68 direkt in Multimedia-Sitzungen ein.
Multi-Einheiten-Synchronisation: Kaskadierung mehrerer Einheiten durch Daisy-Chaining eines High-Frequency-Clocks (BNC) zur Vermeidung von Sample-Drift sowie UDP-Broadcast-Sync-Befehle via eth68ctl.py, gemimt durch den Proxy eth68proxy.
Netzwerkanforderungen & Optimierung: Arbeitet mit einer 100M-Vollduplex-Verbindung an einem 1G-Switch und einer Intel-I210-Netzwerkkarte, wobei die Deaktivierung des Interrupt-Coalescing (ethtool -C rx-usecs 0) die Verarbeitungslatenz um 175 µs senkt.
Audio-Kennzahlen: Liefert einen THD+N von -94.8 dBFS bei 1 kHz (48 kHz Sample-Rate) und eine Passband-Flachheit von ±0,15 dBFS im kombinierten Loopback-Modus.
Diskussions-Highlights
Verfügbarkeit und Open Source: Entwickler alowell stellte klar, dass das Projekt derzeit evaluiert wird und noch keine finale Entscheidung zwischen kommerzieller Kleinserie und Open-Source-Veröffentlichung gefallen ist; es ist aktuell nicht regulär käuflich.
Abtastraten-Beschränkungen: Der verwendete PCM3168A-Codec unterstützt derzeit keine 44,1 kHz (und Derivate wie 88,2 kHz), was von Nutzern für CD-Mastering kritisiert wurde; eine kommende Revision soll einen zusätzlichen Oszillator erhalten, um dies zu beheben.
Taktungs-Modell (Clocking): Das System arbeitet nach einem Push-Modell, bei dem das Eintreffen neuer Audiopuffer des ETH-68 auf dem Linux-Host als primärer Taktgeber fungiert, weshalb kein separater Host-Takt notwendig ist.
Netzwerk-Adressierung: Kritisiert wurde die standardmäßige Nutzung von 12.12.12.10, da dieser IP-Bereich im externen Internet (AT&T) liegt und bei Fehlkonfigurationen zu unerwünschtem externem Traffic führt; der Entwickler kündigte eine Anpassung auf private IP-Adressen an.
Vergleich mit Dante: Im Vergleich zu professionellen Audio-over-IP-Protokollen wie Dante (dessen Software-Treiber DVS ca. 4 ms Einweg-Latenz aufweisen) bietet ETH-68 eine geringere Gesamtlatenz bei Nutzung von Standard-Ethernet-Hardware.
MIDI-Routing: MIDI-Nachrichten werden 1:1 in UDP-Pakete (ein Paket pro Nachricht) verpackt und über ein Host-Skript an ein ALSA-Loopback-MIDI-Interface übergeben.
Glossar
Round-Trip-Latenz (RTL): Die Gesamtdauer, die ein Audiosignal benötigt, um vom Eingang eines Systems verarbeitet, durch Software-Puffer geleitet und am analogen Ausgang wieder ausgegeben zu werden.
JACK (JACK Audio Connection Kit): Ein professioneller Audioserver für Linux und macOS, der latenzarme Echtzeit-Audio- und MIDI-Verbindungen zwischen Anwendungen ermöglicht.
netJACK1: Ein Protokoll innerhalb von JACK, das die Übertragung von Audiostreams über IP-Netzwerke zwischen Master- und Slave-Endpunkten unterstützt.
PipeWire: Ein modernes Multimedia-Subsystem für Linux, das die Funktionen von JACK und PulseAudio vereint und Audio/Video geräteübergreifend mit minimaler Latenz steuert.
THD+N (Total Harmonic Distortion plus Noise): Ein Qualitätsmaß in der Audiotechnik für den Anteil an harmonischen Verzerrungen und Rauschen; je niedriger der negative dBFS-Wert, desto reines das Signal.
Interrupt Coalescing: Ein Verfahren von Netzwerkadaptern (NICs), bei dem eintreffende Datenpakete gesammelt und gebündelt per Interrupt an die CPU gemeldet werden, um Prozessorlast zu sparen (auf Kosten erhöhter Latenz).
STM32H7: Ein leistungsstarker ARM Cortex-M7-Mikrocontroller, der für rechenintensive Embedded-Echtzeitanwendungen eingesetzt wird.
Burr-Brown PCM3168A: Ein integrierter Mehrkanal-Audio-Codec, der Analog-Digital- und Digital-Analog-Wandlung kombiniert.
BNC-Kabel: Ein koaxialer Steckverbinder und Standardkabeltyp, der hier zur verlustarmen Übertragung von Hochfrequenz-Taktsignalen (Wordclock) verwendet wird.
ALSA (Advanced Linux Sound Architecture): Das offizielle Audio-Subsystem des Linux-Kernels zur Bereitstellung von Soundkarten-Treibern.