Changes in / [cc3f129:de9178e]
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
azure-pipelines.yml
rcc3f129 rde9178e 1 1 # configuration file for azure continuous integration 2 2 jobs: 3 4 3 - job: linux 5 4 pool: 6 5 vmImage: 'Ubuntu 16.04' 6 7 7 steps: 8 8 - script: | 9 9 make 10 10 displayName: 'make' 11 env:12 CFLAGS: -Werror13 14 11 - job: windows 15 12 pool: 16 13 vmIMage: 'VS2017-Win2016' 14 17 15 steps: 18 16 - script: | … … 26 24 pool: 27 25 vmIMage: macOS-10.13 26 28 27 steps: 29 28 - script: | … … 35 34 make 36 35 displayName: 'make' 37 env:38 CFLAGS: -Werror -
doc/about.rst
rcc3f129 rde9178e 60 60 ------- 61 61 62 aubio is a `free <http s://www.debian.org/intro/free>`_ and `open source62 aubio is a `free <http://www.debian.org/intro/free>`_ and `open source 63 63 <http://www.opensource.org/docs/definition.php>`_ software; **you** can 64 64 redistribute it and/or modify it under the terms of the `GNU -
doc/aubiomfcc.txt
rcc3f129 rde9178e 52 52 url: 53 53 54 http s://engineering.purdue.edu/~malcolm/interval/1998-010/ (see file mfcc.m)54 http://cobweb.ecn.purdue.edu/~malcolm/interval/1998-010/ (see file mfcc.m) 55 55 56 56 SEE ALSO -
doc/conf.py
rcc3f129 rde9178e 46 46 # General information about the project. 47 47 project = u'aubio' 48 copyright = u'201 8, Paul Brossier'48 copyright = u'2016, Paul Brossier' 49 49 50 50 # The version info for the project you're documenting, acts as replacement for -
doc/python_module.rst
rcc3f129 rde9178e 80 80 .. _demo_filter.py: https://github.com/aubio/aubio/blob/master/python/demos/demo_filter.py 81 81 .. _python tests: https://github.com/aubio/aubio/blob/master/python/tests 82 -
python/ext/aubiomodule.c
rcc3f129 rde9178e 118 118 smpl_t output; 119 119 120 if (!PyArg_ParseTuple (args, 121 "" AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR, 122 &input, &samplerate, &fftsize)) { 120 if (!PyArg_ParseTuple (args, "|" AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR , &input, &samplerate, &fftsize)) { 123 121 return NULL; 124 122 } … … 135 133 smpl_t output; 136 134 137 if (!PyArg_ParseTuple (args, 138 "" AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR, 139 &input, &samplerate, &fftsize)) { 135 if (!PyArg_ParseTuple (args, "|" AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR , &input, &samplerate, &fftsize)) { 140 136 return NULL; 141 137 } … … 152 148 smpl_t output; 153 149 154 if (!PyArg_ParseTuple (args, 155 "" AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR, 156 &input, &samplerate, &fftsize)) { 150 if (!PyArg_ParseTuple (args, "|" AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR, &input, &samplerate, &fftsize)) { 157 151 return NULL; 158 152 } … … 169 163 smpl_t output; 170 164 171 if (!PyArg_ParseTuple (args, 172 "" AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR, 173 &input, &samplerate, &fftsize)) { 165 if (!PyArg_ParseTuple (args, "|" AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR AUBIO_NPY_SMPL_CHR, &input, &samplerate, &fftsize)) { 174 166 return NULL; 175 167 } -
python/ext/py-filterbank.c
rcc3f129 rde9178e 95 95 if (self->vec.length != self->win_s / 2 + 1) { 96 96 PyErr_Format(PyExc_ValueError, 97 "input cvec has length %d, but f ilterbankexpects length %d",97 "input cvec has length %d, but fft expects length %d", 98 98 self->vec.length, self->win_s / 2 + 1); 99 99 return NULL; … … 140 140 if (err > 0) { 141 141 PyErr_SetString (PyExc_ValueError, 142 "error when running set_triangle_bands");142 "error when setting filter to A-weighting"); 143 143 return NULL; 144 144 } … … 159 159 if (err > 0) { 160 160 PyErr_SetString (PyExc_ValueError, 161 "error when running set_mel_coeffs_slaney");161 "error when setting filter to A-weighting"); 162 162 return NULL; 163 163 } -
python/lib/aubio/cmd.py
rcc3f129 rde9178e 248 248 action = "store", dest = "cut_until_nslices", default = None, 249 249 help="how many extra slices should be added at the end of each slice") 250 self.add_argument("--create-first",251 action = "store_true", dest = "create_first", default = False,252 help="always include first slice")253 250 254 251 # some utilities … … 503 500 def main(): 504 501 parser = aubio_parser() 505 if sys.version_info[0] != 3: 506 # on py2, create a dummy ArgumentParser to workaround the 507 # optional subcommand issue. See https://bugs.python.org/issue9253 508 # This ensures that: 509 # - version string is shown when only '-V' is passed 510 # - help is printed if '-V' is passed with any other argument 511 # - any other argument get forwarded to the real parser 512 parser_root = argparse.ArgumentParser(add_help=False) 513 parser_root.add_argument('-V', '--version', help="show version", 514 action="store_true", dest="show_version") 515 args, extras = parser_root.parse_known_args() 516 if args.show_version == False: # no -V, forward to parser 517 args = parser.parse_args(extras, namespace=args) 518 elif len(extras) != 0: # -V with other arguments, print help 519 parser.print_help() 520 sys.exit(1) 521 else: # in py3, we can simply use parser directly 522 args = parser.parse_args() 502 args = parser.parse_args() 523 503 if 'show_version' in args and args.show_version: 524 504 sys.stdout.write('aubio version ' + aubio.version + '\n') -
python/lib/aubio/cut.py
rcc3f129 rde9178e 102 102 s = source(source_uri, samplerate, hopsize) 103 103 if samplerate == 0: 104 samplerate = s. samplerate104 samplerate = s.get_samplerate() 105 105 options.samplerate = samplerate 106 106 … … 151 151 timestamps, timestamps_end = timestamps_end, 152 152 output_dir = options.output_directory, 153 samplerate = options.samplerate, 154 create_first = options.create_first) 153 samplerate = options.samplerate) 155 154 156 155 def main(): -
python/lib/aubio/slicing.py
rcc3f129 rde9178e 7 7 8 8 def slice_source_at_stamps(source_file, timestamps, timestamps_end=None, 9 output_dir=None, samplerate=0, hopsize=256, 10 create_first=False): 9 output_dir=None, samplerate=0, hopsize=256): 11 10 """ slice a sound file at given timestamps """ 12 11 … … 14 13 raise ValueError("no timestamps given") 15 14 16 if timestamps[0] != 0 and create_first:15 if timestamps[0] != 0: 17 16 timestamps = [0] + timestamps 18 17 if timestamps_end is not None: … … 20 19 21 20 if timestamps_end is not None: 22 if len(timestamps_end) == len(timestamps) - 1: 23 timestamps_end = timestamps_end + [_max_timestamp] 24 elif len(timestamps_end) != len(timestamps): 21 if len(timestamps_end) != len(timestamps): 25 22 raise ValueError("len(timestamps_end) != len(timestamps)") 26 23 else: … … 52 49 vec, read = _source.do_multi() 53 50 # if the total number of frames read will exceed the next region start 54 whilelen(regions) and total_frames + read >= regions[0][0]:51 if len(regions) and total_frames + read >= regions[0][0]: 55 52 #print "getting", regions[0], "at", total_frames 56 53 # get next region … … 79 76 # write remaining samples from current region 80 77 _sink.do_multi(vec[:, start:remaining], remaining - start) 81 #print ("closing region", "remaining", remaining)78 #print "closing region", "remaining", remaining 82 79 # close this file 83 80 _sink.close() … … 86 83 _sink.do_multi(vec[:, start:read], read - start) 87 84 total_frames += read 88 # remove old slices89 slices = list(filter(lambda s: s['end_stamp'] > total_frames,90 slices))91 85 if read < hopsize: 92 86 break -
python/tests/test_aubio_cmd.py
rcc3f129 rde9178e 20 20 21 21 def test_samples2seconds(self): 22 self.assertEqual(aubio.cmd.samples2seconds(3200, 32000), 23 "0.100000\t") 22 self.assertEqual(aubio.cmd.samples2seconds(3200, 32000), "0.100000\t") 24 23 25 24 def test_samples2milliseconds(self): 26 self.assertEqual(aubio.cmd.samples2milliseconds(3200, 32000), 27 "100.000000\t") 25 self.assertEqual(aubio.cmd.samples2milliseconds(3200, 32000), "100.000000\t") 28 26 29 27 def test_samples2samples(self): 30 self.assertEqual(aubio.cmd.samples2samples(3200, 32000), 31 "3200\t") 28 self.assertEqual(aubio.cmd.samples2samples(3200, 32000), "3200\t") 32 29 33 30 if __name__ == '__main__': -
python/tests/test_slicing.py
rcc3f129 rde9178e 24 24 def test_slice_start_only_no_zero(self): 25 25 regions_start = [i*1000 for i in range(1, n_slices)] 26 slice_source_at_stamps(self.source_file, regions_start, 27 output_dir = self.output_dir, create_first=True) 26 slice_source_at_stamps(self.source_file, regions_start, output_dir = self.output_dir) 28 27 29 28 def test_slice_start_beyond_end(self): 30 29 regions_start = [i*1000 for i in range(1, n_slices)] 31 30 regions_start += [count_samples_in_file(self.source_file) + 1000] 32 slice_source_at_stamps(self.source_file, regions_start, 33 output_dir = self.output_dir, create_first=True) 31 slice_source_at_stamps(self.source_file, regions_start, output_dir = self.output_dir) 34 32 35 33 def test_slice_start_every_blocksize(self): 36 34 hopsize = 200 37 regions_start = [i*hopsize for i in range( 0, n_slices)]35 regions_start = [i*hopsize for i in range(1, n_slices)] 38 36 slice_source_at_stamps(self.source_file, regions_start, output_dir = self.output_dir, 39 37 hopsize = 200) 40 41 def test_slice_start_every_half_blocksize(self):42 hopsize = 20043 regions_start = [i*hopsize//2 for i in range(0, n_slices)]44 slice_source_at_stamps(self.source_file, regions_start,45 output_dir = self.output_dir, hopsize = 200)46 38 47 39 def tearDown(self): … … 100 92 "number of samples written different from number of original samples") 101 93 102 def test_slice_start_and_ends_with_missing_end(self):103 regions_start = [i*1000 for i in range(n_slices)]104 regions_ends = [r-1 for r in regions_start[1:]]105 slice_source_at_stamps(self.source_file, regions_start, regions_ends,106 output_dir = self.output_dir)107 written_samples = count_samples_in_directory(self.output_dir)108 original_samples = count_samples_in_file(self.source_file)109 total_files = count_files_in_directory(self.output_dir)110 assert_equal(n_slices, total_files,111 "number of slices created different from expected")112 assert_equal(written_samples, original_samples,113 "number of samples written different from number of original samples")114 115 94 def tearDown(self): 116 95 shutil.rmtree(self.output_dir) … … 155 134 regions_end = None 156 135 slice_source_at_stamps (self.source_file, regions_start, regions_end, 157 output_dir = self.output_dir , create_first=True)136 output_dir = self.output_dir) 158 137 total_files = count_files_in_directory(self.output_dir) 159 138 assert_equal(n_slices, total_files, -
src/io/source_avcodec.c
rcc3f129 rde9178e 453 453 goto beach; 454 454 } 455 #else456 #warning "avutil < 53 is deprecated, crashes might occur on corrupt files"457 455 #endif 458 456 -
src/spectral/filterbank_mel.h
rcc3f129 rde9178e 59 59 60 60 The filter coefficients are built according to Malcolm Slaney's Auditory 61 Toolbox, available online at the following address (see file mfcc.m): 62 63 https://engineering.purdue.edu/~malcolm/interval/1998-010/ 61 Toolbox, available at http://engineering.purdue.edu/~malcolm/interval/1998-010/ 62 (see file mfcc.m). 64 63 65 64 */ -
src/spectral/mfcc.h
rcc3f129 rde9178e 27 27 28 28 The implementation follows the specifications established by Malcolm Slaney 29 in its Auditory Toolbox, available online at the following address (see 30 file mfcc.m): 29 in its Auditory Toolbox, available online (see file mfcc.m). 31 30 32 http s://engineering.purdue.edu/~malcolm/interval/1998-010/31 http://engineering.ecn.purdue.edu/~malcolm/interval/1998-010/ 33 32 34 33 \example spectral/test-mfcc.c -
src/spectral/phasevoc.c
rcc3f129 rde9178e 213 213 synthold[i] += synth[i + pv->hop_s] * pv->scale; 214 214 } 215 216 uint_t aubio_pvoc_get_win(aubio_pvoc_t* pv)217 {218 return pv->win_s;219 }220 221 uint_t aubio_pvoc_get_hop(aubio_pvoc_t* pv)222 {223 return pv->hop_s;224 } -
src/spectral/phasevoc.h
rcc3f129 rde9178e 89 89 */ 90 90 uint_t aubio_pvoc_get_win(aubio_pvoc_t* pv); 91 92 91 /** get hop size 93 92 -
src/synth/wavetable.c
rcc3f129 rde9178e 165 165 aubio_wavetable_set_amp (s, 0.); 166 166 //s->last_pos = 0; 167 return aubio_wavetable_set_playing (s, 0);167 return aubio_wavetable_set_playing (s, 1); 168 168 } 169 169 -
src/synth/wavetable.h
rcc3f129 rde9178e 51 51 */ 52 52 aubio_wavetable_t * new_aubio_wavetable(uint_t samplerate, uint_t hop_size); 53 54 /** load source in wavetable 55 56 \param o wavetable, created by new_aubio_wavetable() 57 \param uri the uri of the source to load 58 59 \return 0 if successful, non-zero otherwise 60 61 */ 62 uint_t aubio_wavetable_load( aubio_wavetable_t * o, const char_t * uri ); 53 63 54 64 /** process wavetable function
Note: See TracChangeset
for help on using the changeset viewer.