moved spectral_centroid to new file
authorPaul Brossier <piem@piem.org>
Sat, 24 Nov 2007 21:47:15 +0000 (22:47 +0100)
committerPaul Brossier <piem@piem.org>
Sat, 24 Nov 2007 21:47:15 +0000 (22:47 +0100)
src/Makefile.am
src/aubio.h
src/mathutils.c
src/mathutils.h
src/spectral/spectral_centroid.c [new file with mode: 0644]
src/spectral/spectral_centroid.h [new file with mode: 0644]

index 7afd4d40bbd6d52e5cb4d679de73b4a75ba4510f..1431d8cdf320c5c392208ada79fc92cbc3465346 100644 (file)
@@ -14,6 +14,7 @@ pkginclude_HEADERS = aubio.h \
        spectral/phasevoc.h \
        spectral/fft.h \
        spectral/tss.h \
+       spectral/spectral_centroid.h \
        pitch/pitchdetection.h \
        pitch/pitchmcomb.h \
        pitch/pitchyin.h \
@@ -57,6 +58,8 @@ libaubio_la_SOURCES = aubio.h \
        spectral/fft.h \
        spectral/tss.c \
        spectral/tss.h \
+       spectral/spectral_centroid.c \
+       spectral/spectral_centroid.h \
        pitch/pitchdetection.c \
        pitch/pitchdetection.h \
        pitch/pitchmcomb.c \
index 4515606bc181d16436151814b442dc2405270659..862b055147efe2a5b1a79f7e60436c63362f1953 100644 (file)
@@ -59,8 +59,6 @@ extern "C" {
 /* in this order */
 #include "types.h"
 #include "sample.h"
-#include "spectral/fft.h"
-#include "spectral/phasevoc.h"
 #include "mathutils.h"
 #include "utils/scale.h"
 #include "utils/hist.h"
@@ -68,6 +66,11 @@ extern "C" {
 #include "temporal/resample.h"
 #include "temporal/biquad.h"
 #include "temporal/filter.h"
+#include "spectral/filterbank.h"
+#include "spectral/mfcc.h"
+#include "spectral/fft.h"
+#include "spectral/phasevoc.h"
+#include "spectral/spectral_centroid.h"
 #include "pitch/pitchdetection.h"
 #include "pitch/pitchmcomb.h"
 #include "pitch/pitchyin.h"
@@ -79,8 +82,6 @@ extern "C" {
 #include "onset/peakpick.h"
 #include "tempo/beattracking.h"
 #include "tempo/tempo.h"
-#include "spectral/filterbank.h"
-#include "spectral/mfcc.h"
 
 #ifdef __cplusplus
 } /* extern "C" */
index 70797ecc5237b11437f3ec188372a12dedf44b76..4193fa3195dba205fcee9249f9fb64a5e27fdf0e 100644 (file)
@@ -432,19 +432,6 @@ smpl_t aubio_zero_crossing_rate(fvec_t * input) {
   return zcr/(smpl_t)input->length;
 }
 
-smpl_t aubio_spectral_centroid(cvec_t * spectrum, smpl_t samplerate) {
-  uint_t i=0, j;
-  smpl_t sum = 0., sc = 0.;
-  for ( j = 0; j < spectrum->length; j++ ) {
-    sum += spectrum->norm[i][j];
-  }
-  if (sum == 0.) return 0.;
-  for ( j = 0; j < spectrum->length; j++ ) {
-    sc += (smpl_t)j * spectrum->norm[i][j];
-  }
-  return sc / sum * samplerate / (smpl_t)(spectrum->length);
-}
-
 void aubio_autocorr(fvec_t * input, fvec_t * output) {
   uint_t i = 0, j = 0, length = input->length;
   smpl_t * data = input->data[0];
index 75fc5d7ef70c8c47abf0a41b72516e3f0e299852..9bf0f5836660bd1cbe752dc65bcd25799dbb2771 100644 (file)
@@ -207,10 +207,6 @@ void aubio_autocorr(fvec_t * input, fvec_t * output);
  * zero-crossing rate (number of zero cross per sample)
  */
 smpl_t aubio_zero_crossing_rate(fvec_t * input);
-/**
- * spectrum centroid computed on a cvec
- */
-smpl_t aubio_spectral_centroid(cvec_t * input, smpl_t samplerate);
 /**
  * clean up cached memory at the end of program
  *
diff --git a/src/spectral/spectral_centroid.c b/src/spectral/spectral_centroid.c
new file mode 100644 (file)
index 0000000..36b4993
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+   Copyright (C) 2007 Paul Brossier
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include "aubio_priv.h"
+#include "cvec.h"
+#include "spectral/spectral_centroid.h"
+
+smpl_t aubio_spectral_centroid(cvec_t * spectrum, smpl_t samplerate) {
+  uint_t i=0, j;
+  smpl_t sum = 0., sc = 0.;
+  for ( j = 0; j < spectrum->length; j++ ) {
+    sum += spectrum->norm[i][j];
+  }
+  if (sum == 0.) return 0.;
+  for ( j = 0; j < spectrum->length; j++ ) {
+    sc += (smpl_t)j * spectrum->norm[i][j];
+  }
+  return sc / sum * samplerate / (smpl_t)(spectrum->length);
+}
+
+
diff --git a/src/spectral/spectral_centroid.h b/src/spectral/spectral_centroid.h
new file mode 100644 (file)
index 0000000..13bff11
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+   Copyright (C) 2007 Paul Brossier
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+/** @file
+ * compute spectrum centroid of a cvec object
+ */
+
+/**
+ * spectrum centroid computed on a cvec
+ */
+smpl_t aubio_spectral_centroid(cvec_t * input, smpl_t samplerate);