Mercurial > hg > audiodb
changeset 680:15e71890b584
* Switched over to using sonic-annotator extraction
* Uses populate for import
author | mas01mj |
---|---|
date | Fri, 05 Mar 2010 16:17:09 +0000 |
parents | 047415d1805e |
children | 096feb57c7d6 |
files | examples/iAudioDB/AppController.m examples/iAudioDB/English.lproj/MainMenu.xib examples/iAudioDB/iAudioDB.xcodeproj/project.pbxproj |
diffstat | 3 files changed, 85 insertions(+), 70 deletions(-) [+] |
line wrap: on
line diff
--- a/examples/iAudioDB/AppController.m Fri Mar 05 16:01:22 2010 +0000 +++ b/examples/iAudioDB/AppController.m Fri Mar 05 16:17:09 2010 +0000 @@ -53,7 +53,7 @@ // Create new db, and set flags. db = audiodb_create([[panel filename] cStringUsingEncoding:NSUTF8StringEncoding], 0, 0, 0); audiodb_l2norm(db); - audiodb_power(db); + // audiodb_power(db); // Store useful paths. dbName = [[[panel URL] relativePath] retain]; @@ -82,18 +82,21 @@ // Tidy any existing references up. if(db) { + NSLog(@"Close db"); audiodb_close(db); } if(dbFilename) { + NSLog(@"Tidy up filenames"); [dbFilename release]; [dbName release]; [plistFilename release]; } // Store useful paths. - db = audiodb_open([[panel filename] cStringUsingEncoding:NSUTF8StringEncoding], O_RDWR); + NSLog(@"Open"); + db = audiodb_open([[panel filename] cStringUsingEncoding:NSUTF8StringEncoding], O_RDONLY); dbName = [[[panel URL] relativePath] retain]; dbFilename = [[panel filename] retain]; @@ -126,8 +129,10 @@ */ -(void)updateStatus { + NSLog(@"Update status"); if(db) { + NSLog(@"Got a db"); adb_status_ptr status = (adb_status_ptr)malloc(sizeof(struct adbstatus)); int flags; flags = audiodb_status(db, status); @@ -136,6 +141,7 @@ } else { + NSLog(@"No db"); [chooseButton setEnabled:NO]; [playBothButton setEnabled:FALSE]; [playResultButton setEnabled:FALSE]; @@ -191,76 +197,77 @@ NSLog(@"Begin import"); + /* + vamp:vamp-audiodb-plugins:cq:cq + vamp:vamp-audiodb-plugins:chromagram:chroma + vamp:qm-vamp-plugins:qm-mfcc:coefficients + vamp:qm-vamp-plugins:qm-chromagram:chromagram + */ + + + // adb_chroma + // adb_cq + // qm_chroma + // qm_mfcc + // Work out which extractor to use NSString* extractor = @"chromagram"; switch([extractorOptions selectedTag]) { case 0: - extractor = @"mfcc"; + extractor = @"adb_chroma"; break; case 1: - extractor = @"chromagram"; + extractor = @"adb_cq"; + break; + case 2: + extractor = @"qm_chroma"; + break; + case 3: + extractor = @"qm_mfcc"; break; } + for(int i=0; i<[filesToOpen count]; i++) - { - // First extract powers - - NSString *tempFileTemplate = [NSTemporaryDirectory() stringByAppendingPathComponent:@"powers.XXXXXX"]; - const char *tempFileTemplateCString = [tempFileTemplate fileSystemRepresentation]; - char *tempFileNameCString = (char *)malloc(strlen(tempFileTemplateCString) + 1); - strcpy(tempFileNameCString, tempFileTemplateCString); - mktemp(tempFileNameCString); - - NSString* powersFileName = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:tempFileNameCString length:strlen(tempFileNameCString)]; - free(tempFileNameCString); - - NSTask *task = [[NSTask alloc] init]; - [task setLaunchPath:@"/usr/local/bin/fftExtract2"]; - NSArray *args = [NSArray arrayWithObjects:@"-P", @"-h", @"11025", @"-w", @"16384", @"-n", @"32768", @"-i", @"1000", [filesToOpen objectAtIndex:i], powersFileName, nil]; - [task setArguments:args]; - [task launch]; - [task waitUntilExit]; - [task release]; - - // Then features - - tempFileTemplate = [NSTemporaryDirectory() stringByAppendingPathComponent:@"features.XXXXXX"]; - tempFileTemplateCString = [tempFileTemplate fileSystemRepresentation]; - tempFileNameCString = (char *)malloc(strlen(tempFileTemplateCString) + 1); + { + audiodb_close(db); + NSString* tempFileTemplate = [NSTemporaryDirectory() stringByAppendingPathComponent:@"features.XXXXXX"]; + const char* tempFileTemplateCString = [tempFileTemplate fileSystemRepresentation]; + char* tempFileNameCString = (char *)malloc(strlen(tempFileTemplateCString) + 1); strcpy(tempFileNameCString, tempFileTemplateCString); mktemp(tempFileNameCString); NSString* featuresFileName = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:tempFileNameCString length:strlen(tempFileNameCString)]; free(tempFileNameCString); - task = [[NSTask alloc] init]; + NSTask* task = [[NSTask alloc] init]; - [task setLaunchPath:@"/usr/local/bin/fftExtract2"]; + [task setLaunchPath:@"/usr/local/bin/sonic-annotator"]; - NSArray *args2; - - // Choose the args (TODO: This should use sonic annotator eventually) - if([extractor isEqualToString:@"chromagram"]) - { - args2 = [NSArray arrayWithObjects:@"-p",@"/Users/moj/planfile",@"-c", @"36", @"-h", @"11025", @"-w", @"16384", @"-n", @"32768", @"-i", @"1000", [filesToOpen objectAtIndex:i], featuresFileName, nil]; - } - else - { - args2 = [NSArray arrayWithObjects:@"-p",@"/Users/moj/planfile",@"-m", @"13", @"-h", @"11025", @"-w", @"16384", @"-n ", @"32768", @"-i", @"1000", [filesToOpen objectAtIndex:i], featuresFileName, nil]; - } - [task setArguments:args2]; + NSString* extractorPath = [NSString stringWithFormat:@"/Applications/iAudioDB.app/rdf/%@.n3", extractor]; + NSLog(@"Extractor path: %@", extractorPath); + NSArray* args; + args = [NSArray arrayWithObjects:@"-t", extractorPath, @"-w", @"rdf", @"-r", @"--rdf-network", @"--rdf-one-file", featuresFileName, @"--rdf-force", [filesToOpen objectAtIndex:i], nil]; + [task setArguments:args]; [task launch]; [task waitUntilExit]; [task release]; + NSTask* importTask = [[NSTask alloc] init]; + [importTask setLaunchPath:@"/usr/local/bin/populate"]; + args = [NSArray arrayWithObjects:featuresFileName, dbFilename, nil]; + [importTask setArguments:args]; + [importTask launch]; + [importTask waitUntilExit]; + [importTask release]; + NSString* val = [[filesToOpen objectAtIndex:i] retain]; NSString* key = [[[filesToOpen objectAtIndex:i] lastPathComponent] retain]; - + /* adb_insert_t insert; insert.features = [featuresFileName cStringUsingEncoding:NSUTF8StringEncoding]; - insert.power = [powersFileName cStringUsingEncoding:NSUTF8StringEncoding]; + // insert.power = [powersFileName cStringUsingEncoding:NSUTF8StringEncoding]; insert.times = NULL; insert.key = [key cStringUsingEncoding:NSUTF8StringEncoding]; @@ -268,14 +275,16 @@ if(audiodb_insert(db, &insert)) { // TODO: Show an error message. - NSLog(@"Weep: %@ %@ %@", featuresFileName, powersFileName, key); + NSLog(@"Weep: %@ %@", featuresFileName, key); continue; - } + }*/ // Update the plist store. [trackMap setValue:val forKey:key]; [trackMap writeToFile:plistFilename atomically: YES]; + + db = audiodb_open([dbFilename cStringUsingEncoding:NSUTF8StringEncoding], O_RDONLY); [self updateStatus]; } @@ -566,15 +575,16 @@ } else { + float divisor = (44100/2048); for(int i=0; i<result->nresults; i++) { NSMutableDictionary* dict = [[NSMutableDictionary alloc] initWithCapacity:4]; [dict setValue:[NSString stringWithFormat:@"%s", result->results[i].key] forKey:@"key"]; [dict setValue:[NSNumber numberWithFloat:result->results[i].dist] forKey:@"distance"]; [dict setValue:[NSNumber numberWithFloat:result->results[i].dist] forKey:@"meter"]; - [dict setValue:[NSNumber numberWithFloat:result->results[i].qpos/4] forKey:@"qpos"]; - [dict setValue:[NSNumber numberWithFloat:result->results[i].ipos/4] forKey:@"ipos"]; - NSLog(@"%s qpos %d ipos %d", result->results[i].key, result->results[i].qpos/4, result->results[i].ipos/4); + [dict setValue:[NSNumber numberWithFloat:result->results[i].qpos/divisor] forKey:@"qpos"]; + [dict setValue:[NSNumber numberWithFloat:result->results[i].ipos/divisor] forKey:@"ipos"]; + NSLog(@"%s qpos %d ipos %d", result->results[i].key, result->results[i].qpos/divisor, result->results[i].ipos/divisor); [results addObject: dict]; } }
--- a/examples/iAudioDB/English.lproj/MainMenu.xib Fri Mar 05 16:01:22 2010 +0000 +++ b/examples/iAudioDB/English.lproj/MainMenu.xib Fri Mar 05 16:17:09 2010 +0000 @@ -901,7 +901,7 @@ <object class="NSWindowTemplate" id="298235049"> <int key="NSWindowStyleMask">17</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{196, 250}, {535, 260}}</string> + <string key="NSWindowRect">{{196, 364}, {535, 146}}</string> <int key="NSWTFlags">-1543503872</int> <string key="NSWindowTitle">Window</string> <string key="NSWindowClass">NSPanel</string> @@ -915,7 +915,7 @@ <object class="NSMatrix" id="948779024"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{20, 134}, {176, 86}}</string> + <string key="NSFrame">{{20, 20}, {176, 86}}</string> <reference key="NSSuperview" ref="108412374"/> <bool key="NSEnabled">YES</bool> <int key="NSNumRows">4</int> @@ -1187,8 +1187,7 @@ <int key="NSPeriodicDelay">400</int> <int key="NSPeriodicInterval">75</int> </object> - <int key="NSSelectedRow">2</int> - <reference key="NSSelectedCell" ref="853846524"/> + <reference key="NSSelectedCell" ref="71088072"/> <reference key="NSBackgroundColor" ref="907238901"/> <reference key="NSCellBackgroundColor" ref="282115067"/> <reference key="NSFont" ref="294883811"/> @@ -1196,7 +1195,7 @@ <object class="NSTextField" id="419880819"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{17, 228}, {123, 17}}</string> + <string key="NSFrame">{{17, 114}, {123, 17}}</string> <reference key="NSSuperview" ref="108412374"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="207653454"> @@ -1221,7 +1220,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSProgressIndicator" id="143167873"> <reference key="NSNextResponder" ref="790617918"/> - <int key="NSvFlags">1292</int> + <int key="NSvFlags">-2147482356</int> <object class="NSPSMatrix" key="NSDrawMatrix"/> <string key="NSFrame">{{5, 26}, {481, 20}}</string> <reference key="NSSuperview" ref="790617918"/> @@ -1250,7 +1249,7 @@ <reference key="NSSuperview" ref="955715704"/> </object> </object> - <string key="NSFrame">{{22, 16}, {496, 71}}</string> + <string key="NSFrame">{{22, -98}, {496, 71}}</string> <reference key="NSSuperview" ref="108412374"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> @@ -1273,7 +1272,7 @@ <object class="NSButton" id="331424260"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{329, 126}, {96, 32}}</string> + <string key="NSFrame">{{329, 12}, {96, 32}}</string> <reference key="NSSuperview" ref="108412374"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="614327950"> @@ -1293,7 +1292,7 @@ <object class="NSButton" id="101359388"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{425, 126}, {96, 32}}</string> + <string key="NSFrame">{{425, 12}, {96, 32}}</string> <reference key="NSSuperview" ref="108412374"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="171111105"> @@ -1311,7 +1310,7 @@ </object> </object> </object> - <string key="NSFrameSize">{535, 260}</string> + <string key="NSFrameSize">{535, 146}</string> <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1280, 1002}}</string> @@ -2465,6 +2464,8 @@ <string>747.IBPluginDependency</string> <string>749.IBPluginDependency</string> <string>750.IBPluginDependency</string> + <string>755.IBPluginDependency</string> + <string>756.IBPluginDependency</string> <string>81.IBEditorWindowLastContentRect</string> <string>81.IBPluginDependency</string> <string>81.ImportedFromIB2</string> @@ -2528,8 +2529,8 @@ <reference ref="9"/> <string>{74, 862}</string> <string>{{6, 978}, {478, 20}}</string> - <string>{{619, 41}, {606, 477}}</string> - <string>{{619, 41}, {606, 477}}</string> + <string>{{619, -87}, {606, 477}}</string> + <string>{{619, -87}, {606, 477}}</string> <reference ref="9"/> <string>{{33, 99}, {480, 360}}</string> <string>{3.40282e+38, 3.40282e+38}</string> @@ -2555,8 +2556,8 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> - <string>{{573, 50}, {535, 260}}</string> - <string>{{573, 50}, {535, 260}}</string> + <string>{{573, 164}, {535, 146}}</string> + <string>{{573, 164}, {535, 146}}</string> <boolean value="NO"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{651, 102}, {201, 183}}</string> @@ -2610,6 +2611,8 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{736, 222}, {169, 63}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/>
--- a/examples/iAudioDB/iAudioDB.xcodeproj/project.pbxproj Fri Mar 05 16:01:22 2010 +0000 +++ b/examples/iAudioDB/iAudioDB.xcodeproj/project.pbxproj Fri Mar 05 16:17:09 2010 +0000 @@ -13,8 +13,8 @@ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; B7CBF33211105F1700B8C1C8 /* AppController.m in Sources */ = {isa = PBXBuildFile; fileRef = B7CBF33111105F1700B8C1C8 /* AppController.m */; }; B7CBF3B711106F4C00B8C1C8 /* libaudioDB.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = B7CBF3B611106F4C00B8C1C8 /* libaudioDB.0.0.dylib */; }; - B7CBF41B11108E3600B8C1C8 /* BWToolkitFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B7CBF41A11108E3500B8C1C8 /* BWToolkitFramework.framework */; }; - B7CBF42411108E7E00B8C1C8 /* BWToolkitFramework.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = B7CBF41A11108E3500B8C1C8 /* BWToolkitFramework.framework */; }; + B7E0FD5B114164430003AB08 /* BWToolkitFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B7E0FD5A114164430003AB08 /* BWToolkitFramework.framework */; }; + B7E0FD8D114164850003AB08 /* BWToolkitFramework.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = B7E0FD5A114164430003AB08 /* BWToolkitFramework.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -24,7 +24,7 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - B7CBF42411108E7E00B8C1C8 /* BWToolkitFramework.framework in CopyFiles */, + B7E0FD8D114164850003AB08 /* BWToolkitFramework.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -44,7 +44,7 @@ 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>"; }; B7CBF3B611106F4C00B8C1C8 /* libaudioDB.0.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libaudioDB.0.0.dylib; path = /usr/local/lib/libaudioDB.0.0.dylib; sourceTree = "<absolute>"; }; - B7CBF41A11108E3500B8C1C8 /* BWToolkitFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = BWToolkitFramework.framework; path = ../BWToolkitFramework.framework; sourceTree = SOURCE_ROOT; }; + B7E0FD5A114164430003AB08 /* BWToolkitFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = BWToolkitFramework.framework; sourceTree = "<group>"; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -54,7 +54,7 @@ files = ( 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, B7CBF3B711106F4C00B8C1C8 /* libaudioDB.0.0.dylib in Frameworks */, - B7CBF41B11108E3600B8C1C8 /* BWToolkitFramework.framework in Frameworks */, + B7E0FD5B114164430003AB08 /* BWToolkitFramework.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -73,7 +73,6 @@ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { isa = PBXGroup; children = ( - B7CBF41A11108E3500B8C1C8 /* BWToolkitFramework.framework */, 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, ); name = "Linked Frameworks"; @@ -132,6 +131,7 @@ 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( + B7E0FD5A114164430003AB08 /* BWToolkitFramework.framework */, 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, ); @@ -229,6 +229,7 @@ FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\"$(SRCROOT)/..\"", + "\"$(SRCROOT)\"", ); GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; @@ -250,6 +251,7 @@ FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\"$(SRCROOT)/..\"", + "\"$(SRCROOT)\"", ); GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES;