- Timestamp:
- Sep 21, 2014, 2:42:08 AM (10 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:
- 74dcddb
- Parents:
- 24931d5
- Location:
- python
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/ext/py-source.c
r24931d5 r11b49d7 69 69 "\n" 70 70 "Close this source now."; 71 72 static char Py_source_seek_doc[] = "" 73 "x.seek(position)\n" 74 "\n" 75 "Seek to resampled frame position."; 71 76 72 77 static PyObject * … … 236 241 { 237 242 aubio_source_close (self->o); 243 Py_RETURN_NONE; 244 } 245 246 static PyObject * 247 Pyaubio_source_seek (Py_source *self, PyObject *args) 248 { 249 uint_t err = 0; 250 251 uint_t position; 252 if (!PyArg_ParseTuple (args, "I", &position)) { 253 return NULL; 254 } 255 256 err = aubio_source_seek(self->o, position); 257 if (err != 0) { 258 PyErr_SetString (PyExc_ValueError, 259 "error when seeking in source"); 260 return NULL; 261 } 238 262 Py_RETURN_NONE; 239 263 } … … 250 274 {"close", (PyCFunction) Pyaubio_source_close, 251 275 METH_NOARGS, Py_source_close_doc}, 276 {"seek", (PyCFunction) Pyaubio_source_seek, 277 METH_VARARGS, Py_source_seek_doc}, 252 278 {NULL} /* sentinel */ 253 279 }; -
python/tests/test_source.py
r24931d5 r11b49d7 33 33 class aubio_source_read_test_case(aubio_source_test_case_base): 34 34 35 def read_from_s ink(self, f):35 def read_from_source(self, f): 36 36 total_frames = 0 37 37 while True: … … 43 43 print total_frames / f.hop_size, "blocks", "at", "%dHz" % f.samplerate, ")", 44 44 print "from", f.uri 45 return total_frames 45 46 46 47 def test_samplerate_hopsize(self): … … 49 50 f = source(p, samplerate, hop_size) 50 51 assert f.samplerate != 0 51 self.read_from_s ink(f)52 self.read_from_source(f) 52 53 53 54 def test_samplerate_none(self): … … 55 56 f = source(p) 56 57 assert f.samplerate != 0 57 self.read_from_s ink(f)58 self.read_from_source(f) 58 59 59 60 def test_samplerate_0(self): … … 61 62 f = source(p, 0) 62 63 assert f.samplerate != 0 63 self.read_from_s ink(f)64 self.read_from_source(f) 64 65 65 66 def test_wrong_samplerate(self): … … 86 87 assert f.samplerate != 0 87 88 assert f.hop_size != 0 88 self.read_from_sink(f) 89 self.read_from_source(f) 90 91 def test_seek_to_half(self): 92 from random import randint 93 for p in list_of_sounds: 94 f = source(p, 0, 0) 95 assert f.samplerate != 0 96 assert f.hop_size != 0 97 a = self.read_from_source(f) 98 c = randint(0, a) 99 f.seek(c) 100 b = self.read_from_source(f) 101 assert a == b + c 89 102 90 103 class aubio_source_readmulti_test_case(aubio_source_read_test_case): 91 104 92 def read_from_s ink(self, f):105 def read_from_source(self, f): 93 106 total_frames = 0 94 107 while True: … … 101 114 print total_frames / f.hop_size, "blocks", "at", "%dHz" % f.samplerate, ")", 102 115 print "from", f.uri 116 return total_frames 103 117 104 118 if __name__ == '__main__':
Note: See TracChangeset
for help on using the changeset viewer.