ref: f6cbefe280382d27f221cecdbed2a990985a86b2
parent: 93004d5e0bdd2735bca41834855862eecd2d03b6
author: Paul Brossier <piem@piem.org>
date: Wed Jul 11 12:38:40 EDT 2012
py-filterbank.c: add set_coeffs
--- a/interfaces/python/py-filterbank.c
+++ b/interfaces/python/py-filterbank.c
@@ -49,7 +49,7 @@
AUBIO_DEL(filterbank)
-static PyObject *
+static PyObject *
Py_filterbank_do(Py_filterbank * self, PyObject * args)
{PyObject *input;
@@ -73,7 +73,7 @@
return (PyObject *)PyAubio_CFvecToArray(out);
}
-AUBIO_MEMBERS_START(filterbank)
+AUBIO_MEMBERS_START(filterbank)
{"win_s", T_INT, offsetof (Py_filterbank, win_s), READONLY,"size of the window"},
{"n_filters", T_INT, offsetof (Py_filterbank, n_filters), READONLY,@@ -80,7 +80,7 @@
"number of filters"},
AUBIO_MEMBERS_STOP(filterbank)
-static PyObject *
+static PyObject *
Py_filterbank_set_triangle_bands (Py_filterbank * self, PyObject *args)
{uint_t err = 0;
@@ -112,7 +112,7 @@
return Py_None;
}
-static PyObject *
+static PyObject *
Py_filterbank_set_mel_coeffs_slaney (Py_filterbank * self, PyObject *args)
{uint_t err = 0;
@@ -131,7 +131,37 @@
return Py_None;
}
-static PyObject *
+static PyObject *
+Py_filterbank_set_coeffs (Py_filterbank * self, PyObject *args)
+{+ uint_t err = 0;
+
+ PyObject *input;
+ fmat_t *coeffs;
+
+ if (!PyArg_ParseTuple (args, "O", &input)) {+ return NULL;
+ }
+
+ coeffs = PyAubio_ArrayToCFmat (input);
+
+ if (coeffs == NULL) {+ PyErr_SetString (PyExc_ValueError,
+ "unable to parse input array");
+ return NULL;
+ }
+
+ err = aubio_filterbank_set_coeffs (self->o, coeffs);
+
+ if (err > 0) {+ PyErr_SetString (PyExc_ValueError,
+ "error when setting filter coefficients");
+ return NULL;
+ }
+ return Py_None;
+}
+
+static PyObject *
Py_filterbank_get_coeffs (Py_filterbank * self, PyObject *unused)
{return (PyObject *)PyAubio_CFmatToArray(
@@ -145,6 +175,8 @@
METH_VARARGS, "set coefficients of filterbank as in Auditory Toolbox"},
{"get_coeffs", (PyCFunction) Py_filterbank_get_coeffs,METH_NOARGS, "get coefficients of filterbank"},
+ {"set_coeffs", (PyCFunction) Py_filterbank_set_coeffs,+ METH_VARARGS, "set coefficients of filterbank"},
{NULL}};
--
⑨