:orphan: oscilloscope ------------ Sample microphone and display input signal in realtime .. raw:: html ---- .. code-block:: python import pyaudio import numpy as np from gr.pygr import * FS = 44100 # Sampling frequency SAMPLES = 1000 mic = None def get_audio_data(): global mic if mic is None: pa = pyaudio.PyAudio() mic = pa.open(format=pyaudio.paInt16, channels=1, rate=FS, input=True, frames_per_buffer=SAMPLES) amplitudes = np.frombuffer(mic.read(SAMPLES), dtype=np.int16) return amplitudes / 32768. start = time.time() while time.time() - start < 10: try: amplitudes = get_audio_data() except (IOError): continue plot(range(SAMPLES), amplitudes, xlim=(0, SAMPLES), ylim=(-1, 1))