Revision 73:939cf0e86268
| Cepstrum.h | ||
|---|---|---|
| 22 | 22 |
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| 23 | 23 |
*/ |
| 24 | 24 |
|
| 25 |
#ifndef _CEPSTRUM_H_
|
|
| 26 |
#define _CEPSTRUM_H_
|
|
| 25 |
#ifndef CEPSTRUM_H
|
|
| 26 |
#define CEPSTRUM_H
|
|
| 27 | 27 |
|
| 28 | 28 |
#include "vamp-sdk/FFT.h" |
| 29 | 29 |
#include <cmath> |
| ... | ... | |
| 70 | 70 |
|
| 71 | 71 |
for (int i = 0; i < hs; ++i) {
|
| 72 | 72 |
|
| 73 |
double power = in[i*2] * in[i*2] + in[i*2+1] * in[i*2+1]; |
|
| 73 |
double re = in[i*2]; |
|
| 74 |
double im = in[i*2+1]; |
|
| 75 |
double power = re * re + im * im; |
|
| 74 | 76 |
double mag = sqrt(power); |
| 75 | 77 |
magmean += mag; |
| 76 | 78 |
|
| Makefile.linux64 | ||
|---|---|---|
| 1 | 1 |
|
| 2 |
CFLAGS := -Wall -g -fPIC
|
|
| 2 |
CFLAGS := -Wall -O2 -fPIC
|
|
| 3 | 3 |
CXXFLAGS := $(CFLAGS) |
| 4 | 4 |
|
| 5 | 5 |
PLUGIN_LDFLAGS := -shared -Wl,-Bstatic -lvamp-sdk -Wl,-Bdynamic -Wl,-Bsymbolic -Wl,-z,defs -Wl,--version-script=vamp-plugin.map |
| MeanFilter.h | ||
|---|---|---|
| 22 | 22 |
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| 23 | 23 |
*/ |
| 24 | 24 |
|
| 25 |
#ifndef _MEAN_FILTER_H_
|
|
| 26 |
#define _MEAN_FILTER_H_
|
|
| 25 |
#ifndef MEAN_FILTER_H
|
|
| 26 |
#define MEAN_FILTER_H
|
|
| 27 | 27 |
|
| 28 | 28 |
class MeanFilter |
| 29 | 29 |
{
|
| ... | ... | |
| 59 | 59 |
for (int j = -half; j <= half; ++j) {
|
| 60 | 60 |
int ix = i + j + offset; |
| 61 | 61 |
if (ix >= 0 && ix < m) {
|
| 62 |
v += in[ix]; |
|
| 63 |
++n; |
|
| 62 |
double value = in[ix]; |
|
| 63 |
if (value == value) { // i.e. not NaN
|
|
| 64 |
v += value; |
|
| 65 |
} |
|
| 66 |
++n; |
|
| 64 | 67 |
} |
| 65 | 68 |
} |
| 66 |
out[i] = v / n; |
|
| 69 |
if (n > 0) {
|
|
| 70 |
out[i] = v / n; |
|
| 71 |
} else {
|
|
| 72 |
out[i] = 0.0; |
|
| 73 |
} |
|
| 67 | 74 |
} |
| 68 | 75 |
} |
| 69 | 76 |
|
| test/TestCepstrum.cpp | ||
|---|---|---|
| 53 | 53 |
BOOST_CHECK_SMALL(out[1] - out[7], 1e-14); |
| 54 | 54 |
BOOST_CHECK_SMALL(out[2] - out[6], 1e-14); |
| 55 | 55 |
BOOST_CHECK_SMALL(out[3] - out[5], 1e-14); |
| 56 |
double mmcheck = 0; |
|
| 57 |
for (int i = 0; i < 5; ++i) {
|
|
| 58 |
mmcheck += sqrt(in[i*2] * in[i*2] + in[i*2+1] * in[i*2+1]); |
|
| 59 |
} |
|
| 60 |
mmcheck /= 5; |
|
| 61 |
BOOST_CHECK_EQUAL(mm, mmcheck); |
|
| 56 | 62 |
} |
| 57 | 63 |
|
| 58 | 64 |
BOOST_AUTO_TEST_CASE(oneHarmonic) |
Also available in: Unified diff