You are not logged in.

#1 2017-03-26 22:39:43

Burner
Member
Registered: 2017-03-26
Posts: 30

[SOLVED] Sound pop when starting or stopping playback

I've got an Intel NUC (NUC6i3SYH) connected to an AV receiver via HDMI. Everything runs perfect except for the playback starting and stopping issue resulting in a delayed playback and a pop sound before and after.
First of all I have seen these posts/wikis similar to my problem:

Arch wiki; ALSA Troubleshooting/Pops_when_starting_and_stopping_playback
Arch forum; Clicking/Poping sound from intel hda

I followed the wiki post and created a .conf within

/etc/modprobe.d/

which did not solve my problem.
Just to be mentioned: Kodi has the option "Keep Audio Device Alive" which solves the problem so it is not a problem of the AV receiver.
Any ideas on this?


ls /proc/asound/
card0  cards  devices  hwdep  modules  oss  PCH  pcm  seq  timers  version
head /proc/asound/card0/codec#0
Codec: Realtek ALC283
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0283
Subsystem Id: 0x80862063
Revision Id: 0x100003
No Modem Function Group found
Default PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24

Last edited by Burner (2017-03-30 19:02:59)

Offline

#2 2017-03-27 07:50:36

mich41
Member
Registered: 2012-06-22
Posts: 796

Re: [SOLVED] Sound pop when starting or stopping playback

Burner wrote:

Just to be mentioned: Kodi has the option "Keep Audio Device Alive" which solves the problem so it is not a problem of the AV receiver.

Not sure how you concluded that. Pops usually are an effect of some analog converters or amplifiers powering up. You'll probably get the same result with any other HDMI source playing to this receiver.

Offline

#3 2017-03-27 11:15:06

Burner
Member
Registered: 2017-03-26
Posts: 30

Re: [SOLVED] Sound pop when starting or stopping playback

mich41 wrote:
Burner wrote:

Just to be mentioned: Kodi has the option "Keep Audio Device Alive" which solves the problem so it is not a problem of the AV receiver.

Not sure how you concluded that. Pops usually are an effect of some analog converters or amplifiers powering up. You'll probably get the same result with any other HDMI source playing to this receiver.

I conclude that from the fact that within Kofi with this option activated no click/pop sounds occurs. So in this case my soundcard is doing something different compared to YouTube/VLC/Rhythmbox/... etc. What I mean is: there is an solution Kodi is providing . How do I get something similar for my soundcard/pulseaudio.

BTW: I'm not a native English speaker so maybe I'm not getting something/explaining it not correct.

Offline

#4 2017-03-27 12:55:55

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,728

Re: [SOLVED] Sound pop when starting or stopping playback

If you do use pulseaudio, you could do: https://bbs.archlinux.org/viewtopic.php … 6#p1692916 If you use plain ALSA you would have to start some program that generates dummy output or similar I guess.

Offline

#5 2017-03-27 14:13:05

Burner
Member
Registered: 2017-03-26
Posts: 30

Re: [SOLVED] Sound pop when starting or stopping playback

V1del wrote:

If you do use pulseaudio, you could do: https://bbs.archlinux.org/viewtopic.php … 6#p1692916 If you use plain ALSA you would have to start some program that generates dummy output or similar I guess.

I think I did exactly what is stated in the post you mentioned (it's the same as I posted in my first post of this thread). So I don't why it's not working since I'm pretty sure that I use pulseaudio.

Offline

#6 2017-03-27 14:20:08

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,728

Re: [SOLVED] Sound pop when starting or stopping playback

None of the things in your first post reference pulseaudio (they concern the kernel module directly has nothing to do with pulse at that point) Post

aplay -L
sudo fuser -v /dev/snd/*

and your /etc/pulse/default.pa and /etc/pulse/daemon.conf

Last edited by V1del (2017-03-27 14:30:40)

Offline

#7 2017-03-27 15:31:24

Burner
Member
Registered: 2017-03-26
Posts: 30

Re: [SOLVED] Sound pop when starting or stopping playback

V1del wrote:

None of the things in your first post reference pulseaudio (they concern the kernel module directly has nothing to do with pulse at that point) Post

aplay -L
sudo fuser -v /dev/snd/*

and your /etc/pulse/default.pa and /etc/pulse/daemon.conf

Sorry, you're right! I only assumed since the post you mentioned also concerns the kernel module not directly pulseaudio.


aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
default
    Default ALSA Output (currently PulseAudio Sound Server)
sudo fuser -v /dev/snd/*
                     BEN.        PID ZUGR.  BEFEHL
/dev/snd/controlC0:  gdm        1028 F.... pulseaudio
cat /etc/pulse/default.pa 
#!/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 per-user
# (i.e. not in system mode)

.fail

### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore

### Automatically augment property information from .desktop files
### stored in /usr/share/application
load-module module-augment-properties

### Should be after module-*-restore but before module-*-detect
load-module module-switch-on-port-available

### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink

### 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 support)
load-module module-detect
.endif

### Automatically connect sink and source if JACK server is present
.ifexists module-jackdbus-detect.so
.nofail
load-module module-jackdbus-detect channels=2
.fail
.endif

### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif

### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish

### Load the RTP receiver module (also configured via paprefs, see above)
#load-module module-rtp-recv

### Load the RTP sender module (also configured via paprefs, see above)
#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
#load-module module-rtp-send source=rtp.monitor

### Load additional modules from GConf settings. This can be configured with the paprefs tool.
### Please keep in mind that the modules configured by paprefs might conflict with manually
### loaded modules.
.ifexists module-gconf.so
.nofail
load-module module-gconf
.fail
.endif

### 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

### Honour intended role device property
load-module module-intended-roles

### Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle

### If autoexit on idle is enabled we want to make sure we only quit
### when no local session needs us anymore.
.ifexists module-console-kit.so
load-module module-console-kit
.endif
.ifexists module-systemd-login.so
load-module module-systemd-login
.endif

### Enable positioned event sounds
load-module module-position-event-sounds

### Cork music/video streams when a phone stream is active
load-module module-role-cork

### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply

### Make some devices default
#set-default-sink output
#set-default-source input
cat /etc/pulse/daemon.conf 
# 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/>.

## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
## more information. Default values are commented out.  Use either ; or # for
## commenting.

; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; enable-memfd = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no

; high-priority = yes
; nice-level = -11

; realtime-scheduling = yes
; realtime-priority = 5

; exit-idle-time = 20
; scache-idle-time = 20

; dl-search-path = (depends on architecture)

; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

; resample-method = speex-float-1
; enable-remixing = yes
; enable-lfe-remixing = no
; lfe-crossover-freq = 0

flat-volumes = no
; flat-volumes = yes

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000

; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 48000
; default-sample-channels = 2
; default-channel-map = front-left,front-right

; default-fragments = 4
; default-fragment-size-msec = 25

; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0

Thanks for your help!

Offline

#8 2017-03-29 17:45:02

Burner
Member
Registered: 2017-03-26
Posts: 30

Re: [SOLVED] Sound pop when starting or stopping playback

Any ideas anyone?

Offline

#9 2017-03-29 23:37:16

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: [SOLVED] Sound pop when starting or stopping playback

Just to be clear, you added "options snd_hda_intel power_save=0" to a file in /etc/modprobe.d/, and right now when you look at the output of "cat /sys/module/snd_hda_intel/parameters/power_save" you get the result "0"? This is what solves clicking on my PC here.

You could see if experimenting with the "position_fix" parameter for the snd_hda_intel module does something. Someone in the thread you linked to suggested that.

Offline

#10 2017-03-30 07:08:28

mich41
Member
Registered: 2012-06-22
Posts: 796

Re: [SOLVED] Sound pop when starting or stopping playback

Powersaving needs to be disabled in the receiver, not soundcard. If this can't be done, an alternative is to play silence to it to keep it busy and prevent shutdown, like Kodi does. Possibly Pulse has some equivalent of Kodi's "keep alive", if not then just play /dev/zero with aplay. Monkeying with snd_hda_intel parameters is unlikely to help.

Offline

#11 2017-03-30 18:35:37

Burner
Member
Registered: 2017-03-26
Posts: 30

Re: [SOLVED] Sound pop when starting or stopping playback

Ropid wrote:

Just to be clear, you added "options snd_hda_intel power_save=0" to a file in /etc/modprobe.d/, and right now when you look at the output of "cat /sys/module/snd_hda_intel/parameters/power_save" you get the result "0"? This is what solves clicking on my PC here.

You could see if experimenting with the "position_fix" parameter for the snd_hda_intel module does something. Someone in the thread you linked to suggested that.


I did and i got the following results:

cat /sys/module/snd_hda_intel/parameters/power_save
0

and

cat /sys/module/snd_hda_intel/parameters/power_save_controller 
N
mich41 wrote:

Powersaving needs to be disabled in the receiver, not soundcard. If this can't be done, an alternative is to play silence to it to keep it busy and prevent shutdown, like Kodi does. Possibly Pulse has some equivalent of Kodi's "keep alive", if not then just play /dev/zero with aplay. Monkeying with snd_hda_intel parameters is unlikely to help.

Sounds correct, i will test with

aplay /dev/zero

I only thought this would be the solution to my problem. But this seems to be the fix for the problem if you have speakers connected directly to your soundcard. As you stated this function does not "keep alive" the digital audio stream it only keeps the soundcard controller from going into power save to avoid the power stage of the soundcard to cause a click/pop noise on the speakers.

Offline

#12 2017-03-30 19:01:12

Burner
Member
Registered: 2017-03-26
Posts: 30

Re: [SOLVED] Sound pop when starting or stopping playback

aplay /dev/zero

works like a charm. I only have to write a small script to set the volume of this task to a minimum otherwise I get huge pop sounds when stopping it. But this shouldnt be a big problem.
Thanks everyone!

Offline

#13 2017-03-30 19:58:31

mich41
Member
Registered: 2012-06-22
Posts: 796

Re: [SOLVED] Sound pop when starting or stopping playback

Burner wrote:

set the volume of this task to a minimum otherwise I get huge pop sounds when stopping it

It seems that aplay defaults to unsigned format where zero means maximum negative signal. Adding -f S8 should solve it.

Offline

Board footer

Powered by FluxBB