aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.in11
-rw-r--r--examples/puredata/simple-test.pd11
-rw-r--r--examples/puredata/spectrum-512-test.pd8
-rw-r--r--swig/python/test.py19
-rw-r--r--swig/python/xtract.i12
-rw-r--r--swig/xtract.i9
6 files changed, 51 insertions, 19 deletions
diff --git a/configure.in b/configure.in
index bf3703a..ddc9fc9 100644
--- a/configure.in
+++ b/configure.in
@@ -162,11 +162,6 @@ AC_ARG_ENABLE(swig,
esac],[swig=false])
-dnl SWIG stuff
-if [[ "$swig" = "true" ]] ; then
- AC_PROG_SWIG(1.3.21)
- AC_DEFINE([BUILD_SWIG], [1], [Build the swig bindings])
-fi
if [[ "$with_java" = "true" ]] ; then
if test "$JAVAC" = ""
@@ -194,6 +189,12 @@ fi
AM_CONDITIONAL(BUILD_SWIG, test "x${swig}" = 'xtrue')
+dnl SWIG stuff
+if [[ "$swig" = "true" ]] ; then
+ AC_PROG_SWIG(1.3.21)
+ AC_DEFINE([BUILD_SWIG], [1], [Build the swig bindings])
+fi
+
dnl Are we building with fftw?
if [[ "$fft" = "true" ]] ; then
LDFLAGS="$LDFLAGS -lfftw3f"
diff --git a/examples/puredata/simple-test.pd b/examples/puredata/simple-test.pd
new file mode 100644
index 0000000..f9bd79c
--- /dev/null
+++ b/examples/puredata/simple-test.pd
@@ -0,0 +1,11 @@
+#N canvas 642 248 670 289 10;
+#X obj 192 63 osc~ 440;
+#X floatatom 194 187 10 0 0 0 - - -;
+#X obj 194 150 xtract~ spectral_mean;
+#X obj 193 94 *~ 0.3;
+#X text 337 121 Optional second argument gives blocksize;
+#X obj 193 121 xtract~ spectrum 64;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 5 0 2 0;
diff --git a/examples/puredata/spectrum-512-test.pd b/examples/puredata/spectrum-512-test.pd
new file mode 100644
index 0000000..fe22e23
--- /dev/null
+++ b/examples/puredata/spectrum-512-test.pd
@@ -0,0 +1,8 @@
+#N canvas 5 48 450 300 10;
+#X obj 127 77 noise~;
+#X obj 262 59 loadbang;
+#X msg 262 86 list 86.1328;
+#X obj 127 112 xtract~ spectrum 64;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 1;
diff --git a/swig/python/test.py b/swig/python/test.py
index 4d994ac..f7297f8 100644
--- a/swig/python/test.py
+++ b/swig/python/test.py
@@ -3,11 +3,11 @@
try:
import xtract
except ImportError:
- print 'Failed to load the library "jxtract"'
+ print 'Failed to load the library "xtract"'
print '\nRunning libxtract Python bindings test...\n'
-len = 5
+len = 8
a = xtract.floatArray(len)
temp = []
@@ -19,4 +19,19 @@ for i in range(0, len):
print 'The mean of ' + ', '.join(temp) + ' is: %.2f' % \
xtract.xtract_mean(a,len,None)[1]
+print 'Computing spectrum...'
+
+argv = xtract.floatArray(1)
+argv[0] = 44100.0 / len # Fake sample rate
+
+xtract.xtract_init_fft(len, xtract.XTRACT_SPECTRUM);
+
+result = xtract.floatArray(len)
+
+xtract.xtract_spectrum(a,len,argv, result)
+
+
+for i in range(len):
+ print result[i]
+
print '\nFinished!\n'
diff --git a/swig/python/xtract.i b/swig/python/xtract.i
deleted file mode 100644
index b363f2e..0000000
--- a/swig/python/xtract.i
+++ /dev/null
@@ -1,12 +0,0 @@
-%module xtract
-%include carrays.i
-%include typemaps.i
-
-%{
-#include "xtract/xtract_scalar.h"
-%}
-
-%array_functions(float, floatArray);
-%apply float *OUTPUT { float *result };
-
-%include "xtract/xtract_scalar.h"
diff --git a/swig/xtract.i b/swig/xtract.i
index 58c9f18..a39a484 100644
--- a/swig/xtract.i
+++ b/swig/xtract.i
@@ -4,10 +4,19 @@
%{
#include "xtract/xtract_scalar.h"
+#include "xtract/xtract_vector.h"
+#include "xtract/libxtract.h"
%}
%array_class(float, floatArray);
%apply float *OUTPUT { float *result };
/* %apply float *INPUT { float *data }; */
+%ignore xtract;
+
%include "xtract/xtract_scalar.h"
+
+%clear float *result;
+
+%include "xtract/xtract_vector.h"
+%include "xtract/libxtract.h"