When pulseaudio is setup with a virtual alsa device, the timidity daemon, as configured in /etc/init.d/timidity, attempts to acquire exclusive access to the /dev/snd device, which can cause applications using pulseaudio to hang until timidity or pulseaudio is killed. I've experienced this with flash running in firefox, which caused firefox to become unresponsive. Symptoms are generally that only either pulseaudio or timidity work. Both will not work simultaneously as configured by default. This suggests that the timidity daemon is trying to grab exclusive access to the audio device instead of using the virtual alsa device, pulse, provided by pulseaudio. Pulseaudio on gentoo is setup to use udev and consolekit to grant audio access dynamically to the currently active user. See http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/PerfectSetup. (Note: if the system-wide USE flag is defined, the behavior is probably different). /etc/init.d/timidity is configured to run the daemon under the timidity user, which is not the currently active user, and in the audio group, in which there should be no user. Here is the start routine from the default /etc/init.d/timidity: start() { ebegin "Starting TiMidity++ Virtual Midi Sequencer" test -n "$TIMIDITY_PCM_NAME" && export TIMIDITY_PCM_NAME start-stop-daemon --start --background --chdir /usr/share/timidity \ --user timidity --group audio --make-pidfile --pidfile /var/run/timidity.pid \ --exec /usr/bin/timidity -- -iA ${TIMIDITY_OPTS} eend $? } As a workaround, I was able to get the timidity daemon to work properly by running the daemon under my active user's credentials. I removed "--group audio" and replace "--user timidity" with "--user worch" e.g. start() { ebegin "Starting TiMidity++ Virtual Midi Sequencer" test -n "$TIMIDITY_PCM_NAME" && export TIMIDITY_PCM_NAME start-stop-daemon --start --background --chdir /usr/share/timidity \ --user worch --make-pidfile --pidfile /var/run/timidity.pid \ --exec /usr/bin/timidity -- -iA ${TIMIDITY_OPTS} eend $? } There is forum topic related to this issue at http://forums.gentoo.org/viewtopic-p-7286852.html Reproducible: Always Steps to Reproduce: 1. run pulseaudio daemon as normal in a non-system-wide setup (don't use system-wide USE flag) 2. /etc/init.d/timidity start Actual Results: Timidity and pulseaudio do not both work. Expected Results: pulseaudio should continue working while timidity provides working midi output ports to alsa system, which works in concert with the virtual alsa device, pulse, provided by pulseaudio. $ eix -I pulseaudio [I] media-sound/pulseaudio Available versions: 1.1-r1 2.1-r1 (~)3.0 **9999 {{+X +alsa +asyncns avahi bluetooth +caps dbus doc equalizer +gdbm +glib gnome gtk ipv6 jack libsamplerate lirc neon +orc oss qt4 realtime ssl system-wide systemd tcpd test +udev +webrtc-aec xen}} Installed versions: 3.0(08:02:53 PM 03/18/2013)(X alsa asyncns caps dbus gdbm glib gnome gtk ipv6 orc qt4 realtime ssl tcpd udev webrtc-aec -avahi -bluetooth -doc -equalizer -jack -libsamplerate -lirc -neon -oss -system-wide -systemd -test -xen) Homepage: http://www.pulseaudio.org/ Description: A networked sound server with an advanced plugin system $ eix -I timidity [I] app-admin/eselect-timidity Available versions: 20061203 ~20091106 20110513 Installed versions: 20110513(04:47:04 AM 04/08/2013) Homepage: http://www.gentoo.org/ Description: Manages configuration of TiMidity++ patchsets [I] media-sound/timidity++ Available versions: 2.13.2-r13 ~2.13.2-r14 2.14.0 ~2.14.0-r1 {{X alsa ao emacs flac gtk jack motif nas ncurses oss slang speex tk vorbis}} Installed versions: 2.14.0(05:06:28 AM 04/08/2013)(X alsa ao flac gtk ncurses vorbis -emacs -jack -motif -nas -oss -slang -speex -tk) Homepage: http://timidity.sourceforge.net/ Description: A handy MIDI to WAV converter with OSS and ALSA output support [I] media-sound/timidity-eawpatches Available versions: 12-r5^bs Installed versions: 12-r5^bs(04:47:13 AM 04/08/2013) Homepage: http://www.stardate.bc.ca/eawpatches/html/default.htm Description: Eric Welsh's GUS patches for TiMidity Found 3 matches. $ emerge --info Portage 2.1.11.55 (default/linux/amd64/13.0/desktop, gcc-4.6.3, glibc-2.15-r3, 3.6.11-gentoo x86_64) ================================================================= System uname: Linux-3.6.11-gentoo-x86_64-Intel-R-_Core-TM-_i7_CPU_930_@_2.80GHz-with-gentoo-2.2 KiB Mem: 12362532 total, 11280336 free KiB Swap: 0 total, 0 free Timestamp of tree: Wed, 10 Apr 2013 01:35:01 +0000 ld GNU ld (GNU Binutils) 2.22 ccache version 3.1.9 [enabled] app-shells/bash: 4.2_p37 dev-java/java-config: 2.1.12-r1 dev-lang/python: 2.7.3-r3, 3.2.3-r2 dev-util/ccache: 3.1.9 dev-util/cmake: 2.8.9 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.11.8 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.11.6 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.6.3 sys-devel/gcc-config: 1.7.3 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.7 (virtual/os-headers) sys-libs/glibc: 2.15-r3 Repositories: gentoo x-portage java-overlay ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=native -mtune=native" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -pipe -march=native -mtune=native" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://gentoo.cites.uiuc.edu/pub/gentoo/ http://distfiles.gentoo.org" LANG="en_US.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /var/lib/layman/java-overlay" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="256-color X a52 aac acl acpi afterimage alsa amd64 anthy ao bash-completion berkdb bidi blink branding bzip2 cairo cdda cdio cdr cjk cli color consolekit cracklib crypt cscope cups cxx dbus dri dts dvd dvdnav dvdr dvi emboss encode escreen exif fading-colors fam fbcondecor ffmpeg firefox firefox3 flac flite fortran furigana g3dvl gd gdbm gif gmail gpm gtk hddtemp iconv imap ipv6 iso14755 jpeg kpathsea latex lcms ldap libnotify libwww lm_sensors lock logrotate mad maildir matroska midi minizip mmx mng modules mono moonlight mp3 mp4 mpeg mudflap multilib ncurses nls nptl nsplugin nvidia ogg opencl opengl openmp pam pango pcre pdf pixbuf png policykit ppds pulseaudio qt3support qt4 quicktime readline rememberthemilk sasl scim screen sdl session sockets speech spell sse sse2 ssl startup-notification svg tcpd thunar tiff truetype udev udisks unicode upower usb vim-syntax vorbis wxwidgets x264 xcb xcomposite xfce xft xinerama xml xrandr xv xvid xvmc zlib zsh-completion" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_US" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia" XFCE_PLUGINS="menu" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
With media-sound/timidity++-2.14.0-r2 and media-sound/pulseaudio-5.0-r7, applications no longer hang, but there is still an issue with audio playback. /etc/init.d/timidity starts the timidity daemon under the timidity user, causing a pulseaudio daemon to be run under the timidity user. timidity's pulseaudio daemon takes exclusive access of one of the sound devices. Now, if a normal user plays audio (e.g. with aplay), a second pulseaudio daemon starts under that user. Because timdity's pulseaudio process has acquired access to a sound device, the normal user's pulseaudio daemon can't get access to it. Consequently, the normal user can't play any (non-timidity) audio through the device held by timidity's pulseaudio daemon. $ ps aux | grep pulseaudio timidity 15493 2.1 0.0 421508 9432 ? Sl 11:11 0:13 /usr/bin/pulseaudio --start --log-target=syslog worch 15514 1.1 0.0 345368 9636 ? S<l 11:12 0:07 /usr/bin/pulseaudio --start --log-target=syslo # lsof /dev/snd/* COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME timidity 15480 timidity 8u CHR 116,1 0t0 2097 /dev/snd/seq pulseaudi 15493 timidity mem CHR 116,3 2119 /dev/snd/pcmC0D0p pulseaudi 15493 timidity 17u CHR 116,8 0t0 2137 /dev/snd/controlC1 pulseaudi 15493 timidity 22u CHR 116,2 0t0 2118 /dev/snd/controlC0 pulseaudi 15493 timidity 27u CHR 116,2 0t0 2118 /dev/snd/controlC0 pulseaudi 15493 timidity 28u CHR 116,3 0t0 2119 /dev/snd/pcmC0D0p pulseaudi 15493 timidity 29u CHR 116,2 0t0 2118 /dev/snd/controlC0 pulseaudi 15493 timidity 34u CHR 116,2 0t0 2118 /dev/snd/controlC0 pulseaudi 15493 timidity 39u CHR 116,8 0t0 2137 /dev/snd/controlC1 pulseaudi 15514 worch mem CHR 116,16 123121 /dev/snd/pcmC2D0c pulseaudi 15514 worch mem CHR 116,15 123120 /dev/snd/pcmC2D0p pulseaudi 15514 worch 9u CHR 116,8 0t0 2137 /dev/snd/controlC1 pulseaudi 15514 worch 20u CHR 116,14 0t0 123119 /dev/snd/controlC2 pulseaudi 15514 worch 21u CHR 116,15 0t0 123120 /dev/snd/pcmC2D0p pulseaudi 15514 worch 22r CHR 116,33 0t0 2096 /dev/snd/timer pulseaudi 15514 worch 27u CHR 116,14 0t0 123119 /dev/snd/controlC2 pulseaudi 15514 worch 28u CHR 116,16 0t0 123121 /dev/snd/pcmC2D0c pulseaudi 15514 worch 29r CHR 116,33 0t0 2096 /dev/snd/timer $ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Intel [HDA Intel], device 0: ALC889 Analog [ALC889 Analog] Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 1: ALC889 Digital [ALC889 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: USB [Scarlett 2i4 USB], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice #0
Recently I found that timidity and bluetooth are installed and both added to init, headset capable bluetooth, HSP/HFP capable bluetooth headsets cannnot connect. Only A2DP devices work. The possible workaround are: 1- Compile pulseaudio with only A2DP support 2- Uninstall (or delete from init) timidity.
Still valid with 2.15.0-r1?
It is still relevant, but slightly different behavior. After changing from alsa to pulseaudio, audio output was only once working on integrated sound card. But after a reboot the output disappeared again. On USB sound cards it worked only sometimes. In most cases output or duplex entries in the list of profiles in pulse audio were missing. Only the microphone input was always present (not claimed by timidity ?). Unplugging a usb card for a very short moment increased the change of an working output or full duplex. In all the cases alsamixer was showing all the expected channels of all soundcards.
Maybe you can try to recompile it with "ao" output as default. Per Fedora .spec file, it seems it is the one working better with pulseaudio https://src.fedoraproject.org/rpms/timidity++/blob/rawhide/f/timidity++.spec#_58