Sam Drazin avatar Sam Drazin committed 287c885

Added buttons for z/c control, clearing audio after processing to clean output stream

Comments (0)

Files changed (20)

Classes/InstructionsView.xib

 				<int key="NSvFlags">292</int>
 				<object class="NSMutableArray" key="NSSubviews">
 					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="IBUIScrollView" id="521323790">
+					<object class="IBUIImageView" id="660477805">
+						<reference key="NSNextResponder" ref="763154897"/>
+						<int key="NSvFlags">300</int>
+						<string key="NSFrame">{{0, 168}, {320, 243}}</string>
+						<reference key="NSSuperview" ref="763154897"/>
+						<bool key="IBUIUserInteractionEnabled">NO</bool>
+						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						<object class="NSCustomResource" key="IBUIImage">
+							<string key="NSClassName">NSImage</string>
+							<string key="NSResourceName">wii_nunchuck_close_up.jpg</string>
+						</object>
+					</object>
+					<object class="IBUITextView" id="332493066">
 						<reference key="NSNextResponder" ref="763154897"/>
 						<int key="NSvFlags">274</int>
-						<string key="NSFrameSize">{320, 411}</string>
+						<string key="NSFrame">{{20, 20}, {280, 152}}</string>
 						<reference key="NSSuperview" ref="763154897"/>
-						<bool key="IBUIClipsSubviews">YES</bool>
+						<object class="NSColor" key="IBUIBackgroundColor">
+							<int key="NSColorSpace">1</int>
+							<bytes key="NSRGB">MSAxIDEAA</bytes>
+						</object>
+						<bool key="IBUIAutoresizesSubviews">NO</bool>
+						<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
 						<bool key="IBUIMultipleTouchEnabled">YES</bool>
+						<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
+							<integer value="4" key="IBUIAccessibilityTraits"/>
+						</object>
 						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						<bool key="IBUIShowsHorizontalScrollIndicator">NO</bool>
+						<int key="IBUIIndicatorStyle">1</int>
+						<bool key="IBUIDelaysContentTouches">NO</bool>
+						<bool key="IBUICanCancelContentTouches">NO</bool>
+						<float key="IBUIMaximumZoomScale">3</float>
 						<bool key="IBUIBouncesZoom">NO</bool>
+						<bool key="IBUIEditable">NO</bool>
+						<string key="IBUIText">The WiiNunchuck app allows you to sync together a Wii Nunchuck with your iPhone.  In order to make a proper connection between these two devices, you must also have a preprogrammed Arduino micro controller with our project's source code, which you can download for free here: http://www.samdrazin.com/classes/mmi593 .  The code provided allows for the iPhone to receive and process any of the control values sent from the Wii Nunchuck, including three axes of accelerometer data, to axes of the joystick movement, and both Z and C button presses.  Configuration between the code in Xcode as well as the Arduino platforms must be synchronized, which is a process better explained in the documentation included with the software download.  Hope you enjoy!</string>
+						<object class="IBUITextInputTraits" key="IBUITextInputTraits">
+							<int key="IBUIAutocapitalizationType">2</int>
+							<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						</object>
+						<int key="IBUIDataDetectorTypes">2</int>
 					</object>
 				</object>
 				<string key="NSFrameSize">{320, 411}</string>
 						<reference key="object" ref="763154897"/>
 						<object class="NSMutableArray" key="children">
 							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="521323790"/>
+							<reference ref="660477805"/>
+							<reference ref="332493066"/>
 						</object>
 						<reference key="parent" ref="0"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">8</int>
-						<reference key="object" ref="521323790"/>
+						<int key="objectID">12</int>
+						<reference key="object" ref="660477805"/>
+						<reference key="parent" ref="763154897"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">13</int>
+						<reference key="object" ref="332493066"/>
 						<reference key="parent" ref="763154897"/>
 					</object>
 				</object>
 					<bool key="EncodedWithXMLCoder">YES</bool>
 					<string>-1.CustomClassName</string>
 					<string>-2.CustomClassName</string>
+					<string>12.IBPluginDependency</string>
+					<string>13.IBPluginDependency</string>
 					<string>3.IBEditorWindowLastContentRect</string>
 					<string>3.IBPluginDependency</string>
-					<string>8.IBPluginDependency</string>
 				</object>
 				<object class="NSMutableArray" key="dict.values">
 					<bool key="EncodedWithXMLCoder">YES</bool>
 					<string>InstructionsViewController</string>
 					<string>UIResponder</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<string>{{468, 320}, {320, 411}}</string>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
-					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 				</object>
 			</object>
 			<object class="NSMutableDictionary" key="unlocalizedProperties">
 				</object>
 			</object>
 			<nil key="sourceID"/>
-			<int key="maxID">9</int>
+			<int key="maxID">18</int>
 		</object>
 		<object class="IBClassDescriber" key="IBDocument.Classes">
 			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
 				<object class="IBPartialClassDescription">
 					<string key="className">InstructionsViewController</string>
 					<string key="superclassName">UIViewController</string>
+					<object class="NSMutableDictionary" key="outlets">
+						<string key="NS.key.0">description</string>
+						<string key="NS.object.0">UITextView</string>
+					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBProjectSource</string>
 						<string key="minorKey">Classes/InstructionsViewController.h</string>
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">UIImageView</string>
+					<string key="superclassName">UIView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">UIResponder</string>
 					<string key="superclassName">NSObject</string>
 					<reference key="sourceIdentifier" ref="557264258"/>
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
+					<string key="className">UITextView</string>
+					<string key="superclassName">UIScrollView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UITextView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
 					<string key="className">UIView</string>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBFrameworkSource</string>
 		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
 		<string key="IBDocument.LastKnownRelativeProjectPath">../WiiNunchuck.xcodeproj</string>
 		<int key="IBDocument.defaultPropertyAccessControl">3</int>
+		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+			<string key="NS.key.0">wii_nunchuck_close_up.jpg</string>
+			<string key="NS.object.0">{320, 238}</string>
+		</object>
 		<string key="IBCocoaTouchPluginVersion">87</string>
 	</data>
 </archive>

Classes/InstructionsViewController.h

 
 @interface InstructionsViewController : UIViewController <UIScrollViewDelegate> {
 //	IBOutlet UIScrollView	*scrollView;
-//	IBOutlet UILabel		*insructionLabel;
+	IBOutlet UITextView		*description;
 }
 
 //@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;
-//@property (nonatomic, retain) IBOutlet UILabel		*insructionLabel;
+@property (nonatomic, retain) 	IBOutlet UITextView		*description;
+
 
 @end

Classes/InstructionsViewController.m

 @implementation InstructionsViewController
 
 //@synthesize scrollView;
-//@synthesize insructionLabel;
+@synthesize description;
+
+
+- (void)viewDidLoad {
+//	[description setBackgroundColor:[UIColor clearColor]];
+    [super viewDidLoad];
+//	description.backgroundColor = [UIColor clearColor];
+}
 
 /*
  // The designated initializer.  Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
 }
 */
 /*
-// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
-- (void)viewDidLoad {
-    [super viewDidLoad];
-}
-*/
-/*
 // Override to allow orientations other than the default portrait orientation.
 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
     // Return YES for supported orientations
 - (void)didReceiveMemoryWarning {
     // Releases the view if it doesn't have a superview.
     [super didReceiveMemoryWarning];
-    
-    // Release any cached data, images, etc that aren't in use.
+
 }
 
 - (void)viewDidUnload {
 
 - (void)dealloc {
     [super dealloc];
+	[description release];
 }
 
 

Classes/MainViewController.h

 //
 
 #import <UIKit/UIKit.h>
+#include <AudioToolbox/AudioToolbox.h>
 
 #define kUpdateInterval	(1.0f/10.0f)
 #define kMaxAccel			1.5f
 	IBOutlet UIButton		*stopSyncButton;
 	NSTimer					*myTimer;
 	UIActivityIndicatorView *activityView;
+	IBOutlet UIImageView	*zButtonImageView;
+	IBOutlet UIImageView	*cButtonImageView;
 	
 @public
 	WiiNunchuckAppDelegate	*applicationDelegate;
 	double					value1;
 	double					value2;
 	double					value3;
+	bool					value4;	// zButton
+	bool					value5; // cButton
+	
 	double					iPhoneAccel;
+	
+	// Sound file objects for sample playback
+	CFURLRef					kickURLRef;
+	CFURLRef					snareURLRef;
+	CFURLRef					openHatURLRef;
+	SystemSoundID				kickSoundFileObject;
+	SystemSoundID				snareSoundFileObject;
+	SystemSoundID				openHatSoundFileObject;	
+	
 }
 
 @property (nonatomic, retain) IBOutlet UILabel		*valueLabel1;
 @property (nonatomic, retain) IBOutlet UIButton		*stopSyncButton;
 @property (nonatomic, retain) UIActivityIndicatorView *activityView;
 
+@property (nonatomic, retain) IBOutlet UIImageView	*zButtonImageView;
+@property (nonatomic, retain) IBOutlet UIImageView	*cButtonImageView;
+
+
 @property (nonatomic, retain) IBOutlet UILabel		*valueLabel3Title;
 
+@property (readwrite)			CFURLRef			kickURLRef;
+@property (readwrite)			CFURLRef			snareURLRef;
+@property (readwrite)			CFURLRef			openHatURLRef;
+@property (readonly)			SystemSoundID		kickSoundFileObject;
+@property (readonly)			SystemSoundID		snareSoundFileObject;
+@property (readonly)			SystemSoundID		openHatSoundFileObject;
+
+
+
+
 -(IBAction)startSynchingValues:(id)sender;
--(IBAction)resetTimer;
+-(IBAction)resetSync;
 -(void)displayValuesToLabels;
+-(void)monitorNunchuckButtons;
 -(void)updateValueOfLabel:(int)labelNumber withValue:(double)value;
 
 @end

Classes/MainViewController.mm

 #import "MainViewController.h"
 #import "WiiNunchuckAppDelegate.h"
 
+int		refreshSessionsWithoutValues	= 0;
+int		debounceZButton					= 0;
+int		debounceCButton					= 0;
+#define	kDebounceDelay					13
+
 @implementation MainViewController
 
 @synthesize valueLabel1;
 @synthesize syncButton;
 @synthesize stopSyncButton;
 @synthesize activityView;
+@synthesize zButtonImageView;
+@synthesize cButtonImageView;
 @synthesize valueLabel3Title;
 
+@synthesize kickURLRef;
+@synthesize snareURLRef;
+@synthesize openHatURLRef;
+@synthesize kickSoundFileObject;
+@synthesize snareSoundFileObject;
+@synthesize openHatSoundFileObject;
+
 double map(double value, double oldLow, double oldHigh, double newLow, double newHigh)
 {
 	return (value - oldLow) * (newHigh - newLow) / (oldHigh - oldLow) + newLow;
 }
 
 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
-- (void)viewDidLoad {
+- (void)viewDidLoad 
+{
 	[super viewDidLoad];
 	
 	UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer];
 	accel.delegate = self;
 	accel.updateInterval = kUpdateInterval;
+	
+	// Get the main bundle for the app
+	CFBundleRef mainBundle;
+	mainBundle = CFBundleGetMainBundle ();
+	
+	// Get the URL to the sound file to play
+	kickURLRef		= CFBundleCopyResourceURL (mainBundle, CFSTR ("kick"), CFSTR ("caf"), NULL);
+	snareURLRef		= CFBundleCopyResourceURL (mainBundle, CFSTR ("snare"), CFSTR ("caf"), NULL);
+	openHatURLRef	= CFBundleCopyResourceURL (mainBundle, CFSTR ("open_hat"), CFSTR ("caf"), NULL);
+	
+	// Create a system sound object representing the sound file
+	AudioServicesCreateSystemSoundID (kickURLRef, &kickSoundFileObject);
+	AudioServicesCreateSystemSoundID (snareURLRef, &snareSoundFileObject);
+	AudioServicesCreateSystemSoundID (openHatURLRef, &openHatSoundFileObject);
 }
 
 -(IBAction)startSynchingValues:(id)sender
 	[myTimer release];
 	myTimer = nil;
 	
-	myTimer = [[NSTimer timerWithTimeInterval:kScreenRefreshTime target:self selector:@selector(timerFired:) userInfo:nil repeats:YES] retain];
+	myTimer = [[NSTimer timerWithTimeInterval:kScreenRefreshTime target:self 
+									 selector:@selector(timerFired:) 
+									 userInfo:nil repeats:YES] retain];
 	[[NSRunLoop currentRunLoop] addTimer:myTimer forMode:NSDefaultRunLoopMode];	
 }
 
--(IBAction)resetTimer
-{
+/* Resets the app to the state prior to any syncing 
+ * TODO: change the name of this function
+ */
+-(IBAction)resetSync
+{	
 	// reset the timer
 	[myTimer invalidate];
 	[myTimer release];
 	syncButton.enabled		= YES;
 	syncButton.hidden		= NO;
 	
+	zButtonImageView.hidden	= YES;
+	cButtonImageView.hidden	= YES;
+	
+	value1 = 0;
+	value2 = 0;
+	value3 = 0;
+	[self displayValuesToLabels];
 }
 
 -(void)displayValuesToLabels
 	else if (labelNumber == 3) {
 		if ([applicationDelegate->settingsViewController shouldUseiPhoneAccel]) {
 			value3 = iPhoneAccel;
-			printf("-- Using iPhoneAccel value for label 3");
 		}
 		else {
 			value3 = value;
 		}
-	}	
+	}
+	else if (labelNumber == 4) {
+		value4 = (bool) value;
+	}
+	else if (labelNumber == 5) {
+		value5 = (bool) value;
+	}
+	
+}
+
+-(void)handleZButton
+{
+	if (debounceZButton <= 0) {
+
+		zButtonImageView.hidden = YES;		
+		debounceZButton += kDebounceDelay;
+		if (value4) {
+			AudioServicesPlaySystemSound (self.snareSoundFileObject);
+			zButtonImageView.hidden = NO;
+		}
+	}
+	else {
+		debounceZButton -= 1;
+	}
+	
+}
+-(void)handleCButton
+{
+	if (debounceCButton <= 0) {
+		
+		cButtonImageView.hidden = YES;
+		
+		debounceCButton += kDebounceDelay;
+		if (value5) {
+			AudioServicesPlaySystemSound (self.openHatSoundFileObject);
+			cButtonImageView.hidden = NO;
+		}
+	}
+	else {
+		debounceCButton -= 1;
+	}
+	
+}
+
+-(void)monitorNunchuckButtons
+{
+	[self handleZButton];
+	[self handleCButton];
 }
 
 - (void)timerFired:(NSTimer *)timer
 {
+	if (value1 == 0 && value2 == 0 && value3 == 0)
+		refreshSessionsWithoutValues += 1;
+	
+	if (refreshSessionsWithoutValues >= 500) {
+		UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Connection Error" 
+														message:@"Failed to receive data sent through the headphone jack.  Check your connections and try again." 
+													   delegate:self 
+											  cancelButtonTitle:@"Ok" 
+											  otherButtonTitles:nil];
+		[alert show];
+		[alert release];
+		[self resetSync];
+		refreshSessionsWithoutValues = 0;
+	}
+	
 	// time has passed, recall the display function
 	[self displayValuesToLabels];
+	[self monitorNunchuckButtons];
 }
 
-
-
 #pragma mark -
 
--(void) accelerometer:(UIAccelerometer *) accelerometer didAccelerate:(UIAcceleration *) acceleration {	
+-(void) accelerometer:(UIAccelerometer *) accelerometer didAccelerate:(UIAcceleration *) acceleration 
+{	
 	
 	if([applicationDelegate->settingsViewController shouldUseiPhoneAccel])
 	{
 		else {
 			iPhoneAccel = newValue; 
 		}
-		
-//		value3 = iPhoneAccel;
+
 		NSString *message = [[NSString alloc] initWithFormat:@"%.0f", iPhoneAccel];
 		valueLabel3.text = message;
 		[message release];
 	}
 	else {
-//		value3 = 0;
-//		valueLabel3.text = @"0";
 		valueLabel3Title.text = @"";
 	}
 
 }
 
-
 /*
   (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
     if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
 
 - (void)dealloc {
     [super dealloc];
+	[valueLabel1 release];
+	[valueLabel2 release];
+	[valueLabel3 release];
+	[syncButton release];
+	[stopSyncButton release];
+	[activityView release];
+	[zButtonImageView release];
+	[cButtonImageView release];
+	[valueLabel3Title release];
 }
 
 

Classes/SampleAudioUnit.h

 	
 	int						value1count,
 							value2count, 
-							value3count,
-							value4count,
-							value5count,;
+							value3count;
 	
 	double					*value1Buffer, 
 							*value2Buffer,
 							*value3Buffer;
-	
-	bool					*value4Buffer,
-							*value5Buffer;
+
 /*
 	int		*accelXBuffer;
 	char	*accelYBuffer;

Classes/SampleAudioUnit.mm

 bool DEBUG							= false;
 bool PRINT_FLOATING_POINT_VALUES	= false;
 bool PRINT_BINARY_VALUES			= false;
-bool PRINT_VALUES					= true;
+bool PRINT_VALUES					= false;
 
 SampleAudioUnit::SampleAudioUnit()
 {
 	value1count				= 0;
 	value2count				= 0;
 	value3count				= 0;
-	value4count				= 0;
-	value5count				= 0;
 
 	value1					= 0;
 	value2					= 0;
 	value1Buffer			= new double[kMovingAverageLength];
 	value2Buffer			= new double[kMovingAverageLength];
 	value3Buffer			= new double[kMovingAverageLength];
-	value4Buffer			= new bool[kMovingAverageLength];
-	value5Buffer			= new bool[kMovingAverageLength];
 	
 	frameCount				= 0;
 	zeroTrainLength			= 0;
 	delete [] value1Buffer;
 	delete [] value2Buffer;
 	delete [] value3Buffer;
-	delete [] value4Buffer;
-	delete [] value5Buffer;
 	
 	free(applicationDelegate);
 	
 		}
 	}
 	else if (whichValue == 4) {
-		value4Buffer[value4count%kMovingAverageLength] = (bool) value;
-		value4count += 1;
-		if (value4count >= kMovingAverageLength) {
-			value4 = bufferAverage(value4Buffer, kMovingAverageLength);	
-//			[applicationDelegate updateValue:4 withValue:value4];
-		}
+		value4 = (bool) value;
+		[applicationDelegate updateValue:4 withValue:(bool)value4];
 	}
 	else if (whichValue == 5) {
-		value5Buffer[value5count%kMovingAverageLength] = (bool) value;
-		value5count += 1;
-		if (value5count >= kMovingAverageLength) {
-			value5 = bufferAverage(value5Buffer, kMovingAverageLength);	
-//			[applicationDelegate updateValue:5 withValue:value5];
-		}
+		value5 = (bool) value;
+		[applicationDelegate updateValue:5 withValue:(bool)value5];
 	}
-	
 	packetCount += 1;
 }
 
 		}
 
 //		if (!foundError) {
-			adjustBinaryCounters();
+		adjustBinaryCounters();
 //		}
 //		foundError = false;
+		
+		// Throw out data after finished processing, after all, this isn't audio that we want to listen to!
+		buffer[i] = 0;
 	}
 	
 	if (PRINT_BINARY_VALUES)	printf("\n\n");

Classes/WiiNunchuckAppDelegate.h

 #import "SampleAudioUnit.h"
 #import "SettingsViewController.h"
 #import "MainViewController.h"
+#import "InstructionsViewController.h"
+
 
 @interface WiiNunchuckAppDelegate : NSObject <UIApplicationDelegate> {
-    UIWindow						*window;
-	IBOutlet UITabBarController		*rootController;
+    UIWindow							*window;
+	IBOutlet UITabBarController			*rootController;
 
-	@public MainViewController		*mainViewController;
-	@public	SettingsViewController	*settingsViewController;
+	@public MainViewController			*mainViewController;
+	@public	SettingsViewController		*settingsViewController;
+	@public InstructionsViewController	*instructionsViewController;
 	
 	// MUEAudioIO Components
-	MUEAudioIO						*m_audioController;
-	SampleAudioUnit					*m_sampleAudioUnit;
+	MUEAudioIO							*m_audioController;
+	SampleAudioUnit						*m_sampleAudioUnit;
 }
 
-@property (nonatomic, retain) IBOutlet UIWindow *window;
-@property (nonatomic, retain) IBOutlet UITabBarController *rootController;
+@property (nonatomic, retain) IBOutlet UIWindow				*window;
+@property (nonatomic, retain) IBOutlet UITabBarController	*rootController;
 
 -(void)updateValue:(int)labelNumber withValue:(double)value;
 

Classes/WiiNunchuckAppDelegate.mm

     [window makeKeyAndVisible];
 
 	// Associates references with views of the TabBarController (0-indexed)
+	instructionsViewController = [rootController.viewControllers objectAtIndex:0];
 	mainViewController = [rootController.viewControllers objectAtIndex:1];
 	settingsViewController = [rootController.viewControllers objectAtIndex:2];
 	
+	[instructionsViewController viewDidLoad];
+	
 	m_audioController = MUEAudioIO::getInstance();
 
     //add effects here
 	m_audioController->startIO();
 }
 
-
 -(void)updateValue:(int)labelNumber withValue:(double)value {
 	[mainViewController updateValueOfLabel:labelNumber withValue:value];
 }
-
-
 -(void)dealloc {
 	m_audioController->~MUEAudioIO();
 	
 		</object>
 		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
 			<bool key="EncodedWithXMLCoder">YES</bool>
-			<integer value="23"/>
+			<integer value="63"/>
 		</object>
 		<object class="NSArray" key="IBDocument.PluginDependencies">
 			<bool key="EncodedWithXMLCoder">YES</bool>
 						<string key="NSFrame">{{20, 14}, {68, 37}}</string>
 						<reference key="NSSuperview" ref="813418066"/>
 						<bool key="IBUIOpaque">NO</bool>
-						<float key="IBUIAlpha">0.40000000596046448</float>
 						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 						<bool key="IBUIEnabled">NO</bool>
 						<int key="IBUIContentHorizontalAlignment">0</int>
 						</object>
 						<reference key="IBUINormalTitleShadowColor" ref="206462700"/>
 					</object>
+					<object class="IBUIImageView" id="563068611">
+						<reference key="NSNextResponder" ref="813418066"/>
+						<int key="NSvFlags">-2147483356</int>
+						<string key="NSFrame">{{25, 149}, {50, 50}}</string>
+						<reference key="NSSuperview" ref="813418066"/>
+						<bool key="IBUIUserInteractionEnabled">NO</bool>
+						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						<object class="NSCustomResource" key="IBUIImage">
+							<string key="NSClassName">NSImage</string>
+							<string key="NSResourceName">green_button.png</string>
+						</object>
+					</object>
+					<object class="IBUIImageView" id="716237688">
+						<reference key="NSNextResponder" ref="813418066"/>
+						<int key="NSvFlags">-2147483356</int>
+						<string key="NSFrame">{{25, 91}, {50, 50}}</string>
+						<reference key="NSSuperview" ref="813418066"/>
+						<bool key="IBUIUserInteractionEnabled">NO</bool>
+						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						<object class="NSCustomResource" key="IBUIImage">
+							<string key="NSClassName">NSImage</string>
+							<string key="NSResourceName">blue_button.png</string>
+						</object>
+					</object>
 				</object>
 				<string key="NSFrameSize">{320, 411}</string>
 				<reference key="NSSuperview"/>
 				</object>
 				<object class="IBConnectionRecord">
 					<object class="IBCocoaTouchEventConnection" key="connection">
-						<string key="label">resetTimer</string>
+						<string key="label">resetSync</string>
 						<reference key="source" ref="1069113586"/>
 						<reference key="destination" ref="372490531"/>
 						<int key="IBEventType">7</int>
 					</object>
-					<int key="connectionID">81</int>
+					<int key="connectionID">87</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">zButtonImageView</string>
+						<reference key="source" ref="372490531"/>
+						<reference key="destination" ref="563068611"/>
+					</object>
+					<int key="connectionID">90</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">cButtonImageView</string>
+						<reference key="source" ref="372490531"/>
+						<reference key="destination" ref="716237688"/>
+					</object>
+					<int key="connectionID">91</int>
 				</object>
 			</object>
 			<object class="IBMutableOrderedSet" key="objectRecords">
 							<reference ref="1069113586"/>
 							<reference ref="267485470"/>
 							<reference ref="464717776"/>
+							<reference ref="716237688"/>
+							<reference ref="563068611"/>
 						</object>
 						<reference key="parent" ref="0"/>
 					</object>
 						<reference key="object" ref="1069113586"/>
 						<reference key="parent" ref="813418066"/>
 					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">88</int>
+						<reference key="object" ref="563068611"/>
+						<reference key="parent" ref="813418066"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">89</int>
+						<reference key="object" ref="716237688"/>
+						<reference key="parent" ref="813418066"/>
+					</object>
 				</object>
 			</object>
 			<object class="NSMutableDictionary" key="flattenedProperties">
 					<string>75.IBPluginDependency</string>
 					<string>76.IBPluginDependency</string>
 					<string>78.IBPluginDependency</string>
+					<string>88.IBPluginDependency</string>
+					<string>89.IBPluginDependency</string>
 				</object>
 				<object class="NSMutableArray" key="dict.values">
 					<bool key="EncodedWithXMLCoder">YES</bool>
 					<string>MainViewController</string>
 					<string>UIResponder</string>
-					<string>{{395, 402}, {320, 411}}</string>
+					<string>{{476, 376}, {320, 411}}</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 				</object>
 			</object>
 			<nil key="sourceID"/>
-			<int key="maxID">81</int>
+			<int key="maxID">91</int>
 		</object>
 		<object class="IBClassDescriber" key="IBDocument.Classes">
 			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
 						<bool key="EncodedWithXMLCoder">YES</bool>
 						<object class="NSArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>resetTimer</string>
+							<string>resetSync</string>
 							<string>startSynchingValues:</string>
 						</object>
 						<object class="NSMutableArray" key="dict.values">
 						<bool key="EncodedWithXMLCoder">YES</bool>
 						<object class="NSArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>cButtonImageView</string>
 							<string>stopSyncButton</string>
 							<string>syncButton</string>
 							<string>valueLabel1</string>
 							<string>valueLabel2</string>
 							<string>valueLabel3</string>
 							<string>valueLabel3Title</string>
+							<string>zButtonImageView</string>
 						</object>
 						<object class="NSMutableArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>UIImageView</string>
 							<string>UIButton</string>
 							<string>UIButton</string>
 							<string>UILabel</string>
 							<string>UILabel</string>
 							<string>UILabel</string>
 							<string>UILabel</string>
+							<string>UIImageView</string>
 						</object>
 					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 		<string key="IBDocument.LastKnownRelativeProjectPath">WiiNunchuck.xcodeproj</string>
 		<int key="IBDocument.defaultPropertyAccessControl">3</int>
 		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
-			<string key="NS.key.0">wii_nunchuck_xray.png</string>
-			<string key="NS.object.0">{270, 346}</string>
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSArray" key="dict.sortedKeys">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<string>blue_button.png</string>
+				<string>green_button.png</string>
+				<string>wii_nunchuck_xray.png</string>
+			</object>
+			<object class="NSMutableArray" key="dict.values">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<string>{50, 50}</string>
+				<string>{50, 50}</string>
+				<string>{270, 346}</string>
+			</object>
 		</object>
 		<string key="IBCocoaTouchPluginVersion">87</string>
 	</data>

WiiNunchuck.xcodeproj/project.pbxproj

 		F4548EB6117EB18F0023F7A5 /* coffee_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = F4548EB5117EB18F0023F7A5 /* coffee_icon.png */; };
 		F4841D981172C9EF0034AF4B /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F4841D971172C9EF0034AF4B /* AudioToolbox.framework */; };
 		F4841E5A1172D50E0034AF4B /* Filter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4841E581172D50E0034AF4B /* Filter.cpp */; };
+		F4B25D011183BEC8009BA0D3 /* blue_button.png in Resources */ = {isa = PBXBuildFile; fileRef = F4B25CFF1183BEC8009BA0D3 /* blue_button.png */; };
+		F4B25D021183BEC8009BA0D3 /* green_button.png in Resources */ = {isa = PBXBuildFile; fileRef = F4B25D001183BEC8009BA0D3 /* green_button.png */; };
+		F4FFF87511824ACE000D9C7B /* kick.caf in Resources */ = {isa = PBXBuildFile; fileRef = F4FFF87111824ACE000D9C7B /* kick.caf */; };
+		F4FFF87611824ACE000D9C7B /* kick2.caf in Resources */ = {isa = PBXBuildFile; fileRef = F4FFF87211824ACE000D9C7B /* kick2.caf */; };
+		F4FFF87711824ACE000D9C7B /* open_hat.caf in Resources */ = {isa = PBXBuildFile; fileRef = F4FFF87311824ACE000D9C7B /* open_hat.caf */; };
+		F4FFF87811824ACE000D9C7B /* snare.caf in Resources */ = {isa = PBXBuildFile; fileRef = F4FFF87411824ACE000D9C7B /* snare.caf */; };
+		F4FFF8E4118260B5000D9C7B /* wii_nunchuck_close_up.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F4FFF8E3118260B5000D9C7B /* wii_nunchuck_close_up.jpg */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
 		F4841D971172C9EF0034AF4B /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
 		F4841E581172D50E0034AF4B /* Filter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Filter.cpp; path = ../../../../../../Users/sdrazin/Documents/Programs/iPhone/WiiNunchuck/Classes/Filter.cpp; sourceTree = SDKROOT; };
 		F4841E591172D50E0034AF4B /* Filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Filter.h; path = ../../../../../../Users/sdrazin/Documents/Programs/iPhone/WiiNunchuck/Classes/Filter.h; sourceTree = SDKROOT; };
+		F4B25CFF1183BEC8009BA0D3 /* blue_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = blue_button.png; sourceTree = "<group>"; };
+		F4B25D001183BEC8009BA0D3 /* green_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = green_button.png; sourceTree = "<group>"; };
+		F4FFF87111824ACE000D9C7B /* kick.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = kick.caf; sourceTree = "<group>"; };
+		F4FFF87211824ACE000D9C7B /* kick2.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = kick2.caf; sourceTree = "<group>"; };
+		F4FFF87311824ACE000D9C7B /* open_hat.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = open_hat.caf; sourceTree = "<group>"; };
+		F4FFF87411824ACE000D9C7B /* snare.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = snare.caf; sourceTree = "<group>"; };
+		F4FFF8E3118260B5000D9C7B /* wii_nunchuck_close_up.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = wii_nunchuck_close_up.jpg; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
 		29B97317FDCFA39411CA2CEA /* Resources */ = {
 			isa = PBXGroup;
 			children = (
+				F4FFF8E3118260B5000D9C7B /* wii_nunchuck_close_up.jpg */,
+				F4FFF87111824ACE000D9C7B /* kick.caf */,
+				F4FFF87211824ACE000D9C7B /* kick2.caf */,
+				F4FFF87411824ACE000D9C7B /* snare.caf */,
+				F4FFF87311824ACE000D9C7B /* open_hat.caf */,
+				F4B25CFF1183BEC8009BA0D3 /* blue_button.png */,
+				F4B25D001183BEC8009BA0D3 /* green_button.png */,
 				F40FCA62117EC1FE002A9011 /* InstructionsView.xib */,
 				F40FCA4E117EC1AD002A9011 /* magnify.png */,
 				28AD733E0D9D9553002E5188 /* MainWindow.xib */,
 				F40FCA3E117EBA1C002A9011 /* AboutView.xib in Resources */,
 				F40FCA4F117EC1AD002A9011 /* magnify.png in Resources */,
 				F40FCA63117EC1FE002A9011 /* InstructionsView.xib in Resources */,
+				F4FFF87511824ACE000D9C7B /* kick.caf in Resources */,
+				F4FFF87611824ACE000D9C7B /* kick2.caf in Resources */,
+				F4FFF87711824ACE000D9C7B /* open_hat.caf in Resources */,
+				F4FFF87811824ACE000D9C7B /* snare.caf in Resources */,
+				F4FFF8E4118260B5000D9C7B /* wii_nunchuck_close_up.jpg in Resources */,
+				F4B25D011183BEC8009BA0D3 /* blue_button.png in Resources */,
+				F4B25D021183BEC8009BA0D3 /* green_button.png in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

WiiNunchuck.xcodeproj/sdrazin.mode1v3

 	<key>Name</key>
 	<string>Default</string>
 	<key>Notifications</key>
-	<array/>
+	<array>
+		<dict>
+			<key>XCObserverAutoDisconnectKey</key>
+			<true/>
+			<key>XCObserverDefintionKey</key>
+			<dict>
+				<key>PBXStatusErrorsKey</key>
+				<integer>0</integer>
+			</dict>
+			<key>XCObserverFactoryKey</key>
+			<string>XCPerspectivesSpecificationIdentifier</string>
+			<key>XCObserverGUIDKey</key>
+			<string>XCObserverProjectIdentifier</string>
+			<key>XCObserverNotificationKey</key>
+			<string>PBXStatusBuildStateMessageNotification</string>
+			<key>XCObserverTargetKey</key>
+			<string>XCMainBuildResultsModuleGUID</string>
+			<key>XCObserverTriggerKey</key>
+			<string>awakenModuleWithObserver:</string>
+			<key>XCObserverValidationKey</key>
+			<dict>
+				<key>PBXStatusErrorsKey</key>
+				<integer>2</integer>
+			</dict>
+		</dict>
+	</array>
 	<key>OpenEditors</key>
 	<array/>
 	<key>PerspectiveWidths</key>
 								</array>
 							</array>
 							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
-							<string>{{0, 0}, {228, 732}}</string>
+							<string>{{0, 0}, {228, 651}}</string>
 						</dict>
 						<key>PBXTopSmartGroupGIDs</key>
 						<array/>
 					<key>GeometryConfiguration</key>
 					<dict>
 						<key>Frame</key>
-						<string>{{0, 0}, {245, 750}}</string>
+						<string>{{0, 0}, {245, 669}}</string>
 						<key>GroupTreeTableConfiguration</key>
 						<array>
 							<string>MainColumn</string>
 							<real>228</real>
 						</array>
 						<key>RubberWindowFrame</key>
-						<string>2 85 1162 791 0 0 1440 878 </string>
+						<string>57 132 1288 710 0 0 1440 878 </string>
 					</dict>
 					<key>Module</key>
 					<string>PBXSmartGroupTreeModule</string>
 										<key>_historyCapacity</key>
 										<integer>0</integer>
 										<key>bookmark</key>
-										<string>F4FFF85B11824659000D9C7B</string>
+										<string>F4B25D411183C891009BA0D3</string>
 										<key>history</key>
 										<array>
 											<string>F425BBA811724FFD00D8A1F4</string>
 											<string>F4548ECE117EB3790023F7A5</string>
 											<string>F4548ECF117EB3790023F7A5</string>
 											<string>F40FCA6A117EC316002A9011</string>
-											<string>F463AA6E117FE01500456348</string>
-											<string>F463AA7B117FE31000456348</string>
 											<string>F41258AA11800405001DACC4</string>
 											<string>F435E8601180C70F004E7CE0</string>
 											<string>F449EB321180D94A00129758</string>
-											<string>F44849541181346B0027B464</string>
-											<string>F44849551181346B0027B464</string>
-											<string>F44849581181346B0027B464</string>
 											<string>F44849591181346B0027B464</string>
-											<string>F4BB7D81118213F100AF1346</string>
-											<string>F4BB7D82118213F100AF1346</string>
-											<string>F4BB7D83118213F100AF1346</string>
-											<string>F4FFF85911824659000D9C7B</string>
-											<string>F4FFF85A11824659000D9C7B</string>
+											<string>F4FFF8BF118253E3000D9C7B</string>
+											<string>F4FFF8C1118253E3000D9C7B</string>
+											<string>F4FFF8FF1182652F000D9C7B</string>
+											<string>F4B25CFB1183BE66009BA0D3</string>
+											<string>F4B25D3A1183C891009BA0D3</string>
+											<string>F4B25D3B1183C891009BA0D3</string>
+											<string>F4B25D3C1183C891009BA0D3</string>
+											<string>F4B25D3D1183C891009BA0D3</string>
+											<string>F4B25D3E1183C891009BA0D3</string>
+											<string>F4B25D3F1183C891009BA0D3</string>
+											<string>F4B25D401183C891009BA0D3</string>
 										</array>
 									</dict>
 									<key>SplitCount</key>
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 0}, {912, 489}}</string>
+								<string>{{0, 0}, {1038, 394}}</string>
 								<key>RubberWindowFrame</key>
-								<string>2 85 1162 791 0 0 1440 878 </string>
+								<string>57 132 1288 710 0 0 1440 878 </string>
 							</dict>
 							<key>Module</key>
 							<string>PBXNavigatorGroup</string>
 							<key>Proportion</key>
-							<string>489pt</string>
+							<string>394pt</string>
 						</dict>
 						<dict>
 							<key>ContentConfiguration</key>
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 494}, {912, 256}}</string>
+								<string>{{0, 399}, {1038, 270}}</string>
 								<key>RubberWindowFrame</key>
-								<string>2 85 1162 791 0 0 1440 878 </string>
+								<string>57 132 1288 710 0 0 1440 878 </string>
 							</dict>
 							<key>Module</key>
 							<string>XCDetailModule</string>
 							<key>Proportion</key>
-							<string>256pt</string>
+							<string>270pt</string>
 						</dict>
 					</array>
 					<key>Proportion</key>
-					<string>912pt</string>
+					<string>1038pt</string>
 				</dict>
 			</array>
 			<key>Name</key>
 			</array>
 			<key>TableOfContents</key>
 			<array>
-				<string>F4FFF85C11824659000D9C7B</string>
+				<string>F4B25CE21183B7E5009BA0D3</string>
 				<string>1CE0B1FE06471DED0097A5F4</string>
-				<string>F4FFF85D11824659000D9C7B</string>
+				<string>F4B25CE31183B7E5009BA0D3</string>
 				<string>1CE0B20306471E060097A5F4</string>
 				<string>1CE0B20506471E060097A5F4</string>
 			</array>
 	<key>StatusbarIsVisible</key>
 	<true/>
 	<key>TimeStamp</key>
-	<real>0.0</real>
+	<real>293849233.63884598</real>
 	<key>ToolbarConfigUserDefaultsMinorVersion</key>
 	<string>2</string>
 	<key>ToolbarDisplayMode</key>
 	<integer>5</integer>
 	<key>WindowOrderList</key>
 	<array>
-		<string>F4FFF85E11824659000D9C7B</string>
-		<string>F4FFF85F11824659000D9C7B</string>
+		<string>F4B25CF31183BC15009BA0D3</string>
+		<string>F4B25CF41183BC15009BA0D3</string>
+		<string>1C78EAAD065D492600B07095</string>
 		<string>1CD10A99069EF8BA00B06720</string>
 		<string>F425BAEF1172444200D8A1F4</string>
-		<string>1C78EAAD065D492600B07095</string>
 		<string>/Users/sdrazin/Documents/Programs/iPhone/WiiNunchuck/WiiNunchuck.xcodeproj</string>
 	</array>
 	<key>WindowString</key>
-	<string>2 85 1162 791 0 0 1440 878 </string>
+	<string>57 132 1288 710 0 0 1440 878 </string>
 	<key>WindowToolsV3</key>
 	<array>
 		<dict>
 							<string>283pt</string>
 						</dict>
 						<dict>
+							<key>BecomeActive</key>
+							<true/>
 							<key>ContentConfiguration</key>
 							<dict>
 								<key>PBXProjectModuleGUID</key>
 								<key>XCBuildResultsTrigger_Collapse</key>
 								<integer>1021</integer>
 								<key>XCBuildResultsTrigger_Open</key>
-								<integer>1011</integer>
+								<integer>1012</integer>
 							</dict>
 							<key>GeometryConfiguration</key>
 							<dict>
 			<key>TableOfContents</key>
 			<array>
 				<string>F425BAEF1172444200D8A1F4</string>
-				<string>F4FFF7F611821B0A000D9C7B</string>
+				<string>F4B25CE41183B7E5009BA0D3</string>
 				<string>1CD0528F0623707200166675</string>
 				<string>XCMainBuildResultsModuleGUID</string>
 			</array>
 			<key>TableOfContents</key>
 			<array>
 				<string>1CD10A99069EF8BA00B06720</string>
-				<string>F4FFF7F711821B0A000D9C7B</string>
+				<string>F4B25CEC1183BC15009BA0D3</string>
 				<string>1C162984064C10D400B95A72</string>
-				<string>F4FFF7F811821B0A000D9C7B</string>
-				<string>F4FFF7F911821B0A000D9C7B</string>
-				<string>F4FFF7FA11821B0A000D9C7B</string>
-				<string>F4FFF7FB11821B0A000D9C7B</string>
-				<string>F4FFF7FC11821B0A000D9C7B</string>
+				<string>F4B25CED1183BC15009BA0D3</string>
+				<string>F4B25CEE1183BC15009BA0D3</string>
+				<string>F4B25CEF1183BC15009BA0D3</string>
+				<string>F4B25CF01183BC15009BA0D3</string>
+				<string>F4B25CF11183BC15009BA0D3</string>
 			</array>
 			<key>ToolbarConfiguration</key>
 			<string>xcode.toolbar.config.debugV3</string>
 			<key>TableOfContents</key>
 			<array>
 				<string>1C78EAAD065D492600B07095</string>
-				<string>F4FFF7FD11821B0A000D9C7B</string>
+				<string>F4B25CF21183BC15009BA0D3</string>
 				<string>1C78EAAC065D492600B07095</string>
 			</array>
 			<key>ToolbarConfiguration</key>

WiiNunchuck.xcodeproj/sdrazin.pbxuser

 {
 	1D3623240D0F684500981E51 /* WiiNunchuckAppDelegate.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {995, 442}}";
-			sepNavSelRange = "{630, 0}";
-			sepNavVisRange = "{0, 854}";
+			sepNavIntBoundsRect = "{{0, 0}, {977, 481}}";
+			sepNavSelRange = "{882, 0}";
+			sepNavVisRange = "{173, 795}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 	1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */ = {
 		uiCtxt = {
-			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{1264, 71}\";\n            s = 0;\n        },\n                {\n            r = \"{1355, 108}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 1472}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {995, 637}}";
-			sepNavSelRange = "{582, 48}";
-			sepNavVisRange = "{3, 1062}";
+			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{1388, 71}\";\n            s = 0;\n        },\n                {\n            r = \"{1477, 108}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 1594}\";\n    s = 0;\n}";
+			sepNavIntBoundsRect = "{{0, 0}, {977, 611}}";
+			sepNavSelRange = "{832, 0}";
+			sepNavVisRange = "{224, 1068}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 			1D6058900D05DD3D006BFB54 /* WiiNunchuck */,
 		);
 		breakpoints = (
-			F4BB7D621182112700AF1346 /* SampleAudioUnit.mm:332 */,
-			F4BB7D641182112D00AF1346 /* SampleAudioUnit.mm:329 */,
-			F4BB7D661182113100AF1346 /* SampleAudioUnit.mm:353 */,
-			F4BB7D681182113600AF1346 /* SampleAudioUnit.mm:325 */,
-			F4FFF7C211821439000D9C7B /* SampleAudioUnit.mm:322 */,
-			F4FFF7DB118215BF000D9C7B /* SampleAudioUnit.mm:354 */,
+			F4BB7D621182112700AF1346 /* SampleAudioUnit.mm:317 */,
+			F4BB7D641182112D00AF1346 /* SampleAudioUnit.mm:314 */,
+			F4BB7D661182113100AF1346 /* SampleAudioUnit.mm:338 */,
+			F4BB7D681182113600AF1346 /* SampleAudioUnit.mm:310 */,
+			F4FFF7C211821439000D9C7B /* SampleAudioUnit.mm:307 */,
+			F4FFF7DB118215BF000D9C7B /* SampleAudioUnit.mm:339 */,
 		);
 		codeSenseManager = F425BACB1172404300D8A1F4 /* Code sense */;
 		executables = (
 				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
 				PBXFileTableDataSourceColumnWidthsKey = (
 					20,
-					673,
+					799,
 					20,
 					48,
 					43,
 					PBXFileDataSource_Warnings_ColumnID,
 				);
 			};
-			PBXPerProjectTemplateStateSaveDate = 293737469;
-			PBXWorkspaceStateSaveDate = 293737469;
+			PBXPerProjectTemplateStateSaveDate = 293844952;
+			PBXWorkspaceStateSaveDate = 293844952;
 		};
 		perUserProjectItems = {
 			F409004A11741F2F00A42609 = F409004A11741F2F00A42609 /* PBXTextBookmark */;
 			F428370E1175313A00885608 = F428370E1175313A00885608 /* PBXTextBookmark */;
 			F42837101175313A00885608 = F42837101175313A00885608 /* PBXTextBookmark */;
 			F42837121175313A00885608 = F42837121175313A00885608 /* PBXTextBookmark */;
+			F42911101182728700DBB36F = F42911101182728700DBB36F /* PBXTextBookmark */;
+			F4291131118273F700DBB36F = F4291131118273F700DBB36F /* PBXTextBookmark */;
+			F4291132118273F700DBB36F = F4291132118273F700DBB36F /* PBXTextBookmark */;
+			F42911351182740700DBB36F = F42911351182740700DBB36F /* PBXTextBookmark */;
+			F42911361182740700DBB36F = F42911361182740700DBB36F /* PBXTextBookmark */;
+			F42911391182744600DBB36F = F42911391182744600DBB36F /* PBXTextBookmark */;
+			F429113A1182744600DBB36F = F429113A1182744600DBB36F /* PBXTextBookmark */;
+			F429113B1182744600DBB36F = F429113B1182744600DBB36F /* PBXTextBookmark */;
+			F429113C1182744600DBB36F = F429113C1182744600DBB36F /* PBXTextBookmark */;
+			F429113D1182744600DBB36F = F429113D1182744600DBB36F /* PBXTextBookmark */;
+			F4291143118274B800DBB36F = F4291143118274B800DBB36F /* PBXTextBookmark */;
+			F4291144118274B800DBB36F = F4291144118274B800DBB36F /* PBXTextBookmark */;
+			F4291145118274B800DBB36F = F4291145118274B800DBB36F /* PBXTextBookmark */;
+			F429114C11827BC200DBB36F = F429114C11827BC200DBB36F /* PBXTextBookmark */;
+			F429114D11827C0F00DBB36F = F429114D11827C0F00DBB36F /* PBXTextBookmark */;
 			F435E8601180C70F004E7CE0 = F435E8601180C70F004E7CE0 /* PBXTextBookmark */;
-			F44849541181346B0027B464 = F44849541181346B0027B464 /* PBXTextBookmark */;
-			F44849551181346B0027B464 = F44849551181346B0027B464 /* PBXTextBookmark */;
-			F44849581181346B0027B464 = F44849581181346B0027B464 /* PBXTextBookmark */;
 			F44849591181346B0027B464 = F44849591181346B0027B464 /* PBXTextBookmark */;
 			F449EB321180D94A00129758 = F449EB321180D94A00129758 /* PBXTextBookmark */;
 			F4548EC4117EB3790023F7A5 = F4548EC4117EB3790023F7A5 /* PBXBookmark */;
 			F4548EC9117EB3790023F7A5 = F4548EC9117EB3790023F7A5 /* PBXBookmark */;
 			F4548ECE117EB3790023F7A5 = F4548ECE117EB3790023F7A5 /* PBXBookmark */;
 			F4548ECF117EB3790023F7A5 = F4548ECF117EB3790023F7A5 /* PBXBookmark */;
-			F463AA6E117FE01500456348 = F463AA6E117FE01500456348 /* PBXTextBookmark */;
-			F463AA7B117FE31000456348 = F463AA7B117FE31000456348 /* PBXTextBookmark */;
 			F466430E117D189C00BFC470 = F466430E117D189C00BFC470 /* PBXTextBookmark */;
 			F4841DD61172CC2E0034AF4B = F4841DD61172CC2E0034AF4B /* PBXTextBookmark */;
 			F4841DD81172CC2E0034AF4B = F4841DD81172CC2E0034AF4B /* PBXTextBookmark */;
 			F4841F6B1173CFAF0034AF4B = F4841F6B1173CFAF0034AF4B /* PBXTextBookmark */;
 			F4841F6C1173CFAF0034AF4B = F4841F6C1173CFAF0034AF4B /* PBXTextBookmark */;
 			F4A465751178234500032E75 = F4A465751178234500032E75 /* PBXBookmark */;
-			F4BB7D81118213F100AF1346 = F4BB7D81118213F100AF1346 /* PBXTextBookmark */;
-			F4BB7D82118213F100AF1346 = F4BB7D82118213F100AF1346 /* PBXTextBookmark */;
-			F4BB7D83118213F100AF1346 = F4BB7D83118213F100AF1346 /* PBXTextBookmark */;
-			F4BB7D84118213F100AF1346 = F4BB7D84118213F100AF1346 /* PBXTextBookmark */;
-			F4BB7D85118213F100AF1346 = F4BB7D85118213F100AF1346 /* PBXTextBookmark */;
-			F4BB7D8B118213F100AF1346 = F4BB7D8B118213F100AF1346 /* PBXTextBookmark */;
+			F4B25CE11183B7E5009BA0D3 /* PBXTextBookmark */ = F4B25CE11183B7E5009BA0D3 /* PBXTextBookmark */;
+			F4B25CE91183BC15009BA0D3 /* PBXTextBookmark */ = F4B25CE91183BC15009BA0D3 /* PBXTextBookmark */;
+			F4B25CEA1183BC15009BA0D3 /* PBXTextBookmark */ = F4B25CEA1183BC15009BA0D3 /* PBXTextBookmark */;
+			F4B25CEB1183BC15009BA0D3 /* PBXTextBookmark */ = F4B25CEB1183BC15009BA0D3 /* PBXTextBookmark */;
+			F4B25CFA1183BE66009BA0D3 /* PBXTextBookmark */ = F4B25CFA1183BE66009BA0D3 /* PBXTextBookmark */;
+			F4B25CFB1183BE66009BA0D3 /* PBXTextBookmark */ = F4B25CFB1183BE66009BA0D3 /* PBXTextBookmark */;
+			F4B25CFC1183BE66009BA0D3 /* PBXTextBookmark */ = F4B25CFC1183BE66009BA0D3 /* PBXTextBookmark */;
+			F4B25CFD1183BE66009BA0D3 /* PBXTextBookmark */ = F4B25CFD1183BE66009BA0D3 /* PBXTextBookmark */;
+			F4B25CFE1183BE66009BA0D3 /* PBXTextBookmark */ = F4B25CFE1183BE66009BA0D3 /* PBXTextBookmark */;
+			F4B25D3A1183C891009BA0D3 /* PBXTextBookmark */ = F4B25D3A1183C891009BA0D3 /* PBXTextBookmark */;
+			F4B25D3B1183C891009BA0D3 /* PBXTextBookmark */ = F4B25D3B1183C891009BA0D3 /* PBXTextBookmark */;
+			F4B25D3C1183C891009BA0D3 /* PBXTextBookmark */ = F4B25D3C1183C891009BA0D3 /* PBXTextBookmark */;
+			F4B25D3D1183C891009BA0D3 /* PBXTextBookmark */ = F4B25D3D1183C891009BA0D3 /* PBXTextBookmark */;
+			F4B25D3E1183C891009BA0D3 /* PBXTextBookmark */ = F4B25D3E1183C891009BA0D3 /* PBXTextBookmark */;
+			F4B25D3F1183C891009BA0D3 /* PBXTextBookmark */ = F4B25D3F1183C891009BA0D3 /* PBXTextBookmark */;
+			F4B25D401183C891009BA0D3 /* PBXTextBookmark */ = F4B25D401183C891009BA0D3 /* PBXTextBookmark */;
+			F4B25D411183C891009BA0D3 /* PBXTextBookmark */ = F4B25D411183C891009BA0D3 /* PBXTextBookmark */;
 			F4F69B19117545FA00CBAF6E = F4F69B19117545FA00CBAF6E /* PBXTextBookmark */;
 			F4F69B1A117545FA00CBAF6E = F4F69B1A117545FA00CBAF6E /* PBXTextBookmark */;
 			F4F69B981176572E00CBAF6E = F4F69B981176572E00CBAF6E /* PBXTextBookmark */;
 			F4F69C52117693AE00CBAF6E = F4F69C52117693AE00CBAF6E /* PBXTextBookmark */;
 			F4F69C63117698EF00CBAF6E = F4F69C63117698EF00CBAF6E /* PBXTextBookmark */;
-			F4FFF85911824659000D9C7B /* PBXTextBookmark */ = F4FFF85911824659000D9C7B /* PBXTextBookmark */;
-			F4FFF85A11824659000D9C7B /* PBXTextBookmark */ = F4FFF85A11824659000D9C7B /* PBXTextBookmark */;
-			F4FFF85B11824659000D9C7B /* PBXTextBookmark */ = F4FFF85B11824659000D9C7B /* PBXTextBookmark */;
+			F4FFF8BF118253E3000D9C7B = F4FFF8BF118253E3000D9C7B /* PBXTextBookmark */;
+			F4FFF8C0118253E3000D9C7B = F4FFF8C0118253E3000D9C7B /* PBXTextBookmark */;
+			F4FFF8C1118253E3000D9C7B = F4FFF8C1118253E3000D9C7B /* PBXTextBookmark */;
+			F4FFF8C2118253E3000D9C7B = F4FFF8C2118253E3000D9C7B /* PBXTextBookmark */;
+			F4FFF8FD1182652F000D9C7B = F4FFF8FD1182652F000D9C7B /* PBXTextBookmark */;
+			F4FFF8FE1182652F000D9C7B = F4FFF8FE1182652F000D9C7B /* PBXTextBookmark */;
+			F4FFF8FF1182652F000D9C7B = F4FFF8FF1182652F000D9C7B /* PBXBookmark */;
+			F4FFF958118269D4000D9C7B = F4FFF958118269D4000D9C7B /* PBXTextBookmark */;
+			F4FFF959118269D4000D9C7B = F4FFF959118269D4000D9C7B /* PBXTextBookmark */;
+			F4FFF95A118269D4000D9C7B = F4FFF95A118269D4000D9C7B /* PBXTextBookmark */;
+			F4FFF95B118269D4000D9C7B = F4FFF95B118269D4000D9C7B /* PBXTextBookmark */;
+			F4FFF95F118269EF000D9C7B = F4FFF95F118269EF000D9C7B /* PBXTextBookmark */;
 		};
 		sourceControlManager = F425BACA1172404300D8A1F4 /* Source Control */;
 		userBuildSettings = {
 	};
 	F40FCA5F117EC1D4002A9011 /* InstructionsViewController.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {818, 475}}";
-			sepNavSelRange = "{341, 135}";
-			sepNavVisRange = "{0, 482}";
+			sepNavIntBoundsRect = "{{0, 0}, {977, 362}}";
+			sepNavSelRange = "{300, 0}";
+			sepNavVisRange = "{0, 478}";
 		};
 	};
 	F40FCA60117EC1D4002A9011 /* InstructionsViewController.m */ = {
 		uiCtxt = {
-			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{301, 386}\";\n            s = 0;\n        },\n                {\n            r = \"{690, 112}\";\n            s = 0;\n        },\n                {\n            r = \"{805, 146}\";\n            s = 0;\n        },\n                {\n            r = \"{954, 292}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 1640}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {818, 546}}";
-			sepNavSelRange = "{241, 0}";
-			sepNavVisRange = "{7, 695}";
+			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{316, 139}\";\n            s = 0;\n        },\n                {\n            r = \"{459, 386}\";\n            s = 0;\n        },\n                {\n            r = \"{848, 112}\";\n            s = 0;\n        },\n                {\n            r = \"{963, 292}\";\n            s = 0;\n        },\n                {\n            r = \"{1291, 96}\";\n            s = 0;\n        },\n                {\n            r = \"{1413, 116}\";\n            s = 0;\n        },\n                {\n            r = \"{1550, 46}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 1605}\";\n    s = 0;\n}";
+			sepNavIntBoundsRect = "{{0, 0}, {977, 429}}";
+			sepNavSelRange = "{317, 0}";
+			sepNavVisRange = "{0, 398}";
 		};
 	};
 	F40FCA6A117EC316002A9011 /* PBXBookmark */ = {
 	};
 	F425BACC1172406900D8A1F4 /* MainViewController.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {995, 832}}";
-			sepNavSelRange = "{318, 18}";
-			sepNavVisRange = "{0, 790}";
+			sepNavIntBoundsRect = "{{0, 0}, {977, 1105}}";
+			sepNavSelRange = "{1917, 0}";
+			sepNavVisRange = "{1145, 1112}";
 			sepNavWindowFrame = "{{38, 28}, {1357, 824}}";
 		};
 	};
 	F425BACD1172406900D8A1F4 /* MainViewController.mm */ = {
 		uiCtxt = {
-			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{520, 78}\";\n            s = 0;\n        },\n                {\n            r = \"{716, 155}\";\n            s = 0;\n        },\n                {\n            r = \"{917, 724}\";\n            s = 0;\n        },\n                {\n            r = \"{1667, 320}\";\n            s = 0;\n        },\n                {\n            r = \"{2853, 81}\";\n            s = 0;\n        },\n                {\n            r = \"{3058, 1120}\";\n            s = 0;\n        },\n                {\n            r = \"{4183, 221}\";\n            s = 0;\n        },\n                {\n            r = \"{4407, 112}\";\n            s = 0;\n        },\n                {\n            r = \"{4522, 292}\";\n            s = 0;\n        },\n                {\n            r = \"{4850, 155}\";\n            s = 0;\n        },\n                {\n            r = \"{5031, 83}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 5165}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {995, 1209}}";
-			sepNavSelRange = "{1706, 0}";
-			sepNavVisRange = "{1316, 519}";
+			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{890, 78}\";\n            s = 0;\n        },\n                {\n            r = \"{1087, 861}\";\n            s = 0;\n        },\n                {\n            r = \"{1994, 746}\";\n            s = 0;\n        },\n                {\n            r = \"{2864, 457}\";\n            s = 0;\n        },\n                {\n            r = \"{3354, 400}\";\n            s = 0;\n        },\n                {\n            r = \"{3825, 386}\";\n            s = 0;\n        },\n                {\n            r = \"{4236, 257}\";\n            s = 0;\n        },\n                {\n            r = \"{4517, 262}\";\n            s = 0;\n        },\n                {\n            r = \"{4813, 47}\";\n            s = 0;\n        },\n                {\n            r = \"{4900, 646}\";\n            s = 0;\n        },\n                {\n            r = \"{5669, 1047}\";\n            s = 0;\n        },\n                {\n            r = \"{6720, 221}\";\n            s = 0;\n        },\n                {\n            r = \"{6944, 112}\";\n            s = 0;\n        },\n                {\n            r = \"{7059, 292}\";\n            s = 0;\n        },\n                {\n            r = \"{7387, 155}\";\n            s = 0;\n        },\n                {\n            r = \"{7568, 83}\";\n            s = 0;\n        },\n                {\n            r = \"{7671, 256}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 7936}\";\n    s = 0;\n}";
+			sepNavIntBoundsRect = "{{0, 0}, {977, 1118}}";
+			sepNavSelRange = "{1538, 0}";
+			sepNavVisRange = "{505, 710}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 	F425BACF1172407600D8A1F4 /* SettingsViewController.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {995, 448}}";
+			sepNavIntBoundsRect = "{{0, 0}, {977, 416}}";
 			sepNavSelRange = "{669, 39}";
-			sepNavVisRange = "{0, 715}";
+			sepNavVisRange = "{48, 667}";
 		};
 	};
 	F425BAD01172407600D8A1F4 /* SettingsViewController.mm */ = {
 		uiCtxt = {
 			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{438, 26}\";\n            s = 0;\n        },\n                {\n            r = \"{496, 37}\";\n            s = 0;\n        },\n                {\n            r = \"{1434, 384}\";\n            s = 0;\n        },\n                {\n            r = \"{1821, 112}\";\n            s = 0;\n        },\n                {\n            r = \"{1936, 292}\";\n            s = 0;\n        },\n                {\n            r = \"{2264, 155}\";\n            s = 0;\n        },\n                {\n            r = \"{2445, 83}\";\n            s = 0;\n        },\n                {\n            r = \"{2548, 22}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 2579}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {995, 897}}";
+			sepNavIntBoundsRect = "{{0, 0}, {851, 897}}";
 			sepNavSelRange = "{1044, 0}";
-			sepNavVisRange = "{0, 771}";
+			sepNavVisRange = "{0, 862}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 	};
 	F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */ = {
 		uiCtxt = {
-			sepNavFolds = "{\n    c =     (\n                {\n            c =             (\n                                {\n                    r = \"{398, 302}\";\n                    s = 0;\n                },\n                                {\n                    r = \"{772, 132}\";\n                    s = 0;\n                },\n                                {\n                    r = \"{910, 219}\";\n                    s = 0;\n                }\n            );\n            r = \"{281, 1652}\";\n            s = 0;\n        },\n                {\n            r = \"{1973, 327}\";\n            s = 0;\n        },\n                {\n            r = \"{2351, 230}\";\n            s = 0;\n        },\n                {\n            r = \"{2652, 280}\";\n            s = 0;\n        },\n                {\n            r = \"{2991, 61}\";\n            s = 0;\n        },\n                {\n            r = \"{3078, 25}\";\n            s = 0;\n        },\n                {\n            r = \"{3177, 257}\";\n            s = 0;\n        },\n                {\n            r = \"{3511, 161}\";\n            s = 0;\n        },\n                {\n            r = \"{3734, 664}\";\n            s = 0;\n        },\n                {\n            r = \"{4451, 138}\";\n            s = 0;\n        },\n                {\n            r = \"{4638, 148}\";\n            s = 0;\n        },\n                {\n            r = \"{4790, 583}\";\n            s = 0;\n        },\n                {\n            r = \"{5378, 409}\";\n            s = 0;\n        },\n                {\n            r = \"{9040, 184}\";\n            s = 0;\n        },\n                {\n            r = \"{9273, 157}\";\n            s = 0;\n        },\n                {\n            c =             (\n                                {\n                    r = \"{9888, 688}\";\n                    s = 0;\n                },\n                                {\n                    r = \"{10755, 158}\";\n                    s = 0;\n                }\n            );\n            r = \"{9522, 1925}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 11761}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {851, 2106}}";
-			sepNavSelRange = "{3237, 0}";
-			sepNavVisRange = "{2658, 1110}";
+			sepNavFolds = "{\n    c =     (\n                {\n            c =             (\n                                {\n                    r = \"{399, 302}\";\n                    s = 0;\n                },\n                                {\n                    r = \"{773, 132}\";\n                    s = 0;\n                },\n                                {\n                    r = \"{911, 219}\";\n                    s = 0;\n                }\n            );\n            r = \"{282, 1510}\";\n            s = 0;\n        },\n                {\n            r = \"{1832, 277}\";\n            s = 0;\n        },\n                {\n            r = \"{2160, 230}\";\n            s = 0;\n        },\n                {\n            r = \"{2461, 280}\";\n            s = 0;\n        },\n                {\n            r = \"{2800, 61}\";\n            s = 0;\n        },\n                {\n            r = \"{2887, 25}\";\n            s = 0;\n        },\n                {\n            r = \"{2986, 257}\";\n            s = 0;\n        },\n                {\n            r = \"{3320, 161}\";\n            s = 0;\n        },\n                {\n            r = \"{3543, 664}\";\n            s = 0;\n        },\n                {\n            r = \"{4260, 138}\";\n            s = 0;\n        },\n                {\n            r = \"{4447, 148}\";\n            s = 0;\n        },\n                {\n            r = \"{4599, 583}\";\n            s = 0;\n        },\n                {\n            r = \"{5187, 409}\";\n            s = 0;\n        },\n                {\n            r = \"{5670, 1292}\";\n            s = 0;\n        },\n                {\n            r = \"{7011, 1436}\";\n            s = 0;\n        },\n                {\n            r = \"{8507, 184}\";\n            s = 0;\n        },\n                {\n            r = \"{8740, 157}\";\n            s = 0;\n        },\n                {\n            r = \"{9355, 688}\";\n            s = 0;\n        },\n                {\n            r = \"{10222, 158}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 11349}\";\n    s = 0;\n}";
+			sepNavIntBoundsRect = "{{0, 0}, {977, 1482}}";
+			sepNavSelRange = "{2217, 0}";
+			sepNavVisRange = "{1281, 954}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 	F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */ = {
 		uiCtxt = {
-			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{343, 114}\";\n            s = 0;\n        },\n                {\n            c =             (\n                                {\n                    r = \"{1838, 266}\";\n                    s = 0;\n                }\n            );\n            r = \"{769, 1372}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 2144}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {851, 457}}";
-			sepNavSelRange = "{480, 0}";
-			sepNavVisRange = "{0, 660}";
+			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{343, 114}\";\n            s = 0;\n        },\n                {\n            r = \"{1749, 266}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 2055}\";\n    s = 0;\n}";
+			sepNavIntBoundsRect = "{{0, 0}, {851, 1014}}";
+			sepNavSelRange = "{1558, 0}";
+			sepNavVisRange = "{1158, 519}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 		vrLen = 1679;
 		vrLoc = 7293;
 	};
+	F42911101182728700DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
+		name = "WiiNunchuckAppDelegate.mm: 27";
+		rLen = 0;
+		rLoc = 835;
+		rType = 0;
+		vrLen = 1094;
+		vrLoc = 3;
+	};
+	F4291131118273F700DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Incomplete implementation of class 'WiiNunchuckAppDelegate'";
+		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
+		rLen = 1;
+		rLoc = 55;
+		rType = 1;
+	};
+	F4291132118273F700DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
+		name = "WiiNunchuckAppDelegate.mm: 62";
+		rLen = 0;
+		rLoc = 1589;
+		rType = 0;
+		vrLen = 643;
+		vrLoc = 906;
+	};
+	F42911351182740700DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Instance variable 'm_audioController' accessed in class method";
+		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
+		rLen = 0;
+		rLoc = 42;
+		rType = 1;
+	};
+	F42911361182740700DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
+		name = "WiiNunchuckAppDelegate.mm: 44";
+		rLen = 0;
+		rLoc = 1326;
+		rType = 0;
+		vrLen = 643;
+		vrLoc = 906;
+	};
+	F42911391182744600DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 88";
+		rLen = 0;
+		rLoc = 2740;
+		rType = 0;
+		vrLen = 2092;
+		vrLoc = 1666;
+	};
+	F429113A1182744600DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACC1172406900D8A1F4 /* MainViewController.h */;
+		name = "MainViewController.h: 81";
+		rLen = 0;
+		rLoc = 2383;
+		rType = 0;
+		vrLen = 1122;
+		vrLoc = 1392;
+	};
+	F429113B1182744600DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 1D3623240D0F684500981E51 /* WiiNunchuckAppDelegate.h */;
+		name = "WiiNunchuckAppDelegate.h: 32";
+		rLen = 0;
+		rLoc = 899;
+		rType = 0;
+		vrLen = 813;
+		vrLoc = 145;
+	};
+	F429113C1182744600DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
+		name = "WiiNunchuckAppDelegate.mm: 48";
+		rLen = 0;
+		rLoc = 1326;
+		rType = 0;
+		vrLen = 1074;
+		vrLoc = 454;
+	};
+	F429113D1182744600DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
+		name = "WiiNunchuckAppDelegate.mm: 40";
+		rLen = 0;
+		rLoc = 1324;
+		rType = 0;
+		vrLen = 1549;
+		vrLoc = 0;
+	};
+	F4291143118274B800DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
+		name = "WiiNunchuckAppDelegate.mm: 40";
+		rLen = 0;
+		rLoc = 1324;
+		rType = 0;
+		vrLen = 1549;
+		vrLoc = 0;
+	};
+	F4291144118274B800DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 88";
+		rLen = 0;
+		rLoc = 2740;
+		rType = 0;
+		vrLen = 2090;
+		vrLoc = 1666;
+	};
+	F4291145118274B800DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 88";
+		rLen = 0;
+		rLoc = 2740;
+		rType = 0;
+		vrLen = 1966;
+		vrLoc = 1886;
+	};
+	F429114C11827BC200DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 178";
+		rLen = 0;
+		rLoc = 4860;
+		rType = 0;
+		vrLen = 2830;
+		vrLoc = 3689;
+	};
+	F429114D11827C0F00DBB36F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 14";
+		rLen = 0;
+		rLoc = 338;
+		rType = 0;
+		vrLen = 771;
+		vrLoc = 0;
+	};
 	F435E8601180C70F004E7CE0 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = F41158681178CE190082BD37 /* SineMaker.h */;
 		vrLen = 358;
 		vrLoc = 0;
 	};
-	F44849541181346B0027B464 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
-		name = "WiiNunchuckAppDelegate.mm: 23";
-		rLen = 48;
-		rLoc = 582;
-		rType = 0;
-		vrLen = 1062;
-		vrLoc = 3;
-	};
-	F44849551181346B0027B464 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BACF1172407600D8A1F4 /* SettingsViewController.h */;
-		name = "SettingsViewController.h: 29";
-		rLen = 39;
-		rLoc = 669;
-		rType = 0;
-		vrLen = 715;
-		vrLoc = 0;
-	};
-	F44849581181346B0027B464 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BAD01172407600D8A1F4 /* SettingsViewController.mm */;
-		name = "SettingsViewController.mm: 49";
-		rLen = 0;
-		rLoc = 1105;
-		rType = 0;
-		vrLen = 832;
-		vrLoc = 0;
-	};
 	F44849591181346B0027B464 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = F40FCA41117EBBC4002A9011 /* AboutViewController.h */;
 		isa = PBXBookmark;
 		fRef = F425BAD9117242CE00D8A1F4 /* flag_ca.png */;
 	};
-	F463AA6E117FE01500456348 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F40FCA60117EC1D4002A9011 /* InstructionsViewController.m */;
-		name = "InstructionsViewController.m: 13";
-		rLen = 0;
-		rLoc = 241;
-		rType = 0;
-		vrLen = 1627;
-		vrLoc = 7;
-	};
-	F463AA7B117FE31000456348 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F40FCA5F117EC1D4002A9011 /* InstructionsViewController.h */;
-		name = "InstructionsViewController.h: 17";
-		rLen = 135;
-		rLoc = 341;
-		rType = 0;
-		vrLen = 482;
-		vrLoc = 0;
-	};
 	F466430E117D189C00BFC470 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = 29B97316FDCFA39411CA2CEA /* main.m */;
 		isa = PBXBookmark;
 		fRef = F425BB0E1172466000D8A1F4 /* wii_nunchuk.png */;
 	};
-	F4BB7D621182112700AF1346 /* SampleAudioUnit.mm:332 */ = {
+	F4B25CE11183B7E5009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 14";
+		rLen = 0;
+		rLoc = 338;
+		rType = 0;
+		vrLen = 616;
+		vrLoc = 0;
+	};
+	F4B25CE91183BC15009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 14";
+		rLen = 0;
+		rLoc = 338;
+		rType = 0;
+		vrLen = 616;
+		vrLoc = 0;
+	};
+	F4B25CEA1183BC15009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 91";
+		rLen = 0;
+		rLoc = 2109;
+		rType = 0;
+		vrLen = 2915;
+		vrLoc = 0;
+	};
+	F4B25CEB1183BC15009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 9";
+		rLen = 0;
+		rLoc = 243;
+		rType = 0;
+		vrLen = 2915;
+		vrLoc = 0;
+	};
+	F4B25CFA1183BE66009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 9";
+		rLen = 0;
+		rLoc = 243;
+		rType = 0;
+		vrLen = 3192;
+		vrLoc = 54;
+	};
+	F4B25CFB1183BE66009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACC1172406900D8A1F4 /* MainViewController.h */;
+		name = "MainViewController.h: 66";
+		rLen = 0;
+		rLoc = 1917;
+		rType = 0;
+		vrLen = 1112;
+		vrLoc = 1145;
+	};
+	F4B25CFC1183BE66009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 293";
+		rLen = 0;
+		rLoc = 7897;
+		rType = 0;
+		vrLen = 3032;
+		vrLoc = 4685;
+	};
+	F4B25CFD1183BE66009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACF1172407600D8A1F4 /* SettingsViewController.h */;
+		name = "SettingsViewController.h: 29";
+		rLen = 39;
+		rLoc = 669;
+		rType = 0;
+		vrLen = 667;
+		vrLoc = 48;
+	};
+	F4B25CFE1183BE66009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACF1172407600D8A1F4 /* SettingsViewController.h */;
+		name = "SettingsViewController.h: 29";
+		rLen = 39;
+		rLoc = 669;
+		rType = 0;
+		vrLen = 667;
+		vrLoc = 48;
+	};
+	F4B25D3A1183C891009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACF1172407600D8A1F4 /* SettingsViewController.h */;
+		name = "SettingsViewController.h: 29";
+		rLen = 39;
+		rLoc = 669;
+		rType = 0;
+		vrLen = 667;
+		vrLoc = 48;
+	};
+	F4B25D3B1183C891009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 225";
+		rLen = 0;
+		rLoc = 5668;
+		rType = 0;
+		vrLen = 2848;
+		vrLoc = 505;
+	};
+	F4B25D3C1183C891009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 1D3623240D0F684500981E51 /* WiiNunchuckAppDelegate.h */;
+		name = "WiiNunchuckAppDelegate.h: 31";
+		rLen = 0;
+		rLoc = 882;
+		rType = 0;
+		vrLen = 795;
+		vrLoc = 173;
+	};
+	F4B25D3D1183C891009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
+		name = "WiiNunchuckAppDelegate.mm: 27";
+		rLen = 0;
+		rLoc = 832;
+		rType = 0;
+		vrLen = 1068;
+		vrLoc = 224;
+	};
+	F4B25D3E1183C891009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F40FCA5F117EC1D4002A9011 /* InstructionsViewController.h */;
+		name = "InstructionsViewController.h: 14";
+		rLen = 0;
+		rLoc = 300;
+		rType = 0;
+		vrLen = 478;
+		vrLoc = 0;
+	};
+	F4B25D3F1183C891009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F40FCA60117EC1D4002A9011 /* InstructionsViewController.m */;
+		name = "InstructionsViewController.m: 22";
+		rLen = 0;
+		rLoc = 455;
+		rType = 0;
+		vrLen = 1533;
+		vrLoc = 0;
+	};
+	F4B25D401183C891009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 9";
+		rLen = 0;
+		rLoc = 243;
+		rType = 0;
+		vrLen = 3191;
+		vrLoc = 54;
+	};
+	F4B25D411183C891009BA0D3 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 433";
+		rLen = 0;
+		rLoc = 10856;
+		rType = 0;
+		vrLen = 1798;
+		vrLoc = 9076;
+	};
+	F4BB7D621182112700AF1346 /* SampleAudioUnit.mm:317 */ = {
 		isa = PBXFileBreakpoint;
 		actions = (
 		);
 		functionName = "SampleAudioUnit::writePulse(char pulse)";
 		hitCount = 2;
 		ignoreCount = 0;
-		lineNumber = 332;
+		lineNumber = 317;
 		location = WiiNunchuck;
 		modificationTime = 293737904.678785;
 		originalNumberOfMultipleMatches = 1;
 		state = 1;
 	};
-	F4BB7D641182112D00AF1346 /* SampleAudioUnit.mm:329 */ = {
+	F4BB7D641182112D00AF1346 /* SampleAudioUnit.mm:314 */ = {
 		isa = PBXFileBreakpoint;
 		actions = (
 		);
 		functionName = "SampleAudioUnit::writePulse(char pulse)";
 		hitCount = 26;
 		ignoreCount = 0;
-		lineNumber = 329;
+		lineNumber = 314;
 		location = WiiNunchuck;
 		modificationTime = 293737902.511542;
 		originalNumberOfMultipleMatches = 1;
 		state = 1;
 	};
-	F4BB7D661182113100AF1346 /* SampleAudioUnit.mm:353 */ = {
+	F4BB7D661182113100AF1346 /* SampleAudioUnit.mm:338 */ = {
 		isa = PBXFileBreakpoint;
 		actions = (
 		);
 		functionName = "SampleAudioUnit::writePulse(char pulse)";
 		hitCount = 1;
 		ignoreCount = 0;
-		lineNumber = 353;
+		lineNumber = 338;
 		location = WiiNunchuck;
-		modificationTime = 293737913.262775;
+		modificationTime = 293737913.2627751;
 		originalNumberOfMultipleMatches = 1;
 		state = 1;
 	};
-	F4BB7D681182113600AF1346 /* SampleAudioUnit.mm:325 */ = {
+	F4BB7D681182113600AF1346 /* SampleAudioUnit.mm:310 */ = {
 		isa = PBXFileBreakpoint;
 		actions = (
 		);
 		functionName = "SampleAudioUnit::writePulse(char pulse)";
 		hitCount = 2;
 		ignoreCount = 0;
-		lineNumber = 325;
+		lineNumber = 310;
 		location = WiiNunchuck;
 		modificationTime = 293737928.240374;
 		originalNumberOfMultipleMatches = 1;
 		state = 1;
 	};
-	F4BB7D81118213F100AF1346 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
-		name = "MainViewController.mm: 168";
-		rLen = 0;
-		rLoc = 4178;
-		rType = 0;
-		vrLen = 2576;
-		vrLoc = 2589;
-	};
-	F4BB7D82118213F100AF1346 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BACC1172406900D8A1F4 /* MainViewController.h */;
-		name = "MainViewController.h: 16";
-		rLen = 18;
-		rLoc = 318;
-		rType = 0;
-		vrLen = 790;
-		vrLoc = 0;
-	};
-	F4BB7D83118213F100AF1346 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 1D3623240D0F684500981E51 /* WiiNunchuckAppDelegate.h */;
-		name = "WiiNunchuckAppDelegate.h: 24";
-		rLen = 0;
-		rLoc = 630;
-		rType = 0;
-		vrLen = 854;
-		vrLoc = 0;
-	};
-	F4BB7D84118213F100AF1346 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */;
-		name = "SampleAudioUnit.h: 8";
-		rLen = 0;
-		rLoc = 212;
-		rType = 0;
-		vrLen = 2143;
-		vrLoc = 0;
-	};
-	F4BB7D85118213F100AF1346 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
-		name = "SampleAudioUnit.mm: 334";
-		rLen = 0;
-		rLoc = 8278;
-		rType = 0;
-		vrLen = 1079;
-		vrLoc = 7819;
-	};
-	F4BB7D8B118213F100AF1346 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
-		name = "SampleAudioUnit.mm: 329";
-		rLen = 206;
-		rLoc = 8036;
-		rType = 0;
-		vrLen = 1034;
-		vrLoc = 7925;
-	};
 	F4F69B19117545FA00CBAF6E /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = F425BBBF117251CC00D8A1F4 /* AudioBasics.cpp */;
 		vrLen = 2225;
 		vrLoc = 6630;
 	};
-	F4FFF7C211821439000D9C7B /* SampleAudioUnit.mm:322 */ = {
+	F4FFF7C211821439000D9C7B /* SampleAudioUnit.mm:307 */ = {
 		isa = PBXFileBreakpoint;
 		actions = (
 		);
 		functionName = "SampleAudioUnit::writePulse(char pulse)";
 		hitCount = 0;
 		ignoreCount = 0;
-		lineNumber = 322;
+		lineNumber = 307;
 		location = WiiNunchuck;
 		modificationTime = 293737863.95235;
 		originalNumberOfMultipleMatches = 1;
 		state = 2;
 	};
-	F4FFF7DB118215BF000D9C7B /* SampleAudioUnit.mm:354 */ = {
+	F4FFF7DB118215BF000D9C7B /* SampleAudioUnit.mm:339 */ = {
 		isa = PBXFileBreakpoint;
 		actions = (
 		);
 		functionName = "SampleAudioUnit::writePulse(char pulse)";
 		hitCount = 1;
 		ignoreCount = 0;
-		lineNumber = 354;
+		lineNumber = 339;
 		location = WiiNunchuck;
 		modificationTime = 293737926.161759;
 		originalNumberOfMultipleMatches = 1;
 		state = 1;
 	};
-	F4FFF85911824659000D9C7B /* PBXTextBookmark */ = {
+	F4FFF8BF118253E3000D9C7B /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */;
-		name = "SampleAudioUnit.h: 20";
+		name = "SampleAudioUnit.h: 71";
 		rLen = 0;
-		rLoc = 593;
+		rLoc = 1671;
 		rType = 0;
-		vrLen = 2144;
+		vrLen = 784;
+		vrLoc = 1271;
+	};
+	F4FFF8C0118253E3000D9C7B /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 91";
+		rLen = 0;
+		rLoc = 2109;
+		rType = 0;
+		vrLen = 4209;
 		vrLoc = 0;
 	};
-	F4FFF85A11824659000D9C7B /* PBXTextBookmark */ = {
+	F4FFF8C1118253E3000D9C7B /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
-		name = "SampleAudioUnit.mm: 331";
+		fRef = F425BAD01172407600D8A1F4 /* SettingsViewController.mm */;
+		name = "SettingsViewController.mm: 49";
 		rLen = 0;
-		rLoc = 8150;
+		rLoc = 1105;
 		rType = 0;
-		vrLen = 1049;
-		vrLoc = 7545;
+		vrLen = 923;
+		vrLoc = 0;
 	};
-	F4FFF85B11824659000D9C7B /* PBXTextBookmark */ = {
+	F4FFF8C2118253E3000D9C7B /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
-		name = "SampleAudioUnit.mm: 331";
+		fRef = F425BACF1172407600D8A1F4 /* SettingsViewController.h */;
+		name = "SettingsViewController.h: 29";
+		rLen = 39;
+		rLoc = 669;
+		rType = 0;
+		vrLen = 715;
+		vrLoc = 0;
+	};
+	F4FFF8FD1182652F000D9C7B /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACC1172406900D8A1F4 /* MainViewController.h */;
+		name = "MainViewController.h: 17";
+		rLen = 18;
+		rLoc = 357;
+		rType = 0;
+		vrLen = 861;
+		vrLoc = 0;
+	};
+	F4FFF8FE1182652F000D9C7B /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 114";
 		rLen = 0;
-		rLoc = 8159;
+		rLoc = 2858;
 		rType = 0;
-		vrLen = 1110;
-		vrLoc = 7580;
+		vrLen = 2290;
+		vrLoc = 1886;
+	};
+	F4FFF8FF1182652F000D9C7B /* PBXBookmark */ = {
+		isa = PBXBookmark;
+		fRef = F4FFF8E3118260B5000D9C7B /* wii_nunchuck_close_up.jpg */;
+	};
+	F4FFF958118269D4000D9C7B /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F40FCA60117EC1D4002A9011 /* InstructionsViewController.m */;
+		name = "InstructionsViewController.m: 21";
+		rLen = 0;
+		rLoc = 319;
+		rType = 0;
+		vrLen = 1611;
+		vrLoc = 97;
+	};
+	F4FFF959118269D4000D9C7B /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F40FCA5F117EC1D4002A9011 /* InstructionsViewController.h */;
+		name = "InstructionsViewController.h: 14";