Mercurial > hg > audiodb
changeset 702:6d8539709d9c
Switching over to use sample rate where possible - poss bug in query start specification.
author | mas01mj |
---|---|
date | Fri, 30 Apr 2010 14:57:30 +0000 |
parents | e21abbac820e |
children | 14b48e1b9ca4 |
files | examples/iAudioDB/AppController.h examples/iAudioDB/AppController.m examples/iAudioDB/English.lproj/MainMenu.xib |
diffstat | 3 files changed, 74 insertions(+), 185 deletions(-) [+] |
line wrap: on
line diff
--- a/examples/iAudioDB/AppController.h Thu Apr 29 17:15:01 2010 +0000 +++ b/examples/iAudioDB/AppController.h Fri Apr 30 14:57:30 2010 +0000 @@ -98,5 +98,7 @@ -(void)sound:(NSSound *)sound didFinishPlaying:(BOOL)playbackSuccessful; -(void)importFile:(NSString *)filename withExtractorConfig:(NSString *)extractorPath; -(UInt64)getSampleRate:(NSString *)filename; +-(UInt64)getHopSizeInSamples:(NSString *)filename; +-(int)nearestPow2:(int)x; @end
--- a/examples/iAudioDB/AppController.m Thu Apr 29 17:15:01 2010 +0000 +++ b/examples/iAudioDB/AppController.m Fri Apr 30 14:57:30 2010 +0000 @@ -93,7 +93,8 @@ } // Calculate the max DB size - int vectors = ceil(([maxLengthField doubleValue] * 60.0f) / ([hopSizeField doubleValue] / 44100.0f)); + int vectors = ceil(([maxLengthField doubleValue] * 60.0f) / (([hopSizeField doubleValue] / 1000) * 44100.0f)); + NSLog(@"Vectors: %d", vectors); int numtracks = [maxTracksField intValue]; int datasize = ceil((numtracks * vectors * dim * 8.0f) / 1024.0f / 1024.0f); // In MB @@ -261,17 +262,36 @@ return sampleRate; } +-(UInt64)getHopSizeInSamples:(NSString *)filename +{ + NSString* hopStr = [dbState objectForKey:@"hopsize"]; + return round([self getSampleRate:filename] * ([hopStr doubleValue] / 1000)); +} + +-(int)nearestPow2:(int)x +{ + if (x < 0) + return 0; + --x; + x |= x >> 1; + x |= x >> 2; + x |= x >> 4; + x |= x >> 8; + x |= x >> 16; + return x+1; +} + -(void)importFile:(NSString *)filename withExtractorConfig:(NSString *)extractorPath { // Create the extractor configuration - UInt64 sampleRate = [self getSampleRate:filename]; + int hopSizeSamples = [self getHopSizeInSamples:filename]; + int windowSizeSamples = [self nearestPow2:(hopSizeSamples*8)]; NSString* extractorContent = [NSString stringWithContentsOfFile:extractorPath]; - NSString* hopStr = [dbState objectForKey:@"hopsize"]; - NSString* newContent = [[extractorContent stringByReplacingOccurrencesOfString:@"HOP_SIZE" withString:hopStr] - stringByReplacingOccurrencesOfString:@"WINDOW_SIZE" withString:[NSString stringWithFormat:@"%d", [hopStr intValue] * 8]]; + NSString* newContent = [[extractorContent stringByReplacingOccurrencesOfString:@"HOP_SIZE" withString:[NSString stringWithFormat:@"%d", hopSizeSamples]] + stringByReplacingOccurrencesOfString:@"WINDOW_SIZE" withString:[NSString stringWithFormat:@"%d", windowSizeSamples]]; NSString* n3FileName = [NSTemporaryDirectory() stringByAppendingPathComponent:@"extractor_config.n3"]; - + NSLog(newContent); NSError* error; [newContent writeToFile:n3FileName atomically:YES encoding:NSASCIIStringEncoding error:&error]; @@ -315,7 +335,6 @@ /** * Choose the file(s) to be imported. - * TODO: Currently handles the import process too - split this off. */ -(IBAction)importAudio:(id)sender { @@ -338,18 +357,6 @@ NSString* extractor = [dbState objectForKey:@"extractor"]; NSString* extractorPath = [NSString stringWithFormat:@"/Applications/iAudioDB.app/rdf/%@.n3", extractor]; - // TODO Shift this process into a separate function. - // Create the customized extractor config -/* NSString* extractorContent = [NSString stringWithContentsOfFile:extractorPath]; - NSString* hopStr = [dbState objectForKey:@"hopsize"]; - NSString* winStr = [dbState objectForKey:@"windowsize"]; - NSString* newContent = [[extractorContent stringByReplacingOccurrencesOfString:@"HOP_SIZE" withString:hopStr] - stringByReplacingOccurrencesOfString:@"WINDOW_SIZE" withString:winStr]; - NSString* n3FileName = [NSTemporaryDirectory() stringByAppendingPathComponent:@"extractor_config.n3"]; - - NSError* error; - [newContent writeToFile:n3FileName atomically:YES encoding:NSASCIIStringEncoding error:&error]; -*/ for(int i=0; i<[filesToOpen count]; i++) { audiodb_close(db); @@ -357,42 +364,6 @@ // Get the sample rate for the audio file [self importFile:[filesToOpen objectAtIndex:i] withExtractorConfig:extractorPath]; - - /* 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); - - NSTask* task = [[NSTask alloc] init]; - - [task setLaunchPath:@"/usr/local/bin/sonic-annotator"]; - NSArray* args; - args = [NSArray arrayWithObjects:@"-t", n3FileName, @"-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]; - - // Update the plist store. - [trackMap setValue:val forKey:key]; - [dbState writeToFile:plistFilename atomically: YES]; - */ - db = audiodb_open([dbFilename cStringUsingEncoding:NSUTF8StringEncoding], O_RDONLY); [self updateStatus]; } @@ -648,9 +619,11 @@ { queryTrack = [[NSSound alloc] initWithContentsOfFile:selectedFilename byReference:YES]; - double samples = ([queryTrack duration]*44100.0f); - double hopSize = [[dbState objectForKey:@"hopsize"] doubleValue]; - double winSize = [[dbState objectForKey:@"windowsize"] doubleValue]; + int sampleRate = [self getSampleRate:selectedFilename]; + int hopSize = [self getHopSizeInSamples:selectedFilename]; + int winSize = [self nearestPow2:(hopSize*8)]; + + double samples = ([queryTrack duration]*sampleRate); [queryLengthSeconds setDoubleValue:[queryTrack duration]]; [queryLengthVectors setDoubleValue:ceil((samples-winSize)/hopSize)]; @@ -665,6 +638,7 @@ [queryStartVectors setEnabled:YES]; [resetButton setEnabled:YES]; [multipleCheckBox setEnabled:YES]; + [queryButton setEnabled:YES]; } @@ -672,8 +646,9 @@ { NSTextField *ed = [nd object]; - double hopSize = [[dbState objectForKey:@"hopsize"] doubleValue]; - double winSize = [[dbState objectForKey:@"windowsize"] doubleValue]; + int sampleRate = [self getSampleRate:selectedFilename]; + int hopSize = [self getHopSizeInSamples:selectedFilename]; + int winSize = [self nearestPow2:(hopSize*8)]; if(!queryTrack) { @@ -681,9 +656,10 @@ } double totalDuration = [queryTrack duration]; - double samples = totalDuration * 44100.0f; + double samples = totalDuration * sampleRate; double totalVectors = ceil((samples-winSize)/hopSize); + double lengthSecs = [queryLengthSeconds doubleValue]; double startSecs = [queryStartSeconds doubleValue]; double lengthVectors = [queryLengthVectors doubleValue]; @@ -694,10 +670,9 @@ { if(lengthSecs >= 0) { - lengthVectors = ceil(((lengthSecs*44100.0f)-winSize)/hopSize); + lengthVectors = ceil(((lengthSecs*sampleRate)-winSize)/hopSize); if(lengthVectors < 0) {lengthVectors = 0; } [queryLengthVectors setDoubleValue:lengthVectors]; - } } @@ -705,7 +680,7 @@ { if(lengthVectors >= 0) { - lengthSecs = ((hopSize*lengthVectors)+winSize)/44100.0f; + lengthSecs = ((hopSize*lengthVectors)+winSize)/sampleRate; if(lengthSecs < 0) { lengthSecs = 0; } [queryLengthSeconds setDoubleValue:lengthSecs]; } @@ -716,7 +691,7 @@ { if(startSecs >= 0) { - startVectors = ceil(((startSecs*44100.0f)-winSize)/hopSize); + startVectors = ceil(((startSecs*sampleRate)-winSize)/hopSize); if(startVectors < 0) { startVectors = 0; } [queryStartVectors setDoubleValue:startVectors]; } @@ -725,7 +700,7 @@ { if(startVectors >= 0) { - startSecs = ((hopSize*startVectors)+winSize)/44100.0f; + startSecs = ((hopSize*startVectors)+winSize)/sampleRate; if(startSecs < 0) { startSecs = 0; } [queryStartSeconds setDoubleValue:startSecs]; } @@ -813,11 +788,16 @@ } else { + NSLog(@"Populate table: %d", result->nresults); - float divisor = (44100.0f/hopSize); 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); + NSMutableDictionary* dict = [[NSMutableDictionary alloc] initWithCapacity:4]; [dict setValue:[NSString stringWithFormat:@"%s", result->results[i].ikey] forKey:@"key"]; [dict setValue:[NSNumber numberWithFloat:result->results[i].dist] forKey:@"distance"];
--- a/examples/iAudioDB/English.lproj/MainMenu.xib Thu Apr 29 17:15:01 2010 +0000 +++ b/examples/iAudioDB/English.lproj/MainMenu.xib Fri Apr 30 14:57:30 2010 +0000 @@ -8,10 +8,11 @@ <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="779"/> + <integer value="57"/> + <integer value="793"/> + <integer value="565"/> <integer value="371"/> - <integer value="793"/> - <integer value="57"/> - <integer value="779"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -899,7 +900,7 @@ <object class="NSWindowTemplate" id="298235049"> <int key="NSWindowStyleMask">17</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{196, 229}, {305, 281}}</string> + <string key="NSWindowRect">{{196, 278}, {305, 232}}</string> <int key="NSWTFlags">-1543503872</int> <string key="NSWindowTitle">Create</string> <string key="NSWindowClass">NSPanel</string> @@ -913,9 +914,8 @@ <object class="NSMatrix" id="948779024"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{20, 155}, {176, 86}}</string> + <string key="NSFrame">{{20, 106}, {176, 86}}</string> <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <int key="NSNumRows">4</int> <int key="NSNumCols">1</int> @@ -1199,9 +1199,8 @@ <object class="NSTextField" id="419880819"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{17, 249}, {123, 17}}</string> + <string key="NSFrame">{{17, 200}, {123, 17}}</string> <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="207653454"> <int key="NSCellFlags">68288064</int> @@ -1218,7 +1217,6 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{99, 12}, {96, 32}}</string> <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="614327950"> <int key="NSCellFlags">-2080244224</int> @@ -1239,7 +1237,6 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{195, 12}, {96, 32}}</string> <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="171111105"> <int key="NSCellFlags">-2080244224</int> @@ -1258,9 +1255,8 @@ <object class="NSTextField" id="243177593"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{198, 249}, {117, 17}}</string> + <string key="NSFrame">{{198, 200}, {117, 17}}</string> <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="901184140"> <int key="NSCellFlags">68288064</int> @@ -1275,9 +1271,8 @@ <object class="NSTextField" id="837891765"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{201, 219}, {84, 22}}</string> + <string key="NSFrame">{{201, 170}, {84, 22}}</string> <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="326075270"> <int key="NSCellFlags">-1804468671</int> @@ -1293,9 +1288,8 @@ <object class="NSTextField" id="100300330"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{198, 194}, {182, 17}}</string> + <string key="NSFrame">{{198, 145}, {182, 17}}</string> <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="586208572"> <int key="NSCellFlags">68288064</int> @@ -1310,9 +1304,8 @@ <object class="NSTextField" id="853306871"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{201, 164}, {84, 22}}</string> + <string key="NSFrame">{{201, 115}, {84, 22}}</string> <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="232388524"> <int key="NSCellFlags">-1804468671</int> @@ -1328,14 +1321,13 @@ <object class="NSTextField" id="306492447"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{198, 139}, {182, 17}}</string> + <string key="NSFrame">{{198, 90}, {182, 17}}</string> <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="408521227"> <int key="NSCellFlags">68288064</int> <int key="NSCellFlags2">272630784</int> - <string key="NSContents">Slice Size (s):</string> + <string key="NSContents">Slice Size (ms):</string> <reference key="NSSupport" ref="294883811"/> <reference key="NSControlView" ref="306492447"/> <reference key="NSBackgroundColor" ref="907238901"/> @@ -1345,14 +1337,13 @@ <object class="NSTextField" id="6587831"> <reference key="NSNextResponder" ref="108412374"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{201, 109}, {84, 22}}</string> + <string key="NSFrame">{{201, 60}, {84, 22}}</string> <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="552683571"> <int key="NSCellFlags">-1804468671</int> <int key="NSCellFlags2">272630784</int> - <string key="NSContents">2048</string> + <string key="NSContents">50</string> <reference key="NSSupport" ref="294883811"/> <reference key="NSControlView" ref="6587831"/> <bool key="NSDrawsBackground">YES</bool> @@ -1360,45 +1351,9 @@ <reference key="NSTextColor" ref="109975633"/> </object> </object> - <object class="NSTextField" id="603098151"> - <reference key="NSNextResponder" ref="108412374"/> - <int key="NSvFlags">268</int> - <string key="NSFrame">{{198, 84}, {182, 17}}</string> - <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="723611735"> - <int key="NSCellFlags">68288064</int> - <int key="NSCellFlags2">272630784</int> - <string key="NSContents">Window Size:</string> - <reference key="NSSupport" ref="294883811"/> - <reference key="NSControlView" ref="603098151"/> - <reference key="NSBackgroundColor" ref="907238901"/> - <reference key="NSTextColor" ref="915193604"/> - </object> - </object> - <object class="NSTextField" id="629729252"> - <reference key="NSNextResponder" ref="108412374"/> - <int key="NSvFlags">268</int> - <string key="NSFrame">{{201, 54}, {84, 22}}</string> - <reference key="NSSuperview" ref="108412374"/> - <reference key="NSWindow"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="849074580"> - <int key="NSCellFlags">-1804468671</int> - <int key="NSCellFlags2">272630784</int> - <string key="NSContents">16384</string> - <reference key="NSSupport" ref="294883811"/> - <reference key="NSControlView" ref="629729252"/> - <bool key="NSDrawsBackground">YES</bool> - <reference key="NSBackgroundColor" ref="53086941"/> - <reference key="NSTextColor" ref="109975633"/> - </object> - </object> </object> - <string key="NSFrameSize">{305, 281}</string> + <string key="NSFrameSize">{305, 232}</string> <reference key="NSSuperview"/> - <reference key="NSWindow"/> </object> <string key="NSScreenRect">{{0, 0}, {1280, 1002}}</string> <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> @@ -2040,14 +1995,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">windowSizeField</string> - <reference key="source" ref="232596070"/> - <reference key="destination" ref="629729252"/> - </object> - <int key="connectionID">791</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">querySheet</string> <reference key="source" ref="232596070"/> <reference key="destination" ref="726206840"/> @@ -2603,10 +2550,8 @@ <reference ref="853306871"/> <reference ref="306492447"/> <reference ref="6587831"/> - <reference ref="603098151"/> - <reference ref="629729252"/> + <reference ref="331424260"/> <reference ref="101359388"/> - <reference ref="331424260"/> </object> <reference key="parent" ref="298235049"/> </object> @@ -2857,34 +2802,6 @@ <reference key="parent" ref="211401506"/> </object> <object class="IBObjectRecord"> - <int key="objectID">787</int> - <reference key="object" ref="603098151"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="723611735"/> - </object> - <reference key="parent" ref="108412374"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">788</int> - <reference key="object" ref="629729252"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="849074580"/> - </object> - <reference key="parent" ref="108412374"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">789</int> - <reference key="object" ref="849074580"/> - <reference key="parent" ref="629729252"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">790</int> - <reference key="object" ref="723611735"/> - <reference key="parent" ref="603098151"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">792</int> <reference key="object" ref="726206840"/> <object class="NSMutableArray" key="children"> @@ -3431,10 +3348,6 @@ <string>778.NSWindowTemplate.visibleAtLaunch</string> <string>779.IBPluginDependency</string> <string>780.IBPluginDependency</string> - <string>787.IBPluginDependency</string> - <string>788.IBPluginDependency</string> - <string>789.IBPluginDependency</string> - <string>790.IBPluginDependency</string> <string>792.IBEditorWindowLastContentRect</string> <string>792.IBWindowTemplateEditedContentRect</string> <string>792.NSWindowTemplate.visibleAtLaunch</string> @@ -3558,8 +3471,8 @@ <reference ref="9"/> <string>{74, 862}</string> <string>{{6, 978}, {478, 20}}</string> - <string>{{194, -257}, {606, 477}}</string> - <string>{{194, -257}, {606, 477}}</string> + <string>{{38, 68}, {606, 477}}</string> + <string>{{38, 68}, {606, 477}}</string> <reference ref="9"/> <string>{{33, 99}, {480, 360}}</string> <string>{3.40282e+38, 3.40282e+38}</string> @@ -3575,8 +3488,8 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> - <string>{{413, 467}, {305, 281}}</string> - <string>{{413, 467}, {305, 281}}</string> + <string>{{413, 516}, {305, 232}}</string> + <string>{{413, 516}, {305, 232}}</string> <boolean value="NO" id="6"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{83, 102}, {201, 183}}</string> @@ -3621,17 +3534,13 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{76, 497}, {528, 56}}</string> - <string>{{76, 497}, {528, 56}}</string> + <string>{{26, 698}, {528, 56}}</string> + <string>{{26, 698}, {528, 56}}</string> <reference ref="6"/> <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>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{154, 421}, {294, 331}}</string> - <string>{{154, 421}, {294, 331}}</string> + <string>{{453, 577}, {294, 331}}</string> + <string>{{453, 577}, {294, 331}}</string> <reference ref="6"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -3800,7 +3709,6 @@ <string>statusField</string> <string>stopButton</string> <string>tracksView</string> - <string>windowSizeField</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -3829,7 +3737,6 @@ <string>NSTextField</string> <string>NSToolbarItem</string> <string>NSTableView</string> - <string>NSTextField</string> </object> </object> <object class="IBClassDescriptionSource" key="sourceIdentifier">