#include "sample.h"
#include "mathutils.h"
-void window(smpl_t *w, uint_t size, window_type_t wintype) {
+void aubio_window(smpl_t *w, uint_t size, aubio_window_type wintype) {
uint_t i;
switch(wintype) {
- case rectangle:
+ case aubio_win_rectangle:
for (i=0;i<size;i++)
w[i] = 0.5;
break;
- case hamming:
+ case aubio_win_hamming:
for (i=0;i<size;i++)
w[i] = 0.54 - 0.46 * COS(TWO_PI * i / (size));
break;
- case hanning:
+ case aubio_win_hanning:
for (i=0;i<size;i++)
w[i] = 0.5 - (0.5 * COS(TWO_PI * i / (size)));
break;
- case hanningz:
+ case aubio_win_hanningz:
for (i=0;i<size;i++)
w[i] = 0.5 * (1.0 - COS(TWO_PI * i / (size)));
break;
- case blackman:
+ case aubio_win_blackman:
for (i=0;i<size;i++)
w[i] = 0.42
- 0.50 * COS( TWO_PI*i/(size-1.0))
+ 0.08 * COS(2.0*TWO_PI*i/(size-1.0));
break;
- case blackman_harris:
+ case aubio_win_blackman_harris:
for (i=0;i<size;i++)
w[i] = 0.35875
- 0.48829 * COS( TWO_PI*i/(size-1.0))
+ 0.14128 * COS(2.0*TWO_PI*i/(size-1.0))
- 0.01168 * COS(3.0*TWO_PI*i/(size-1.0));
break;
- case gaussian:
+ case aubio_win_gaussian:
for (i=0;i<size;i++)
w[i] = EXP(- 1.0 / SQR(size) * SQR(2.0*i-size));
break;
- case welch:
+ case aubio_win_welch:
for (i=0;i<size;i++)
w[i] = 1.0 - SQR((2*i-size)/(size+1.0));
break;
- case parzen:
+ case aubio_win_parzen:
for (i=0;i<size;i++)
w[i] = 1.0 - fabsf((2*i-size)/(size+1.0));
break;
}
-smpl_t unwrap2pi(smpl_t phase) {
+smpl_t aubio_unwrap2pi(smpl_t phase) {
/* mod(phase+pi,-2pi)+pi */
return phase + TWO_PI * (1. + floorf(-(phase+PI)/TWO_PI));
}
s2 = x->data[0][pos+span];
/* increase frac */
for (frac = 0.; frac < 2.; frac = frac + step) {
- res = quadfrac(s0, s1, s2, frac);
+ res = aubio_quadfrac(s0, s1, s2, frac);
if (res > resold)
resold = res;
else {
return exactpos;
}
-smpl_t quadfrac(smpl_t s0, smpl_t s1, smpl_t s2, smpl_t pf) {
+smpl_t aubio_quadfrac(smpl_t s0, smpl_t s1, smpl_t s2, smpl_t pf) {
smpl_t tmp = s0 + (pf/2.) * (pf * ( s0 - 2.*s1 + s2 ) - 3.*s0 + 4.*s1 - s2);
return tmp;
}
return tmp;
}
-smpl_t freqtomidi(smpl_t freq) {
- smpl_t midi = freq/6.875;
- /* log(freq/A-2)/log(2) */
- midi = LOG(midi)/0.69314718055995;
- midi *= 12;
- midi -= 3;
- return midi;
+smpl_t aubio_freqtomidi(smpl_t freq) {
+ /* log(freq/A-2)/log(2) */
+ smpl_t midi = freq/6.875;
+ midi = LOG(midi)/0.69314718055995;
+ midi *= 12;
+ midi -= 3;
+ return midi;
}
-smpl_t bintofreq(smpl_t bin, smpl_t samplerate, smpl_t fftsize) {
+smpl_t aubio_miditofreq(smpl_t midi) {
+ smpl_t freq = (midi+3.)/12.;
+ freq = EXP(freq*0.69314718055995);
+ freq *= 6.875;
+ return freq;
+}
+
+smpl_t aubio_bintofreq(smpl_t bin, smpl_t samplerate, smpl_t fftsize) {
smpl_t freq = samplerate/fftsize;
return freq*bin;
}
+smpl_t aubio_bintomidi(smpl_t bin, smpl_t samplerate, smpl_t fftsize) {
+ smpl_t midi = aubio_bintofreq(bin,samplerate,fftsize);
+ return aubio_freqtomidi(midi);
+}
+
+smpl_t aubio_freqtobin(smpl_t freq, smpl_t samplerate, smpl_t fftsize) {
+ smpl_t bin = fftsize/samplerate;
+ return freq*bin;
+}
-smpl_t bintomidi(smpl_t bin, smpl_t samplerate, smpl_t fftsize) {
- smpl_t midi = bintofreq(bin,samplerate,fftsize);
- return freqtomidi(midi);
+smpl_t aubio_miditobin(smpl_t midi, smpl_t samplerate, smpl_t fftsize) {
+ smpl_t freq = aubio_miditofreq(midi);
+ return aubio_freqtobin(freq,samplerate,fftsize);
}