From ec8b5aea7cfe9e1cffaa2dfac02d9f1e0beacba7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20Zbyszy=C5=84ski?= <m.zbyszynski@gold.ac.uk>
Date: Mon, 20 Nov 2017 21:12:38 +0000
Subject: [PATCH] sorted out accelerate library

---
 CMakeLists.txt         | 11 ++++++++++-
 tests/rapidMixTest.cpp | 13 +++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b8754bb..b8a5ab6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,6 +26,8 @@ include_directories(dependencies/third_party/json)
 file(GLOB_RECURSE RAPIDMIX_SRC "${PROJECT_SOURCE_DIR}/src/*.cpp")
 file(GLOB GVF_SRC "${PROJECT_SOURCE_DIR}/dependencies/GVF/GVF.cpp")
 file(GLOB MAXI_SRC "${PROJECT_SOURCE_DIR}/dependencies/Maximilian/maximilian.cpp")
+file(GLOB MAXI_SRC ${MAXI_SRC} "${PROJECT_SOURCE_DIR}/dependencies/Maximilian/libs/maxiFFT.cpp")
+file(GLOB MAXI_SRC ${MAXI_SRC} "${PROJECT_SOURCE_DIR}/dependencies/Maximilian/libs/fft.cpp")
 file(GLOB RAPIDLIB_SRC "${PROJECT_SOURCE_DIR}/dependencies/RapidLib/src/*.cpp")
 file(GLOB RAPIDLIB_DEP "${PROJECT_SOURCE_DIR}/dependencies/RapidLib/dependencies/libsvm/libsvm.cpp")
 file(GLOB JSON_SRC "${PROJECT_SOURCE_DIR}/dependencies/third_party/jsoncpp.cpp")
@@ -43,4 +45,11 @@ set(RAPIDMIX_FULL_SRC ${RAPIDMIX_SRC}
 add_library(RMIX ${RAPIDMIX_FULL_SRC})
 
 add_executable(rapidmix tests/rapidMixTest.cpp )
-target_link_libraries(rapidmix RMIX)
+
+if (APPLE)
+   find_library(ACCELERATE Accelerate)
+   if (NOT ACCELERATE)
+      message(FATAL_ERROR "Accelearate not found")
+      endif()
+   target_link_libraries(rapidmix RMIX ${ACCELERATE})
+endif()
diff --git a/tests/rapidMixTest.cpp b/tests/rapidMixTest.cpp
index b4d8000..470109f 100644
--- a/tests/rapidMixTest.cpp
+++ b/tests/rapidMixTest.cpp
@@ -54,5 +54,18 @@ int main() {
     assert(myNN.run(inputVec)[0] == 12.596715279688549);
     std::cout << "staticRegression passed." << std::endl;
     
+    /////////////////////////////////////Test Maxi signal processing
+    
+    rapidmix::FFT myFFT;
+    myFFT.setup(1024, 512, 265);
+    
+    for (int i = 0; i < 1024; ++i) {
+        float input = (i % 256/256.0);
+        myFFT.process(input);
+    }
+    
+    assert(myFFT.spectralCentroid() == 3520.84277f);
+    std::cout << "maxi fft passed" << std::endl;
+    
     return 0;
 }
-- 
GitLab