History

ext/py-musicutils.c: add level_detection (closes #21)

Paul Brossier committed 11 years ago

Commit 9c8c8a61 parent 31a09d24 files · +65 −1Browse files

Showing the changes to python/ext (3 of 4 files). Show all

Unified · Split

3 files
  1. python/ext/aubiomodule.c +1 −0
  2. python/ext/py-musicutils.c +31 −0
  3. python/ext/py-musicutils.h +12 −0
python/ext/aubiomodule.c+1−0
@@ -243,6 +243,7 @@ static PyMethodDef aubio_methods[] = { · 242 unmodified lines
243 {"level_lin", Py_aubio_level_lin, METH_VARARGS, Py_aubio_level_lin_doc},243 {"level_lin", Py_aubio_level_lin, METH_VARARGS, Py_aubio_level_lin_doc},
244 {"db_spl", Py_aubio_db_spl, METH_VARARGS, Py_aubio_db_spl_doc},244 {"db_spl", Py_aubio_db_spl, METH_VARARGS, Py_aubio_db_spl_doc},
245 {"silence_detection", Py_aubio_silence_detection, METH_VARARGS, Py_aubio_silence_detection_doc},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 {"window", Py_aubio_window, METH_VARARGS, Py_aubio_window_doc},247 {"window", Py_aubio_window, METH_VARARGS, Py_aubio_window_doc},
247 {NULL, NULL} /* Sentinel */248 {NULL, NULL} /* Sentinel */
248};249};
python/ext/py-musicutils.c+31−0
@@ -111,3 +111,34 @@ Py_aubio_silence_detection(PyObject *self, PyObject *args) · 110 unmodified lines
111 111
112 return silence_detection;112 return silence_detection;
113}113}
114
115PyObject *
116Py_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+12−0
@@ -59,4 +59,16 @@ static char Py_aubio_silence_detection_doc[] = "" · 58 unmodified lines
59 59
60PyObject * Py_aubio_silence_detection(PyObject *self, PyObject *args);60PyObject * Py_aubio_silence_detection(PyObject *self, PyObject *args);
61 61
62static 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
72PyObject * Py_aubio_level_detection(PyObject *self, PyObject *args);
73
62#endif /* _PY_AUBIO_MUSICUTILS_H_ */74#endif /* _PY_AUBIO_MUSICUTILS_H_ */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t