Changeset 9c8c8a6
- Timestamp:
- Jul 10, 2015, 2:34:48 AM (9 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:
- 0e362b5
- Parents:
- 31a09d2
- Location:
- python
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
python/ext/aubiomodule.c
r31a09d2 r9c8c8a6 244 244 {"db_spl", Py_aubio_db_spl, METH_VARARGS, Py_aubio_db_spl_doc}, 245 245 {"silence_detection", Py_aubio_silence_detection, METH_VARARGS, Py_aubio_silence_detection_doc}, 246 {"level_detection", Py_aubio_level_detection, METH_VARARGS, Py_aubio_level_detection_doc}, 246 247 {"window", Py_aubio_window, METH_VARARGS, Py_aubio_window_doc}, 247 248 {NULL, NULL} /* Sentinel */ -
python/ext/py-musicutils.c
r31a09d2 r9c8c8a6 112 112 return silence_detection; 113 113 } 114 115 PyObject * 116 Py_aubio_level_detection(PyObject *self, PyObject *args) 117 { 118 PyObject *input; 119 fvec_t *vec; 120 PyObject *level_detection; 121 smpl_t threshold; 122 123 if (!PyArg_ParseTuple (args, "Of:level_detection", &input, &threshold)) { 124 PyErr_SetString (PyExc_ValueError, "failed parsing arguments"); 125 return NULL; 126 } 127 128 if (input == NULL) { 129 return NULL; 130 } 131 132 vec = PyAubio_ArrayToCFvec (input); 133 if (vec == NULL) { 134 return NULL; 135 } 136 137 level_detection = Py_BuildValue("f", aubio_level_detection(vec, threshold)); 138 if (level_detection == NULL) { 139 PyErr_SetString (PyExc_ValueError, "failed computing level_detection"); 140 return NULL; 141 } 142 143 return level_detection; 144 } -
python/ext/py-musicutils.h
r31a09d2 r9c8c8a6 60 60 PyObject * Py_aubio_silence_detection(PyObject *self, PyObject *args); 61 61 62 static char Py_aubio_level_detection_doc[] = "" 63 "Get buffer level in dB SPL if over a given threshold, 1. otherwise.\n" 64 "\n" 65 "Example\n" 66 "-------\n" 67 "\n" 68 ">>> import numpy\n""" 69 ">>> level_detection(0.7*numpy.ones(1024, dtype=\"float32\"), -80)\n" 70 "0"; 71 72 PyObject * Py_aubio_level_detection(PyObject *self, PyObject *args); 73 62 74 #endif /* _PY_AUBIO_MUSICUTILS_H_ */ -
python/tests/test_musicutils.py
r31a09d2 r9c8c8a6 6 6 from math import pi 7 7 8 from aubio import window, level_lin, db_spl, silence_detection 8 from aubio import window, level_lin, db_spl, silence_detection, level_detection 9 9 10 10 from aubio import fvec … … 96 96 assert silence_detection(ones(1024, dtype="float32"), -70) == 0 97 97 98 class aubio_level_detection(TestCase): 99 def test_accept_fvec(self): 100 level_detection(fvec(1024), -70.) 101 102 def test_fail_not_fvec(self): 103 try: 104 level_detection("default", -70) 105 except ValueError, e: 106 pass 107 else: 108 self.fail('non-number input phase does not raise a TypeError') 109 110 def test_zeros_is_one(self): 111 from math import isinf 112 assert level_detection(fvec(1024), -70) == 1 113 114 def test_minus_ones_is_zero(self): 115 from numpy import ones 116 assert level_detection(ones(1024, dtype="float32"), -70) == 0 117 98 118 if __name__ == '__main__': 99 119 from unittest import main
Note: See TracChangeset
for help on using the changeset viewer.