Changeset c9ca2608 for src/spectral


Ignore:
Timestamp:
Sep 15, 2018, 5:34:21 PM (6 years ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master
Children:
3aa60b2
Parents:
3aac194 (diff), ad3770f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into feature/fastmfcc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/spectral/dct.c

    r3aac194 rc9ca2608  
    4141
    4242#if defined(HAVE_ACCELERATE)
    43 typedef struct _aubio_dct_opt_t aubio_dct_accelerate_t;
     43typedef struct _aubio_dct_accelerate_t aubio_dct_accelerate_t;
    4444extern aubio_dct_accelerate_t * new_aubio_dct_accelerate (uint_t size);
    4545extern void aubio_dct_accelerate_do(aubio_dct_accelerate_t *s, const fvec_t *input, fvec_t *output);
     
    4747extern void del_aubio_dct_accelerate (aubio_dct_accelerate_t *s);
    4848#elif defined(HAVE_FFTW3)
    49 typedef struct _aubio_dct_opt_t aubio_dct_fftw_t;
     49typedef struct _aubio_dct_fftw_t aubio_dct_fftw_t;
    5050extern aubio_dct_fftw_t * new_aubio_dct_fftw (uint_t size);
    5151extern void aubio_dct_fftw_do(aubio_dct_fftw_t *s, const fvec_t *input, fvec_t *output);
     
    8484  if ((sint_t)size <= 0) goto beach;
    8585#if defined(HAVE_ACCELERATE)
    86   // TODO check
    8786  // vDSP supports sizes = f * 2 ** n, where n >= 4 and f in [1, 3, 5, 15]
    8887  // see https://developer.apple.com/documentation/accelerate/1449930-vdsp_dct_createsetup
    89   if (aubio_is_power_of_two(size/16) != 1
    90       || (size/16 != 3 && size/16 != 5 && size/16 != 15)) {
    91     goto plain;
     88  {
     89    uint_t radix = size;
     90    uint_t order = 0;
     91    while ((radix / 2) * 2 == radix) {
     92      radix /= 2;
     93      order++;
     94    }
     95    if (order < 4 || (radix != 1 && radix != 3 && radix != 5 && radix != 15)) {
     96      goto plain;
     97    }
    9298  }
    9399  s->dct = (void *)new_aubio_dct_accelerate (size);
Note: See TracChangeset for help on using the changeset viewer.