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">