When I install Genie-Client on a RPi4, i can’t get the echo source/sink modules to load using default.pa,
I get the log error - Master source not found/Failed to load module “module-echo-cancel …”
If I load the module manually it works fine
When I install Genie-Client on a RPi4, i can’t get the echo source/sink modules to load using default.pa,
I get the log error - Master source not found/Failed to load module “module-echo-cancel …”
If I load the module manually it works fine
Did you add the “Load Modules…” lines to /etc/pulse/default.pa
?
If not please look at the instruction at Installing a Genie Client on a Raspberry Pi | Genie Wiki This is hardware based so make sure to chose the right lines.
Yep - that was what I meant - I added the lines into /etc/pulse/default.pa
but if I look at the log it says Master source not found/Failed to load module “module-echo-cancel …”
Loading manually works fine
What is the output of:
pacmd list-sources
pacmd list-sink-inputs
What are the lines you added to /etc/pulse/default.pa
?
How are you loading it manually?
Hi
Info below:
pacmd list sources:
pi@raspberrypi:~ $ pacmd list-sources
6 source(s) available.
index: 0
name: <alsa_output.platform-bcm2835_audio.analog-stereo.monitor>
driver: <module-alsa-card.c>
flags: DECIBEL_VOLUME LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 1000
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max rewind: 0 KiB
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
fixed latency: 59.95 ms
monitor_of: 0
card: 0 <alsa_card.platform-bcm2835_audio>
module: 6
properties:
device.description = “Monitor of Built-in Audio Analog Stereo”
device.class = “monitor”
alsa.card = “0”
alsa.card_name = “bcm2835 Headphones”
alsa.long_card_name = “bcm2835 Headphones”
alsa.driver_name = “snd_bcm2835”
device.bus_path = “platform-bcm2835_audio”
sysfs.path = “/devices/platform/soc/3f00b840.mailbox/bcm2835_audio/sound/card0”
device.form_factor = “internal”
device.string = “0”
module-udev-detect.discovered = “1”
device.icon_name = “audio-card”
index: 1
name: <alsa_output.platform-3f902000.hdmi.hdmi-stereo.monitor>
driver: <module-alsa-card.c>
flags: DECIBEL_VOLUME LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 1000
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max rewind: 0 KiB
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
fixed latency: 59.95 ms
monitor_of: 1
card: 1 <alsa_card.platform-3f902000.hdmi>
module: 7
properties:
device.description = “Monitor of Built-in Audio Digital Stereo (HDMI)”
device.class = “monitor”
alsa.card = “2”
alsa.card_name = “vc4-hdmi”
alsa.long_card_name = “vc4-hdmi”
alsa.driver_name = “vc4”
device.bus_path = “platform-3f902000.hdmi”
sysfs.path = “/devices/platform/soc/3f902000.hdmi/sound/card2”
device.form_factor = “internal”
device.string = “2”
module-udev-detect.discovered = “1”
device.icon_name = “audio-card”
index: 2
name: <alsa_output.usb-Antimatter_Research__Inc._Acusis_S_0379-00.analog-stereo.monitor>
driver: <module-alsa-card.c>
flags: DECIBEL_VOLUME LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 1040
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max rewind: 0 KiB
sample spec: s32le 2ch 48000Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
fixed latency: 59.94 ms
monitor_of: 2
card: 2 <alsa_card.usb-Antimatter_Research__Inc._Acusis_S_0379-00>
module: 8
properties:
device.description = “Monitor of Acusis S Analog Stereo”
device.class = “monitor”
alsa.card = “1”
alsa.card_name = “Acusis S”
alsa.long_card_name = “Antimatter Research, Inc. Acusis S at usb-3f980000.usb-1.5, full speed”
alsa.driver_name = “snd_usb_audio”
device.bus_path = “platform-3f980000.usb-usb-0:1.5:1.0”
sysfs.path = “/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/sound/card1”
udev.id = “usb-Antimatter_Research__Inc._Acusis_S_0379-00”
device.bus = “usb”
device.vendor.id = “20b1”
device.vendor.name = “XMOS Ltd”
device.product.id = “ac51”
device.product.name = “Acusis S”
device.serial = “Antimatter_Research__Inc._Acusis_S_0379”
device.string = “1”
module-udev-detect.discovered = “1”
device.icon_name = “audio-card-usb”
index: 3
name: <alsa_input.usb-Antimatter_Research__Inc._Acusis_S_0379-00.analog-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY
state: RUNNING
suspend cause: (none)
priority: 9049
volume: front-left: 21845 / 33% / -28.63 dB, front-right: 21845 / 33% / -28.63 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.61 ms
max rewind: 0 KiB
sample spec: s32le 2ch 48000Hz
channel map: front-left,front-right
Stereo
used by: 1
linked by: 2
fixed latency: 59.94 ms
card: 2 <alsa_card.usb-Antimatter_Research__Inc._Acusis_S_0379-00>
module: 8
properties:
alsa.resolution_bits = “32”
device.api = “alsa”
device.class = “sound”
alsa.class = “generic”
alsa.subclass = “generic-mix”
alsa.name = “USB Audio”
alsa.id = “USB Audio”
alsa.subdevice = “0”
alsa.subdevice_name = “subdevice #0”
alsa.device = “0”
alsa.card = “1”
alsa.card_name = “Acusis S”
alsa.long_card_name = “Antimatter Research, Inc. Acusis S at usb-3f980000.usb-1.5, full speed”
alsa.driver_name = “snd_usb_audio”
device.bus_path = “platform-3f980000.usb-usb-0:1.5:1.0”
sysfs.path = “/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/sound/card1”
udev.id = “usb-Antimatter_Research__Inc._Acusis_S_0379-00”
device.bus = “usb”
device.vendor.id = “20b1”
device.vendor.name = “XMOS Ltd”
device.product.id = “ac51”
device.product.name = “Acusis S”
device.serial = “Antimatter_Research__Inc._Acusis_S_0379”
device.string = “front:1”
device.buffering.buffer_size = “23016”
device.buffering.fragment_size = “5752”
device.access_mode = “mmap”
device.profile.name = “analog-stereo”
device.profile.description = “Analog Stereo”
device.description = “Acusis S Analog Stereo”
module-udev-detect.discovered = “1”
device.icon_name = “audio-card-usb”
ports:
analog-input: Analog Input (priority 10000, latency offset 0 usec, available: unknown)
properties:
active port:
index: 4
name:
driver: <module-echo-cancel.c>
flags: HW_MUTE_CTRL LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 1000
volume: front-left: 21845 / 33%, front-right: 21845 / 33%
balance 0.00
base volume: 65536 / 100%
volume steps: 65537
muted: no
current latency: 0.00 ms
max rewind: 0 KiB
sample spec: float32le 2ch 48000Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
fixed latency: 59.94 ms
module: 22
properties:
device.master_device = “alsa_input.usb-Antimatter_Research__Inc._Acusis_S_0379-00.analog-stereo”
device.class = “filter”
device.intended_roles = “phone”
device.description = “Acusis S Analog Stereo (echo cancelled with Acusis S Analog Stereo)”
device.icon_name = “audio-input-microphone”
index: 5
name: <echosink.monitor>
driver: <module-echo-cancel.c>
flags: DECIBEL_VOLUME LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 1000
volume: mono: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max rewind: 0 KiB
sample spec: float32le 1ch 48000Hz
channel map: mono
Mono
used by: 0
linked by: 0
fixed latency: 59.94 ms
monitor_of: 3
module: 22
properties:
device.description = “Monitor of Acusis S Analog Stereo (echo cancelled with Acusis S Analog Stereo)”
device.class = “monitor”
device.icon_name = “audio-input-microphone”
pi@raspberrypi:~ $
pacmd list-sink-inputs
pi@raspberrypi:~ $ pacmd list-sink-inputs
1 sink input(s) available.
index: 0
driver: <module-echo-cancel.c>
flags: VARIABLE_RATE START_CORKED
state: CORKED
sink: 2 <alsa_output.usb-Antimatter_Research__Inc._Acusis_S_0379-00.analog-stereo>
volume: mono: 65536 / 100% / 0.00 dB
balance 0.00
muted: no
current latency: 0.00 ms
requested latency: 59.94 ms
sample spec: float32le 1ch 48000Hz
channel map: mono
Mono
resample method: speex-fixed-1
module: 22
properties:
media.name = “Echo-Cancel Sink Stream”
media.role = “filter”
module-stream-restore.id = “sink-input-by-media-role:filter”
pi@raspberrypi:~ $
/etc/pulse/default.pa
load-module module-echo-cancel source_name=echosrc sink_name=echosink channels=2 rate=48000 aec_method=webrtc
load-module module-role-ducking trigger_roles=voice-assistant ducking_roles=music volume=20% global=true
Manual command
pactl load-module module-echo-cancel source_name=echosrc sink_name=echosink channels=2 rate=48000 aec_method=webrtc
Sorry I did not get a notification that your replied. In the future please use the code tags using the </> button on the editor so that formatting is retained. It makes it a lot easier to read.
I think your /etc/pulse/default.pa
is wrong. aec_method
should be speex
. This is what I have working on my RPi4.
load-module module-echo-cancel source_name=echosrc sink_name=echosink aec_method=speex
load-module module-role-ducking trigger_roles=voice-assistant ducking_roles=music volume=20% global=true