History

python/demos/demo_onset_file.py: also plot descriptor and thresholded descriptor

Paul Brossier committed 13 years ago

Commit f36277c1 parent ae817261 file · +24 −9Browse files

Showing the changes to python (1 of 1 file). Show all

Unified · Split

python/demos/demo_onset_file.py+24−9
@@ -19,6 +19,9 @@ onsets = [] · 18 unmodified lines
1919 s = source(filename, samplerate, hop_s)
2020 o = onset("default", win_s, hop_s)
2121
22+desc = []
23+tdesc = []
24+
2225 block_read = 0
2326 allsamples_max = zeros(0,)
2427 while True:
@@ -26,6 +29,8 @@ while True: · 1 unmodified line
2629 new_maxes = (abs(samples.reshape(hop_s/downsample, downsample))).max(axis=0)
2730 allsamples_max = hstack([allsamples_max, new_maxes])
2831 isbeat = o(samples)
32+ desc.append(o.get_descriptor())
33+ tdesc.append(o.get_thresholded_descriptor())
2934 if isbeat:
3035 thisbeat = (block_read - 4. + isbeat[0]) * hop_s / samplerate
3136 print "%.4f" % thisbeat
@@ -35,14 +40,24 @@ while True: · 3 unmodified lines
3540
3641 # do plotting
3742 from numpy import arange
38−from pylab import plot, show, xlabel, ylabel, legend, ylim, subplot, axis
43+import matplotlib.pyplot as plt
3944 allsamples_max = (allsamples_max > 0) * allsamples_max
4045 allsamples_max_times = [ float(t) * hop_s / downsample / samplerate for t in range(len(allsamples_max)) ]
41−plot(allsamples_max_times, allsamples_max, '-b')
42−plot(allsamples_max_times, -allsamples_max, '-b')
43−axis(xmin = 0., xmax = max(allsamples_max_times) )
44−for stamp in onsets: plot([stamp, stamp], [-1., 1.], '.-r')
45−xlabel('time (s)')
46−ylabel('amplitude')
47−show()
48−
46+plt1 = plt.axes([0.1, 0.75, 0.8, 0.19])
47+plt2 = plt.axes([0.1, 0.1, 0.8, 0.65], sharex = plt1)
48+plt.rc('lines',linewidth='.8')
49+plt1.plot(allsamples_max_times, allsamples_max, '-b')
50+plt1.plot(allsamples_max_times, -allsamples_max, '-b')
51+for stamp in onsets: plt1.plot([stamp, stamp], [-1., 1.], '-r')
52+plt1.axis(xmin = 0., xmax = max(allsamples_max_times) )
53+plt1.xaxis.set_visible(False)
54+desc_times = [ float(t) * hop_s / samplerate for t in range(len(desc)) ]
55+desc_plot = [d / max(desc) for d in desc]
56+plt2.plot(desc_times, desc_plot, '-g')
57+tdesc_plot = [d / max(desc) for d in tdesc]
58+for stamp in onsets: plt2.plot([stamp, stamp], [min(tdesc_plot), max(desc_plot)], '-r')
59+plt2.plot(desc_times, tdesc_plot, '-y')
60+plt2.axis(ymin = min(tdesc_plot), ymax = max(desc_plot))
61+plt.xlabel('time (s)')
62+#plt.savefig('/tmp/t.png', dpi=200)
63+plt.show()

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