diff --git a/tests/data/DnB-loop-175BPM.wav b/tests/data/DnB-loop-175BPM.wav new file mode 100644 index 0000000000000000000000000000000000000000..2c772739d8d7ce9063a3fe6320a246ec27d7b65f Binary files /dev/null and b/tests/data/DnB-loop-175BPM.wav differ diff --git a/tests/src/test_rapidPiPoTools.cpp b/tests/src/test_rapidPiPoTools.cpp index 55f8709a521fdcb90afcfa3fca74738e7bd40b51..fd5e06bad2433a6824be38acb36f56b9ebe02e89 100644 --- a/tests/src/test_rapidPiPoTools.cpp +++ b/tests/src/test_rapidPiPoTools.cpp @@ -41,7 +41,7 @@ SCENARIO("Test rapidPiPoHost", "[signalProcessing]") //====================================================================// // instantiate PiPo related classes here : - rapidPiPoOwner pipoHost; // -> this class is located in rapidPiPoTools + rapidPiPoHost host; // -> this class is located in rapidPiPoTools // if we want to add some custom PiPos to our collection : // #include "myCustomPiPo.h" @@ -49,45 +49,54 @@ SCENARIO("Test rapidPiPoHost", "[signalProcessing]") // now we can write : // pipoHost.setChain("myCustomPiPo"); -#include "PiPoMaximChroma.h" +//#include "PiPoMaximChroma.h" // this one is not part of the default collection : - PiPoCollection::addToCollection("chroma", new PiPoCreator<PiPoMaximChroma>); + // PiPoCollection::addToCollection("chroma", new PiPoCreator<PiPoMaximChroma>); - pipoHost.setChain("slice:fft:sum:scale:onseg"); + host.setGraph("slice:fft:sum:scale:onseg"); - pipoHost.setAttr("slice.size", 1024); - pipoHost.setAttr("slice.hop", 256); - pipoHost.setAttr("slice.norm", "power"); - pipoHost.setAttr("fft.mode", "power"); - pipoHost.setAttr("fft.weighting", "itur468"); - pipoHost.setAttr("scale.inmin", 1.); - pipoHost.setAttr("scale.inmax", 10.); - pipoHost.setAttr("scale.outmin", 0.); - pipoHost.setAttr("scale.outmax", 10.); - pipoHost.setAttr("scale.func", "log"); - pipoHost.setAttr("scale.base", 10.); - pipoHost.setAttr("onseg.duration", 1.); - pipoHost.setAttr("onseg.min", 0.); - pipoHost.setAttr("onseg.max", 1.); - pipoHost.setAttr("onseg.mean", 0.); - pipoHost.setAttr("onseg.stddev", 0.); - pipoHost.setAttr("onseg.startisonset", 1.); - pipoHost.setAttr("onseg.threshold", 9.); - pipoHost.setAttr("onseg.offthresh", -120.); + host.setAttr("slice.size", 1024); + host.setAttr("slice.hop", 256); + host.setAttr("slice.norm", "power"); + host.setAttr("fft.mode", "power"); + host.setAttr("fft.weighting", "itur468"); + host.setAttr("scale.inmin", 1.); + host.setAttr("scale.inmax", 10.); + host.setAttr("scale.outmin", 0.); + host.setAttr("scale.outmax", 10.); + host.setAttr("scale.func", "log"); + host.setAttr("scale.base", 10.); + host.setAttr("onseg.duration", 1.); + host.setAttr("onseg.min", 0.); + host.setAttr("onseg.max", 1.); + host.setAttr("onseg.mean", 0.); + host.setAttr("onseg.stddev", 0.); + host.setAttr("onseg.startisonset", 1.); + host.setAttr("onseg.threshold", 9.); + host.setAttr("onseg.offthresh", -120.); // set another chain : // pipoHost.setChain("chroma"); WHEN("file is processed") { - - std::vector<std::string> labels; - pipoHost.streamAttributes(true, 44100, 0, 1, 1, labels, false, 0, 1); + rapidPiPoStreamAttributes sa; + sa.hasTimeTags = true; + sa.rate = 44100; + sa.offset = 0; + sa.width = 1, + sa.height = 1, + sa.labels = std::vector<std::string>(); + sa.hasVarSize = false; + sa.domain = 0; + sa.maxFrames = 1; + + host.setInputStreamAttributes(sa); float value; for (unsigned int i = 0; i < buffer.length; ++i) { value = buffer.play(); - pipoHost.frames((double)i, 0.0, &value, 1, 1); + host.frames((double)i, 0.0, &value, 1, 1); } THEN("compare results of actual processing and same file processed in another envrironment") diff --git a/tests/test_project.xcodeproj/project.pbxproj b/tests/test_project.xcodeproj/project.pbxproj index 345f99a363c14636d82caf872fa0969d01fc51f3..d631d3766a0a9283f83e660628efa8b091097600 100644 --- a/tests/test_project.xcodeproj/project.pbxproj +++ b/tests/test_project.xcodeproj/project.pbxproj @@ -44,6 +44,16 @@ 311BA30C1EDC6FD000244DAC /* xmmJson.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2F71EDC6F0F00244DAC /* xmmJson.cpp */; }; 311BA30D1EDC709900244DAC /* jsoncpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5E081ED8450E00E9FAFA /* jsoncpp.cpp */; }; 311BA30F1EDC711E00244DAC /* trainingData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EC01ED8459300E9FAFA /* trainingData.cpp */; }; + 311BA3101EDC746F00244DAC /* test_rapidPiPoTools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5EE11ED8480D00E9FAFA /* test_rapidPiPoTools.cpp */; }; + 311BA3111EDC747A00244DAC /* rapidPiPoHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 311BA2AC1EDC6AED00244DAC /* rapidPiPoHost.cpp */; }; + 311BA3161EDC74E000244DAC /* libpipo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 311BA3141EDC74C400244DAC /* libpipo.a */; }; + 311BA31A1EDC7ADE00244DAC /* fft.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5A0E1ED8450C00E9FAFA /* fft.cpp */; }; + 311BA31B1EDC7ADE00244DAC /* maxiBark.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5A121ED8450C00E9FAFA /* maxiBark.cpp */; }; + 311BA31C1EDC7ADE00244DAC /* maxiFFT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5A141ED8450C00E9FAFA /* maxiFFT.cpp */; }; + 311BA31D1EDC7ADE00244DAC /* maxiMFCC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5A191ED8450C00E9FAFA /* maxiMFCC.cpp */; }; + 311BA31E1EDC7ADE00244DAC /* maximilian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5A1F1ED8450C00E9FAFA /* maximilian.cpp */; }; + 311BA3211EDC7B2400244DAC /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 311BA3201EDC7B2400244DAC /* Accelerate.framework */; }; + 311BA3241EDC7BA800244DAC /* DnB-loop-175BPM.wav in CopyFiles */ = {isa = PBXBuildFile; fileRef = 311BA3231EDC7BA400244DAC /* DnB-loop-175BPM.wav */; }; BE2C5E941ED8450E00E9FAFA /* classification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DEA1ED8450E00E9FAFA /* classification.cpp */; }; BE2C5E951ED8450E00E9FAFA /* knnClassification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DF31ED8450E00E9FAFA /* knnClassification.cpp */; }; BE2C5E961ED8450E00E9FAFA /* modelSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE2C5DF51ED8450E00E9FAFA /* modelSet.cpp */; }; @@ -100,6 +110,7 @@ dstPath = ""; dstSubfolderSpec = 16; files = ( + 311BA3241EDC7BA800244DAC /* DnB-loop-175BPM.wav in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -164,6 +175,9 @@ 311BA2F81EDC6F0F00244DAC /* xmmJson.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = xmmJson.hpp; path = xmm/src/core/common/xmmJson.hpp; sourceTree = "<group>"; }; 311BA2F91EDC6F0F00244DAC /* xmmMatrix.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = xmmMatrix.hpp; path = xmm/src/core/common/xmmMatrix.hpp; sourceTree = "<group>"; }; 311BA2FC1EDC6F1900244DAC /* xmm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xmm.h; path = xmm/src/xmm.h; sourceTree = "<group>"; }; + 311BA3141EDC74C400244DAC /* libpipo.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpipo.a; path = pipo/bin/osx/libpipo.a; sourceTree = "<group>"; }; + 311BA3201EDC7B2400244DAC /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 311BA3231EDC7BA400244DAC /* DnB-loop-175BPM.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = "DnB-loop-175BPM.wav"; path = "data/DnB-loop-175BPM.wav"; sourceTree = "<group>"; }; 31D7B72C1E6B048100917757 /* test_rapidPiPoTools */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = test_rapidPiPoTools; sourceTree = BUILT_PRODUCTS_DIR; }; BE2C5A0A1ED8450C00E9FAFA /* .gitignore */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .gitignore; sourceTree = "<group>"; }; BE2C5A0B1ED8450C00E9FAFA /* beat2.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = beat2.wav; sourceTree = "<group>"; }; @@ -264,6 +278,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 311BA3211EDC7B2400244DAC /* Accelerate.framework in Frameworks */, + 311BA3161EDC74E000244DAC /* libpipo.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -273,6 +289,7 @@ 311BA2A41EDC698600244DAC /* pipo */ = { isa = PBXGroup; children = ( + 311BA3121EDC74B300244DAC /* lib */, 311BA2B51EDC6C6F00244DAC /* host */, 311BA2B01EDC6C5A00244DAC /* include */, ); @@ -440,6 +457,38 @@ name = kmeans; sourceTree = "<group>"; }; + 311BA3121EDC74B300244DAC /* lib */ = { + isa = PBXGroup; + children = ( + 311BA3131EDC74B800244DAC /* osx */, + ); + name = lib; + sourceTree = "<group>"; + }; + 311BA3131EDC74B800244DAC /* osx */ = { + isa = PBXGroup; + children = ( + 311BA3141EDC74C400244DAC /* libpipo.a */, + ); + name = osx; + sourceTree = "<group>"; + }; + 311BA31F1EDC7B2400244DAC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 311BA3201EDC7B2400244DAC /* Accelerate.framework */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; + 311BA3221EDC7B9A00244DAC /* data */ = { + isa = PBXGroup; + children = ( + 311BA3231EDC7BA400244DAC /* DnB-loop-175BPM.wav */, + ); + name = data; + sourceTree = "<group>"; + }; BE2C5A081ED8450C00E9FAFA /* dependencies */ = { isa = PBXGroup; children = ( @@ -601,6 +650,7 @@ BE2C5EDC1ED8480D00E9FAFA /* tests */ = { isa = PBXGroup; children = ( + 311BA3221EDC7B9A00244DAC /* data */, BE2C5EDD1ED8480D00E9FAFA /* src */, ); name = tests; @@ -626,6 +676,7 @@ BE2C5EBB1ED8459300E9FAFA /* src */, BE2C5A081ED8450C00E9FAFA /* dependencies */, BE325F321DB50BE100F199A8 /* Products */, + 311BA31F1EDC7B2400244DAC /* Frameworks */, ); sourceTree = "<group>"; }; @@ -854,6 +905,13 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 311BA31A1EDC7ADE00244DAC /* fft.cpp in Sources */, + 311BA31B1EDC7ADE00244DAC /* maxiBark.cpp in Sources */, + 311BA31C1EDC7ADE00244DAC /* maxiFFT.cpp in Sources */, + 311BA31D1EDC7ADE00244DAC /* maxiMFCC.cpp in Sources */, + 311BA31E1EDC7ADE00244DAC /* maximilian.cpp in Sources */, + 311BA3101EDC746F00244DAC /* test_rapidPiPoTools.cpp in Sources */, + 311BA3111EDC747A00244DAC /* rapidPiPoHost.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -929,6 +987,7 @@ 31D7B72A1E6B048100917757 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/../dependencies/pipo/bin/**"; MACOSX_DEPLOYMENT_TARGET = 10.11; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -937,6 +996,7 @@ 31D7B72B1E6B048100917757 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/../dependencies/pipo/bin/**"; MACOSX_DEPLOYMENT_TARGET = 10.11; PRODUCT_NAME = "$(TARGET_NAME)"; };