Changeset 83376e9 for python/aubio/task/pitch.py
- Timestamp:
- Mar 16, 2006, 4:52:50 PM (19 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master, pitchshift, sampler, timestretch, yinfft+
- Children:
- e2b1bda
- Parents:
- 9610f0a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
python/aubio/task/pitch.py
r9610f0a r83376e9 13 13 channels=self.channels, 14 14 samplerate=self.srate, 15 omode=self.params.omode) 15 omode=self.params.omode, 16 yinthresh=self.params.yinthresh) 16 17 17 18 def __call__(self): … … 84 85 for i in range(len(values)): 85 86 time.append(values[i][0]) 86 pitch.append(aubio_freqtomidi(values[i][1])) 87 if values[i][1] == 0.0: 88 pitch.append(-1.) 89 else: 90 pitch.append(aubio_freqtomidi(values[i][1])) 87 91 return time,pitch 88 92 … … 105 109 return self.truth, self.truth-med, self.truth-avg 106 110 107 def eval(self,pitch,tol=0. 9):111 def eval(self,pitch,tol=0.5): 108 112 timet,pitcht = self.gettruth() 109 113 pitch = [aubio_freqtomidi(i) for i in pitch] … … 112 116 pitch[i] = -1 113 117 time = [ i*self.params.step for i in range(len(pitch)) ] 114 assert len(timet) == len(time) 118 #print len(timet),len(pitcht) 119 #print len(time),len(pitch) 120 if len(timet) != len(time): 121 time = time[1:len(timet)+1] 122 pitch = pitch[1:len(pitcht)+1] 123 #pitcht = [aubio_freqtomidi(i) for i in pitcht] 124 for i in range(len(pitcht)): 125 if pitcht[i] == "nan" or pitcht[i] == "-inf" or pitcht[i] == -1: 126 pitcht[i] = -1 127 assert len(timet) == len(time) 115 128 assert len(pitcht) == len(pitch) 116 129 osil, esil, opit, epit, echr = 0, 0, 0, 0, 0 … … 118 131 if pitcht[i] == -1: # currently silent 119 132 osil += 1 # count a silence 120 if pitch[i] == -1. or pitch[i] == "nan":133 if pitch[i] <= 0. or pitch[i] == "nan": 121 134 esil += 1 # found a silence 122 135 else: … … 138 151 139 152 downtime = self.params.step*numarray.arange(len(pitch)) 140 oplots.append(Gnuplot.Data(downtime,pitch,with='linespoints', 153 pitch = [aubio_freqtomidi(i) for i in pitch] 154 oplots.append(Gnuplot.Data(downtime,pitch,with='lines', 141 155 title=self.params.pitchmode)) 142 156 143 157 144 def plotplot(self,wplot,oplots,outplot=None,multiplot = 0):158 def plotplot(self,wplot,oplots,outplot=None,multiplot = 1, midi = 1): 145 159 from aubio.gnuplot import gnuplot_init, audio_to_array, make_audio_plot 146 160 import re … … 153 167 timet,pitcht = self.gettruth() 154 168 if timet and pitcht: 155 pitcht = [aubio_miditofreq(i) for i in pitcht]156 169 oplots = [Gnuplot.Data(timet,pitcht,with='lines', 157 170 title='ground truth')] + oplots … … 178 191 g('set origin 0,0') 179 192 g('set xrange [0:%f]' % max(time)) 180 g('set yrange [100:%f]' % self.params.pitchmax) 193 if not midi: 194 g('set log y') 195 #g.xlabel('time (s)') 196 g.ylabel('f0 (Hz)') 197 g('set yrange [100:%f]' % self.params.pitchmax) 198 else: 199 g.ylabel('pitch (midi)') 200 g('set yrange [%f:%f]' % (40, aubio_freqtomidi(self.params.pitchmax))) 181 201 g('set key right top') 182 202 g('set noclip one') 183 203 g('set format x ""') 184 g('set log y')185 #g.xlabel('time (s)')186 g.ylabel('f0 (Hz)')187 204 if multiplot: 188 205 for i in range(len(oplots)):
Note: See TracChangeset
for help on using the changeset viewer.