PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tonqualität mit Alsa und Pulseaudio?



f_m
28.04.12, 09:30
Kurzum, ich bin mit der Qualität unter Alsa (mit der openSUSE Standardkonfiguration) unzufrieden - da ich mich bisher auch nicht intensiv bzw. kaum mit dem Soundsystem auseinandergesetzt habe weiß ich auch nicht so recht wo man da am Besten ansetzt.

Die verwendete Hardware ist eher aus dem billigen Bereich (ALC 892 onboard Sound und ältere Logitech 5.1 Boxen) aber das ist im Grunde nicht das Thema da ich weiß daß auf genau dem System wesentlich bessere Qualität möglich ist indem ich den OSS4 Treiber von 4Front statt Alsa installiere.
Damit bekomme ich deutlich reineren Klang raus, unter Alsa wirkt das alles etwas verwaschen, Bässe dröhnen mehr, einzelne Instrumente sind schlechter oder gar nicht herauszuhören. Dasselbe Ergebnis hab ich auch auf anderen Systemen (alter PC und Laptop) bemerkt.

Stellt sich natürlich die Frage warum ich nicht einfach weitermache mit dem OSS 4 ...
das Umkonfigurieren aller Anwendungsprogramme die nur noch auf Alsa ausgelegt sind ist einfach mühsam, zudem hab ich unter OSS nie das MIkrofon zum Laufen gebracht und mit Flash & Co gibt es auch nur Ärger.

Daher würd ich gern das Alsa mit der Qualität die OSS auch schafft zum Laufen bekommen.. bin für Alle >Vorschläge dankbar ;)

Newbie314
28.04.12, 10:39
Es gibt Alsa Konfigurationsdateien. Dummerweise bin ich da nie richtig durchgestiegen (die Doku die ich gefunden habe war einfach schlecht erklärt).

Eventuell und wenn du wirklich bereit bist stundenlang zu experimentieren könntest du versuchen die Spezialitäten (Abtastfrequenzen etc. ) deiner Hardware mit diesen Treibern genau zu konfigurieren, was die Klangqualität erhöhen würde.

Ich muss ehrlich sagen dass mir das zu viel Aufwand wäre, ich würde in dem Fall einfach andere Hardware anschaffen.


Solltest du das tun und Erfolg haben wäre ein Tutorial hier nicht schlecht, wie gesagt: die Info die ich ergoogelte reichte für meine Intelligenz nicht aus um das Ganze zum Laufen zu bringen.

ThorstenHirsch
28.04.12, 10:44
Die on/off-switches im alsamixer ("IEC958" und so'n Kram) hast du wahrscheinlich schon ausprobiert, oder? Damit kann man bspw. den upmix von 2 auf 4 Kanäle aktivieren/deaktivieren und ich kann mir vorstellen, dass diese ganzen Spielereien die Tonqualität verschlechtern...

simpleminds
28.04.12, 14:17
http://www.google.com/search?hl=en&source=hp&biw=1920&bih=878&q=alsaequal&btnG=Google+Search
Alsaequal, oder ähnliches vielleicht? Gut für den mplayer.
Andere mediaplayer haben ihre eigenen equalizer.

f_m
28.04.12, 16:21
Danke schon mal für die Tipps, IEC958 gibt es bei mir im alsamixer nicht.. habe dort auch ansonsten außer mal das Mikro an und auszumachen nicht groß rumgeschraubt.

Im Moment probier ich gerade mit audacious (ein simpler audioplayer wie der alte xmms); standardmäßig gibt der wie Alles bei SuSE über pulseaudio aus mit fürchterlichen Nebengeräuschen, ständiges Knistern und einem insgesamt verwaschenen Klangbild. Wenn ich das umstelle auf Ausgabe direkt über ALSA ist das um Welten besser.
Leider ist damit auch die SOundkarte blockiert und nicht mehr für andere Anwendungen verfügbar :ugly:

Kann das sein, daß pulseaudio dermaßen schlecht mixt? Kennt da wer bessere Alternativen? Seltsamerweise verwurstet pulse den Ton sogar dann wenn eh nur ein Programm Ton ausgibt also gar nichts zusammengemischt werden muß...

Newbie314
28.04.12, 17:07
Bei mir funktioniert es eigentlich.. Qualität entspricht meiner Hardware.

Nur meine Wünsche zur individuellen Konfiguration von drei Soundkarten konnte ich nicht so einfach verwirklichen...

Oder solche Spielchen wie ein Micro an eine Virtual-Box VM durchzureichen etc... habe einfach weder die Zeit noch den Nerv da ewig rumzufrickeln...

undefined
28.04.12, 17:20
Kurzum, ich bin mit der Qualität unter Alsa (mit der openSUSE Standardkonfiguration) unzufrieden - da ich mich bisher auch nicht intensiv bzw. kaum mit dem Soundsystem auseinandergesetzt habe weiß ich auch nicht so recht wo man da am Besten ansetzt.
..........

Da bist du nicht der Einzige...
Als ich mit meinem Betriebssystem auf ein neue HW umgestiegen bin hatte ich mit HDA Azali Ehemals (via8235) auch so meine Problemchen gehabt. Die HDA Karten sind nicht dmix Tauglich was das Problem um so ernster macht.

Früher hatte ich mit dmix eine Pulse Spur und zwei pcm.*equalizer Spuren. Damit konnte man mal so richtig tricksen und Qualität heraus kitzeln.

Es gibt Natürlich die Möglichkeit auch mit Pulse einen Vernünftigen Sound hin zu bekommen. Aber lass dir gesagt sein das macht ne Menge Testen und ein bisschen Sachverstand von C Sollte man haben. Es wird Dir nämlich auch das gleiche Passieren wie mir. Loops und Speicherzugriffs Fehler.

Lange rede kurzer Sinn...
Gehe wie folgt vor...

Pulse abschalten und erst mal Alsa richtig Konfigurieren
Bei SuSE die /etc/profile.d/pulseaudio.*sh Löschen oder Leeren
Eine Neue /etc/profile.d/asound.sh Erstellen Damit sie nicht von Yast Überschrieben wird!
Die Verwendung von pulesaudio in kmix verhindern! export KMIX_PULSEAUDIO_DISABLE=1
Wir benötigen ladspa also export LADSPA_PATH=/usr/lib/ladspa
systemd's Alsa Config Überschreiben export ALSA_CONFIG_PATH=/etc/asound.conf
Das Verzeichnis /etc/alsa erstellen und Konfiguration für jede Karte hier ablegen. (Damit wird ein Überschreiben verhindert!)

Zuerst eine eigene /etc/modprobe.d/50-sound.conf und die Karten mit index (Das ist WICHTIG) erstellen.
Bei mehreren hda Karten muss grub mit ins Spiel kommen
grub CMD Eintrag


snd.slots=snd-hda-intel,snd-hda-intel

/etc/modprobe.d/50-sound.conf Beispiel


# Mainboard Soundkarte VT1818S (Intel HDA)
alias sound-slot-0 snd-card-0
alias snd-card-0 snd-hda-intel

# HDMI Ausgang der NVidia Karte
alias sound-slot-1 snd-card-1
alias snd-card-1 snd-hda-intel

options snd-hda-intel index=0,1 id=Karte0,Karte1


Wenn die Karten Sauber geladen werden und die Indexes Stimmen.
Siehe aplay -l dann eine Neue /etc/asound.conf erstellen
Ein Beispiel Inhalt!


####################################
## Hook
####################################
@hooks [
{
func load
files [
"/etc/alsa/00-card0.conf"
"/etc/alsa/01-sound.conf"
"/etc/alsa/04_lavcrate_plugin.conf"
"/etc/alsa/04_samplerate_plugin.conf"
"/etc/alsa/04_speexrate_plugin.conf"
"~/.asoundrc"
]
errors false
}
]

pcm.!default {
type plug
slave.pcm "audioausgabe"
}

<confdir:alsa.conf>

## EOF


Jetzt kommt der Trick
Du kannst mit Alsa ladspa verwenden. Das geht zwar auch mit Pulse aber ist so Schei... umgesetzt das ich es direkt wieder verworfen habe. Man kann keine Zeilenumbrüche verwenden:ugly:
Wichtig - Vergiss die Konfiguration


pcm.pulse {type pulse}
ctl.pulse {type pulse }

Das wird mit der neuen Konfiguration einen Loop erzeugen der dein ganzes System aufhängt! - Warum wirst du Später verstehen ;)

Erstelle eine Karten Konfiguration.
z.B.: /etc/alsa/00-card0.conf
Zur Erinnerung - der index wurde in der modprobe Konfiguration vergeben ;)


pcm.Karte0 {
type hw
card 0
device 0
subdevice -1
}

ctl.Karte0 {
type hw
card 0
}

testen z.b: mit aplay -v -Dplug:Karte0 /usr/share/sounds/alsa/test.wav

Danach ein DMIX Plugin erstellen une einen Equalizer einbauen!


################################################## #################
# Audio ueber Equalizer Ausgeben
################################################## #################
## aplay -vv /usr/share/sounds/test/ibanez.wav

pcm.audiodmix {
type dmix
ipc_key 2009094 ## Muss Unique sein!
slave {
pcm Karte0 ## Auch wieder index
period_time 0
period_size 1024
buffer_size 8192
format S16_LE
rate 48000 ## Kann meine Karte 48000?
}
bindings {
0 0
1 1
}
slowptr true
}

ctl.audiodmix {
type hw
card 0
}

pcm.audioequalizer {
type ladspa
slave.pcm plug:audiodmix
path "/usr/lib/ladspa/"
playback_plugins {
0 {
id 2594
name "Equalizer"
label "Eq2x2"
filename "/usr/lib/ladspa/caps.so"
policy none
input {
controls {
0 -24 # 31 Hz @modified(2011/01/05) 48 > 24
1 -16 # 63 Hz @modified(2011/01/05) 24 > 16
2 -4 # 125 Hz @modified(2011/01/05) 8 > 4
3 -2 # 250 Hz
4 1 # 500 Hz @modified(2009/06/22) 0 > 1
5 2 # 1 kHz @modified(2009/06/22) 0 > 2
6 1 # 2 kHz @modified(2009/06/22) 0 > 1
7 0 # 4 kHz
8 0 # 8 kHz
9 0 # 16 kHz
}
}
}
}
}

## aplay -vDplug:audioausgabe /usr/share/sounds/test/ibanez.wav
pcm.audioausgabe { ## Siehe /etc/asound.conf
type asym
playback.pcm "audioequalizer"
}


Du kannst so viele Filter und Plugins Hintereinander hauen wie du Lust und Laune hast. Es gibt bei ladspa so um die 1000 Stück ;)
Siehe /usr/bin/listplugins und /usr/bin/analyseplugin
z.B.:

analyseplugin caps.so Eq2x2

Wennn das alles funktioniert geht zu pulse!

Jetzt geht das Pulse Geraffel los
Pulse hat die Zwanghafte Eigenschaft dem Benutzer die Konfiguration ab zu nehmen.
Das kann einen zu Wutausbrüchen bringen! (Am besten vorher mal Tief einatmen) ;)

Ziel ist es Pulse bei zu bringen nicht Direkt auf die Hardware zu zugreifen sondern die alsa:default zu verwenden!

Dafür müssen erst mal die pulse module entfernt werden die das ganze von vorn herein verhindern.
Dazu zählen die udev und hal Module etc. also Einträge wie "load-module module-udev-detect" .... Auskommentieren.

Auch unter pulse muss man jetzt einen index erstellen!
Dazu verwenden wir module-alsa-card
Ein "pacmd list-modules | grep alsa" wird zu diesem Zeitpunkt nicht Funktionieren. Deshalb hier die Infos:


argumente fuer module-alsa-card:
device_id="0"
name="PulseStandard"
card_name="default"
ignore_dB=no
deferred_volume=yes


Default setzen z.B.


set-default-sink PulseStandard
set-default-source PulseStandard


Es gibt so ein nettes Script namens start-pulseaudio-x11 was leider auch heftig in diese Konfiguration herein semmelt!
Abhilfe Mit dem gleichen Namen im eigenen bin Verzeichnis ablegen und darauf achten das die Variable PATH die richtige Reihenfolge aufweist!


#!/bin/sh
#
# Startscript fuer den pulse daemon
#
set -e

## Nur mit laufenden X-Server verwenden!
test -n "$DISPLAY" || exit 0

## Wenn vorhanden nicht starten!
test -f $HOME/.pulse/disabled && {
echo "pulseaudio server disabled by user configuration"
exit 0
}

## pactl
test -x /usr/bin/pactl || exit 1
test -f /etc/pulse/x11_publish.conf || exit 1
test -x /usr/bin/pulseaudio || exit 1

/usr/bin/pulseaudio --start "$@"

. /etc/pulse/x11_publish.conf

ctlbin=/usr/bin/pactl

${ctlbin} load-module module-x11-publish "display=$DISPLAY sink=$sink source=$source" > /dev/null || true

${ctlbin} load-module module-x11-cork-request "display=$DISPLAY" > /dev/null || true

## X-*-Greeter
test -n "$SESSION_MANAGER" || exit 0

${ctlbin} load-module module-x11-xsmp "display=$DISPLAY session_manager=$SESSION_MANAGER" > /dev/null || true

##eof

Die Variablen $sink und $source lege ich hier in /etc/pulse/x11_publish.conf ab. Die verweisen auf die Standards siehe set-default-sink und set-default-source.

Pulse und das Shared Memory Problem
Wenn man unter pulse Shared Memory aktivieren möchte wird es sehr Wahrscheinlich daran scheitern das die Gruppe audio keinen Schreibenden Zugriff auf /dev/shm hat.
Ein udev acl Script oder ein init Script kann helfen ...


## [PULSEAUDIO/JACK]
## FIXME Pulseaudio und jack können nicht auf Shared Memory zugreifen!
if [ -x /usr/bin/setfacl ] && [ -d /dev/shm ] ; then
echo -n "Setze Shared Memory Berechtigungen fuer pulseaudio und jackd..."
/usr/bin/setfacl -m group:audio:rwx /dev/shm
rc_status -v
fi


Es müssen zusätzlich noch die Limits verändert werden!
Weitere Infos zu Realtime http://www.linuxmusicians.com/viewtopic.php?f=10&t=2193

So das war es auf die Schnelle hoffe es hilft etwas.
Jedoch lass dir gesagt sein - Diese info ist nur Grob angekratzt. Es wird einiges an testen Kosten bist du deine gewünschte Qualität erreicht hast.

f_m
29.04.12, 09:58
:eek: Ok, das is ja noch schlimmer als befürchtet... ich warte dann mal auf das nächste verregnete Wochenende :D

ThorstenHirsch
29.04.12, 10:51
Aber schöne Zusammenfassung, undefined. Vielen Dank!

spychodelics
01.05.12, 11:54
Nur kurz von meiner Seite aus, ich installiere unter archlinux

pulseaudio
libpulse
paprefs
pavucontrol
pulseaudio-alsa

Starte paprefs und pavucontrol und mache meine Einstellungen fertig, meine Audigy2ZS
läuft. Noch meine Anwendungen smplayer / vlc / mpd auf pulse umgestellt und basta.

Einziges was ich noch geaendert habe weil ich lfe haben wollte 2 einstellungen in der Konfig gemacht.

Bombensound kann ich nur sagen.


Hier fand ich alle für mich nötigen Informationen


https://wiki.archlinux.org/index.php/Pulseaudio
http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/PerfectSetup
http://wiki.ubuntuusers.de/PulseAudio

Rain_maker
16.05.12, 23:32
..... Gut für den mplayer.
Andere mediaplayer haben ihre eigenen equalizer.

MPlayer hat auch "seinen eigenen" Audio-Equalizer (siehe "man mplayer"), mit einer Zeile


af=equalizer=Wert1:Wert2:......Wert9:Wert10in ~/.mplayer/config auch persistent zu bekommen.

Greetz,

RM