History

fix timelines and plot sizes in onset and pitch fix timelines and plot sizes in onset and pitch

Paul Brossier committed 20 years ago

Commit 470a7721 parent 9c542652 files · +73 −68Browse files

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

Unified · Split

2 files
  1. python/aubio/task/onset.py +39 −39
  2. python/aubio/task/pitch.py +34 −29
python/aubio/task/onset.py+39−39
@@ -144,7 +144,7 @@ class taskonset(task): · 143 unmodified lines
144 import re144 import re
145 # prepare the plot145 # prepare the plot
146 g = gnuplot_create(outplot=outplot, extension=extension)146 g = gnuplot_create(outplot=outplot, extension=extension)
147 147 g('set title \'%s\'' % (re.sub('.*/','',self.input)))
148 if spectro:148 if spectro:
149 g('set size %f,%f' % (xsize,1.3*ysize) )149 g('set size %f,%f' % (xsize,1.3*ysize) )
150 else:150 else:
@@ -154,23 +154,6 @@ class taskonset(task): · 3 unmodified lines
154 # hack to align left axis154 # hack to align left axis
155 g('set lmargin 3')155 g('set lmargin 3')
156 g('set rmargin 6')156 g('set rmargin 6')
157 g('set tmargin 0')
158 g('set format x ""')
159 g('set format y "%3e"')
160 g('set noytics')
161
162 for i in range(len(oplots)):
163 # plot onset detection functions
164 g('set size %f,%f' % (xsize,0.7*ysize/(len(oplots))))
165 g('set origin 0,%f' % ((len(oplots)-float(i)-1)*0.7*ysize/(len(oplots))))
166 g('set xrange [0:%f]' % (self.lenofunc*self.params.step))
167 g('set nokey')
168 g('set yrange [0:%f]' % (1.1*oplots[i][2]))
169 g('set y2tics ("0" 0, "%d" %d)' % (round(oplots[i][2]),round(oplots[i][2])))
170 g.ylabel(oplots[i][1])
171 if i == len(oplots)-1:
172 g.xlabel('time (s)',offset=(0,0.7))
173 g.plot(*oplots[i][0])
174 157
175 if spectro:158 if spectro:
176 import Gnuplot159 import Gnuplot
@@ -187,36 +170,53 @@ class taskonset(task): · 10 unmodified lines
187 g('set rmargin 0')170 g('set rmargin 0')
188 g('set tmargin 0')171 g('set tmargin 0')
189 g('set palette rgbformulae -25,-24,-32')172 g('set palette rgbformulae -25,-24,-32')
190 g.xlabel('')173 g.xlabel('time (s)',offset=(0,1.))
191 g.ylabel('freq (Hz)')174 g.ylabel('freq (Hz)')
175 g('set origin 0,%f' % (1.0*ysize) )
176 g('set format x "%1.1f"')
192 #if log:177 #if log:
193 # g('set yrange [%f:%f]' % (max(10,minf),maxf))178 # g('set yrange [%f:%f]' % (max(10,minf),maxf))
194 # g('set log y')179 # g('set log y')
195 g.splot(Gnuplot.GridData(data,time,freq, binary=1, title=''))180 g.splot(Gnuplot.GridData(data,time,freq, binary=1, title=''))
196 g('set lmargin 3')
197 g('set rmargin 6')
198 g('set origin 0,%f' % (1.0*ysize) )
199 g('set format x "%1.1f"')
200 g.xlabel('time (s)',offset=(0,1.))
201 else:181 else:
202 # plot waveform and onsets182 # plot waveform and onsets
183 time,data = audio_to_array(self.input)
184 wplot = [make_audio_plot(time,data)] + wplot
203 g('set origin 0,%f' % (0.7*ysize) )185 g('set origin 0,%f' % (0.7*ysize) )
204 g.xlabel('time (s)',offset=(0,0.7))186 g('set size %f,%f' % (xsize,0.3*ysize))
205 g('set format y "%1f"')187 g('set format y "%1f"')
188 g('set xrange [0:%f]' % max(time))
189 g('set yrange [-1:1]')
190 g('set noytics')
191 g('set y2tics -1,1')
192 g.xlabel('time (s)',offset=(0,0.7))
193 g.ylabel('amplitude')
194 g.plot(*wplot)
206 195
207 g('set size %f,%f' % (1.*xsize, 0.3*ysize))196 # default settings for next plots
208 g('set title \'%s %s\'' % (re.sub('.*/','',self.input),self.title))197 g('unset title')
209 g('set tmargin 2')198 g('set format x ""')
210 # audio data199 g('set format y "%3e"')
211 time,data = audio_to_array(self.input)200 g('set tmargin 0')
212 wplot = [make_audio_plot(time,data)] + wplot201 g.xlabel('')
213 g('set y2tics -1,1')
214
215 g('set xrange [0:%f]' % max(time))
216 g('set yrange [-1:1]')
217 g.ylabel('amplitude')
218 g.plot(*wplot)
219
220 g('unset multiplot')
221 202
203 N = len(oplots)
204 y = 0.7*ysize # the vertical proportion of the plot taken by onset functions
205 delta = 0.035 # the constant part of y taken by last plot label and data
206 for i in range(N):
207 # plot onset detection functions
208 g('set size %f,%f' % ( xsize, (y-delta)/N))
209 g('set origin 0,%f' % ((N-i-1)*(y-delta)/N + delta ))
210 g('set nokey')
211 g('set xrange [0:%f]' % (self.lenofunc*self.params.step))
212 g('set yrange [0:%f]' % (1.1*oplots[i][2]))
213 g('set y2tics ("0" 0, "%d" %d)' % (round(oplots[i][2]),round(oplots[i][2])))
214 g.ylabel(oplots[i][1])
215 if i == N-1:
216 g('set size %f,%f' % ( xsize, (y-delta)/N + delta ) )
217 g('set origin 0,0')
218 g.xlabel('time (s)', offset=(0,0.7))
219 g('set format x')
220 g.plot(*oplots[i][0])
222 221
222 g('unset multiplot')
python/aubio/task/pitch.py+34−29
@@ -161,13 +161,10 @@ class taskpitch(task): · 160 unmodified lines
161 titles.append(self.params.pitchmode)161 titles.append(self.params.pitchmode)
162 162
163 163
164 def plotplot(self,wplot,oplots,titles,outplot=None,multiplot = 1, midi = 1, truth = 1):164 def plotplot(self,wplot,oplots,titles,outplot=None,extension=None,xsize=1.,ysize=1.,multiplot = 1, midi = 1, truth = 1):
165 from aubio.gnuplot import gnuplot_init, audio_to_array, make_audio_plot165 from aubio.gnuplot import gnuplot_create , audio_to_array, make_audio_plot
166 import re166 import re
167 import Gnuplot167 import Gnuplot
168 # audio data
169 time,data = audio_to_array(self.input)
170 f = make_audio_plot(time,data)
171 168
172 # check if ground truth exists169 # check if ground truth exists
173 if truth:170 if truth:
@@ -176,32 +173,35 @@ class taskpitch(task): · 2 unmodified lines
176 oplots = [Gnuplot.Data(timet,pitcht,with='lines',173 oplots = [Gnuplot.Data(timet,pitcht,with='lines',
177 title='ground truth')] + oplots174 title='ground truth')] + oplots
178 175
179 t = Gnuplot.Data(0,0,with='impulses') 176 g = gnuplot_create(outplot=outplot, extension=extension)
180
181 g = gnuplot_init(outplot)
182 g('set title \'%s\'' % (re.sub('.*/','',self.input)))177 g('set title \'%s\'' % (re.sub('.*/','',self.input)))
178 g('set size %f,%f' % (xsize,ysize) )
183 g('set multiplot')179 g('set multiplot')
184 # hack to align left axis180 # hack to align left axis
185 g('set lmargin 4')181 g('set lmargin 4')
186 g('set rmargin 4')182 g('set rmargin 4')
187 # plot waveform and onsets183 # plot waveform
188 g('set size 1,0.3')184 time,data = audio_to_array(self.input)
189 g('set ytics 10')185 wplot = [make_audio_plot(time,data)]
190 g('set origin 0,0.7')186 g('set origin 0,%f' % (0.7*ysize) )
187 g('set size %f,%f' % (xsize,0.3*ysize))
188 #g('set format y "%1f"')
191 g('set xrange [0:%f]' % max(time)) 189 g('set xrange [0:%f]' % max(time))
192 g('set yrange [-1:1]') 190 g('set yrange [-1:1]')
193 g('set noytics')191 g('set noytics')
194 g('set y2tics -1,1')192 g('set y2tics -1,1')
195 g.xlabel('time (s)',offset=(0,0.8))193 g.xlabel('time (s)',offset=(0,0.7))
196 g.ylabel('amplitude')194 g.ylabel('amplitude')
197 g.plot(f)195 g.plot(*wplot)
198 g('unset title')
199 # plot onset detection function
200 196
197 # default settings for next plots
198 g('unset title')
199 g('set format x ""')
200 g('set format y "%3e"')
201 g('set tmargin 0')
202 g.xlabel('')
203 g('set noclip one')
201 204
202 g('set size 1,0.7')
203 g('set origin 0,0')
204 g('set xrange [0:%f]' % max(time))
205 if not midi:205 if not midi:
206 g('set log y')206 g('set log y')
207 #g.xlabel('time (s)')207 #g.xlabel('time (s)')
@@ -211,21 +211,26 @@ class taskpitch(task): · 3 unmodified lines
211 g.ylabel('midi')211 g.ylabel('midi')
212 g('set yrange [%f:%f]' % (aubio_freqtomidi(self.params.pitchmin), aubio_freqtomidi(self.params.pitchmax)))212 g('set yrange [%f:%f]' % (aubio_freqtomidi(self.params.pitchmin), aubio_freqtomidi(self.params.pitchmax)))
213 g('set y2tics %f,%f' % (round(aubio_freqtomidi(self.params.pitchmin)+.5),12))213 g('set y2tics %f,%f' % (round(aubio_freqtomidi(self.params.pitchmin)+.5),12))
214 g('set key right top')214
215 g('set noclip one')
216 g('set format x ""')
217 if multiplot:215 if multiplot:
218 g('set tmargin 0')216 N = len(oplots)
219 for i in range(len(oplots)):217 y = 0.7*ysize # the vertical proportion of the plot taken by onset functions
220 # plot onset detection functions218 delta = 0.035 # the constant part of y taken by last plot label and data
221 g('set size 1,%f' % (0.7/(len(oplots))))219 for i in range(N):
222 g('set origin 0,%f' % ((len(oplots)-float(i)-1)*0.7/(len(oplots))))220 # plot pitch detection functions
223 g('set xrange [0:%f]' % max(time))221 g('set size %f,%f' % ( xsize, (y-delta)/N))
222 g('set origin 0,%f' % ((N-i-1)*(y-delta)/N + delta ))
224 g('set nokey')223 g('set nokey')
224 g('set xrange [0:%f]' % max(time))
225 g.ylabel(titles[i])225 g.ylabel(titles[i])
226 g.xlabel('')226 if i == N-1:
227 g('set size %f,%f' % (xsize, (y-delta)/N + delta ) )
228 g('set origin 0,0')
229 g.xlabel('time (s)', offset=(0,0.7))
230 g('set format x')
227 g.plot(oplots[i])231 g.plot(oplots[i])
228 else:232 else:
233 g('set key right top')
229 g.plot(*oplots)234 g.plot(*oplots)
230 g('unset multiplot')235 g('unset multiplot')
231 236

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