Changeset efa62ce


Ignore:
Timestamp:
Jul 10, 2015, 12:59:23 AM (5 years ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
feature/autosink, feature/constantq, feature/pitchshift, feature/pydocstrings, feature/timestretch, master, pitchshift, sampler, timestretch, yinfft+
Children:
5a7e2c3
Parents:
5e394ecc
Message:

ext/py-musicutils.c: complete window implementation

Location:
python
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • python/ext/py-musicutils.c

    r5e394ecc refa62ce  
    44Py_aubio_window(PyObject *self, PyObject *args)
    55{
    6   PyObject *output = NULL;
    76  char_t *wintype = NULL;
    87  uint_t winlen = 0;
    9   fvec_t *window;
     8  fvec_t *window = NULL;
    109
    11   if (!PyArg_ParseTuple (args, "|sd", &wintype, &winlen)) {
    12     PyErr_SetString (PyExc_ValueError,
    13         "failed parsing arguments");
     10  if (!PyArg_ParseTuple (args, "|sI", &wintype, &winlen)) {
     11    PyErr_SetString (PyExc_ValueError, "failed parsing arguments");
    1412    return NULL;
    1513  }
    1614
    17   //return (PyObject *) PyAubio_CFvecToArray(vec);
    18   Py_RETURN_NONE;
     15  window = new_aubio_window(wintype, winlen);
     16  if (window == NULL) {
     17    PyErr_SetString (PyExc_ValueError, "failed computing window");
     18    return NULL;
     19  }
     20
     21  return (PyObject *) PyAubio_CFvecToArray(window);
    1922}
  • python/ext/py-musicutils.h

    r5e394ecc refa62ce  
    1010"-------\n"
    1111"\n"
    12 ">>> window('hanningz', 1024)";
     12">>> window('hanningz', 1024)\n"
     13"array([  0.00000000e+00,   9.41753387e-06,   3.76403332e-05, ...,\n"
     14"         8.46982002e-05,   3.76403332e-05,   9.41753387e-06], dtype=float32)";
    1315
    1416PyObject * Py_aubio_window(PyObject *self, PyObject *args);
  • python/tests/test_musicutils.py

    r5e394ecc refa62ce  
    22
    33from numpy.testing import TestCase
     4from numpy.testing.utils import assert_almost_equal
    45from aubio import window
    56
     
    2526            self.fail('non-integer window length does not raise a ValueError')
    2627
     28    def test_compute_hanning_1024(self):
     29        from numpy import cos, arange
     30        from math import pi
     31        size = 1024
     32        aubio_window = window("hanning", size)
     33        numpy_window = .5 - .5 * cos(2. * pi * arange(size) / size)
     34        assert_almost_equal(aubio_window, numpy_window)
     35
    2736if __name__ == '__main__':
    2837    from unittest import main
Note: See TracChangeset for help on using the changeset viewer.