Showing the changes to python (1 of 1 file). Show all
Unified · Split
| @@ -20,6 +20,7 @@ def aubio_parser(): · 19 unmodified lines | |||
| 20 | action="store_true", dest="show_version") | 20 | action="store_true", dest="show_version") |
| 21 | 21 | ||
| 22 | subparsers = parser.add_subparsers(title='commands', dest='command', | 22 | subparsers = parser.add_subparsers(title='commands', dest='command', |
| 23 | parser_class= AubioArgumentParser, | ||
| 23 | metavar="") | 24 | metavar="") |
| 24 | 25 | ||
| 25 | parser_add_subcommand_help(subparsers) | 26 | parser_add_subcommand_help(subparsers) |
| @@ -46,168 +47,170 @@ def parser_add_subcommand_onset(subparsers): · 20 unmodified lines | |||
| 46 | subparser = subparsers.add_parser('onset', | 47 | subparser = subparsers.add_parser('onset', |
| 47 | help='estimate time of onsets (beginning of sound event)', | 48 | help='estimate time of onsets (beginning of sound event)', |
| 48 | formatter_class = argparse.ArgumentDefaultsHelpFormatter) | 49 | formatter_class = argparse.ArgumentDefaultsHelpFormatter) |
| 49 | parser_add_input(subparser) | 50 | subparser.add_input() |
| 50 | parser_add_buf_hop_size(subparser) | 51 | subparser.add_buf_hop_size() |
| 51 | helpstr = "onset novelty function" | 52 | helpstr = "onset novelty function" |
| 52 | helpstr += " <default|energy|hfc|complex|phase|specdiff|kl|mkl|specflux>" | 53 | helpstr += " <default|energy|hfc|complex|phase|specdiff|kl|mkl|specflux>" |
| 53 | parser_add_method(subparser, helpstr=helpstr) | 54 | subparser.add_method(helpstr=helpstr) |
| 54 | parser_add_threshold(subparser) | 55 | subparser.add_threshold() |
| 55 | parser_add_silence(subparser) | 56 | subparser.add_silence() |
| 56 | parser_add_minioi(subparser) | 57 | subparser.add_minioi() |
| 57 | parser_add_time_format(subparser) | 58 | subparser.add_time_format() |
| 58 | parser_add_verbose_help(subparser) | 59 | subparser.add_verbose_help() |
| 59 | subparser.set_defaults(process=process_onset) | 60 | subparser.set_defaults(process=process_onset) |
| 60 | 61 | ||
| 61 | def parser_add_subcommand_pitch(subparsers): | 62 | def parser_add_subcommand_pitch(subparsers): |
| 62 | # pitch subcommand | 63 | # pitch subcommand |
| 63 | subparser = subparsers.add_parser('pitch', | 64 | subparser = subparsers.add_parser('pitch', |
| 64 | help='estimate fundamental frequency (monophonic)') | 65 | help='estimate fundamental frequency (monophonic)') |
| 65 | parser_add_input(subparser) | 66 | subparser.add_input() |
| 66 | parser_add_buf_hop_size(subparser, buf_size=2048) | 67 | subparser.add_buf_hop_size(buf_size=2048) |
| 67 | helpstr = "pitch detection method <default|yinfft|yin|mcomb|fcomb|schmitt>" | 68 | helpstr = "pitch detection method <default|yinfft|yin|mcomb|fcomb|schmitt>" |
| 68 | parser_add_method(subparser, helpstr=helpstr) | 69 | subparser.add_method(helpstr=helpstr) |
| 69 | parser_add_threshold(subparser) | 70 | subparser.add_threshold() |
| 70 | parser_add_pitch_unit(subparser) | 71 | subparser.add_pitch_unit() |
| 71 | parser_add_silence(subparser) | 72 | subparser.add_silence() |
| 72 | parser_add_time_format(subparser) | 73 | subparser.add_time_format() |
| 73 | parser_add_verbose_help(subparser) | 74 | subparser.add_verbose_help() |
| 74 | subparser.set_defaults(process=process_pitch) | 75 | subparser.set_defaults(process=process_pitch) |
| 75 | 76 | ||
| 76 | def parser_add_subcommand_beat(subparsers): | 77 | def parser_add_subcommand_beat(subparsers): |
| 77 | # beat subcommand | 78 | # beat subcommand |
| 78 | subparser = subparsers.add_parser('beat', | 79 | subparser = subparsers.add_parser('beat', |
| 79 | help='estimate location of beats') | 80 | help='estimate location of beats') |
| 80 | parser_add_input(subparser) | 81 | subparser.add_input() |
| 81 | parser_add_buf_hop_size(subparser, buf_size=1024, hop_size=512) | 82 | subparser.add_buf_hop_size(buf_size=1024, hop_size=512) |
| 82 | parser_add_time_format(subparser) | 83 | subparser.add_time_format() |
| 83 | parser_add_verbose_help(subparser) | 84 | subparser.add_verbose_help() |
| 84 | subparser.set_defaults(process=process_beat) | 85 | subparser.set_defaults(process=process_beat) |
| 85 | 86 | ||
| 86 | def parser_add_subcommand_tempo(subparsers): | 87 | def parser_add_subcommand_tempo(subparsers): |
| 87 | # tempo subcommand | 88 | # tempo subcommand |
| 88 | subparser = subparsers.add_parser('tempo', | 89 | subparser = subparsers.add_parser('tempo', |
| 89 | help='estimate overall tempo in bpm') | 90 | help='estimate overall tempo in bpm') |
| 90 | parser_add_input(subparser) | 91 | subparser.add_input() |
| 91 | parser_add_buf_hop_size(subparser, buf_size=1024, hop_size=512) | 92 | subparser.add_buf_hop_size(buf_size=1024, hop_size=512) |
| 92 | parser_add_time_format(subparser) | 93 | subparser.add_time_format() |
| 93 | parser_add_verbose_help(subparser) | 94 | subparser.add_verbose_help() |
| 94 | subparser.set_defaults(process=process_tempo) | 95 | subparser.set_defaults(process=process_tempo) |
| 95 | 96 | ||
| 96 | def parser_add_subcommand_notes(subparsers): | 97 | def parser_add_subcommand_notes(subparsers): |
| 97 | # notes subcommand | 98 | # notes subcommand |
| 98 | subparser = subparsers.add_parser('notes', | 99 | subparser = subparsers.add_parser('notes', |
| 99 | help='estimate midi-like notes (monophonic)') | 100 | help='estimate midi-like notes (monophonic)') |
| 100 | parser_add_input(subparser) | 101 | subparser.add_input() |
| 101 | parser_add_buf_hop_size(subparser) | 102 | subparser.add_buf_hop_size() |
| 102 | parser_add_time_format(subparser) | 103 | subparser.add_time_format() |
| 103 | parser_add_verbose_help(subparser) | 104 | subparser.add_verbose_help() |
| 104 | subparser.set_defaults(process=process_notes) | 105 | subparser.set_defaults(process=process_notes) |
| 105 | 106 | ||
| 106 | def parser_add_subcommand_mfcc(subparsers): | 107 | def parser_add_subcommand_mfcc(subparsers): |
| 107 | # mfcc subcommand | 108 | # mfcc subcommand |
| 108 | subparser = subparsers.add_parser('mfcc', | 109 | subparser = subparsers.add_parser('mfcc', |
| 109 | help='extract Mel-Frequency Cepstrum Coefficients') | 110 | help='extract Mel-Frequency Cepstrum Coefficients') |
| 110 | parser_add_input(subparser) | 111 | subparser.add_input() |
| 111 | parser_add_buf_hop_size(subparser) | 112 | subparser.add_buf_hop_size() |
| 112 | parser_add_time_format(subparser) | 113 | subparser.add_time_format() |
| 113 | parser_add_verbose_help(subparser) | 114 | subparser.add_verbose_help() |
| 114 | subparser.set_defaults(process=process_mfcc) | 115 | subparser.set_defaults(process=process_mfcc) |
| 115 | 116 | ||
| 116 | def parser_add_subcommand_melbands(subparsers): | 117 | def parser_add_subcommand_melbands(subparsers): |
| 117 | # melbands subcommand | 118 | # melbands subcommand |
| 118 | subparser = subparsers.add_parser('melbands', | 119 | subparser = subparsers.add_parser('melbands', |
| 119 | help='extract energies in Mel-frequency bands') | 120 | help='extract energies in Mel-frequency bands') |
| 120 | parser_add_input(subparser) | 121 | subparser.add_input() |
| 121 | parser_add_buf_hop_size(subparser) | 122 | subparser.add_buf_hop_size() |
| 122 | parser_add_time_format(subparser) | 123 | subparser.add_time_format() |
| 123 | parser_add_verbose_help(subparser) | 124 | subparser.add_verbose_help() |
| 124 | subparser.set_defaults(process=process_melbands) | 125 | subparser.set_defaults(process=process_melbands) |
| 125 | 126 | ||
| 126 | def parser_add_subcommand_quiet(subparsers): | 127 | def parser_add_subcommand_quiet(subparsers): |
| 127 | # quiet subcommand | 128 | # quiet subcommand |
| 128 | subparser = subparsers.add_parser('quiet', | 129 | subparser = subparsers.add_parser('quiet', |
| 129 | help='extract timestamps of quiet and loud regions') | 130 | help='extract timestamps of quiet and loud regions') |
| 130 | parser_add_input(subparser) | 131 | subparser.add_input() |
| 131 | parser_add_hop_size(subparser) | 132 | subparser.add_hop_size() |
| 132 | parser_add_silence(subparser) | 133 | subparser.add_silence() |
| 133 | parser_add_time_format(subparser) | 134 | subparser.add_time_format() |
| 134 | parser_add_verbose_help(subparser) | 135 | subparser.add_verbose_help() |
| 135 | subparser.set_defaults(process=process_quiet) | 136 | subparser.set_defaults(process=process_quiet) |
| 136 | 137 | ||
| 137 | def parser_add_input(parser): | 138 | class AubioArgumentParser(argparse.ArgumentParser): |
| 138 | parser.add_argument("source_uri", default=None, nargs='?', | 139 | |
| 139 | help="input sound file to analyse", metavar = "<source_uri>") | 140 | def add_input(self): |
| 140 | parser.add_argument("-i", "--input", dest = "source_uri2", | 141 | self.add_argument("source_uri", default=None, nargs='?', |
| 141 | help="input sound file to analyse", metavar = "<source_uri>") | 142 | help="input sound file to analyse", metavar = "<source_uri>") |
| 142 | parser.add_argument("-r", "--samplerate", | 143 | self.add_argument("-i", "--input", dest = "source_uri2", |
| 143 | metavar = "<freq>", type=int, | 144 | help="input sound file to analyse", metavar = "<source_uri>") |
| 144 | action="store", dest="samplerate", default=0, | 145 | self.add_argument("-r", "--samplerate", |
| 145 | help="samplerate at which the file should be represented") | 146 | metavar = "<freq>", type=int, |
| 146 | 147 | action="store", dest="samplerate", default=0, | |
| 147 | def parser_add_verbose_help(parser): | 148 | help="samplerate at which the file should be represented") |
| 148 | parser.add_argument("-v","--verbose", | 149 | |
| 149 | action="count", dest="verbose", default=1, | 150 | def add_verbose_help(self): |
| 150 | help="make lots of noise [default]") | 151 | self.add_argument("-v","--verbose", |
| 151 | parser.add_argument("-q","--quiet", | 152 | action="count", dest="verbose", default=1, |
| 152 | action="store_const", dest="verbose", const=0, | 153 | help="make lots of noise [default]") |
| 153 | help="be quiet") | 154 | self.add_argument("-q","--quiet", |
| 154 | 155 | action="store_const", dest="verbose", const=0, | |
| 155 | def parser_add_buf_hop_size(parser, buf_size=512, hop_size=256): | 156 | help="be quiet") |
| 156 | parser_add_buf_size(parser, buf_size=buf_size) | 157 | |
| 157 | parser_add_hop_size(parser, hop_size=hop_size) | 158 | def add_buf_hop_size(self, buf_size=512, hop_size=256): |
| 158 | 159 | self.add_buf_size(buf_size=buf_size) | |
| 159 | def parser_add_buf_size(parser, buf_size=512): | 160 | self.add_hop_size(hop_size=hop_size) |
| 160 | parser.add_argument("-B","--bufsize", | 161 | |
| 161 | action="store", dest="buf_size", default=buf_size, | 162 | def add_buf_size(self, buf_size=512): |
| 162 | metavar = "<size>", type=int, | 163 | self.add_argument("-B","--bufsize", |
| 163 | help="buffer size [default=%d]" % buf_size) | 164 | action="store", dest="buf_size", default=buf_size, |
| 164 | 165 | metavar = "<size>", type=int, | |
| 165 | def parser_add_hop_size(parser, hop_size=256): | 166 | help="buffer size [default=%d]" % buf_size) |
| 166 | parser.add_argument("-H","--hopsize", | 167 | |
| 167 | metavar = "<size>", type=int, | 168 | def add_hop_size(self, hop_size=256): |
| 168 | action="store", dest="hop_size", default=hop_size, | 169 | self.add_argument("-H","--hopsize", |
| 169 | help="overlap size [default=%d]" % hop_size) | 170 | metavar = "<size>", type=int, |
| 170 | 171 | action="store", dest="hop_size", default=hop_size, | |
| 171 | def parser_add_method(parser, method='default', helpstr='method'): | 172 | help="overlap size [default=%d]" % hop_size) |
| 172 | parser.add_argument("-m","--method", | 173 | |
| 173 | metavar = "<method>", type=str, | 174 | def add_method(self, method='default', helpstr='method'): |
| 174 | action="store", dest="method", default=method, | 175 | self.add_argument("-m","--method", |
| 175 | help="%s [default=%s]" % (helpstr, method)) | 176 | metavar = "<method>", type=str, |
| 176 | 177 | action="store", dest="method", default=method, | |
| 177 | def parser_add_threshold(parser, default=None): | 178 | help="%s [default=%s]" % (helpstr, method)) |
| 178 | parser.add_argument("-t","--threshold", | 179 | |
| 179 | metavar = "<threshold>", type=float, | 180 | def add_threshold(self, default=None): |
| 180 | action="store", dest="threshold", default=default, | 181 | self.add_argument("-t","--threshold", |
| 181 | help="threshold [default=%s]" % default) | 182 | metavar = "<threshold>", type=float, |
| 182 | 183 | action="store", dest="threshold", default=default, | |
| 183 | def parser_add_silence(parser): | 184 | help="threshold [default=%s]" % default) |
| 184 | parser.add_argument("-s", "--silence", | 185 | |
| 185 | metavar = "<value>", type=float, | 186 | def add_silence(self): |
| 186 | action="store", dest="silence", default=-70, | 187 | self.add_argument("-s", "--silence", |
| 187 | help="silence threshold") | 188 | metavar = "<value>", type=float, |
| 188 | 189 | action="store", dest="silence", default=-70, | |
| 189 | def parser_add_minioi(parser): | 190 | help="silence threshold") |
| 190 | parser.add_argument("-M", "--minioi", | 191 | |
| 191 | metavar = "<value>", type=str, | 192 | def add_minioi(self, default="12ms"): |
| 192 | action="store", dest="minioi", default="12ms", | 193 | self.add_argument("-M", "--minioi", |
| 193 | help="minimum Inter-Onset Interval") | 194 | metavar = "<value>", type=str, |
| 194 | 195 | action="store", dest="minioi", default=default, | |
| 195 | def parser_add_pitch_unit(parser, default="Hz"): | 196 | help="minimum Inter-Onset Interval [default=%s]" % default) |
| 196 | help_str = "frequency unit, should be one of Hz, midi, bin, cent" | 197 | |
| 197 | help_str += " [default=%s]" % default | 198 | def add_pitch_unit(self, default="Hz"): |
| 198 | parser.add_argument("-u", "--pitch-unit", | 199 | help_str = "frequency unit, should be one of Hz, midi, bin, cent" |
| 199 | metavar = "<value>", type=str, | 200 | help_str += " [default=%s]" % default |
| 200 | action="store", dest="pitch_unit", default=default, | 201 | self.add_argument("-u", "--pitch-unit", |
| 201 | help=help_str) | 202 | metavar = "<value>", type=str, |
| 202 | 203 | action="store", dest="pitch_unit", default=default, | |
| 203 | def parser_add_time_format(parser): | 204 | help=help_str) |
| 204 | helpstr = "select time values output format (samples, ms, seconds)" | 205 | |
| 205 | helpstr += " [default=seconds]" | 206 | def add_time_format(self): |
| 206 | parser.add_argument("-T", "--time-format", | 207 | helpstr = "select time values output format (samples, ms, seconds)" |
| 207 | metavar='format', | 208 | helpstr += " [default=seconds]" |
| 208 | dest="time_format", | 209 | self.add_argument("-T", "--time-format", |
| 209 | default=None, | 210 | metavar='format', |
| 210 | help=helpstr) | 211 | dest="time_format", |
| 212 | default=None, | ||
| 213 | help=helpstr) | ||
| 211 | 214 | ||
| 212 | # some utilities | 215 | # some utilities |
| 213 | 216 | ||