History

python/demos: python3 and double precision compatibility

Paul Brossier committed 10 years ago

Commit 4120fbc1 parent 416ddd124 files · +114 −98Browse files

Showing the changes to python (24 of 24 files). Show all

Unified · Split

24 files
  1. python/demos/demo_bpm_extract.py +9 −3
  2. python/demos/demo_filterbank.py +1 −1
  3. python/demos/demo_filterbank_slaney.py +1 −1
  4. python/demos/demo_filterbank_triangle_bands.py +2 −2
  5. python/demos/demo_mel-energy.py +5 −5
  6. python/demos/demo_mfcc.py +2 −2
  7. python/demos/demo_onset.py +3 −3
  8. python/demos/demo_onset_plot.py +7 −6
  9. python/demos/demo_pitch.py +5 −5
  10. python/demos/demo_pitch_sinusoid.py +4 −3
  11. python/demos/demo_pysoundcard_record.py +2 −2
  12. python/demos/demo_simple_robot_voice.py +4 −3
  13. python/demos/demo_simple_spectral_weighting.py +5 −4
  14. python/demos/demo_sink.py +8 −6
  15. python/demos/demo_sink_create_woodblock.py +5 −5
  16. python/demos/demo_sink_multi.py +9 −8
  17. python/demos/demo_slicing.py +4 −3
  18. python/demos/demo_source.py +7 −5
  19. python/demos/demo_specdesc.py +9 −9
  20. python/demos/demo_spectrogram.py +8 −8
  21. python/demos/demo_tempo.py +3 −3
  22. python/demos/demo_tempo_plot.py +6 −6
  23. python/demos/demo_tss.py +3 −3
  24. python/demos/demo_waveform_plot.py +2 −2
python/demos/demo_bpm_extract.py+9−3
@@ -45,12 +45,18 @@ def get_file_bpm(path, params = None): · 44 unmodified lines
4545 break
4646
4747 # Convert to periods and to bpm
48− bpms = 60./diff(beats)
49− b = median(bpms)
48+ if len(beats) > 1:
49+ if len(beats) < 4:
50+ print("few beats found in {:s}".format(path))
51+ bpms = 60./diff(beats)
52+ b = median(bpms)
53+ else:
54+ b = 0
55+ print("not enough beats found in {:s}".format(path))
5056 return b
5157
5258 if __name__ == '__main__':
5359 import sys
5460 for f in sys.argv[1:]:
5561 bpm = get_file_bpm(f)
56− print "%6s" % ("%.2f" % bpm), f
62+ print("{:6s} {:s}".format("{:2f}".format(bpm), f))
python/demos/demo_filterbank.py+1−1
@@ -19,7 +19,7 @@ coeffs[4] *= 5. · 18 unmodified lines
1919
2020 f.set_coeffs(coeffs)
2121
22−times = vstack([arange(win_s / 2 + 1) * samplerate / win_s] * n_filters)
22+times = vstack([arange(win_s // 2 + 1) * samplerate / win_s] * n_filters)
2323 title('Bank of filters built using a simple list of boundaries\nThe middle band has been amplified by 2.')
2424 loglog(times.T, f.get_coeffs().T, '.-')
2525 xlim([50, samplerate/2])
python/demos/demo_filterbank_slaney.py+1−1
@@ -11,7 +11,7 @@ f.set_mel_coeffs_slaney(samplerate) · 10 unmodified lines
1111
1212 from pylab import loglog, title, show, xlim, ylim, xlabel, ylabel
1313 xlim([0,samplerate / 2])
14−times = vstack([arange(win_s / 2 + 1) * samplerate / win_s] * 40)
14+times = vstack([arange(win_s // 2 + 1) * samplerate / win_s] * 40)
1515 loglog(times.T, f.get_coeffs().T, '.-')
1616 title('Mel frequency bands coefficients')
1717 xlim([100, 7500])
python/demos/demo_filterbank_triangle_bands.py+2−2
@@ -16,7 +16,7 @@ f.set_triangle_bands(freqs, samplerate) · 15 unmodified lines
1616
1717 subplot(211)
1818 title('Examples of filterbank built with set_triangle_bands and set_coeffs')
19−times = vstack([arange(win_s / 2 + 1) * samplerate / win_s] * n_filters)
19+times = vstack([arange(win_s // 2 + 1) * samplerate / win_s] * n_filters)
2020 loglog(times.T, f.get_coeffs().T, '.-')
2121 xlim([50, samplerate/2])
2222 ylim([1.0e-6, 2.0e-2])
@@ -37,7 +37,7 @@ coeffs[4] *= 5. · 14 unmodified lines
3737 f.set_coeffs(coeffs)
3838
3939 subplot(212)
40−times = vstack([arange(win_s / 2 + 1) * samplerate / win_s] * n_filters)
40+times = vstack([arange(win_s // 2 + 1) * samplerate / win_s] * n_filters)
4141 loglog(times.T, f.get_coeffs().T, '.-')
4242 xlim([50, samplerate/2])
4343 ylim([1.0e-6, 2.0e-2])
python/demos/demo_mel-energy.py+5−5
@@ -5,10 +5,10 @@ from aubio import source, pvoc, filterbank · 4 unmodified lines
55 from numpy import vstack, zeros
66
77 win_s = 512 # fft size
8−hop_s = win_s / 4 # hop size
8+hop_s = win_s // 4 # hop size
99
1010 if len(sys.argv) < 2:
11− print "Usage: %s <filename> [samplerate]" % sys.argv[0]
11+ print("Usage: %s <filename> [samplerate]" % sys.argv[0])
1212 sys.exit(1)
1313
1414 filename = sys.argv[1]
@@ -34,14 +34,14 @@ while True: · 19 unmodified lines
3434 samples, read = s()
3535 fftgrain = pv(samples)
3636 new_energies = f(fftgrain)
37− print '%f' % (total_frames / float(samplerate) ),
38− print ' '.join(['%f' % b for b in new_energies])
37+ timestr = '%f' % (total_frames / float(samplerate) )
38+ print('{:s} {:s}'.format(timestr, ' '.join(['%f' % b for b in new_energies])))
3939 energies = vstack( [energies, new_energies] )
4040 total_frames += read
4141 if read < hop_s: break
4242
4343 if 1:
44− print "done computing, now plotting"
44+ print("done computing, now plotting")
4545 import matplotlib.pyplot as plt
4646 from demo_waveform_plot import get_waveform_plot
4747 from demo_waveform_plot import set_xlabels_sample2time
python/demos/demo_mfcc.py+2−2
@@ -5,13 +5,13 @@ from aubio import source, pvoc, mfcc · 4 unmodified lines
55 from numpy import vstack, zeros
66
77 win_s = 512 # fft size
8−hop_s = win_s / 4 # hop size
8+hop_s = win_s // 4 # hop size
99 n_filters = 40 # must be 40 for mfcc
1010 n_coeffs = 13
1111 samplerate = 44100
1212
1313 if len(sys.argv) < 2:
14− print "Usage: %s <source_filename>" % sys.argv[0]
14+ print("Usage: %s <source_filename>" % sys.argv[0])
1515 sys.exit(1)
1616
1717 source_filename = sys.argv[1]
python/demos/demo_onset.py+3−3
@@ -4,10 +4,10 @@ import sys · 3 unmodified lines
44 from aubio import source, onset
55
66 win_s = 512 # fft size
7−hop_s = win_s / 2 # hop size
7+hop_s = win_s // 2 # hop size
88
99 if len(sys.argv) < 2:
10− print "Usage: %s <filename> [samplerate]" % sys.argv[0]
10+ print("Usage: %s <filename> [samplerate]" % sys.argv[0])
1111 sys.exit(1)
1212
1313 filename = sys.argv[1]
@@ -28,7 +28,7 @@ total_frames = 0 · 14 unmodified lines
2828 while True:
2929 samples, read = s()
3030 if o(samples):
31− print "%f" % o.get_last_s()
31+ print("%f" % o.get_last_s())
3232 onsets.append(o.get_last())
3333 total_frames += read
3434 if read < hop_s: break
python/demos/demo_onset_plot.py+7−6
@@ -5,10 +5,10 @@ from aubio import onset, source · 4 unmodified lines
55 from numpy import hstack, zeros
66
77 win_s = 512 # fft size
8−hop_s = win_s / 2 # hop size
8+hop_s = win_s // 2 # hop size
99
1010 if len(sys.argv) < 2:
11− print "Usage: %s <filename> [samplerate]" % sys.argv[0]
11+ print("Usage: %s <filename> [samplerate]" % sys.argv[0])
1212 sys.exit(1)
1313
1414 filename = sys.argv[1]
@@ -34,10 +34,10 @@ total_frames = 0 · 19 unmodified lines
3434 while True:
3535 samples, read = s()
3636 if o(samples):
37− print "%f" % (o.get_last_s())
37+ print("%f" % (o.get_last_s()))
3838 onsets.append(o.get_last())
3939 # keep some data to plot it later
40− new_maxes = (abs(samples.reshape(hop_s/downsample, downsample))).max(axis=0)
40+ new_maxes = (abs(samples.reshape(hop_s//downsample, downsample))).max(axis=0)
4141 allsamples_max = hstack([allsamples_max, new_maxes])
4242 desc.append(o.get_descriptor())
4343 tdesc.append(o.get_thresholded_descriptor())
@@ -61,9 +61,10 @@ if 1: · 17 unmodified lines
6161 plt1.xaxis.set_visible(False)
6262 plt1.yaxis.set_visible(False)
6363 desc_times = [ float(t) * hop_s / samplerate for t in range(len(desc)) ]
64− desc_plot = [d / max(desc) for d in desc]
64+ desc_max = max(desc) if max(desc) != 0 else 1.
65+ desc_plot = [d / desc_max for d in desc]
6566 plt2.plot(desc_times, desc_plot, '-g')
66− tdesc_plot = [d / max(desc) for d in tdesc]
67+ tdesc_plot = [d / desc_max for d in tdesc]
6768 for stamp in onsets:
6869 stamp /= float(samplerate)
6970 plt2.plot([stamp, stamp], [min(tdesc_plot), max(desc_plot)], '-r')
python/demos/demo_pitch.py+5−5
@@ -4,17 +4,17 @@ import sys · 3 unmodified lines
44 from aubio import source, pitch
55
66 if len(sys.argv) < 2:
7− print "Usage: %s <filename> [samplerate]" % sys.argv[0]
7+ print("Usage: %s <filename> [samplerate]" % sys.argv[0])
88 sys.exit(1)
99
1010 filename = sys.argv[1]
1111
1212 downsample = 1
13−samplerate = 44100 / downsample
13+samplerate = 44100 // downsample
1414 if len( sys.argv ) > 2: samplerate = int(sys.argv[2])
1515
16−win_s = 4096 / downsample # fft size
17−hop_s = 512 / downsample # hop size
16+win_s = 4096 // downsample # fft size
17+hop_s = 512 // downsample # hop size
1818
1919 s = source(filename, samplerate, hop_s)
2020 samplerate = s.samplerate
@@ -36,7 +36,7 @@ while True: · 15 unmodified lines
3636 #pitch = int(round(pitch))
3737 confidence = pitch_o.get_confidence()
3838 #if confidence < 0.8: pitch = 0.
39− #print "%f %f %f" % (total_frames / float(samplerate), pitch, confidence)
39+ print("%f %f %f" % (total_frames / float(samplerate), pitch, confidence))
4040 pitches += [pitch]
4141 confidences += [confidence]
4242 total_frames += read
python/demos/demo_pitch_sinusoid.py+4−3
@@ -22,7 +22,7 @@ samplerate = 44100 · 21 unmodified lines
2222 sin_length = (samplerate * 10) % 512 * 512
2323 freqs = np.zeros(sin_length)
2424
25−partition = sin_length / 8
25+partition = sin_length // 8
2626 pointer = 0
2727
2828 pointer += partition
@@ -44,9 +44,10 @@ a = build_sinusoid(sin_length, freqs, samplerate) · 15 unmodified lines
4444 for method in methods:
4545 p = aubio.pitch(method, buf_size, hop_size, samplerate)
4646 cands[method] = run_pitch(p, a)
47− print cands[method]
47+ print(method)
48+ print(cands[method])
4849
49−print "done computing"
50+print("done computing")
5051
5152 if 1:
5253 import matplotlib.pyplot as plt
python/demos/demo_pysoundcard_record.py+2−2
@@ -10,7 +10,6 @@ def record_sink(sink_path): · 9 unmodified lines
1010 duration = 5 # in seconds
1111 s = Stream(blocksize = hop_size, channels = 1)
1212 g = sink(sink_path, samplerate = int(s.samplerate))
13− print s.channels
1413
1514 s.start()
1615 total_frames = 0
@@ -22,7 +21,8 @@ def record_sink(sink_path): · 5 unmodified lines
2221 g(mono_vec, hop_size)
2322 total_frames += hop_size
2423 except KeyboardInterrupt:
25− print "stopped after", "%.2f seconds" % (total_frames / s.samplerate)
24+ duration = total_frames / float(s.samplerate)
25+ print("stopped after %.2f seconds" % duration)
2626 s.stop()
2727
2828 if __name__ == '__main__':
python/demos/demo_simple_robot_voice.py+4−3
@@ -5,7 +5,7 @@ from aubio import source, sink, pvoc · 4 unmodified lines
55
66 if __name__ == '__main__':
77 if len(sys.argv) < 2:
8− print 'usage: %s <inputfile> <outputfile>' % sys.argv[0]
8+ print('usage: %s <inputfile> <outputfile>' % sys.argv[0])
99 sys.exit(1)
1010 samplerate = 44100
1111 f = source(sys.argv[1], samplerate, 256)
@@ -13,7 +13,7 @@ if __name__ == '__main__': · 1 unmodified line
1313 total_frames, read = 0, 256
1414
1515 win_s = 512 # fft size
16− hop_s = win_s / 2 # hop size
16+ hop_s = win_s // 2 # hop size
1717 pv = pvoc(win_s, hop_s) # phase vocoder
1818
1919 while read:
@@ -25,4 +25,5 @@ if __name__ == '__main__': · 5 unmodified lines
2525 g(new_samples, read) # write to output
2626 total_frames += read
2727
28− print "wrote", total_frames, "from", f.uri, "to", g.uri
28+ format_str = "read {:d} samples from {:s}, written to {:s}"
29+ print(format_str.format(total_frames, f.uri, g.uri))
python/demos/demo_simple_spectral_weighting.py+5−4
@@ -13,7 +13,7 @@ def hanningz(size): · 12 unmodified lines
1313
1414 if __name__ == '__main__':
1515 if len(sys.argv) < 2:
16− print 'usage: %s <inputfile> <outputfile>' % sys.argv[0]
16+ print('usage: %s <inputfile> <outputfile>' % sys.argv[0])
1717 sys.exit(1)
1818 samplerate = 0
1919 if len(sys.argv) > 3: samplerate = int(sys.argv[3])
@@ -22,7 +22,7 @@ if __name__ == '__main__': · 2 unmodified lines
2222 g = sink(sys.argv[2], samplerate)
2323
2424 win_s = 512 # fft size
25− hop_s = win_s / 2 # hop size
25+ hop_s = win_s // 2 # hop size
2626 pv = pvoc(win_s, hop_s) # phase vocoder
2727
2828 # spectral weighting vector
@@ -30,7 +30,7 @@ if __name__ == '__main__': · 1 unmodified line
3030 .8 * hanningz(80)[40:],
3131 zeros( 50 ),
3232 1.3 * hanningz(100),
33− zeros (win_s / 2 + 1 - 40 - 50 - 100),
33+ zeros (win_s // 2 + 1 - 40 - 50 - 100),
3434 ] )
3535
3636 if 0:
@@ -52,4 +52,5 @@ if __name__ == '__main__': · 15 unmodified lines
5252 g(new_samples, read)
5353 total_frames += read
5454
55− print "read", total_frames / float(samplerate), "seconds from", f.uri
55+ duration = total_frames / float(samplerate)
56+ print("read {:.3f}s from {:s}".format(duration, f.uri))
python/demos/demo_sink.py+8−6
@@ -5,7 +5,7 @@ from aubio import source, sink · 4 unmodified lines
55
66 if __name__ == '__main__':
77 if len(sys.argv) < 3:
8− print 'usage: %s <inputfile> <outputfile> [samplerate] [hop_size]' % sys.argv[0]
8+ print('usage: %s <inputfile> <outputfile> [samplerate] [hop_size]' % sys.argv[0])
99 sys.exit(1)
1010
1111 if len(sys.argv) > 3: samplerate = int(sys.argv[3])
@@ -22,8 +22,10 @@ if __name__ == '__main__': · 10 unmodified lines
2222 vec, read = f()
2323 g(vec, read)
2424 total_frames += read
25− print "wrote", "%.2fs" % (total_frames / float(samplerate) ),
26− print "(", total_frames, "frames", "in",
27− print total_frames / f.hop_size, "blocks", "at", "%dHz" % f.samplerate, ")",
28− print "from", f.uri,
29− print "to", g.uri
25+ outstr = "wrote %.2fs" % (total_frames / float(samplerate))
26+ outstr += " (%d frames in" % total_frames
27+ outstr += " %d blocks" % (total_frames // f.hop_size)
28+ outstr += " at %dHz)" % f.samplerate
29+ outstr += " from " + f.uri
30+ outstr += " to " + g.uri
31+ print(outstr)
python/demos/demo_sink_create_woodblock.py+5−5
@@ -2,11 +2,11 @@ · 1 unmodified line
22
33 import sys
44 from math import pi, e
5−from aubio import sink
5+from aubio import sink, float_type
66 from numpy import arange, sin, exp, zeros
77
88 if len(sys.argv) < 2:
9− print 'usage: %s <outputfile> [samplerate]' % sys.argv[0]
9+ print('usage: %s <outputfile> [samplerate]' % sys.argv[0])
1010 sys.exit(1)
1111
1212 samplerate = 44100 # samplerate in Hz
@@ -25,9 +25,9 @@ decay = .5 · 12 unmodified lines
2525 period = float(samplerate) / pitch
2626 # create a sine lookup table
2727 tablelen = 1000
28−sinetable = arange(tablelen + 1, dtype = 'float32')
28+sinetable = arange(tablelen + 1, dtype = float_type)
2929 sinetable = 0.7 * sin(twopi * sinetable/tablelen)
30−sinetone = zeros((duration,), dtype = 'float32')
30+sinetone = zeros((duration,), dtype = float_type)
3131
3232 # compute sinetone at floating point period
3333 for i in range(duration):
@@ -39,7 +39,7 @@ for i in range(duration): · 5 unmodified lines
3939 sinetone[i] = a + frac * (b -a)
4040
4141 # apply some envelope
42−float_ramp = arange(duration, dtype = 'float32')
42+float_ramp = arange(duration, dtype = float_type)
4343 sinetone *= exp( - e * float_ramp / duration / decay)
4444 sinetone[:attack] *= exp( e * ( float_ramp[:attack] / attack - 1 ) )
4545
python/demos/demo_sink_multi.py+9−8
@@ -5,7 +5,7 @@ from aubio import source, sink · 4 unmodified lines
55
66 if __name__ == '__main__':
77 if len(sys.argv) < 3:
8− print 'usage: %s <inputfile> <outputfile> [samplerate] [hop_size]' % sys.argv[0]
8+ print('usage: %s <inputfile> <outputfile> [samplerate] [hop_size]' % sys.argv[0])
99 sys.exit(1)
1010
1111 if len(sys.argv) > 3: samplerate = int(sys.argv[3])
@@ -22,10 +22,11 @@ if __name__ == '__main__': · 10 unmodified lines
2222 vec, read = f.do_multi()
2323 g.do_multi(vec, read)
2424 total_frames += read
25− print "wrote", "%.2fs" % (total_frames / float(samplerate) ),
26− print "(", total_frames, "frames", "in",
27− print total_frames / f.hop_size, "blocks",
28− print "of", f.channels, "channels",
29− print "at", "%dHz" % f.samplerate, ")",
30− print "from", f.uri,
31− print "to", g.uri
25+ outstr = "wrote %.2fs" % (total_frames / float(samplerate))
26+ outstr += " (%d frames in" % total_frames
27+ outstr += " %d blocks" % (total_frames // f.hop_size)
28+ outstr += " of %d channels" % f.channels
29+ outstr += " at %dHz)" % f.samplerate
30+ outstr += " from " + f.uri
31+ outstr += " to " + g.uri
32+ print(outstr)
python/demos/demo_slicing.py+4−3
@@ -6,7 +6,7 @@ from aubio import source, sink · 5 unmodified lines
66
77 if __name__ == '__main__':
88 if len(sys.argv) < 3:
9− print 'usage: %s <inputfile> <duration>' % sys.argv[0]
9+ print('usage: %s <inputfile> <duration>' % sys.argv[0])
1010 sys.exit(1)
1111 source_file = sys.argv[1]
1212 duration = float(sys.argv[2])
@@ -44,7 +44,8 @@ if __name__ == '__main__': · 31 unmodified lines
4444 total_frames_written += read
4545 total_duration = total_frames_written / float(samplerate)
4646 slice_n += 1
47− print 'created %(slice_n)s slices from %(source_base_name)s%(source_ext)s' % locals(),
48− print ' (total duration %(total_duration).2fs)' % locals()
47+ outstr = 'created %(slice_n)s slices from %(source_base_name)s%(source_ext)s' % locals()
48+ outstr += ' (total duration %(total_duration).2fs)' % locals()
49+ print(outstr)
4950 # close source and sink files
5051 del f, g
python/demos/demo_source.py+7−5
@@ -5,7 +5,7 @@ from aubio import source · 4 unmodified lines
55
66 if __name__ == '__main__':
77 if len(sys.argv) < 2:
8− print 'usage: %s <inputfile> [samplerate] [hop_size]' % sys.argv[0]
8+ print('usage: %s <inputfile> [samplerate] [hop_size]' % sys.argv[0])
99 sys.exit(1)
1010 samplerate = 0
1111 hop_size = 256
@@ -20,7 +20,9 @@ if __name__ == '__main__': · 8 unmodified lines
2020 vec, read = f()
2121 total_frames += read
2222 if read < f.hop_size: break
23− print "read", "%.2fs" % (total_frames / float(samplerate) ),
24− print "(", total_frames, "frames", "in",
25− print total_frames / f.hop_size, "blocks", "at", "%dHz" % f.samplerate, ")",
26− print "from", f.uri
23+ outstr = "read %.2fs" % (total_frames / float(samplerate))
24+ outstr += " (%d frames in" % total_frames
25+ outstr += " %d blocks" % (total_frames // f.hop_size)
26+ outstr += " at %dHz)" % f.samplerate
27+ outstr += " from " + f.uri
28+ print(outstr)
python/demos/demo_specdesc.py+9−9
@@ -1,14 +1,14 @@
11 #! /usr/bin/env python
22
33 import sys
4+import numpy as np
45 from aubio import fvec, source, pvoc, specdesc
5−from numpy import hstack
66
77 win_s = 512 # fft size
8−hop_s = win_s / 4 # hop size
8+hop_s = win_s // 4 # hop size
99
1010 if len(sys.argv) < 2:
11− print "Usage: %s <filename> [samplerate]" % sys.argv[0]
11+ print("Usage: %s <filename> [samplerate]" % sys.argv[0])
1212 sys.exit(1)
1313
1414 filename = sys.argv[1]
@@ -30,7 +30,7 @@ o = {} · 15 unmodified lines
3030
3131 for method in methods:
3232 cands = []
33− all_descs[method] = fvec(0)
33+ all_descs[method] = np.array([])
3434 o[method] = specdesc(method, win_s)
3535
3636 total_frames = 0
@@ -39,17 +39,17 @@ downsample = 2 · 2 unmodified lines
3939 while True:
4040 samples, read = s()
4141 fftgrain = pv(samples)
42− #print "%f" % ( total_frames / float(samplerate) ),
42+ #outstr = "%f" % ( total_frames / float(samplerate) )
4343 for method in methods:
4444 specdesc_val = o[method](fftgrain)[0]
45− all_descs[method] = hstack ( [all_descs[method], specdesc_val] )
46− #print "%f" % specdesc_val,
47− #print
45+ all_descs[method] = np.append(all_descs[method], specdesc_val)
46+ #outstr += " %f" % specdesc_val
47+ #print(outstr)
4848 total_frames += read
4949 if read < hop_s: break
5050
5151 if 1:
52− print "done computing, now plotting"
52+ print("done computing, now plotting")
5353 import matplotlib.pyplot as plt
5454 from demo_waveform_plot import get_waveform_plot
5555 from demo_waveform_plot import set_xlabels_sample2time
python/demos/demo_spectrogram.py+8−8
@@ -1,19 +1,19 @@
11 #! /usr/bin/env python
22
33 import sys, os.path
4−from aubio import pvoc, source
4+from aubio import pvoc, source, float_type
55 from numpy import zeros, log10, vstack
66 import matplotlib.pyplot as plt
77
88 def get_spectrogram(filename, samplerate = 0):
99 win_s = 512 # fft window size
10− hop_s = win_s / 2 # hop size
11− fft_s = win_s / 2 + 1 # spectrum bins
10+ hop_s = win_s // 2 # hop size
11+ fft_s = win_s // 2 + 1 # spectrum bins
1212
1313 a = source(filename, samplerate, hop_s) # source file
1414 if samplerate == 0: samplerate = a.samplerate
1515 pv = pvoc(win_s, hop_s) # phase vocoder
16− specgram = zeros([0, fft_s], dtype='float32') # numpy array to store spectrogram
16+ specgram = zeros([0, fft_s], dtype=float_type) # numpy array to store spectrogram
1717
1818 # analysis
1919 while True:
@@ -28,8 +28,8 @@ def get_spectrogram(filename, samplerate = 0): · 8 unmodified lines
2828 # show axes in Hz and seconds
2929 time_step = hop_s / float(samplerate)
3030 total_time = len(specgram) * time_step
31− print "total time: %0.2fs" % total_time,
32− print ", samplerate: %.2fkHz" % (samplerate / 1000.)
31+ outstr = "total time: %0.2fs" % total_time
32+ print(outstr + ", samplerate: %.2fkHz" % (samplerate / 1000.))
3333 n_xticks = 10
3434 n_yticks = 10
3535
@@ -65,12 +65,12 @@ def get_spectrogram(filename, samplerate = 0): · 29 unmodified lines
6565
6666 if __name__ == '__main__':
6767 if len(sys.argv) < 2:
68− print "Usage: %s <filename>" % sys.argv[0]
68+ print("Usage: %s <filename>" % sys.argv[0])
6969 else:
7070 for soundfile in sys.argv[1:]:
7171 fig = get_spectrogram(soundfile)
7272 # display graph
73− fig.show()
73+ plt.show()
7474 #outimage = os.path.basename(soundfile) + '.png'
7575 #print ("writing: " + outimage)
7676 #plt.savefig(outimage)
python/demos/demo_tempo.py+3−3
@@ -4,10 +4,10 @@ import sys · 3 unmodified lines
44 from aubio import tempo, source
55
66 win_s = 512 # fft size
7−hop_s = win_s / 2 # hop size
7+hop_s = win_s // 2 # hop size
88
99 if len(sys.argv) < 2:
10− print "Usage: %s <filename> [samplerate]" % sys.argv[0]
10+ print("Usage: %s <filename> [samplerate]" % sys.argv[0])
1111 sys.exit(1)
1212
1313 filename = sys.argv[1]
@@ -33,7 +33,7 @@ while True: · 19 unmodified lines
3333 is_beat = o(samples)
3434 if is_beat:
3535 this_beat = int(total_frames - delay + is_beat[0] * hop_s)
36− print "%f" % (this_beat / float(samplerate))
36+ print("%f" % (this_beat / float(samplerate)))
3737 beats.append(this_beat)
3838 total_frames += read
3939 if read < hop_s: break
python/demos/demo_tempo_plot.py+6−6
@@ -4,10 +4,10 @@ import sys · 3 unmodified lines
44 from aubio import tempo, source
55
66 win_s = 512 # fft size
7−hop_s = win_s / 2 # hop size
7+hop_s = win_s // 2 # hop size
88
99 if len(sys.argv) < 2:
10− print "Usage: %s <filename> [samplerate]" % sys.argv[0]
10+ print("Usage: %s <filename> [samplerate]" % sys.argv[0])
1111 sys.exit(1)
1212
1313 filename = sys.argv[1]
@@ -42,8 +42,8 @@ if len(beats) > 1: · 28 unmodified lines
4242 from numpy import mean, median, diff
4343 import matplotlib.pyplot as plt
4444 bpms = 60./ diff(beats)
45− print 'mean period:', "%.2f" % mean(bpms), 'bpm', 'median', "%.2f" % median(bpms), 'bpm'
46− print 'plotting', filename
45+ print('mean period: %.2fbpm, median: %.2fbpm' % (mean(bpms), median(bpms)))
46+ print('plotting %s' % filename)
4747 plt1 = plt.axes([0.1, 0.75, 0.8, 0.19])
4848 plt2 = plt.axes([0.1, 0.1, 0.8, 0.65], sharex = plt1)
4949 plt.rc('lines',linewidth='.8')
@@ -75,5 +75,5 @@ if len(beats) > 1: · 25 unmodified lines
7575 plt.show()
7676
7777 else:
78− print 'mean period:', "%.2f" % 0, 'bpm', 'median', "%.2f" % 0, 'bpm',
79− print 'nothing to plot, file too short?'
78+ print('mean period: %.2fbpm, median: %.2fbpm' % (0, 0))
79+ print('plotting %s' % filename)
python/demos/demo_tss.py+3−3
@@ -5,12 +5,12 @@ from aubio import source, sink, pvoc, tss · 4 unmodified lines
55
66 if __name__ == '__main__':
77 if len(sys.argv) < 2:
8− print 'usage: %s <inputfile> <outputfile_transient> <outputfile_steady>' % sys.argv[0]
8+ print('usage: %s <inputfile> <outputfile_transient> <outputfile_steady>' % sys.argv[0])
99 sys.exit(1)
1010
1111 samplerate = 44100
12− win_s = 1024 # fft size
13− hop_s = win_s / 4 # block size
12+ win_s = 1024 # fft size
13+ hop_s = win_s // 4 # block size
1414 threshold = 0.5
1515
1616 f = source(sys.argv[1], samplerate, hop_s)
python/demos/demo_waveform_plot.py+2−2
@@ -21,7 +21,7 @@ def get_waveform_plot(filename, samplerate = 0, block_size = 4096, ax = None, do · 20 unmodified lines
2121 while True:
2222 samples, read = a()
2323 # keep some data to plot it later
24− new_maxes = (abs(samples.reshape(hop_s/downsample, downsample))).max(axis=0)
24+ new_maxes = (abs(samples.reshape(hop_s//downsample, downsample))).max(axis=0)
2525 allsamples_max = hstack([allsamples_max, new_maxes])
2626 total_frames += read
2727 if read < hop_s: break
@@ -48,7 +48,7 @@ def set_xlabels_sample2time(ax, latest_sample, samplerate): · 20 unmodified lines
4848 if __name__ == '__main__':
4949 import matplotlib.pyplot as plt
5050 if len(sys.argv) < 2:
51− print "Usage: %s <filename>" % sys.argv[0]
51+ print("Usage: %s <filename>" % sys.argv[0])
5252 else:
5353 for soundfile in sys.argv[1:]:
5454 get_waveform_plot(soundfile)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t