#! /usr/bin/env python
+# Use pyaudio to open the microphone and run aubio.pitch on the stream of
+# incoming samples. If a filename is given as the first argument, it will
+# record 5 seconds of audio to this location. Otherwise, the script will
+# run until Ctrl+C is pressed.
+
+# Examples:
+# $ ./python/demos/demo_pyaudio.py
+# $ ./python/demos/demo_pyaudio.py /tmp/recording.wav
+
import pyaudio
import sys
import numpy as np
-from aubio import pitch, sink
+import aubio
# initialise pyaudio
p = pyaudio.PyAudio()
# record 5 seconds
output_filename = sys.argv[1]
record_duration = 5 # exit 1
- outputsink = sink(sys.argv[1], samplerate)
+ outputsink = aubio.sink(sys.argv[1], samplerate)
total_frames = 0
else:
# run forever
tolerance = 0.8
win_s = 4096 # fft size
hop_s = buffer_size # hop size
-pitch_o = pitch("default", win_s, hop_s, samplerate)
+pitch_o = aubio.pitch("default", win_s, hop_s, samplerate)
pitch_o.set_unit("midi")
pitch_o.set_tolerance(tolerance)