Sound, Höhen und Tiefen mit GUI live verändern?

pit234a

Well-Known Member
Was ich dazu in SOUND(4) gefunden habe, ist dies da und das verstehe ich vielleicht nicht und habe es falsch gemacht, oder es funktioniert bei mir ganz und gar nicht:
EQ
The Parametric Software Equalizer (EQ) enables the use of “tone” controls
(bass and treble). Commonly used for ear-candy or frequency compensation
due to the vast difference in hardware quality. EQ is disabled by
default, but can be enabled with the hint.pcm.%d.eq tunable.

hint.pcm.%d.eq
Set to 1 or 0 to explicitly enable (1) or disable (0) the
equalizer. Requires a driver reload if changed. Enabling this
will make bass and treble controls appear in mixer applications.
This tunable is undefined by default. Equalizing is disabled by
default.
Vielleicht habe ich das falsch umgesetzt. Wie realisiere ich dies korrekt? Als sysctl Variable existiert kein solcher Eintrag bei mir, den ich neu setzen könnte und Kernel-Modul scheint es dazu auch keines zu geben (FreeBSD 8.4).

Was ich bereits tue, ist die Beeinflussung der Lautstärke und zwar getrennt für Links und Rechts mittels eines "Mixer" Programms, derzeit nehme ich xfce4-mixer. Das gelingt bei allen Applikationen, die Sound benutzen, live und direkt. Unabhängig davon haben viele Programme eigene Lautstärken-Regler realisiert, die ähnlich wirken.
VLC hat zusätzlich einen grafischen Equalizer integriert, womit sich auch Höhen und Tiefen in unterschiedlichen Frequenzbereichen lauter oder leiser einstellen lassen. Die Grafik ist einem Mischpult nachempfunden.
Genau so etwas hätte ich gerne außerhalb von VLC, direkt auf die Soundausgabe wirkend und live und grafisch und quasi übergeordnet zu den laufenden Programmen, die Sound erzeugen.

In den Ports habe ich natürlich bei audio gesucht, aber rein vom Namen her verrät sich da keine Anwendung und ich finde auch keine Hinweise im Netz. Es gibt offenbar eine Lösung für Pulse-Audio, die ich in den Ports nicht finden konnte.

Gibt es da was?

Falls es eine Rolle spielt, ich nutze snd_es137x.ko
 
Die hints sind keine Sysctl-Variablen, sondern Werte, die in der Datei /boot/device.hints hinterlegt werden müssen.
Das steht auch so in der Manpage.

Rob
 
Ah, danke. Das hat mich weiter gebracht. Nachdem das erst mal klar war, konnte ich nun meine weiteren Fehler eliminieren und es funktioniert nun, viel bescheidener als im VLC, aber ausreichend für meine Bedürfnisse.

Mein erster, entscheidender Fehler war, dass ich "%d" nicht mit "0" für meine Karte ersetzt hatte. Ich hatte angenommen, %d würde dann für alle vorkommenden Karten stehen können und man müsse es nicht ersetzen. Das war falsch.
Mein zweiter Fehler war, dass ich die neuen Einsteller für Bass und Höhen automatisch in meiner Mixer GUI erwartet hatte. Stattdessen musste ich sie aber erst auswählen und aktivieren. Interessanterweise kann man die Einstellungen auch für Rechts und Links trennen.

Also, nochmals danke.
 
Schau mal hier: https://forums.freebsd.org/threads/solved-sound-equalizer-help-request.44743/

Eine GUI für die Einstellungen ist mir nicht bekannt. Ich habe aber auch mal gelesen, dass man die Frequenzen und Güte des Filters für Bässe und Höhen via sysctl anpassen können sollte. Ah, hier ist es schon, Punkt 3: http://people.freebsd.org/~ariff/SOUND_4.TXT.html

Das letzte Dokument ist aber schon recht alt... Eben aus der Zeit als das neue Soundsystem in FreeBSD Einzug nahm.

Edit: OK, scheinbar geht es doch in der GUI :D
 
Hier ist übrigens eine gute Erklärung wie man die Funktionsweise der Regler einstellen kann: http://wiki.jriver.com/index.php/Parametric_Equalizer

Wenn der EQ auf PEQ eingestellt ist (Standard), ist die Grafik ganz hilfreich. Der Text über der Grafik beschreibt die Funktionsweise. Im Absatz drunter ist die Funktionsweise von SHELF erklärt und es wird noch auf eine Grafik von Wikipedia hingewiesen. SHELF ist eigentlich ganz nett, wenn man z. B. möchte, dass der komplette Bass unter 200Hz lauter sein soll und nicht nur ein bestimmer Bereich wie beim PEQ.
 
Danke für die Hinweise.

"Früher" hatten wir solche Dinger gelegentlich zusammen gebastelt und das war nicht sehr kompliziert. Mittels einiger Frequenz-bestimmender Teile wurden Bandpässe gebaut und die jeweiligen Frequenzbänder über einen Op-Amp gegeben. Anschließend alle Bänder auf einen addierenden Verstärker, ebenfalls eine einfach Grundschaltung mit einem Operationsverstärker. Meine Lieblinge waren rauscharme Typen mit J-Fet Eingang, aber mehr weiß ich dazu nicht mehr.
Mit einigen weiteren Effekten bestückt, konnte so ein einfaches kleines Mischpult oder eben ein Equalizer gebastelt werden.
Viel habe ich damit nicht gemacht, denn mein Credo war, dass ich lieber gute Boxen baue, die solche Korrekturen nicht nötig haben.
Die kleinen Mini-Boxen, die ich noch heute benutze, sind ebenfalls Eigenbau. Recht schäbig und schlampig zusammen geleimt mit einer kleinen Endstufe drin und einem sehr einfachen Eigenbau-Netzteil bestückt, laufen die Dinger seit ziemlich genau 30 Jahren dauerhaft am Stück ohne Problem. Probleme machen eher meine Ohren, die immer schlechter werden und daher auch mein Wunsch, etwas am Klang zu verändern.
Bei manchen Filmen verstehe ich die gesprochenen Worte schlecht und muss dann lauter drehen, wodurch aber Bass unbotmäßig überbetont wird und andere Leute im Haus stört. Mit der frequenzabhängigen Manipulation habe ich eine einfache Lösung.

Allerdings finde ich es schon ein wenig schade, dass die "einfache Handarbeit" von damals offenbar nicht so einfach in SW zu wandeln ist und sich deshalb keine entsprechenden Programme mit mehreren Frequenzbereichen zum Tunen finden. Dabei müssten doch viele Musik-Affine und -Schaffende Wert auf solche Einsteller legen. Wahrscheinlich ist HW immer noch dominierend und wenn vorhanden, natürlich auch schnell und einfach bedienbar und geht ganz ohne eine einzige Zeile Code.
Andererseits haben etwa XMMS und VLC entsprechende Plugins realisiert, was darauf schließen lässt, dass es auch SW-technisch gelöst ist und es einfach keinen Bedarf für unabhängig arbeitende Programme mit GUI gibt.
 
Du musst halt zwischen dem Programm das etwas wiedergibt und dem Soundtreiber hängen um dazwischen was rumzufriemeln oder du musst das in den Soundtreiber einbauen.
 
Oder Windows benutzen ;) Da gibt es mittlerweile einen Equalizer (http://sourceforge.net/projects/equalizerapo/), der sich ins gesamte System einklinkt, so dass jedes Programm darüber laufen muss. Equalizer an sich gibt es wie Sand am Meer! Jedoch funktionieren die dann meist nur innerhalb einer einzigen Anwendung... Oder aber sie sind als VST-Plugin oder dergleichen gebaut und das wiederum ist Zeugs fürs Studio.
 
Back
Top