Showing the changes to python (1 of 1 file). Show all
Unified · Split
| @@ -0,0 +1,91 @@ | ||
| 1 | +#! /usr/bin/python | |
| 2 | + | |
| 3 | +"""Copyright (C) 2004 Paul Brossier <piem@altern.org> | |
| 4 | + | |
| 5 | +print aubio.__LICENSE__ for the terms of use | |
| 6 | + | |
| 7 | +or see LICENSE.txt in the numarray installation directory. | |
| 8 | +""" | |
| 9 | +__LICENSE__ = """\ | |
| 10 | + Copyright (C) 2004 Paul Brossier <piem@altern.org> | |
| 11 | + | |
| 12 | + This program is free software; you can redistribute it and/or modify | |
| 13 | + it under the terms of the GNU General Public License as published by | |
| 14 | + the Free Software Foundation; either version 2 of the License, or | |
| 15 | + (at your option) any later version. | |
| 16 | + | |
| 17 | + This program is distributed in the hope that it will be useful, | |
| 18 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 19 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 20 | + GNU General Public License for more details. | |
| 21 | + | |
| 22 | + You should have received a copy of the GNU General Public License | |
| 23 | + along with this program; if not, write to the Free Software | |
| 24 | + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
| 25 | +""" | |
| 26 | + | |
| 27 | + | |
| 28 | +__HELP__ = """\ | |
| 29 | +# required arguments | |
| 30 | + -c targetfilename | |
| 31 | + -o detectfilename | |
| 32 | +(both must be text files with 1 time a line expressed in seconds) | |
| 33 | + | |
| 34 | +# optional arguments | |
| 35 | + -D <delay> delay in seconds | |
| 36 | + -v verbose mode | |
| 37 | + -d debug mode | |
| 38 | + | |
| 39 | +# output | |
| 40 | +results:number of correct detections | |
| 41 | + number of incorrect detections | |
| 42 | + number of doubled detections | |
| 43 | + number of total detections | |
| 44 | + number of total targets | |
| 45 | + | |
| 46 | +# example: | |
| 47 | +$ aubioonset-comp -c checked-onsets.txt -o handlab-onsets.txt -v | |
| 48 | +( gd fp dd ) tot / real | |
| 49 | +( 5 4 0 ) 9 / 9 | |
| 50 | +55.5555555556 %GD 44.4444444444 %FP 0.0 %OD | |
| 51 | + | |
| 52 | +# bugs | |
| 53 | +does not scale to very long lists | |
| 54 | +""" | |
| 55 | + | |
| 56 | +import sys | |
| 57 | +from aubio.onsetcompare import onset_diffs | |
| 58 | +from aubio.txtfile import read_datafile | |
| 59 | + | |
| 60 | +# default values | |
| 61 | +fileo=None;filec=None;vmode=None;dmode=None;delay=0. | |
| 62 | +# default tolerance is 50 ms | |
| 63 | +#tol = 0.050 | |
| 64 | +tol = 0.048 | |
| 65 | + | |
| 66 | +while len(sys.argv) >=2: | |
| 67 | + option = sys.argv[1]; del sys.argv[1] | |
| 68 | + if option == '-h': print __HELP__; sys.exit() | |
| 69 | + if option == '-o': fileo = sys.argv[1]; del sys.argv[1] | |
| 70 | + if option == '-c': filec = sys.argv[1]; del sys.argv[1] | |
| 71 | + if option == '-v': vmode = 'verbose' | |
| 72 | + if option == '-d': dmode = 'debug' | |
| 73 | + if option == '-D': delay = float(sys.argv[1]); del sys.argv[1] | |
| 74 | + if option == '-tol': tol = float(sys.argv[1]); del sys.argv[1] | |
| 75 | + | |
| 76 | +# arguments required | |
| 77 | +if (not fileo) or (not filec): | |
| 78 | + print 'wrong set of arguments. use \'-h\' for help' | |
| 79 | + sys.exit('error: needs at least \'-c targets.txt -o detected.txt\'') | |
| 80 | + | |
| 81 | +# load files | |
| 82 | +ltru, lres = read_datafile(fileo,depth=0),read_datafile(filec,depth=0) | |
| 83 | + | |
| 84 | +# delay onsets as required with -D | |
| 85 | +if delay: | |
| 86 | + for i in range(len(lres)): | |
| 87 | + lres[i] = lres[i] + delay | |
| 88 | +# compute errors types | |
| 89 | +l = onset_diffs(ltru,lres,tol) | |
| 90 | +for i in l: print i | |
| 91 | + | |