changeset 685:e78e5a80b73d

* Extraction params supplied at db creation time * n3 configs are customized at extraction time * Changes to import UI * Extraction params stored in db plist
author mas01mj
date Thu, 11 Mar 2010 11:50:39 +0000
parents fed70cb84a92
children d9bb0dba8e7a
files examples/iAudioDB/AppController.h examples/iAudioDB/AppController.m examples/iAudioDB/English.lproj/MainMenu.xib examples/iAudioDB/rdf/adb_chroma.n3 examples/iAudioDB/rdf/adb_cq.n3 examples/iAudioDB/rdf/qm_chroma.n3 examples/iAudioDB/rdf/qm_mfcc.n3
diffstat 7 files changed, 581 insertions(+), 281 deletions(-) [+]
line wrap: on
line diff
--- a/examples/iAudioDB/AppController.h	Fri Mar 05 17:20:06 2010 +0000
+++ b/examples/iAudioDB/AppController.h	Thu Mar 11 11:50:39 2010 +0000
@@ -33,17 +33,26 @@
 	
 	NSMutableArray* results;
 	NSDictionary* trackMap;
+	NSDictionary* dbState;
+	
+	// Creating
+	IBOutlet id createSheet;
+	IBOutlet NSMatrix* extractorOptions;
+	IBOutlet NSTextField* windowSizeField;
+	IBOutlet NSTextField* hopSizeField;
+	IBOutlet NSTextField* maxTracksField;
+	IBOutlet NSTextField* maxLengthField;
 	
 	// Extracting
 	IBOutlet id importSheet;
-	IBOutlet NSBox* extractingBox;
-	IBOutlet NSMatrix* extractorOptions;
 	IBOutlet NSProgressIndicator* indicator;
 	
 	// Playback
 	NSSound* queryTrack;
 	NSSound* resultTrack;
 	
+	
+	
 	// Query param fields
 	
 	/* To Come
@@ -53,17 +62,20 @@
 	 IBOutlet NSTextField* queryLengthField;
 	 IBOutlet NSTextField* queryRadiusField;
 	 IBOutlet NSButtonCell* exhaustiveField;*/
-	
 }
 
 //  Menus
 -(IBAction)newDatabase:(id)sender;
 -(IBAction)openDatabase:(id)sender;
--(IBAction)selectFiles:(id)sender;
 
 // Import
 -(IBAction)importAudio:(id)sender;
--(IBAction)cancelImport:(id)sender;
+// -(IBAction)cancelImport:(id)sender;
+
+// Create
+
+-(IBAction)cancelCreate:(id)sender;
+-(IBAction)createDatabase:(id)sender;
 
 // Buttons
 -(IBAction)playBoth:(id)sender;
--- a/examples/iAudioDB/AppController.m	Fri Mar 05 17:20:06 2010 +0000
+++ b/examples/iAudioDB/AppController.m	Thu Mar 11 11:50:39 2010 +0000
@@ -38,42 +38,95 @@
  */
 -(IBAction)newDatabase:(id)sender
 {
+	
+	[NSApp beginSheet:createSheet modalForWindow:mainWindow modalDelegate:self didEndSelector:NULL contextInfo:nil];
+	session = [NSApp beginModalSessionForWindow:createSheet];
+	[NSApp runModalSession:session];	
+}
+
+/**
+ * Cancel the db creation (at configuration time).
+ */
+-(IBAction)cancelCreate:(id)sender
+{
+	[NSApp endModalSession:session];
+	[createSheet orderOut:nil];
+	[NSApp endSheet:createSheet];
+}
+
+-(IBAction)createDatabase:(id)sender
+{
+	[self cancelCreate:self];
+	
 	NSSavePanel* panel = [NSSavePanel savePanel];
 	NSInteger response = [panel runModalForDirectory:NSHomeDirectory() file:@""];
-	
+	 
 	[results removeAllObjects];
 	[tracksView reloadData];
-	
+	 
 	if(response == NSFileHandlingPanelOKButton)
 	{
+		// Work out which extractor to use
+		NSString* extractor = @"adb_chroma";
+		// TODO: This should be stored with the n3.
+		int dim;
+		switch([extractorOptions selectedTag])
+		{
+			case 0:
+				extractor = @"adb_chroma";
+				dim = 12;
+				break;
+			case 1:
+				extractor = @"adb_cq";
+				dim = 48;
+				break;
+			case 2:
+				extractor = @"qm_chroma";
+				dim = 12;
+				break;
+			case 3:
+				extractor = @"qm_mfcc";
+				dim = 12;
+				break;
+		}
+		
+		// Calculate the max DB size
+		int vectors = ceil(([maxLengthField doubleValue] * 60) / ([hopSizeField doubleValue] / 44100));
+		int numtracks = [maxTracksField intValue];
+		int datasize = ceil((numtracks * vectors * dim * 8) / 1024 / 1024); // In MB
+		
 		// TODO: Refactor this into a 'tidy' method.
 		// Tidy any existing references up.
 		if(db)
 		{
 			audiodb_close(db);
 		}
-		
+		 
 		if(dbFilename)
 		{
 			[dbFilename release];
 			[dbName release];
 			[plistFilename release];
 		}
-		
+		 
 		// Create new db, and set flags.
-		db = audiodb_create([[panel filename] cStringUsingEncoding:NSUTF8StringEncoding], 0, 0, 0);
+		db = audiodb_create([[panel filename] cStringUsingEncoding:NSUTF8StringEncoding], datasize, numtracks, dim);
 		audiodb_l2norm(db);
-	//	audiodb_power(db);
-		
+			 
 		// Store useful paths.
 		dbName = [[[panel URL] relativePath] retain];
 		dbFilename = [[panel filename] retain];
 		plistFilename = [[NSString stringWithFormat:@"%@.plist", [dbFilename stringByDeletingPathExtension]] retain];
-		
+			
 		// Create the plist file (contains mapping from filename to key).
+		dbState = [[NSMutableDictionary alloc] init];
 		trackMap = [[NSMutableDictionary alloc] init];
-		[trackMap writeToFile:plistFilename atomically:YES];
-		
+		[dbState setValue:trackMap forKey:@"tracks"];
+		[dbState setValue:extractor forKey:@"extractor"];
+		[dbState setValue:[hopSizeField stringValue] forKey:@"hopsize"];
+		[dbState setValue:[windowSizeField stringValue] forKey:@"windowsize"];
+		[dbState writeToFile:plistFilename atomically:YES];
+			 
 		[queryKey setStringValue:@"None Selected"];
 		[self updateStatus];
 	}
@@ -102,6 +155,8 @@
 			[dbFilename release];
 			[dbName release];
 			[plistFilename release];
+			[trackMap release];
+			[dbState release];
 		}
 		
 		// Store useful paths.
@@ -129,7 +184,9 @@
 		}
 		
 		audiodb_liszt_free_results(db, liszt_results);
-		trackMap = [[[NSMutableDictionary alloc] initWithContentsOfFile:plistFilename] retain];
+		dbState = [[[NSMutableDictionary alloc] initWithContentsOfFile:plistFilename] retain];
+		trackMap = [[dbState objectForKey:@"tracks"] retain];
+		
 		NSLog(@"Size: %d", [trackMap count]);
 	}
 }
@@ -159,30 +216,10 @@
 }
 
 /**
- * Get user's import choices.
- */
--(IBAction)importAudio:(id)sender
-{
-	[NSApp beginSheet:importSheet modalForWindow:mainWindow modalDelegate:self didEndSelector:NULL contextInfo:nil];
-	session = [NSApp beginModalSessionForWindow: importSheet];
-	[NSApp runModalSession:session];
-}
-
-/**
- * Cancel the import (at configuration time).
- */
--(IBAction)cancelImport:(id)sender;
-{
-	[NSApp endModalSession:session];
-	[importSheet orderOut:nil];
-	[NSApp endSheet:importSheet];
-}
-
-/**
  * Choose the file(s) to be imported.
  * TODO: Currently handles the import process too - split this off.
  */
--(IBAction)selectFiles:(id)sender
+-(IBAction)importAudio:(id)sender
 {
 	[tracksView reloadData];
 	
@@ -192,52 +229,27 @@
 	NSInteger response = [panel runModalForDirectory:NSHomeDirectory() file:@"" types:fileTypes];
 	if(response == NSFileHandlingPanelOKButton)
 	{
-		NSRect newFrame;
+		[indicator startAnimation:self];
 		
-		[extractingBox setHidden:FALSE];
-		newFrame.origin.x = [importSheet frame].origin.x;
-		newFrame.origin.y = [importSheet frame].origin.y - [extractingBox frame].size.height;
-		newFrame.size.width = [importSheet frame].size.width;
-		newFrame.size.height = [importSheet frame].size.height + [extractingBox frame].size.height;
-		
-		[indicator startAnimation:self];
-		[importSheet setFrame:newFrame display:YES animate:YES];
+		[NSApp beginSheet:importSheet modalForWindow:mainWindow modalDelegate:self didEndSelector:NULL contextInfo:nil];
+		session = [NSApp beginModalSessionForWindow: importSheet];
+		[NSApp runModalSession:session];
 		
 		NSArray *filesToOpen = [panel filenames];
 		
-		NSLog(@"Begin import");
+		NSString* extractor = [dbState objectForKey:@"extractor"];
+		NSString* extractorPath = [NSString stringWithFormat:@"/Users/mikej/Development/audioDB/examples/iAudioDB/rdf/%@.n3", extractor];
 		
-		/*
-		 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
-		 */
+		// 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"];
 		
-		
-		// adb_chroma
-		// adb_cq
-		// qm_chroma
-		// qm_mfcc
-		
-		// Work out which extractor to use
-		NSString* extractor = @"chromagram";
-		switch([extractorOptions selectedTag])
-		{
-			case 0:
-				extractor = @"adb_chroma";
-				break;
-			case 1:
-				extractor = @"adb_cq";
-				break;
-			case 2:
-				extractor = @"qm_chroma";
-				break;
-			case 3:
-				extractor = @"qm_mfcc";
-				break;
-		}
-		
+		NSError* error;
+		[newContent writeToFile:n3FileName atomically:YES encoding:NSASCIIStringEncoding error:&error];
 		
 		for(int i=0; i<[filesToOpen count]; i++)
 		{		
@@ -254,11 +266,8 @@
 			NSTask* task = [[NSTask alloc] init];
 			
 			[task setLaunchPath:@"/usr/local/bin/sonic-annotator"];
-			
-			NSString* extractorPath = [NSString stringWithFormat:@"/Users/mikej/Development/audioDB/examples/iAudioDB/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];
+			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];
@@ -274,42 +283,20 @@
 			
 			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.times = NULL;
-			insert.key = [key cStringUsingEncoding:NSUTF8StringEncoding];
-			
-			// Insert into db.
-			if(audiodb_insert(db, &insert))
-			{
-				// TODO: Show an error message.
-				NSLog(@"Weep: %@ %@", featuresFileName, key);
-				continue;
-			}*/
-			
+		
 			// Update the plist store.
 			[trackMap setValue:val forKey:key];
-			[trackMap writeToFile:plistFilename atomically: YES];
+			[dbState writeToFile:plistFilename atomically: YES];
 			
 			
 			db = audiodb_open([dbFilename cStringUsingEncoding:NSUTF8StringEncoding], O_RDONLY);
 			[self updateStatus];
 		}
 		
-		newFrame.origin.x = [importSheet frame].origin.x;
-		newFrame.origin.y = [importSheet frame].origin.y + [extractingBox frame].size.height;
-		newFrame.size.width = [importSheet frame].size.width;
-		newFrame.size.height = [importSheet frame].size.height - [extractingBox frame].size.height;
-		
-		[importSheet setFrame:newFrame display:YES animate:YES];
-		
 		[NSApp endModalSession:session];
 		[importSheet orderOut:nil];
 		[NSApp endSheet:importSheet];
 		[indicator stopAnimation:self];
-		[extractingBox setHidden:TRUE];
 	}
 }
 
--- a/examples/iAudioDB/English.lproj/MainMenu.xib	Fri Mar 05 17:20:06 2010 +0000
+++ b/examples/iAudioDB/English.lproj/MainMenu.xib	Thu Mar 11 11:50:39 2010 +0000
@@ -8,9 +8,10 @@
 		<string key="IBDocument.HIToolboxVersion">353.00</string>
 		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
 			<bool key="EncodedWithXMLCoder">YES</bool>
-			<integer value="565"/>
-			<integer value="528"/>
+			<integer value="779"/>
+			<integer value="527"/>
 			<integer value="57"/>
+			<integer value="789"/>
 		</object>
 		<object class="NSArray" key="IBDocument.PluginDependencies">
 			<bool key="EncodedWithXMLCoder">YES</bool>
@@ -419,7 +420,7 @@
 									<int key="NSfFlags">1044</int>
 								</object>
 								<reference key="NSControlView" ref="407454331"/>
-								<object class="NSColor" key="NSBackgroundColor" id="999916820">
+								<object class="NSColor" key="NSBackgroundColor" id="53086941">
 									<int key="NSColorSpace">6</int>
 									<string key="NSCatalogName">System</string>
 									<string key="NSColorName">textBackgroundColor</string>
@@ -428,7 +429,7 @@
 										<bytes key="NSWhite">MQA</bytes>
 									</object>
 								</object>
-								<object class="NSColor" key="NSTextColor">
+								<object class="NSColor" key="NSTextColor" id="109975633">
 									<int key="NSColorSpace">6</int>
 									<string key="NSCatalogName">System</string>
 									<string key="NSColorName">textColor</string>
@@ -896,9 +897,9 @@
 			<object class="NSWindowTemplate" id="298235049">
 				<int key="NSWindowStyleMask">17</int>
 				<int key="NSWindowBacking">2</int>
-				<string key="NSWindowRect">{{196, 364}, {535, 146}}</string>
+				<string key="NSWindowRect">{{196, 229}, {305, 281}}</string>
 				<int key="NSWTFlags">-1543503872</int>
-				<string key="NSWindowTitle">Window</string>
+				<string key="NSWindowTitle">Create</string>
 				<string key="NSWindowClass">NSPanel</string>
 				<nil key="NSViewClass"/>
 				<string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
@@ -910,7 +911,7 @@
 						<object class="NSMatrix" id="948779024">
 							<reference key="NSNextResponder" ref="108412374"/>
 							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{20, 20}, {176, 86}}</string>
+							<string key="NSFrame">{{20, 155}, {176, 86}}</string>
 							<reference key="NSSuperview" ref="108412374"/>
 							<bool key="NSEnabled">YES</bool>
 							<int key="NSNumRows">4</int>
@@ -1190,90 +1191,29 @@
 						<object class="NSTextField" id="419880819">
 							<reference key="NSNextResponder" ref="108412374"/>
 							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{17, 114}, {123, 17}}</string>
+							<string key="NSFrame">{{17, 249}, {123, 17}}</string>
 							<reference key="NSSuperview" ref="108412374"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="207653454">
 								<int key="NSCellFlags">68288064</int>
 								<int key="NSCellFlags2">272630784</int>
-								<string key="NSContents">Available Features:</string>
+								<string key="NSContents">Feature Type:</string>
 								<reference key="NSSupport" ref="294883811"/>
 								<reference key="NSControlView" ref="419880819"/>
 								<reference key="NSBackgroundColor" ref="907238901"/>
 								<reference key="NSTextColor" ref="915193604"/>
 							</object>
 						</object>
-						<object class="NSBox" id="955715704">
-							<reference key="NSNextResponder" ref="108412374"/>
-							<int key="NSvFlags">12</int>
-							<object class="NSMutableArray" key="NSSubviews">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSView" id="790617918">
-									<reference key="NSNextResponder" ref="955715704"/>
-									<int key="NSvFlags">256</int>
-									<object class="NSMutableArray" key="NSSubviews">
-										<bool key="EncodedWithXMLCoder">YES</bool>
-										<object class="NSProgressIndicator" id="143167873">
-											<reference key="NSNextResponder" ref="790617918"/>
-											<int key="NSvFlags">-2147482356</int>
-											<object class="NSPSMatrix" key="NSDrawMatrix"/>
-											<string key="NSFrame">{{5, 26}, {481, 20}}</string>
-											<reference key="NSSuperview" ref="790617918"/>
-											<int key="NSpiFlags">16394</int>
-											<double key="NSMinValue">2.000000e+01</double>
-											<double key="NSMaxValue">1.000000e+02</double>
-										</object>
-										<object class="NSTextField" id="79334017">
-											<reference key="NSNextResponder" ref="790617918"/>
-											<int key="NSvFlags">268</int>
-											<string key="NSFrame">{{178, 54}, {136, 17}}</string>
-											<reference key="NSSuperview" ref="790617918"/>
-											<bool key="NSEnabled">YES</bool>
-											<object class="NSTextFieldCell" key="NSCell" id="662722795">
-												<int key="NSCellFlags">68288064</int>
-												<int key="NSCellFlags2">272630784</int>
-												<string key="NSContents">Extracting features...</string>
-												<reference key="NSSupport" ref="294883811"/>
-												<reference key="NSControlView" ref="79334017"/>
-												<reference key="NSBackgroundColor" ref="907238901"/>
-												<reference key="NSTextColor" ref="915193604"/>
-											</object>
-										</object>
-									</object>
-									<string key="NSFrameSize">{496, 71}</string>
-									<reference key="NSSuperview" ref="955715704"/>
-								</object>
-							</object>
-							<string key="NSFrame">{{22, -98}, {496, 71}}</string>
-							<reference key="NSSuperview" ref="108412374"/>
-							<string key="NSOffsets">{0, 0}</string>
-							<object class="NSTextFieldCell" key="NSTitleCell">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">0</int>
-								<string key="NSContents">Box</string>
-								<reference key="NSSupport" ref="26"/>
-								<reference key="NSBackgroundColor" ref="999916820"/>
-								<object class="NSColor" key="NSTextColor">
-									<int key="NSColorSpace">3</int>
-									<bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
-								</object>
-							</object>
-							<reference key="NSContentView" ref="790617918"/>
-							<int key="NSBorderType">0</int>
-							<int key="NSBoxType">0</int>
-							<int key="NSTitlePosition">0</int>
-							<bool key="NSTransparent">NO</bool>
-						</object>
 						<object class="NSButton" id="331424260">
 							<reference key="NSNextResponder" ref="108412374"/>
 							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{329, 12}, {96, 32}}</string>
+							<string key="NSFrame">{{99, 12}, {96, 32}}</string>
 							<reference key="NSSuperview" ref="108412374"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSButtonCell" key="NSCell" id="614327950">
 								<int key="NSCellFlags">-2080244224</int>
 								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">Browse</string>
+								<string key="NSContents">Create</string>
 								<reference key="NSSupport" ref="294883811"/>
 								<reference key="NSControlView" ref="331424260"/>
 								<int key="NSButtonFlags">-2038284033</int>
@@ -1287,7 +1227,7 @@
 						<object class="NSButton" id="101359388">
 							<reference key="NSNextResponder" ref="108412374"/>
 							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{425, 12}, {96, 32}}</string>
+							<string key="NSFrame">{{195, 12}, {96, 32}}</string>
 							<reference key="NSSuperview" ref="108412374"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSButtonCell" key="NSCell" id="171111105">
@@ -1304,8 +1244,170 @@
 								<int key="NSPeriodicInterval">25</int>
 							</object>
 						</object>
+						<object class="NSTextField" id="243177593">
+							<reference key="NSNextResponder" ref="108412374"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{198, 249}, {117, 17}}</string>
+							<reference key="NSSuperview" ref="108412374"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTextFieldCell" key="NSCell" id="901184140">
+								<int key="NSCellFlags">68288064</int>
+								<int key="NSCellFlags2">272630784</int>
+								<string key="NSContents">Max Tracks:</string>
+								<reference key="NSSupport" ref="294883811"/>
+								<reference key="NSControlView" ref="243177593"/>
+								<reference key="NSBackgroundColor" ref="907238901"/>
+								<reference key="NSTextColor" ref="915193604"/>
+							</object>
+						</object>
+						<object class="NSTextField" id="837891765">
+							<reference key="NSNextResponder" ref="108412374"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{201, 219}, {84, 22}}</string>
+							<reference key="NSSuperview" ref="108412374"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTextFieldCell" key="NSCell" id="326075270">
+								<int key="NSCellFlags">-1804468671</int>
+								<int key="NSCellFlags2">272630784</int>
+								<string key="NSContents">10</string>
+								<reference key="NSSupport" ref="294883811"/>
+								<reference key="NSControlView" ref="837891765"/>
+								<bool key="NSDrawsBackground">YES</bool>
+								<reference key="NSBackgroundColor" ref="53086941"/>
+								<reference key="NSTextColor" ref="109975633"/>
+							</object>
+						</object>
+						<object class="NSTextField" id="100300330">
+							<reference key="NSNextResponder" ref="108412374"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{198, 194}, {182, 17}}</string>
+							<reference key="NSSuperview" ref="108412374"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTextFieldCell" key="NSCell" id="586208572">
+								<int key="NSCellFlags">68288064</int>
+								<int key="NSCellFlags2">272630784</int>
+								<string key="NSContents">Max Length:</string>
+								<reference key="NSSupport" ref="294883811"/>
+								<reference key="NSControlView" ref="100300330"/>
+								<reference key="NSBackgroundColor" ref="907238901"/>
+								<reference key="NSTextColor" ref="915193604"/>
+							</object>
+						</object>
+						<object class="NSTextField" id="853306871">
+							<reference key="NSNextResponder" ref="108412374"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{201, 164}, {84, 22}}</string>
+							<reference key="NSSuperview" ref="108412374"/>
+							<bool key="NSEnabled">YES</bool>
+							<object class="NSTextFieldCell" key="NSCell" id="232388524">
+								<int key="NSCellFlags">-1804468671</int>
+								<int key="NSCellFlags2">272630784</int>
+								<string key="NSContents">5</string>
+								<reference key="NSSupport" ref="294883811"/>
+								<reference key="NSControlView" ref="853306871"/>
+								<bool key="NSDrawsBackground">YES</bool>
+								<reference key="NSBackgroundColor" ref="53086941"/>
+								<reference key="NSTextColor" ref="109975633"/>
+							</object>
+						</object>
+						<object class="NSTextField" id="306492447">
+							<reference key="NSNextResponder" ref="108412374"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{198, 139}, {182, 17}}</string>
+							<reference key="NSSuperview" ref="108412374"/>
+							<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">Hop Size:</string>
+								<reference key="NSSupport" ref="294883811"/>
+								<reference key="NSControlView" ref="306492447"/>
+								<reference key="NSBackgroundColor" ref="907238901"/>
+								<reference key="NSTextColor" ref="915193604"/>
+							</object>
+						</object>
+						<object class="NSTextField" id="6587831">
+							<reference key="NSNextResponder" ref="108412374"/>
+							<int key="NSvFlags">268</int>
+							<string key="NSFrame">{{201, 109}, {84, 22}}</string>
+							<reference key="NSSuperview" ref="108412374"/>
+							<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>
+								<reference key="NSSupport" ref="294883811"/>
+								<reference key="NSControlView" ref="6587831"/>
+								<bool key="NSDrawsBackground">YES</bool>
+								<reference key="NSBackgroundColor" ref="53086941"/>
+								<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"/>
+							<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"/>
+							<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">{535, 146}</string>
+					<string key="NSFrameSize">{305, 281}</string>
+					<reference key="NSSuperview"/>
+				</object>
+				<string key="NSScreenRect">{{0, 0}, {1280, 1002}}</string>
+				<string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+			</object>
+			<object class="NSWindowTemplate" id="882433171">
+				<int key="NSWindowStyleMask">17</int>
+				<int key="NSWindowBacking">2</int>
+				<string key="NSWindowRect">{{196, 454}, {528, 56}}</string>
+				<int key="NSWTFlags">-1543503872</int>
+				<string key="NSWindowTitle">Import</string>
+				<string key="NSWindowClass">NSPanel</string>
+				<nil key="NSViewClass"/>
+				<object class="NSView" key="NSWindowView" id="211401506">
+					<reference key="NSNextResponder"/>
+					<int key="NSvFlags">256</int>
+					<object class="NSMutableArray" key="NSSubviews">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSProgressIndicator" id="395134946">
+							<reference key="NSNextResponder" ref="211401506"/>
+							<int key="NSvFlags">1292</int>
+							<object class="NSPSMatrix" key="NSDrawMatrix"/>
+							<string key="NSFrame">{{18, 16}, {492, 20}}</string>
+							<reference key="NSSuperview" ref="211401506"/>
+							<int key="NSpiFlags">16394</int>
+							<double key="NSMinValue">2.000000e+01</double>
+							<double key="NSMaxValue">1.000000e+02</double>
+						</object>
+					</object>
+					<string key="NSFrameSize">{528, 56}</string>
 					<reference key="NSSuperview"/>
 				</object>
 				<string key="NSScreenRect">{{0, 0}, {1280, 1002}}</string>
@@ -1413,14 +1515,6 @@
 				</object>
 				<object class="IBConnectionRecord">
 					<object class="IBOutletConnection" key="connection">
-						<string key="label">importSheet</string>
-						<reference key="source" ref="232596070"/>
-						<reference key="destination" ref="298235049"/>
-					</object>
-					<int key="connectionID">569</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
 						<string key="label">mainWindow</string>
 						<reference key="source" ref="232596070"/>
 						<reference key="destination" ref="972006081"/>
@@ -1436,22 +1530,6 @@
 					<int key="connectionID">631</int>
 				</object>
 				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">selectFiles:</string>
-						<reference key="source" ref="232596070"/>
-						<reference key="destination" ref="331424260"/>
-					</object>
-					<int key="connectionID">632</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">extractingBox</string>
-						<reference key="source" ref="232596070"/>
-						<reference key="destination" ref="955715704"/>
-					</object>
-					<int key="connectionID">633</int>
-				</object>
-				<object class="IBConnectionRecord">
 					<object class="IBOutletConnection" key="connection">
 						<string key="label">extractorOptions</string>
 						<reference key="source" ref="232596070"/>
@@ -1485,14 +1563,6 @@
 				</object>
 				<object class="IBConnectionRecord">
 					<object class="IBActionConnection" key="connection">
-						<string key="label">cancelImport:</string>
-						<reference key="source" ref="232596070"/>
-						<reference key="destination" ref="101359388"/>
-					</object>
-					<int key="connectionID">695</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
 						<string key="label">selectedChanged:</string>
 						<reference key="source" ref="232596070"/>
 						<reference key="destination" ref="372985267"/>
@@ -1619,6 +1689,78 @@
 					</object>
 					<int key="connectionID">754</int>
 				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">maxTracksField</string>
+						<reference key="source" ref="232596070"/>
+						<reference key="destination" ref="837891765"/>
+					</object>
+					<int key="connectionID">772</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">maxLengthField</string>
+						<reference key="source" ref="232596070"/>
+						<reference key="destination" ref="853306871"/>
+					</object>
+					<int key="connectionID">773</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">hopSizeField</string>
+						<reference key="source" ref="232596070"/>
+						<reference key="destination" ref="6587831"/>
+					</object>
+					<int key="connectionID">774</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">indicator</string>
+						<reference key="source" ref="232596070"/>
+						<reference key="destination" ref="395134946"/>
+					</object>
+					<int key="connectionID">782</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">createSheet</string>
+						<reference key="source" ref="232596070"/>
+						<reference key="destination" ref="298235049"/>
+					</object>
+					<int key="connectionID">783</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">importSheet</string>
+						<reference key="source" ref="232596070"/>
+						<reference key="destination" ref="882433171"/>
+					</object>
+					<int key="connectionID">784</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">createDatabase:</string>
+						<reference key="source" ref="232596070"/>
+						<reference key="destination" ref="331424260"/>
+					</object>
+					<int key="connectionID">785</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">cancelCreate:</string>
+						<reference key="source" ref="232596070"/>
+						<reference key="destination" ref="101359388"/>
+					</object>
+					<int key="connectionID">786</int>
+				</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>
 			<object class="IBMutableOrderedSet" key="objectRecords">
 				<object class="NSArray" key="orderedObjects">
@@ -1938,8 +2080,15 @@
 						<object class="NSMutableArray" key="children">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<reference ref="419880819"/>
-							<reference ref="955715704"/>
 							<reference ref="948779024"/>
+							<reference ref="243177593"/>
+							<reference ref="837891765"/>
+							<reference ref="100300330"/>
+							<reference ref="853306871"/>
+							<reference ref="306492447"/>
+							<reference ref="6587831"/>
+							<reference ref="603098151"/>
+							<reference ref="629729252"/>
 							<reference ref="101359388"/>
 							<reference ref="331424260"/>
 						</object>
@@ -1988,35 +2137,6 @@
 						<reference key="parent" ref="419880819"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">623</int>
-						<reference key="object" ref="955715704"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="79334017"/>
-							<reference ref="143167873"/>
-						</object>
-						<reference key="parent" ref="108412374"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">624</int>
-						<reference key="object" ref="143167873"/>
-						<reference key="parent" ref="955715704"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">625</int>
-						<reference key="object" ref="79334017"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="662722795"/>
-						</object>
-						<reference key="parent" ref="955715704"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">626</int>
-						<reference key="object" ref="662722795"/>
-						<reference key="parent" ref="79334017"/>
-					</object>
-					<object class="IBObjectRecord">
 						<int key="objectID">627</int>
 						<reference key="object" ref="331424260"/>
 						<object class="NSMutableArray" key="children">
@@ -2169,20 +2289,6 @@
 						<reference key="parent" ref="950838651"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">693</int>
-						<reference key="object" ref="101359388"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="171111105"/>
-						</object>
-						<reference key="parent" ref="108412374"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">694</int>
-						<reference key="object" ref="171111105"/>
-						<reference key="parent" ref="101359388"/>
-					</object>
-					<object class="IBObjectRecord">
 						<int key="objectID">699</int>
 						<reference key="object" ref="313714439"/>
 						<object class="NSMutableArray" key="children">
@@ -2321,6 +2427,155 @@
 						<reference key="object" ref="902679321"/>
 						<reference key="parent" ref="948779024"/>
 					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">693</int>
+						<reference key="object" ref="101359388"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="171111105"/>
+						</object>
+						<reference key="parent" ref="108412374"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">694</int>
+						<reference key="object" ref="171111105"/>
+						<reference key="parent" ref="101359388"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">757</int>
+						<reference key="object" ref="243177593"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="901184140"/>
+						</object>
+						<reference key="parent" ref="108412374"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">758</int>
+						<reference key="object" ref="901184140"/>
+						<reference key="parent" ref="243177593"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">759</int>
+						<reference key="object" ref="837891765"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="326075270"/>
+						</object>
+						<reference key="parent" ref="108412374"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">760</int>
+						<reference key="object" ref="326075270"/>
+						<reference key="parent" ref="837891765"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">763</int>
+						<reference key="object" ref="100300330"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="586208572"/>
+						</object>
+						<reference key="parent" ref="108412374"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">764</int>
+						<reference key="object" ref="586208572"/>
+						<reference key="parent" ref="100300330"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">765</int>
+						<reference key="object" ref="853306871"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="232388524"/>
+						</object>
+						<reference key="parent" ref="108412374"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">766</int>
+						<reference key="object" ref="232388524"/>
+						<reference key="parent" ref="853306871"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">767</int>
+						<reference key="object" ref="306492447"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="408521227"/>
+						</object>
+						<reference key="parent" ref="108412374"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">768</int>
+						<reference key="object" ref="6587831"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="552683571"/>
+						</object>
+						<reference key="parent" ref="108412374"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">769</int>
+						<reference key="object" ref="552683571"/>
+						<reference key="parent" ref="6587831"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">770</int>
+						<reference key="object" ref="408521227"/>
+						<reference key="parent" ref="306492447"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">778</int>
+						<reference key="object" ref="882433171"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="211401506"/>
+						</object>
+						<reference key="parent" ref="1049"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">779</int>
+						<reference key="object" ref="211401506"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="395134946"/>
+						</object>
+						<reference key="parent" ref="882433171"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">780</int>
+						<reference key="object" ref="395134946"/>
+						<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>
 			</object>
 			<object class="NSMutableDictionary" key="flattenedProperties">
@@ -2420,10 +2675,6 @@
 					<string>620.IBPluginDependency</string>
 					<string>621.IBPluginDependency</string>
 					<string>622.IBPluginDependency</string>
-					<string>623.IBPluginDependency</string>
-					<string>624.IBPluginDependency</string>
-					<string>625.IBPluginDependency</string>
-					<string>626.IBPluginDependency</string>
 					<string>627.IBPluginDependency</string>
 					<string>628.IBPluginDependency</string>
 					<string>665.IBPluginDependency</string>
@@ -2461,6 +2712,28 @@
 					<string>750.IBPluginDependency</string>
 					<string>755.IBPluginDependency</string>
 					<string>756.IBPluginDependency</string>
+					<string>757.IBPluginDependency</string>
+					<string>758.IBPluginDependency</string>
+					<string>759.IBPluginDependency</string>
+					<string>760.IBPluginDependency</string>
+					<string>763.IBPluginDependency</string>
+					<string>764.IBPluginDependency</string>
+					<string>765.IBPluginDependency</string>
+					<string>766.IBPluginDependency</string>
+					<string>767.IBPluginDependency</string>
+					<string>768.IBPluginDependency</string>
+					<string>769.IBPluginDependency</string>
+					<string>770.IBPluginDependency</string>
+					<string>778.IBEditorWindowLastContentRect</string>
+					<string>778.IBPluginDependency</string>
+					<string>778.IBWindowTemplateEditedContentRect</string>
+					<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>81.IBEditorWindowLastContentRect</string>
 					<string>81.IBPluginDependency</string>
 					<string>81.ImportedFromIB2</string>
@@ -2524,8 +2797,8 @@
 					<reference ref="9"/>
 					<string>{74, 862}</string>
 					<string>{{6, 978}, {478, 20}}</string>
-					<string>{{47, 66}, {606, 477}}</string>
-					<string>{{47, 66}, {606, 477}}</string>
+					<string>{{366, 55}, {606, 477}}</string>
+					<string>{{366, 55}, {606, 477}}</string>
 					<reference ref="9"/>
 					<string>{{33, 99}, {480, 360}}</string>
 					<string>{3.40282e+38, 3.40282e+38}</string>
@@ -2551,9 +2824,9 @@
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<reference ref="9"/>
-					<string>{{9, 164}, {535, 146}}</string>
-					<string>{{9, 164}, {535, 146}}</string>
-					<boolean value="NO"/>
+					<string>{{169, 544}, {305, 281}}</string>
+					<string>{{169, 544}, {305, 281}}</string>
+					<boolean value="NO" id="6"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>{{83, 102}, {201, 183}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -2583,10 +2856,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>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>{{778, 152}, {154, 133}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -2608,6 +2877,28 @@
 					<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>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>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{76, 497}, {528, 56}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{76, 497}, {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>{{736, 222}, {169, 63}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<reference ref="9"/>
@@ -2640,7 +2931,7 @@
 				</object>
 			</object>
 			<nil key="sourceID"/>
-			<int key="maxID">756</int>
+			<int key="maxID">791</int>
 		</object>
 		<object class="IBClassDescriber" key="IBDocument.Classes">
 			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -2652,16 +2943,17 @@
 						<bool key="EncodedWithXMLCoder">YES</bool>
 						<object class="NSMutableArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>cancelImport:</string>
+							<string>cancelCreate:</string>
 							<string>chooseQuery:</string>
+							<string>createDatabase:</string>
 							<string>importAudio:</string>
 							<string>newDatabase:</string>
 							<string>openDatabase:</string>
 							<string>playBoth:</string>
 							<string>playResult:</string>
-							<string>selectFiles:</string>
 							<string>selectedChanged:</string>
 							<string>stopPlay:</string>
+							<string>tableDoubleClick:</string>
 						</object>
 						<object class="NSMutableArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
@@ -2675,6 +2967,7 @@
 							<string>id</string>
 							<string>id</string>
 							<string>id</string>
+							<string>id</string>
 						</object>
 					</object>
 					<object class="NSMutableDictionary" key="outlets">
@@ -2682,32 +2975,40 @@
 						<object class="NSMutableArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>chooseButton</string>
-							<string>extractingBox</string>
+							<string>createSheet</string>
 							<string>extractorOptions</string>
+							<string>hopSizeField</string>
 							<string>importSheet</string>
 							<string>indicator</string>
 							<string>mainWindow</string>
+							<string>maxLengthField</string>
+							<string>maxTracksField</string>
 							<string>playBothButton</string>
 							<string>playResultButton</string>
 							<string>queryKey</string>
 							<string>statusField</string>
 							<string>stopButton</string>
 							<string>tracksView</string>
+							<string>windowSizeField</string>
 						</object>
 						<object class="NSMutableArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>NSButton</string>
-							<string>NSBox</string>
+							<string>id</string>
 							<string>NSMatrix</string>
+							<string>NSTextField</string>
 							<string>id</string>
 							<string>NSProgressIndicator</string>
 							<string>id</string>
+							<string>NSTextField</string>
+							<string>NSTextField</string>
 							<string>NSButton</string>
 							<string>NSButton</string>
 							<string>NSTextField</string>
 							<string>NSTextField</string>
 							<string>NSButton</string>
 							<string>NSTableView</string>
+							<string>NSTextField</string>
 						</object>
 					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
--- a/examples/iAudioDB/rdf/adb_chroma.n3	Fri Mar 05 17:20:06 2010 +0000
+++ b/examples/iAudioDB/rdf/adb_chroma.n3	Thu Mar 11 11:50:39 2010 +0000
@@ -4,8 +4,8 @@
 
 :transform a vamp:Transform ;
     vamp:plugin <http://vamp-plugins.org/rdf/plugins/vamp-audiodb-plugins#chromagram> ;
-    vamp:step_size "2048"^^xsd:int ; 
-    vamp:block_size "16384"^^xsd:int ; 
+    vamp:step_size "HOP_SIZE"^^xsd:int ; 
+    vamp:block_size "WINDOW_SIZE"^^xsd:int ; 
     vamp:parameter_binding [
         vamp:parameter [ vamp:identifier "bpo" ] ;
         vamp:value "12"^^xsd:float ;
--- a/examples/iAudioDB/rdf/adb_cq.n3	Fri Mar 05 17:20:06 2010 +0000
+++ b/examples/iAudioDB/rdf/adb_cq.n3	Thu Mar 11 11:50:39 2010 +0000
@@ -4,8 +4,8 @@
 
 :transform a vamp:Transform ;
     vamp:plugin <http://vamp-plugins.org/rdf/plugins/vamp-audiodb-plugins#cq> ;
-    vamp:step_size "2048"^^xsd:int ; 
-    vamp:block_size "16384"^^xsd:int ; 
+    vamp:step_size "HOP_SIZE"^^xsd:int ; 
+    vamp:block_size "WINDOW_SIZE"^^xsd:int ; 
     vamp:parameter_binding [
         vamp:parameter [ vamp:identifier "bpo" ] ;
         vamp:value "12"^^xsd:float ;
--- a/examples/iAudioDB/rdf/qm_chroma.n3	Fri Mar 05 17:20:06 2010 +0000
+++ b/examples/iAudioDB/rdf/qm_chroma.n3	Thu Mar 11 11:50:39 2010 +0000
@@ -4,8 +4,8 @@
 
 :transform a vamp:Transform ;
     vamp:plugin <http://vamp-plugins.org/rdf/plugins/qm-vamp-plugins#qm-chromagram> ;
-    vamp:step_size "2048"^^xsd:int ; 
-    vamp:block_size "16384"^^xsd:int ; 
+    vamp:step_size "HOP_SIZE"^^xsd:int ; 
+    vamp:block_size "WINDOW_SIZE"^^xsd:int ; 
     vamp:parameter_binding [
         vamp:parameter [ vamp:identifier "bpo" ] ;
         vamp:value "12"^^xsd:float ;
--- a/examples/iAudioDB/rdf/qm_mfcc.n3	Fri Mar 05 17:20:06 2010 +0000
+++ b/examples/iAudioDB/rdf/qm_mfcc.n3	Thu Mar 11 11:50:39 2010 +0000
@@ -4,8 +4,8 @@
 
 :transform a vamp:Transform ;
     vamp:plugin <http://vamp-plugins.org/rdf/plugins/qm-vamp-plugins#qm-mfcc> ;
-    vamp:step_size "1024"^^xsd:int ; 
-    vamp:block_size "2048"^^xsd:int ; 
+    vamp:step_size "HOP_SIZE"^^xsd:int ; 
+    vamp:block_size "WINDOW_SIZE"^^xsd:int ; 
     vamp:parameter_binding [
         vamp:parameter [ vamp:identifier "logpower" ] ;
         vamp:value "1"^^xsd:float ;