Changes in / [6203a70:81fe7d30]


Ignore:
Files:
10 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • python/ext/aubiomodule.c

    r6203a70 r81fe7d30  
    243243  {"level_detection", Py_aubio_level_detection, METH_VARARGS, Py_aubio_level_detection_doc},
    244244  {"window", Py_aubio_window, METH_VARARGS, Py_aubio_window_doc},
    245   {"shift", Py_aubio_shift, METH_VARARGS, Py_aubio_shift_doc},
    246   {"ishift", Py_aubio_ishift, METH_VARARGS, Py_aubio_ishift_doc},
    247245  {NULL, NULL, 0, NULL} /* Sentinel */
    248246};
  • python/ext/py-musicutils.c

    r6203a70 r81fe7d30  
    134134  return level_detection;
    135135}
    136 
    137 PyObject *
    138 Py_aubio_shift(PyObject *self, PyObject *args)
    139 {
    140   PyObject *input;
    141   fvec_t vec;
    142 
    143   if (!PyArg_ParseTuple (args, "O:shift", &input)) {
    144     return NULL;
    145   }
    146 
    147   if (input == NULL) {
    148     return NULL;
    149   }
    150 
    151   if (!PyAubio_ArrayToCFvec(input, &vec)) {
    152     return NULL;
    153   }
    154 
    155   fvec_shift(&vec);
    156 
    157   //Py_RETURN_NONE;
    158   return (PyObject *) PyAubio_CFvecToArray(&vec);
    159 }
    160 
    161 PyObject *
    162 Py_aubio_ishift(PyObject *self, PyObject *args)
    163 {
    164   PyObject *input;
    165   fvec_t vec;
    166 
    167   if (!PyArg_ParseTuple (args, "O:shift", &input)) {
    168     return NULL;
    169   }
    170 
    171   if (input == NULL) {
    172     return NULL;
    173   }
    174 
    175   if (!PyAubio_ArrayToCFvec(input, &vec)) {
    176     return NULL;
    177   }
    178 
    179   fvec_ishift(&vec);
    180 
    181   //Py_RETURN_NONE;
    182   return (PyObject *) PyAubio_CFvecToArray(&vec);
    183 }
  • python/ext/py-musicutils.h

    r6203a70 r81fe7d30  
    7272PyObject * Py_aubio_level_detection(PyObject *self, PyObject *args);
    7373
    74 static char Py_aubio_shift_doc[] = ""
    75 "Swap left and right partitions of a vector\n"
    76 "\n"
    77 "Returns the swapped vector. The input vector is also modified.\n"
    78 "\n"
    79 "For a vector of length N, the partition is split at index N - N//2.\n"
    80 "\n"
    81 "Example\n"
    82 "-------\n"
    83 "\n"
    84 ">>> import numpy\n"
    85 ">>> shift(numpy.arange(3, dtype=aubio.float_type))\n"
    86 "array([2., 0., 1.], dtype=" AUBIO_NPY_SMPL_STR ")";
    87 PyObject * Py_aubio_shift(PyObject *self, PyObject *args);
    88 
    89 static char Py_aubio_ishift_doc[] = ""
    90 "Swap right and left partitions of a vector\n"
    91 "\n"
    92 "Returns the swapped vector. The input vector is also modified.\n"
    93 "\n"
    94 "Unlike with shift(), the partition is split at index N//2.\n"
    95 "\n"
    96 "Example\n"
    97 "-------\n"
    98 "\n"
    99 ">>> import numpy\n"
    100 ">>> ishift(numpy.arange(3, dtype=aubio.float_type))\n"
    101 "array([1., 2., 0.], dtype=" AUBIO_NPY_SMPL_STR ")";
    102 PyObject * Py_aubio_ishift(PyObject *self, PyObject *args);
    103 
    10474#endif /* PY_AUBIO_MUSICUTILS_H */
  • python/lib/gen_code.py

    r6203a70 r81fe7d30  
    8585        'filterbank': 'self->n_filters',
    8686        'tss': 'self->buf_size',
    87         'dct': 'self->size',
    8887        'constantq': 'aubio_constantq_get_numbins (self->o)',
    8988        }
     
    181180        self.do_outputs = get_params_types_names(self.do_proto)[2:]
    182181        struct_output_str = ["PyObject *{0[name]}; {1} c_{0[name]}".format(i, i['type'][:-1]) for i in self.do_outputs]
    183         if len(self.prototypes['rdo']):
    184             rdo_outputs = get_params_types_names(prototypes['rdo'][0])[2:]
    185             struct_output_str += ["PyObject *{0[name]}; {1} c_{0[name]}".format(i, i['type'][:-1]) for i in rdo_outputs]
    186             self.outputs += rdo_outputs
    187182        self.struct_outputs = ";\n    ".join(struct_output_str)
    188183
     
    199194            out += self.gen_del()
    200195            out += self.gen_do()
    201             if len(self.prototypes['rdo']):
    202                 self.do_proto = self.prototypes['rdo'][0]
    203                 self.do_inputs = [get_params_types_names(self.do_proto)[1]]
    204                 self.do_outputs = get_params_types_names(self.do_proto)[2:]
    205                 out += self.gen_do(method='rdo')
    206196            out += self.gen_memberdef()
    207197            out += self.gen_set()
     
    384374        return out
    385375
    386     def gen_do(self, method = 'do'):
     376    def gen_do(self):
    387377        out = """
    388378// do {shortname}
    389379static PyObject*
    390 Pyaubio_{shortname}_{method}  (Py_{shortname} * self, PyObject * args)
    391 {{""".format(method = method, **self.__dict__)
     380Py_{shortname}_do  (Py_{shortname} * self, PyObject * args)
     381{{""".format(**self.__dict__)
    392382        input_params = self.do_inputs
    393383        output_params = self.do_outputs
     
    529519  {{"{shortname}", (PyCFunction) Py{name},
    530520    METH_NOARGS, ""}},""".format(name = name, shortname = shortname)
    531         for m in self.prototypes['rdo']:
    532             name = get_name(m)
    533             shortname = name.replace('aubio_%s_' % self.shortname, '')
    534             out += """
    535   {{"{shortname}", (PyCFunction) Py{name},
    536     METH_VARARGS, ""}},""".format(name = name, shortname = shortname)
    537521        out += """
    538522  {NULL} /* sentinel */
     
    560544  0,
    561545  0,
    562   (ternaryfunc)Pyaubio_{shortname}_do,
     546  (ternaryfunc)Py_{shortname}_do,
    563547  0,
    564548  0,
  • python/lib/gen_external.py

    r6203a70 r81fe7d30  
    182182            shortname = o[6:-2]  # without aubio_ prefix and _t suffix
    183183
    184         lib[shortname] = {'struct': [], 'new': [], 'del': [], 'do': [], 'rdo': [], 'get': [], 'set': [], 'other': []}
     184        lib[shortname] = {'struct': [], 'new': [], 'del': [], 'do': [], 'get': [], 'set': [], 'other': []}
    185185        lib[shortname]['longname'] = o
    186186        lib[shortname]['shortname'] = shortname
     
    196196                elif '_do' in fn:
    197197                    lib[shortname]['do'].append(fn)
    198                 elif '_rdo' in fn:
    199                     lib[shortname]['rdo'].append(fn)
    200198                elif 'new_' in fn:
    201199                    lib[shortname]['new'].append(fn)
  • src/aubio.h

    r6203a70 r81fe7d30  
    183183#include "temporal/c_weighting.h"
    184184#include "spectral/fft.h"
    185 #include "spectral/dct.h"
    186185#include "spectral/phasevoc.h"
    187186#include "spectral/constantq.h"
  • src/aubio_priv.h

    r6203a70 r81fe7d30  
    8686#define aubio_vDSP_mmov       vDSP_mmov
    8787#define aubio_vDSP_vmul       vDSP_vmul
    88 #define aubio_vDSP_vsmul      vDSP_vsmul
    89 #define aubio_vDSP_vsadd      vDSP_vsadd
    9088#define aubio_vDSP_vfill      vDSP_vfill
    9189#define aubio_vDSP_meanv      vDSP_meanv
     
    10098#define aubio_vDSP_mmov       vDSP_mmovD
    10199#define aubio_vDSP_vmul       vDSP_vmulD
    102 #define aubio_vDSP_vsmul      vDSP_vsmulD
    103 #define aubio_vDSP_vsadd      vDSP_vsaddD
    104100#define aubio_vDSP_vfill      vDSP_vfillD
    105101#define aubio_vDSP_meanv      vDSP_meanvD
  • src/spectral/mfcc.c

    r6203a70 r81fe7d30  
    2929#include "spectral/filterbank.h"
    3030#include "spectral/filterbank_mel.h"
    31 #include "spectral/dct.h"
    3231#include "spectral/mfcc.h"
    33 
    34 #undef HAVE_SLOW_DCT
    3532
    3633/** Internal structure for mfcc object */
     
    4441  aubio_filterbank_t *fb;   /** filter bank */
    4542  fvec_t *in_dct;           /** input buffer for dct * [fb->n_filters] */
    46 #if defined(HAVE_SLOW_DCT)
    4743  fmat_t *dct_coeffs;       /** DCT transform n_filters * n_coeffs */
    48 #else
    49   aubio_dct_t *dct;
    50   fvec_t *output;
    51 #endif
    5244};
    5345
     
    6052  /* allocate space for mfcc object */
    6153  aubio_mfcc_t *mfcc = AUBIO_NEW (aubio_mfcc_t);
    62 #if defined(HAVE_SLOW_DCT)
    6354  smpl_t scaling;
    6455
    6556  uint_t i, j;
    66 #endif
    6757
    6858  mfcc->win_s = win_s;
     
    7868  mfcc->in_dct = new_fvec (n_filters);
    7969
    80 #if defined(HAVE_SLOW_DCT)
    8170  mfcc->dct_coeffs = new_fmat (n_coefs, n_filters);
    8271
     
    9180    mfcc->dct_coeffs->data[0][i] *= SQRT (2.) / 2.;
    9281  }
    93 #else
    94   mfcc->dct = new_aubio_dct (n_filters);
    95   mfcc->output = new_fvec (n_filters);
    96 #endif
    9782
    9883  return mfcc;
     
    10893  /* delete buffers */
    10994  del_fvec (mf->in_dct);
    110 #if defined(HAVE_SLOW_DCT)
    11195  del_fmat (mf->dct_coeffs);
    112 #else
    113   del_aubio_dct (mf->dct);
    114   del_fvec (mf->output);
    115 #endif
    11696
    11797  /* delete mfcc object */
     
    123103aubio_mfcc_do (aubio_mfcc_t * mf, const cvec_t * in, fvec_t * out)
    124104{
    125 #ifndef HAVE_SLOW_DCT
    126   fvec_t tmp;
    127 #endif
    128105  /* compute filterbank */
    129106  aubio_filterbank_do (mf->fb, in, mf->in_dct);
     
    136113
    137114  /* compute mfccs */
    138 #if defined(HAVE_SLOW_DCT)
    139115  fmat_vecmul(mf->dct_coeffs, mf->in_dct, out);
    140 #else
    141   aubio_dct_do(mf->dct, mf->in_dct, mf->output);
    142   // copy only first n_coeffs elements
    143   // TODO assert mf->output->length == n_coeffs
    144   tmp.data = mf->output->data;
    145   tmp.length = out->length;
    146   fvec_copy(&tmp, out);
    147 #endif
    148116
    149117  return;
Note: See TracChangeset for help on using the changeset viewer.