Commits

Sam Drazin  committed 098930f

Fixed bug for receiving data, was related to BUFFER DURATION! Made averaging buttons optional

  • Participants
  • Parent commits dafa8cf
  • Branches Post_Pats_Changes

Comments (0)

Files changed (8)

File Classes/MUEAudioIO.cpp

 		AudioSessionInitialize(NULL, NULL, rioInterruptionListener, this);
 		AudioSessionSetActive(true);
 		
-        
+
 		//audio should not mix with iPod audio, and we want input and output.
 		UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord;
         //audio will mix with iPod audio, but we get output only (no input) with this type of session
         
         //(TODO) make get/set preferred buffer size
 		// This value is in seconds! We want really low latency...
-		preferredBufferSize = .01;		//.005;	// .005 for buffer of 256, .01 for buffer of 512
+		preferredBufferSize = .01;	// .005 for buffer of 256, .01 for buffer of 512
 		AudioSessionSetProperty(kAudioSessionProperty_PreferredHardwareIOBufferDuration, 
 								sizeof(preferredBufferSize), &preferredBufferSize);
 		

File Classes/MainViewController.h

 
 #import <UIKit/UIKit.h>
 #include <AudioToolbox/AudioToolbox.h>
+#include "SineMaker.h"
 
 #define kUpdateInterval	(1.0f/10.0f)
 #define kMaxAccel			1.5f
 	IBOutlet UILabel		*valueLabel1;
 	IBOutlet UILabel		*valueLabel2;
 	IBOutlet UILabel		*valueLabel3;
+	IBOutlet UIImageView	*zButtonImageView;	// for value4
+	IBOutlet UIImageView	*cButtonImageView;	// for value5
+
 @public 
 	IBOutlet UILabel		*valueLabel3Title;
 	
 	IBOutlet UIButton		*stopSyncButton;
 	NSTimer					*myTimer;
 	UIActivityIndicatorView *activityView;
-	IBOutlet UIImageView	*zButtonImageView;
-	IBOutlet UIImageView	*cButtonImageView;
 	
 @public
 	WiiNunchuckAppDelegate	*applicationDelegate;
 	SystemSoundID			soundFile3;
 	SystemSoundID			soundFile4;
 	SystemSoundID			soundFile5;
-	
+/*	
 	CFURLRef				kickURLRef;
 	CFURLRef				snareURLRef;
 	CFURLRef				openHatURLRef;
 	SystemSoundID			kickSoundFileObject;
 	SystemSoundID			snareSoundFileObject;
 	SystemSoundID			openHatSoundFileObject;	
-	
+*/	
 }
 
-@property (nonatomic, retain) IBOutlet UILabel		*valueLabel1;
-@property (nonatomic, retain) IBOutlet UILabel		*valueLabel2;
-@property (nonatomic, retain) IBOutlet UILabel		*valueLabel3;
-@property (nonatomic, retain) IBOutlet UIButton		*syncButton;
-@property (nonatomic, retain) IBOutlet UIButton		*stopSyncButton;
-@property (nonatomic, retain) UIActivityIndicatorView *activityView;
+@property (nonatomic, retain) IBOutlet UILabel			*valueLabel1;
+@property (nonatomic, retain) IBOutlet UILabel			*valueLabel2;
+@property (nonatomic, retain) IBOutlet UILabel			*valueLabel3;
+@property (nonatomic, retain) IBOutlet UIButton			*syncButton;
+@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 UIImageView		*zButtonImageView;
+@property (nonatomic, retain) IBOutlet UIImageView		*cButtonImageView;
 
-@property (nonatomic, retain) IBOutlet UILabel		*valueLabel3Title;
+@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;
-
-@property (readwrite)			CFURLRef			soundURL1;
-@property (readwrite)			CFURLRef			soundURL2;
-@property (readwrite)			CFURLRef			soundURL3;
-@property (readwrite)			CFURLRef			soundURL4;
-@property (readwrite)			CFURLRef			soundURL5;
-@property (readonly)			SystemSoundID		soundFile1;
-@property (readonly)			SystemSoundID		soundFile2;
-@property (readonly)			SystemSoundID		soundFile3;
-@property (readonly)			SystemSoundID		soundFile4;
-@property (readonly)			SystemSoundID		soundFile5;
+*/
+@property (readwrite)			CFURLRef				soundURL1;
+@property (readwrite)			CFURLRef				soundURL2;
+@property (readwrite)			CFURLRef				soundURL3;
+@property (readwrite)			CFURLRef				soundURL4;
+@property (readwrite)			CFURLRef				soundURL5;
+@property (readonly)			SystemSoundID			soundFile1;
+@property (readonly)			SystemSoundID			soundFile2;
+@property (readonly)			SystemSoundID			soundFile3;
+@property (readonly)			SystemSoundID			soundFile4;
+@property (readonly)			SystemSoundID			soundFile5;
 
 -(IBAction)startSynchingValues:(id)sender;
 -(IBAction)resetSync;
+
 -(void)displayValuesToLabels;
 -(void)monitorNunchuckButtons;
 -(void)updateValueOfLabel:(int)labelNumber withValue:(double)value;
+
 -(void)handleCButton;
 -(void)handleZButton;
 -(void)handleValues;
 
+
 @end

File Classes/MainViewController.mm

 int		debounceValue2					= 0;
 int		debounceValue3					= 0;
 
-#define	kDebounceDelay					100
+#define	kDebounceDelay					10
 #define kValueHighThreshold				220
 #define kValueLowThreshold				25
 
 @implementation MainViewController
 
-@synthesize valueLabel1;
-@synthesize valueLabel2;
-@synthesize valueLabel3;
-@synthesize syncButton;
-@synthesize stopSyncButton;
+@synthesize valueLabel1, valueLabel2, valueLabel3;
+@synthesize syncButton, stopSyncButton;
+@synthesize zButtonImageView, cButtonImageView;
+@synthesize valueLabel3Title;
 @synthesize activityView;
-@synthesize zButtonImageView;
-@synthesize cButtonImageView;
-@synthesize valueLabel3Title;
-
-@synthesize kickURLRef;
-@synthesize snareURLRef;
-@synthesize openHatURLRef;
-@synthesize kickSoundFileObject;
-@synthesize snareSoundFileObject;
-@synthesize openHatSoundFileObject;
-
+/*
+@synthesize kickURLRef, snareURLRef, openHatURLRef;
+@synthesize kickSoundFileObject, snareSoundFileObject, openHatSoundFileObject;
+*/
 @synthesize soundURL1, soundURL2, soundURL3, soundURL4, soundURL5;
 @synthesize soundFile1, soundFile2, soundFile3, soundFile4, soundFile5;
 
 	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);
 	AudioServicesCreateSystemSoundID (kickURLRef,		&kickSoundFileObject);
 	AudioServicesCreateSystemSoundID (snareURLRef,		&snareSoundFileObject);
 	AudioServicesCreateSystemSoundID (openHatURLRef,	&openHatSoundFileObject);
-	
+	*/
 	
 	soundURL1 = CFBundleCopyResourceURL(mainBundle, CFSTR ("weird_wah"),			CFSTR ("aif"), NULL);
 	soundURL2 = CFBundleCopyResourceURL(mainBundle, CFSTR ("low_bubble"),			CFSTR ("aif"), NULL);
 	
 }
 
+#pragma mark -
+#pragma mark Value Handling Methods
+
 -(void)handleZButton
 {
 	if (debounceZButton <= 0) {
 
 		zButtonImageView.hidden = YES;		
 		if (value4) {
-			AudioServicesPlaySystemSound (self.soundFile1);
+			//AudioServicesPlaySystemSound (self.soundFile1);
 			zButtonImageView.hidden = NO;
 			debounceZButton += kDebounceDelay;
 		}
 		cButtonImageView.hidden = YES;
 		
 		if (value5) {
-			AudioServicesPlaySystemSound (self.soundFile2);
+			//AudioServicesPlaySystemSound (self.soundFile2);
 			cButtonImageView.hidden = NO;
 			debounceCButton += kDebounceDelay;
 		}
 	[self monitorNunchuckButtons];
 }
 
+
 #pragma mark -
+#pragma mark Accelerometer Callback
 
 -(void) accelerometer:(UIAccelerometer *) accelerometer didAccelerate:(UIAcceleration *) acceleration 
 {	
 
 }
 
-/*
-  (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
-    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
-        // Custom initialization
-    }
-    return self;
-}
-*/
-/*
-// Implement loadView to create a view hierarchy programmatically, without using a nib.
-- (void)loadView {
-}
-*/
-/*
-// Override to allow orientations other than the default portrait orientation.
-- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
-    // Return YES for supported orientations
-    return (interfaceOrientation == UIInterfaceOrientationPortrait);
-}
-*/
+#pragma mark -
 
-- (void)didReceiveMemoryWarning {
+- (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)viewDidUnload 
+{
 	// Release any retained subviews of the main view.
 	// e.g. self.myOutlet = nil;
 }
 
-- (void)dealloc {
+- (void)dealloc 
+{
     [super dealloc];
 	[valueLabel1 release];
 	[valueLabel2 release];
 	[zButtonImageView release];
 	[cButtonImageView release];
 	[valueLabel3Title release];
+	[activityView release];
 }
 
 

File Classes/SampleAudioUnit.h

 /* Endianness declared by arbitrary constant with the following values:
 		Little Endian:	1001
 		Big Endian:		1002
-*/
+
 #define	kLittleEndian				1001
 #define kBigEndian					1002
 #define kEndianness					kLittleEndian
-
+*/
 #define kPulseLengthThreshold		22//20
 #define kMinPulseLength				3
 #define kPulseThreshold				0.425
 	
 	int						value1count,
 							value2count, 
-							value3count;
+							value3count,
+							value4count, 
+							value5count;
 	
 	double					*value1Buffer, 
 							*value2Buffer,
 							*value3Buffer;
+	bool					*value4Buffer,
+							*value5Buffer;
 
 /*
 	int		*accelXBuffer;

File Classes/SampleAudioUnit.mm

 #include <string.h>
 #import "WiiNunchuckAppDelegate.h"
 
+// true
+// false
+#define kShouldAverageBits			0
+
 bool DEBUG							= false;
-bool PRINT_FLOATING_POINT_VALUES	= false;
-bool PRINT_BINARY_VALUES			= false;
+bool PRINT_FLOATING_POINT_VALUES	= false;		
+bool PRINT_BINARY_VALUES			= false;		
 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);
-	
-//	free(accelXBuffer);
-//	free(accelYBuffer);
-//	free(accelZBuffer);
-//	free(joystickXBuffer);
-//	free(joystickYBuffer);
-//	free(zButtonBuffer);
-//	free(cButtonBuffer);
+/*	
+	free(accelXBuffer);
+	free(accelYBuffer);
+	free(accelZBuffer);
+	free(joystickXBuffer);
+	free(joystickYBuffer);
+	free(zButtonBuffer);
+	free(cButtonBuffer);
+*/
 }
 
 float SampleAudioUnit::getParameter(int index)
 */
 }
 
-char thresholdFloatingPointToBinaryChar(float inValue)
+char thresholdFloatingPointToBinaryChar(double inValue)
 {
 	if (inValue > kPulseThreshold) 
 		return '1';
 {
 	if (DEBUG) NSLog(@"--bufferAverage()");
 	
-	int sum = 0;
+	int numPositive = 0;
 	for (int i = 0; i < length; i += 1)
-		sum += (int) buffer[i];
-	return (bool) sum/length;
+	{
+		if (buffer[i])
+			numPositive += 1;
+	}
+	if (numPositive > length/2)
+		return true;
+	return false;
 }
 
 /*	This function collects all of the calculated values, and stores them in a circular buffer. 
 	if (DEBUG) NSLog(@"--updateValueBuffers()");
 	
 	if (PRINT_VALUES) {
-		printf("\n");
 		for (int i = 0; i < whichValue-1; i += 1)
 			printf("\t\t\t");
-		printf("Value_%d: %.0f", whichValue, value);
+		printf("Value_%d: %.0f\n", whichValue, value);
 	}
+	
 	if (whichValue == 1) {
 		value1Buffer[value1count%kMovingAverageLength] = value;
 		value1count += 1;
 		}
 	}
 	else if (whichValue == 4) {
-		value4 = (bool) value;
-		[applicationDelegate updateValue:4 withValue:(bool)value4];
+		if (kShouldAverageBits) {
+			value4Buffer[value4count%kMovingAverageLength] = value;
+			value4count += 1;
+			if (value4count >= kMovingAverageLength) {
+				value4 = bufferAverage((bool *)value4Buffer, kMovingAverageLength);	
+				[applicationDelegate updateValue:4 withValue:(bool)value4];
+			}
+		}	
+		else {
+			value4 = (bool) value;
+			[applicationDelegate updateValue:4 withValue:(bool)value4];
+		}
 	}
 	else if (whichValue == 5) {
-		value5 = (bool) value;
-		[applicationDelegate updateValue:5 withValue:(bool)value5];
+		if (kShouldAverageBits) {
+			value5Buffer[value5count%kMovingAverageLength] = value;
+			value5count += 1;
+			if (value5count >= kMovingAverageLength) {
+				value5 = bufferAverage((bool *)value5Buffer, kMovingAverageLength);	
+				[applicationDelegate updateValue:5 withValue:(bool)value5];
+			}		
+		}
+		else {
+			value5 = (bool) value;
+			[applicationDelegate updateValue:5 withValue:(bool)value5];
+		}
 	}
 	packetCount += 1;
 }
 
 void SampleAudioUnit::writePulse(char pulse)
 {
-	//NSLog(@"* writing: %c", pulse);
-	
 	if (DEBUG) NSLog(@"--writePulse()");
 
 	char currentWord[kBitsPerWord];
 			currentWord[j] = dataWord[i];
 			
 			// If we've received all of the 8 bit words, get ready to extract the next two bits (single bit values)
-			if (wordsReceived >= kNumWords) {
+			if (wordsReceived >= kNumWords && kSingleBitWords > 0) {
 				updateValueBuffers(wordsReceived+(singleBitsReceived+1), (dataWord[i] == '1'));
-//				printf("\ndataWord[%d]: %c", i, dataWord[i]);
 				singleBitsReceived += 1;
 			}
 			
+			//else 
 			if ((j+1) == kBitsPerWord) {
 				value = binaryStringToDecimal_BigEndian(currentWord, kBitsPerWord);		
+				
+				if (PRINT_VALUES) {
+					for (int x = 0; x < kBitsPerWord; x += 1)
+						printf("%c", currentWord[x]);
+					printf("\t\t");
+				}
+				
 				wordsReceived += 1;
 				wordCount += 1;
 
 		
 		// Expexts a span of zeros >= length of kInitSequenceLength to begin each packet, hence: 
 		// only sets readingBits to false when a complete packet has been read
-				
-		//NSLog(@"-- wordsReceived: %d", wordsReceived);
 		
 		if (wordsReceived == kNumWords && singleBitsReceived == kSingleBitWords) {
 			readingBits = false;
 	{
 		currentBit = thresholdFloatingPointToBinaryChar((float) -buffer[i]);
 		
-		if (PRINT_BINARY_VALUES)	printf("%c", currentBit);
-		else if (PRINT_FLOATING_POINT_VALUES)	printf("%f\n", -buffer[i]);		
-/*	
+		if (PRINT_BINARY_VALUES)				printf("%c", currentBit);
+		else if (PRINT_FLOATING_POINT_VALUES)	printf("%f\n", (float)  -buffer[i]);		
 
-		// If currentBit has found the first 1 in a train of 0s...
-		if (currentBit == '1' && zeroTrainLength > oneTrainLength)
-		{
-			if (wasErrorPulse(currentBit, buffer, i)) {
-				foundError = true;
-			}
-			else {
-				printf("\nfound train of %d zeros", zeroTrainLength);
-							
-				if (zeroTrainLength > kInitSequenceLength)
-					printf(" --------------------");
-			}
-		}
-		// Esle if currentBit has found the first 0 in a train of 1s...
-		else if (currentBit == '0' && zeroTrainLength < oneTrainLength) {
-			printf("\nfound train of %d ones, \t\tmy guess: %c", oneTrainLength, makeAppropriatePulse(oneTrainLength));
-		}
-
-//		printf("%c", currentBit);
-//		printf("%f\n", -buffer[i]);
-*/
 		// If the current bit is the first '1' after a train of zeros (or if we are reading mid-word)
 		if ((currentBit == '1' && zeroTrainLength > oneTrainLength) || readingBits) {
 /*
 			// Error checking for inadequate pulse
-//			if (!readingBits && wasErrorPulse(currentBit, buffer, i)) {
-//				foundError = true;
-//				continue;
-//			}
+			if (!readingBits && wasErrorPulse(currentBit, buffer, i)) {
+				foundError = true;
+				continue;
+			}
 */			
 			if ((zeroTrainLength > kInitSequenceLength) || readingBits) {
 				readingBits = true;
 //		}
 //		foundError = false;
 		
-		// Throw out data after finished processing, after all, this isn't audio that we want to listen to!
+		// Throw out data after finished processing, after all, this isn't audio that we want to listen to
 		buffer[i] = 0;
 	}
 	

File Classes/WiiNunchuckAppDelegate.mm

 
     //add effects here
     static SampleAudioUnit sampleAudioUnit;
-    m_sampleAudioUnit = &sampleAudioUnit;
+    m_sampleAudioUnit =	&sampleAudioUnit;
     m_audioController->addMUEAudioUnit(&sampleAudioUnit);	
 	
 	// Connect the SampleAudioUnit's delegate pointer to the actual WiiNunchuckAppDelegate

File WiiNunchuck.xcodeproj/sdrazin.mode1v3

 						<dict>
 							<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
 							<array>
-								<real>228</real>
+								<real>219</real>
 							</array>
 							<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
 							<array>
 							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
 							<array>
 								<array>
-									<integer>12</integer>
+									<integer>4</integer>
 									<integer>1</integer>
 									<integer>0</integer>
 								</array>
 							</array>
 							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
-							<string>{{0, 0}, {228, 760}}</string>
+							<string>{{0, 0}, {219, 745}}</string>
 						</dict>
 						<key>PBXTopSmartGroupGIDs</key>
 						<array/>
 					<key>GeometryConfiguration</key>
 					<dict>
 						<key>Frame</key>
-						<string>{{0, 0}, {245, 778}}</string>
+						<string>{{0, 0}, {236, 763}}</string>
 						<key>GroupTreeTableConfiguration</key>
 						<array>
 							<string>MainColumn</string>
-							<real>228</real>
+							<real>219</real>
 						</array>
 						<key>RubberWindowFrame</key>
-						<string>1 59 1439 819 0 0 1440 878 </string>
+						<string>13 63 1217 804 0 0 1440 878 </string>
 					</dict>
 					<key>Module</key>
 					<string>PBXSmartGroupTreeModule</string>
 					<key>Proportion</key>
-					<string>245pt</string>
+					<string>236pt</string>
 				</dict>
 				<dict>
 					<key>Dock</key>
 								<key>PBXProjectModuleGUID</key>
 								<string>1CE0B20306471E060097A5F4</string>
 								<key>PBXProjectModuleLabel</key>
-								<string>SampleAudioUnit.mm</string>
+								<string>SineMaker.m</string>
 								<key>PBXSplitModuleInNavigatorKey</key>
 								<dict>
 									<key>Split0</key>
 										<key>PBXProjectModuleGUID</key>
 										<string>1CE0B20406471E060097A5F4</string>
 										<key>PBXProjectModuleLabel</key>
-										<string>SampleAudioUnit.mm</string>
+										<string>SineMaker.m</string>
 										<key>_historyCapacity</key>
 										<integer>0</integer>
 										<key>bookmark</key>
-										<string>F49A13171184FAE1005E3D0E</string>
+										<string>F4156B5E11891D3100660B62</string>
 										<key>history</key>
 										<array>
 											<string>F4841DD61172CC2E0034AF4B</string>
 											<string>F42836ED117525BB00885608</string>
 											<string>F42836EE117525BB00885608</string>
 											<string>F428370E1175313A00885608</string>
-											<string>F42837101175313A00885608</string>
 											<string>F42837121175313A00885608</string>
 											<string>F4F69B19117545FA00CBAF6E</string>
-											<string>F4F69B1A117545FA00CBAF6E</string>
 											<string>F4F69B981176572E00CBAF6E</string>
 											<string>F4F69C52117693AE00CBAF6E</string>
-											<string>F4F69C63117698EF00CBAF6E</string>
 											<string>F466430E117D189C00BFC470</string>
-											<string>F44849591181346B0027B464</string>
-											<string>F4B25D851184842A009BA0D3</string>
-											<string>F458A0FC1184B1F6003BD1D2</string>
-											<string>F49A11CB1184D6DD005E3D0E</string>
-											<string>F49A11CC1184D6DD005E3D0E</string>
 											<string>F49A11CF1184D6DD005E3D0E</string>
 											<string>F49A11EA1184DE0D005E3D0E</string>
 											<string>F49A11EB1184DE0D005E3D0E</string>
 											<string>F49A11F51184DE0D005E3D0E</string>
 											<string>F49A11F61184DE0D005E3D0E</string>
 											<string>F49A11F71184DE0D005E3D0E</string>
-											<string>F49A11F81184DE0D005E3D0E</string>
-											<string>F49A11F91184DE0D005E3D0E</string>
-											<string>F49A13141184FAE1005E3D0E</string>
-											<string>F49A13151184FAE1005E3D0E</string>
-											<string>F49A13161184FAE1005E3D0E</string>
-											<string>F4B25D451183CA04009BA0D3</string>
+											<string>F49A132811853AF0005E3D0E</string>
+											<string>F40B98D01188D08F00ED53DB</string>
+											<string>F4156A911188F67000660B62</string>
+											<string>F4156B351189170400660B62</string>
+											<string>F4156B361189170400660B62</string>
+											<string>F4156B371189170400660B62</string>
+											<string>F4156B381189170400660B62</string>
+											<string>F4156B3A1189170400660B62</string>
+											<string>F4156B3C1189170400660B62</string>
+											<string>F4156B4D1189183C00660B62</string>
+											<string>F4156B4E1189183C00660B62</string>
+											<string>F4156B5A118918F800660B62</string>
+											<string>F4156B5B118918F800660B62</string>
+											<string>F4156B5C118918F800660B62</string>
 										</array>
 									</dict>
 									<key>SplitCount</key>
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 0}, {1189, 456}}</string>
+								<string>{{0, 0}, {976, 610}}</string>
 								<key>RubberWindowFrame</key>
-								<string>1 59 1439 819 0 0 1440 878 </string>
+								<string>13 63 1217 804 0 0 1440 878 </string>
 							</dict>
 							<key>Module</key>
 							<string>PBXNavigatorGroup</string>
 							<key>Proportion</key>
-							<string>456pt</string>
+							<string>610pt</string>
 						</dict>
 						<dict>
 							<key>ContentConfiguration</key>
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 461}, {1189, 317}}</string>
+								<string>{{0, 615}, {976, 148}}</string>
 								<key>RubberWindowFrame</key>
-								<string>1 59 1439 819 0 0 1440 878 </string>
+								<string>13 63 1217 804 0 0 1440 878 </string>
 							</dict>
 							<key>Module</key>
 							<string>XCDetailModule</string>
 							<key>Proportion</key>
-							<string>317pt</string>
+							<string>148pt</string>
 						</dict>
 					</array>
 					<key>Proportion</key>
-					<string>1189pt</string>
+					<string>976pt</string>
 				</dict>
 			</array>
 			<key>Name</key>
 			</array>
 			<key>TableOfContents</key>
 			<array>
-				<string>F49A13181184FAE1005E3D0E</string>
+				<string>F4156A971188F67000660B62</string>
 				<string>1CE0B1FE06471DED0097A5F4</string>
-				<string>F49A13191184FAE1005E3D0E</string>
+				<string>F4156A981188F67000660B62</string>
 				<string>1CE0B20306471E060097A5F4</string>
 				<string>1CE0B20506471E060097A5F4</string>
 			</array>
 	<key>StatusbarIsVisible</key>
 	<true/>
 	<key>TimeStamp</key>
-	<real>293927649.11077601</real>
+	<real>294198577.45515001</real>
 	<key>ToolbarConfigUserDefaultsMinorVersion</key>
 	<string>2</string>
 	<key>ToolbarDisplayMode</key>
 	<integer>5</integer>
 	<key>WindowOrderList</key>
 	<array>
+		<string>F4156AC91188FB3F00660B62</string>
+		<string>F4156ACA1188FB3F00660B62</string>
+		<string>1CD10A99069EF8BA00B06720</string>
+		<string>1C530D57069F1CE1000CFCEE</string>
 		<string>F425BAEF1172444200D8A1F4</string>
+		<string>1C78EAAD065D492600B07095</string>
 		<string>/Users/sdrazin/Documents/Programs/iPhone/WiiNunchuck/WiiNunchuck.xcodeproj</string>
 	</array>
 	<key>WindowString</key>
-	<string>1 59 1439 819 0 0 1440 878 </string>
+	<string>13 63 1217 804 0 0 1440 878 </string>
 	<key>WindowToolsV3</key>
 	<array>
 		<dict>
 								<key>PBXProjectModuleGUID</key>
 								<string>1CD0528F0623707200166675</string>
 								<key>PBXProjectModuleLabel</key>
-								<string></string>
+								<string>MainViewController.mm</string>
 								<key>StatusBarVisibility</key>
 								<true/>
 							</dict>
 							<string>283pt</string>
 						</dict>
 						<dict>
+							<key>BecomeActive</key>
+							<true/>
 							<key>ContentConfiguration</key>
 							<dict>
 								<key>PBXProjectModuleGUID</key>
 			<key>TableOfContents</key>
 			<array>
 				<string>F425BAEF1172444200D8A1F4</string>
-				<string>F49A131A1184FAE1005E3D0E</string>
+				<string>F4156A8C1188F66900660B62</string>
 				<string>1CD0528F0623707200166675</string>
 				<string>XCMainBuildResultsModuleGUID</string>
 			</array>
 			<key>TableOfContents</key>
 			<array>
 				<string>1CD10A99069EF8BA00B06720</string>
-				<string>F49A11C11184D6D9005E3D0E</string>
+				<string>F4156AB11188F9FC00660B62</string>
 				<string>1C162984064C10D400B95A72</string>
-				<string>F49A11C21184D6D9005E3D0E</string>
-				<string>F49A11C31184D6D9005E3D0E</string>
-				<string>F49A11C41184D6D9005E3D0E</string>
-				<string>F49A11C51184D6D9005E3D0E</string>
-				<string>F49A11C61184D6D9005E3D0E</string>
+				<string>F4156AB21188F9FC00660B62</string>
+				<string>F4156AB31188F9FC00660B62</string>
+				<string>F4156AB41188F9FC00660B62</string>
+				<string>F4156AB51188F9FC00660B62</string>
+				<string>F4156AB61188F9FC00660B62</string>
 			</array>
 			<key>ToolbarConfiguration</key>
 			<string>xcode.toolbar.config.debugV3</string>
 			<false/>
 		</dict>
 		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
 			<key>Identifier</key>
 			<string>windowTool.find</string>
+			<key>IsVertical</key>
+			<true/>
 			<key>Layout</key>
 			<array>
 				<dict>
 										<key>PBXProjectModuleGUID</key>
 										<string>1CDD528C0622207200134675</string>
 										<key>PBXProjectModuleLabel</key>
-										<string>&lt;No Editor&gt;</string>
-										<key>PBXSplitModuleInNavigatorKey</key>
-										<dict>
-											<key>Split0</key>
-											<dict>
-												<key>PBXProjectModuleGUID</key>
-												<string>1CD0528D0623707200166675</string>
-											</dict>
-											<key>SplitCount</key>
-											<string>1</string>
-										</dict>
+										<string>MainViewController.mm</string>
 										<key>StatusBarVisibility</key>
-										<integer>1</integer>
+										<true/>
 									</dict>
 									<key>GeometryConfiguration</key>
 									<dict>
 										<key>Frame</key>
-										<string>{{0, 0}, {781, 167}}</string>
+										<string>{{0, 0}, {781, 212}}</string>
 										<key>RubberWindowFrame</key>
-										<string>62 385 781 470 0 0 1440 878 </string>
+										<string>78 371 781 470 0 0 1440 878 </string>
 									</dict>
 									<key>Module</key>
 									<string>PBXNavigatorGroup</string>
 								</dict>
 							</array>
 							<key>Proportion</key>
-							<string>50%</string>
+							<string>212pt</string>
 						</dict>
 						<dict>
 							<key>BecomeActive</key>
-							<integer>1</integer>
+							<true/>
 							<key>ContentConfiguration</key>
 							<dict>
 								<key>PBXProjectModuleGUID</key>
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{8, 0}, {773, 254}}</string>
+								<string>{{0, 217}, {781, 212}}</string>
 								<key>RubberWindowFrame</key>
-								<string>62 385 781 470 0 0 1440 878 </string>
+								<string>78 371 781 470 0 0 1440 878 </string>
 							</dict>
 							<key>Module</key>
 							<string>PBXProjectFindModule</string>
 							<key>Proportion</key>
-							<string>50%</string>
+							<string>212pt</string>
 						</dict>
 					</array>
 					<key>Proportion</key>
-					<string>428pt</string>
+					<string>429pt</string>
 				</dict>
 			</array>
 			<key>Name</key>
 				<string>PBXProjectFindModule</string>
 			</array>
 			<key>StatusbarIsVisible</key>
-			<integer>1</integer>
+			<true/>
 			<key>TableOfContents</key>
 			<array>
 				<string>1C530D57069F1CE1000CFCEE</string>
-				<string>1C530D58069F1CE1000CFCEE</string>
-				<string>1C530D59069F1CE1000CFCEE</string>
+				<string>F4156A8F1188F66900660B62</string>
+				<string>F4156A901188F66900660B62</string>
 				<string>1CDD528C0622207200134675</string>
-				<string>1C530D5A069F1CE1000CFCEE</string>
-				<string>1CE0B1FE06471DED0097A5F4</string>
 				<string>1CD0528E0623707200166675</string>
 			</array>
 			<key>WindowString</key>
-			<string>62 385 781 470 0 0 1440 878 </string>
+			<string>78 371 781 470 0 0 1440 878 </string>
 			<key>WindowToolGUID</key>
 			<string>1C530D57069F1CE1000CFCEE</string>
 			<key>WindowToolIsVisible</key>
-			<integer>0</integer>
+			<false/>
 		</dict>
 		<dict>
 			<key>Identifier</key>
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 0}, {707, 749}}</string>
+								<string>{{0, 0}, {568, 695}}</string>
 								<key>RubberWindowFrame</key>
-								<string>705 82 707 790 0 0 1440 878 </string>
+								<string>846 109 568 736 0 0 1440 878 </string>
 							</dict>
 							<key>Module</key>
 							<string>PBXDebugCLIModule</string>
 							<key>Proportion</key>
-							<string>749pt</string>
+							<string>695pt</string>
 						</dict>
 					</array>
 					<key>Proportion</key>
-					<string>749pt</string>
+					<string>695pt</string>
 				</dict>
 			</array>
 			<key>Name</key>
 			<key>TableOfContents</key>
 			<array>
 				<string>1C78EAAD065D492600B07095</string>
-				<string>F49A11C71184D6D9005E3D0E</string>
+				<string>F4156AB81188F9FC00660B62</string>
 				<string>1C78EAAC065D492600B07095</string>
 			</array>
 			<key>ToolbarConfiguration</key>
 			<string>xcode.toolbar.config.consoleV3</string>
 			<key>WindowString</key>
-			<string>705 82 707 790 0 0 1440 878 </string>
+			<string>846 109 568 736 0 0 1440 878 </string>
 			<key>WindowToolGUID</key>
 			<string>1C78EAAD065D492600B07095</string>
 			<key>WindowToolIsVisible</key>

File WiiNunchuck.xcodeproj/sdrazin.pbxuser

 {
 	1D3623240D0F684500981E51 /* WiiNunchuckAppDelegate.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {988, 481}}";
-			sepNavSelRange = "{580, 0}";
-			sepNavVisRange = "{290, 650}";
+			sepNavIntBoundsRect = "{{0, 0}, {876, 525}}";
+			sepNavSelRange = "{148, 0}";
+			sepNavVisRange = "{0, 946}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 	1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */ = {
 		uiCtxt = {
-			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{1332, 71}\";\n            s = 0;\n        },\n                {\n            r = \"{1421, 108}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 1538}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {1128, 637}}";
-			sepNavSelRange = "{426, 0}";
-			sepNavVisRange = "{0, 996}";
+			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{1334, 71}\";\n            s = 0;\n        },\n                {\n            r = \"{1423, 108}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 1540}\";\n    s = 0;\n}";
+			sepNavIntBoundsRect = "{{0, 0}, {915, 637}}";
+			sepNavSelRange = "{919, 0}";
+			sepNavVisRange = "{48, 1315}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 			1D6058900D05DD3D006BFB54 /* WiiNunchuck */,
 		);
 		breakpoints = (
-			F4BB7D621182112700AF1346 /* SampleAudioUnit.mm:287 */,
-			F4BB7D641182112D00AF1346 /* SampleAudioUnit.mm:284 */,
-			F4BB7D661182113100AF1346 /* SampleAudioUnit.mm:308 */,
-			F4BB7D681182113600AF1346 /* SampleAudioUnit.mm:280 */,
-			F4FFF7C211821439000D9C7B /* SampleAudioUnit.mm:277 */,
-			F4FFF7DB118215BF000D9C7B /* SampleAudioUnit.mm:309 */,
 			F458A10D1184B278003BD1D2 /* -[InstructionsViewController description] */,
 			F458A10E1184B278003BD1D2 /* -[InstructionsViewController setDescription:] */,
 			F458A1B51184C7D1003BD1D2 /* InstructionsViewController.m:21 */,
 				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
 				PBXFileTableDataSourceColumnWidthsKey = (
 					20,
-					950,
+					737,
 					20,
 					48,
 					43,
 					PBXFileDataSource_Warnings_ColumnID,
 				);
 			};
-			PBXPerProjectTemplateStateSaveDate = 293927595;
-			PBXWorkspaceStateSaveDate = 293927595;
+			PBXPerProjectTemplateStateSaveDate = 294188041;
+			PBXWorkspaceStateSaveDate = 294188041;
 		};
 		perUserProjectItems = {
 			F409004A11741F2F00A42609 = F409004A11741F2F00A42609 /* PBXTextBookmark */;
+			F40B98D01188D08F00ED53DB = F40B98D01188D08F00ED53DB /* PBXTextBookmark */;
+			F415655E1188D39100660B62 = F415655E1188D39100660B62 /* PBXTextBookmark */;
+			F415655F1188D39100660B62 = F415655F1188D39100660B62 /* PBXTextBookmark */;
+			F41565731188D43800660B62 = F41565731188D43800660B62 /* PBXTextBookmark */;
+			F4156A8D1188F66900660B62 /* PBXTextBookmark */ = F4156A8D1188F66900660B62 /* PBXTextBookmark */;
+			F4156A8E1188F66900660B62 /* PBXTextBookmark */ = F4156A8E1188F66900660B62 /* PBXTextBookmark */;
+			F4156A911188F67000660B62 /* PBXTextBookmark */ = F4156A911188F67000660B62 /* PBXTextBookmark */;
+			F4156A921188F67000660B62 /* PBXTextBookmark */ = F4156A921188F67000660B62 /* PBXTextBookmark */;
+			F4156A931188F67000660B62 /* PBXTextBookmark */ = F4156A931188F67000660B62 /* PBXTextBookmark */;
+			F4156A941188F67000660B62 /* PBXTextBookmark */ = F4156A941188F67000660B62 /* PBXTextBookmark */;
+			F4156A951188F67000660B62 /* PBXTextBookmark */ = F4156A951188F67000660B62 /* PBXTextBookmark */;
+			F4156A961188F67000660B62 /* PBXTextBookmark */ = F4156A961188F67000660B62 /* PBXTextBookmark */;
+			F4156AB71188F9FC00660B62 /* PBXTextBookmark */ = F4156AB71188F9FC00660B62 /* PBXTextBookmark */;
+			F4156AC51188FB3F00660B62 /* PBXTextBookmark */ = F4156AC51188FB3F00660B62 /* PBXTextBookmark */;
+			F4156AC61188FB3F00660B62 /* PBXTextBookmark */ = F4156AC61188FB3F00660B62 /* PBXTextBookmark */;
+			F4156AC71188FB3F00660B62 /* PBXTextBookmark */ = F4156AC71188FB3F00660B62 /* PBXTextBookmark */;
+			F4156AC81188FB3F00660B62 /* PBXTextBookmark */ = F4156AC81188FB3F00660B62 /* PBXTextBookmark */;
+			F4156AE51188FE5F00660B62 /* PBXTextBookmark */ = F4156AE51188FE5F00660B62 /* PBXTextBookmark */;
+			F4156AFE11890BAD00660B62 /* XCBuildMessageTextBookmark */ = F4156AFE11890BAD00660B62 /* XCBuildMessageTextBookmark */;
+			F4156AFF11890BAD00660B62 /* PBXTextBookmark */ = F4156AFF11890BAD00660B62 /* PBXTextBookmark */;
+			F4156B0011890BAD00660B62 /* PBXTextBookmark */ = F4156B0011890BAD00660B62 /* PBXTextBookmark */;
+			F4156B1911890E7E00660B62 /* PBXTextBookmark */ = F4156B1911890E7E00660B62 /* PBXTextBookmark */;
+			F4156B1A11890E7E00660B62 /* PBXTextBookmark */ = F4156B1A11890E7E00660B62 /* PBXTextBookmark */;
+			F4156B351189170400660B62 /* PBXTextBookmark */ = F4156B351189170400660B62 /* PBXTextBookmark */;
+			F4156B361189170400660B62 /* PBXTextBookmark */ = F4156B361189170400660B62 /* PBXTextBookmark */;
+			F4156B371189170400660B62 /* PBXTextBookmark */ = F4156B371189170400660B62 /* PBXTextBookmark */;
+			F4156B381189170400660B62 /* PBXTextBookmark */ = F4156B381189170400660B62 /* PBXTextBookmark */;
+			F4156B391189170400660B62 /* PBXTextBookmark */ = F4156B391189170400660B62 /* PBXTextBookmark */;
+			F4156B3A1189170400660B62 /* PBXTextBookmark */ = F4156B3A1189170400660B62 /* PBXTextBookmark */;
+			F4156B3B1189170400660B62 /* PBXTextBookmark */ = F4156B3B1189170400660B62 /* PBXTextBookmark */;
+			F4156B3C1189170400660B62 /* PBXTextBookmark */ = F4156B3C1189170400660B62 /* PBXTextBookmark */;
+			F4156B3D1189170400660B62 /* PBXTextBookmark */ = F4156B3D1189170400660B62 /* PBXTextBookmark */;
+			F4156B3E1189170400660B62 /* PBXTextBookmark */ = F4156B3E1189170400660B62 /* PBXTextBookmark */;
+			F4156B41118917F000660B62 /* PBXTextBookmark */ = F4156B41118917F000660B62 /* PBXTextBookmark */;
+			F4156B42118917F000660B62 /* XCBuildMessageTextBookmark */ = F4156B42118917F000660B62 /* XCBuildMessageTextBookmark */;
+			F4156B43118917F000660B62 /* PBXTextBookmark */ = F4156B43118917F000660B62 /* PBXTextBookmark */;
+			F4156B44118917F000660B62 /* PBXTextBookmark */ = F4156B44118917F000660B62 /* PBXTextBookmark */;
+			F4156B4D1189183C00660B62 /* PBXTextBookmark */ = F4156B4D1189183C00660B62 /* PBXTextBookmark */;
+			F4156B4E1189183C00660B62 /* PBXTextBookmark */ = F4156B4E1189183C00660B62 /* PBXTextBookmark */;
+			F4156B4F1189183C00660B62 /* PBXTextBookmark */ = F4156B4F1189183C00660B62 /* PBXTextBookmark */;
+			F4156B501189183C00660B62 /* PBXTextBookmark */ = F4156B501189183C00660B62 /* PBXTextBookmark */;
+			F4156B511189183C00660B62 /* PBXTextBookmark */ = F4156B511189183C00660B62 /* PBXTextBookmark */;
+			F4156B5A118918F800660B62 /* PBXTextBookmark */ = F4156B5A118918F800660B62 /* PBXTextBookmark */;
+			F4156B5B118918F800660B62 /* PBXTextBookmark */ = F4156B5B118918F800660B62 /* PBXTextBookmark */;
+			F4156B5C118918F800660B62 /* PBXTextBookmark */ = F4156B5C118918F800660B62 /* PBXTextBookmark */;
+			F4156B5D118918F800660B62 /* PBXTextBookmark */ = F4156B5D118918F800660B62 /* PBXTextBookmark */;
+			F4156B5E11891D3100660B62 /* PBXTextBookmark */ = F4156B5E11891D3100660B62 /* PBXTextBookmark */;
 			F42836ED117525BB00885608 = F42836ED117525BB00885608 /* PBXTextBookmark */;
 			F42836EE117525BB00885608 = F42836EE117525BB00885608 /* PBXTextBookmark */;
 			F428370E1175313A00885608 = F428370E1175313A00885608 /* PBXTextBookmark */;
-			F42837101175313A00885608 = F42837101175313A00885608 /* PBXTextBookmark */;
 			F42837121175313A00885608 = F42837121175313A00885608 /* PBXTextBookmark */;
-			F44849591181346B0027B464 = F44849591181346B0027B464 /* PBXTextBookmark */;
-			F458A0FC1184B1F6003BD1D2 = F458A0FC1184B1F6003BD1D2 /* PBXTextBookmark */;
+			F4523A8E1186752F00C27556 = F4523A8E1186752F00C27556 /* PBXTextBookmark */;
 			F466430E117D189C00BFC470 = F466430E117D189C00BFC470 /* PBXTextBookmark */;
 			F4841DD61172CC2E0034AF4B = F4841DD61172CC2E0034AF4B /* PBXTextBookmark */;
 			F4841DD81172CC2E0034AF4B = F4841DD81172CC2E0034AF4B /* PBXTextBookmark */;
 			F4841EED1173A5350034AF4B = F4841EED1173A5350034AF4B /* PBXTextBookmark */;
 			F4841F6B1173CFAF0034AF4B = F4841F6B1173CFAF0034AF4B /* PBXTextBookmark */;
 			F4841F6C1173CFAF0034AF4B = F4841F6C1173CFAF0034AF4B /* PBXTextBookmark */;
-			F49A11CB1184D6DD005E3D0E = F49A11CB1184D6DD005E3D0E /* PBXTextBookmark */;
-			F49A11CC1184D6DD005E3D0E = F49A11CC1184D6DD005E3D0E /* PBXTextBookmark */;
 			F49A11CF1184D6DD005E3D0E = F49A11CF1184D6DD005E3D0E /* PBXTextBookmark */;
 			F49A11EA1184DE0D005E3D0E = F49A11EA1184DE0D005E3D0E /* PBXTextBookmark */;
 			F49A11EB1184DE0D005E3D0E = F49A11EB1184DE0D005E3D0E /* PBXBookmark */;
 			F49A11F61184DE0D005E3D0E = F49A11F61184DE0D005E3D0E /* PBXBookmark */;
 			F49A11F71184DE0D005E3D0E = F49A11F71184DE0D005E3D0E /* PBXTextBookmark */;
 			F49A11F81184DE0D005E3D0E = F49A11F81184DE0D005E3D0E /* PBXTextBookmark */;
-			F49A11F91184DE0D005E3D0E = F49A11F91184DE0D005E3D0E /* PBXTextBookmark */;
-			F49A12C81184E4F8005E3D0E = F49A12C81184E4F8005E3D0E /* PBXTextBookmark */;
-			F49A12E31184ED58005E3D0E = F49A12E31184ED58005E3D0E /* PBXTextBookmark */;
-			F49A12EB1184EE6A005E3D0E = F49A12EB1184EE6A005E3D0E /* PBXTextBookmark */;
-			F49A13141184FAE1005E3D0E /* PBXTextBookmark */ = F49A13141184FAE1005E3D0E /* PBXTextBookmark */;
-			F49A13151184FAE1005E3D0E /* PBXTextBookmark */ = F49A13151184FAE1005E3D0E /* PBXTextBookmark */;
-			F49A13161184FAE1005E3D0E /* PBXTextBookmark */ = F49A13161184FAE1005E3D0E /* PBXTextBookmark */;
-			F49A13171184FAE1005E3D0E /* PBXTextBookmark */ = F49A13171184FAE1005E3D0E /* PBXTextBookmark */;
-			F4B25D451183CA04009BA0D3 = F4B25D451183CA04009BA0D3 /* PBXTextBookmark */;
-			F4B25D6A1183CEED009BA0D3 = F4B25D6A1183CEED009BA0D3 /* PBXTextBookmark */;
-			F4B25D851184842A009BA0D3 = F4B25D851184842A009BA0D3 /* PBXTextBookmark */;
+			F49A132411853AF0005E3D0E = F49A132411853AF0005E3D0E /* PBXTextBookmark */;
+			F49A132811853AF0005E3D0E = F49A132811853AF0005E3D0E /* PBXTextBookmark */;
+			F49A138911854E49005E3D0E = F49A138911854E49005E3D0E /* PBXTextBookmark */;
+			F49A138B11854E49005E3D0E = F49A138B11854E49005E3D0E /* PBXTextBookmark */;
+			F49A138C11854E49005E3D0E = F49A138C11854E49005E3D0E /* PBXTextBookmark */;
+			F49A138D11854E49005E3D0E = F49A138D11854E49005E3D0E /* PBXTextBookmark */;
+			F4A2E09F1188C36B003E52C1 = F4A2E09F1188C36B003E52C1 /* PBXTextBookmark */;
+			F4B52D9E11867204009C2A96 = F4B52D9E11867204009C2A96 /* PBXTextBookmark */;
+			F4B52D9F11867204009C2A96 = F4B52D9F11867204009C2A96 /* PBXTextBookmark */;
 			F4F69B19117545FA00CBAF6E = F4F69B19117545FA00CBAF6E /* PBXTextBookmark */;
-			F4F69B1A117545FA00CBAF6E = F4F69B1A117545FA00CBAF6E /* PBXTextBookmark */;
 			F4F69B981176572E00CBAF6E = F4F69B981176572E00CBAF6E /* PBXTextBookmark */;
 			F4F69C52117693AE00CBAF6E = F4F69C52117693AE00CBAF6E /* PBXTextBookmark */;
-			F4F69C63117698EF00CBAF6E = F4F69C63117698EF00CBAF6E /* PBXTextBookmark */;
 		};
 		sourceControlManager = F425BACA1172404300D8A1F4 /* Source Control */;
 		userBuildSettings = {
 		path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h;
 		sourceTree = "<absolute>";
 	};
+	F40B98D01188D08F00ED53DB /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F49A118C1184D07D005E3D0E /* InfoViewController.h */;
+		name = "InfoViewController.h: 16";
+		rLen = 0;
+		rLoc = 313;
+		rType = 0;
+		vrLen = 320;
+		vrLoc = 0;
+	};
 	F40FCA41117EBBC4002A9011 /* AboutViewController.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {995, 448}}";
+			sepNavIntBoundsRect = "{{0, 0}, {915, 578}}";
 			sepNavSelRange = "{233, 0}";
 			sepNavVisRange = "{0, 233}";
 		};
 	F41158691178CE190082BD37 /* SineMaker.m */ = {
 		uiCtxt = {
 			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{316, 139}\";\n            s = 0;\n        },\n                {\n            r = \"{682, 365}\";\n            s = 0;\n        },\n                {\n            r = \"{1300, 1041}\";\n            s = 0;\n        },\n                {\n            r = \"{2372, 364}\";\n            s = 0;\n        },\n                {\n            r = \"{5374, 36}\";\n            s = 0;\n        },\n                {\n            r = \"{5450, 25}\";\n            s = 0;\n        },\n                {\n            r = \"{5514, 28}\";\n            s = 0;\n        },\n                {\n            r = \"{5581, 88}\";\n            s = 0;\n        },\n                {\n            r = \"{5706, 23}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 5739}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {1128, 1729}}";
-			sepNavSelRange = "{3631, 0}";
-			sepNavVisRange = "{833, 1231}";
+			sepNavIntBoundsRect = "{{0, 0}, {978, 1625}}";
+			sepNavSelRange = "{1183, 0}";
+			sepNavVisRange = "{711, 1637}";
 		};
 	};
+	F415655E1188D39100660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */;
+		name = "SampleAudioUnit.h: 73";
+		rLen = 0;
+		rLoc = 1707;
+		rType = 0;
+		vrLen = 1307;
+		vrLoc = 0;
+	};
+	F415655F1188D39100660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 335";
+		rLen = 0;
+		rLoc = 158;
+		rType = 0;
+		vrLen = 2671;
+		vrLoc = 7840;
+	};
+	F41565731188D43800660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 9";
+		rLen = 0;
+		rLoc = 258;
+		rType = 0;
+		vrLen = 4603;
+		vrLoc = 0;
+	};
+	F4156A8D1188F66900660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		rLen = 1;
+		rLoc = 35;
+		rType = 1;
+	};
+	F4156A8E1188F66900660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 36";
+		rLen = 87;
+		rLoc = 977;
+		rType = 0;
+		vrLen = 2172;
+		vrLoc = 645;
+	};
+	F4156A911188F67000660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 1D3623240D0F684500981E51 /* WiiNunchuckAppDelegate.h */;
+		name = "WiiNunchuckAppDelegate.h: 8";
+		rLen = 0;
+		rLoc = 148;
+		rType = 0;
+		vrLen = 946;
+		vrLoc = 0;
+	};
+	F4156A921188F67000660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */;
+		name = "SampleAudioUnit.h: 73";
+		rLen = 0;
+		rLoc = 1707;
+		rType = 0;
+		vrLen = 1307;
+		vrLoc = 0;
+	};
+	F4156A931188F67000660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 9";
+		rLen = 0;
+		rLoc = 258;
+		rType = 0;
+		vrLen = 4603;
+		vrLoc = 0;
+	};
+	F4156A941188F67000660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACC1172406900D8A1F4 /* MainViewController.h */;
+		name = "MainViewController.h: 27";
+		rLen = 0;
+		rLoc = 717;
+		rType = 0;
+		vrLen = 1073;
+		vrLoc = 492;
+	};
+	F4156A951188F67000660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 36";
+		rLen = 87;
+		rLoc = 977;
+		rType = 0;
+		vrLen = 2817;
+		vrLoc = 0;
+	};
+	F4156A961188F67000660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 36";
+		rLen = 167;
+		rLoc = 977;
+		rType = 0;
+		vrLen = 2869;
+		vrLoc = 44;
+	};
+	F4156AB71188F9FC00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 36";
+		rLen = 87;
+		rLoc = 977;
+		rType = 0;
+		vrLen = 519;
+		vrLoc = 645;
+	};
+	F4156AC51188FB3F00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 18";
+		rLen = 0;
+		rLoc = 399;
+		rType = 0;
+		vrLen = 5676;
+		vrLoc = 701;
+	};
+	F4156AC61188FB3F00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */;
+		name = "SampleAudioUnit.h: 24";
+		rLen = 0;
+		rLoc = 690;
+		rType = 0;
+		vrLen = 1308;
+		vrLoc = 0;
+	};
+	F4156AC71188FB3F00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 10";
+		rLen = 0;
+		rLoc = 296;
+		rType = 0;
+		vrLen = 4621;
+		vrLoc = 0;
+	};
+	F4156AC81188FB3F00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 8";
+		rLen = 0;
+		rLoc = 225;
+		rType = 0;
+		vrLen = 4605;
+		vrLoc = 0;
+	};
+	F4156AE51188FE5F00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 36";
+		rLen = 87;
+		rLoc = 977;
+		rType = 0;
+		vrLen = 2172;
+		vrLoc = 645;
+	};
+	F4156AFE11890BAD00660B62 /* XCBuildMessageTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Expected `;' before 'AudioSessionSetProperty'";
+		fRef = F425BBC6117251CC00D8A1F4 /* MUEAudioIO.cpp */;
+		fallbackIsa = XCBuildMessageTextBookmark;
+		rLen = 1;
+		rLoc = 155;
+		rType = 1;
+	};
+	F4156AFF11890BAD00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBC6117251CC00D8A1F4 /* MUEAudioIO.cpp */;
+		name = "MUEAudioIO.cpp: 156";
+		rLen = 0;
+		rLoc = 5095;
+		rType = 0;
+		vrLen = 1038;
+		vrLoc = 4669;
+	};
+	F4156B0011890BAD00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 36";
+		rLen = 87;
+		rLoc = 977;
+		rType = 0;
+		vrLen = 2172;
+		vrLoc = 645;
+	};
+	F4156B1911890E7E00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBC6117251CC00D8A1F4 /* MUEAudioIO.cpp */;
+		name = "MUEAudioIO.cpp: 156";
+		rLen = 0;
+		rLoc = 5095;
+		rType = 0;
+		vrLen = 519;
+		vrLoc = 5415;
+	};
+	F4156B1A11890E7E00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 36";
+		rLen = 87;
+		rLoc = 977;
+		rType = 0;
+		vrLen = 2172;
+		vrLoc = 645;
+	};
+	F4156B351189170400660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBC7117251CC00D8A1F4 /* MUEAudioIO.h */;
+		name = "MUEAudioIO.h: 53";
+		rLen = 24;
+		rLoc = 1719;
+		rType = 0;
+		vrLen = 1546;
+		vrLoc = 1335;
+	};
+	F4156B361189170400660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBC8117251CC00D8A1F4 /* MUEAudioUnit.h */;
+		name = "MUEAudioUnit.h: 18";
+		rLen = 0;
+		rLoc = 273;
+		rType = 0;
+		vrLen = 636;
+		vrLoc = 0;
+	};
+	F4156B371189170400660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBC6117251CC00D8A1F4 /* MUEAudioIO.cpp */;
+		name = "MUEAudioIO.cpp: 155";
+		rLen = 0;
+		rLoc = 5046;
+		rType = 0;
+		vrLen = 3806;
+		vrLoc = 0;
+	};
+	F4156B381189170400660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
+		name = "WiiNunchuckAppDelegate.mm: 33";
+		rLen = 0;
+		rLoc = 919;
+		rType = 0;
+		vrLen = 1492;
+		vrLoc = 48;
+	};
+	F4156B391189170400660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACC1172406900D8A1F4 /* MainViewController.h */;
+		name = "MainViewController.h: 27";
+		rLen = 0;
+		rLoc = 717;
+		rType = 0;
+		vrLen = 1147;
+		vrLoc = 0;
+	};
+	F4156B3A1189170400660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F40FCA41117EBBC4002A9011 /* AboutViewController.h */;
+		name = "AboutViewController.h: 17";
+		rLen = 0;
+		rLoc = 233;
+		rType = 0;
+		vrLen = 233;
+		vrLoc = 0;
+	};
+	F4156B3B1189170400660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 18";
+		rLen = 0;
+		rLoc = 398;
+		rType = 0;
+		vrLen = 3629;
+		vrLoc = 0;
+	};
+	F4156B3C1189170400660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
+		name = "SampleAudioUnit.mm: 13";
+		rLen = 0;
+		rLoc = 296;
+		rType = 0;
+		vrLen = 4839;
+		vrLoc = 54;
+	};
+	F4156B3D1189170400660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */;
+		name = "SampleAudioUnit.h: 11";
+		rLen = 0;
+		rLoc = 341;
+		rType = 0;
+		vrLen = 1365;
+		vrLoc = 0;
+	};
+	F4156B3E1189170400660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */;
+		name = "SampleAudioUnit.h: 11";
+		rLen = 0;
+		rLoc = 341;
+		rType = 0;
+		vrLen = 1365;
+		vrLoc = 0;
+	};
+	F4156B41118917F000660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBC6117251CC00D8A1F4 /* MUEAudioIO.cpp */;
+		name = "MUEAudioIO.cpp: 156";
+		rLen = 0;
+		rLoc = 5095;
+		rType = 0;
+		vrLen = 519;
+		vrLoc = 5415;
+	};
+	F4156B42118917F000660B62 /* XCBuildMessageTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "'kickURLRef' was not declared in this scope";
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		fallbackIsa = XCBuildMessageTextBookmark;
+		rLen = 1;
+		rLoc = 54;
+		rType = 1;
+	};
+	F4156B43118917F000660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 54";
+		rLen = 0;
+		rLoc = 1473;
+		rType = 0;
+		vrLen = 1032;
+		vrLoc = 1193;
+	};
+	F4156B44118917F000660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 36";
+		rLen = 87;
+		rLoc = 977;
+		rType = 0;
+		vrLen = 390;
+		vrLoc = 624;
+	};
+	F4156B4D1189183C00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */;
+		name = "SampleAudioUnit.h: 11";
+		rLen = 0;
+		rLoc = 341;
+		rType = 0;
+		vrLen = 948;
+		vrLoc = 768;
+	};
+	F4156B4E1189183C00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BAD01172407600D8A1F4 /* SettingsViewController.mm */;
+		name = "SettingsViewController.mm: 58";
+		rLen = 0;
+		rLoc = 1429;
+		rType = 0;
+		vrLen = 2579;
+		vrLoc = 0;
+	};
+	F4156B4F1189183C00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 76";
+		rLen = 0;
+		rLoc = 2823;
+		rType = 0;
+		vrLen = 5325;
+		vrLoc = 370;
+	};
+	F4156B501189183C00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACC1172406900D8A1F4 /* MainViewController.h */;
+		name = "MainViewController.h: 88";
+		rLen = 0;
+		rLoc = 2648;
+		rType = 0;
+		vrLen = 2120;
+		vrLoc = 1243;
+	};
+	F4156B511189183C00660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACC1172406900D8A1F4 /* MainViewController.h */;
+		name = "MainViewController.h: 48";
+		rLen = 0;
+		rLoc = 1171;
+		rType = 0;
+		vrLen = 1926;
+		vrLoc = 734;
+	};
+	F4156B5A118918F800660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 168";
+		rLen = 0;
+		rLoc = 4988;
+		rType = 0;
+		vrLen = 4129;
+		vrLoc = 0;
+	};
+	F4156B5B118918F800660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F425BACC1172406900D8A1F4 /* MainViewController.h */;
+		name = "MainViewController.h: 96";
+		rLen = 0;
+		rLoc = 2934;
+		rType = 0;
+		vrLen = 1157;
+		vrLoc = 85;
+	};
+	F4156B5C118918F800660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F41158691178CE190082BD37 /* SineMaker.m */;
+		name = "SineMaker.m: 199";
+		rLen = 0;
+		rLoc = 5731;
+		rType = 0;
+		vrLen = 3040;
+		vrLoc = 1213;
+	};
+	F4156B5D118918F800660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F41158691178CE190082BD37 /* SineMaker.m */;
+		name = "SineMaker.m: 199";
+		rLen = 0;
+		rLoc = 5731;
+		rType = 0;
+		vrLen = 3040;
+		vrLoc = 1213;
+	};
+	F4156B5E11891D3100660B62 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = F41158691178CE190082BD37 /* SineMaker.m */;
+		name = "SineMaker.m: 118";
+		rLen = 0;
+		rLoc = 3088;
+		rType = 0;
+		vrLen = 3040;
+		vrLoc = 1213;
+	};
 	F425BAC01172402400D8A1F4 /* WiiNunchuck */ = {
 		isa = PBXExecutable;
 		activeArgIndices = (
 	};
 	F425BACC1172406900D8A1F4 /* MainViewController.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {1128, 1417}}";
-			sepNavSelRange = "{1453, 0}";
-			sepNavVisRange = "{2044, 1282}";
+			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{1508, 202}\";\n            s = 0;\n        },\n                {\n            r = \"{2318, 329}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 3408}\";\n    s = 0;\n}";
+			sepNavIntBoundsRect = "{{0, 0}, {915, 1287}}";
+			sepNavSelRange = "{2405, 0}";
+			sepNavVisRange = "{85, 1157}";
 			sepNavWindowFrame = "{{38, 28}, {1357, 824}}";
 		};
 	};
 	F425BACD1172406900D8A1F4 /* MainViewController.mm */ = {
 		uiCtxt = {
-			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{1158, 78}\";\n            s = 0;\n        },\n                {\n            r = \"{1261, 1649}\";\n            s = 0;\n        },\n                {\n            r = \"{2956, 746}\";\n            s = 0;\n        },\n                {\n            r = \"{3727, 457}\";\n            s = 0;\n        },\n                {\n            r = \"{4217, 400}\";\n            s = 0;\n        },\n                {\n            r = \"{4688, 386}\";\n            s = 0;\n        },\n                {\n            r = \"{5099, 248}\";\n            s = 0;\n        },\n                {\n            r = \"{5372, 250}\";\n            s = 0;\n        },\n                {\n            r = \"{5656, 47}\";\n            s = 0;\n        },\n                {\n            r = \"{5727, 655}\";\n            s = 0;\n        },\n                {\n            r = \"{6422, 713}\";\n            s = 0;\n        },\n                {\n            r = \"{7258, 1047}\";\n            s = 0;\n        },\n                {\n            r = \"{8309, 221}\";\n            s = 0;\n        },\n                {\n            r = \"{8533, 112}\";\n            s = 0;\n        },\n                {\n            r = \"{8648, 292}\";\n            s = 0;\n        },\n                {\n            r = \"{8976, 155}\";\n            s = 0;\n        },\n                {\n            r = \"{9157, 83}\";\n            s = 0;\n        },\n                {\n            r = \"{9260, 256}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 9525}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {1128, 1222}}";
-			sepNavSelRange = "{1476, 0}";
-			sepNavVisRange = "{28, 771}";
+			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{701, 134}\";\n            s = 0;\n        },\n                {\n            r = \"{1065, 78}\";\n            s = 0;\n        },\n                {\n            c =             (\n                                {\n                    r = \"{1429, 609}\";\n                    s = 0;\n                }\n            );\n            r = \"{1168, 1655}\";\n            s = 0;\n        },\n                {\n            r = \"{2869, 746}\";\n            s = 0;\n        },\n                {\n            r = \"{3640, 457}\";\n            s = 0;\n        },\n                {\n            r = \"{4130, 400}\";\n            s = 0;\n        },\n                {\n            r = \"{4601, 386}\";\n            s = 0;\n        },\n                {\n            r = \"{5064, 250}\";\n            s = 0;\n        },\n                {\n            r = \"{5339, 252}\";\n            s = 0;\n        },\n                {\n            r = \"{5625, 47}\";\n            s = 0;\n        },\n                {\n            r = \"{5696, 655}\";\n            s = 0;\n        },\n                {\n            r = \"{6391, 713}\";\n            s = 0;\n        },\n                {\n            r = \"{7264, 1047}\";\n            s = 0;\n        },\n                {\n            r = \"{8364, 155}\";\n            s = 0;\n        },\n                {\n            r = \"{8546, 83}\";\n            s = 0;\n        },\n                {\n            r = \"{8650, 281}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 8940}\";\n    s = 0;\n}";
+			sepNavIntBoundsRect = "{{0, 0}, {915, 1157}}";
+			sepNavSelRange = "{1139, 0}";
+			sepNavVisRange = "{0, 1064}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 	F425BACF1172407600D8A1F4 /* SettingsViewController.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {1128, 464}}";
+			sepNavIntBoundsRect = "{{0, 0}, {970, 560}}";
 			sepNavSelRange = "{669, 39}";
 			sepNavVisRange = "{0, 715}";
 		};
 	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 = \"{580, 439}\";\n            s = 0;\n        },\n                {\n            r = \"{1062, 367}\";\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}, {1128, 559}}";
+			sepNavIntBoundsRect = "{{0, 0}, {915, 578}}";
 			sepNavSelRange = "{564, 0}";
-			sepNavVisRange = "{0, 644}";
+			sepNavVisRange = "{0, 672}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 	};
 	F425BBC6117251CC00D8A1F4 /* MUEAudioIO.cpp */ = {
 		uiCtxt = {
-			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{1, 110}\";\n            s = 0;\n        },\n                {\n            r = \"{356, 250}\";\n            s = 0;\n        },\n                {\n            r = \"{2433, 455}\";\n            s = 0;\n        },\n                {\n            r = \"{3164, 407}\";\n            s = 0;\n        },\n                {\n            r = \"{3681, 10}\";\n            s = 0;\n        },\n                {\n            r = \"{3750, 54}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 13523}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {988, 4563}}";
-			sepNavSelRange = "{6240, 0}";
-			sepNavVisRange = "{5873, 803}";
+			sepNavIntBoundsRect = "{{0, 0}, {1237, 5044}}";
+			sepNavSelRange = "{5095, 0}";
+			sepNavVisRange = "{5415, 519}";
 		};
 	};
 	F425BBC7117251CC00D8A1F4 /* MUEAudioIO.h */ = {
 		uiCtxt = {
 			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{1, 216}\";\n            s = 0;\n        },\n                {\n            r = \"{220, 906}\";\n            s = 0;\n        },\n                {\n            r = \"{2049, 198}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 3468}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {1013, 1040}}";
+			sepNavIntBoundsRect = "{{0, 0}, {915, 1014}}";
 			sepNavSelRange = "{599, 24}";
-			sepNavVisRange = "{148, 1128}";
+			sepNavVisRange = "{215, 1349}";
 		};
 	};
 	F425BBC8117251CC00D8A1F4 /* MUEAudioUnit.h */ = {
 		uiCtxt = {
 			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{1, 149}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 636}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {1013, 562}}";
+			sepNavIntBoundsRect = "{{0, 0}, {915, 578}}";
 			sepNavSelRange = "{125, 0}";
 			sepNavVisRange = "{0, 488}";
 		};
 	};
 	F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */ = {
 		uiCtxt = {
-			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, 409}\";\n            s = 0;\n        },\n                {\n            r = \"{5082, 1292}\";\n            s = 0;\n        },\n                {\n            r = \"{6423, 1436}\";\n            s = 0;\n        },\n                {\n            r = \"{7919, 184}\";\n            s = 0;\n        },\n                {\n            r = \"{8152, 157}\";\n            s = 0;\n        },\n                {\n            c =             (\n                                {\n                    r = \"{8767, 688}\";\n                    s = 0;\n                },\n                                {\n                    r = \"{9634, 158}\";\n                    s = 0;\n                }\n            );\n            r = \"{8401, 2046}\";\n            s = 0;\n        },\n                {\n            r = \"{10487, 272}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 10761}\";\n    s = 0;\n}";
-			sepNavIntBoundsRect = "{{0, 0}, {1128, 806}}";
-			sepNavSelRange = "{0, 1232}";
-			sepNavVisRange = "{0, 690}";
+			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{335, 1652}\";\n            s = 0;\n        },\n                {\n            r = \"{2027, 318}\";\n            s = 0;\n        },\n                {\n            r = \"{2396, 230}\";\n            s = 0;\n        },\n                {\n            r = \"{2697, 280}\";\n            s = 0;\n        },\n                {\n            r = \"{3037, 61}\";\n            s = 0;\n        },\n                {\n            r = \"{3124, 25}\";\n            s = 0;\n        },\n                {\n            r = \"{3223, 257}\";\n            s = 0;\n        },\n                {\n            r = \"{3557, 161}\";\n            s = 0;\n        },\n                {\n            r = \"{3780, 664}\";\n            s = 0;\n        },\n                {\n            r = \"{4497, 138}\";\n            s = 0;\n        },\n                {\n            r = \"{4684, 206}\";\n            s = 0;\n        },\n                {\n            r = \"{4894, 409}\";\n            s = 0;\n        },\n                {\n            r = \"{7339, 1469}\";\n            s = 0;\n        },\n                {\n            r = \"{8868, 184}\";\n            s = 0;\n        },\n                {\n            r = \"{9101, 157}\";\n            s = 0;\n        },\n                {\n            c =             (\n                                {\n                    r = \"{9905, 150}\";\n                    s = 0;\n                }\n            );\n            r = \"{9350, 1359}\";\n            s = 0;\n        },\n                {\n            r = \"{10749, 272}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 11023}\";\n    s = 0;\n}";
+			sepNavIntBoundsRect = "{{0, 0}, {915, 1807}}";
+			sepNavSelRange = "{296, 0}";
+			sepNavVisRange = "{54, 858}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 	F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */ = {
 		uiCtxt = {
-			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}, {1128, 923}}";
+			sepNavFolds = "{\n    c =     (\n                {\n            r = \"{343, 211}\";\n            s = 0;\n        },\n                {\n            r = \"{1837, 266}\";\n            s = 0;\n        }\n    );\n    r = \"{0, 2143}\";\n    s = 0;\n}";
+			sepNavIntBoundsRect = "{{0, 0}, {915, 988}}";
 			sepNavSelRange = "{341, 0}";
-			sepNavVisRange = "{0, 863}";
+			sepNavVisRange = "{558, 948}";
 			sepNavWindowFrame = "{{15, 49}, {1357, 824}}";
 		};
 	};
 		path = /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/CoreAudioTypes.h;
 		sourceTree = "<absolute>";
 	};
-	F42837101175313A00885608 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BBC8117251CC00D8A1F4 /* MUEAudioUnit.h */;
-		name = "MUEAudioUnit.h: 18";
-		rLen = 0;
-		rLoc = 273;
-		rType = 0;
-		vrLen = 636;
-		vrLoc = 0;
-	};
 	F42837121175313A00885608 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = F425BBC5117251CC00D8A1F4 /* CAStreamBasicDescription.h */;
 		vrLen = 1679;
 		vrLoc = 7293;
 	};
-	F44849591181346B0027B464 /* PBXTextBookmark */ = {
+	F4523A8E1186752F00C27556 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = F40FCA41117EBBC4002A9011 /* AboutViewController.h */;
-		name = "AboutViewController.h: 17";
+		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
+		name = "MainViewController.mm: 33";
 		rLen = 0;
-		rLoc = 233;
+		rLoc = 891;
 		rType = 0;
-		vrLen = 233;
+		vrLen = 2861;
 		vrLoc = 0;
 	};
 	F458A0EB1184B15A003BD1D2 /* InstructionsViewController.m:12 */ = {
 		originalNumberOfMultipleMatches = 2;
 		state = 1;
 	};
-	F458A0FC1184B1F6003BD1D2 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BACF1172407600D8A1F4 /* SettingsViewController.h */;
-		name = "SettingsViewController.h: 29";
-		rLen = 39;
-		rLoc = 669;
-		rType = 0;
-		vrLen = 715;
-		vrLoc = 0;
-	};
 	F458A10D1184B278003BD1D2 /* -[InstructionsViewController description] */ = {
 		isa = PBXSymbolicBreakpoint;
 		actions = (
 		hitCount = 0;
 		ignoreCount = 0;
 		location = WiiNunchuck;
-		modificationTime = 293914591.567068;
+		modificationTime = 294023641.164898;
 		originalNumberOfMultipleMatches = 0;
 		parentBreakpoint = F458A0EB1184B15A003BD1D2 /* InstructionsViewController.m:12 */;
 		state = 2;
 		hitCount = 0;
 		ignoreCount = 0;
 		location = WiiNunchuck;
-		modificationTime = 293914591.567098;
+		modificationTime = 294023641.16492;
 		originalNumberOfMultipleMatches = 0;
 		parentBreakpoint = F458A0EB1184B15A003BD1D2 /* InstructionsViewController.m:12 */;
 		state = 2;
 		ignoreCount = 0;
 		lineNumber = 21;
 		location = WiiNunchuck;
-		modificationTime = 293914591.961156;
+		modificationTime = 294023641.164394;
 		originalNumberOfMultipleMatches = 1;
 		state = 1;
 	};
 		ignoreCount = 0;
 		lineNumber = 22;
 		location = WiiNunchuck;
-		modificationTime = 293914592.017609;
+		modificationTime = 294023641.164426;
 		originalNumberOfMultipleMatches = 1;
 		state = 1;
 	};
 		ignoreCount = 0;
 		lineNumber = 23;
 		location = WiiNunchuck;
-		modificationTime = 293914592.05898;
+		modificationTime = 294023641.164439;
 		originalNumberOfMultipleMatches = 1;
 		state = 1;
 	};
 		ignoreCount = 0;
 		lineNumber = 18;
 		location = WiiNunchuck;
-		modificationTime = 293914592.104607;
+		modificationTime = 294023641.164465;
 		originalNumberOfMultipleMatches = 1;
 		state = 1;
 	};
 	};
 	F49A118C1184D07D005E3D0E /* InfoViewController.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {988, 251}}";
-			sepNavSelRange = "{315, 0}";
+			sepNavIntBoundsRect = "{{0, 0}, {867, 533}}";
+			sepNavSelRange = "{313, 0}";
 			sepNavVisRange = "{0, 320}";
 		};
 	};
 			sepNavVisRange = "{0, 629}";
 		};
 	};
-	F49A11CB1184D6DD005E3D0E /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 1D3623240D0F684500981E51 /* WiiNunchuckAppDelegate.h */;
-		name = "WiiNunchuckAppDelegate.h: 14";
-		rLen = 0;
-		rLoc = 301;
-		rType = 0;
-		vrLen = 898;
-		vrLoc = 48;
-	};
-	F49A11CC1184D6DD005E3D0E /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
-		name = "WiiNunchuckAppDelegate.mm: 20";
-		rLen = 0;
-		rLoc = 426;
-		rType = 0;
-		vrLen = 996;
-		vrLoc = 0;
-	};
 	F49A11CF1184D6DD005E3D0E /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = F49A118D1184D07D005E3D0E /* InfoViewController.m */;
 		vrLen = 1231;
 		vrLoc = 2738;
 	};
-	F49A11F91184DE0D005E3D0E /* PBXTextBookmark */ = {
+	F49A132411853AF0005E3D0E /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = F49A118C1184D07D005E3D0E /* InfoViewController.h */;
-		name = "InfoViewController.h: 16";
+		fRef = F40FCA41117EBBC4002A9011 /* AboutViewController.h */;
+		name = "AboutViewController.h: 17";
 		rLen = 0;
-		rLoc = 313;
+		rLoc = 233;
 		rType = 0;
-		vrLen = 320;
+		vrLen = 233;
 		vrLoc = 0;
 	};
-	F49A12C81184E4F8005E3D0E /* PBXTextBookmark */ = {
+	F49A132811853AF0005E3D0E /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = F425BACC1172406900D8A1F4 /* MainViewController.h */;
-		name = "MainViewController.h: 58";
-		rLen = 0;
-		rLoc = 1453;
+		fRef = F425BACF1172407600D8A1F4 /* SettingsViewController.h */;
+		name = "SettingsViewController.h: 29";
+		rLen = 39;
+		rLoc = 669;
 		rType = 0;
-		vrLen = 1282;
-		vrLoc = 2044;
-	};
-	F49A12E31184ED58005E3D0E /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		comments = "'kValueThreshold' was not declared in this scope";
-		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
-		rLen = 1;
-		rLoc = 221;
-		rType = 1;
-	};
-	F49A12EB1184EE6A005E3D0E /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
-		name = "MainViewController.mm: 246";
-		rLen = 0;
-		rLoc = 6382;
-		rType = 0;
-		vrLen = 796;
-		vrLoc = 3;
-	};
-	F49A13141184FAE1005E3D0E /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BACD1172406900D8A1F4 /* MainViewController.mm */;
-		name = "MainViewController.mm: 246";
-		rLen = 0;
-		rLoc = 6382;
-		rType = 0;
-		vrLen = 771;
-		vrLoc = 28;
-	};
-	F49A13151184FAE1005E3D0E /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BACC1172406900D8A1F4 /* MainViewController.h */;
-		name = "MainViewController.h: 58";
-		rLen = 0;
-		rLoc = 1453;
-		rType = 0;
-		vrLen = 1282;
-		vrLoc = 2044;
-	};
-	F49A13161184FAE1005E3D0E /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */;
-		name = "SampleAudioUnit.h: 11";
-		rLen = 0;
-		rLoc = 341;
-		rType = 0;
-		vrLen = 976;
+		vrLen = 715;
 		vrLoc = 0;
 	};
-	F49A13171184FAE1005E3D0E /* PBXTextBookmark */ = {
+	F49A138911854E49005E3D0E /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
-		name = "SampleAudioUnit.mm: 1";
-		rLen = 10761;
-		rLoc = 0;
+		fRef = F425BBC8117251CC00D8A1F4 /* MUEAudioUnit.h */;
+		name = "MUEAudioUnit.h: 18";
+		rLen = 0;
+		rLoc = 273;
 		rType = 0;
-		vrLen = 3483;
+		vrLen = 636;
 		vrLoc = 0;
 	};
-	F4B25D451183CA04009BA0D3 /* PBXTextBookmark */ = {
+	F49A138B11854E49005E3D0E /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = F425BBCD117251D500D8A1F4 /* SampleAudioUnit.mm */;
-		name = "SampleAudioUnit.mm: 433";
+		fRef = 1D3623250D0F684500981E51 /* WiiNunchuckAppDelegate.mm */;
+		name = "WiiNunchuckAppDelegate.mm: 33";
 		rLen = 0;
-		rLoc = 10169;
+		rLoc = 919;
 		rType = 0;
-		vrLen = 4754;
-		vrLoc = 4400;
+		vrLen = 1489;
+		vrLoc = 51;
 	};
-	F4B25D6A1183CEED009BA0D3 /* PBXTextBookmark */ = {
+	F49A138C11854E49005E3D0E /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = F425BBCE117251D500D8A1F4 /* SampleAudioUnit.h */;
-		name = "SampleAudioUnit.h: 11";
+		fRef = 1D3623240D0F684500981E51 /* WiiNunchuckAppDelegate.h */;
+		name = "WiiNunchuckAppDelegate.h: 8";
 		rLen = 0;