[tests] fix unmatched parenthesis on windows
[aubio.git] / python / demos / demo_alsa.py
1 #! /usr/bin/env python
2
3 import alsaaudio
4 import numpy as np
5 import aubio
6
7 # constants
8 samplerate = 44100
9 win_s = 2048
10 hop_s = win_s // 2
11 framesize = hop_s
12
13 # set up audio input
14 recorder = alsaaudio.PCM(type=alsaaudio.PCM_CAPTURE)
15 recorder.setperiodsize(framesize)
16 recorder.setrate(samplerate)
17 recorder.setformat(alsaaudio.PCM_FORMAT_FLOAT_LE)
18 recorder.setchannels(1)
19
20 # create aubio pitch detection (first argument is method, "default" is
21 # "yinfft", can also be "yin", "mcomb", fcomb", "schmitt").
22 pitcher = aubio.pitch("default", win_s, hop_s, samplerate)
23 # set output unit (can be 'midi', 'cent', 'Hz', ...)
24 pitcher.set_unit("Hz")
25 # ignore frames under this level (dB)
26 pitcher.set_silence(-40)
27
28 print("Starting to listen, press Ctrl+C to stop")
29
30 # main loop
31 while True:
32     try:
33         # read data from audio input
34         _, data = recorder.read()
35         # convert data to aubio float samples
36         samples = np.fromstring(data, dtype=aubio.float_type)
37         # pitch of current frame
38         freq = pitcher(samples)[0]
39         # compute energy of current block
40         energy = np.sum(samples**2)/len(samples)
41         # do something with the results
42         print("{:10.4f} {:10.4f}".format(freq,energy))
43     except KeyboardInterrupt:
44         print("Ctrl+C pressed, exiting")
45         break