Wie bekomme ich 5.1 Sound mit SB Audigy?

cabriofahrer

Well-Known Member
5.1 Sound mit dem Onboard HDA Chip funktioniert, allerdings ist die Qualität nicht besonders. Aus diesem Grund habe ich einfach mal eine alte SB Audigy eingebaut, doch leider funktionieren nur die beiden Frontlautsprecher. Hier einige Daten:

Code:
$ cat /dev/sndstat
Installed devices:
pcm0: <EMU10Kx DSP front PCM interface> (play/rec) default
pcm1: <EMU10Kx DSP rear PCM interface> (play)
pcm2: <EMU10Kx DSP center PCM interface> (play)
pcm3: <EMU10Kx DSP subwoofer PCM interface> (play)
pcm4: <NVIDIA (0x0060) (HDMI/DP 8ch)> (play)
pcm5: <NVIDIA (0x0060) (HDMI/DP 8ch)> (play)
pcm6: <NVIDIA (0x0060) (HDMI/DP 8ch)> (play)
pcm7: <NVIDIA (0x0060) (HDMI/DP 8ch)> (play)
pcm8: <Analog Devices AD1988B (Analog 7.1/2.0)> (play/rec)
pcm9: <Analog Devices AD1988B (Front Analog Headphones)> (play)
pcm10: <Analog Devices AD1988B (Rear Digital)> (play)
pcm11: <USB audio> (play/rec)

Wie man sieht, werden hier für die SB Audigy vier Pcm-Devices erstellt, wahrscheinlich nutzen dann Anwendungen wie xine oder ETQW nur pcm0, also nur front, während HDA (dies wäre pcm8) offensichtlich alle Kanäle in einem pcm integriert hat. Scheint daher logisch, dass mit der Audigy nur die Front-Lautsprecher funktionieren.

Wie kann man also die Anwendungen dazu bringen, alle Kanäle zu nutzen, also pcm0-3?

In man snd_emu10kx steht:

Code:
MULTICHANNEL PLAYBACK
     By default the snd_emu10kx driver is loaded with multichannel playback
     capabilities enabled.  If you do not set the
     hint.emu10kx.0.multichannel_disabled option in your loader.conf(5) con-
     figuration file you will get up to five DSP devices, one for each sound
     card output.  You can use additional software (like audio/pulseaudio from
     The Ports Collection) to do sound stream demultiplexing.  Only ``FRONT''
     output can play and record sound from external sources (like line or
     S/PDIF inputs).

Ist das der richtige Hinweis? Habe daraufhin Pulseaudio installiert und als user Pulseaudio gestartet:

$pulseaudio &

doch keine Änderung. Ich hoffe, Ihr könnt helfen? Danke im Voraus!
 

Yamagi

Possessed With Psi Powers
Teammitglied
Gar nicht. :) Mit OSS ist Surround / Multichannel Playback so gedacht, dass die Anwendung einen Stream mit mehreren Kanälen auf /dev/dspX.Y schreibt. Der Kernel dekodiert diesen Stream und ordnet ihn anhand einer Kanal<->Ausgangs-Matrix den verschieden Ausgängen zu. Die 3 oder 4 Ausgänge sind dann wie gewöhnlich mit den entsprechenden Eingängen der Endstufe verbunden.
Nur leider nutzt bis heute nur snd_hda dieses "korrekte" Multichannel Playback, die anderen Soundtreiber sind nie konvertiert worden. Es liegt wohl am mangelnden Interesse, da für einen absoluten Großteil der Nutzer die Onboard-Codecs ausreichend sind und sie daher keine anderen Karten mehr einsetzen. Mein aktuelles Board hat beispielsweise schon recht guten (aber bei weitem nicht herausragenden) Sound. Wer höhere Ansprüche hat, nimmt dann meistens gleich einen per USB angeschlossenen DAC, snd_uaudio unterstützt da nahezu alle. snd_em10kx implementiert Multichannel Playback daher so, dass für jeden Ausgang eine Soundkarte emuliert wird. Ein Soundserver demultiplext den Stream und schreibt die jeweiligen Kanäle auf die zugehörigen /dev/dsp Devices.

Ich habe das vor ~7 Jahren oder so mal gemacht, bin dann aber recht schnell auf ein anderes Setup gewechselt. Leider habe ich die Konfiguration nicht mehr. Du brauchst:
  • Einen Soundserver, aufgrund der Kompatibilität heute meist Pulseaudio. Das Ding muss dann konfiguriert werden die jeweiligen Kanäle auf das zugehörige /dev/dsp Device zu schreiben. Leider ist Pulseaudio relativ eklig zu konfigurieren und auch noch schlecht dokumentiert. Halb zu empfehlen ist das Arch-Wiki: https://wiki.archlinux.org/index.php/PulseAudio
  • Die Anwendung muss konfiguriert werden Pulseaudio statt OSS zu nutzen. Wie das geht, hängt sehr vom Programm ab. Zum Glück können inzwischen fast alle Anwendungen Pulseaudio...
 

zuglufttier

Well-Known Member
Ich habe übrigens schon einiges an Kohle für Soundkarten, CD-Player, Verstärker und so'n Kram ausgegeben und konnte ernüchtert feststellen, dass heutzutage die verbauten Soundkarten im Normalfall vollkommen ausreichend sind. Vor allem, wenn es um Lautsprecher geht, die nicht perfekt aufgestellt sind. Ich nutze der Einfachheit halber deswegen ganz gerne die Intel Chips, die sind einfach gut unterstützt.
 

cabriofahrer

Well-Known Member
Vielen Dank für Eure Hilfe, insbesondere für die aufschlussreiche Ausführung von Yamagi. Das mit Pulseaudio ist mir wohl zu kompliziert und in der Tat gibt die angegebene Seite wenig Aufschluss auf das Problem. Welche DAC's, die natürlich mit FreeBSD laufen, könnt Ihr denn empfehlen? Ggf. eines mit XLR-Eingang für Micro? Oder gibt es vielleicht auch PCI-Karten mit HDA-Chip die besonders gut sind?
 

Yamagi

Possessed With Psi Powers
Teammitglied
Ich tue mich immer etwas schwer mit Empfehlungen, da Klangwahrnehmung am Ende immer eine sehr subjektive Sache ist. Aber versuchen wir es mal, ich bleibe allerdings vage. Vorweg sollte man vielleicht noch mal klarstellen, dass vernünftige Audiowiedergabe kein Voodoo ist und man nicht extrem viel Geld in die Hand nehmen muss. Das menschliche Gehör ist einfach nicht so gut, wird sind ganz klar visuell fokussierte Tiere. Man sollte sich an zuglufttier halten. In den meisten Fällen reicht die Onboard-Karte oder ein preiswerter AV-Receiver einfach aus.

Die beste Lösung aus dem Computer ein vernünftiges Surround-Signal zu bekommen, wenn einem die Onboard-Karte nicht ausreicht, ist ein per TOSLINK verbundener AV-Receiver mit entsprechendem Decoder. Damit hat man eine Kette von: Interne Soundkarte -> Digitales Signal über Glasfaser -> Decoder mit integriertem Verstärker -> Lautsprecher. Für Aktivlautsprecher gibt es auch reine Decoder ohne Verstärker, die aber kaum günstiger sind. Das Problem dieser Lösung ist, dass jemand den Datenstrom über das TOSLINK-Kabel entsprechend kodieren muss. Wenn er kodiert vorliegt, zum Beispiel als AC3-Tonspur eines Films, ist das kein Problem. Ansonsten braucht man aber wieder entsprechende Software. Damit ist man dann wieder bei Pulseaudio...

Viele AV-Receiver sind aber auch per USB anschließbar, wodurch sie halt als weitere Soundkarte im System auftauchen. Wenn sie korrekt Surround-Fähigkeit anmelden (Oft ist das leider nicht der Fall, da man für 6 Kanäle die Bandbreite USB 2.0 braucht. Windows unterstützt bis heute ohne weitere Treiber aber nur USB-Audio 1.0.), kann man FreeBSD einfach sagen, dass er Surround nutzen soll und alles ist in Ordnung. Das funktioniert in den meisten Anwendungen und zumindest allen Spielen, die OpenAL zur Soundausgabe nutzen recht problemlos.
 

CommanderZed

OpenBSD User
Teammitglied
Yamagi> @Wörk unter Windows nutzen wir ganz gerne PC -> AV-Receiver HDMI, das geht auch recht gut - hast du das nur nicht aufgezählt da es unter FreeBSD nicht so rund läuft oder überseh ich da qualitativ irgendwas? Evtl. wollte ich das in meinem Wohnzimmer so umsetzen
 

zuglufttier

Well-Known Member
HDMI ist eine gute Lösung; generell kann man sagen, dass alle digitalen Verbindungen technisch nahezu perfekt sind, da kommt es auch nicht drauf an, welche Soundkarte man hat, solange es funktioniert.

Bei den analogen Verbindungen kann es schon mal bessere oder schlechtere Sachen geben. Jedoch spielt sich da sehr viel unterbewusst ab. Wie Yamagi schon schrieb, ist da vieles subjektiv und vor allem durch Erwaltungshaltung geprägt (niedriger Preis = schlechter Sound). Ich traue meinen Ohren da im Normalfall nur noch bedingt und wenn, dann sollte man Blindtests machen, dann kommt im Normalfall dieses Ergebnis dabei raus: http://matrixhifi.com/ENG_contenedor_ppec.htm

Wie gesagt, wer keine perfekt aufgestellten Lautsprecher hat (und wer hat das schon?) und einen entsprechenden Raum mit sehr gut Akustik, dem kann es eigentlich egal sein, welche Soundkarte, analog oder digital, man benutzt. Selbst schlecht konstruierte oder schlecht implementierte Soundchips haben Abweichungen im Frequenzgang von einigen wenigen dB, die man unter Umständen hören kann, jedoch ist das kein Vergleich zu Lautsprechern, die oftmals Schwankungen von 10dB und mehr aufweisen. Und wenn die Soundkarten Schwächen aufweisen, dann eher am unteren oder oberen Ende des Hörspektrums; das wiederum ist auch unproblematisch, da die wenigsten über 16kHz noch richtig was wahrnehmen und bei Musik und Sprache ist da im Normalfall auch nichts los.

PS: Von Rauschen und Störgeräuschen jetzt mal abgesehen!
 

Yamagi

Possessed With Psi Powers
Teammitglied
@Wörk unter Windows nutzen wir ganz gerne PC -> AV-Receiver HDMI, das geht auch recht gut - hast du das nur nicht aufgezählt da es unter FreeBSD nicht so rund läuft oder überseh ich da qualitativ irgendwas?
Ich habe nur nicht dran gedacht. Ich speise meinen Fenseher (ohne AV-Receiver) von FreeBSD aus per HDMI und das geht absolut problemlos.

Sound per DVI? Ganz was Neues.
Eine standardinkonforme Erweiterung, funkltioniert per DVI->HDMI-Adapter aber durchaus. Zumindest unter Windows, woanders habe ich sowas nie gesehen.
 

Illuminatus

in geheimer Mission
Also ein OpenElec auf einem Esprimo E910 habe ich im BIOS so einstellen können, dass der Onboard Sound tatsächlich auch über DVI ausgegeben wurde. Das Kabel ist ein DVI->HDMI Adapter. Mir war das selber auch neu, aber ja, es gibt diese Möglichkeit.
 
Oben