From be005faaed169550e9d35acad93fa651f1e6a169 Mon Sep 17 00:00:00 2001 From: Steve Palm Date: Sat, 27 Aug 2011 17:24:29 -0500 Subject: [PATCH 01/10] Updated for Lion - SoundBankFSSpec to SoundBankURL - 10.5 base target. This change was required for Lion, works on Snow Leopard, can not verify systems before that. Changed base target to 10.5 as I can not compile f or 10.4 on my system. --- AudioSystem.m | 10 +- SimpleSynth.xcodeproj/n9yty.mode1v3 | 1413 +++++++++++++++++++++++++ SimpleSynth.xcodeproj/n9yty.pbxuser | 604 +++++++++++ SimpleSynth.xcodeproj/project.pbxproj | 14 +- 4 files changed, 2035 insertions(+), 6 deletions(-) create mode 100644 SimpleSynth.xcodeproj/n9yty.mode1v3 create mode 100644 SimpleSynth.xcodeproj/n9yty.pbxuser diff --git a/AudioSystem.m b/AudioSystem.m index 29aba6a..ee188b0 100644 --- a/AudioSystem.m +++ b/AudioSystem.m @@ -77,21 +77,21 @@ - (void)setUpAudio; // This takes the file and attempts to load it into the synth unit - (BOOL)openFile:(NSString*)filename { - FSSpec fsSpec; AudioUnit synthUnit; OSStatus error; int i; - - if (![filename makeFSSpec:&fsSpec]) return NO; + NSURL *fileURL; + + fileURL = [NSURL fileURLWithPath:filename]; AUGraphStop(graph); AUGraphGetNodeInfo (graph, synthNode, NULL, NULL, NULL, &synthUnit); error = AudioUnitSetProperty ( synthUnit, - kMusicDeviceProperty_SoundBankFSSpec, kAudioUnitScope_Global, + kMusicDeviceProperty_SoundBankURL, kAudioUnitScope_Global, 0, - &fsSpec, sizeof (fsSpec) + &fileURL, sizeof(fileURL) ); AUGraphStart(graph); diff --git a/SimpleSynth.xcodeproj/n9yty.mode1v3 b/SimpleSynth.xcodeproj/n9yty.mode1v3 new file mode 100644 index 0000000..f96e21b --- /dev/null +++ b/SimpleSynth.xcodeproj/n9yty.mode1v3 @@ -0,0 +1,1413 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + A6C4BC8E140997B900626A9D + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + C1FDC6B90A2DE24200C94DEA + 1C37FBAC04509CD000000102 + A6C4BC89140997B900626A9D + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 12 + 11 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 919}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 937}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 3 49 1677 978 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + AudioSystem.m + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + AudioSystem.m + _historyCapacity + 10 + bookmark + A6C4BD1D1409A5A100626A9D + history + + A6C4BCD414099A9A00626A9D + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {1469, 751}} + RubberWindowFrame + 3 49 1677 978 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 751pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 756}, {1469, 181}} + RubberWindowFrame + 3 49 1677 978 0 0 1680 1028 + + Module + XCDetailModule + Proportion + 181pt + + + Proportion + 1469pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + A6C4BC8C140997B900626A9D + 1CE0B1FE06471DED0097A5F4 + A6C4BC8D140997B900626A9D + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 336176545.79989302 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + A6C4BCAA1409993100626A9D + A6C4BCAB1409993100626A9D + 1C530D57069F1CE1000CFCEE + A6C4BC7E1409960900626A9D + 1CD10A99069EF8BA00B06720 + 1C78EAAD065D492600B07095 + /Users/n9yty/Projects/simplesynth/SimpleSynth.xcodeproj + + WindowString + 3 49 1677 978 0 0 1680 1028 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + AudioSystem.m + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {500, 218}} + RubberWindowFrame + 895 464 500 500 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1010 + + GeometryConfiguration + + Frame + {{0, 223}, {500, 236}} + RubberWindowFrame + 895 464 500 500 0 0 1680 1028 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 459pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + A6C4BC7E1409960900626A9D + A6C4BC7F1409960900626A9D + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 895 464 500 500 0 0 1680 1028 + WindowToolGUID + A6C4BC7E1409960900626A9D + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debugger + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {473, 187}} + {{473, 0}, {565, 187}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {1038, 187}} + {{0, 187}, {1038, 199}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {1038, 386}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 335 + + Frame + {{473, 0}, {565, 187}} + RubberWindowFrame + 24 578 1038 427 0 0 1680 1028 + + RubberWindowFrame + 24 578 1038 427 0 0 1680 1028 + + Module + PBXDebugSessionModule + Proportion + 386pt + + + Proportion + 386pt + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + + TableOfContents + + 1CD10A99069EF8BA00B06720 + A6C4BC8F140997B900626A9D + 1C162984064C10D400B95A72 + A6C4BC90140997B900626A9D + A6C4BC91140997B900626A9D + A6C4BC92140997B900626A9D + A6C4BC93140997B900626A9D + A6C4BC94140997B900626A9D + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 24 578 1038 427 0 0 1680 1028 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.find + IsVertical + + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {781, 212}} + RubberWindowFrame + 24 535 781 470 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 212pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{0, 217}, {781, 212}} + RubberWindowFrame + 24 535 781 470 0 0 1680 1028 + + Module + PBXProjectFindModule + Proportion + 212pt + + + Proportion + 429pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + + TableOfContents + + 1C530D57069F1CE1000CFCEE + A6C4BC801409964B00626A9D + A6C4BC811409964B00626A9D + 1CDD528C0622207200134675 + 1CD0528E0623707200166675 + + WindowString + 24 535 781 470 0 0 1680 1028 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + + + + Identifier + MENUSEPARATOR + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debuggerConsole + IsVertical + + Layout + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {1111, 436}} + RubberWindowFrame + 28 47 1111 477 0 0 1680 1028 + + Module + PBXDebugCLIModule + Proportion + 436pt + + + Proportion + 436pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + + TableOfContents + + 1C78EAAD065D492600B07095 + A6C4BCA51409991A00626A9D + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 28 47 1111 477 0 0 1680 1028 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/SimpleSynth.xcodeproj/n9yty.pbxuser b/SimpleSynth.xcodeproj/n9yty.pbxuser new file mode 100644 index 0000000..5200516 --- /dev/null +++ b/SimpleSynth.xcodeproj/n9yty.pbxuser @@ -0,0 +1,604 @@ +// !$*UTF8*$! +{ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + activeArchitecturePreference = x86_64; + activeBuildConfigurationName = Release; + activeExecutable = A6C4BC641409944D00626A9D /* SimpleSynth */; + activeTarget = 8D1107260486CEB800E47090 /* SimpleSynth */; + codeSenseManager = A6C4BC7B1409946D00626A9D /* Code sense */; + executables = ( + A6C4BC641409944D00626A9D /* SimpleSynth */, + ); + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 1230, + 20, + 48.16259765625, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 1190, + 60, + 20, + 48.16259765625, + 43, + 43, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXTargetDataSource_PrimaryAttribute, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 336172109; + PBXWorkspaceStateSaveDate = 336172109; + }; + perUserProjectItems = { + A6C4BC8A140997B900626A9D /* PBXBookmark */ = A6C4BC8A140997B900626A9D /* PBXBookmark */; + A6C4BC8B140997B900626A9D /* PBXTextBookmark */ = A6C4BC8B140997B900626A9D /* PBXTextBookmark */; + A6C4BC951409982400626A9D /* XCBuildMessageTextBookmark */ = A6C4BC951409982400626A9D /* XCBuildMessageTextBookmark */; + A6C4BC961409982400626A9D /* PBXTextBookmark */ = A6C4BC961409982400626A9D /* PBXTextBookmark */; + A6C4BC971409982500626A9D /* PBXTextBookmark */ = A6C4BC971409982500626A9D /* PBXTextBookmark */; + A6C4BC9A1409985400626A9D /* PBXTextBookmark */ = A6C4BC9A1409985400626A9D /* PBXTextBookmark */; + A6C4BC9B1409987100626A9D /* PBXTextBookmark */ = A6C4BC9B1409987100626A9D /* PBXTextBookmark */; + A6C4BC9E140998D200626A9D /* PBXTextBookmark */ = A6C4BC9E140998D200626A9D /* PBXTextBookmark */; + A6C4BCA41409991A00626A9D /* PBXTextBookmark */ = A6C4BCA41409991A00626A9D /* PBXTextBookmark */; + A6C4BCA81409993100626A9D /* PBXTextBookmark */ = A6C4BCA81409993100626A9D /* PBXTextBookmark */; + A6C4BCAD1409994700626A9D /* PBXTextBookmark */ = A6C4BCAD1409994700626A9D /* PBXTextBookmark */; + A6C4BCB01409998000626A9D /* PBXTextBookmark */ = A6C4BCB01409998000626A9D /* PBXTextBookmark */; + A6C4BCB11409998000626A9D /* XCBuildMessageTextBookmark */ = A6C4BCB11409998000626A9D /* XCBuildMessageTextBookmark */; + A6C4BCB31409998000626A9D /* PBXTextBookmark */ = A6C4BCB31409998000626A9D /* PBXTextBookmark */; + A6C4BCB71409999D00626A9D /* PBXTextBookmark */ = A6C4BCB71409999D00626A9D /* PBXTextBookmark */; + A6C4BCB81409999D00626A9D /* PBXTextBookmark */ = A6C4BCB81409999D00626A9D /* PBXTextBookmark */; + A6C4BCBB140999BE00626A9D /* PBXTextBookmark */ = A6C4BCBB140999BE00626A9D /* PBXTextBookmark */; + A6C4BCC0140999C700626A9D /* PBXTextBookmark */ = A6C4BCC0140999C700626A9D /* PBXTextBookmark */; + A6C4BCC914099A3800626A9D /* PBXTextBookmark */ = A6C4BCC914099A3800626A9D /* PBXTextBookmark */; + A6C4BCD414099A9A00626A9D /* PBXTextBookmark */ = A6C4BCD414099A9A00626A9D /* PBXTextBookmark */; + A6C4BCD514099A9A00626A9D /* PBXTextBookmark */ = A6C4BCD514099A9A00626A9D /* PBXTextBookmark */; + A6C4BCDC14099ACD00626A9D /* PBXTextBookmark */ = A6C4BCDC14099ACD00626A9D /* PBXTextBookmark */; + A6C4BCE114099B0F00626A9D /* PBXTextBookmark */ = A6C4BCE114099B0F00626A9D /* PBXTextBookmark */; + A6C4BCE414099B2B00626A9D /* PBXTextBookmark */ = A6C4BCE414099B2B00626A9D /* PBXTextBookmark */; + A6C4BCE514099B2B00626A9D /* PBXTextBookmark */ = A6C4BCE514099B2B00626A9D /* PBXTextBookmark */; + A6C4BCE614099B4700626A9D /* PBXTextBookmark */ = A6C4BCE614099B4700626A9D /* PBXTextBookmark */; + A6C4BCE71409A0D800626A9D /* PBXTextBookmark */ = A6C4BCE71409A0D800626A9D /* PBXTextBookmark */; + A6C4BCEC1409A12500626A9D /* PBXTextBookmark */ = A6C4BCEC1409A12500626A9D /* PBXTextBookmark */; + A6C4BCF01409A14800626A9D /* PBXTextBookmark */ = A6C4BCF01409A14800626A9D /* PBXTextBookmark */; + A6C4BCF81409A38500626A9D /* PBXTextBookmark */ = A6C4BCF81409A38500626A9D /* PBXTextBookmark */; + A6C4BCFC1409A3DF00626A9D /* PBXTextBookmark */ = A6C4BCFC1409A3DF00626A9D /* PBXTextBookmark */; + A6C4BD001409A3F700626A9D /* PBXTextBookmark */ = A6C4BD001409A3F700626A9D /* PBXTextBookmark */; + A6C4BD041409A47500626A9D /* PBXTextBookmark */ = A6C4BD041409A47500626A9D /* PBXTextBookmark */; + A6C4BD091409A4CA00626A9D /* PBXTextBookmark */ = A6C4BD091409A4CA00626A9D /* PBXTextBookmark */; + A6C4BD0D1409A4FA00626A9D /* PBXTextBookmark */ = A6C4BD0D1409A4FA00626A9D /* PBXTextBookmark */; + A6C4BD101409A50200626A9D /* PBXTextBookmark */ = A6C4BD101409A50200626A9D /* PBXTextBookmark */; + A6C4BD111409A50400626A9D /* PBXTextBookmark */ = A6C4BD111409A50400626A9D /* PBXTextBookmark */; + A6C4BD141409A54600626A9D /* PBXTextBookmark */ = A6C4BD141409A54600626A9D /* PBXTextBookmark */; + A6C4BD161409A56F00626A9D /* PBXTextBookmark */ = A6C4BD161409A56F00626A9D /* PBXTextBookmark */; + A6C4BD191409A59000626A9D /* PBXTextBookmark */ = A6C4BD191409A59000626A9D /* PBXTextBookmark */; + A6C4BD1C1409A5A000626A9D /* PBXTextBookmark */ = A6C4BD1C1409A5A000626A9D /* PBXTextBookmark */; + A6C4BD1D1409A5A100626A9D /* PBXTextBookmark */ = A6C4BD1D1409A5A100626A9D /* PBXTextBookmark */; + }; + sourceControlManager = A6C4BC7A1409946D00626A9D /* Source Control */; + userBuildSettings = { + }; + }; + 8D1107260486CEB800E47090 /* SimpleSynth */ = { + activeExec = 0; + executables = ( + A6C4BC641409944D00626A9D /* SimpleSynth */, + ); + }; + A6C4BC641409944D00626A9D /* SimpleSynth */ = { + isa = PBXExecutable; + activeArgIndices = ( + ); + argumentStrings = ( + ); + autoAttachOnCrash = 1; + breakpointsEnabled = 0; + configStateDict = { + }; + customDataFormattersEnabled = 1; + dataTipCustomDataFormattersEnabled = 1; + dataTipShowTypeColumn = 1; + dataTipSortType = 0; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + dylibVariantSuffix = ""; + enableDebugStr = 1; + environmentEntries = ( + ); + executableSystemSymbolLevel = 0; + executableUserSymbolLevel = 0; + libgmallocEnabled = 0; + name = SimpleSynth; + savedGlobals = { + }; + showTypeColumn = 0; + sourceDirectories = ( + ); + startupPath = "<>"; + variableFormatDictionary = { + }; + }; + A6C4BC7A1409946D00626A9D /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + A6C4BC7B1409946D00626A9D /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + A6C4BC8A140997B900626A9D /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + }; + A6C4BC8B140997B900626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 102"; + rLen = 0; + rLoc = 2721; + rType = 0; + vrLen = 1492; + vrLoc = 2197; + }; + A6C4BC951409982400626A9D /* XCBuildMessageTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Syntax error before ')' token"; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 0; + rLoc = 85; + rType = 1; + }; + A6C4BC961409982400626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 87"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 350; + vrLoc = 2226; + }; + A6C4BC971409982500626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 102"; + rLen = 0; + rLoc = 2721; + rType = 0; + vrLen = 1492; + vrLoc = 2197; + }; + A6C4BC9A1409985400626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 87"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1519; + vrLoc = 2197; + }; + A6C4BC9B1409987100626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 87"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 377; + vrLoc = 2226; + }; + A6C4BC9E140998D200626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 91"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1535; + vrLoc = 2197; + }; + A6C4BCA41409991A00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 91"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 362; + vrLoc = 2226; + }; + A6C4BCA81409993100626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 90"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1351; + vrLoc = 2197; + }; + A6C4BCAD1409994700626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 90"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 343; + vrLoc = 2226; + }; + A6C4BCB01409998000626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 90"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 412; + vrLoc = 2226; + }; + A6C4BCB11409998000626A9D /* XCBuildMessageTextBookmark */ = { + isa = PBXTextBookmark; + comments = "#error 64-bit not supported"; + fRef = A6C4BCB21409998000626A9D /* objc.h */; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 1; + rLoc = 33; + rType = 1; + }; + A6C4BCB21409998000626A9D /* objc.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.objj.h; + name = objc.h; + path = /Developer/SDKs/MacOSX10.4u.sdk/usr/include/objc/objc.h; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1408, 1261}}"; + sepNavSelRange = "{1173, 0}"; + sepNavVisRange = "{0, 1634}"; + }; + }; + A6C4BCB31409998000626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = A6C4BCB41409998000626A9D /* objc.h */; + name = "objc.h: 34"; + rLen = 0; + rLoc = 1173; + rType = 0; + vrLen = 243; + vrLoc = 970; + }; + A6C4BCB41409998000626A9D /* objc.h */ = { + isa = PBXFileReference; + name = objc.h; + path = /Developer/SDKs/MacOSX10.4u.sdk/usr/include/objc/objc.h; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {439, 1365}}"; + sepNavSelRange = "{1173, 0}"; + sepNavVisRange = "{970, 243}"; + }; + }; + A6C4BCB71409999D00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 90"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1493; + vrLoc = 2197; + }; + A6C4BCB81409999D00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = A6C4BCB21409998000626A9D /* objc.h */; + name = "objc.h: 34"; + rLen = 0; + rLoc = 1173; + rType = 0; + vrLen = 1634; + vrLoc = 0; + }; + A6C4BCBB140999BE00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = A6C4BCB41409998000626A9D /* objc.h */; + name = "objc.h: 34"; + rLen = 0; + rLoc = 1173; + rType = 0; + vrLen = 235; + vrLoc = 970; + }; + A6C4BCC0140999C700626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = A6C4BCB41409998000626A9D /* objc.h */; + name = "objc.h: 34"; + rLen = 0; + rLoc = 1173; + rType = 0; + vrLen = 1634; + vrLoc = 0; + }; + A6C4BCC914099A3800626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = A6C4BCB41409998000626A9D /* objc.h */; + name = "objc.h: 34"; + rLen = 0; + rLoc = 1173; + rType = 0; + vrLen = 1634; + vrLoc = 0; + }; + A6C4BCD414099A9A00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 90"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1378; + vrLoc = 2197; + }; + A6C4BCD514099A9A00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 89"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1267; + vrLoc = 2197; + }; + A6C4BCDC14099ACD00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 88"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1297; + vrLoc = 2197; + }; + A6C4BCE114099B0F00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 88"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1310; + vrLoc = 2197; + }; + A6C4BCE414099B2B00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 90"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 412; + vrLoc = 2226; + }; + A6C4BCE514099B2B00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 91"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 439; + vrLoc = 2410; + }; + A6C4BCE614099B4700626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 91"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1406; + vrLoc = 2197; + }; + A6C4BCE71409A0D800626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 90"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1416; + vrLoc = 2197; + }; + A6C4BCEC1409A12500626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 90"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1311; + vrLoc = 2024; + }; + A6C4BCF01409A14800626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 90"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 1332; + vrLoc = 2043; + }; + A6C4BCF81409A38500626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 103"; + rLen = 0; + rLoc = 2711; + rType = 0; + vrLen = 1246; + vrLoc = 2127; + }; + A6C4BCFC1409A3DF00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 80"; + rLen = 0; + rLoc = 2332; + rType = 0; + vrLen = 1318; + vrLoc = 2175; + }; + A6C4BD001409A3F700626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 80"; + rLen = 0; + rLoc = 2332; + rType = 0; + vrLen = 1359; + vrLoc = 2197; + }; + A6C4BD041409A47500626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 86"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 448; + vrLoc = 1720; + }; + A6C4BD091409A4CA00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 80"; + rLen = 0; + rLoc = 2332; + rType = 0; + vrLen = 1394; + vrLoc = 2222; + }; + A6C4BD0D1409A4FA00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 86"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 448; + vrLoc = 1720; + }; + A6C4BD101409A50200626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 86"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 448; + vrLoc = 1720; + }; + A6C4BD111409A50400626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 80"; + rLen = 0; + rLoc = 2332; + rType = 0; + vrLen = 1425; + vrLoc = 2222; + }; + A6C4BD141409A54600626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 80"; + rLen = 0; + rLoc = 2332; + rType = 0; + vrLen = 1422; + vrLoc = 2225; + }; + A6C4BD161409A56F00626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 86"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 448; + vrLoc = 1720; + }; + A6C4BD191409A59000626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 86"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 448; + vrLoc = 1720; + }; + A6C4BD1C1409A5A000626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 86"; + rLen = 0; + rLoc = 2455; + rType = 0; + vrLen = 448; + vrLoc = 1720; + }; + A6C4BD1D1409A5A100626A9D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 80"; + rLen = 0; + rLoc = 2332; + rType = 0; + vrLen = 1555; + vrLoc = 2225; + }; + C1FDC5750A2DD88200C94DEA /* AudioSystem.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1408, 5863}}"; + sepNavSelRange = "{2332, 0}"; + sepNavVisRange = "{2225, 1555}"; + sepNavWindowFrame = "{{15, 171}, {1418, 852}}"; + }; + }; +} diff --git a/SimpleSynth.xcodeproj/project.pbxproj b/SimpleSynth.xcodeproj/project.pbxproj index da20ed7..c4b08c4 100644 --- a/SimpleSynth.xcodeproj/project.pbxproj +++ b/SimpleSynth.xcodeproj/project.pbxproj @@ -273,7 +273,14 @@ isa = PBXProject; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SimpleSynth" */; compatibilityVersion = "Xcode 3.0"; + developmentRegion = English; hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); mainGroup = 29B97314FDCFA39411CA2CEA /* SimpleSynth */; projectDirPath = ""; projectRoot = ""; @@ -372,6 +379,7 @@ INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; PRODUCT_NAME = SimpleSynth; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; WRAPPER_EXTENSION = app; ZERO_LINK = NO; }; @@ -381,14 +389,18 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = ( - ppc, + x86_64, i386, + ppc, ); GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; + "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = 10.5; + "MACOSX_DEPLOYMENT_TARGET[arch=ppc]" = 10.5; PRODUCT_NAME = SimpleSynth; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; WRAPPER_EXTENSION = app; ZERO_LINK = NO; }; From 7554357ee5e40d57567f9cceb7242e7d47351932 Mon Sep 17 00:00:00 2001 From: Steve Palm Date: Sun, 28 Aug 2011 23:43:54 -0500 Subject: [PATCH 02/10] Another tweak - use autorelease on NSURL --- AudioSystem.m | 2 +- SimpleSynth.xcodeproj/n9yty.mode1v3 | 76 ++--- SimpleSynth.xcodeproj/n9yty.pbxuser | 493 ++-------------------------- 3 files changed, 56 insertions(+), 515 deletions(-) diff --git a/AudioSystem.m b/AudioSystem.m index ee188b0..165757c 100644 --- a/AudioSystem.m +++ b/AudioSystem.m @@ -82,7 +82,7 @@ - (BOOL)openFile:(NSString*)filename int i; NSURL *fileURL; - fileURL = [NSURL fileURLWithPath:filename]; + fileURL = [[NSURL fileURLWithPath:filename] autorelease]; AUGraphStop(graph); diff --git a/SimpleSynth.xcodeproj/n9yty.mode1v3 b/SimpleSynth.xcodeproj/n9yty.mode1v3 index f96e21b..6317ca3 100644 --- a/SimpleSynth.xcodeproj/n9yty.mode1v3 +++ b/SimpleSynth.xcodeproj/n9yty.mode1v3 @@ -248,8 +248,6 @@ Layout - BecomeActive - ContentConfiguration PBXBottomSmartGroupGIDs @@ -287,7 +285,6 @@ 29B97314FDCFA39411CA2CEA C1FDC6B90A2DE24200C94DEA 1C37FBAC04509CD000000102 - A6C4BC89140997B900626A9D 1C37FABC05509CD000000102 PBXSmartGroupTreeModuleOutlineStateSelectionKey @@ -298,7 +295,7 @@ PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 919}} + {{0, 0}, {186, 918}} PBXTopSmartGroupGIDs @@ -310,14 +307,14 @@ GeometryConfiguration Frame - {{0, 0}, {203, 937}} + {{0, 0}, {203, 936}} GroupTreeTableConfiguration MainColumn 186 RubberWindowFrame - 3 49 1677 978 0 0 1680 1028 + 3 51 1677 977 0 0 1680 1028 Module PBXSmartGroupTreeModule @@ -328,6 +325,8 @@ Dock + BecomeActive + ContentConfiguration PBXProjectModuleGUID @@ -345,10 +344,10 @@ _historyCapacity 10 bookmark - A6C4BD1D1409A5A100626A9D + A6BB051B140B506C00C791C5 history - A6C4BCD414099A9A00626A9D + A6C4BD1E1409ABBF00626A9D SplitCount @@ -360,14 +359,14 @@ GeometryConfiguration Frame - {{0, 0}, {1469, 751}} + {{0, 0}, {1469, 750}} RubberWindowFrame - 3 49 1677 978 0 0 1680 1028 + 3 51 1677 977 0 0 1680 1028 Module PBXNavigatorGroup Proportion - 751pt + 750pt ContentConfiguration @@ -380,9 +379,9 @@ GeometryConfiguration Frame - {{0, 756}, {1469, 181}} + {{0, 755}, {1469, 181}} RubberWindowFrame - 3 49 1677 978 0 0 1680 1028 + 3 51 1677 977 0 0 1680 1028 Module XCDetailModule @@ -406,9 +405,9 @@ TableOfContents - A6C4BC8C140997B900626A9D + A6BB051C140B506C00C791C5 1CE0B1FE06471DED0097A5F4 - A6C4BC8D140997B900626A9D + A6BB051D140B506C00C791C5 1CE0B20306471E060097A5F4 1CE0B20506471E060097A5F4 @@ -529,7 +528,7 @@ StatusbarIsVisible TimeStamp - 336176545.79989302 + 336285804.85861301 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -546,16 +545,15 @@ 5 WindowOrderList - A6C4BCAA1409993100626A9D - A6C4BCAB1409993100626A9D - 1C530D57069F1CE1000CFCEE + A6BB051E140B506C00C791C5 + A6BB051F140B506C00C791C5 + 1C78EAAD065D492600B07095 A6C4BC7E1409960900626A9D 1CD10A99069EF8BA00B06720 - 1C78EAAD065D492600B07095 /Users/n9yty/Projects/simplesynth/SimpleSynth.xcodeproj WindowString - 3 49 1677 978 0 0 1680 1028 + 3 51 1677 977 0 0 1680 1028 WindowToolsV3 @@ -576,7 +574,7 @@ PBXProjectModuleGUID 1CD0528F0623707200166675 PBXProjectModuleLabel - AudioSystem.m + StatusBarVisibility @@ -634,7 +632,7 @@ TableOfContents A6C4BC7E1409960900626A9D - A6C4BC7F1409960900626A9D + A6BB0511140B504E00C791C5 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID @@ -678,8 +676,8 @@ yes sizes - {{0, 0}, {473, 187}} - {{473, 0}, {565, 187}} + {{0, 0}, {473, 197}} + {{473, 0}, {565, 197}} VerticalSplitView @@ -694,8 +692,8 @@ yes sizes - {{0, 0}, {1038, 187}} - {{0, 187}, {1038, 199}} + {{0, 0}, {1038, 197}} + {{0, 197}, {1038, 189}} @@ -728,7 +726,7 @@ 335 Frame - {{473, 0}, {565, 187}} + {{473, 0}, {565, 197}} RubberWindowFrame 24 578 1038 427 0 0 1680 1028 @@ -756,13 +754,13 @@ TableOfContents 1CD10A99069EF8BA00B06720 - A6C4BC8F140997B900626A9D + A6BB0512140B504E00C791C5 1C162984064C10D400B95A72 - A6C4BC90140997B900626A9D - A6C4BC91140997B900626A9D - A6C4BC92140997B900626A9D - A6C4BC93140997B900626A9D - A6C4BC94140997B900626A9D + A6BB0513140B504E00C791C5 + A6BB0514140B504E00C791C5 + A6BB0515140B504E00C791C5 + A6BB0516140B504E00C791C5 + A6BB0517140B504E00C791C5 ToolbarConfiguration xcode.toolbar.config.debugV3 @@ -881,8 +879,6 @@ Dock - BecomeActive - ContentConfiguration PBXProjectModuleGUID @@ -895,7 +891,7 @@ Frame {{0, 0}, {1111, 436}} RubberWindowFrame - 28 47 1111 477 0 0 1680 1028 + 28 60 1111 477 0 0 1680 1028 Module PBXDebugCLIModule @@ -918,17 +914,17 @@ TableOfContents 1C78EAAD065D492600B07095 - A6C4BCA51409991A00626A9D + A6BB0518140B504E00C791C5 1C78EAAC065D492600B07095 ToolbarConfiguration xcode.toolbar.config.consoleV3 WindowString - 28 47 1111 477 0 0 1680 1028 + 28 60 1111 477 0 0 1680 1028 WindowToolGUID 1C78EAAD065D492600B07095 WindowToolIsVisible - + Identifier diff --git a/SimpleSynth.xcodeproj/n9yty.pbxuser b/SimpleSynth.xcodeproj/n9yty.pbxuser index 5200516..24beddf 100644 --- a/SimpleSynth.xcodeproj/n9yty.pbxuser +++ b/SimpleSynth.xcodeproj/n9yty.pbxuser @@ -40,7 +40,7 @@ 1190, 60, 20, - 48.16259765625, + 48, 43, 43, ); @@ -54,52 +54,12 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 336172109; - PBXWorkspaceStateSaveDate = 336172109; + PBXPerProjectTemplateStateSaveDate = 336282375; + PBXWorkspaceStateSaveDate = 336282375; }; perUserProjectItems = { - A6C4BC8A140997B900626A9D /* PBXBookmark */ = A6C4BC8A140997B900626A9D /* PBXBookmark */; - A6C4BC8B140997B900626A9D /* PBXTextBookmark */ = A6C4BC8B140997B900626A9D /* PBXTextBookmark */; - A6C4BC951409982400626A9D /* XCBuildMessageTextBookmark */ = A6C4BC951409982400626A9D /* XCBuildMessageTextBookmark */; - A6C4BC961409982400626A9D /* PBXTextBookmark */ = A6C4BC961409982400626A9D /* PBXTextBookmark */; - A6C4BC971409982500626A9D /* PBXTextBookmark */ = A6C4BC971409982500626A9D /* PBXTextBookmark */; - A6C4BC9A1409985400626A9D /* PBXTextBookmark */ = A6C4BC9A1409985400626A9D /* PBXTextBookmark */; - A6C4BC9B1409987100626A9D /* PBXTextBookmark */ = A6C4BC9B1409987100626A9D /* PBXTextBookmark */; - A6C4BC9E140998D200626A9D /* PBXTextBookmark */ = A6C4BC9E140998D200626A9D /* PBXTextBookmark */; - A6C4BCA41409991A00626A9D /* PBXTextBookmark */ = A6C4BCA41409991A00626A9D /* PBXTextBookmark */; - A6C4BCA81409993100626A9D /* PBXTextBookmark */ = A6C4BCA81409993100626A9D /* PBXTextBookmark */; - A6C4BCAD1409994700626A9D /* PBXTextBookmark */ = A6C4BCAD1409994700626A9D /* PBXTextBookmark */; - A6C4BCB01409998000626A9D /* PBXTextBookmark */ = A6C4BCB01409998000626A9D /* PBXTextBookmark */; - A6C4BCB11409998000626A9D /* XCBuildMessageTextBookmark */ = A6C4BCB11409998000626A9D /* XCBuildMessageTextBookmark */; - A6C4BCB31409998000626A9D /* PBXTextBookmark */ = A6C4BCB31409998000626A9D /* PBXTextBookmark */; - A6C4BCB71409999D00626A9D /* PBXTextBookmark */ = A6C4BCB71409999D00626A9D /* PBXTextBookmark */; - A6C4BCB81409999D00626A9D /* PBXTextBookmark */ = A6C4BCB81409999D00626A9D /* PBXTextBookmark */; - A6C4BCBB140999BE00626A9D /* PBXTextBookmark */ = A6C4BCBB140999BE00626A9D /* PBXTextBookmark */; - A6C4BCC0140999C700626A9D /* PBXTextBookmark */ = A6C4BCC0140999C700626A9D /* PBXTextBookmark */; - A6C4BCC914099A3800626A9D /* PBXTextBookmark */ = A6C4BCC914099A3800626A9D /* PBXTextBookmark */; - A6C4BCD414099A9A00626A9D /* PBXTextBookmark */ = A6C4BCD414099A9A00626A9D /* PBXTextBookmark */; - A6C4BCD514099A9A00626A9D /* PBXTextBookmark */ = A6C4BCD514099A9A00626A9D /* PBXTextBookmark */; - A6C4BCDC14099ACD00626A9D /* PBXTextBookmark */ = A6C4BCDC14099ACD00626A9D /* PBXTextBookmark */; - A6C4BCE114099B0F00626A9D /* PBXTextBookmark */ = A6C4BCE114099B0F00626A9D /* PBXTextBookmark */; - A6C4BCE414099B2B00626A9D /* PBXTextBookmark */ = A6C4BCE414099B2B00626A9D /* PBXTextBookmark */; - A6C4BCE514099B2B00626A9D /* PBXTextBookmark */ = A6C4BCE514099B2B00626A9D /* PBXTextBookmark */; - A6C4BCE614099B4700626A9D /* PBXTextBookmark */ = A6C4BCE614099B4700626A9D /* PBXTextBookmark */; - A6C4BCE71409A0D800626A9D /* PBXTextBookmark */ = A6C4BCE71409A0D800626A9D /* PBXTextBookmark */; - A6C4BCEC1409A12500626A9D /* PBXTextBookmark */ = A6C4BCEC1409A12500626A9D /* PBXTextBookmark */; - A6C4BCF01409A14800626A9D /* PBXTextBookmark */ = A6C4BCF01409A14800626A9D /* PBXTextBookmark */; - A6C4BCF81409A38500626A9D /* PBXTextBookmark */ = A6C4BCF81409A38500626A9D /* PBXTextBookmark */; - A6C4BCFC1409A3DF00626A9D /* PBXTextBookmark */ = A6C4BCFC1409A3DF00626A9D /* PBXTextBookmark */; - A6C4BD001409A3F700626A9D /* PBXTextBookmark */ = A6C4BD001409A3F700626A9D /* PBXTextBookmark */; - A6C4BD041409A47500626A9D /* PBXTextBookmark */ = A6C4BD041409A47500626A9D /* PBXTextBookmark */; - A6C4BD091409A4CA00626A9D /* PBXTextBookmark */ = A6C4BD091409A4CA00626A9D /* PBXTextBookmark */; - A6C4BD0D1409A4FA00626A9D /* PBXTextBookmark */ = A6C4BD0D1409A4FA00626A9D /* PBXTextBookmark */; - A6C4BD101409A50200626A9D /* PBXTextBookmark */ = A6C4BD101409A50200626A9D /* PBXTextBookmark */; - A6C4BD111409A50400626A9D /* PBXTextBookmark */ = A6C4BD111409A50400626A9D /* PBXTextBookmark */; - A6C4BD141409A54600626A9D /* PBXTextBookmark */ = A6C4BD141409A54600626A9D /* PBXTextBookmark */; - A6C4BD161409A56F00626A9D /* PBXTextBookmark */ = A6C4BD161409A56F00626A9D /* PBXTextBookmark */; - A6C4BD191409A59000626A9D /* PBXTextBookmark */ = A6C4BD191409A59000626A9D /* PBXTextBookmark */; - A6C4BD1C1409A5A000626A9D /* PBXTextBookmark */ = A6C4BD1C1409A5A000626A9D /* PBXTextBookmark */; - A6C4BD1D1409A5A100626A9D /* PBXTextBookmark */ = A6C4BD1D1409A5A100626A9D /* PBXTextBookmark */; + A6BB051B140B506C00C791C5 /* PBXTextBookmark */ = A6BB051B140B506C00C791C5 /* PBXTextBookmark */; + A6C4BD1E1409ABBF00626A9D /* PBXTextBookmark */ = A6C4BD1E1409ABBF00626A9D /* PBXTextBookmark */; }; sourceControlManager = A6C4BC7A1409946D00626A9D /* Source Control */; userBuildSettings = { @@ -111,6 +71,16 @@ A6C4BC641409944D00626A9D /* SimpleSynth */, ); }; + A6BB051B140B506C00C791C5 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 86"; + rLen = 0; + rLoc = 2469; + rType = 0; + vrLen = 1421; + vrLoc = 1593; + }; A6C4BC641409944D00626A9D /* SimpleSynth */ = { isa = PBXExecutable; activeArgIndices = ( @@ -158,432 +128,7 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - A6C4BC8A140997B900626A9D /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - }; - A6C4BC8B140997B900626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 102"; - rLen = 0; - rLoc = 2721; - rType = 0; - vrLen = 1492; - vrLoc = 2197; - }; - A6C4BC951409982400626A9D /* XCBuildMessageTextBookmark */ = { - isa = PBXTextBookmark; - comments = "Syntax error before ')' token"; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - fallbackIsa = XCBuildMessageTextBookmark; - rLen = 0; - rLoc = 85; - rType = 1; - }; - A6C4BC961409982400626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 87"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 350; - vrLoc = 2226; - }; - A6C4BC971409982500626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 102"; - rLen = 0; - rLoc = 2721; - rType = 0; - vrLen = 1492; - vrLoc = 2197; - }; - A6C4BC9A1409985400626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 87"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1519; - vrLoc = 2197; - }; - A6C4BC9B1409987100626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 87"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 377; - vrLoc = 2226; - }; - A6C4BC9E140998D200626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 91"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1535; - vrLoc = 2197; - }; - A6C4BCA41409991A00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 91"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 362; - vrLoc = 2226; - }; - A6C4BCA81409993100626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 90"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1351; - vrLoc = 2197; - }; - A6C4BCAD1409994700626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 90"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 343; - vrLoc = 2226; - }; - A6C4BCB01409998000626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 90"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 412; - vrLoc = 2226; - }; - A6C4BCB11409998000626A9D /* XCBuildMessageTextBookmark */ = { - isa = PBXTextBookmark; - comments = "#error 64-bit not supported"; - fRef = A6C4BCB21409998000626A9D /* objc.h */; - fallbackIsa = XCBuildMessageTextBookmark; - rLen = 1; - rLoc = 33; - rType = 1; - }; - A6C4BCB21409998000626A9D /* objc.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.objj.h; - name = objc.h; - path = /Developer/SDKs/MacOSX10.4u.sdk/usr/include/objc/objc.h; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1408, 1261}}"; - sepNavSelRange = "{1173, 0}"; - sepNavVisRange = "{0, 1634}"; - }; - }; - A6C4BCB31409998000626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A6C4BCB41409998000626A9D /* objc.h */; - name = "objc.h: 34"; - rLen = 0; - rLoc = 1173; - rType = 0; - vrLen = 243; - vrLoc = 970; - }; - A6C4BCB41409998000626A9D /* objc.h */ = { - isa = PBXFileReference; - name = objc.h; - path = /Developer/SDKs/MacOSX10.4u.sdk/usr/include/objc/objc.h; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {439, 1365}}"; - sepNavSelRange = "{1173, 0}"; - sepNavVisRange = "{970, 243}"; - }; - }; - A6C4BCB71409999D00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 90"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1493; - vrLoc = 2197; - }; - A6C4BCB81409999D00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A6C4BCB21409998000626A9D /* objc.h */; - name = "objc.h: 34"; - rLen = 0; - rLoc = 1173; - rType = 0; - vrLen = 1634; - vrLoc = 0; - }; - A6C4BCBB140999BE00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A6C4BCB41409998000626A9D /* objc.h */; - name = "objc.h: 34"; - rLen = 0; - rLoc = 1173; - rType = 0; - vrLen = 235; - vrLoc = 970; - }; - A6C4BCC0140999C700626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A6C4BCB41409998000626A9D /* objc.h */; - name = "objc.h: 34"; - rLen = 0; - rLoc = 1173; - rType = 0; - vrLen = 1634; - vrLoc = 0; - }; - A6C4BCC914099A3800626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = A6C4BCB41409998000626A9D /* objc.h */; - name = "objc.h: 34"; - rLen = 0; - rLoc = 1173; - rType = 0; - vrLen = 1634; - vrLoc = 0; - }; - A6C4BCD414099A9A00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 90"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1378; - vrLoc = 2197; - }; - A6C4BCD514099A9A00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 89"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1267; - vrLoc = 2197; - }; - A6C4BCDC14099ACD00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 88"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1297; - vrLoc = 2197; - }; - A6C4BCE114099B0F00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 88"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1310; - vrLoc = 2197; - }; - A6C4BCE414099B2B00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 90"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 412; - vrLoc = 2226; - }; - A6C4BCE514099B2B00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 91"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 439; - vrLoc = 2410; - }; - A6C4BCE614099B4700626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 91"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1406; - vrLoc = 2197; - }; - A6C4BCE71409A0D800626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 90"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1416; - vrLoc = 2197; - }; - A6C4BCEC1409A12500626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 90"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1311; - vrLoc = 2024; - }; - A6C4BCF01409A14800626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 90"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 1332; - vrLoc = 2043; - }; - A6C4BCF81409A38500626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 103"; - rLen = 0; - rLoc = 2711; - rType = 0; - vrLen = 1246; - vrLoc = 2127; - }; - A6C4BCFC1409A3DF00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 80"; - rLen = 0; - rLoc = 2332; - rType = 0; - vrLen = 1318; - vrLoc = 2175; - }; - A6C4BD001409A3F700626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 80"; - rLen = 0; - rLoc = 2332; - rType = 0; - vrLen = 1359; - vrLoc = 2197; - }; - A6C4BD041409A47500626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 86"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 448; - vrLoc = 1720; - }; - A6C4BD091409A4CA00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 80"; - rLen = 0; - rLoc = 2332; - rType = 0; - vrLen = 1394; - vrLoc = 2222; - }; - A6C4BD0D1409A4FA00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 86"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 448; - vrLoc = 1720; - }; - A6C4BD101409A50200626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 86"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 448; - vrLoc = 1720; - }; - A6C4BD111409A50400626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 80"; - rLen = 0; - rLoc = 2332; - rType = 0; - vrLen = 1425; - vrLoc = 2222; - }; - A6C4BD141409A54600626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 80"; - rLen = 0; - rLoc = 2332; - rType = 0; - vrLen = 1422; - vrLoc = 2225; - }; - A6C4BD161409A56F00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 86"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 448; - vrLoc = 1720; - }; - A6C4BD191409A59000626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 86"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 448; - vrLoc = 1720; - }; - A6C4BD1C1409A5A000626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 86"; - rLen = 0; - rLoc = 2455; - rType = 0; - vrLen = 448; - vrLoc = 1720; - }; - A6C4BD1D1409A5A100626A9D /* PBXTextBookmark */ = { + A6C4BD1E1409ABBF00626A9D /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; name = "AudioSystem.m: 80"; @@ -595,9 +140,9 @@ }; C1FDC5750A2DD88200C94DEA /* AudioSystem.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1408, 5863}}"; - sepNavSelRange = "{2332, 0}"; - sepNavVisRange = "{2225, 1555}"; + sepNavIntBoundsRect = "{{0, 0}, {1408, 5915}}"; + sepNavSelRange = "{2469, 0}"; + sepNavVisRange = "{1593, 1421}"; sepNavWindowFrame = "{{15, 171}, {1418, 852}}"; }; }; From 2b6de4d459ff484c00d8f4696b60f97c3223c477 Mon Sep 17 00:00:00 2001 From: Steve Palm Date: Mon, 29 Aug 2011 15:18:41 -0500 Subject: [PATCH 03/10] Seems to be working now... --- AudioSystem.m | 8 ++- SimpleSynth.xcodeproj/n9yty.mode1v3 | 106 +++++++++++++++------------- SimpleSynth.xcodeproj/n9yty.pbxuser | 74 ++++++++++++------- 3 files changed, 111 insertions(+), 77 deletions(-) diff --git a/AudioSystem.m b/AudioSystem.m index 165757c..e56a23b 100644 --- a/AudioSystem.m +++ b/AudioSystem.m @@ -82,8 +82,10 @@ - (BOOL)openFile:(NSString*)filename int i; NSURL *fileURL; - fileURL = [[NSURL fileURLWithPath:filename] autorelease]; - + fileURL = [NSURL fileURLWithPath:filename]; + + if (!fileURL) return NO; + AUGraphStop(graph); AUGraphGetNodeInfo (graph, synthNode, NULL, NULL, NULL, &synthUnit); @@ -93,7 +95,7 @@ - (BOOL)openFile:(NSString*)filename 0, &fileURL, sizeof(fileURL) ); - + AUGraphStart(graph); if (error) return NO; diff --git a/SimpleSynth.xcodeproj/n9yty.mode1v3 b/SimpleSynth.xcodeproj/n9yty.mode1v3 index 6317ca3..0752c20 100644 --- a/SimpleSynth.xcodeproj/n9yty.mode1v3 +++ b/SimpleSynth.xcodeproj/n9yty.mode1v3 @@ -290,8 +290,8 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 12 - 11 + 9 + 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey @@ -314,7 +314,7 @@ 186 RubberWindowFrame - 3 51 1677 977 0 0 1680 1028 + 2 50 1677 977 0 0 1680 1028 Module PBXSmartGroupTreeModule @@ -344,10 +344,10 @@ _historyCapacity 10 bookmark - A6BB051B140B506C00C791C5 + A68DE26E140C2B8900430992 history - A6C4BD1E1409ABBF00626A9D + A68DE263140C2AF500430992 SplitCount @@ -359,14 +359,14 @@ GeometryConfiguration Frame - {{0, 0}, {1469, 750}} + {{0, 0}, {1469, 746}} RubberWindowFrame - 3 51 1677 977 0 0 1680 1028 + 2 50 1677 977 0 0 1680 1028 Module PBXNavigatorGroup Proportion - 750pt + 746pt ContentConfiguration @@ -379,14 +379,14 @@ GeometryConfiguration Frame - {{0, 755}, {1469, 181}} + {{0, 751}, {1469, 185}} RubberWindowFrame - 3 51 1677 977 0 0 1680 1028 + 2 50 1677 977 0 0 1680 1028 Module XCDetailModule Proportion - 181pt + 185pt Proportion @@ -405,9 +405,9 @@ TableOfContents - A6BB051C140B506C00C791C5 + A68DE21A140C1F3E00430992 1CE0B1FE06471DED0097A5F4 - A6BB051D140B506C00C791C5 + A68DE21B140C1F3E00430992 1CE0B20306471E060097A5F4 1CE0B20506471E060097A5F4 @@ -528,7 +528,7 @@ StatusbarIsVisible TimeStamp - 336285804.85861301 + 336341897.29998702 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -545,15 +545,17 @@ 5 WindowOrderList - A6BB051E140B506C00C791C5 - A6BB051F140B506C00C791C5 + A68DE224140C1FF900430992 + A68DE225140C1FF900430992 1C78EAAD065D492600B07095 A6C4BC7E1409960900626A9D + A68DE256140C268000430992 1CD10A99069EF8BA00B06720 + 1C530D57069F1CE1000CFCEE /Users/n9yty/Projects/simplesynth/SimpleSynth.xcodeproj WindowString - 3 51 1677 977 0 0 1680 1028 + 2 50 1677 977 0 0 1680 1028 WindowToolsV3 @@ -574,7 +576,7 @@ PBXProjectModuleGUID 1CD0528F0623707200166675 PBXProjectModuleLabel - + AudioSystem.m StatusBarVisibility @@ -632,7 +634,7 @@ TableOfContents A6C4BC7E1409960900626A9D - A6BB0511140B504E00C791C5 + A68DE20A140C1A2300430992 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID @@ -676,8 +678,8 @@ yes sizes - {{0, 0}, {473, 197}} - {{473, 0}, {565, 197}} + {{0, 0}, {473, 202}} + {{473, 0}, {565, 202}} VerticalSplitView @@ -692,8 +694,8 @@ yes sizes - {{0, 0}, {1038, 197}} - {{0, 197}, {1038, 189}} + {{0, 0}, {1038, 202}} + {{0, 202}, {1038, 184}} @@ -726,12 +728,12 @@ 335 Frame - {{473, 0}, {565, 197}} + {{473, 0}, {565, 202}} RubberWindowFrame - 24 578 1038 427 0 0 1680 1028 + 24 579 1038 427 0 0 1680 1028 RubberWindowFrame - 24 578 1038 427 0 0 1680 1028 + 24 579 1038 427 0 0 1680 1028 Module PBXDebugSessionModule @@ -754,18 +756,18 @@ TableOfContents 1CD10A99069EF8BA00B06720 - A6BB0512140B504E00C791C5 + A68DE20B140C1A2300430992 1C162984064C10D400B95A72 - A6BB0513140B504E00C791C5 - A6BB0514140B504E00C791C5 - A6BB0515140B504E00C791C5 - A6BB0516140B504E00C791C5 - A6BB0517140B504E00C791C5 + A68DE20C140C1A2300430992 + A68DE20D140C1A2300430992 + A68DE20E140C1A2300430992 + A68DE20F140C1A2300430992 + A68DE210140C1A2300430992 ToolbarConfiguration xcode.toolbar.config.debugV3 WindowString - 24 578 1038 427 0 0 1680 1028 + 24 579 1038 427 0 0 1680 1028 WindowToolGUID 1CD10A99069EF8BA00B06720 WindowToolIsVisible @@ -792,7 +794,7 @@ PBXProjectModuleGUID 1CDD528C0622207200134675 PBXProjectModuleLabel - + <No Editor> StatusBarVisibility @@ -850,8 +852,8 @@ TableOfContents 1C530D57069F1CE1000CFCEE - A6C4BC801409964B00626A9D - A6C4BC811409964B00626A9D + A68DE216140C1A2300430992 + A68DE217140C1A2300430992 1CDD528C0622207200134675 1CD0528E0623707200166675 @@ -860,7 +862,7 @@ WindowToolGUID 1C530D57069F1CE1000CFCEE WindowToolIsVisible - + Identifier @@ -879,6 +881,8 @@ Dock + BecomeActive + ContentConfiguration PBXProjectModuleGUID @@ -914,7 +918,7 @@ TableOfContents 1C78EAAD065D492600B07095 - A6BB0518140B504E00C791C5 + A68DE222140C1FF900430992 1C78EAAC065D492600B07095 ToolbarConfiguration @@ -1061,18 +1065,18 @@ 743 379 452 308 0 0 1280 1002 + FirstTimeWindowDisplayed + Identifier windowTool.breakpoints IsVertical - 0 + Layout Dock - BecomeActive - 1 ContentConfiguration PBXBottomSmartGroupGIDs @@ -1114,7 +1118,7 @@ PBXTopSmartGroupGIDs XCIncludePerspectivesSwitch - 0 + GeometryConfiguration @@ -1126,7 +1130,7 @@ 168 RubberWindowFrame - 315 424 744 409 0 0 1440 878 + 23 595 744 409 0 0 1680 1028 Module PBXSmartGroupTreeModule @@ -1134,6 +1138,8 @@ 185pt + BecomeActive + ContentConfiguration PBXProjectModuleGUID @@ -1146,7 +1152,7 @@ Frame {{190, 0}, {554, 368}} RubberWindowFrame - 315 424 744 409 0 0 1440 878 + 23 595 744 409 0 0 1680 1028 Module XCDetailModule @@ -1170,22 +1176,22 @@ XCDetailModule StatusbarIsVisible - 1 + TableOfContents - 1CDDB66807F98D9800BB5817 - 1CDDB66907F98D9800BB5817 + A68DE256140C268000430992 + A68DE257140C268000430992 1CE0B1FE06471DED0097A5F4 1CA1AED706398EBD00589147 ToolbarConfiguration xcode.toolbar.config.breakpointsV3 WindowString - 315 424 744 409 0 0 1440 878 + 23 595 744 409 0 0 1680 1028 WindowToolGUID - 1CDDB66807F98D9800BB5817 + A68DE256140C268000430992 WindowToolIsVisible - 1 + Identifier diff --git a/SimpleSynth.xcodeproj/n9yty.pbxuser b/SimpleSynth.xcodeproj/n9yty.pbxuser index 24beddf..ae2c88f 100644 --- a/SimpleSynth.xcodeproj/n9yty.pbxuser +++ b/SimpleSynth.xcodeproj/n9yty.pbxuser @@ -5,11 +5,37 @@ activeBuildConfigurationName = Release; activeExecutable = A6C4BC641409944D00626A9D /* SimpleSynth */; activeTarget = 8D1107260486CEB800E47090 /* SimpleSynth */; + breakpoints = ( + ); codeSenseManager = A6C4BC7B1409946D00626A9D /* Code sense */; executables = ( A6C4BC641409944D00626A9D /* SimpleSynth */, ); perUserDictionary = { + "PBXConfiguration.PBXBreakpointsDataSource.v1:1CA1AED706398EBD00589147" = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 20, + 198, + 20, + 99, + 99, + 29, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXBreakpointsDataSource_ActionID, + PBXBreakpointsDataSource_TypeID, + PBXBreakpointsDataSource_BreakpointID, + PBXBreakpointsDataSource_UseID, + PBXBreakpointsDataSource_LocationID, + PBXBreakpointsDataSource_ConditionID, + PBXBreakpointsDataSource_IgnoreCountID, + PBXBreakpointsDataSource_ContinueID, + ); + }; PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; @@ -17,7 +43,7 @@ 20, 1230, 20, - 48.16259765625, + 48, 43, 43, 20, @@ -54,12 +80,12 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 336282375; - PBXWorkspaceStateSaveDate = 336282375; + PBXPerProjectTemplateStateSaveDate = 336336431; + PBXWorkspaceStateSaveDate = 336336431; }; perUserProjectItems = { - A6BB051B140B506C00C791C5 /* PBXTextBookmark */ = A6BB051B140B506C00C791C5 /* PBXTextBookmark */; - A6C4BD1E1409ABBF00626A9D /* PBXTextBookmark */ = A6C4BD1E1409ABBF00626A9D /* PBXTextBookmark */; + A68DE263140C2AF500430992 /* PBXTextBookmark */ = A68DE263140C2AF500430992 /* PBXTextBookmark */; + A68DE26E140C2B8900430992 /* PBXTextBookmark */ = A68DE26E140C2B8900430992 /* PBXTextBookmark */; }; sourceControlManager = A6C4BC7A1409946D00626A9D /* Source Control */; userBuildSettings = { @@ -71,15 +97,25 @@ A6C4BC641409944D00626A9D /* SimpleSynth */, ); }; - A6BB051B140B506C00C791C5 /* PBXTextBookmark */ = { + A68DE263140C2AF500430992 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; + name = "AudioSystem.m: 93"; + rLen = 18; + rLoc = 2512; + rType = 0; + vrLen = 1216; + vrLoc = 2175; + }; + A68DE26E140C2B8900430992 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 86"; + name = "AudioSystem.m: 89"; rLen = 0; - rLoc = 2469; + rLoc = 2485; rType = 0; - vrLen = 1421; - vrLoc = 1593; + vrLen = 1353; + vrLoc = 2168; }; A6C4BC641409944D00626A9D /* SimpleSynth */ = { isa = PBXExecutable; @@ -88,7 +124,7 @@ argumentStrings = ( ); autoAttachOnCrash = 1; - breakpointsEnabled = 0; + breakpointsEnabled = 1; configStateDict = { }; customDataFormattersEnabled = 1; @@ -128,21 +164,11 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - A6C4BD1E1409ABBF00626A9D /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = C1FDC5750A2DD88200C94DEA /* AudioSystem.m */; - name = "AudioSystem.m: 80"; - rLen = 0; - rLoc = 2332; - rType = 0; - vrLen = 1555; - vrLoc = 2225; - }; C1FDC5750A2DD88200C94DEA /* AudioSystem.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1408, 5915}}"; - sepNavSelRange = "{2469, 0}"; - sepNavVisRange = "{1593, 1421}"; + sepNavIntBoundsRect = "{{0, 0}, {977, 6084}}"; + sepNavSelRange = "{2482, 0}"; + sepNavVisRange = "{2408, 340}"; sepNavWindowFrame = "{{15, 171}, {1418, 852}}"; }; }; From 3aebd01bbfb4897eb1de8a1a363eaa995d065f39 Mon Sep 17 00:00:00 2001 From: Jedidiah Hurt Date: Sat, 26 May 2012 18:00:32 -0600 Subject: [PATCH 04/10] XCode project now builds on Lion --- SimpleSynth.xcodeproj/project.pbxproj | 37 ++++++++++++--------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/SimpleSynth.xcodeproj/project.pbxproj b/SimpleSynth.xcodeproj/project.pbxproj index c4b08c4..544d1ca 100644 --- a/SimpleSynth.xcodeproj/project.pbxproj +++ b/SimpleSynth.xcodeproj/project.pbxproj @@ -379,7 +379,7 @@ INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; PRODUCT_NAME = SimpleSynth; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; + SDKROOT = ""; WRAPPER_EXTENSION = app; ZERO_LINK = NO; }; @@ -388,11 +388,7 @@ C01FCF4C08A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - x86_64, - i386, - ppc, - ); + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; INFOPLIST_FILE = Info.plist; @@ -400,7 +396,7 @@ "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = 10.5; "MACOSX_DEPLOYMENT_TARGET[arch=ppc]" = 10.5; PRODUCT_NAME = SimpleSynth; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; + SDKROOT = ""; WRAPPER_EXTENSION = app; ZERO_LINK = NO; }; @@ -413,17 +409,17 @@ ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = SimpleSynth_Prefix.pch; - GCC_VERSION = 4.0; - "GCC_VERSION[arch=i386]" = 4.0; - "GCC_VERSION[arch=ppc]" = 4.0; + GCC_VERSION = ""; + "GCC_VERSION[arch=i386]" = ""; + "GCC_VERSION[arch=ppc]" = ""; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = .; - "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = 10.4; + "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = ""; "MACOSX_DEPLOYMENT_TARGET[arch=ppc]" = 10.3; PREBINDING = NO; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; - "SDKROOT[arch=i386]" = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; + SDKROOT = macosx; + "SDKROOT[arch=i386]" = macosx; "SDKROOT[arch=ppc]" = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; }; name = Debug; @@ -431,21 +427,20 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = SimpleSynth_Prefix.pch; - GCC_VERSION = 4.0; - "GCC_VERSION[arch=i386]" = 4.0; - "GCC_VERSION[arch=ppc]" = 4.0; + GCC_VERSION = ""; + "GCC_VERSION[arch=i386]" = ""; + "GCC_VERSION[arch=ppc]" = ""; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = .; - "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = 10.4; + "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = ""; "MACOSX_DEPLOYMENT_TARGET[arch=ppc]" = 10.3; PREBINDING = NO; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; - "SDKROOT[arch=i386]" = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; + SDKROOT = macosx; + "SDKROOT[arch=i386]" = macosx; "SDKROOT[arch=ppc]" = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; }; name = Release; From ded0d95ec76eb3df9e69e357ca7cae18f8037ac0 Mon Sep 17 00:00:00 2001 From: Jon Date: Sun, 17 Jan 2016 11:11:00 -0500 Subject: [PATCH 05/10] add separate volume control for the synth --- AudioSystem.h | 3 + AudioSystem.m | 22 + English.lproj/MainMenu.nib/classes.nib | 79 --- English.lproj/MainMenu.nib/designable.nib | 549 ++++++++++++++++++ English.lproj/MainMenu.nib/info.nib | 20 - English.lproj/MainMenu.nib/keyedobjects.nib | Bin 24925 -> 25084 bytes Info.plist | 2 +- SimpleSynth.xcodeproj/project.pbxproj | 17 +- .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 34281 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 5 + .../xcschemes/SimpleSynth.xcscheme | 91 +++ .../xcschemes/xcschememanagement.plist | 22 + SynthController.h | 2 + SynthController.m | 10 + 15 files changed, 723 insertions(+), 106 deletions(-) delete mode 100644 English.lproj/MainMenu.nib/classes.nib create mode 100644 English.lproj/MainMenu.nib/designable.nib delete mode 100644 English.lproj/MainMenu.nib/info.nib create mode 100644 SimpleSynth.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 SimpleSynth.xcodeproj/project.xcworkspace/xcuserdata/island.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/SimpleSynth.xcscheme create mode 100644 SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/AudioSystem.h b/AudioSystem.h index 289b71e..90eeea4 100644 --- a/AudioSystem.h +++ b/AudioSystem.h @@ -49,6 +49,9 @@ typedef struct { - (MusicDeviceInstrumentID)currentInstrumentOnChannel:(int)channel; - (void)setInstrument:(MusicDeviceInstrumentID)instrumentID forChannel:(int)channel; +- (float)getVolume; +- (void)setVolume:(float)value; + - (float)getFilterCutoffMin; - (float)getFilterCutoffMax; - (float)getFilterCutoff; diff --git a/AudioSystem.m b/AudioSystem.m index e56a23b..b4de215 100644 --- a/AudioSystem.m +++ b/AudioSystem.m @@ -315,6 +315,28 @@ - (float)getFilterCutoffMax return info.maxValue; } +- (float)getVolume +{ + AudioUnit volumeUnit; + float value; + + AUGraphGetNodeInfo (graph, outputNode, NULL, NULL, NULL, &volumeUnit); + + AudioUnitGetParameter (volumeUnit, kHALOutputParam_Volume, kAudioUnitScope_Output, 0, &value); + + return value; +} + +- (void)setVolume:(float)value +{ + AudioUnit volumeUnit; + + AUGraphGetNodeInfo (graph, outputNode, NULL, NULL, NULL, &volumeUnit); + + AudioUnitSetParameter(volumeUnit, kHALOutputParam_Volume, kAudioUnitScope_Output, 0, value, 0); +} + + - (float)getFilterCutoff { AudioUnit filterUnit; diff --git a/English.lproj/MainMenu.nib/classes.nib b/English.lproj/MainMenu.nib/classes.nib deleted file mode 100644 index 1964871..0000000 --- a/English.lproj/MainMenu.nib/classes.nib +++ /dev/null @@ -1,79 +0,0 @@ - - - - - IBClasses - - - CLASS - GaugeView - LANGUAGE - ObjC - SUPERCLASS - NSView - - - CLASS - FirstResponder - LANGUAGE - ObjC - SUPERCLASS - NSObject - - - ACTIONS - - cutoffSliderChanged - id - displayHelp - id - displayLicense - id - midiInputChanged - id - openDocument - id - restoreAppleSounds - id - sendFeedback - id - visitWebSite - id - - CLASS - SynthController - LANGUAGE - ObjC - OUTLETS - - bankSelectLSBField - NSTextField - bankSelectMSBField - NSTextField - channelsTable - NSTableView - cpuLoadGuage - GaugeView - cutoffSlider - NSSlider - instrumentsDrawer - NSDrawer - instrumentsTable - NSTableView - mainWindow - NSWindow - midiInputPopup - NSPopUpButton - programNumberField - NSTextField - soundSetTextField - NSTextField - - SUPERCLASS - NSObject - - - IBVersion - 1 - - diff --git a/English.lproj/MainMenu.nib/designable.nib b/English.lproj/MainMenu.nib/designable.nib new file mode 100644 index 0000000..090f882 --- /dev/null +++ b/English.lproj/MainMenu.nib/designable.nib @@ -0,0 +1,549 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/English.lproj/MainMenu.nib/info.nib b/English.lproj/MainMenu.nib/info.nib deleted file mode 100644 index bf3ff8c..0000000 --- a/English.lproj/MainMenu.nib/info.nib +++ /dev/null @@ -1,20 +0,0 @@ - - - - - IBFramework Version - 629 - IBLastKnownRelativeProjectPath - ../../SimpleSynth.xcodeproj - IBOldestOS - 5 - IBOpenObjects - - 673 - - IBSystem Version - 9B18 - targetFramework - IBCocoaFramework - - diff --git a/English.lproj/MainMenu.nib/keyedobjects.nib b/English.lproj/MainMenu.nib/keyedobjects.nib index a4df7ec2c91ca67bc2057d4fbdf9d091d2db718b..ce2800df728a74792be583df51c7ea92fa1f2937 100644 GIT binary patch literal 25084 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 AppIcon CFBundleIdentifier - com.notahat.SimpleSynth + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/SimpleSynth.xcodeproj/project.pbxproj b/SimpleSynth.xcodeproj/project.pbxproj index 544d1ca..0a740cd 100644 --- a/SimpleSynth.xcodeproj/project.pbxproj +++ b/SimpleSynth.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 44; + objectVersion = 46; objects = { /* Begin PBXBuildFile section */ @@ -271,8 +271,11 @@ /* Begin PBXProject section */ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; + attributes = { + LastUpgradeCheck = 0720; + }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SimpleSynth" */; - compatibilityVersion = "Xcode 3.0"; + compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( @@ -371,6 +374,7 @@ C01FCF4B08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; @@ -378,6 +382,7 @@ GCC_OPTIMIZATION_LEVEL = 0; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_BUNDLE_IDENTIFIER = com.notahat.SimpleSynth; PRODUCT_NAME = SimpleSynth; SDKROOT = ""; WRAPPER_EXTENSION = app; @@ -388,13 +393,14 @@ C01FCF4C08A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + COMBINE_HIDPI_IMAGES = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = 10.5; "MACOSX_DEPLOYMENT_TARGET[arch=ppc]" = 10.5; + PRODUCT_BUNDLE_IDENTIFIER = com.notahat.SimpleSynth; PRODUCT_NAME = SimpleSynth; SDKROOT = ""; WRAPPER_EXTENSION = app; @@ -405,8 +411,7 @@ C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ENABLE_TESTABILITY = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = SimpleSynth_Prefix.pch; GCC_VERSION = ""; @@ -417,6 +422,7 @@ HEADER_SEARCH_PATHS = .; "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = ""; "MACOSX_DEPLOYMENT_TARGET[arch=ppc]" = 10.3; + ONLY_ACTIVE_ARCH = YES; PREBINDING = NO; SDKROOT = macosx; "SDKROOT[arch=i386]" = macosx; @@ -427,7 +433,6 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(NATIVE_ARCH_ACTUAL)"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = SimpleSynth_Prefix.pch; GCC_VERSION = ""; diff --git a/SimpleSynth.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SimpleSynth.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/SimpleSynth.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/SimpleSynth.xcodeproj/project.xcworkspace/xcuserdata/island.xcuserdatad/UserInterfaceState.xcuserstate b/SimpleSynth.xcodeproj/project.xcworkspace/xcuserdata/island.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..31a0ae9806d54da42d2b56ee502ad8ad5f5a1bbe GIT binary patch literal 34281 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 + + diff --git a/SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/SimpleSynth.xcscheme b/SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/SimpleSynth.xcscheme new file mode 100644 index 0000000..9e5fb8a --- /dev/null +++ b/SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/SimpleSynth.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/xcschememanagement.plist b/SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..4271997 --- /dev/null +++ b/SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + SimpleSynth.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 8D1107260486CEB800E47090 + + primary + + + + + diff --git a/SynthController.h b/SynthController.h index 53f6e3a..add4aae 100644 --- a/SynthController.h +++ b/SynthController.h @@ -20,6 +20,7 @@ IBOutlet NSTextField* bankSelectMSBField; IBOutlet NSTextField* bankSelectLSBField; IBOutlet NSSlider* cutoffSlider; + IBOutlet NSSlider* volumeSlider; IBOutlet GaugeView* cpuLoadGuage; NSTimer* uiUpdateTimer; @@ -48,6 +49,7 @@ - (void)updateMIDIDetails; - (IBAction)cutoffSliderChanged:(id)sender; +- (IBAction)volumeSliderChanged:(id)sender; - (void)updateCPULoadGuage; diff --git a/SynthController.m b/SynthController.m index 72435fe..9016227 100644 --- a/SynthController.m +++ b/SynthController.m @@ -38,6 +38,10 @@ - (void)awakeFromNib name:@"NSTableViewSelectionDidChangeNotification" object:channelsTable ]; + // volume slider values are percentage based + [audioSystem setVolume:50.0]; + [volumeSlider setFloatValue:[audioSystem getVolume]]; + // The following hardcoded values should really be dynamically pulled from the // AudioSystem, but the values you get when doing that make the slider very // lop-sided. I'd also have to set the slider labels dynamically. @@ -255,6 +259,12 @@ - (IBAction)cutoffSliderChanged:(id)sender [audioSystem setFilterCutoff:[cutoffSlider floatValue]]; } +// This is called when the user moves the volume cutoff slider +- (IBAction)volumeSliderChanged:(id)sender +{ + [audioSystem setVolume:[volumeSlider floatValue]]; +} + - (void)updateCPULoadGuage { From 18a59c978f0bf8510e9a155601f6f46aaae07d88 Mon Sep 17 00:00:00 2001 From: szTheory Date: Tue, 10 Apr 2018 15:01:31 -0400 Subject: [PATCH 06/10] update README with basic info and screenshot --- README.md | 5 +++++ .../UserInterfaceState.xcuserstate | Bin 34281 -> 34403 bytes 2 files changed, 5 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..5bfddef --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ += SimpleSynth - A MIDI synth for Mac + +I added a volume control slider and updated the project to build for El Capitan. + +https://user-images.githubusercontent.com/28652/38577801-f500cf4e-3ccf-11e8-9028-439a79f35024.jpg \ No newline at end of file diff --git a/SimpleSynth.xcodeproj/project.xcworkspace/xcuserdata/island.xcuserdatad/UserInterfaceState.xcuserstate b/SimpleSynth.xcodeproj/project.xcworkspace/xcuserdata/island.xcuserdatad/UserInterfaceState.xcuserstate index 31a0ae9806d54da42d2b56ee502ad8ad5f5a1bbe..1739bcd9f593b483361ae860b9a25b95b3d451e3 100644 GIT binary patch delta 13369 zcmZvB2V9fa_xF=0`fMO!LkNb1kpKw^5C~gFcESz<84w5{!%;=8TASQzt=4T^RjcA2 zIO=TGTC3JswQj3*Yg_ByTi*w%T7UnS@F6_s+&B8^BB(u}kqeULAak;qrbC}a#W5t)L_KxQFxkcG%n z3A}EStD2`Gn3-v>}PBawlhVsxbRD?#OF{lKUp~+|lszi;b3ALg&viOxlrpi9v;=w|c~dK5i@o<`52H_+SY9rQl>9D^_f^ThnI0IVA( z$I`HDOpg^{cB~gR2pftyu`$?KY!WsVn}yBC7GusO*a~blwhmj5eUJTs{fKSD_G2fp zKd{T#U)UY&F7_0AhP}bN;1uqQ2jX0uj|=fQJONL{6?i({9nZ#n zcmv)OZ^WDMPw~O{5PT^989odjj(>%Z!YAWydzlT4=pW`p^m-s6JCJ;hM z#1djcM#K|IL^6>^q!ZnVY(hz>2pyp(3W!3YlrRw$L?vM(s)$;`LG&aViC#o+q94(p za1u@z0f=$Lcwz!EizVkPkdv6+t2GM&sIwWN;JlSQP7EF&$Xm9&$M zWN)$`Ifxua0`d!Typx+2%gGgFJGqivMXn~-kl&GO$#vvn?YAFXLsH5ts2CA9rP4%JrQUj^s)K}CfYAiL5nnX>e zrcu+WS?+6yu}c7e8`dSEabBK}cidX;t{5tf<;jxd@^$_F6-;Jwykgy|psrmR{_EC< z4rbsU0QPnj0N8I`67K;MuV*&9mbqTKUby4Kos9nL)`m+MMCH(wL|H5^S)o{WGvWjT zPDx(3Gb$Ws^mqR)ji(23Wb?at?E#G60OJq9xCt1yTruu@83Okm`45a=)-6kV$#5cE z!1%EZ=?)k>T`|WX93mhR$wib+^wh!tvwqM>#q0OmvOfN|KJmh#fk3+gk^75z?rUt|aryA1gR z=?Be4TA_JR8#EtU04)TJBY<(#l>ivWT!}8ZE6J7YQY=G;LI!9l@;Ty!meQYgWH?|P zcZIkNfN>HqPP+{BrvNa{xM!sf<&B0&$c}t%$uB9k_im`m?K7ZvD`1>B3Z+76$XH~Y zyC}`K>jGpvGQnMtCLkx#RvV2>rl+{w!_tDCr#c5tMW$8emuP!C>OL*0Yn_iwhcf^3 zd=&bgp7ss21u%Yh>5kHG+y?!GeCtXpe7C^4NZSY7&IgRMA8fk_S^TkWmmzDQ*u}_l zWChY5kE}#iA*%u79AKOWj0=Eq5il+R#^uG#?~t{$8KRL5P&8n$0pkj70U850+?w=7 z;Xffeq1Xk;cI0Pd2Vh(UjB9}L=K^FGZLHmZ@mGg={&BN2K2P`+In;*Ge)=0QuABb@ zjLu~rL5|XfGY)9A*U*5eYh8dGL5{h1WK`NtBbPfo_IuZd$XVnM_zI zdO&^JP)`8EuINqz8|pJ3^+tUF%mgs@9&xBY8U*>zM+4A60Cxd!*ZF8L$^kF}VAK^= z+~_E79sFN&6gB+oNtBO9d^C}qk4B8GtdP z4V44f(-qUHrUL4-08K$t(KG;i0hk3~_6J=v(QNnmoKU6;)wd?n0)5^2xs!_RkfIIV*5F4{DKZdqQF|6p1y+OuQId%45VQSR^Z5}aev zap-t-0@My)K__>B&~*;LApi~oa14NB-zGl*$G=Y==u~t%Z3U>_#cM-n0GRvE2(vnT zH5>gFz@Y%@u|dVuwJ&|U7Ilo7ptftEl^ z(Y>9?23i7OflE&(8#tmf)6fre!lg3+^aFYr+5&9_aJWn7O8++xpvPTlru-5^pN6+- z0zFBm2{`h7nn2HdNE7HE=oNR7s$1B#4lkg8qt`p4K}cJa{t^K=`kke2x+kgl?7RQX zq38qju{+z_zxz8&yg*;QxAJQMi~pUAF=(h^Fvi4a-_lEt1F-D9sWB8IXsB`HFfYve zBRlFaUl$!8(hi$XnfG6lV}Tflh9kEN#>1lBzk5eJu~<6e8z2KF#bj7Kme8Snf~$ar z28{~ZZYBU%0J!qKp|K=PL95Cb;`*cwO961=2TnSc*}(y>{%u$mfaM=JIhYFaU%(i} z7|r?(@yIoR#ELMq`F$-p4 zTA4Q2V*o1v+#SH$j$cMFU~oRXt_E{^g$Fcajm&zC-oXK!;(7t#^!K>JdSm@)TrvAI zTbTn~uUxNPZx&$vu~z0_0H*>t4KUyj!al_Yf0XjE&#+-16I|Gr?xKibC-xOK3L6a= zbg*UsI1|8Gt{CgkBv~?Da>UDJ68W&sHI9Q6^SknxvjAfdV2~dcIvI0!3O>R3g|QnV z8G9Iev1!*c@ywHV?o#-2j{iU?qT6v`EHD z#wm!z7C;8Z835w?_b!nh!8O(#{|LH%#ybYF<{cgN|twVOMm1BYlea0U(oxCemC->ZRl#WDA4eJIldXSpx&xlY^<_wV%Jad-ec5FP}Pco1|Q z=fFb&T<3xSYwgWwTx0v-n0JNR|3Jpi`+$N#th4}a%>2Y{{r z@jou2{f|fEF?cL42Cxl;!qot_1GwhB|8Z%jr>j2lKc3M^t^Gg#-)Z1GRnT>K1Z0P< zL$s)R7v$RGg5Kf{*VCxL>AYfo4_UkbFNb26;)Qq-UW}LErML+%!)YVYn@=Nvn*iJl z;1&S)0&s5t_o2%_yb?F#7Tk*4@G88zW4q}Km@r^=1xz2ni~`Iq8o<=Ldm1liHshZ_ zv5W8)ycgaZ?}PUR@FxK72jKnyZUyjwMR-5FKi-NDzy|`D{&fL(K7bzr_;p9!9Ob^5 zAL3q^e=O>A+(kPTcLI1&8x87%kdR>JH8TMg|7zi2mpTx;E@3S z3c#ZPJbE$y9ljP{hp)#s;2Qz_HGszecq)LW0eCuq+t!(j5*dc=_zwEroplSo6ToBN z!FYEEjQ8MlNR9*WQS1Mn#T(;4_YfG+{~Du8Lj`~%?I0KWGT zB#4+!NGx=NvRwBmlLsm7BrL9CN#9~5sLY#`chZ(tv6A1?s>_0~)K1!RdSW4&)%nm~ z#ge}rFs}#UX7%tO^E&CPK1`(CHkz*Oq_6ofJ^;(_q^))T)I*1rbUv(iv&)TSdFR8% zDwg)GbY7IFyRDo{T080AfAAyeeqA1b)pXJ~yT7XzyI*%_yI*DzzW)h6qM>uZR`=?- z%#Ro?os4btYrDJ2N)POlPQrFKuTsfuB?h}MT7sBEh@tL7mHzITm43`Gh_5(uHrfPZ&4Tf&%UhzlJP(=QU2=!sVVd=|iebWA+wiVy3Z6?-JLE+iykRA?|jHz5w8hZp0eKd_uhJ5bg1bc-_gl z4B#tngO%5X>`D^uzSbZQlB7CW*8u#ddm25-hYWnn2_l0#Ie!EAy8EIvEIN#gq&IlR zI>vg&2F6C$aMuXem#&cu$tY3?MU(XT;|73lc4&Uf9b=1TN=f-!K}lqCr=U9kzU%(n z7RJmZbKi3ENM$GIK7b#%_u9gu3}il?vPdI=g$&VTG?Rb{Yykn};S zjVuT7(>Agaz|Y*as_-%!opi`506%xJPSCmiCRxL{LDrHEdK;@DOUa&9ELPp8eeJy+ zrTy%^``7ks?Auz=*l|NpXm9Na;8!jP1Mp)2zc@xVkoItjaz1*j(V)9?UJzkT2 z$iC)(ZxuS`%qKsAGXG2H9Mzv}r7I?Fo{~O7bleo?4kt&^=4aM29n3mrz3Zv#nd`ah#X^|R zq|4iP7gT`3q(yX=G2{gLV#L3VoCuiAHgYn(rMmO%;l}2Rj)79~hqef7kgNd5qqd$Rp%YzzhP+;Q8cn@&sUV0F&PN zYemLC$O|3(bL4rz3< z{s;k61ennaD3rn|+7~f^sRqm>_a;Z5A}^@VB8o+^DR0V$qKz91mEhqj?)n{ z9WXOoF|`mc0)}`;DFZ}OMk;^Z@AZ9PXXe{Dq6(=Z>-)>BJbSBs0Zl4~GRyKyI-dS@ z7*$G{>7t2VaT(Qv3Z^Qk%D3z84w%{W(g8CEFmo4EA+R@PqpDzU*qb&3eHLNn0jA2; zPJd`)@absHrfZUcjje-=-R*VW?%x}o&YrYVjZ{;Q{1QoPW3RfmDY;hw^Dz}t35%mduiibQQFUZ5ibaipPyYHd~ zL4B5!gQ>xEed0w|Cv56-%1OB>K&J)TQ@Xch30;cNHOU6RGyrBkU={*qG41dV1uWHB zz%up!yN6O^IwQwOSGEfO|4f+JNiX<#xAv!~shy0X55+)7@j&0s&+KHBd|;4nSBtN6 z4mH|MHq92gMe`H> zGrp5<((J+a;Ro=8bcOpj{(>$Nlj(-bU}7Zk4Y8EiNPJIsPYx1ih;zgR;xciS?wLHN zJ0%!NkQC`ja_Bw@pA08OWDMOci6fmEWFg%osigOrzI1B;g8YgcO^zWal9TD~$TV^; zxs>jLY$Ny38R#l`k9#UA}U#&~S?*yr>(>T$v2lE)Q~YaX{f zo_aj@ggkLijwjzU##7;$<(ci7>#6iKc;&+~K*)^ML1h&l{c(JRf^L^?dHd^dh}jUR*DsSE5&vm%=O6E7!~FFSH@0Z@MeIOs$r;88b6Xe73;rev*3G)&7MEFGch!&wO9_zVdzJ=jq4t^Y-)g^Y;t% z3-$}~3-ycfOZF@FtM~iDZ=PSf-!{Jke#iYz`knSWwc%XkEKQJ~>5-1If59}K_ zIB-JXl)&YI&UJz31Fr;m2E_!G2HAreg9Zc*3K|?VG-yQ7*Fh74W(3U&`Zj28(8i#h zLB9qa3i>VRXwdPXb3qq^E(Ki)x)$_T(A}Wt!Ciy7!O_79!Sdkb;FRFB;Jjc}uqId+ zYzWQ|ZV4V8+#dW(@S)(t!AFA62VV-l68vZI-@*R`zve(34=0Dk@#gq(0yse&J|~JJ z;>2*ooK#L0C!3SY(QtGe11F!;gX7>da+*24IQ=-SoPnHAIe;^sGl}EoOykVp%;YTK zEafccv~yN*ws5v{c5rra_Hhny4ss52e&<}~+~GXrJmx&*yyCnGVT3S4{6a!QVnSj= z#36AZ&h8$C1^&wkA_JsTs@;Kya$n%hwA+NbUTt99AH;BvO za=DRQF*lAY<0f$B+#GHmSH;zEP23*b3a**kliS2?;r8YZ;eN#(%^kxX$6d@_%3aQF z=dR*z;%??{w$I zv3L=@D4vKH!;|o2yhL6yFNK%R%j9+E8F*E^Uc7I4Yj_uUH+gTuJj0^G62r2?%EO$M zVU{pkSan!Um?Nw{tY=tLSW8&%urI^D3L70ZHf(&@#IVU>Q^RJ2%?g_nHZN>`*v7EK zVQ0er4tv8V_Z37i5T7$F!bm>`%em?D@aSRhy{STEQp_+GGCuvM^4uw8Iia71uSa8mHQ z;H==h;F91Cj*N6iPK})5jGP%cJ91fMd*rIfHIbVm_eAcG{5A4W zL_Ugq5|tHI9yKOvM%2ux*->+&mPW0JS{1b>YG2fusB=*lqAo{Wjd~UJMhFYL2vK2( zu$z!C3>QWTqlF2=RAGj&yD(R%6c!6hg*}87!g^t&uvyqkI7B#1=oA8>bDVIRaDi~K zaH(*)aHnv$aIbK`@K@mp;c4Mn;W^S!u!HU!Y86GB2VS9CyhNOVMWTy#owMs!YeQ*=jkU-U@y zRP;jhI+_v9jAliLIHQxJ_0bK{Uq(-gUK9Oe^zP_=(Z5C?jy@WFHu`+@rRXcse@6cu z!;FcJQN&coG{*Fc85}b{W>UjbMZ8yhO8mR{toWSxg7}j7iujuNq45@!IcS(*U&nYoV3MC~HlcZcyDXEq8k_?iJl}wOKmQ0aMlgyB`NtR1iO4dl$Nj6Hp zm;55xD>)!JD7hrLBDpKMFL@|=9LJ2q;>bA9IG;GbxWKsJxP&-OTxpy=&JouT*A&+) zu20;MxVdrdajWCLi(40WFYb+$l6p#6QXgrEw42n)mxfC-q&jJlv_xu>_K@17c4@7& zUfNUoiL_NZNIFydwv-C&lPtqOIU!;4a$ED|_ z7o?Y@SESdZx25-_52cT#&!jJ8U1X??kWn%(S%^#^i;zXhL^7!?L6#&-k)_ErGObgl zlNn?cvPzj*W|cL``pX8&2FpH^Ic1|{V`SrHlVnq5(`1Wet7IEw-^;ehw#l~3cFB&& zj>?Y7PRRa|-ICpv-IqO*J&k9?WAS9XXFNOJC!QD2kB^9ticgGBj!%hCi`T^K?rsKl=m-HG!O7bPxnCN4`{ zmAEExUE+qsZHWgG4<#N+Jf3(m@pR(N#Ak`m6JI30k`rCC!{m{2kvvu| zk*CSK%X8#;a;;o1&zBd0UZQPR?+ z#~ z;(_9^;+f*5;&lp{LZx`5c%_7-#H2`4WGRU$$tkHR87bXU3Q~$wN>j>G%2UiK)|9Fg zdrE7{w3HuHE~UIq<)>;=okgj|simp*)YjBNsY6mfOLeA#)ZwXLrhb(=I(2sH+|;(z z1*wZum!+;qU75N%b#3bU)U#=fw3xKSwCuFJG-H}Qt!LV2X?OJu*EZJt;lKnVz1Wm7bHX zOfOD1rI)8yrd!gh((UQB>7S?1NMD6U&UrRAlNi^D~PwOEY_9R%Ti=t21je>oW&u z4$b^L6J(Ca9GN*fb8P1LOy{Ibcjl_h9hoOHuVuc%*dJP%vq4LFlR~5 znw;-)*5~}3vnyv$&ifp5(mDd7TU8cFjd|@mw-DFqfO# zEjKJTGFO-zog15*lAD>^JvS#;ovY2&=NfY>bE|S|a_e%Na$9nH=l0E=oVzCXZtk<( zm$|R=pgfPfki5`5UY;N?BF`C>C(4V-OU=v3>zGBMD`FRua+VeK#eV?}_ z@5j9Tc^C37gCS@PxC(2gkK&4YTRyoP3bStMSXDVka=P2hX zS1Q*lH!8nZZdU%R+^O8H+^0OCJgvO0yrI0MyraCQe4u=!e4>1&B2*qKFBMzmtMXR` zs)AJ^s!&yoN}`gg;#Fy?3{|empej%msVY?#l~vWG8l)Pm8mbzma;ku8xN4$mvTCYo zy6PL%Y?X7as!g?AwL-O0wM%tSbx8G_>YVDb>ZQZ%u+N`#!Yt#;PgSt`OPwiBXP>)oPQjb$l zP)}03)$`Qr)Em^B)IX@VsDD)dr2bjG)2aSNeOi4+eNKHreMx;q{ipi6`lkAh`kwl= zhM{3<5Dl&&HGvwAhO6Oe1eypOX-;XJzia-`oY!2^ zT+!UsJkdPUywJSTcG03*LhGUR(uQcc+E6V|E7nT1aax%+Q>)hMv_@^AwnS^uR%vUr zb=scVChezMpdG0ltsSc!ubrixt^HOzSG!)jNxNCQRl7~QUAs?vRC_{uT6weJf(CyOg*6r2p*B#TH)cvkIt2?i|sJo?mtb3|^u6wC_tw;5^p45Bjz4UB-s6I?D z&`0Wp`e=Q!K2@Kt&(i1U^Yli2vEHOF*H`MD4f+;+Z+&0=0R15S5dCNRFZGl4)Airz zXX)qZ=j#{gm+05%f7EZ+@6i9E->cuRKc+veKdV2lzo@^ZzpsC&f2@C@f2Dt8U>H0N zJ_bKSfFZ;XYTz08hB$-NATuNw@(gN&)?hH?8yXCah89C_!zYH3hS7$xhVh1pPQzrw zEW<*>62o%CO2Zn%TEkC<9fnn}*wldxi%_$jCHyHKImeV}LQp$T3D46OGBn z6l0pP)Y!vVVKf`9#(HC;vBlWiIMg`SIKepCIMq1AILkQ4*k)X4++f^f+-&^OxZSwZ zxZAkT_^a`d@mfBd@0A~!?^NXv&L5M%IDcLKw)~&-cjfQN-=BXl|8)M@{PX#j@~`Iq zm4Cg!r@&Y+uwY)nv4V>QR|@_txL$Cx;C8`_f>#A^3gN<(LRF!$u&}VCu&mHpSXEe4 zSXbCkII3_(;je{P3vU(PEqqY;xbRI8R0J1!6?qr=6$KV?invA5MX^N^XOXO^wFnfA zFPc;|rD%H5%%X3L<`u0hT2r*HXk*b2MO%x0D*CzTUU5jVzIbr)(&8h;EG$`4(q6K< zWNpd%k_{!>N{*FWEV)#2x#Vhz^H#~-k_RP^N|91lsZXhYX;5iMX;o>@(gCGIN{5xY zO1~@}RXV10T9Xmn z>7MC<>5=JaS$dhaOkZX!D=ZscHnD7S*_5*BWk<@+mt8EoTz0L8s7F!{MUT`T89fH{ z_@c*%9wU2SqnGI)kkt)(C5yHN~p37Fdg|CTqFXY;{;0tWDMyYai<;)*;s6)``|{ zth21&TIX8Ztjnz{t!u1ntsAVHtlO>otS7A(te36Vtbbc?SRY!SSf5*8THn|hHp1p( zmu)Rcw`{ zN>-Inm0qQ+Dy}kBl~tG&tI-#)-T$UfLU)IP#K(mu-mwSAm@f_=7qu6@3Jk$tIs zx&3?lF8dMtW&1Vz-}W2!+xC0*hxRA-=QU)Fr?ZAt<6Yxd6IjEk39aGP@M~ggl4}ZU z8frePnN+i^W=GATng=z{YhKhMwLZ0>wPCg4wNbUvwc=VuZCY(+ZFX&5t-4lQTUJ|M zTUl$ZonE`Jc5&^}+7-3eYVX%RseNAi$^kpNIxq*}U^xODJcr1U&*MOp^^W@H`a$(0>c`ZNub)&urG8fZocgx< zh4qW;SJ!`6zo~v#{ek*J^+)QD*PpFFUw^6oYW<(}ck1ugziuEKyc_%)0vk9D{Dz1I zVM9!VxFNA2qe0oYym4jY#>QQZ2O5tyUTD18c&G7xjV~HsH<3-AO{^xLCjTa9 zU{i2YNK93}n%}_JkOg4Kr`!@SG2Q~*c3z`+pY0a6< z+0A*)>SkTDvAM9hq`9oQyt%Hqp}DcSrFnVtrsf}-w={2Se$)cDbZJ3a@D@W$MT@z` t+EU#zqh(Rcl9pvH?JZYZ9=E*c#eksDj&33hzwIeP)V$8`cYk{^{~yD@SAqZl delta 13287 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 Date: Tue, 10 Apr 2018 15:05:29 -0400 Subject: [PATCH 07/10] README fix image --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5bfddef..194407a 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,4 @@ I added a volume control slider and updated the project to build for El Capitan. -https://user-images.githubusercontent.com/28652/38577801-f500cf4e-3ccf-11e8-9028-439a79f35024.jpg \ No newline at end of file +![38577945-715d8320-3cd0-11e8-801e-3fa0b0b9b03e.png](https://user-images.githubusercontent.com/28652/38577945-715d8320-3cd0-11e8-801e-3fa0b0b9b03e.png) \ No newline at end of file From 909ca2017bb85f9847b08737459e8f487696956a Mon Sep 17 00:00:00 2001 From: szTheory Date: Tue, 10 Apr 2018 15:06:08 -0400 Subject: [PATCH 08/10] README fix formatting --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 194407a..fee5468 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -= SimpleSynth - A MIDI synth for Mac +# SimpleSynth - A MIDI synth for Mac I added a volume control slider and updated the project to build for El Capitan. From 32113d4ef209bab662754c8642b700e83fbb261d Mon Sep 17 00:00:00 2001 From: szTheory Date: Tue, 10 Apr 2018 15:12:25 -0400 Subject: [PATCH 09/10] Update build for MacOS 10.13.4 High Sierra --- SimpleSynth.xcodeproj/project.pbxproj | 52 +++++++++++++++++- .../xcshareddata/IDEWorkspaceChecks.plist | 8 +++ .../UserInterfaceState.xcuserstate | Bin 34403 -> 32766 bytes .../xcschemes/SimpleSynth.xcscheme | 2 +- 4 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 SimpleSynth.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/SimpleSynth.xcodeproj/project.pbxproj b/SimpleSynth.xcodeproj/project.pbxproj index 0a740cd..51e1e17 100644 --- a/SimpleSynth.xcodeproj/project.pbxproj +++ b/SimpleSynth.xcodeproj/project.pbxproj @@ -272,7 +272,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0720; + LastUpgradeCheck = 0930; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SimpleSynth" */; compatibilityVersion = "Xcode 3.2"; @@ -374,6 +374,7 @@ C01FCF4B08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_WEAK = YES; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; @@ -393,6 +394,7 @@ C01FCF4C08A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_WEAK = YES; COMBINE_HIDPI_IMAGES = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; @@ -411,13 +413,37 @@ C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = SimpleSynth_Prefix.pch; GCC_VERSION = ""; "GCC_VERSION[arch=i386]" = ""; "GCC_VERSION[arch=ppc]" = ""; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = .; "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = ""; @@ -433,12 +459,36 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = SimpleSynth_Prefix.pch; GCC_VERSION = ""; "GCC_VERSION[arch=i386]" = ""; "GCC_VERSION[arch=ppc]" = ""; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = .; "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = ""; diff --git a/SimpleSynth.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SimpleSynth.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/SimpleSynth.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/SimpleSynth.xcodeproj/project.xcworkspace/xcuserdata/island.xcuserdatad/UserInterfaceState.xcuserstate b/SimpleSynth.xcodeproj/project.xcworkspace/xcuserdata/island.xcuserdatad/UserInterfaceState.xcuserstate index 1739bcd9f593b483361ae860b9a25b95b3d451e3..a6c2eb7cef1f505af393db9e33619623ac375fc0 100644 GIT binary patch literal 32766 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 literal 34403 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 diff --git a/SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/SimpleSynth.xcscheme b/SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/SimpleSynth.xcscheme index 9e5fb8a..714f1fa 100644 --- a/SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/SimpleSynth.xcscheme +++ b/SimpleSynth.xcodeproj/xcuserdata/island.xcuserdatad/xcschemes/SimpleSynth.xcscheme @@ -1,6 +1,6 @@ Date: Tue, 10 Apr 2018 15:12:54 -0400 Subject: [PATCH 10/10] update README for MacOS 10.13.4 High Sierra --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fee5468..c00440c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # SimpleSynth - A MIDI synth for Mac -I added a volume control slider and updated the project to build for El Capitan. +I added a volume control slider and updated the project to build for MacOS 10.13.4 High Sierra. ![38577945-715d8320-3cd0-11e8-801e-3fa0b0b9b03e.png](https://user-images.githubusercontent.com/28652/38577945-715d8320-3cd0-11e8-801e-3fa0b0b9b03e.png) \ No newline at end of file