Hi,
ich habe mein Problem selber lösen können. Hier mein Lösungsweg mit ein paar Erläuterungen:
- Ich habe mich an die Anleitung von phx vom 02. September 2018 gehalten (hier in diesem Beitrag).
- Die Datei /etc/asound.conf enthält systemweite Angaben für ALSA, also unabhängig vom User. Oftmals wird im Internet auch auf Einstellungen in der Datei ~/.asoundrc verwiesen. Die dort getätigten Einstellungen sind nur für den jeweiligen Benutzer. Für meine Installation muss die Datei ~/.asoundrc gelöscht werden (war auch nicht vorhanden). Die Datei asound.conf war ebenfals nicht vorhanden, diese muss jedoch angelegt werden.
- pulseaudio wird in der Regel auf User-Ebene genutzt. Jeder User kann dann seine eigenen Einstellungen abspeichern. Dies erfolgt in der Datei /etc/pulse/default.pa . In diesem Fall wird pulseaudio als systemweite Installation genutzt. Die Einstellungen müssen daher in der Datei /etc/pulse/system.pa vorgenommen werden.
- Als sink wird bei den folgenden Befehlen auch eine Ausgabe "..... .monitor" ausgegeben. Dabei handelt es sich um einen Kanal zur Aufnahme des gerade ausgegeben Musikstücks. Dies ist für die weitere Betrachtung nicht relevant und habe ich daher nicht weiter berücksichtigt.
- Soundcard IQaudIO Codec gemäß Anleitung installiert.
Für ALSA habe ich Pulseaudio als default eingetragen, in dem ich die Datei asound.conf mit folgendem Inhalt erstellt habe.
### PulseAudio als default setzen
# asound.conf hat systemweite Auswirkungen
# .asoundrc bleibt auf den User beschränkt
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
# Aus PerfectSetup für PulseAudio
pcm.default pulse
ctl.default pulse
Alles anzeigen
In vielen Beiträgen wird die Schreibweise pcm.!default verwendet. Auf den Seiten von freedesktop.org wird für das perfekte Setup von pulseaudio jedoch die vorgenannte Schreibweise empfohlen [1].
Mit dem Befehl aplay -l (kleines L) erhält man die Liste der eingesetzten Hardware.
Bei mir ist es Karte 0 und Gerät 0. Diese Angaben sind auch in der folgenden Datei bereits gesetzt. Ansonsten müst ihr diese anpassen:
...
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
....
Abweichend von phx sieht meine Datei system.pa wie folgt aus:
#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# This startup script is used only if PulseAudio is started in system
# mode.
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
### GK
load-module module-alsa-sink device=hw:0,0
load-module module-alsa-source device=hw:0,0
### GK echo cancellation
load-module module-echo-cancel sink_master=alsa_output.hw_0_0 source_master=alsa_input.hw_0_0 aec_method=webrtc sink_name=doorpisink source_name=doorpisource use_master_format=true aec_args="analog_gain_control=false digital_gain_control=false noise_suppression=false high_pass_filter=false mobile=true routing_mode=loud-speakerphone comfort_noise=false"
set-default-sink doorpisink
set-default-source doorpisource
### GK die automatische Erkennung der Hardware deaktiviert
### Automatically load driver modules depending on the hardware available
#.ifexists module-udev-detect.so
#load-module module-udev-detect
#.else
### Use the static hardware detection module (for systems that lack udev/hal support)
#load-module module-detect
#.endif
### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix
### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
# GK bei phx nicht vorhanden: load-module module-card-restore
### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent modules
### that look up the default sink/source get the right value
load-module module-default-device-restore
### Automatically move streams to the default sink if the sink they are
### connected to dies, similar for sources
load-module module-rescue-streams
### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink
### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle
### Enable positioned event sounds
load-module module-position-event-sounds
Alles anzeigen
- Mit den Modulen module-alsa-sink bzw. module-alsa-source habe ich die Karte mit den beiden Zahlen für Karte und Gerät fest vorgegeben.
- mit sudo pactl list erhält man eine Liste der geladenen Module, Quellen und Ziele. Mit sudo pactl list wird die Ausgabe gekürzt dargestellt.
- Das Modul zur Echo-Cancellation:
- sink_master bzw. der source_master ist jeweils die unbearbeitete Version.
- source_name bzw. sink_name sind die bearbeitete Version
- für die feste Vorgabe von Karte und Gerät verwendet das Modul leider eine andere Syntax, daher die Unterstriche.
- Die Zeile muss ohne Umbrüche, Zeilenvorschub oder dergleichen geschrieben werden!
- Ich habe die Werte "true" und "false" verwendet. Es müsste auch mit "0" bzw. "1" gehen.
- die automatische Erkennung der Hardware durch pulseaudio habe ich abgeschaltet.
Mein Aufruf von sudo pactl info sieht dann wie folgt aus:
Das Echo ist damit bei mir eleminiert. Die Lautstärke kann ich über sudo alsamixer einstellen.
Wie bereits in meinem vorhergehenden Beitrag beschrieben, habe ich lange gesucht. Ob alles so wirklich richtig ist - mir egal, es läuft. Wenn mir jemand noch etwas erklärt oder eine Korrektur hat - gerne, man wird nicht dümmer.
Gruß