Mercurial > hg > audiodb
changeset 730:0d1a7e4ed6cf caseyCAMUSexperimental
Casey's changes to CAMUS to work with TimbralRhythm features for ISMIR2010 demo
author | mas01mc |
---|---|
date | Mon, 16 Aug 2010 20:07:40 +0000 |
parents | 7e1fa27b67ee |
children | |
files | examples/iAudioDB/AppController.h examples/iAudioDB/AppController.m examples/iAudioDB/CAMUS.xcodeproj/project.pbxproj |
diffstat | 3 files changed, 62 insertions(+), 45 deletions(-) [+] |
line wrap: on
line diff
--- a/examples/iAudioDB/AppController.h Wed Jul 21 14:27:07 2010 +0000 +++ b/examples/iAudioDB/AppController.h Mon Aug 16 20:07:40 2010 +0000 @@ -5,7 +5,7 @@ // Created by Mike Jewell on 27/01/2010. // Copyright 2010 __MyCompanyName__. All rights reserved. // - +#include <errno.h> #import <Cocoa/Cocoa.h> #include <audioDB_API.h>
--- a/examples/iAudioDB/AppController.m Wed Jul 21 14:27:07 2010 +0000 +++ b/examples/iAudioDB/AppController.m Mon Aug 16 20:07:40 2010 +0000 @@ -8,8 +8,9 @@ #import "AppController.h" #import <AudioToolbox/AudioFile.h> +@implementation AppController -@implementation AppController +#define CAMUS_ADB_NPOINTS_DEFAULT 10 -(id)init { @@ -189,9 +190,9 @@ // Reset query flags [queryPath setStringValue: @"No file selected"]; - [queryLengthSeconds setDoubleValue:0]; - [queryLengthVectors setDoubleValue:0]; - [multipleCheckBox setState:NSOnState]; + [queryLengthSeconds setDoubleValue:4]; + [queryLengthVectors setDoubleValue:1]; + [multipleCheckBox setState:NSOffState]; [queryStartSeconds setDoubleValue:0]; [queryStartVectors setDoubleValue:0]; @@ -681,12 +682,11 @@ int sampleRate = [self getSampleRate:selectedFilename]; int hopSize = [self getHopSizeInSamples:selectedFilename]; - int winSize = [self nearestPow2:(hopSize*8)]; + int winSize = 0; // [self nearestPow2:(hopSize*8)]; double samples = ([queryTrack duration]*sampleRate); - - [queryLengthSeconds setDoubleValue:[queryTrack duration]]; - [queryLengthVectors setDoubleValue:ceil((samples-winSize)/hopSize)]; + [queryLengthSeconds setDoubleValue: 4.0]; // [queryTrack duration] + [queryLengthVectors setDoubleValue: 1.0]; // ceil((samples-winSize)/(float)hopSize) // For now, go with 0 [queryStartSeconds setDoubleValue:0]; @@ -708,7 +708,7 @@ int sampleRate = [self getSampleRate:selectedFilename]; int hopSize = [self getHopSizeInSamples:selectedFilename]; - int winSize = [self nearestPow2:(hopSize*8)]; + int winSize = 0; // [self nearestPow2:(hopSize*8)]; if(!queryTrack) { @@ -718,7 +718,6 @@ double totalDuration = [queryTrack duration]; double samples = totalDuration * sampleRate; double totalVectors = ceil((samples-winSize)/hopSize); - double lengthSecs = [queryLengthSeconds doubleValue]; double startSecs = [queryStartSeconds doubleValue]; @@ -730,7 +729,7 @@ { if(lengthSecs >= 0) { - lengthVectors = ceil((((lengthSecs*sampleRate)-winSize)/hopSize)+1); + lengthVectors = ceil((((lengthSecs*sampleRate)-winSize)/(float)hopSize)); if(lengthVectors < 0) {lengthVectors = 0; } [queryLengthVectors setDoubleValue:lengthVectors]; } @@ -740,7 +739,7 @@ { if(lengthVectors >= 0) { - lengthSecs = ((hopSize*(lengthVectors-1))+winSize)/sampleRate; + lengthSecs = (((float)hopSize*(lengthVectors))+winSize)/sampleRate; if(lengthSecs < 0) { lengthSecs = 0; } [queryLengthSeconds setDoubleValue:lengthSecs]; } @@ -751,7 +750,7 @@ { if(startSecs >= 0) { - startVectors = ceil((startSecs*sampleRate)/hopSize); + startVectors = ceil((startSecs*sampleRate)/(float)hopSize)-1; if(startVectors < 0) { startVectors = 0; } [queryStartVectors setDoubleValue:startVectors]; } @@ -760,7 +759,7 @@ { if(startVectors >= 0) { - startSecs = (hopSize*startVectors)/sampleRate; + startSecs = (hopSize*startVectors)/(float)sampleRate; if(startSecs < 0) { startSecs = 0; } [queryStartSeconds setDoubleValue:startSecs]; } @@ -806,26 +805,30 @@ if([multipleCheckBox state] == NSOnState) { - spec->params.npoints = 100; + spec->params.npoints = CAMUS_ADB_NPOINTS_DEFAULT; } else { spec->params.npoints = 1; } - spec->params.distance = ADB_DISTANCE_EUCLIDEAN_NORMED; - + spec->params.distance = ADB_DISTANCE_EUCLIDEAN; + spec->refine.include.nkeys=0; + spec->refine.exclude.nkeys=0; + spec->refine.radius = 1.0; + spec->refine.absolute_threshold = -6; + spec->refine.relative_threshold = 10; + spec->refine.duration_ratio = 1; + spec->refine.qhopsize = 1; + spec->refine.ihopsize = 1; + spec->params.ntracks = 100; - //spec->refine.radius = 5.0; -// spec->refine.absolute_threshold = -6; -// spec->refine.relative_threshold = 10; -// spec->refine.duration_ratio = 0; - + spec->refine.flags = 0; // spec->refine.flags |= ADB_REFINE_ABSOLUTE_THRESHOLD; // spec->refine.flags |= ADB_REFINE_RELATIVE_THRESHOLD; // spec->refine.flags |= ADB_REFINE_HOP_SIZE; - //spec->refine.flags |= ADB_REFINE_RADIUS; +// spec->refine.flags |= ADB_REFINE_RADIUS; adb_query_results_t *result = (adb_query_results_t *)malloc(sizeof(adb_query_results_t)); spec->qid.datum->data = NULL; @@ -838,7 +841,7 @@ if(ok == 0) { - float hopSize = [[dbState objectForKey:@"hopsize"] floatValue]; +// float hopSize = [[dbState objectForKey:@"hopsize"] floatValue]; NSLog(@"Got a datum"); result = audiodb_query_spec(db, spec); if(result == NULL) @@ -851,12 +854,11 @@ NSLog(@"Populate table: %d", result->nresults); for(int i=0; i<result->nresults; i++) - { - + { NSString* filename = [trackMap objectForKey:[NSString stringWithFormat:@"%s", result->results[i].ikey]]; int sampleRate = [self getSampleRate:filename]; int hopSize = [self getHopSizeInSamples:filename]; - float divisor = (sampleRate/hopSize); + float divisor = (sampleRate/(float)hopSize); NSMutableDictionary* dict = [[NSMutableDictionary alloc] initWithCapacity:4]; [dict setValue:[NSString stringWithFormat:@"%s", result->results[i].ikey] forKey:@"key"];
--- a/examples/iAudioDB/CAMUS.xcodeproj/project.pbxproj Wed Jul 21 14:27:07 2010 +0000 +++ b/examples/iAudioDB/CAMUS.xcodeproj/project.pbxproj Mon Aug 16 20:07:40 2010 +0000 @@ -8,16 +8,16 @@ /* Begin PBXBuildFile section */ 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; + 4551B65111FC641700165A1F /* BWToolkitFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4551B65011FC641700165A1F /* BWToolkitFramework.framework */; }; + 4551B69411FC642000165A1F /* BWToolkitFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4551B69311FC642000165A1F /* BWToolkitFramework.framework */; }; + 455A58CA1202B3BF00E8F782 /* libaudioDB.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 455A58C91202B3BF00E8F782 /* libaudioDB.0.0.dylib */; }; 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - B7000BA71180AE2B00C3DAEC /* BWToolkitFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B7000BA61180AE2B00C3DAEC /* BWToolkitFramework.framework */; }; - B7000BD71180AE3300C3DAEC /* BWToolkitFramework.framework in Copy BWToolkit Bits */ = {isa = PBXBuildFile; fileRef = B7000BA61180AE2B00C3DAEC /* BWToolkitFramework.framework */; }; B7000BFA1180B06800C3DAEC /* Add.tiff in Resources */ = {isa = PBXBuildFile; fileRef = B7000BF61180B06800C3DAEC /* Add.tiff */; }; B7000BFB1180B06800C3DAEC /* Play.tiff in Resources */ = {isa = PBXBuildFile; fileRef = B7000BF71180B06800C3DAEC /* Play.tiff */; }; B7000BFC1180B06800C3DAEC /* Spotlight.tiff in Resources */ = {isa = PBXBuildFile; fileRef = B7000BF81180B06800C3DAEC /* Spotlight.tiff */; }; B7000BFD1180B06800C3DAEC /* Stop.tiff in Resources */ = {isa = PBXBuildFile; fileRef = B7000BF91180B06800C3DAEC /* Stop.tiff */; }; - B714F25911C7E24A000F1B0B /* libaudioDB.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = B714F25511C7E24A000F1B0B /* libaudioDB.0.0.dylib */; }; B714F25D11C7E273000F1B0B /* libraptor.1.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = B714F25611C7E24A000F1B0B /* libraptor.1.dylib */; }; B714F25E11C7E273000F1B0B /* librasqal.2.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = B714F25711C7E24A000F1B0B /* librasqal.2.dylib */; }; B714F25F11C7E273000F1B0B /* librdf.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = B714F25811C7E24A000F1B0B /* librdf.0.dylib */; }; @@ -34,7 +34,6 @@ B7C0623C11C10E03008921C6 /* vamp-libxtract.dylib in Copy Vamp Plugins */ = {isa = PBXBuildFile; fileRef = B7C0622F11C10DDD008921C6 /* vamp-libxtract.dylib */; }; B7C0623D11C10E03008921C6 /* vamp-libxtract.n3 in Copy Vamp Plugins */ = {isa = PBXBuildFile; fileRef = B7C0623011C10DDD008921C6 /* vamp-libxtract.n3 */; }; B7CBF33211105F1700B8C1C8 /* AppController.m in Sources */ = {isa = PBXBuildFile; fileRef = B7CBF33111105F1700B8C1C8 /* AppController.m */; }; - B7E0FD5B114164430003AB08 /* BWToolkitFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B7E0FD5A114164430003AB08 /* BWToolkitFramework.framework */; }; B7E15C1611CBB1E9003092C7 /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = B7E15C1511CBB1E9003092C7 /* Credits.html */; }; B7E4DD9E11B8027700C787FE /* qm_mfcc.n3 in Resources */ = {isa = PBXBuildFile; fileRef = B7E4DD9A11B8027700C787FE /* qm_mfcc.n3 */; }; B7E4DD9F11B8027700C787FE /* adb_cq.n3 in Resources */ = {isa = PBXBuildFile; fileRef = B7E4DD9B11B8027700C787FE /* adb_cq.n3 */; }; @@ -71,7 +70,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - B7000BD71180AE3300C3DAEC /* BWToolkitFramework.framework in Copy BWToolkit Bits */, ); name = "Copy BWToolkit Bits"; runOnlyForDeploymentPostprocessing = 0; @@ -125,14 +123,15 @@ 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; + 4551B65011FC641700165A1F /* BWToolkitFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = BWToolkitFramework.framework; path = ../../../../bwtoolkit/build/Release/BWToolkitFramework.framework; sourceTree = SOURCE_ROOT; }; + 4551B69311FC642000165A1F /* BWToolkitFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = BWToolkitFramework.framework; path = ../../../../bwtoolkit/build/Release/BWToolkitFramework.framework; sourceTree = SOURCE_ROOT; }; + 455A58C91202B3BF00E8F782 /* libaudioDB.0.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libaudioDB.0.0.dylib; path = ../../libaudioDB.0.0.dylib; sourceTree = SOURCE_ROOT; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 8D1107320486CEB800E47090 /* CAMUS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CAMUS.app; sourceTree = BUILT_PRODUCTS_DIR; }; - B7000BA61180AE2B00C3DAEC /* BWToolkitFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = BWToolkitFramework.framework; sourceTree = "<group>"; }; B7000BF61180B06800C3DAEC /* Add.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Add.tiff; sourceTree = "<group>"; }; B7000BF71180B06800C3DAEC /* Play.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Play.tiff; sourceTree = "<group>"; }; B7000BF81180B06800C3DAEC /* Spotlight.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Spotlight.tiff; sourceTree = "<group>"; }; B7000BF91180B06800C3DAEC /* Stop.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Stop.tiff; sourceTree = "<group>"; }; - B714F25511C7E24A000F1B0B /* libaudioDB.0.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libaudioDB.0.0.dylib; path = libraries/libaudioDB.0.0.dylib; sourceTree = "<group>"; }; B714F25611C7E24A000F1B0B /* libraptor.1.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libraptor.1.dylib; path = libraries/libraptor.1.dylib; sourceTree = "<group>"; }; B714F25711C7E24A000F1B0B /* librasqal.2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = librasqal.2.dylib; path = libraries/librasqal.2.dylib; sourceTree = "<group>"; }; B714F25811C7E24A000F1B0B /* librdf.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = librdf.0.dylib; path = libraries/librdf.0.dylib; sourceTree = "<group>"; }; @@ -148,7 +147,6 @@ B7C0623011C10DDD008921C6 /* vamp-libxtract.n3 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "vamp-libxtract.n3"; path = "plugins/vamp-libxtract.n3"; sourceTree = "<group>"; }; B7CBF33011105F1700B8C1C8 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppController.h; sourceTree = "<group>"; }; B7CBF33111105F1700B8C1C8 /* AppController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppController.m; sourceTree = "<group>"; }; - B7E0FD5A114164430003AB08 /* BWToolkitFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = BWToolkitFramework.framework; sourceTree = "<group>"; }; B7E15C1511CBB1E9003092C7 /* Credits.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Credits.html; sourceTree = "<group>"; }; B7E4DD9A11B8027700C787FE /* qm_mfcc.n3 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = qm_mfcc.n3; path = rdf/qm_mfcc.n3; sourceTree = "<group>"; }; B7E4DD9B11B8027700C787FE /* adb_cq.n3 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = adb_cq.n3; path = rdf/adb_cq.n3; sourceTree = "<group>"; }; @@ -163,11 +161,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B7000BA71180AE2B00C3DAEC /* BWToolkitFramework.framework in Frameworks */, 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - B7E0FD5B114164430003AB08 /* BWToolkitFramework.framework in Frameworks */, B7F9D0151189EFAA0023FEBF /* AudioToolbox.framework in Frameworks */, - B714F25911C7E24A000F1B0B /* libaudioDB.0.0.dylib in Frameworks */, + 4551B65111FC641700165A1F /* BWToolkitFramework.framework in Frameworks */, + 4551B69411FC642000165A1F /* BWToolkitFramework.framework in Frameworks */, + 455A58CA1202B3BF00E8F782 /* libaudioDB.0.0.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -212,8 +210,8 @@ 29B97314FDCFA39411CA2CEA /* CAMUS */ = { isa = PBXGroup; children = ( + 4551B65011FC641700165A1F /* BWToolkitFramework.framework */, B7C0624A11C135AB008921C6 /* libs */, - B7000BA61180AE2B00C3DAEC /* BWToolkitFramework.framework */, 080E96DDFE201D6D7F000001 /* Classes */, 29B97315FDCFA39411CA2CEA /* Other Sources */, 29B97317FDCFA39411CA2CEA /* Resources */, @@ -250,9 +248,9 @@ 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( - B714F25511C7E24A000F1B0B /* libaudioDB.0.0.dylib */, + 455A58C91202B3BF00E8F782 /* libaudioDB.0.0.dylib */, + 4551B69311FC642000165A1F /* BWToolkitFramework.framework */, B7F9D0141189EFAA0023FEBF /* AudioToolbox.framework */, - B7E0FD5A114164430003AB08 /* BWToolkitFramework.framework */, 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, ); @@ -441,6 +439,9 @@ "$(inherited)", "\"$(SRCROOT)/..\"", "\"$(SRCROOT)\"", + "\"$(SRCROOT)/../../../../BWToolkit\"", + "\"$(SRCROOT)/../../../../BWToolkit/BWToolkit.ibplugin/Contents/Frameworks\"", + "\"$(SRCROOT)/../../../../bwtoolkit/build/Release\"", ); GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; @@ -459,6 +460,7 @@ "\"$(SRCROOT)/nec_lib\"", "\"$(SRCROOT)/nec_lib_2\"", "\"$(SRCROOT)/libraries\"", + "\"$(SRCROOT)/../..\"", ); PRODUCT_NAME = CAMUS; }; @@ -473,6 +475,9 @@ "$(inherited)", "\"$(SRCROOT)/..\"", "\"$(SRCROOT)\"", + "\"$(SRCROOT)/../../../../BWToolkit\"", + "\"$(SRCROOT)/../../../../BWToolkit/BWToolkit.ibplugin/Contents/Frameworks\"", + "\"$(SRCROOT)/../../../../bwtoolkit/build/Release\"", ); GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -489,6 +494,7 @@ "\"$(SRCROOT)/nec_lib\"", "\"$(SRCROOT)/nec_lib_2\"", "\"$(SRCROOT)/libraries\"", + "\"$(SRCROOT)/../..\"", ); ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = CAMUS; @@ -500,16 +506,25 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + FRAMEWORK_SEARCH_PATHS = /Users/mkc/src/BWToolkit; GCC_C_LANGUAGE_STANDARD = c99; GCC_OPTIMIZATION_LEVEL = 0; + GCC_USE_STANDARD_INCLUDE_SEARCHING = YES; + GCC_VERSION = 4.2; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = "/usr/local/include//**"; - LIBRARY_SEARCH_PATHS = "/usr/local/lib//**"; + HEADER_SEARCH_PATHS = ""; + LIBRARY_SEARCH_PATHS = ""; ONLY_ACTIVE_ARCH = YES; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-D_INTPTR_T", + "-D__i386__", + ); PREBINDING = NO; + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; SDKROOT = macosx10.5; - USER_HEADER_SEARCH_PATHS = "/usr/local//**"; + USER_HEADER_SEARCH_PATHS = "/Users/mkc/src/adb/**"; }; name = Debug; };