title: PyAudio not capturing correct audio data
body: <p>I can't get a PyAudio stream to capture audio data from my USB microphone.</p>
  
  <p>I'm running a Python program on Ubuntu trusty (Ubuntu 14.04.3 LTS). I've configured ALSA to set my USB microphone as the default sound card, and tested that this work's properly by running:</p>
  
  <p><code>arecord -D plughw:0,0 -f cd test.wav</code></p>
  
  <p>and then playing that audio back using</p>
  
  <p><code>aplay -D plughw:0,0 test.wav</code></p>
  
  <p><strong>My <code>/etc/modprobe.d/alsa-base.conf</code> file looks like this:</strong></p>
  
  <pre><code># autoloader aliases
  install sound-slot-0 /sbin/modprobe snd-card-0
  install sound-slot-1 /sbin/modprobe snd-card-1
  install sound-slot-2 /sbin/modprobe snd-card-2
  install sound-slot-3 /sbin/modprobe snd-card-3
  install sound-slot-4 /sbin/modprobe snd-card-4
  install sound-slot-5 /sbin/modprobe snd-card-5
  install sound-slot-6 /sbin/modprobe snd-card-6
  install sound-slot-7 /sbin/modprobe snd-card-7
  
  # Cause optional modules to be loaded above generic modules
  install snd /sbin/modprobe --ignore-install snd $CMDLINE_OPTS &amp;&amp; { /sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe --quiet --use-blacklist snd-seq ; }
  #
  # Workaround at bug #499695 (reverted in Ubuntu see LP #319505)
  install snd-pcm /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS &amp;&amp; { /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; }
  install snd-mixer /sbin/modprobe --ignore-install snd-mixer $CMDLINE_OPTS &amp;&amp; { /sbin/modprobe --quiet --use-blacklist snd-mixer-oss ; : ; }
  install snd-seq /sbin/modprobe --ignore-install snd-seq $CMDLINE_OPTS &amp;&amp; { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; /sbin/modprobe --quiet --use-blacklist snd-seq-oss ; : ; }
  #
  install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi $CMDLINE_OPTS &amp;&amp; { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; : ; }
  # Cause optional modules to be loaded above sound card driver modules
  install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS &amp;&amp; { /sbin/modprobe --quiet --use-blacklist snd-emu10k1-synth ; }
  install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS &amp;&amp; { /sbin/modprobe --quiet --use-blacklist snd-seq ; }
  
  # Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
  install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS &amp;&amp; { /sbin/modprobe --quiet --use-blacklist saa7134-alsa ; : ; }
  # Prevent abnormal drivers from grabbing index 0
  options bt87x index=-2
  options cx88_alsa index=-2
  options saa7134-alsa index=-2
  options snd-atiixp-modem index=-2
  options snd-intel8x0m index=-2
  options snd-via82xx-modem index=-2
  # options snd-usb-audio index=-2
  options snd-usb-audio index=0
  options snd-usb-caiaq index=-2
  options snd-usb-ua101 index=-2
  options snd-usb-us122l index=-2
  options snd-usb-usx2y index=-2
  # Ubuntu #62691, enable MPU for snd-cmipci
  options snd-cmipci mpu_port=0x330 fm_port=0x388
  # Keep snd-pcsp from being loaded as first soundcard
  options snd-pcsp index=-2
  </code></pre>
  
  <p>I've installed PyAudio successfully, however when I open a stream, I don't get any audio data. My understanding is that the default device is used when opening a stream with PyAudio (unless otherwise specified by the <code>input_device_index</code> argument which I am not setting).</p>
  
  <pre><code>    p = pyaudio.PyAudio()
      stream = p.open(
          format=pyaudio.paInt16,
          channels=1,
          rate=18000,
          input=True,
          frames_per_buffer=1024
      )
  </code></pre>
  
  <p>When I run <code>PyAudio().get_device_info_by_index(0)</code>, I get:</p>
  
  <pre><code>{'defaultSampleRate': 16000.0, 'defaultLowOutputLatency': 0.0239375, 'defaultLowInputLatency': 0.0239375, 'maxInputChannels': 1L, 'structVersion': 2L, 'hostApi': 0L, 'index': 0, 'defaultHighOutputLatency': 0.096, 'maxOutputChannels': 2L, 'name': u'Jabra SPEAK 410 USB: Audio (hw:0,0)', 'defaultHighInputLatency': 0.096}
  </code></pre>
  
  <p>^ that (Jabra SPEAK 410 USB: Audio) is my USB mic.</p>
  
  <p>These are the logs PyAudio is spitting out when it is loaded (before the stream is even opened). I've read online, though, that I can ignore most of those errors.</p>
  
  <pre><code>ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
  ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
  ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
  ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.hdmi.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
  ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
  ALSA lib conf.c:4727:(snd_config_expand) Evaluate error: No such file or directory
  ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM hdmi
  ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.hdmi.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
  ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
  ALSA lib conf.c:4727:(snd_config_expand) Evaluate error: No such file or directory
  ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM hdmi
  ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.modem.0:CARD=0'
  ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
  ALSA lib conf.c:4727:(snd_config_expand) Evaluate error: No such file or directory
  ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline:CARD=0,DEV=0
  ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.modem.0:CARD=0'
  ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
  ALSA lib conf.c:4727:(snd_config_expand) Evaluate error: No such file or directory
  ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline:CARD=0,DEV=0
  ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.modem.0:CARD=0'
  ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
  ALSA lib conf.c:4727:(snd_config_expand) Evaluate error: No such file or directory
  ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM phoneline
  ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.modem.0:CARD=0'
  ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
  ALSA lib conf.c:4727:(snd_config_expand) Evaluate error: No such file or directory
  ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM phoneline
  bt_audio_service_open: connect() failed: Connection refused (111)
  bt_audio_service_open: connect() failed: Connection refused (111)
  bt_audio_service_open: connect() failed: Connection refused (111)
  bt_audio_service_open: connect() failed: Connection refused (111)
  Cannot connect to server socket err = No such file or directory
  Cannot connect to server request channel
  jack server is not running or cannot be started
  </code></pre>
  
  <p>It looks like the stream is collecting data when it's opened, but it is not capture any sound. My mic is turned on, unmuted, and set to capture audio at a level of 86.</p>
  
  <p>I'm thinking it somehow the default device isn't being set properly (with ALSA), because when I do:</p>
  
  <p><code>arecord test.wav</code></p>
  
  <p>and </p>
  
  <p><code>aplay test.wav</code></p>
  
  <p>nothing gets recorded. </p>