You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
SWHear: input_device_index not used in stream_start #5
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
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.
Activity
swharden commentedon Sep 29, 2018
@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:Python-GUI-examples/2016-07-37_qt_audio_monitor/SWHear.py
Lines 63 to 65 in c8dd034
... but when the card is actually opened for the main program,
input_device_indexis not defined:Python-GUI-examples/2016-07-37_qt_audio_monitor/SWHear.py
Lines 146 to 147 in c8dd034
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.