Python-GUI-examples icon indicating copy to clipboard operation
Python-GUI-examples copied to clipboard

SWHear: input_device_index not used in stream_start

Open TimeTravel-0 opened this issue 8 years ago • 1 comments

In SWHear.py, there is possibility to set the device by id in constructor/init. This id is verified (valid_input_devices function). Actually half of this class deals with selecting the right audio source. Finally, in stream_start, the following parameter to self.p.open() is missing:

input_device_index=self.device

...leading to opening the default (?) audio device, not the one specified.

So I suggest the following change in swhear.py:

replace self.stream=self.p.open(format=pyaudio.paInt16,channels=1, rate=self.rate,input=True,frames_per_buffer=self.chunk) with self.stream=self.p.open(format=pyaudio.paInt16,channels=1, rate=self.rate,input=True,frames_per_buffer=self.chunk, input_device_index=self.device) in line 146ff.

Btw. thanks for providing the audio/fft/graph sample. It is a nice starting point for visualizing the data captured by my "analog accelerometer connected to usb sound card" setup

TimeTravel-0 avatar Mar 16 '17 13:03 TimeTravel-0

@TimeTravel-0 Thanks for bringing this to my attention! (albeit delayed attention)

To restate the problem, the sound card test function opens the stream using input_device_index: https://github.com/swharden/Python-GUI-examples/blob/c8dd0348d757eb47055488f65757676374cbd52d/2016-07-37_qt_audio_monitor/SWHear.py#L63-L65

... but when the card is actually opened for the main program, input_device_index is not defined: https://github.com/swharden/Python-GUI-examples/blob/c8dd0348d757eb47055488f65757676374cbd52d/2016-07-37_qt_audio_monitor/SWHear.py#L146-L147

I'm about to rewrite this file, so when I do I will fix this issue by using a method to open the stream which returns the stream itself. This way there will only be one open() line in the program. I'll close this ticket when it's resolved.

swharden avatar Sep 29 '18 22:09 swharden