Kopfhörerentzerrung mit AutoEQ unter Linux
Damit es über Kopfhörer möglichst ähnlich wie über Lautsprecher klingt, muss man im realen Leben dem Kopfhörer ein angepasstes Signal anreichen. Dafür gibt es viele Lösungen, meist kommerziell und nur für Windows und Mac.
AutoEQ geht die Sache generisch an und bietet eine Sammlung von kostenfreien EQ-Settings und Impulsantworten an, mit denen man den Kopfhörerklang verbessern kann. Um den EQ bzw. die Faltung der Impulsantwort muss man sich allerdings selbst kümmern.
Vorab: Ich habe es mit AKG K812 und Beyerdynamic DT 1770 Pro ausprobiert und bin sehr angetan vom Resultat.
Als musikmachender Linuxer ist JACK mein Hauptaudiosystem. Nicht-JACK-Anwendungen wie z.B.Firefox geben ihren Ton über Pulseaudio aus, das ich über Pulseaudio Jack Sink an JACK anflansche. Daher befasse ich mich nicht mit einem ebenfalls möglichen Eingriff in Pulseaudio, sondern nur damit, wie ich die AutoEQ-Entzerrung in mein JACK-Setup einklinke – denn über JACK läuft bei mir letztlich alles.
Um defininierte, von externen Geräten unabhängig vorhandene Knoten im JACK-Setup zu haben, habe ich mit dem Hilfsprogramm „jack_thru“ mehrere Anflanschpunkte erstellt. Ein wichtiger Knoten ist der, den ich„main“ genannt habe, das ist der Knoten unmittelbar vor der Systemausgabe, also den Ausgängen zum Audio-Interface. Jede Audioausgabe – ob DAW direkt über JACK oder Firefox über Pulseaudio – landet dort. Das ist der ideale Punkt, um sich mit Eingriffen systemweit zu versündigen.
Hat man den Luxus eines Interfaces mit mindestens vier Ausgängen, dann braucht man bei der Nutzung der Lautsprecher die Frequenzverbiegung nicht abzuschalten, denn man kann z.B. auf den Kanälen 1 und 2 das unverbogene Signal für die Lautsprecher ausgeben und auf 3 und 4 das entzerrte für den Kopfhörer. Das sieht bei mir so aus:
Was hier als „Impulsantworten Stereo“ angezeigt wird, ist die Standalone-Form „lsp-plugins-impulse-responses-stereo“ des Plugins „LSP Impulse Responses Stereo”. Natürlich könnte man auch einen Plugin Host wie „carla“ oder „jalv.gtk“ nutzen, um die Plugin-Form zu laden, aber so ist es einfacher.
Es gibt viele Möglichkeiten, die Verbindungen der Ein- und Ausgänge zu automatisieren. Ich lasse dazu „jack-plumbing“ laufen, das anhand einer Regeldatei die Verbindungen sicherstellt.
Ich starte „Impulsantworten Stereo“ automatisch beim Anmelden als „lsp-plugins-impulse-responses-stereo -c /home/hm/soundfonts/impulse_responses/autoeq/ir_akg_k812.cfg“, wobei die cfg-Datei nach dem Laden der Impulsantwort (wav-Datei) und dem Einstellen der Knöpfe einmalig mit „SAVE“ erstellt wird. Wo und unter welchem Namen Ihr die Impulsantwort und die cfg-Datei ablegt, ist natürlich Eure Sache. Die Einstellungen in „Impulsantworten Stereo“ sehen bei mir so aus:
„Dry“ muss auf „-inf“ stehen, denn es soll nur das „Wet“ ist bei mir auf „+3 dB“, was bei meiner Impulsantwort eine ungefähr gleiche Lautstärke gegenüber dem unbearbeitetem Signal ergibt.
Nun fehlt nur noch die Impulsantwort, die man auf der Webseite von AutoEQ herunterladen kann, nachdem man üben im Auswahlfeld nach dem benutzten Kopfhörer gesucht hat. Als Equalizer App ist „Convolution Eq“ auszuwählen. Ich empfehle die Stereo-Version mit linearer Phase und dem Wert „4“ bei „Frequency resolution“. „4“ ist gehobene Qualität vor allem im Bassbereich und sollte von jeder CPU gemeistert werden.
So habe ich dafür gesorgt, dass ich nach dem Anmelden an meinem Computer ohne einen Mausklick das entzerrte Signal für meinen AKG K812 auf meinen Kopfhörer bekomme, während das Signal zu den Nahfeldmonitoren unberührt bleibt.
Leider ist mir folgender Satz verunglückt:
„Dry“ muss auf „-inf“ stehen, denn es soll nur das „Wet“ ist bei mir auf „+3 dB“,
Es soll heißen:
„Dry“ muss auf „-inf“ stehen, denn es soll nur das gefaltete Signal weitergeleitet werden. „Wet“ ist bei mir auf „+3 dB“,
@bluebell Wer minimale Latenz will, weil er z.B. Ton zu Videos hört, sollte nicht die Impulsantworten mit linearer Phase, sondern die mit minimaler Phase herunterladen, die einem per Default angeboten werden.
Sehr schöner Beitrag, ich bin noch beim recht betagten Sonarworks Reference, was unter Linux (soweit ich weiß) nicht ohne weiteres systemweit umgesetzt werden kann, nur als VST. Ich denke mit Deinem Ansatz kommt man mindestens genauso weit, ggf. durch spezielle Datensätze (gebrauchte Earpads) noch näher ans Optimum.
@Filterspiel Wenn Du JACK nutzt, kannst Du das im Prinzip auch systemweit machen. Als Plugin-Host sollte Carla funktionieren. Wenn Du Carla mit dem Plugin aufgesetzt hast, sicherst Du die Carla-Session als irgendwas.carxp und gibst dann Carla beim Aufruf den kompletten Pfad zu irgendwas.carxp mit.
https://github.com/falkTX/Carla/releases
Sehr interessanter Artikel und ich werde das auch mal versuchen umzusetzen. Habe bis jetzt mit Jack nur gearbeitet, um meine Gitarre in Rocksmith zu bekommen, und das hat leider nur mittelmäßig funktioniert. ..
@moritzht Die Lernkurve mit JACK ist leider etwas steil – zumindest ich fragte mich erst, warum man diesen Zusatzaufwand treibt. Aber es lohnt sich. Man ist damit definitiv Herr über das Audiorouting innerhalb und außerhalb seines Rechners.