Ankündigung

Einklappen
Keine Ankündigung bisher.

Universalequalizer für Linux :-)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • ropf
    Registrierter Benutzer
    • 03.12.2013
    • 841

    Universalequalizer für Linux :-)

    Einen universellen Equalizer für Linux gibt es hier:
    https://github.com/bmc0/dsp/wiki/System-Wide-DSP-Guide

    Universell heisst - er kann alle möglichen parametrischen Filter und sogar FIR (noch nicht probiert). Als ladspa-Modul kann er in jede Software eingebunden werden, die ladspa-Plugins unterstützt - also Alsa, Pulseaudio, Jack - oder zB. auch in Soundeditoren wie Audacity.

    Systemweite Einbindung in Pulse war etwas fummelig, aber jetzt bin ich echt happy. Gibt sogar ein Script, das die Filter aus REW übersetzt. Wünschn würd ich mir noch ein grafisches Frontend ähnlich Equalizer APO und Möglichkeiten, zur Laufzeit die Konfiguration neu einzulesen bzw zum Aktivieren und Deaktivieren zur Laufzeit.
  • ropf
    Registrierter Benutzer
    • 03.12.2013
    • 841

    #2
    noch ein paar Worte zu vorhergegangenen Versuchen:

    Hier gibt es einen 15-Band Gafik-EQ, der sich systemweit in Pulseaudio einhängt:
    http://www.webupd8.org/2013/10/syste...equalizer.html

    Funktioniert ganz gut. Anzahl der Kanäle ist fix. Lässt sich aktivieren und deaktivieren. Klickt man auf "keep settings" bleibt er weiterhin aktiv, auch wenn man das Programm beenedet. GGibt es für Ubuntu 14.04 und 14.10, wird aber nicht mehr geplegt.

    Hier gibt es den Nachfolger, der "eingebaute" EQ von Pulseaudio:
    http://www.webupd8.org/2013/03/insta...in-system.html

    Einstellungen werden realtime wirksam. Anzahl der Kanäle lässt sich einfach ändern, indem man das Fenster in die Breite zieht. Leider Keine Skalen an den Schiebereglern. Arbeitet FFT-basiert, was etwas CPU-Last macht. Bei mir war der Sound manchmal stotterig. Abgleichen mit REW (Pink Noise Generator über EQ bei mitlaufender RTA) ging gar nicht ...

    Ich wollte was Parametrisches. Ähnlich den VST-Plugins in der Windows- und Macwelt, git es in der Linux-Welt die ladspa-Plugins für Alles und Jedes - man braucht nur einen passenden Host.

    Alsa kann von Haus aus ladspa-Plugins einbinden, aber das mitgelieferte Modul handelt keine Controls, die das ladspa-Plugin bereitstellt. Hier kommt alsaequal ins Spiel:
    http://www.thedigitalmachine.net/alsaequal.html

    Alsaequal macht im Prinzip dasselbe wie das ladspa-Modul von Alsa - es dient als Container für beliebige ladspa-Plugins - stellt aber zusätlich die Controls bereit - auf die dann (zB.) über den Alsamixer zgegriffen werden kann.

    Per default wird ein grafischer 10-Band-EQ benutzt - aber wie gesagt lassen sich damit beliebige ladspa Plugins einbinden - und auch steuern. Bis ich auf den oben gennanten Universal-EQ gestossen bin mein klarer Favorit.

    ... mit Grüßen vom
    ropf

    Kommentar

    • ropf
      Registrierter Benutzer
      • 03.12.2013
      • 841

      #3
      Wenn ma weiss worauf es ankommt, ist alles ganz einfach ... bis dahin kann es aber schon etwas steinig werden

      Bevor man das ladspa_dsp modul nutzt, sollte man unbedingt die effects_chain am standalone-Programm testen - da bekommt man wenigstens vernünftige Fehlermeldungen. Ohne die sind kleine Vertipper schwer zu finden ...

      Funktioniert das, kann man sich an die Erstellung einer ladspa Konnfiguration wagen. Beispiel für einen parametrischen EQ auf Basis der von REW generierten Filter:
      Code:
      # ~/.config/ladspa_dsp/config_IIR
      # test file for REW generated IIR equalizer
      
      input_channels=2
      output_channels=2
      
      effects_chain=noise -200 :0 eq 126 2,13 -7,6 eq 352 5,00 -4,2 eq 215 5,00 -3,4 eq 169 4,69 1,6 eq 8.654 3,81 -1,4 eq 1.076 3,40 1,1 eq 303 5,00 1,3 eq 3.289 5,00 -0,8 eq 1.099 3,94 -0,8 :1 eq 132 2,00 -5,8 eq 204 3,04 5,0 eq 261 5,00 -6,0 eq 388 5,00 -3,3 eq 203 5,00 -2,6 eq 3.164 5,00 -2,0 eq 2.431 1,41 0,5 eq 6.967 5,00 -1,6 eq 1.734 5,00 -1,4 eq 4.371 5,00 -1,2
      Hier wird zu Beginn eine einizige Portion Rauschen zugefügt. Macht man das nicht,reagiert der Filter beim plötzlichen Abreissen des streams evtl äusserst seltsam

      Beispiel für einen EQ mit FIR:
      Code:
      #.config/ladspa_dsp/config_FIR
      # test file for FIR baseq EQ with 1024 taps
      
      input_channels=2
      output_channels=2
      
      effects_chain=fir /home/myhomedir/.config/ladspa_dsp/IR-48kstereo.wav
      Die verwendeten Impulsantworten stecken in der (Stereo-)wav-Datei. Die Pfadangabe MUSS absolut sein, (was natürlich nirgendwo steht, und mir einige graue Haare gebracht hat).

      Die erstellten Konfigurationen mit den Filenamen config_XXX stellen jeweils ladbare Effekte mit dem Label "ladspa_dsp:XXX" dar. Ist man soweit, kann man versuchen die in Pulseaudio zu laden:

      Code:
      ~$pacmd load-module module-ladspa-sink sink_name=dsp master=alsa_output.pci-0000_00_1b.0.iec958-stereo plugin="ladspa_dsp" label="ladspa_dsp:IIR" channels=2
      Welcome to PulseAudio! Use "help" for usage information.
      ~$  
      ~$ pacmd load-module module-ladspa-sink sink_name=dsp master=alsa_output.pci-0000_00_1b.0.iec958-stereo plugin="ladspa_dsp" label="ladspa_dsp:FIR" channels=2
      Welcome to PulseAudio! Use "help" for usage information.
      ~$
      Bekommt man dabei keine Fehlermeldung, darf ruhig einen kleinen Luftsprung wagen, denn dann wird man damit belohnt:



      Nun kann man bequem bei laufender Musik zwischen seinen erstellten EQs hin- und herschalten, wis ich jetzt erstmal ausgiebig tun werde

      mit Grüßen vom
      ropf
      Angehängte Dateien

      Kommentar

      • Azrael
        Registrierter Benutzer
        • 16.07.2004
        • 473

        #4
        Gehen damit auch Hoch- und Tiefpassfilter mit gezielter Ausgabe über die Ausgänge eine Mehrkanalsoundkarte, beispielsweise um einen Mehrweglautsprecher aktiv zu trennen?

        Viele Grüße,
        Azrael

        Kommentar

        • albondiga
          Registrierter Benutzer
          • 18.06.2004
          • 1111

          #5
          oben steht
          Code:
          input_channels=2
          output_channels=2
          lässt darauf schließen, das da was gehen könnte. Ansonsten müsste Jack ein Signal auf mehrere Kanäle kopieren können, stichwort 'routing'.
          Kerze: "Wasser soll gefährlich sein!?!". Andere Kerze: "Kannste von ausgehen!"

          Kommentar

          • ropf
            Registrierter Benutzer
            • 03.12.2013
            • 841

            #6
            Zitat von Azrael Beitrag anzeigen
            Gehen damit auch Hoch- und Tiefpassfilter mit gezielter Ausgabe über die Ausgänge eine Mehrkanalsoundkarte, beispielsweise um einen Mehrweglautsprecher aktiv zu trennen?
            Ja das geht - aber machen würd ich es trotzdem nicht. Es gibt immer irgendeine App, die am tollen Setup vorbei ein Fullrange Signal auf den Tweeter schickt ...

            Bei meinem obigen Test gab es Probleme in Verbindung mit Rythmox - dem eingebauten Player, der auch vorher schon öfter mal durch "Glitches" aufgefallen war. (Ein Blick ins Syslog zeigt heftige Beschwerden seitens Alsa die Samplerate betreffend)

            Die Verwendung von 44,1kz Material mit dem nur mit 48kHz arbeitenden FIR Filter (zudem in Pulse auf recht hoher Ebene angesiedelt), in Verbindung mit heftigem Hin- und Herschalten - hat mein System "etwas" verwirrt.

            Da ich die Module inzwischen in die Pulse config eingetragen hatte - ohne Absicherung, ob das Laden der Module evtl. fehlschägt oder ob sie gar schon geladen sind - wurde es noch richtig lustig. Ständig neustartender Soundserver ... manchmal erschienen die Filter sogar "in Kette" hintereinander

            Das normale Soundsystem von Ubuntu ist ziemlich ausgefeilt. Es kommt ohne Probleme mit dynamisch angestöpselten Geräten wie Bluetooth-Kopfhörern, USB-Geräten, dem SPDIF-Ausgang meiner Dockingstation usw. klar - und auch wenn man sie im laufenden Betrieb einfach abzieht - ohne dass ein Eingriff seitens des Users erfolgen muss.

            Die Frage ist - wo und wie integriert man hier eine Effekt-Chain - ohne die Flexibilität und Robustheit des Systems zu untergraben?

            Kommentar

            • ropf
              Registrierter Benutzer
              • 03.12.2013
              • 841

              #7
              Nur halb zum Thema - weiter oben hab ich von einem 1024-tap FIR Filter gesprochen. Wer schon mal mit FIR Raumkorrektur experimentiert hat, mag sich vielleicht über die geringe Anzahl Taps wundern - sind doch 16000 bis 65000 weit üblicher ...

              Den Filter hab ich mit DRC-FIR erstellt auf Basis der mitgelieferten erb.drc. Das ist eine Konfigurationsbasis mit minimalem Eingriff, für die der Autor geringstmögliche Einschränkung des Hörplatzes reklamiert.

              Beim Anschaun der Filter mit einem Audioeditor zeigte sich, dass tatsächlich nur ~1000 Samples relevantes Signal enthalten ... also fix zugeschnitten (wir wollen ja keine CPU-Zeit verschwenden, indem wir Nullen multipizieren) und zum Test des ladspa_dsp verwendet...

              Ich bin wirklich baff, was mit so einem kurzen Filter geht - so gut hab ich das mit parametrischen EQs noch nie hinbekommen. Ein Vergleich der Messungen hängt unten dran.

              Der subjektive Eindruck: perfekt ist es noch nicht. Es klingt erstmal ein wenig dumpf, was daran liegen mag, dass der Filter Bässe pusht, die die LS nicht hergeben, oder am leicht fallenden Frequenzgang, oder an den bisherigen Hörgewohnheiten. Aber was wirklich auffällt, ist die Klarheit der Stimmen und die Lokalisierung - Musik oder auch ein Filmchen am PC machen jetzt richtig Spaß

              Dabei ist die Umgebung bestimmt nicht einfach. Die Boxen selbst sind alles Andere als toll und stehen mit dem Rücken zur Wand auf dem Schreibtisch - die Reflexionen sind in den Impulsantworten überdeutlich. Aber mit dem Parametertuning geht da bestimmt noch mehr!

              In diesem Zusammenhang wird vielleicht der neue Minidsp 2x4 HD interessant. Mit seinem Shark Prozessor sollter er die paar Taps in Stereo problemlos rechnen können (womit der Vorgänger hoffnungslos überfordert wäre) - und mit seinen digitalen Eingängen ist er für den Anschluss am PC geradezu prädestiniert.

              Also - wenn ich nicht bald ein Setup mit ladspa_dsp hinbekomme - dass sich automatisch aktiviert, wenn ich den Laptop in die Dockingstation setze - und auch keine Probleme macht, wenn ich im laufenden Betrieb oder im Schlummerzustand abdocke - gönn ich mir so ein Teil

              begeisterte Grüße vom
              ropf
              Angehängte Dateien

              Kommentar

              Lädt...
              X