annotate swig/python/test.py @ 119:75e14c9881ee
- Committed patch by Chris Cannam to avoid reading past the end of an array in peak detection routine in xtract_peak_spectrum()
author |
Jamie Bullock <jamie@postlude.co.uk> |
date |
Tue, 11 Nov 2008 11:55:55 +0000 |
parents |
c8502708853b |
children |
aadc06a1b317 |
rev |
line source |
jamie@88
|
1 #!/usr/bin/python
|
jamie@88
|
2
|
jamie@92
|
3 try:
|
jamie@92
|
4 import xtract
|
jamie@92
|
5 except ImportError:
|
jamie@103
|
6 print 'Failed to load the library "xtract"'
|
jamie@92
|
7
|
jamie@92
|
8 print '\nRunning libxtract Python bindings test...\n'
|
jamie@88
|
9
|
jamie@103
|
10 len = 8
|
jamie@88
|
11
|
jamie@88
|
12 a = xtract.floatArray(len)
|
jamie@92
|
13 temp = []
|
jamie@88
|
14
|
jamie@88
|
15 for i in range(0, len):
|
jamie@88
|
16 a[i] = 2 * i
|
jamie@92
|
17 temp.append(str(a[i]))
|
jamie@88
|
18
|
jamie@110
|
19 mean = xtract.xtract_mean(a,len,None)[1]
|
jamie@110
|
20
|
jamie@110
|
21 print 'The mean of ' + ', '.join(temp) + ' is: %.2f' % mean
|
jamie@110
|
22
|
jamie@110
|
23 argv = xtract.floatArray(1)
|
jamie@110
|
24 argv[0] = mean
|
jamie@110
|
25
|
jamie@110
|
26 variance = xtract.xtract_variance(a, len, argv)[1]
|
jamie@110
|
27
|
jamie@110
|
28 print 'The variance is %.2f' % variance
|
jamie@88
|
29
|
jamie@103
|
30 print 'Computing spectrum...'
|
jamie@103
|
31
|
jamie@103
|
32 argv = xtract.floatArray(1)
|
jamie@103
|
33 argv[0] = 44100.0 / len # Fake sample rate
|
jamie@103
|
34
|
jamie@103
|
35 xtract.xtract_init_fft(len, xtract.XTRACT_SPECTRUM);
|
jamie@103
|
36
|
jamie@103
|
37 result = xtract.floatArray(len)
|
jamie@103
|
38
|
jamie@103
|
39 xtract.xtract_spectrum(a,len,argv, result)
|
jamie@103
|
40
|
jamie@103
|
41
|
jamie@103
|
42 for i in range(len):
|
jamie@103
|
43 print result[i]
|
jamie@103
|
44
|
jamie@109
|
45
|
jamie@109
|
46 print 'Computing windowed subframes...'
|
jamie@109
|
47
|
jamie@109
|
48 for i in range(0, len):
|
jamie@109
|
49 a[i] = 1.0
|
jamie@109
|
50
|
jamie@109
|
51 window = xtract.xtract_init_window(len / 2, xtract.XTRACT_HANN)
|
jamie@109
|
52 xtract.xtract_features_from_subframes(a, len, xtract.XTRACT_WINDOWED, window, result)
|
jamie@109
|
53
|
jamie@109
|
54 for i in range(len):
|
jamie@109
|
55 print result[i]
|
jamie@109
|
56
|
jamie@92
|
57 print '\nFinished!\n'
|