Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a way to detect if any sound is playing (using a bash script)?

(I'm on Ubuntu 11.10 using pulseaudio.)

I plan on using it in an indicator to visually remind me sound is playing while the mute is on.

share|improve this question
up vote 1 down vote accepted

Using pulse-audio: You can try pactl list to see what pulse audio is doing with the sound hardware. I'm leaving the specifics of pulling out the status to you. For e.g.: This command would list the Sink and Source states.

pactl list | grep State

Using procfs for ALSA (Caveat: these proc entries might go away in the future): This snippet runs through the pcm playback devices in ALSA proc heirarchy.

if grep -q RUNNING /proc/asound/card*/*p/*/status 2>&1; then
   echo "Playing"
else
   echo "Idle"
fi
share|improve this answer
    
Thanks a lot! pactl list is working for me. Volume, mute status, etc. How did you find this out? I've been searching for "pulseaudio status" and nothing this simple came up. – dgo.a Feb 25 '12 at 13:35
    
No problem :-) Find out the tools that come along with pulseaudio, then take a guess on the which one might be appropriate, check the man pages, try running it. – Anil Feb 25 '12 at 15:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .