├── .gitignore
├── README
├── example_advanced
├── Makefile
├── Project.xcconfig
├── bin
│ └── data
│ │ └── audio.xml
├── config.make
├── emptyExample.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
├── openFrameworks-Info.plist
└── src
│ ├── main.cpp
│ ├── ofApp.cpp
│ └── ofApp.h
├── example_fft_export
├── Makefile
├── Project.xcconfig
├── config.make
├── fft_export.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
├── openFrameworks-Info.plist
└── src
│ ├── main.cpp
│ ├── ofApp.cpp
│ └── ofApp.h
├── example_ios
├── Project.xcconfig
├── bin
│ └── data
│ │ ├── .gitkeep
│ │ ├── Default-568h@2x.png
│ │ ├── Default.png
│ │ ├── Default@2x.png
│ │ ├── Icon.png
│ │ └── Icon@2x.png
├── iPhone_Prefix.pch
├── ofxFFT.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
├── ofxiphone-Info.plist
└── src
│ ├── main.mm
│ ├── testApp.h
│ └── testApp.mm
├── example_osx
├── Project.xcconfig
├── bin
│ └── data
│ │ └── sound
│ │ └── 1085.mp3
├── emptyExample.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── emptyExample Release.xcscheme
├── openFrameworks-Info.plist
└── src
│ ├── main.cpp
│ ├── testApp.cpp
│ └── testApp.h
├── libs
├── fft.cpp
└── fft.h
├── ofxaddons_thumbnail.png
└── src
├── ofxFFTBase.cpp
├── ofxFFTBase.h
├── ofxFFTFile.cpp
├── ofxFFTFile.h
├── ofxFFTLive.cpp
└── ofxFFTLive.h
/.gitignore:
--------------------------------------------------------------------------------
1 | build/
2 | DerivedData/
3 | .DS_Store
4 | *.pbxuser
5 | #*.perspective
6 | #*.perspectivev3
7 | *.mode1v3
8 | *.mode2v3
9 | *.app/
10 | *.xcuserstate
11 | xcuserdata/
12 | xcshareddata/
--------------------------------------------------------------------------------
/README:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/julapy/ofxFFT/134cfe47be41da319b11ad3bb835311dc4ae36ef/README
--------------------------------------------------------------------------------
/example_advanced/Makefile:
--------------------------------------------------------------------------------
1 | # Attempt to load a config.make file.
2 | # If none is found, project defaults in config.project.make will be used.
3 | ifneq ($(wildcard config.make),)
4 | include config.make
5 | endif
6 |
7 | # make sure the the OF_ROOT location is defined
8 | ifndef OF_ROOT
9 | OF_ROOT=../../..
10 | endif
11 |
12 | # call the project makefile!
13 | include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk
14 |
--------------------------------------------------------------------------------
/example_advanced/Project.xcconfig:
--------------------------------------------------------------------------------
1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT.
2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED
3 | OF_PATH = ../../..
4 |
5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE
6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig"
7 |
8 | //ICONS - NEW IN 0072
9 | ICON_NAME_DEBUG = icon-debug.icns
10 | ICON_NAME_RELEASE = icon.icns
11 | ICON_FILE_PATH = $(OF_PATH)/libs/openFrameworksCompiled/project/osx/
12 |
13 | //IF YOU WANT AN APP TO HAVE A CUSTOM ICON - PUT THEM IN YOUR DATA FOLDER AND CHANGE ICON_FILE_PATH to:
14 | //ICON_FILE_PATH = bin/data/
15 |
16 | OTHER_LDFLAGS = $(OF_CORE_LIBS)
17 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS)
18 |
--------------------------------------------------------------------------------
/example_advanced/bin/data/audio.xml:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/example_advanced/config.make:
--------------------------------------------------------------------------------
1 | ################################################################################
2 | # CONFIGURE PROJECT MAKEFILE (optional)
3 | # This file is where we make project specific configurations.
4 | ################################################################################
5 |
6 | ################################################################################
7 | # OF ROOT
8 | # The location of your root openFrameworks installation
9 | # (default) OF_ROOT = ../../..
10 | ################################################################################
11 | # OF_ROOT = ../../..
12 |
13 | ################################################################################
14 | # PROJECT ROOT
15 | # The location of the project - a starting place for searching for files
16 | # (default) PROJECT_ROOT = . (this directory)
17 | #
18 | ################################################################################
19 | # PROJECT_ROOT = .
20 |
21 | ################################################################################
22 | # PROJECT SPECIFIC CHECKS
23 | # This is a project defined section to create internal makefile flags to
24 | # conditionally enable or disable the addition of various features within
25 | # this makefile. For instance, if you want to make changes based on whether
26 | # GTK is installed, one might test that here and create a variable to check.
27 | ################################################################################
28 | # None
29 |
30 | ################################################################################
31 | # PROJECT EXTERNAL SOURCE PATHS
32 | # These are fully qualified paths that are not within the PROJECT_ROOT folder.
33 | # Like source folders in the PROJECT_ROOT, these paths are subject to
34 | # exlclusion via the PROJECT_EXLCUSIONS list.
35 | #
36 | # (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank)
37 | #
38 | # Note: Leave a leading space when adding list items with the += operator
39 | ################################################################################
40 | # PROJECT_EXTERNAL_SOURCE_PATHS =
41 |
42 | ################################################################################
43 | # PROJECT EXCLUSIONS
44 | # These makefiles assume that all folders in your current project directory
45 | # and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations
46 | # to look for source code. The any folders or files that match any of the
47 | # items in the PROJECT_EXCLUSIONS list below will be ignored.
48 | #
49 | # Each item in the PROJECT_EXCLUSIONS list will be treated as a complete
50 | # string unless teh user adds a wildcard (%) operator to match subdirectories.
51 | # GNU make only allows one wildcard for matching. The second wildcard (%) is
52 | # treated literally.
53 | #
54 | # (default) PROJECT_EXCLUSIONS = (blank)
55 | #
56 | # Will automatically exclude the following:
57 | #
58 | # $(PROJECT_ROOT)/bin%
59 | # $(PROJECT_ROOT)/obj%
60 | # $(PROJECT_ROOT)/%.xcodeproj
61 | #
62 | # Note: Leave a leading space when adding list items with the += operator
63 | ################################################################################
64 | # PROJECT_EXCLUSIONS =
65 |
66 | ################################################################################
67 | # PROJECT LINKER FLAGS
68 | # These flags will be sent to the linker when compiling the executable.
69 | #
70 | # (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs
71 | #
72 | # Note: Leave a leading space when adding list items with the += operator
73 | ################################################################################
74 |
75 | # Currently, shared libraries that are needed are copied to the
76 | # $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to
77 | # add a runtime path to search for those shared libraries, since they aren't
78 | # incorporated directly into the final executable application binary.
79 | # TODO: should this be a default setting?
80 | # PROJECT_LDFLAGS=-Wl,-rpath=./libs
81 |
82 | ################################################################################
83 | # PROJECT DEFINES
84 | # Create a space-delimited list of DEFINES. The list will be converted into
85 | # CFLAGS with the "-D" flag later in the makefile.
86 | #
87 | # (default) PROJECT_DEFINES = (blank)
88 | #
89 | # Note: Leave a leading space when adding list items with the += operator
90 | ################################################################################
91 | # PROJECT_DEFINES =
92 |
93 | ################################################################################
94 | # PROJECT CFLAGS
95 | # This is a list of fully qualified CFLAGS required when compiling for this
96 | # project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS
97 | # defined in your platform specific core configuration files. These flags are
98 | # presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below.
99 | #
100 | # (default) PROJECT_CFLAGS = (blank)
101 | #
102 | # Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in
103 | # your platform specific configuration file will be applied by default and
104 | # further flags here may not be needed.
105 | #
106 | # Note: Leave a leading space when adding list items with the += operator
107 | ################################################################################
108 | # PROJECT_CFLAGS =
109 |
110 | ################################################################################
111 | # PROJECT OPTIMIZATION CFLAGS
112 | # These are lists of CFLAGS that are target-specific. While any flags could
113 | # be conditionally added, they are usually limited to optimization flags.
114 | # These flags are added BEFORE the PROJECT_CFLAGS.
115 | #
116 | # PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets.
117 | #
118 | # (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank)
119 | #
120 | # PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets.
121 | #
122 | # (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank)
123 | #
124 | # Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the
125 | # PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration
126 | # file will be applied by default and further optimization flags here may not
127 | # be needed.
128 | #
129 | # Note: Leave a leading space when adding list items with the += operator
130 | ################################################################################
131 | # PROJECT_OPTIMIZATION_CFLAGS_RELEASE =
132 | # PROJECT_OPTIMIZATION_CFLAGS_DEBUG =
133 |
134 | ################################################################################
135 | # PROJECT COMPILERS
136 | # Custom compilers can be set for CC and CXX
137 | # (default) PROJECT_CXX = (blank)
138 | # (default) PROJECT_CC = (blank)
139 | # Note: Leave a leading space when adding list items with the += operator
140 | ################################################################################
141 | # PROJECT_CXX =
142 | # PROJECT_CC =
143 |
--------------------------------------------------------------------------------
/example_advanced/emptyExample.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 67C8859018167DD30046C13D /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67C8858E18167DD30046C13D /* ofApp.cpp */; };
11 | 67F6F609186505C000D05482 /* fft.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F600186505C000D05482 /* fft.cpp */; };
12 | 67F6F60A186505C000D05482 /* ofxFFTBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F603186505C000D05482 /* ofxFFTBase.cpp */; };
13 | 67F6F60B186505C000D05482 /* ofxFFTFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F605186505C000D05482 /* ofxFFTFile.cpp */; };
14 | 67F6F60C186505C000D05482 /* ofxFFTLive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F607186505C000D05482 /* ofxFFTLive.cpp */; };
15 | 67F6F620186505D300D05482 /* ofxBaseGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F60F186505D300D05482 /* ofxBaseGui.cpp */; };
16 | 67F6F621186505D300D05482 /* ofxButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F611186505D300D05482 /* ofxButton.cpp */; };
17 | 67F6F622186505D300D05482 /* ofxGuiGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F614186505D300D05482 /* ofxGuiGroup.cpp */; };
18 | 67F6F623186505D300D05482 /* ofxLabel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F616186505D300D05482 /* ofxLabel.cpp */; };
19 | 67F6F624186505D300D05482 /* ofxPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F618186505D300D05482 /* ofxPanel.cpp */; };
20 | 67F6F625186505D300D05482 /* ofxSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F61A186505D300D05482 /* ofxSlider.cpp */; };
21 | 67F6F626186505D300D05482 /* ofxSliderGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F61C186505D300D05482 /* ofxSliderGroup.cpp */; };
22 | 67F6F627186505D300D05482 /* ofxToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67F6F61E186505D300D05482 /* ofxToggle.cpp */; };
23 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; };
24 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; };
25 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; };
26 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; };
27 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; };
28 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; };
29 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; };
30 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; };
31 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; };
32 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; };
33 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; };
34 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; };
35 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; };
36 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; };
37 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; };
38 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; };
39 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; };
40 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; };
41 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; };
42 | /* End PBXBuildFile section */
43 |
44 | /* Begin PBXContainerItemProxy section */
45 | E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = {
46 | isa = PBXContainerItemProxy;
47 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
48 | proxyType = 2;
49 | remoteGlobalIDString = E4B27C1510CBEB8E00536013;
50 | remoteInfo = openFrameworks;
51 | };
52 | E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = {
53 | isa = PBXContainerItemProxy;
54 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
55 | proxyType = 1;
56 | remoteGlobalIDString = E4B27C1410CBEB8E00536013;
57 | remoteInfo = openFrameworks;
58 | };
59 | /* End PBXContainerItemProxy section */
60 |
61 | /* Begin PBXCopyFilesBuildPhase section */
62 | E4C2427710CC5ABF004149E2 /* CopyFiles */ = {
63 | isa = PBXCopyFilesBuildPhase;
64 | buildActionMask = 2147483647;
65 | dstPath = "";
66 | dstSubfolderSpec = 10;
67 | files = (
68 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */,
69 | );
70 | runOnlyForDeploymentPostprocessing = 0;
71 | };
72 | /* End PBXCopyFilesBuildPhase section */
73 |
74 | /* Begin PBXFileReference section */
75 | 67C8858E18167DD30046C13D /* ofApp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofApp.cpp; sourceTree = ""; };
76 | 67C8858F18167DD30046C13D /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofApp.h; sourceTree = ""; };
77 | 67F6F600186505C000D05482 /* fft.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fft.cpp; sourceTree = ""; };
78 | 67F6F601186505C000D05482 /* fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fft.h; sourceTree = ""; };
79 | 67F6F603186505C000D05482 /* ofxFFTBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTBase.cpp; sourceTree = ""; };
80 | 67F6F604186505C000D05482 /* ofxFFTBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTBase.h; sourceTree = ""; };
81 | 67F6F605186505C000D05482 /* ofxFFTFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTFile.cpp; sourceTree = ""; };
82 | 67F6F606186505C000D05482 /* ofxFFTFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTFile.h; sourceTree = ""; };
83 | 67F6F607186505C000D05482 /* ofxFFTLive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTLive.cpp; sourceTree = ""; };
84 | 67F6F608186505C000D05482 /* ofxFFTLive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTLive.h; sourceTree = ""; };
85 | 67F6F60F186505D300D05482 /* ofxBaseGui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxBaseGui.cpp; sourceTree = ""; };
86 | 67F6F610186505D300D05482 /* ofxBaseGui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxBaseGui.h; sourceTree = ""; };
87 | 67F6F611186505D300D05482 /* ofxButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxButton.cpp; sourceTree = ""; };
88 | 67F6F612186505D300D05482 /* ofxButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxButton.h; sourceTree = ""; };
89 | 67F6F613186505D300D05482 /* ofxGui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxGui.h; sourceTree = ""; };
90 | 67F6F614186505D300D05482 /* ofxGuiGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxGuiGroup.cpp; sourceTree = ""; };
91 | 67F6F615186505D300D05482 /* ofxGuiGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxGuiGroup.h; sourceTree = ""; };
92 | 67F6F616186505D300D05482 /* ofxLabel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxLabel.cpp; sourceTree = ""; };
93 | 67F6F617186505D300D05482 /* ofxLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxLabel.h; sourceTree = ""; };
94 | 67F6F618186505D300D05482 /* ofxPanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxPanel.cpp; sourceTree = ""; };
95 | 67F6F619186505D300D05482 /* ofxPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxPanel.h; sourceTree = ""; };
96 | 67F6F61A186505D300D05482 /* ofxSlider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxSlider.cpp; sourceTree = ""; };
97 | 67F6F61B186505D300D05482 /* ofxSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxSlider.h; sourceTree = ""; };
98 | 67F6F61C186505D300D05482 /* ofxSliderGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxSliderGroup.cpp; sourceTree = ""; };
99 | 67F6F61D186505D300D05482 /* ofxSliderGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxSliderGroup.h; sourceTree = ""; };
100 | 67F6F61E186505D300D05482 /* ofxToggle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxToggle.cpp; sourceTree = ""; };
101 | 67F6F61F186505D300D05482 /* ofxToggle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxToggle.h; sourceTree = ""; };
102 | BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; };
103 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; };
104 | E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; };
105 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; };
106 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; };
107 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; };
108 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; };
109 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; };
110 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; };
111 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; };
112 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; };
113 | E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = emptyExampleDebug.app; sourceTree = BUILT_PRODUCTS_DIR; };
114 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; };
115 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; };
116 | E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; };
117 | E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; };
118 | E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; };
119 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; };
120 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; };
121 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = ""; };
122 | E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = ""; };
123 | E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = ""; };
124 | /* End PBXFileReference section */
125 |
126 | /* Begin PBXFrameworksBuildPhase section */
127 | E4B69B590A3A1756003C02F2 /* Frameworks */ = {
128 | isa = PBXFrameworksBuildPhase;
129 | buildActionMask = 2147483647;
130 | files = (
131 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */,
132 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */,
133 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */,
134 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */,
135 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */,
136 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */,
137 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */,
138 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */,
139 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */,
140 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */,
141 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */,
142 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */,
143 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */,
144 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */,
145 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */,
146 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */,
147 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */,
148 | );
149 | runOnlyForDeploymentPostprocessing = 0;
150 | };
151 | /* End PBXFrameworksBuildPhase section */
152 |
153 | /* Begin PBXGroup section */
154 | 67F6F5FD186505A500D05482 /* ofxFFT */ = {
155 | isa = PBXGroup;
156 | children = (
157 | 67F6F5FF186505C000D05482 /* libs */,
158 | 67F6F602186505C000D05482 /* src */,
159 | );
160 | name = ofxFFT;
161 | path = ..;
162 | sourceTree = "";
163 | };
164 | 67F6F5FF186505C000D05482 /* libs */ = {
165 | isa = PBXGroup;
166 | children = (
167 | 67F6F600186505C000D05482 /* fft.cpp */,
168 | 67F6F601186505C000D05482 /* fft.h */,
169 | );
170 | path = libs;
171 | sourceTree = "";
172 | };
173 | 67F6F602186505C000D05482 /* src */ = {
174 | isa = PBXGroup;
175 | children = (
176 | 67F6F603186505C000D05482 /* ofxFFTBase.cpp */,
177 | 67F6F604186505C000D05482 /* ofxFFTBase.h */,
178 | 67F6F605186505C000D05482 /* ofxFFTFile.cpp */,
179 | 67F6F606186505C000D05482 /* ofxFFTFile.h */,
180 | 67F6F607186505C000D05482 /* ofxFFTLive.cpp */,
181 | 67F6F608186505C000D05482 /* ofxFFTLive.h */,
182 | );
183 | path = src;
184 | sourceTree = "";
185 | };
186 | 67F6F60D186505D300D05482 /* ofxGui */ = {
187 | isa = PBXGroup;
188 | children = (
189 | 67F6F60E186505D300D05482 /* src */,
190 | );
191 | name = ofxGui;
192 | path = ../../ofxGui;
193 | sourceTree = "";
194 | };
195 | 67F6F60E186505D300D05482 /* src */ = {
196 | isa = PBXGroup;
197 | children = (
198 | 67F6F60F186505D300D05482 /* ofxBaseGui.cpp */,
199 | 67F6F610186505D300D05482 /* ofxBaseGui.h */,
200 | 67F6F611186505D300D05482 /* ofxButton.cpp */,
201 | 67F6F612186505D300D05482 /* ofxButton.h */,
202 | 67F6F613186505D300D05482 /* ofxGui.h */,
203 | 67F6F614186505D300D05482 /* ofxGuiGroup.cpp */,
204 | 67F6F615186505D300D05482 /* ofxGuiGroup.h */,
205 | 67F6F616186505D300D05482 /* ofxLabel.cpp */,
206 | 67F6F617186505D300D05482 /* ofxLabel.h */,
207 | 67F6F618186505D300D05482 /* ofxPanel.cpp */,
208 | 67F6F619186505D300D05482 /* ofxPanel.h */,
209 | 67F6F61A186505D300D05482 /* ofxSlider.cpp */,
210 | 67F6F61B186505D300D05482 /* ofxSlider.h */,
211 | 67F6F61C186505D300D05482 /* ofxSliderGroup.cpp */,
212 | 67F6F61D186505D300D05482 /* ofxSliderGroup.h */,
213 | 67F6F61E186505D300D05482 /* ofxToggle.cpp */,
214 | 67F6F61F186505D300D05482 /* ofxToggle.h */,
215 | );
216 | path = src;
217 | sourceTree = "";
218 | };
219 | BB4B014C10F69532006C3DED /* addons */ = {
220 | isa = PBXGroup;
221 | children = (
222 | 67F6F5FD186505A500D05482 /* ofxFFT */,
223 | 67F6F60D186505D300D05482 /* ofxGui */,
224 | );
225 | name = addons;
226 | sourceTree = "";
227 | };
228 | BBAB23C913894ECA00AA2426 /* system frameworks */ = {
229 | isa = PBXGroup;
230 | children = (
231 | E7F985F515E0DE99003869B5 /* Accelerate.framework */,
232 | E4C2424410CC5A17004149E2 /* AppKit.framework */,
233 | E4C2424510CC5A17004149E2 /* Cocoa.framework */,
234 | E4C2424610CC5A17004149E2 /* IOKit.framework */,
235 | E45BE9710E8CC7DD009D7055 /* AGL.framework */,
236 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */,
237 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */,
238 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */,
239 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */,
240 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */,
241 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */,
242 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */,
243 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */,
244 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */,
245 | E7E077E715D3B6510020DFD4 /* QTKit.framework */,
246 | );
247 | name = "system frameworks";
248 | sourceTree = "";
249 | };
250 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = {
251 | isa = PBXGroup;
252 | children = (
253 | BBAB23BE13894E4700AA2426 /* GLUT.framework */,
254 | );
255 | name = "3rd party frameworks";
256 | sourceTree = "";
257 | };
258 | E4328144138ABC890047C5CB /* Products */ = {
259 | isa = PBXGroup;
260 | children = (
261 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */,
262 | );
263 | name = Products;
264 | sourceTree = "";
265 | };
266 | E45BE5980E8CC70C009D7055 /* frameworks */ = {
267 | isa = PBXGroup;
268 | children = (
269 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */,
270 | BBAB23C913894ECA00AA2426 /* system frameworks */,
271 | );
272 | name = frameworks;
273 | sourceTree = "";
274 | };
275 | E4B69B4A0A3A1720003C02F2 = {
276 | isa = PBXGroup;
277 | children = (
278 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */,
279 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */,
280 | E4B69E1C0A3A1BDC003C02F2 /* src */,
281 | E4EEC9E9138DF44700A80321 /* openFrameworks */,
282 | BB4B014C10F69532006C3DED /* addons */,
283 | E45BE5980E8CC70C009D7055 /* frameworks */,
284 | E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */,
285 | );
286 | sourceTree = "";
287 | };
288 | E4B69E1C0A3A1BDC003C02F2 /* src */ = {
289 | isa = PBXGroup;
290 | children = (
291 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */,
292 | 67C8858F18167DD30046C13D /* ofApp.h */,
293 | 67C8858E18167DD30046C13D /* ofApp.cpp */,
294 | );
295 | path = src;
296 | sourceTree = SOURCE_ROOT;
297 | };
298 | E4EEC9E9138DF44700A80321 /* openFrameworks */ = {
299 | isa = PBXGroup;
300 | children = (
301 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */,
302 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */,
303 | );
304 | name = openFrameworks;
305 | sourceTree = "";
306 | };
307 | /* End PBXGroup section */
308 |
309 | /* Begin PBXNativeTarget section */
310 | E4B69B5A0A3A1756003C02F2 /* emptyExample */ = {
311 | isa = PBXNativeTarget;
312 | buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */;
313 | buildPhases = (
314 | E4B69B580A3A1756003C02F2 /* Sources */,
315 | E4B69B590A3A1756003C02F2 /* Frameworks */,
316 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */,
317 | E4C2427710CC5ABF004149E2 /* CopyFiles */,
318 | );
319 | buildRules = (
320 | );
321 | dependencies = (
322 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */,
323 | );
324 | name = emptyExample;
325 | productName = myOFApp;
326 | productReference = E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */;
327 | productType = "com.apple.product-type.application";
328 | };
329 | /* End PBXNativeTarget section */
330 |
331 | /* Begin PBXProject section */
332 | E4B69B4C0A3A1720003C02F2 /* Project object */ = {
333 | isa = PBXProject;
334 | attributes = {
335 | LastUpgradeCheck = 0460;
336 | };
337 | buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "emptyExample" */;
338 | compatibilityVersion = "Xcode 3.2";
339 | developmentRegion = English;
340 | hasScannedForEncodings = 0;
341 | knownRegions = (
342 | English,
343 | Japanese,
344 | French,
345 | German,
346 | );
347 | mainGroup = E4B69B4A0A3A1720003C02F2;
348 | productRefGroup = E4B69B4A0A3A1720003C02F2;
349 | projectDirPath = "";
350 | projectReferences = (
351 | {
352 | ProductGroup = E4328144138ABC890047C5CB /* Products */;
353 | ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
354 | },
355 | );
356 | projectRoot = "";
357 | targets = (
358 | E4B69B5A0A3A1756003C02F2 /* emptyExample */,
359 | );
360 | };
361 | /* End PBXProject section */
362 |
363 | /* Begin PBXReferenceProxy section */
364 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = {
365 | isa = PBXReferenceProxy;
366 | fileType = archive.ar;
367 | path = openFrameworksDebug.a;
368 | remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */;
369 | sourceTree = BUILT_PRODUCTS_DIR;
370 | };
371 | /* End PBXReferenceProxy section */
372 |
373 | /* Begin PBXShellScriptBuildPhase section */
374 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = {
375 | isa = PBXShellScriptBuildPhase;
376 | buildActionMask = 2147483647;
377 | files = (
378 | );
379 | inputPaths = (
380 | );
381 | outputPaths = (
382 | );
383 | runOnlyForDeploymentPostprocessing = 0;
384 | shellPath = /bin/sh;
385 | shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\nmkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\ncp -f \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n";
386 | };
387 | /* End PBXShellScriptBuildPhase section */
388 |
389 | /* Begin PBXSourcesBuildPhase section */
390 | E4B69B580A3A1756003C02F2 /* Sources */ = {
391 | isa = PBXSourcesBuildPhase;
392 | buildActionMask = 2147483647;
393 | files = (
394 | 67F6F609186505C000D05482 /* fft.cpp in Sources */,
395 | 67F6F627186505D300D05482 /* ofxToggle.cpp in Sources */,
396 | 67C8859018167DD30046C13D /* ofApp.cpp in Sources */,
397 | 67F6F623186505D300D05482 /* ofxLabel.cpp in Sources */,
398 | 67F6F626186505D300D05482 /* ofxSliderGroup.cpp in Sources */,
399 | 67F6F60C186505C000D05482 /* ofxFFTLive.cpp in Sources */,
400 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */,
401 | 67F6F624186505D300D05482 /* ofxPanel.cpp in Sources */,
402 | 67F6F622186505D300D05482 /* ofxGuiGroup.cpp in Sources */,
403 | 67F6F60A186505C000D05482 /* ofxFFTBase.cpp in Sources */,
404 | 67F6F620186505D300D05482 /* ofxBaseGui.cpp in Sources */,
405 | 67F6F60B186505C000D05482 /* ofxFFTFile.cpp in Sources */,
406 | 67F6F625186505D300D05482 /* ofxSlider.cpp in Sources */,
407 | 67F6F621186505D300D05482 /* ofxButton.cpp in Sources */,
408 | );
409 | runOnlyForDeploymentPostprocessing = 0;
410 | };
411 | /* End PBXSourcesBuildPhase section */
412 |
413 | /* Begin PBXTargetDependency section */
414 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = {
415 | isa = PBXTargetDependency;
416 | name = openFrameworks;
417 | targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */;
418 | };
419 | /* End PBXTargetDependency section */
420 |
421 | /* Begin XCBuildConfiguration section */
422 | E4B69B4E0A3A1720003C02F2 /* Debug */ = {
423 | isa = XCBuildConfiguration;
424 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
425 | buildSettings = {
426 | ARCHS = "$(NATIVE_ARCH)";
427 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
428 | COPY_PHASE_STRIP = NO;
429 | DEAD_CODE_STRIPPING = YES;
430 | GCC_AUTO_VECTORIZATION = YES;
431 | GCC_ENABLE_SSE3_EXTENSIONS = YES;
432 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
433 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
434 | GCC_OPTIMIZATION_LEVEL = 0;
435 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
436 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
437 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
438 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
439 | GCC_WARN_UNINITIALIZED_AUTOS = NO;
440 | GCC_WARN_UNUSED_VALUE = NO;
441 | GCC_WARN_UNUSED_VARIABLE = NO;
442 | HEADER_SEARCH_PATHS = (
443 | "$(OF_CORE_HEADERS)",
444 | src,
445 | );
446 | MACOSX_DEPLOYMENT_TARGET = 10.6;
447 | OTHER_CPLUSPLUSFLAGS = (
448 | "-D__MACOSX_CORE__",
449 | "-lpthread",
450 | "-mtune=native",
451 | );
452 | SDKROOT = macosx;
453 | };
454 | name = Debug;
455 | };
456 | E4B69B4F0A3A1720003C02F2 /* Release */ = {
457 | isa = XCBuildConfiguration;
458 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
459 | buildSettings = {
460 | ARCHS = "$(NATIVE_ARCH)";
461 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
462 | COPY_PHASE_STRIP = YES;
463 | DEAD_CODE_STRIPPING = YES;
464 | GCC_AUTO_VECTORIZATION = YES;
465 | GCC_ENABLE_SSE3_EXTENSIONS = YES;
466 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
467 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
468 | GCC_OPTIMIZATION_LEVEL = 3;
469 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
470 | GCC_UNROLL_LOOPS = YES;
471 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
472 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
473 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
474 | GCC_WARN_UNINITIALIZED_AUTOS = NO;
475 | GCC_WARN_UNUSED_VALUE = NO;
476 | GCC_WARN_UNUSED_VARIABLE = NO;
477 | HEADER_SEARCH_PATHS = (
478 | "$(OF_CORE_HEADERS)",
479 | src,
480 | );
481 | MACOSX_DEPLOYMENT_TARGET = 10.6;
482 | OTHER_CPLUSPLUSFLAGS = (
483 | "-D__MACOSX_CORE__",
484 | "-lpthread",
485 | "-mtune=native",
486 | );
487 | SDKROOT = macosx;
488 | };
489 | name = Release;
490 | };
491 | E4B69B600A3A1757003C02F2 /* Debug */ = {
492 | isa = XCBuildConfiguration;
493 | buildSettings = {
494 | COMBINE_HIDPI_IMAGES = YES;
495 | COPY_PHASE_STRIP = NO;
496 | FRAMEWORK_SEARCH_PATHS = (
497 | "$(inherited)",
498 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
499 | );
500 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\"";
501 | GCC_DYNAMIC_NO_PIC = NO;
502 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
503 | GCC_MODEL_TUNING = NONE;
504 | ICON = "$(ICON_NAME_DEBUG)";
505 | ICON_FILE = "$(ICON_FILE_PATH)$(ICON)";
506 | INFOPLIST_FILE = "openFrameworks-Info.plist";
507 | INSTALL_PATH = "$(HOME)/Applications";
508 | LIBRARY_SEARCH_PATHS = (
509 | "$(inherited)",
510 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
511 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
512 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
513 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
514 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
515 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
516 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
517 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
518 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
519 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
520 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
521 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
522 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
523 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
524 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
525 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
526 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
527 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
528 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
529 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
530 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
531 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
532 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
533 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
534 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)",
535 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)",
536 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)",
537 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)",
538 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)",
539 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)",
540 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)",
541 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)",
542 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)",
543 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)",
544 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)",
545 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)",
546 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)",
547 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)",
548 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)",
549 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)",
550 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)",
551 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)",
552 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)",
553 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)",
554 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)",
555 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)",
556 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)",
557 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)",
558 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)",
559 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)",
560 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)",
561 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)",
562 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)",
563 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)",
564 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)",
565 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)",
566 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)",
567 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)",
568 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)",
569 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)",
570 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)",
571 | );
572 | PRODUCT_NAME = "$(TARGET_NAME)Debug";
573 | WRAPPER_EXTENSION = app;
574 | };
575 | name = Debug;
576 | };
577 | E4B69B610A3A1757003C02F2 /* Release */ = {
578 | isa = XCBuildConfiguration;
579 | buildSettings = {
580 | COMBINE_HIDPI_IMAGES = YES;
581 | COPY_PHASE_STRIP = YES;
582 | FRAMEWORK_SEARCH_PATHS = (
583 | "$(inherited)",
584 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
585 | );
586 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\"";
587 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
588 | GCC_MODEL_TUNING = NONE;
589 | ICON = "$(ICON_NAME_RELEASE)";
590 | ICON_FILE = "$(ICON_FILE_PATH)$(ICON)";
591 | INFOPLIST_FILE = "openFrameworks-Info.plist";
592 | INSTALL_PATH = "$(HOME)/Applications";
593 | LIBRARY_SEARCH_PATHS = (
594 | "$(inherited)",
595 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
596 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
597 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
598 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
599 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
600 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
601 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
602 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
603 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
604 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
605 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
606 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
607 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
608 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
609 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
610 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
611 | "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
612 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
613 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
614 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
615 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
616 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
617 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
618 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
619 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
620 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)",
621 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)",
622 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)",
623 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)",
624 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)",
625 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)",
626 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)",
627 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)",
628 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)",
629 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)",
630 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)",
631 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)",
632 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)",
633 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)",
634 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)",
635 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)",
636 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)",
637 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)",
638 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)",
639 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)",
640 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)",
641 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)",
642 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)",
643 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)",
644 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)",
645 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)",
646 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)",
647 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)",
648 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)",
649 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)",
650 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)",
651 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)",
652 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)",
653 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)",
654 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)",
655 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)",
656 | );
657 | PRODUCT_NAME = "$(TARGET_NAME)";
658 | WRAPPER_EXTENSION = app;
659 | };
660 | name = Release;
661 | };
662 | /* End XCBuildConfiguration section */
663 |
664 | /* Begin XCConfigurationList section */
665 | E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "emptyExample" */ = {
666 | isa = XCConfigurationList;
667 | buildConfigurations = (
668 | E4B69B4E0A3A1720003C02F2 /* Debug */,
669 | E4B69B4F0A3A1720003C02F2 /* Release */,
670 | );
671 | defaultConfigurationIsVisible = 0;
672 | defaultConfigurationName = Release;
673 | };
674 | E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */ = {
675 | isa = XCConfigurationList;
676 | buildConfigurations = (
677 | E4B69B600A3A1757003C02F2 /* Debug */,
678 | E4B69B610A3A1757003C02F2 /* Release */,
679 | );
680 | defaultConfigurationIsVisible = 0;
681 | defaultConfigurationName = Release;
682 | };
683 | /* End XCConfigurationList section */
684 | };
685 | rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */;
686 | }
687 |
--------------------------------------------------------------------------------
/example_advanced/emptyExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example_advanced/openFrameworks-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | com.yourcompany.openFrameworks
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundlePackageType
14 | APPL
15 | CFBundleSignature
16 | ????
17 | CFBundleVersion
18 | 1.0
19 | CFBundleIconFile
20 | ${ICON}
21 |
22 |
23 |
--------------------------------------------------------------------------------
/example_advanced/src/main.cpp:
--------------------------------------------------------------------------------
1 | #include "ofMain.h"
2 | #include "ofApp.h"
3 |
4 | //========================================================================
5 | int main( ){
6 |
7 | ofSetupOpenGL(1024,768, OF_WINDOW); // <-------- setup the GL context
8 |
9 | // this kicks off the running of my app
10 | // can be OF_WINDOW or OF_FULLSCREEN
11 | // pass in width and height too:
12 | ofRunApp( new ofApp());
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/example_advanced/src/ofApp.cpp:
--------------------------------------------------------------------------------
1 | #include "ofApp.h"
2 |
3 | //--------------------------------------------------------------
4 | void ofApp::setup() {
5 |
6 | ofBackground(50);
7 | ofSetFrameRate(30);
8 |
9 | fftLive.setMirrorData(false);
10 | fftLive.setup();
11 |
12 | string guiPath = "audio.xml";
13 | gui.setup("audio", guiPath, 20, 20);
14 | gui.add(audioThreshold.setup("audioThreshold", 1.0, 0.0, 1.0));
15 | gui.add(audioPeakDecay.setup("audioPeakDecay", 0.915, 0.0, 1.0));
16 | gui.add(audioMaxDecay.setup("audioMaxDecay", 0.995, 0.0, 1.0));
17 | gui.add(audioMirror.setup("audioMirror", true));
18 | gui.loadFromFile(guiPath);
19 |
20 | meshOriginal = meshWarped = ofMesh::sphere(200, 30);
21 | }
22 |
23 | //--------------------------------------------------------------
24 | void ofApp::update() {
25 |
26 | fftLive.setThreshold(audioThreshold);
27 | fftLive.setPeakDecay(audioPeakDecay);
28 | fftLive.setMaxDecay(audioMaxDecay);
29 | fftLive.setMirrorData(audioMirror);
30 | fftLive.update();
31 |
32 | //---------------------------------------------------------- dispacing mesh using audio.
33 | vector & vertsOriginal = meshOriginal.getVertices();
34 | vector & vertsWarped = meshWarped.getVertices();
35 | int numOfVerts = meshOriginal.getNumVertices();
36 |
37 | float * audioData = new float[numOfVerts];
38 | fftLive.getFftPeakData(audioData, numOfVerts);
39 |
40 | float meshDisplacement = 100;
41 |
42 | for(int i=0; i audioThreshold;
28 | ofxSlider audioPeakDecay;
29 | ofxSlider audioMaxDecay;
30 | ofxToggle audioMirror;
31 |
32 | ofMesh meshOriginal;
33 | ofMesh meshWarped;
34 | ofEasyCam cam;
35 | };
36 |
--------------------------------------------------------------------------------
/example_fft_export/Makefile:
--------------------------------------------------------------------------------
1 | # Attempt to load a config.make file.
2 | # If none is found, project defaults in config.project.make will be used.
3 | ifneq ($(wildcard config.make),)
4 | include config.make
5 | endif
6 |
7 | # make sure the the OF_ROOT location is defined
8 | ifndef OF_ROOT
9 | OF_ROOT=$(realpath ../../..)
10 | endif
11 |
12 | # call the project makefile!
13 | include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk
14 |
--------------------------------------------------------------------------------
/example_fft_export/Project.xcconfig:
--------------------------------------------------------------------------------
1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT.
2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED
3 | OF_PATH = ../../..
4 |
5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE
6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig"
7 |
8 | //ICONS - NEW IN 0072
9 | ICON_NAME_DEBUG = icon-debug.icns
10 | ICON_NAME_RELEASE = icon.icns
11 | ICON_FILE_PATH = $(OF_PATH)/libs/openFrameworksCompiled/project/osx/
12 |
13 | //IF YOU WANT AN APP TO HAVE A CUSTOM ICON - PUT THEM IN YOUR DATA FOLDER AND CHANGE ICON_FILE_PATH to:
14 | //ICON_FILE_PATH = bin/data/
15 |
16 | OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OF_CORE_FRAMEWORKS)
17 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS)
18 |
--------------------------------------------------------------------------------
/example_fft_export/config.make:
--------------------------------------------------------------------------------
1 | ################################################################################
2 | # CONFIGURE PROJECT MAKEFILE (optional)
3 | # This file is where we make project specific configurations.
4 | ################################################################################
5 |
6 | ################################################################################
7 | # OF ROOT
8 | # The location of your root openFrameworks installation
9 | # (default) OF_ROOT = ../../..
10 | ################################################################################
11 | # OF_ROOT = ../../..
12 |
13 | ################################################################################
14 | # PROJECT ROOT
15 | # The location of the project - a starting place for searching for files
16 | # (default) PROJECT_ROOT = . (this directory)
17 | #
18 | ################################################################################
19 | # PROJECT_ROOT = .
20 |
21 | ################################################################################
22 | # PROJECT SPECIFIC CHECKS
23 | # This is a project defined section to create internal makefile flags to
24 | # conditionally enable or disable the addition of various features within
25 | # this makefile. For instance, if you want to make changes based on whether
26 | # GTK is installed, one might test that here and create a variable to check.
27 | ################################################################################
28 | # None
29 |
30 | ################################################################################
31 | # PROJECT EXTERNAL SOURCE PATHS
32 | # These are fully qualified paths that are not within the PROJECT_ROOT folder.
33 | # Like source folders in the PROJECT_ROOT, these paths are subject to
34 | # exlclusion via the PROJECT_EXLCUSIONS list.
35 | #
36 | # (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank)
37 | #
38 | # Note: Leave a leading space when adding list items with the += operator
39 | ################################################################################
40 | # PROJECT_EXTERNAL_SOURCE_PATHS =
41 |
42 | ################################################################################
43 | # PROJECT EXCLUSIONS
44 | # These makefiles assume that all folders in your current project directory
45 | # and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations
46 | # to look for source code. The any folders or files that match any of the
47 | # items in the PROJECT_EXCLUSIONS list below will be ignored.
48 | #
49 | # Each item in the PROJECT_EXCLUSIONS list will be treated as a complete
50 | # string unless teh user adds a wildcard (%) operator to match subdirectories.
51 | # GNU make only allows one wildcard for matching. The second wildcard (%) is
52 | # treated literally.
53 | #
54 | # (default) PROJECT_EXCLUSIONS = (blank)
55 | #
56 | # Will automatically exclude the following:
57 | #
58 | # $(PROJECT_ROOT)/bin%
59 | # $(PROJECT_ROOT)/obj%
60 | # $(PROJECT_ROOT)/%.xcodeproj
61 | #
62 | # Note: Leave a leading space when adding list items with the += operator
63 | ################################################################################
64 | # PROJECT_EXCLUSIONS =
65 |
66 | ################################################################################
67 | # PROJECT LINKER FLAGS
68 | # These flags will be sent to the linker when compiling the executable.
69 | #
70 | # (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs
71 | #
72 | # Note: Leave a leading space when adding list items with the += operator
73 | ################################################################################
74 |
75 | # Currently, shared libraries that are needed are copied to the
76 | # $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to
77 | # add a runtime path to search for those shared libraries, since they aren't
78 | # incorporated directly into the final executable application binary.
79 | # TODO: should this be a default setting?
80 | # PROJECT_LDFLAGS=-Wl,-rpath=./libs
81 |
82 | ################################################################################
83 | # PROJECT DEFINES
84 | # Create a space-delimited list of DEFINES. The list will be converted into
85 | # CFLAGS with the "-D" flag later in the makefile.
86 | #
87 | # (default) PROJECT_DEFINES = (blank)
88 | #
89 | # Note: Leave a leading space when adding list items with the += operator
90 | ################################################################################
91 | # PROJECT_DEFINES =
92 |
93 | ################################################################################
94 | # PROJECT CFLAGS
95 | # This is a list of fully qualified CFLAGS required when compiling for this
96 | # project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS
97 | # defined in your platform specific core configuration files. These flags are
98 | # presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below.
99 | #
100 | # (default) PROJECT_CFLAGS = (blank)
101 | #
102 | # Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in
103 | # your platform specific configuration file will be applied by default and
104 | # further flags here may not be needed.
105 | #
106 | # Note: Leave a leading space when adding list items with the += operator
107 | ################################################################################
108 | # PROJECT_CFLAGS =
109 |
110 | ################################################################################
111 | # PROJECT OPTIMIZATION CFLAGS
112 | # These are lists of CFLAGS that are target-specific. While any flags could
113 | # be conditionally added, they are usually limited to optimization flags.
114 | # These flags are added BEFORE the PROJECT_CFLAGS.
115 | #
116 | # PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets.
117 | #
118 | # (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank)
119 | #
120 | # PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets.
121 | #
122 | # (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank)
123 | #
124 | # Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the
125 | # PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration
126 | # file will be applied by default and further optimization flags here may not
127 | # be needed.
128 | #
129 | # Note: Leave a leading space when adding list items with the += operator
130 | ################################################################################
131 | # PROJECT_OPTIMIZATION_CFLAGS_RELEASE =
132 | # PROJECT_OPTIMIZATION_CFLAGS_DEBUG =
133 |
134 | ################################################################################
135 | # PROJECT COMPILERS
136 | # Custom compilers can be set for CC and CXX
137 | # (default) PROJECT_CXX = (blank)
138 | # (default) PROJECT_CC = (blank)
139 | # Note: Leave a leading space when adding list items with the += operator
140 | ################################################################################
141 | # PROJECT_CXX =
142 | # PROJECT_CC =
143 |
--------------------------------------------------------------------------------
/example_fft_export/fft_export.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 671505431C4DEFDB00120E6C /* fft.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6715053A1C4DEFDB00120E6C /* fft.cpp */; };
11 | 671505441C4DEFDB00120E6C /* ofxFFTBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6715053D1C4DEFDB00120E6C /* ofxFFTBase.cpp */; };
12 | 671505451C4DEFDB00120E6C /* ofxFFTFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6715053F1C4DEFDB00120E6C /* ofxFFTFile.cpp */; };
13 | 671505461C4DEFDB00120E6C /* ofxFFTLive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 671505411C4DEFDB00120E6C /* ofxFFTLive.cpp */; };
14 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; };
15 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; };
16 | E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; };
17 | /* End PBXBuildFile section */
18 |
19 | /* Begin PBXContainerItemProxy section */
20 | E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = {
21 | isa = PBXContainerItemProxy;
22 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
23 | proxyType = 2;
24 | remoteGlobalIDString = E4B27C1510CBEB8E00536013;
25 | remoteInfo = openFrameworks;
26 | };
27 | E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = {
28 | isa = PBXContainerItemProxy;
29 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
30 | proxyType = 1;
31 | remoteGlobalIDString = E4B27C1410CBEB8E00536013;
32 | remoteInfo = openFrameworks;
33 | };
34 | /* End PBXContainerItemProxy section */
35 |
36 | /* Begin PBXCopyFilesBuildPhase section */
37 | E4C2427710CC5ABF004149E2 /* CopyFiles */ = {
38 | isa = PBXCopyFilesBuildPhase;
39 | buildActionMask = 2147483647;
40 | dstPath = "";
41 | dstSubfolderSpec = 10;
42 | files = (
43 | );
44 | runOnlyForDeploymentPostprocessing = 0;
45 | };
46 | /* End PBXCopyFilesBuildPhase section */
47 |
48 | /* Begin PBXFileReference section */
49 | 6715053A1C4DEFDB00120E6C /* fft.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fft.cpp; sourceTree = ""; };
50 | 6715053B1C4DEFDB00120E6C /* fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fft.h; sourceTree = ""; };
51 | 6715053D1C4DEFDB00120E6C /* ofxFFTBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTBase.cpp; sourceTree = ""; };
52 | 6715053E1C4DEFDB00120E6C /* ofxFFTBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTBase.h; sourceTree = ""; };
53 | 6715053F1C4DEFDB00120E6C /* ofxFFTFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTFile.cpp; sourceTree = ""; };
54 | 671505401C4DEFDB00120E6C /* ofxFFTFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTFile.h; sourceTree = ""; };
55 | 671505411C4DEFDB00120E6C /* ofxFFTLive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTLive.cpp; sourceTree = ""; };
56 | 671505421C4DEFDB00120E6C /* ofxFFTLive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTLive.h; sourceTree = ""; };
57 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; };
58 | E4B69B5B0A3A1756003C02F2 /* fft_exportDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = fft_exportDebug.app; sourceTree = BUILT_PRODUCTS_DIR; };
59 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; };
60 | E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; };
61 | E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; };
62 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; };
63 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; };
64 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; };
65 | /* End PBXFileReference section */
66 |
67 | /* Begin PBXFrameworksBuildPhase section */
68 | E4B69B590A3A1756003C02F2 /* Frameworks */ = {
69 | isa = PBXFrameworksBuildPhase;
70 | buildActionMask = 2147483647;
71 | files = (
72 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */,
73 | );
74 | runOnlyForDeploymentPostprocessing = 0;
75 | };
76 | /* End PBXFrameworksBuildPhase section */
77 |
78 | /* Begin PBXGroup section */
79 | 671505381C4DED0300120E6C /* ofxFFT */ = {
80 | isa = PBXGroup;
81 | children = (
82 | 671505391C4DEFDB00120E6C /* libs */,
83 | 6715053C1C4DEFDB00120E6C /* src */,
84 | );
85 | name = ofxFFT;
86 | path = ..;
87 | sourceTree = "";
88 | };
89 | 671505391C4DEFDB00120E6C /* libs */ = {
90 | isa = PBXGroup;
91 | children = (
92 | 6715053A1C4DEFDB00120E6C /* fft.cpp */,
93 | 6715053B1C4DEFDB00120E6C /* fft.h */,
94 | );
95 | path = libs;
96 | sourceTree = "";
97 | };
98 | 6715053C1C4DEFDB00120E6C /* src */ = {
99 | isa = PBXGroup;
100 | children = (
101 | 6715053D1C4DEFDB00120E6C /* ofxFFTBase.cpp */,
102 | 6715053E1C4DEFDB00120E6C /* ofxFFTBase.h */,
103 | 6715053F1C4DEFDB00120E6C /* ofxFFTFile.cpp */,
104 | 671505401C4DEFDB00120E6C /* ofxFFTFile.h */,
105 | 671505411C4DEFDB00120E6C /* ofxFFTLive.cpp */,
106 | 671505421C4DEFDB00120E6C /* ofxFFTLive.h */,
107 | );
108 | path = src;
109 | sourceTree = "";
110 | };
111 | BB4B014C10F69532006C3DED /* addons */ = {
112 | isa = PBXGroup;
113 | children = (
114 | 671505381C4DED0300120E6C /* ofxFFT */,
115 | );
116 | name = addons;
117 | sourceTree = "";
118 | };
119 | E4328144138ABC890047C5CB /* Products */ = {
120 | isa = PBXGroup;
121 | children = (
122 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */,
123 | );
124 | name = Products;
125 | sourceTree = "";
126 | };
127 | E4B69B4A0A3A1720003C02F2 = {
128 | isa = PBXGroup;
129 | children = (
130 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */,
131 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */,
132 | E4B69E1C0A3A1BDC003C02F2 /* src */,
133 | E4EEC9E9138DF44700A80321 /* openFrameworks */,
134 | BB4B014C10F69532006C3DED /* addons */,
135 | E4B69B5B0A3A1756003C02F2 /* fft_exportDebug.app */,
136 | );
137 | sourceTree = "";
138 | };
139 | E4B69E1C0A3A1BDC003C02F2 /* src */ = {
140 | isa = PBXGroup;
141 | children = (
142 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */,
143 | E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */,
144 | E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */,
145 | );
146 | path = src;
147 | sourceTree = SOURCE_ROOT;
148 | };
149 | E4EEC9E9138DF44700A80321 /* openFrameworks */ = {
150 | isa = PBXGroup;
151 | children = (
152 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */,
153 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */,
154 | );
155 | name = openFrameworks;
156 | sourceTree = "";
157 | };
158 | /* End PBXGroup section */
159 |
160 | /* Begin PBXNativeTarget section */
161 | E4B69B5A0A3A1756003C02F2 /* fft_export */ = {
162 | isa = PBXNativeTarget;
163 | buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "fft_export" */;
164 | buildPhases = (
165 | E4B69B580A3A1756003C02F2 /* Sources */,
166 | E4B69B590A3A1756003C02F2 /* Frameworks */,
167 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */,
168 | E4C2427710CC5ABF004149E2 /* CopyFiles */,
169 | );
170 | buildRules = (
171 | );
172 | dependencies = (
173 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */,
174 | );
175 | name = fft_export;
176 | productName = myOFApp;
177 | productReference = E4B69B5B0A3A1756003C02F2 /* fft_exportDebug.app */;
178 | productType = "com.apple.product-type.application";
179 | };
180 | /* End PBXNativeTarget section */
181 |
182 | /* Begin PBXProject section */
183 | E4B69B4C0A3A1720003C02F2 /* Project object */ = {
184 | isa = PBXProject;
185 | attributes = {
186 | LastUpgradeCheck = 0600;
187 | };
188 | buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "fft_export" */;
189 | compatibilityVersion = "Xcode 3.2";
190 | developmentRegion = English;
191 | hasScannedForEncodings = 0;
192 | knownRegions = (
193 | English,
194 | Japanese,
195 | French,
196 | German,
197 | );
198 | mainGroup = E4B69B4A0A3A1720003C02F2;
199 | productRefGroup = E4B69B4A0A3A1720003C02F2;
200 | projectDirPath = "";
201 | projectReferences = (
202 | {
203 | ProductGroup = E4328144138ABC890047C5CB /* Products */;
204 | ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
205 | },
206 | );
207 | projectRoot = "";
208 | targets = (
209 | E4B69B5A0A3A1756003C02F2 /* fft_export */,
210 | );
211 | };
212 | /* End PBXProject section */
213 |
214 | /* Begin PBXReferenceProxy section */
215 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = {
216 | isa = PBXReferenceProxy;
217 | fileType = archive.ar;
218 | path = openFrameworksDebug.a;
219 | remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */;
220 | sourceTree = BUILT_PRODUCTS_DIR;
221 | };
222 | /* End PBXReferenceProxy section */
223 |
224 | /* Begin PBXShellScriptBuildPhase section */
225 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = {
226 | isa = PBXShellScriptBuildPhase;
227 | buildActionMask = 2147483647;
228 | files = (
229 | );
230 | inputPaths = (
231 | );
232 | outputPaths = (
233 | );
234 | runOnlyForDeploymentPostprocessing = 0;
235 | shellPath = /bin/sh;
236 | shellScript = "rsync -aved ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\nmkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\nrsync -aved \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\nrsync -aved ../../../libs/glut/lib/osx/GLUT.framework \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/\"\n";
237 | };
238 | /* End PBXShellScriptBuildPhase section */
239 |
240 | /* Begin PBXSourcesBuildPhase section */
241 | E4B69B580A3A1756003C02F2 /* Sources */ = {
242 | isa = PBXSourcesBuildPhase;
243 | buildActionMask = 2147483647;
244 | files = (
245 | 671505431C4DEFDB00120E6C /* fft.cpp in Sources */,
246 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */,
247 | 671505461C4DEFDB00120E6C /* ofxFFTLive.cpp in Sources */,
248 | E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */,
249 | 671505441C4DEFDB00120E6C /* ofxFFTBase.cpp in Sources */,
250 | 671505451C4DEFDB00120E6C /* ofxFFTFile.cpp in Sources */,
251 | );
252 | runOnlyForDeploymentPostprocessing = 0;
253 | };
254 | /* End PBXSourcesBuildPhase section */
255 |
256 | /* Begin PBXTargetDependency section */
257 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = {
258 | isa = PBXTargetDependency;
259 | name = openFrameworks;
260 | targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */;
261 | };
262 | /* End PBXTargetDependency section */
263 |
264 | /* Begin XCBuildConfiguration section */
265 | E4B69B4E0A3A1720003C02F2 /* Debug */ = {
266 | isa = XCBuildConfiguration;
267 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
268 | buildSettings = {
269 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
270 | COPY_PHASE_STRIP = NO;
271 | DEAD_CODE_STRIPPING = YES;
272 | GCC_AUTO_VECTORIZATION = YES;
273 | GCC_ENABLE_SSE3_EXTENSIONS = YES;
274 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
275 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
276 | GCC_OPTIMIZATION_LEVEL = 0;
277 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
278 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
279 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
280 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
281 | GCC_WARN_UNINITIALIZED_AUTOS = NO;
282 | GCC_WARN_UNUSED_VALUE = NO;
283 | GCC_WARN_UNUSED_VARIABLE = NO;
284 | HEADER_SEARCH_PATHS = (
285 | "$(OF_CORE_HEADERS)",
286 | src,
287 | );
288 | MACOSX_DEPLOYMENT_TARGET = 10.8;
289 | ONLY_ACTIVE_ARCH = YES;
290 | OTHER_CPLUSPLUSFLAGS = (
291 | "-D__MACOSX_CORE__",
292 | "-mtune=native",
293 | );
294 | SDKROOT = macosx;
295 | };
296 | name = Debug;
297 | };
298 | E4B69B4F0A3A1720003C02F2 /* Release */ = {
299 | isa = XCBuildConfiguration;
300 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
301 | buildSettings = {
302 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
303 | COPY_PHASE_STRIP = YES;
304 | DEAD_CODE_STRIPPING = YES;
305 | GCC_AUTO_VECTORIZATION = YES;
306 | GCC_ENABLE_SSE3_EXTENSIONS = YES;
307 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
308 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
309 | GCC_OPTIMIZATION_LEVEL = 3;
310 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
311 | GCC_UNROLL_LOOPS = YES;
312 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
313 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
314 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
315 | GCC_WARN_UNINITIALIZED_AUTOS = NO;
316 | GCC_WARN_UNUSED_VALUE = NO;
317 | GCC_WARN_UNUSED_VARIABLE = NO;
318 | HEADER_SEARCH_PATHS = (
319 | "$(OF_CORE_HEADERS)",
320 | src,
321 | );
322 | MACOSX_DEPLOYMENT_TARGET = 10.8;
323 | OTHER_CPLUSPLUSFLAGS = (
324 | "-D__MACOSX_CORE__",
325 | "-mtune=native",
326 | );
327 | SDKROOT = macosx;
328 | };
329 | name = Release;
330 | };
331 | E4B69B600A3A1757003C02F2 /* Debug */ = {
332 | isa = XCBuildConfiguration;
333 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
334 | buildSettings = {
335 | COMBINE_HIDPI_IMAGES = YES;
336 | COPY_PHASE_STRIP = NO;
337 | FRAMEWORK_SEARCH_PATHS = (
338 | "$(inherited)",
339 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
340 | );
341 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\"";
342 | GCC_DYNAMIC_NO_PIC = NO;
343 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
344 | GCC_MODEL_TUNING = NONE;
345 | HEADER_SEARCH_PATHS = (
346 | "$(OF_CORE_HEADERS)",
347 | src,
348 | );
349 | ICON = "$(ICON_NAME_DEBUG)";
350 | ICON_FILE = "$(ICON_FILE_PATH)$(ICON)";
351 | INFOPLIST_FILE = "openFrameworks-Info.plist";
352 | INSTALL_PATH = "$(HOME)/Applications";
353 | LIBRARY_SEARCH_PATHS = "$(inherited)";
354 | PRODUCT_NAME = fft_exportDebug;
355 | WRAPPER_EXTENSION = app;
356 | };
357 | name = Debug;
358 | };
359 | E4B69B610A3A1757003C02F2 /* Release */ = {
360 | isa = XCBuildConfiguration;
361 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
362 | buildSettings = {
363 | COMBINE_HIDPI_IMAGES = YES;
364 | COPY_PHASE_STRIP = YES;
365 | FRAMEWORK_SEARCH_PATHS = (
366 | "$(inherited)",
367 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
368 | );
369 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\"";
370 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
371 | GCC_MODEL_TUNING = NONE;
372 | HEADER_SEARCH_PATHS = (
373 | "$(OF_CORE_HEADERS)",
374 | src,
375 | );
376 | ICON = "$(ICON_NAME_RELEASE)";
377 | ICON_FILE = "$(ICON_FILE_PATH)$(ICON)";
378 | INFOPLIST_FILE = "openFrameworks-Info.plist";
379 | INSTALL_PATH = "$(HOME)/Applications";
380 | LIBRARY_SEARCH_PATHS = "$(inherited)";
381 | PRODUCT_NAME = fft_exportDebug;
382 | WRAPPER_EXTENSION = app;
383 | baseConfigurationReference = E4EB6923138AFD0F00A09F29;
384 | };
385 | name = Release;
386 | };
387 | /* End XCBuildConfiguration section */
388 |
389 | /* Begin XCConfigurationList section */
390 | E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "fft_export" */ = {
391 | isa = XCConfigurationList;
392 | buildConfigurations = (
393 | E4B69B4E0A3A1720003C02F2 /* Debug */,
394 | E4B69B4F0A3A1720003C02F2 /* Release */,
395 | );
396 | defaultConfigurationIsVisible = 0;
397 | defaultConfigurationName = Release;
398 | };
399 | E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "fft_export" */ = {
400 | isa = XCConfigurationList;
401 | buildConfigurations = (
402 | E4B69B600A3A1757003C02F2 /* Debug */,
403 | E4B69B610A3A1757003C02F2 /* Release */,
404 | );
405 | defaultConfigurationIsVisible = 0;
406 | defaultConfigurationName = Release;
407 | };
408 | /* End XCConfigurationList section */
409 | };
410 | rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */;
411 | }
412 |
--------------------------------------------------------------------------------
/example_fft_export/fft_export.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example_fft_export/openFrameworks-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | cc.openFrameworks.ofapp
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundlePackageType
14 | APPL
15 | CFBundleSignature
16 | ????
17 | CFBundleVersion
18 | 1.0
19 | CFBundleIconFile
20 | ${ICON}
21 |
22 |
23 |
--------------------------------------------------------------------------------
/example_fft_export/src/main.cpp:
--------------------------------------------------------------------------------
1 | #include "ofMain.h"
2 | #include "ofApp.h"
3 |
4 | int main( ){
5 | ofSetupOpenGL(1280, 720, OF_WINDOW);
6 | ofRunApp( new ofApp());
7 | }
8 |
--------------------------------------------------------------------------------
/example_fft_export/src/ofApp.cpp:
--------------------------------------------------------------------------------
1 | #include "ofApp.h"
2 |
3 | //--------------------------------------------------------------
4 | ofApp::ofApp() {
5 |
6 | numOfPixelsPerSoundFrame = 128;
7 | numOfSoundFramesPerSecond = 30;
8 | soundPath = "";
9 | soundBaseName = "";
10 | soundFileName = "";
11 | sessionDir = "";
12 | }
13 |
14 | ofApp::~ofApp() {
15 | //
16 | }
17 |
18 | //--------------------------------------------------------------
19 | void ofApp::setup() {
20 |
21 | ofSetFrameRate(30);
22 | ofSetVerticalSync(true);
23 | ofBackground(20);
24 |
25 | fft.setMirrorData(false);
26 | fft.setup();
27 | }
28 |
29 | void ofApp::initSound(string path) {
30 |
31 | killSound();
32 |
33 | bool bLoaded = soundPlayer.load(path);
34 | if(bLoaded == false) {
35 | return;
36 | }
37 |
38 | sessionDir = ofGetTimestampString("%Y%m%d%H%M%S");
39 | bool bCreatedDir = ofDirectory::createDirectory(sessionDir);
40 | if(bCreatedDir == false) {
41 | return;
42 | }
43 |
44 | ofFile file(path);
45 | soundBaseName = file.getBaseName();
46 | soundFileName = file.getFileName();
47 | file.copyTo(sessionDir + "/" + soundFileName);
48 |
49 | fft.startFrameSync(&soundPlayer, numOfSoundFramesPerSecond);
50 |
51 | int numOfSoundPixelsTotal = numOfPixelsPerSoundFrame * fft.frameSyncTotal;
52 | int soundImageSize = sqrt(numOfSoundPixelsTotal);
53 | soundImageSize = ofNextPow2(soundImageSize);
54 |
55 | soundImage.allocate(soundImageSize, soundImageSize, OF_IMAGE_GRAYSCALE);
56 | soundImage.setColor(ofColor(0, 255));
57 | soundImage.update();
58 |
59 | ofRectangle screenRect(0, 0, ofGetWidth(), ofGetHeight());
60 | ofRectangle soundImageRect(0, 0, soundImageSize, soundImageSize);
61 | soundImageRect.scaleTo(screenRect, OF_ASPECT_RATIO_KEEP);
62 | soundImageRect.x = (int)soundImageRect.x;
63 | soundImageRect.y = (int)soundImageRect.y;
64 | soundImageRect.width = (int)soundImageRect.width;
65 | soundImageRect.height = (int)soundImageRect.height;
66 | float soundImageScale = soundImageRect.width / (float)soundImageSize;
67 |
68 | soundImageMat.makeIdentityMatrix();
69 | soundImageMat.preMultTranslate(ofVec3f(soundImageRect.x, soundImageRect.y));
70 | soundImageMat.preMultScale(ofVec3f(soundImageScale, soundImageScale, 1));
71 |
72 | ofSetFrameRate(10000);
73 | ofSetVerticalSync(false);
74 | }
75 |
76 | void ofApp::killSound() {
77 |
78 | fft.stopFrameSync();
79 | soundImage.clear();
80 | }
81 |
82 | void ofApp::saveSound() {
83 |
84 | if(soundImage.isAllocated() == false) {
85 | return;
86 | }
87 |
88 | string soundImagePath = sessionDir;
89 | soundImagePath += "/";
90 | soundImagePath += soundBaseName;
91 | soundImagePath += ".png";
92 | soundImage.save(soundImagePath);
93 |
94 | string xmlPath = sessionDir;
95 | xmlPath += "/";
96 | xmlPath += soundBaseName;
97 | xmlPath += ".xml";
98 |
99 | ofXml xml;
100 | xml.addChild("metadata");
101 | xml.setTo("metadata");
102 |
103 | xml.addChild("sound");
104 | xml.setValue("sound", soundFileName);
105 |
106 | xml.addChild("image");
107 | xml.setValue("image", soundBaseName + ".png");
108 |
109 | xml.addChild("numOfSoundFrames");
110 | xml.setValue("numOfSoundFrames", ofToString(fft.frameSyncTotal));
111 |
112 | xml.addChild("numOfPixelsPerSoundFrame");
113 | xml.setValue("numOfPixelsPerSoundFrame", ofToString(numOfPixelsPerSoundFrame));
114 |
115 | xml.save(xmlPath);
116 | }
117 |
118 | //--------------------------------------------------------------
119 | void ofApp::update() {
120 |
121 | if(soundPath != "") {
122 | initSound(soundPath);
123 | soundPath = "";
124 | }
125 |
126 | if(fft.bFrameSync == false) {
127 | return;
128 | }
129 |
130 | int soundFrameIndex = fft.frameSyncIndex;
131 |
132 | fft.update();
133 |
134 | vector & soundData = fft.fftData.data;
135 | unsigned char * soundImagePixels = soundImage.getPixels().getData();
136 | int soundImageIndex = soundFrameIndex * numOfPixelsPerSoundFrame;
137 |
138 | for(int i=0; i
7 | #import
8 | #endif
9 |
--------------------------------------------------------------------------------
/example_ios/ofxFFT.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 45;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
11 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
12 | 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; };
13 | 5326AEA810A23A0500278DE6 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5326AEA710A23A0500278DE6 /* CoreLocation.framework */; };
14 | 53F323EB10A20EDB00E0DAE4 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53F323EA10A20EDB00E0DAE4 /* OpenAL.framework */; };
15 | 67BCCFE7166F16460055C351 /* fft.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67BCCFDE166F16460055C351 /* fft.cpp */; };
16 | 67BCCFE8166F16460055C351 /* ofxFFTBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67BCCFE1166F16460055C351 /* ofxFFTBase.cpp */; };
17 | 67BCCFEA166F16460055C351 /* ofxFFTLive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67BCCFE5166F16460055C351 /* ofxFFTLive.cpp */; };
18 | 67BCCFED166F17890055C351 /* ofxFFTFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67BCCFEB166F17890055C351 /* ofxFFTFile.cpp */; };
19 | BB16EBD20F2B2A9500518274 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB16EBD10F2B2A9500518274 /* OpenGLES.framework */; };
20 | BB16EBD90F2B2AB500518274 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB16EBD80F2B2AB500518274 /* QuartzCore.framework */; };
21 | BB24DDCA10DA781C00E9C588 /* ofxiphone-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB24DDC910DA781C00E9C588 /* ofxiphone-Info.plist */; };
22 | BBE5EAB80F49AD8400F28951 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBE5EAB70F49AD8400F28951 /* AudioToolbox.framework */; };
23 | E41D3ED713B38FB500A75A5D /* Project.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = E41D3ED613B38FB500A75A5D /* Project.xcconfig */; };
24 | E41D3EE613B3906D00A75A5D /* CoreOF.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = E41D3EE513B3906D00A75A5D /* CoreOF.xcconfig */; };
25 | E41D400B13B39D2100A75A5D /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41D400613B39D2100A75A5D /* AVFoundation.framework */; };
26 | E41D400C13B39D2100A75A5D /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41D400713B39D2100A75A5D /* CoreMedia.framework */; };
27 | E41D400D13B39D2100A75A5D /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41D400813B39D2100A75A5D /* CoreVideo.framework */; };
28 | E41D400E13B39D2100A75A5D /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41D400913B39D2100A75A5D /* MapKit.framework */; };
29 | E41D421413B3A95300A75A5D /* libofxiPhone_iphoneos_Debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E41D410213B3A0D800A75A5D /* libofxiPhone_iphoneos_Debug.a */; };
30 | E4A823A412561BE3002F86A2 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4A823A312561BE3002F86A2 /* CoreGraphics.framework */; };
31 | E4D8936E11527B74007E1F53 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = E4D8936B11527B74007E1F53 /* main.mm */; };
32 | E4D8936F11527B74007E1F53 /* testApp.mm in Sources */ = {isa = PBXBuildFile; fileRef = E4D8936D11527B74007E1F53 /* testApp.mm */; };
33 | /* End PBXBuildFile section */
34 |
35 | /* Begin PBXContainerItemProxy section */
36 | E41D410113B3A0D800A75A5D /* PBXContainerItemProxy */ = {
37 | isa = PBXContainerItemProxy;
38 | containerPortal = E41D40FD13B3A0D800A75A5D /* iOS+OFLib.xcodeproj */;
39 | proxyType = 2;
40 | remoteGlobalIDString = BB24DED610DA7A3F00E9C588;
41 | remoteInfo = "iPhone+OF Static Library";
42 | };
43 | E41D410313B3A11300A75A5D /* PBXContainerItemProxy */ = {
44 | isa = PBXContainerItemProxy;
45 | containerPortal = E41D40FD13B3A0D800A75A5D /* iOS+OFLib.xcodeproj */;
46 | proxyType = 1;
47 | remoteGlobalIDString = BB24DE5C10DA7A3F00E9C588;
48 | remoteInfo = "iPhone+OF Static Library";
49 | };
50 | /* End PBXContainerItemProxy section */
51 |
52 | /* Begin PBXFileReference section */
53 | 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
54 | 1D6058910D05DD3D006BFB54 /* ofxFFT.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ofxFFT.app; sourceTree = BUILT_PRODUCTS_DIR; };
55 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
56 | 288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
57 | 32CA4F630368D1EE00C91783 /* iPhone_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iPhone_Prefix.pch; sourceTree = ""; };
58 | 5326AEA710A23A0500278DE6 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
59 | 53F323EA10A20EDB00E0DAE4 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
60 | 67BCCFDE166F16460055C351 /* fft.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fft.cpp; sourceTree = ""; };
61 | 67BCCFDF166F16460055C351 /* fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fft.h; sourceTree = ""; };
62 | 67BCCFE1166F16460055C351 /* ofxFFTBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTBase.cpp; sourceTree = ""; };
63 | 67BCCFE2166F16460055C351 /* ofxFFTBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTBase.h; sourceTree = ""; };
64 | 67BCCFE5166F16460055C351 /* ofxFFTLive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTLive.cpp; sourceTree = ""; };
65 | 67BCCFE6166F16460055C351 /* ofxFFTLive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTLive.h; sourceTree = ""; };
66 | 67BCCFEB166F17890055C351 /* ofxFFTFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTFile.cpp; sourceTree = ""; };
67 | 67BCCFEC166F17890055C351 /* ofxFFTFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTFile.h; sourceTree = ""; };
68 | BB16EBD10F2B2A9500518274 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
69 | BB16EBD80F2B2AB500518274 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
70 | BB24DDC910DA781C00E9C588 /* ofxiphone-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "ofxiphone-Info.plist"; sourceTree = ""; };
71 | BBE5EAB70F49AD8400F28951 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
72 | E41D3ED613B38FB500A75A5D /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; };
73 | E41D3EE513B3906D00A75A5D /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/ios/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; };
74 | E41D400613B39D2100A75A5D /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
75 | E41D400713B39D2100A75A5D /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
76 | E41D400813B39D2100A75A5D /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; };
77 | E41D400913B39D2100A75A5D /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
78 | E41D40FD13B3A0D800A75A5D /* iOS+OFLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "iOS+OFLib.xcodeproj"; path = "../../../libs/openFrameworksCompiled/project/ios/iOS+OFLib.xcodeproj"; sourceTree = SOURCE_ROOT; };
79 | E4A823A312561BE3002F86A2 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
80 | E4D8936B11527B74007E1F53 /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = main.mm; path = src/main.mm; sourceTree = SOURCE_ROOT; };
81 | E4D8936C11527B74007E1F53 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; };
82 | E4D8936D11527B74007E1F53 /* testApp.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = testApp.mm; path = src/testApp.mm; sourceTree = SOURCE_ROOT; };
83 | /* End PBXFileReference section */
84 |
85 | /* Begin PBXFrameworksBuildPhase section */
86 | 1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
87 | isa = PBXFrameworksBuildPhase;
88 | buildActionMask = 2147483647;
89 | files = (
90 | E41D421413B3A95300A75A5D /* libofxiPhone_iphoneos_Debug.a in Frameworks */,
91 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
92 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
93 | 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */,
94 | BB16EBD20F2B2A9500518274 /* OpenGLES.framework in Frameworks */,
95 | BB16EBD90F2B2AB500518274 /* QuartzCore.framework in Frameworks */,
96 | BBE5EAB80F49AD8400F28951 /* AudioToolbox.framework in Frameworks */,
97 | 53F323EB10A20EDB00E0DAE4 /* OpenAL.framework in Frameworks */,
98 | 5326AEA810A23A0500278DE6 /* CoreLocation.framework in Frameworks */,
99 | E4A823A412561BE3002F86A2 /* CoreGraphics.framework in Frameworks */,
100 | E41D400B13B39D2100A75A5D /* AVFoundation.framework in Frameworks */,
101 | E41D400C13B39D2100A75A5D /* CoreMedia.framework in Frameworks */,
102 | E41D400D13B39D2100A75A5D /* CoreVideo.framework in Frameworks */,
103 | E41D400E13B39D2100A75A5D /* MapKit.framework in Frameworks */,
104 | );
105 | runOnlyForDeploymentPostprocessing = 0;
106 | };
107 | /* End PBXFrameworksBuildPhase section */
108 |
109 | /* Begin PBXGroup section */
110 | 19C28FACFE9D520D11CA2CBB /* Products */ = {
111 | isa = PBXGroup;
112 | children = (
113 | 1D6058910D05DD3D006BFB54 /* ofxFFT.app */,
114 | );
115 | name = Products;
116 | sourceTree = "";
117 | };
118 | 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
119 | isa = PBXGroup;
120 | children = (
121 | E4D8936A11527B74007E1F53 /* src */,
122 | BB24E1F710DAA51900E9C588 /* openFrameworks */,
123 | BB16F26B0F2B646B00518274 /* addons */,
124 | BB16E9930F2B1E5900518274 /* libs */,
125 | 19C28FACFE9D520D11CA2CBB /* Products */,
126 | );
127 | name = CustomTemplate;
128 | sourceTree = "";
129 | };
130 | 29B97323FDCFA39411CA2CEA /* core frameworks */ = {
131 | isa = PBXGroup;
132 | children = (
133 | E41D400613B39D2100A75A5D /* AVFoundation.framework */,
134 | E41D400713B39D2100A75A5D /* CoreMedia.framework */,
135 | E41D400813B39D2100A75A5D /* CoreVideo.framework */,
136 | E41D400913B39D2100A75A5D /* MapKit.framework */,
137 | 53F323EA10A20EDB00E0DAE4 /* OpenAL.framework */,
138 | E4A823A312561BE3002F86A2 /* CoreGraphics.framework */,
139 | BBE5EAB70F49AD8400F28951 /* AudioToolbox.framework */,
140 | BB16EBD80F2B2AB500518274 /* QuartzCore.framework */,
141 | BB16EBD10F2B2A9500518274 /* OpenGLES.framework */,
142 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
143 | 1D30AB110D05D00D00671497 /* Foundation.framework */,
144 | 288765FC0DF74451002DB57D /* CoreGraphics.framework */,
145 | 5326AEA710A23A0500278DE6 /* CoreLocation.framework */,
146 | );
147 | name = "core frameworks";
148 | sourceTree = "";
149 | };
150 | 67BCCFDC166F163A0055C351 /* ofxFTT */ = {
151 | isa = PBXGroup;
152 | children = (
153 | 67BCCFE0166F16460055C351 /* src */,
154 | 67BCCFDD166F16460055C351 /* libs */,
155 | );
156 | name = ofxFTT;
157 | sourceTree = "";
158 | };
159 | 67BCCFDD166F16460055C351 /* libs */ = {
160 | isa = PBXGroup;
161 | children = (
162 | 67BCCFDE166F16460055C351 /* fft.cpp */,
163 | 67BCCFDF166F16460055C351 /* fft.h */,
164 | );
165 | name = libs;
166 | path = ../libs;
167 | sourceTree = "";
168 | };
169 | 67BCCFE0166F16460055C351 /* src */ = {
170 | isa = PBXGroup;
171 | children = (
172 | 67BCCFE1166F16460055C351 /* ofxFFTBase.cpp */,
173 | 67BCCFE2166F16460055C351 /* ofxFFTBase.h */,
174 | 67BCCFEB166F17890055C351 /* ofxFFTFile.cpp */,
175 | 67BCCFEC166F17890055C351 /* ofxFFTFile.h */,
176 | 67BCCFE5166F16460055C351 /* ofxFFTLive.cpp */,
177 | 67BCCFE6166F16460055C351 /* ofxFFTLive.h */,
178 | );
179 | name = src;
180 | path = ../src;
181 | sourceTree = "";
182 | };
183 | BB16E9930F2B1E5900518274 /* libs */ = {
184 | isa = PBXGroup;
185 | children = (
186 | BBE5E94E0F497BD800F28951 /* core */,
187 | );
188 | name = libs;
189 | sourceTree = "";
190 | };
191 | BB16F26B0F2B646B00518274 /* addons */ = {
192 | isa = PBXGroup;
193 | children = (
194 | 67BCCFDC166F163A0055C351 /* ofxFTT */,
195 | );
196 | name = addons;
197 | sourceTree = "";
198 | };
199 | BB24E1F710DAA51900E9C588 /* openFrameworks */ = {
200 | isa = PBXGroup;
201 | children = (
202 | E41D40FD13B3A0D800A75A5D /* iOS+OFLib.xcodeproj */,
203 | 32CA4F630368D1EE00C91783 /* iPhone_Prefix.pch */,
204 | BB24DDC910DA781C00E9C588 /* ofxiphone-Info.plist */,
205 | E41D3EE513B3906D00A75A5D /* CoreOF.xcconfig */,
206 | E41D3ED613B38FB500A75A5D /* Project.xcconfig */,
207 | );
208 | name = openFrameworks;
209 | sourceTree = "";
210 | };
211 | BBE5E94E0F497BD800F28951 /* core */ = {
212 | isa = PBXGroup;
213 | children = (
214 | 29B97323FDCFA39411CA2CEA /* core frameworks */,
215 | );
216 | name = core;
217 | sourceTree = "";
218 | };
219 | E41D40FE13B3A0D800A75A5D /* Products */ = {
220 | isa = PBXGroup;
221 | children = (
222 | E41D410213B3A0D800A75A5D /* libofxiPhone_iphoneos_Debug.a */,
223 | );
224 | name = Products;
225 | sourceTree = "";
226 | };
227 | E4D8936A11527B74007E1F53 /* src */ = {
228 | isa = PBXGroup;
229 | children = (
230 | E4D8936B11527B74007E1F53 /* main.mm */,
231 | E4D8936D11527B74007E1F53 /* testApp.mm */,
232 | E4D8936C11527B74007E1F53 /* testApp.h */,
233 | );
234 | path = src;
235 | sourceTree = SOURCE_ROOT;
236 | };
237 | /* End PBXGroup section */
238 |
239 | /* Begin PBXNativeTarget section */
240 | 1D6058900D05DD3D006BFB54 /* ofxFFT */ = {
241 | isa = PBXNativeTarget;
242 | buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "ofxFFT" */;
243 | buildPhases = (
244 | 1D60588D0D05DD3D006BFB54 /* Resources */,
245 | 1D60588E0D05DD3D006BFB54 /* Sources */,
246 | 1D60588F0D05DD3D006BFB54 /* Frameworks */,
247 | 9255DD331112741900D6945E /* ShellScript */,
248 | );
249 | buildRules = (
250 | );
251 | dependencies = (
252 | E41D410413B3A11300A75A5D /* PBXTargetDependency */,
253 | );
254 | name = ofxFFT;
255 | productName = iPhone;
256 | productReference = 1D6058910D05DD3D006BFB54 /* ofxFFT.app */;
257 | productType = "com.apple.product-type.application";
258 | };
259 | /* End PBXNativeTarget section */
260 |
261 | /* Begin PBXProject section */
262 | 29B97313FDCFA39411CA2CEA /* Project object */ = {
263 | isa = PBXProject;
264 | buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ofxFFT" */;
265 | compatibilityVersion = "Xcode 3.1";
266 | developmentRegion = English;
267 | hasScannedForEncodings = 1;
268 | knownRegions = (
269 | English,
270 | Japanese,
271 | French,
272 | German,
273 | );
274 | mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
275 | projectDirPath = "";
276 | projectReferences = (
277 | {
278 | ProductGroup = E41D40FE13B3A0D800A75A5D /* Products */;
279 | ProjectRef = E41D40FD13B3A0D800A75A5D /* iOS+OFLib.xcodeproj */;
280 | },
281 | );
282 | projectRoot = "";
283 | targets = (
284 | 1D6058900D05DD3D006BFB54 /* ofxFFT */,
285 | );
286 | };
287 | /* End PBXProject section */
288 |
289 | /* Begin PBXReferenceProxy section */
290 | E41D410213B3A0D800A75A5D /* libofxiPhone_iphoneos_Debug.a */ = {
291 | isa = PBXReferenceProxy;
292 | fileType = archive.ar;
293 | path = libofxiPhone_iphoneos_Debug.a;
294 | remoteRef = E41D410113B3A0D800A75A5D /* PBXContainerItemProxy */;
295 | sourceTree = BUILT_PRODUCTS_DIR;
296 | };
297 | /* End PBXReferenceProxy section */
298 |
299 | /* Begin PBXResourcesBuildPhase section */
300 | 1D60588D0D05DD3D006BFB54 /* Resources */ = {
301 | isa = PBXResourcesBuildPhase;
302 | buildActionMask = 2147483647;
303 | files = (
304 | BB24DDCA10DA781C00E9C588 /* ofxiphone-Info.plist in Resources */,
305 | E41D3ED713B38FB500A75A5D /* Project.xcconfig in Resources */,
306 | E41D3EE613B3906D00A75A5D /* CoreOF.xcconfig in Resources */,
307 | );
308 | runOnlyForDeploymentPostprocessing = 0;
309 | };
310 | /* End PBXResourcesBuildPhase section */
311 |
312 | /* Begin PBXShellScriptBuildPhase section */
313 | 9255DD331112741900D6945E /* ShellScript */ = {
314 | isa = PBXShellScriptBuildPhase;
315 | buildActionMask = 2147483647;
316 | files = (
317 | );
318 | inputPaths = (
319 | );
320 | outputPaths = (
321 | );
322 | runOnlyForDeploymentPostprocessing = 0;
323 | shellPath = /bin/sh;
324 | shellScript = "cp -rf bin/data/ \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app\"\n";
325 | };
326 | /* End PBXShellScriptBuildPhase section */
327 |
328 | /* Begin PBXSourcesBuildPhase section */
329 | 1D60588E0D05DD3D006BFB54 /* Sources */ = {
330 | isa = PBXSourcesBuildPhase;
331 | buildActionMask = 2147483647;
332 | files = (
333 | E4D8936E11527B74007E1F53 /* main.mm in Sources */,
334 | E4D8936F11527B74007E1F53 /* testApp.mm in Sources */,
335 | 67BCCFE7166F16460055C351 /* fft.cpp in Sources */,
336 | 67BCCFE8166F16460055C351 /* ofxFFTBase.cpp in Sources */,
337 | 67BCCFEA166F16460055C351 /* ofxFFTLive.cpp in Sources */,
338 | 67BCCFED166F17890055C351 /* ofxFFTFile.cpp in Sources */,
339 | );
340 | runOnlyForDeploymentPostprocessing = 0;
341 | };
342 | /* End PBXSourcesBuildPhase section */
343 |
344 | /* Begin PBXTargetDependency section */
345 | E41D410413B3A11300A75A5D /* PBXTargetDependency */ = {
346 | isa = PBXTargetDependency;
347 | name = "iPhone+OF Static Library";
348 | targetProxy = E41D410313B3A11300A75A5D /* PBXContainerItemProxy */;
349 | };
350 | /* End PBXTargetDependency section */
351 |
352 | /* Begin XCBuildConfiguration section */
353 | 1D6058940D05DD3E006BFB54 /* Debug */ = {
354 | isa = XCBuildConfiguration;
355 | buildSettings = {
356 | ALWAYS_SEARCH_USER_PATHS = NO;
357 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
358 | GCC_PREFIX_HEADER = iPhone_Prefix.pch;
359 | INFOPLIST_FILE = "ofxiphone-Info.plist";
360 | IPHONEOS_DEPLOYMENT_TARGET = 4.3;
361 | PRODUCT_NAME = ofxFFT;
362 | TARGETED_DEVICE_FAMILY = 1;
363 | VALID_ARCHS = "armv6 armv7";
364 | };
365 | name = Debug;
366 | };
367 | 1D6058950D05DD3E006BFB54 /* Release */ = {
368 | isa = XCBuildConfiguration;
369 | buildSettings = {
370 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
371 | GCC_PREFIX_HEADER = iPhone_Prefix.pch;
372 | INFOPLIST_FILE = "ofxiphone-Info.plist";
373 | IPHONEOS_DEPLOYMENT_TARGET = 4.3;
374 | PRODUCT_NAME = ofxFFT;
375 | TARGETED_DEVICE_FAMILY = 1;
376 | VALID_ARCHS = "armv6 armv7";
377 | };
378 | name = Release;
379 | };
380 | C01FCF4F08A954540054247B /* Debug */ = {
381 | isa = XCBuildConfiguration;
382 | baseConfigurationReference = E41D3ED613B38FB500A75A5D /* Project.xcconfig */;
383 | buildSettings = {
384 | ALWAYS_SEARCH_USER_PATHS = YES;
385 | ARCHS = "$(ARCHS_STANDARD_32_BIT)";
386 | CODE_SIGN_IDENTITY = "";
387 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
388 | COMPRESS_PNG_FILES = NO;
389 | GCC_C_LANGUAGE_STANDARD = c99;
390 | GCC_OPTIMIZATION_LEVEL = 0;
391 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
392 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
393 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
394 | GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO;
395 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
396 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
397 | GCC_WARN_PROTOTYPE_CONVERSION = NO;
398 | GCC_WARN_UNUSED_VARIABLE = YES;
399 | HEADER_SEARCH_PATHS = (
400 | "$(OF_CORE_HEADERS)",
401 | src,
402 | );
403 | IPHONEOS_DEPLOYMENT_TARGET = 3.1;
404 | ONLY_ACTIVE_ARCH = NO;
405 | PREBINDING = NO;
406 | "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
407 | SDKROOT = iphoneos;
408 | TARGETED_DEVICE_FAMILY = 1;
409 | WARNING_LDFLAGS = "-no_arch_warnings";
410 | };
411 | name = Debug;
412 | };
413 | C01FCF5008A954540054247B /* Release */ = {
414 | isa = XCBuildConfiguration;
415 | baseConfigurationReference = E41D3ED613B38FB500A75A5D /* Project.xcconfig */;
416 | buildSettings = {
417 | ALWAYS_SEARCH_USER_PATHS = YES;
418 | ARCHS = "$(ARCHS_STANDARD_32_BIT)";
419 | CODE_SIGN_IDENTITY = "";
420 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
421 | COMPRESS_PNG_FILES = NO;
422 | GCC_C_LANGUAGE_STANDARD = c99;
423 | GCC_DYNAMIC_NO_PIC = YES;
424 | GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
425 | GCC_OPTIMIZATION_LEVEL = 3;
426 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
427 | GCC_THUMB_SUPPORT = NO;
428 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
429 | GCC_WARN_UNUSED_VARIABLE = YES;
430 | HEADER_SEARCH_PATHS = (
431 | "$(OF_CORE_HEADERS)",
432 | src,
433 | );
434 | IPHONEOS_DEPLOYMENT_TARGET = 3.1;
435 | ONLY_ACTIVE_ARCH = NO;
436 | PREBINDING = NO;
437 | SDKROOT = iphoneos;
438 | TARGETED_DEVICE_FAMILY = 1;
439 | WARNING_LDFLAGS = "-no_arch_warnings";
440 | };
441 | name = Release;
442 | };
443 | /* End XCBuildConfiguration section */
444 |
445 | /* Begin XCConfigurationList section */
446 | 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "ofxFFT" */ = {
447 | isa = XCConfigurationList;
448 | buildConfigurations = (
449 | 1D6058940D05DD3E006BFB54 /* Debug */,
450 | 1D6058950D05DD3E006BFB54 /* Release */,
451 | );
452 | defaultConfigurationIsVisible = 0;
453 | defaultConfigurationName = Release;
454 | };
455 | C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ofxFFT" */ = {
456 | isa = XCConfigurationList;
457 | buildConfigurations = (
458 | C01FCF4F08A954540054247B /* Debug */,
459 | C01FCF5008A954540054247B /* Release */,
460 | );
461 | defaultConfigurationIsVisible = 0;
462 | defaultConfigurationName = Release;
463 | };
464 | /* End XCConfigurationList section */
465 | };
466 | rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
467 | }
468 |
--------------------------------------------------------------------------------
/example_ios/ofxFFT.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example_ios/ofxiphone-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleVersion
6 | 1.0
7 | CFBundleShortVersionString
8 | 1.0
9 | CFBundleIdentifier
10 | ${PRODUCT_NAME:identifier}
11 | UIStatusBarHidden
12 |
13 | CFBundleDevelopmentRegion
14 | English
15 | CFBundleDisplayName
16 | ${PRODUCT_NAME}
17 | CFBundleExecutable
18 | ${EXECUTABLE_NAME}
19 | CFBundleIconFile
20 |
21 | CFBundleInfoDictionaryVersion
22 | 6.0
23 | CFBundleName
24 | ${PRODUCT_NAME}
25 | CFBundlePackageType
26 | APPL
27 | CFBundleSignature
28 | ????
29 | LSRequiresIPhoneOS
30 |
31 | UIApplicationExitsOnSuspend
32 |
33 | UISupportedInterfaceOrientations
34 |
35 | UIInterfaceOrientationPortrait
36 |
37 |
38 |
--------------------------------------------------------------------------------
/example_ios/src/main.mm:
--------------------------------------------------------------------------------
1 | #include "ofMain.h"
2 | #include "testApp.h"
3 |
4 | int main(){
5 | ofSetupOpenGL(1024,768, OF_FULLSCREEN); // <-------- setup the GL context
6 |
7 | ofRunApp(new testApp);
8 | }
9 |
--------------------------------------------------------------------------------
/example_ios/src/testApp.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "ofMain.h"
4 | #include "ofxiPhone.h"
5 | #include "ofxiPhoneExtras.h"
6 | #include "ofxFFTLive.h"
7 | #include "ofxFFTFile.h"
8 |
9 | class testApp : public ofxiPhoneApp{
10 |
11 | public:
12 | void setup();
13 | void update();
14 | void draw();
15 | void exit();
16 |
17 | void touchDown(ofTouchEventArgs & touch);
18 | void touchMoved(ofTouchEventArgs & touch);
19 | void touchUp(ofTouchEventArgs & touch);
20 | void touchDoubleTap(ofTouchEventArgs & touch);
21 | void touchCancelled(ofTouchEventArgs & touch);
22 |
23 | void lostFocus();
24 | void gotFocus();
25 | void gotMemoryWarning();
26 | void deviceOrientationChanged(int newOrientation);
27 |
28 | ofxFFTLive fftLive;
29 | ofxFFTFile fftData; // currently does not work.
30 | };
31 |
32 |
33 |
--------------------------------------------------------------------------------
/example_ios/src/testApp.mm:
--------------------------------------------------------------------------------
1 | #include "testApp.h"
2 |
3 | //--------------------------------------------------------------
4 | void testApp::setup(){
5 | ofBackground(127,127,127);
6 | ofSetOrientation(OF_ORIENTATION_90_LEFT);
7 |
8 | fftLive.setMirrorData(false);
9 | fftLive.setup();
10 | }
11 |
12 | //--------------------------------------------------------------
13 | void testApp::update(){
14 | fftLive.update();
15 | }
16 |
17 | //--------------------------------------------------------------
18 | void testApp::draw(){
19 | int pad = 10;
20 | fftLive.draw(pad, pad, ofGetWidth() - pad * 2, ofGetHeight() - pad * 2);
21 | }
22 |
23 | //--------------------------------------------------------------
24 | void testApp::exit(){
25 |
26 | }
27 |
28 | //--------------------------------------------------------------
29 | void testApp::touchDown(ofTouchEventArgs & touch){
30 |
31 | }
32 |
33 | //--------------------------------------------------------------
34 | void testApp::touchMoved(ofTouchEventArgs & touch){
35 |
36 | }
37 |
38 | //--------------------------------------------------------------
39 | void testApp::touchUp(ofTouchEventArgs & touch){
40 |
41 | }
42 |
43 | //--------------------------------------------------------------
44 | void testApp::touchDoubleTap(ofTouchEventArgs & touch){
45 |
46 | }
47 |
48 | //--------------------------------------------------------------
49 | void testApp::touchCancelled(ofTouchEventArgs & touch){
50 |
51 | }
52 |
53 | //--------------------------------------------------------------
54 | void testApp::lostFocus(){
55 |
56 | }
57 |
58 | //--------------------------------------------------------------
59 | void testApp::gotFocus(){
60 |
61 | }
62 |
63 | //--------------------------------------------------------------
64 | void testApp::gotMemoryWarning(){
65 |
66 | }
67 |
68 | //--------------------------------------------------------------
69 | void testApp::deviceOrientationChanged(int newOrientation){
70 |
71 | }
72 |
73 |
--------------------------------------------------------------------------------
/example_osx/Project.xcconfig:
--------------------------------------------------------------------------------
1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT.
2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED
3 | OF_PATH = ../../..
4 |
5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE
6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig"
7 |
8 | OTHER_LDFLAGS = $(OF_CORE_LIBS)
9 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS)
10 |
--------------------------------------------------------------------------------
/example_osx/bin/data/sound/1085.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/julapy/ofxFFT/134cfe47be41da319b11ad3bb835311dc4ae36ef/example_osx/bin/data/sound/1085.mp3
--------------------------------------------------------------------------------
/example_osx/emptyExample.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 42;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 672FC2DE166F2D1B00742A2F /* fft.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 672FC2D5166F2D1B00742A2F /* fft.cpp */; };
11 | 672FC2DF166F2D1B00742A2F /* ofxFFTBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 672FC2D8166F2D1B00742A2F /* ofxFFTBase.cpp */; };
12 | 672FC2E0166F2D1B00742A2F /* ofxFFTFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 672FC2DA166F2D1B00742A2F /* ofxFFTFile.cpp */; };
13 | 672FC2E1166F2D1B00742A2F /* ofxFFTLive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 672FC2DC166F2D1B00742A2F /* ofxFFTLive.cpp */; };
14 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; };
15 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; };
16 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; };
17 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; };
18 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; };
19 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; };
20 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; };
21 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; };
22 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; };
23 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; };
24 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; };
25 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; };
26 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; };
27 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; };
28 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; };
29 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; };
30 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; };
31 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; };
32 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; };
33 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; };
34 | /* End PBXBuildFile section */
35 |
36 | /* Begin PBXContainerItemProxy section */
37 | E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = {
38 | isa = PBXContainerItemProxy;
39 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
40 | proxyType = 2;
41 | remoteGlobalIDString = E4B27C1510CBEB8E00536013;
42 | remoteInfo = openFrameworks;
43 | };
44 | E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = {
45 | isa = PBXContainerItemProxy;
46 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
47 | proxyType = 1;
48 | remoteGlobalIDString = E4B27C1410CBEB8E00536013;
49 | remoteInfo = openFrameworks;
50 | };
51 | /* End PBXContainerItemProxy section */
52 |
53 | /* Begin PBXCopyFilesBuildPhase section */
54 | E4C2427710CC5ABF004149E2 /* CopyFiles */ = {
55 | isa = PBXCopyFilesBuildPhase;
56 | buildActionMask = 2147483647;
57 | dstPath = "";
58 | dstSubfolderSpec = 10;
59 | files = (
60 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */,
61 | );
62 | runOnlyForDeploymentPostprocessing = 0;
63 | };
64 | /* End PBXCopyFilesBuildPhase section */
65 |
66 | /* Begin PBXFileReference section */
67 | 672FC2D5166F2D1B00742A2F /* fft.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fft.cpp; sourceTree = ""; };
68 | 672FC2D6166F2D1B00742A2F /* fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fft.h; sourceTree = ""; };
69 | 672FC2D8166F2D1B00742A2F /* ofxFFTBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTBase.cpp; sourceTree = ""; };
70 | 672FC2D9166F2D1B00742A2F /* ofxFFTBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTBase.h; sourceTree = ""; };
71 | 672FC2DA166F2D1B00742A2F /* ofxFFTFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTFile.cpp; sourceTree = ""; };
72 | 672FC2DB166F2D1B00742A2F /* ofxFFTFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTFile.h; sourceTree = ""; };
73 | 672FC2DC166F2D1B00742A2F /* ofxFFTLive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFFTLive.cpp; sourceTree = ""; };
74 | 672FC2DD166F2D1B00742A2F /* ofxFFTLive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxFFTLive.h; sourceTree = ""; };
75 | BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; };
76 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; };
77 | E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; };
78 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; };
79 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; };
80 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; };
81 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; };
82 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; };
83 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; };
84 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; };
85 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; };
86 | E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = emptyExampleDebug.app; sourceTree = BUILT_PRODUCTS_DIR; };
87 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; };
88 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; };
89 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; };
90 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; };
91 | E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; };
92 | E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; };
93 | E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; };
94 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; };
95 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; };
96 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = ""; };
97 | E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = ""; };
98 | E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = ""; };
99 | /* End PBXFileReference section */
100 |
101 | /* Begin PBXFrameworksBuildPhase section */
102 | E4B69B590A3A1756003C02F2 /* Frameworks */ = {
103 | isa = PBXFrameworksBuildPhase;
104 | buildActionMask = 2147483647;
105 | files = (
106 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */,
107 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */,
108 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */,
109 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */,
110 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */,
111 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */,
112 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */,
113 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */,
114 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */,
115 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */,
116 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */,
117 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */,
118 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */,
119 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */,
120 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */,
121 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */,
122 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */,
123 | );
124 | runOnlyForDeploymentPostprocessing = 0;
125 | };
126 | /* End PBXFrameworksBuildPhase section */
127 |
128 | /* Begin PBXGroup section */
129 | 672FC2D3166F2D0E00742A2F /* ofxFFT */ = {
130 | isa = PBXGroup;
131 | children = (
132 | 672FC2D4166F2D1B00742A2F /* libs */,
133 | 672FC2D7166F2D1B00742A2F /* src */,
134 | );
135 | name = ofxFFT;
136 | sourceTree = "";
137 | };
138 | 672FC2D4166F2D1B00742A2F /* libs */ = {
139 | isa = PBXGroup;
140 | children = (
141 | 672FC2D5166F2D1B00742A2F /* fft.cpp */,
142 | 672FC2D6166F2D1B00742A2F /* fft.h */,
143 | );
144 | name = libs;
145 | path = ../libs;
146 | sourceTree = "";
147 | };
148 | 672FC2D7166F2D1B00742A2F /* src */ = {
149 | isa = PBXGroup;
150 | children = (
151 | 672FC2D8166F2D1B00742A2F /* ofxFFTBase.cpp */,
152 | 672FC2D9166F2D1B00742A2F /* ofxFFTBase.h */,
153 | 672FC2DA166F2D1B00742A2F /* ofxFFTFile.cpp */,
154 | 672FC2DB166F2D1B00742A2F /* ofxFFTFile.h */,
155 | 672FC2DC166F2D1B00742A2F /* ofxFFTLive.cpp */,
156 | 672FC2DD166F2D1B00742A2F /* ofxFFTLive.h */,
157 | );
158 | name = src;
159 | path = ../src;
160 | sourceTree = "";
161 | };
162 | BB4B014C10F69532006C3DED /* addons */ = {
163 | isa = PBXGroup;
164 | children = (
165 | 672FC2D3166F2D0E00742A2F /* ofxFFT */,
166 | );
167 | name = addons;
168 | sourceTree = "";
169 | };
170 | BBAB23C913894ECA00AA2426 /* system frameworks */ = {
171 | isa = PBXGroup;
172 | children = (
173 | E7F985F515E0DE99003869B5 /* Accelerate.framework */,
174 | E4C2424410CC5A17004149E2 /* AppKit.framework */,
175 | E4C2424510CC5A17004149E2 /* Cocoa.framework */,
176 | E4C2424610CC5A17004149E2 /* IOKit.framework */,
177 | E45BE9710E8CC7DD009D7055 /* AGL.framework */,
178 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */,
179 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */,
180 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */,
181 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */,
182 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */,
183 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */,
184 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */,
185 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */,
186 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */,
187 | E7E077E715D3B6510020DFD4 /* QTKit.framework */,
188 | );
189 | name = "system frameworks";
190 | sourceTree = "";
191 | };
192 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = {
193 | isa = PBXGroup;
194 | children = (
195 | BBAB23BE13894E4700AA2426 /* GLUT.framework */,
196 | );
197 | name = "3rd party frameworks";
198 | sourceTree = "";
199 | };
200 | E4328144138ABC890047C5CB /* Products */ = {
201 | isa = PBXGroup;
202 | children = (
203 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */,
204 | );
205 | name = Products;
206 | sourceTree = "";
207 | };
208 | E45BE5980E8CC70C009D7055 /* frameworks */ = {
209 | isa = PBXGroup;
210 | children = (
211 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */,
212 | BBAB23C913894ECA00AA2426 /* system frameworks */,
213 | );
214 | name = frameworks;
215 | sourceTree = "";
216 | };
217 | E4B69B4A0A3A1720003C02F2 = {
218 | isa = PBXGroup;
219 | children = (
220 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */,
221 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */,
222 | E4B69E1C0A3A1BDC003C02F2 /* src */,
223 | E4EEC9E9138DF44700A80321 /* openFrameworks */,
224 | BB4B014C10F69532006C3DED /* addons */,
225 | E45BE5980E8CC70C009D7055 /* frameworks */,
226 | E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */,
227 | );
228 | sourceTree = "";
229 | };
230 | E4B69E1C0A3A1BDC003C02F2 /* src */ = {
231 | isa = PBXGroup;
232 | children = (
233 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */,
234 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */,
235 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */,
236 | );
237 | path = src;
238 | sourceTree = SOURCE_ROOT;
239 | };
240 | E4EEC9E9138DF44700A80321 /* openFrameworks */ = {
241 | isa = PBXGroup;
242 | children = (
243 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */,
244 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */,
245 | );
246 | name = openFrameworks;
247 | sourceTree = "";
248 | };
249 | /* End PBXGroup section */
250 |
251 | /* Begin PBXNativeTarget section */
252 | E4B69B5A0A3A1756003C02F2 /* emptyExample */ = {
253 | isa = PBXNativeTarget;
254 | buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */;
255 | buildPhases = (
256 | E4B69B580A3A1756003C02F2 /* Sources */,
257 | E4B69B590A3A1756003C02F2 /* Frameworks */,
258 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */,
259 | E4C2427710CC5ABF004149E2 /* CopyFiles */,
260 | );
261 | buildRules = (
262 | );
263 | dependencies = (
264 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */,
265 | );
266 | name = emptyExample;
267 | productName = myOFApp;
268 | productReference = E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */;
269 | productType = "com.apple.product-type.application";
270 | };
271 | /* End PBXNativeTarget section */
272 |
273 | /* Begin PBXProject section */
274 | E4B69B4C0A3A1720003C02F2 /* Project object */ = {
275 | isa = PBXProject;
276 | attributes = {
277 | };
278 | buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "emptyExample" */;
279 | compatibilityVersion = "Xcode 2.4";
280 | developmentRegion = English;
281 | hasScannedForEncodings = 0;
282 | knownRegions = (
283 | English,
284 | Japanese,
285 | French,
286 | German,
287 | );
288 | mainGroup = E4B69B4A0A3A1720003C02F2;
289 | productRefGroup = E4B69B4A0A3A1720003C02F2;
290 | projectDirPath = "";
291 | projectReferences = (
292 | {
293 | ProductGroup = E4328144138ABC890047C5CB /* Products */;
294 | ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
295 | },
296 | );
297 | projectRoot = "";
298 | targets = (
299 | E4B69B5A0A3A1756003C02F2 /* emptyExample */,
300 | );
301 | };
302 | /* End PBXProject section */
303 |
304 | /* Begin PBXReferenceProxy section */
305 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = {
306 | isa = PBXReferenceProxy;
307 | fileType = archive.ar;
308 | path = openFrameworksDebug.a;
309 | remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */;
310 | sourceTree = BUILT_PRODUCTS_DIR;
311 | };
312 | /* End PBXReferenceProxy section */
313 |
314 | /* Begin PBXShellScriptBuildPhase section */
315 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = {
316 | isa = PBXShellScriptBuildPhase;
317 | buildActionMask = 2147483647;
318 | files = (
319 | );
320 | inputPaths = (
321 | );
322 | outputPaths = (
323 | );
324 | runOnlyForDeploymentPostprocessing = 0;
325 | shellPath = /bin/sh;
326 | shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";";
327 | };
328 | /* End PBXShellScriptBuildPhase section */
329 |
330 | /* Begin PBXSourcesBuildPhase section */
331 | E4B69B580A3A1756003C02F2 /* Sources */ = {
332 | isa = PBXSourcesBuildPhase;
333 | buildActionMask = 2147483647;
334 | files = (
335 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */,
336 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */,
337 | 672FC2DE166F2D1B00742A2F /* fft.cpp in Sources */,
338 | 672FC2DF166F2D1B00742A2F /* ofxFFTBase.cpp in Sources */,
339 | 672FC2E0166F2D1B00742A2F /* ofxFFTFile.cpp in Sources */,
340 | 672FC2E1166F2D1B00742A2F /* ofxFFTLive.cpp in Sources */,
341 | );
342 | runOnlyForDeploymentPostprocessing = 0;
343 | };
344 | /* End PBXSourcesBuildPhase section */
345 |
346 | /* Begin PBXTargetDependency section */
347 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = {
348 | isa = PBXTargetDependency;
349 | name = openFrameworks;
350 | targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */;
351 | };
352 | /* End PBXTargetDependency section */
353 |
354 | /* Begin XCBuildConfiguration section */
355 | E4B69B4E0A3A1720003C02F2 /* Debug */ = {
356 | isa = XCBuildConfiguration;
357 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
358 | buildSettings = {
359 | ARCHS = "$(NATIVE_ARCH)";
360 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
361 | COPY_PHASE_STRIP = NO;
362 | DEAD_CODE_STRIPPING = YES;
363 | GCC_AUTO_VECTORIZATION = YES;
364 | GCC_ENABLE_SSE3_EXTENSIONS = YES;
365 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
366 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
367 | GCC_OPTIMIZATION_LEVEL = 0;
368 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
369 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
370 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
371 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
372 | GCC_WARN_UNINITIALIZED_AUTOS = NO;
373 | GCC_WARN_UNUSED_VALUE = NO;
374 | GCC_WARN_UNUSED_VARIABLE = NO;
375 | HEADER_SEARCH_PATHS = (
376 | "$(OF_CORE_HEADERS)",
377 | src,
378 | );
379 | OTHER_CPLUSPLUSFLAGS = (
380 | "-D__MACOSX_CORE__",
381 | "-lpthread",
382 | "-mtune=native",
383 | );
384 | };
385 | name = Debug;
386 | };
387 | E4B69B4F0A3A1720003C02F2 /* Release */ = {
388 | isa = XCBuildConfiguration;
389 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
390 | buildSettings = {
391 | ARCHS = "$(NATIVE_ARCH)";
392 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
393 | COPY_PHASE_STRIP = YES;
394 | DEAD_CODE_STRIPPING = YES;
395 | GCC_AUTO_VECTORIZATION = YES;
396 | GCC_ENABLE_SSE3_EXTENSIONS = YES;
397 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
398 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
399 | GCC_OPTIMIZATION_LEVEL = 3;
400 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
401 | GCC_UNROLL_LOOPS = YES;
402 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
403 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
404 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
405 | GCC_WARN_UNINITIALIZED_AUTOS = NO;
406 | GCC_WARN_UNUSED_VALUE = NO;
407 | GCC_WARN_UNUSED_VARIABLE = NO;
408 | HEADER_SEARCH_PATHS = (
409 | "$(OF_CORE_HEADERS)",
410 | src,
411 | );
412 | OTHER_CPLUSPLUSFLAGS = (
413 | "-D__MACOSX_CORE__",
414 | "-lpthread",
415 | "-mtune=native",
416 | );
417 | };
418 | name = Release;
419 | };
420 | E4B69B600A3A1757003C02F2 /* Debug */ = {
421 | isa = XCBuildConfiguration;
422 | buildSettings = {
423 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
424 | COPY_PHASE_STRIP = NO;
425 | FRAMEWORK_SEARCH_PATHS = (
426 | "$(inherited)",
427 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
428 | );
429 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\"";
430 | GCC_DYNAMIC_NO_PIC = NO;
431 | GCC_ENABLE_FIX_AND_CONTINUE = YES;
432 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
433 | GCC_MODEL_TUNING = NONE;
434 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
435 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
436 | INFOPLIST_FILE = "openFrameworks-Info.plist";
437 | INSTALL_PATH = "$(HOME)/Applications";
438 | LIBRARY_SEARCH_PATHS = (
439 | "$(inherited)",
440 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
441 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
442 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
443 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
444 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
445 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
446 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
447 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
448 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
449 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
450 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
451 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
452 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
453 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
454 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
455 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
456 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
457 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
458 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
459 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
460 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
461 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
462 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
463 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
464 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)",
465 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)",
466 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)",
467 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)",
468 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)",
469 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)",
470 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)",
471 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)",
472 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)",
473 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)",
474 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)",
475 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)",
476 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)",
477 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)",
478 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)",
479 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)",
480 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)",
481 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)",
482 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)",
483 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)",
484 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)",
485 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)",
486 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)",
487 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)",
488 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)",
489 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)",
490 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)",
491 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)",
492 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)",
493 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)",
494 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)",
495 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)",
496 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)",
497 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)",
498 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)",
499 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)",
500 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)",
501 | );
502 | ONLY_ACTIVE_ARCH = NO;
503 | PREBINDING = NO;
504 | PRODUCT_NAME = "$(TARGET_NAME)Debug";
505 | SDKROOT = macosx;
506 | VALID_ARCHS = i386;
507 | WRAPPER_EXTENSION = app;
508 | };
509 | name = Debug;
510 | };
511 | E4B69B610A3A1757003C02F2 /* Release */ = {
512 | isa = XCBuildConfiguration;
513 | buildSettings = {
514 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
515 | COPY_PHASE_STRIP = YES;
516 | FRAMEWORK_SEARCH_PATHS = (
517 | "$(inherited)",
518 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
519 | );
520 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\"";
521 | GCC_ENABLE_FIX_AND_CONTINUE = NO;
522 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
523 | GCC_MODEL_TUNING = NONE;
524 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
525 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
526 | INFOPLIST_FILE = "openFrameworks-Info.plist";
527 | INSTALL_PATH = "$(HOME)/Applications";
528 | LIBRARY_SEARCH_PATHS = (
529 | "$(inherited)",
530 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
531 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
532 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
533 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
534 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
535 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
536 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
537 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
538 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
539 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
540 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
541 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
542 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
543 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
544 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
545 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
546 | "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
547 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
548 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
549 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
550 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
551 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
552 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
553 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
554 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
555 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)",
556 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)",
557 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)",
558 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)",
559 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)",
560 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)",
561 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)",
562 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)",
563 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)",
564 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)",
565 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)",
566 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)",
567 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)",
568 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)",
569 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)",
570 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)",
571 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)",
572 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)",
573 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)",
574 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)",
575 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)",
576 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)",
577 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)",
578 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)",
579 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)",
580 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)",
581 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)",
582 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)",
583 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)",
584 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)",
585 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)",
586 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)",
587 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)",
588 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)",
589 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)",
590 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)",
591 | );
592 | ONLY_ACTIVE_ARCH = NO;
593 | PREBINDING = NO;
594 | PRODUCT_NAME = "$(TARGET_NAME)";
595 | SDKROOT = macosx;
596 | VALID_ARCHS = i386;
597 | WRAPPER_EXTENSION = app;
598 | };
599 | name = Release;
600 | };
601 | /* End XCBuildConfiguration section */
602 |
603 | /* Begin XCConfigurationList section */
604 | E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "emptyExample" */ = {
605 | isa = XCConfigurationList;
606 | buildConfigurations = (
607 | E4B69B4E0A3A1720003C02F2 /* Debug */,
608 | E4B69B4F0A3A1720003C02F2 /* Release */,
609 | );
610 | defaultConfigurationIsVisible = 0;
611 | defaultConfigurationName = Release;
612 | };
613 | E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */ = {
614 | isa = XCConfigurationList;
615 | buildConfigurations = (
616 | E4B69B600A3A1757003C02F2 /* Debug */,
617 | E4B69B610A3A1757003C02F2 /* Release */,
618 | );
619 | defaultConfigurationIsVisible = 0;
620 | defaultConfigurationName = Release;
621 | };
622 | /* End XCConfigurationList section */
623 | };
624 | rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */;
625 | }
626 |
--------------------------------------------------------------------------------
/example_osx/emptyExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example_osx/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample Release.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
14 |
20 |
21 |
22 |
23 |
24 |
29 |
30 |
31 |
32 |
38 |
39 |
40 |
41 |
50 |
51 |
57 |
58 |
59 |
60 |
61 |
62 |
68 |
69 |
75 |
76 |
77 |
78 |
80 |
81 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/example_osx/openFrameworks-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | com.yourcompany.openFrameworks
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundlePackageType
14 | APPL
15 | CFBundleSignature
16 | ????
17 | CFBundleVersion
18 | 1.0
19 |
20 |
21 |
--------------------------------------------------------------------------------
/example_osx/src/main.cpp:
--------------------------------------------------------------------------------
1 | #include "ofMain.h"
2 | #include "testApp.h"
3 | #include "ofAppGlutWindow.h"
4 |
5 | //========================================================================
6 | int main( ){
7 |
8 | ofAppGlutWindow window;
9 | ofSetupOpenGL(&window, 1024,768, OF_WINDOW); // <-------- setup the GL context
10 |
11 | // this kicks off the running of my app
12 | // can be OF_WINDOW or OF_FULLSCREEN
13 | // pass in width and height too:
14 | ofRunApp( new testApp());
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/example_osx/src/testApp.cpp:
--------------------------------------------------------------------------------
1 | #include "testApp.h"
2 |
3 | //--------------------------------------------------------------
4 | void testApp::setup() {
5 | ofSetFrameRate(30);
6 | ofSetVerticalSync(true);
7 | ofBackground(100);
8 |
9 | fftLive.setMirrorData(false);
10 | fftLive.setup();
11 |
12 | fftFile.setMirrorData(false);
13 | fftFile.setup();
14 |
15 | soundPlayer.loadSound("sound/1085.mp3");
16 | soundPlayer.setLoop(true);
17 | soundPlayer.play();
18 | }
19 |
20 | //--------------------------------------------------------------
21 | void testApp::update() {
22 | fftLive.update();
23 | fftFile.update();
24 | }
25 |
26 | //--------------------------------------------------------------
27 | void testApp::draw() {
28 | ofSetColor(255);
29 | ofDrawBitmapString("AUDIO FROM MIC (LIVE)", 10, 20);
30 | ofDrawBitmapString("AUDIO FROM FILE (SOUND/1085.MP3)", 10, 310);
31 |
32 | fftLive.draw(10, 30);
33 | fftFile.draw(10, 320);
34 | }
35 |
36 | //--------------------------------------------------------------
37 | void testApp::keyPressed(int key){
38 |
39 | }
40 |
41 | //--------------------------------------------------------------
42 | void testApp::keyReleased(int key){
43 |
44 | }
45 |
46 | //--------------------------------------------------------------
47 | void testApp::mouseMoved(int x, int y ){
48 |
49 | }
50 |
51 | //--------------------------------------------------------------
52 | void testApp::mouseDragged(int x, int y, int button){
53 |
54 | }
55 |
56 | //--------------------------------------------------------------
57 | void testApp::mousePressed(int x, int y, int button){
58 |
59 | }
60 |
61 | //--------------------------------------------------------------
62 | void testApp::mouseReleased(int x, int y, int button){
63 |
64 | }
65 |
66 | //--------------------------------------------------------------
67 | void testApp::windowResized(int w, int h){
68 |
69 | }
70 |
71 | //--------------------------------------------------------------
72 | void testApp::gotMessage(ofMessage msg){
73 |
74 | }
75 |
76 | //--------------------------------------------------------------
77 | void testApp::dragEvent(ofDragInfo dragInfo){
78 |
79 | }
--------------------------------------------------------------------------------
/example_osx/src/testApp.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "ofMain.h"
4 | #include "ofxFFTLive.h"
5 | #include "ofxFFTFile.h"
6 |
7 | class testApp : public ofBaseApp{
8 |
9 | public:
10 | void setup();
11 | void update();
12 | void draw();
13 |
14 | void keyPressed (int key);
15 | void keyReleased(int key);
16 | void mouseMoved(int x, int y );
17 | void mouseDragged(int x, int y, int button);
18 | void mousePressed(int x, int y, int button);
19 | void mouseReleased(int x, int y, int button);
20 | void windowResized(int w, int h);
21 | void dragEvent(ofDragInfo dragInfo);
22 | void gotMessage(ofMessage msg);
23 |
24 | ofSoundPlayer soundPlayer;
25 |
26 | ofxFFTLive fftLive;
27 | ofxFFTFile fftFile;
28 | };
29 |
--------------------------------------------------------------------------------
/libs/fft.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * maximilian
3 | * platform independent synthesis library using portaudio or rtaudio
4 | *
5 | * Created by Mick Grierson on 29/12/2009.
6 | * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved.
7 | * Thanks to the Goldsmiths Creative Computing Team.
8 | * Special thanks to Arturo Castro for the PortAudio implementation.
9 | *
10 | * Permission is hereby granted, free of charge, to any person
11 | * obtaining a copy of this software and associated documentation
12 | * files (the "Software"), to deal in the Software without
13 | * restriction, including without limitation the rights to use,
14 | * copy, modify, merge, publish, distribute, sublicense, and/or sell
15 | * copies of the Software, and to permit persons to whom the
16 | * Software is furnished to do so, subject to the following
17 | * conditions:
18 | *
19 | * The above copyright notice and this permission notice shall be
20 | * included in all copies or substantial portions of the Software.
21 | *
22 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
24 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
27 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
29 | * OTHER DEALINGS IN THE SOFTWARE.
30 | *
31 | */
32 | /*
33 |
34 | fft.cpp
35 |
36 | Based on K+R Numerical recipes in C and some other stuff hacked about.
37 |
38 | */
39 |
40 | #include "fft.h"
41 | #include
42 | #include
43 | #include
44 | #include
45 |
46 | int **gFFTBitTable = NULL;
47 | const int MaxFastBits = 16;
48 |
49 | int IsPowerOfTwo(int x)
50 | {
51 | if (x < 2)
52 | return false;
53 |
54 | if (x & (x - 1))
55 | return false;
56 |
57 | return true;
58 | }
59 |
60 | int NumberOfBitsNeeded(int PowerOfTwo)
61 | {
62 | int i;
63 |
64 | if (PowerOfTwo < 2) {
65 | fprintf(stderr, "Error: FFT called with size %d\n", PowerOfTwo);
66 | exit(1);
67 | }
68 |
69 | for (i = 0;; i++)
70 | if (PowerOfTwo & (1 << i))
71 | return i;
72 | }
73 |
74 | int ReverseBits(int index, int NumBits)
75 | {
76 | int i, rev;
77 |
78 | for (i = rev = 0; i < NumBits; i++) {
79 | rev = (rev << 1) | (index & 1);
80 | index >>= 1;
81 | }
82 |
83 | return rev;
84 | }
85 |
86 | void InitFFT()
87 | {
88 | // gFFTBitTable = new int *[MaxFastBits];
89 | //use malloc for 16 byte alignment
90 | gFFTBitTable = (int**) malloc(MaxFastBits * sizeof(int*));
91 |
92 | int len = 2;
93 | for (int b = 1; b <= MaxFastBits; b++) {
94 |
95 | // gFFTBitTable[b - 1] = new int[len];
96 | gFFTBitTable[b - 1] = (int*) malloc(len * sizeof(int));
97 |
98 | for (int i = 0; i < len; i++)
99 | gFFTBitTable[b - 1][i] = ReverseBits(i, b);
100 |
101 | len <<= 1;
102 | }
103 | }
104 |
105 | inline int FastReverseBits(int i, int NumBits)
106 | {
107 | if (NumBits <= MaxFastBits)
108 | return gFFTBitTable[NumBits - 1][i];
109 | else
110 | return ReverseBits(i, NumBits);
111 | }
112 |
113 | /*
114 | * Complex Fast Fourier Transform
115 | */
116 |
117 | void FFT(int NumSamples,
118 | bool InverseTransform,
119 | float *RealIn, float *ImagIn, float *RealOut, float *ImagOut)
120 | {
121 | int NumBits; /* Number of bits needed to store indices */
122 | int i, j, k, n;
123 | int BlockSize, BlockEnd;
124 |
125 | double angle_numerator = 2.0 * M_PI;
126 | float tr, ti; /* temp real, temp imaginary */
127 |
128 | if (!IsPowerOfTwo(NumSamples)) {
129 | fprintf(stderr, "%d is not a power of two\n", NumSamples);
130 | exit(1);
131 | }
132 |
133 | if (!gFFTBitTable)
134 | InitFFT();
135 |
136 | if (InverseTransform)
137 | angle_numerator = -angle_numerator;
138 |
139 | NumBits = NumberOfBitsNeeded(NumSamples);
140 |
141 | /*
142 | ** Do simultaneous data copy and bit-reversal ordering into outputs...
143 | */
144 |
145 | for (i = 0; i < NumSamples; i++) {
146 | j = FastReverseBits(i, NumBits);
147 | RealOut[j] = RealIn[i];
148 | ImagOut[j] = (ImagIn == NULL) ? 0.0 : ImagIn[i];
149 | }
150 |
151 | /*
152 | ** Do the FFT itself...
153 | */
154 |
155 | BlockEnd = 1;
156 | for (BlockSize = 2; BlockSize <= NumSamples; BlockSize <<= 1) {
157 |
158 | double delta_angle = angle_numerator / (double) BlockSize;
159 |
160 | float sm2 = sin(-2 * delta_angle);
161 | float sm1 = sin(-delta_angle);
162 | float cm2 = cos(-2 * delta_angle);
163 | float cm1 = cos(-delta_angle);
164 | float w = 2 * cm1;
165 | float ar0, ar1, ar2, ai0, ai1, ai2;
166 |
167 | for (i = 0; i < NumSamples; i += BlockSize) {
168 | ar2 = cm2;
169 | ar1 = cm1;
170 |
171 | ai2 = sm2;
172 | ai1 = sm1;
173 |
174 | for (j = i, n = 0; n < BlockEnd; j++, n++) {
175 | ar0 = w * ar1 - ar2;
176 | ar2 = ar1;
177 | ar1 = ar0;
178 |
179 | ai0 = w * ai1 - ai2;
180 | ai2 = ai1;
181 | ai1 = ai0;
182 |
183 | k = j + BlockEnd;
184 | tr = ar0 * RealOut[k] - ai0 * ImagOut[k];
185 | ti = ar0 * ImagOut[k] + ai0 * RealOut[k];
186 |
187 | RealOut[k] = RealOut[j] - tr;
188 | ImagOut[k] = ImagOut[j] - ti;
189 |
190 | RealOut[j] += tr;
191 | ImagOut[j] += ti;
192 | }
193 | }
194 |
195 | BlockEnd = BlockSize;
196 | }
197 |
198 | /*
199 | ** Need to normalize if inverse transform...
200 | */
201 |
202 | if (InverseTransform) {
203 | float denom = (float) NumSamples;
204 |
205 | for (i = 0; i < NumSamples; i++) {
206 | RealOut[i] /= denom;
207 | ImagOut[i] /= denom;
208 | }
209 | }
210 | }
211 |
212 | /*
213 | * Real Fast Fourier Transform
214 | *
215 | * This function was based on the code in Numerical Recipes in C.
216 | * In Num. Rec., the inner loop is based on a single 1-based array
217 | * of interleaved real and imaginary numbers. Because we have two
218 | * separate zero-based arrays, our indices are quite different.
219 | * Here is the correspondence between Num. Rec. indices and our indices:
220 | *
221 | * i1 <-> real[i]
222 | * i2 <-> imag[i]
223 | * i3 <-> real[n/2-i]
224 | * i4 <-> imag[n/2-i]
225 | */
226 |
227 | void RealFFT(int NumSamples, float *RealIn, float *RealOut, float *ImagOut)
228 | {
229 | int Half = NumSamples / 2;
230 | int i;
231 |
232 | float theta = M_PI / Half;
233 |
234 | float *tmpReal = (float*) malloc(Half * sizeof(float));
235 | float *tmpImag = (float*) malloc(Half * sizeof(float));
236 |
237 | for (i = 0; i < Half; i++) {
238 | tmpReal[i] = RealIn[2 * i];
239 | tmpImag[i] = RealIn[2 * i + 1];
240 | }
241 |
242 | FFT(Half, 0, tmpReal, tmpImag, RealOut, ImagOut);
243 |
244 | float wtemp = float (sin(0.5 * theta));
245 |
246 | float wpr = -2.0 * wtemp * wtemp;
247 | float wpi = float (sin(theta));
248 | float wr = 1.0 + wpr;
249 | float wi = wpi;
250 |
251 | int i3;
252 |
253 | float h1r, h1i, h2r, h2i;
254 |
255 | for (i = 1; i < Half / 2; i++) {
256 |
257 | i3 = Half - i;
258 |
259 | h1r = 0.5 * (RealOut[i] + RealOut[i3]);
260 | h1i = 0.5 * (ImagOut[i] - ImagOut[i3]);
261 | h2r = 0.5 * (ImagOut[i] + ImagOut[i3]);
262 | h2i = -0.5 * (RealOut[i] - RealOut[i3]);
263 |
264 | RealOut[i] = h1r + wr * h2r - wi * h2i;
265 | ImagOut[i] = h1i + wr * h2i + wi * h2r;
266 | RealOut[i3] = h1r - wr * h2r + wi * h2i;
267 | ImagOut[i3] = -h1i + wr * h2i + wi * h2r;
268 |
269 | wr = (wtemp = wr) * wpr - wi * wpi + wr;
270 | wi = wi * wpr + wtemp * wpi + wi;
271 | }
272 |
273 | RealOut[0] = (h1r = RealOut[0]) + ImagOut[0];
274 | ImagOut[0] = h1r - ImagOut[0];
275 |
276 | free(tmpReal);
277 | free(tmpImag);
278 | }
279 |
280 | /*
281 | * PowerSpectrum
282 | *
283 | * This function computes the same as RealFFT, above, but
284 | * adds the squares of the real and imaginary part of each
285 | * coefficient, extracting the power and throwing away the
286 | * phase.
287 | *
288 | * For speed, it does not call RealFFT, but duplicates some
289 | * of its code.
290 | */
291 |
292 | void PowerSpectrum(int NumSamples, float *In, float *Out)
293 | {
294 | int Half = NumSamples / 2;
295 | int i;
296 |
297 | float theta = M_PI / Half;
298 |
299 | float *tmpReal = new float[Half];
300 | float *tmpImag = new float[Half];
301 | float *RealOut = new float[Half];
302 | float *ImagOut = new float[Half];
303 |
304 | for (i = 0; i < Half; i++) {
305 | tmpReal[i] = In[2 * i];
306 | tmpImag[i] = In[2 * i + 1];
307 | }
308 |
309 | FFT(Half, 0, tmpReal, tmpImag, RealOut, ImagOut);
310 |
311 | float wtemp = float (sin(0.5 * theta));
312 |
313 | float wpr = -2.0 * wtemp * wtemp;
314 | float wpi = float (sin(theta));
315 | float wr = 1.0 + wpr;
316 | float wi = wpi;
317 |
318 | int i3;
319 |
320 | float h1r, h1i, h2r, h2i, rt, it;
321 | //float total=0;
322 |
323 | for (i = 1; i < Half / 2; i++) {
324 |
325 | i3 = Half - i;
326 |
327 | h1r = 0.5 * (RealOut[i] + RealOut[i3]);
328 | h1i = 0.5 * (ImagOut[i] - ImagOut[i3]);
329 | h2r = 0.5 * (ImagOut[i] + ImagOut[i3]);
330 | h2i = -0.5 * (RealOut[i] - RealOut[i3]);
331 |
332 | rt = h1r + wr * h2r - wi * h2i; //printf("Realout%i = %f",i,rt);total+=fabs(rt);
333 | it = h1i + wr * h2i + wi * h2r; // printf(" Imageout%i = %f\n",i,it);
334 |
335 | Out[i] = rt * rt + it * it;
336 |
337 | rt = h1r - wr * h2r + wi * h2i;
338 | it = -h1i + wr * h2i + wi * h2r;
339 |
340 | Out[i3] = rt * rt + it * it;
341 |
342 | wr = (wtemp = wr) * wpr - wi * wpi + wr;
343 | wi = wi * wpr + wtemp * wpi + wi;
344 | }
345 | //printf("total = %f\n",total);
346 | rt = (h1r = RealOut[0]) + ImagOut[0];
347 | it = h1r - ImagOut[0];
348 | Out[0] = rt * rt + it * it;
349 |
350 | rt = RealOut[Half / 2];
351 | it = ImagOut[Half / 2];
352 | Out[Half / 2] = rt * rt + it * it;
353 |
354 | delete[]tmpReal;
355 | delete[]tmpImag;
356 | delete[]RealOut;
357 | delete[]ImagOut;
358 | }
359 |
360 | /*
361 | * Windowing Functions
362 | */
363 |
364 | //int NumWindowFuncs()
365 | //{
366 | // return 4;
367 | //}
368 |
369 | //char *WindowFuncName(int whichFunction)
370 | //{
371 | // switch (whichFunction) {
372 | // default:
373 | // case 0:
374 | // return "Rectangular";
375 | // case 1:
376 | // return "Bartlett";
377 | // case 2:
378 | // return "Hamming";
379 | // case 3:
380 | // return "Hanning";
381 | // }
382 | //}
383 |
384 | void WindowFunc(int whichFunction, int NumSamples, float *in)
385 | {
386 | int i;
387 |
388 | if (whichFunction == 1) {
389 | // Bartlett (triangular) window
390 | for (i = 0; i < NumSamples / 2; i++) {
391 | in[i] *= (i / (float) (NumSamples / 2));
392 | in[i + (NumSamples / 2)] *=
393 | (1.0 - (i / (float) (NumSamples / 2)));
394 | }
395 | }
396 |
397 | if (whichFunction == 2) {
398 | // Hamming
399 | for (i = 0; i < NumSamples; i++)
400 | in[i] *= 0.54 - 0.46 * cos(2 * M_PI * i / (NumSamples - 1));
401 | }
402 |
403 | if (whichFunction == 3) {
404 | // Hanning
405 | for (i = 0; i < NumSamples; i++)
406 | in[i] *= 0.50 - 0.50 * cos(2 * M_PI * i / (NumSamples - 1));
407 | }
408 | }
409 |
410 | void fft::genWindow(int whichFunction, int NumSamples, float *window)
411 | {
412 | int i;
413 |
414 | if (whichFunction == 1) {
415 | // Bartlett (triangular) window
416 | for (i = 0; i < NumSamples / 2; i++) {
417 | window[i] = (i / (float) (NumSamples / 2));
418 | window[i + (NumSamples / 2)] =
419 | (1.0 - (i / (float) (NumSamples / 2)));
420 | }
421 | }
422 |
423 | if (whichFunction == 2) {
424 | // Hamming
425 | for (i = 0; i < NumSamples; i++)
426 | window[i] = 0.54 - 0.46 * cos(2 * M_PI * i / (NumSamples - 1));
427 | }
428 |
429 | if (whichFunction == 3) {
430 | // Hanning
431 | for (i = 0; i < NumSamples; i++)
432 | window[i] = 0.50 - 0.50 * cos(2 * M_PI * i / (NumSamples - 1));
433 | }
434 | }
435 |
436 | /* constructor */
437 | fft::fft(int fftSize) {
438 | n = fftSize;
439 | half = fftSize / 2;
440 | //use malloc for 16 byte alignment
441 | in_real = (float *) malloc(n * sizeof(float));
442 | in_img = (float *) malloc(n * sizeof(float));
443 | out_real = (float *) malloc(n * sizeof(float));
444 | out_img = (float *) malloc(n * sizeof(float));
445 |
446 | #ifdef __APPLE_CC__
447 | log2n = log2(n);
448 | A.realp = (float *) malloc(half * sizeof(float));
449 | A.imagp = (float *) malloc(half * sizeof(float));
450 | setupReal = vDSP_create_fftsetup(log2n, FFT_RADIX2);
451 | if (setupReal == NULL) {
452 | printf("\nFFT_Setup failed to allocate enough memory for"
453 | "the real FFT.\n");
454 | }
455 | polar = (float *) malloc(n * sizeof(float));
456 | #endif
457 | }
458 |
459 | /* destructor */
460 | fft::~fft() {
461 | delete[] in_real, out_real, in_img, out_img;
462 | #ifdef __APPLE_CC__
463 | vDSP_destroy_fftsetup(setupReal);
464 | delete[] A.realp;
465 | delete[] A.imagp;
466 | delete[] polar;
467 | #endif
468 |
469 | }
470 |
471 | /* Calculate the power spectrum */
472 | void fft::powerSpectrum(int start, float *data, float *window, float *magnitude,float *phase) {
473 | int i;
474 |
475 | //windowing
476 | for (i = 0; i < n; i++) {
477 | in_real[i] = data[start + i] * window[i];
478 | }
479 |
480 |
481 | RealFFT(n, in_real, out_real, out_img);
482 |
483 | for (i = 0; i < half; i++) {
484 | /* compute power */
485 | float power = out_real[i]*out_real[i] + out_img[i]*out_img[i];
486 | /* compute magnitude and phase */
487 | magnitude[i] = sqrt(power);
488 | phase[i] = atan2(out_img[i],out_real[i]);
489 |
490 | // if (magnitude[i] < 0.000001){ // less than 0.1 nV
491 | // magnitude[i] = 0; // out of range
492 | // } else {
493 | // magnitude[i] = 20.0*log10(magnitude[i] + 1); // get to to db scale
494 | // }
495 | }
496 |
497 | }
498 |
499 | void fft::convToDB(float *in, float *out) {
500 | for (int i = 0; i < half; i++) {
501 | if (in[i] < 0.000001){ // less than 0.1 nV
502 | out[i] = 0; // out of range
503 | } else {
504 | out[i] = 20.0*log10(in[i] + 1); // get to to db scale
505 | }
506 | }
507 | }
508 |
509 |
510 | #ifdef __APPLE_CC__
511 |
512 | /* Calculate the power spectrum */
513 | void fft::powerSpectrum_vdsp(int start, float *data, float *window, float *magnitude,float *phase) {
514 |
515 | uint32_t i;
516 |
517 | //multiply by window
518 | vDSP_vmul(data, 1, window, 1, in_real, 1, n);
519 |
520 | //convert to split complex format - evens and odds
521 | vDSP_ctoz((COMPLEX *) in_real, 2, &A, 1, half);
522 |
523 |
524 | //calc fft
525 | vDSP_fft_zrip(setupReal, &A, 1, log2n, FFT_FORWARD);
526 |
527 | //scale by 2 (see vDSP docs)
528 | static float scale=0.5 ;
529 | vDSP_vsmul(A.realp, 1, &scale, A.realp, 1, half);
530 | vDSP_vsmul(A.imagp, 1, &scale, A.imagp, 1, half);
531 |
532 | //back to split complex format
533 | vDSP_ztoc(&A, 1, (COMPLEX*) out_real, 2, half);
534 |
535 | //convert to polar
536 | vDSP_polar(out_real, 2, polar, 2, half);
537 |
538 | for (i = 0; i < half; i++) {
539 | magnitude[i]=polar[2*i];
540 | phase[i]=polar[2*i + 1];
541 | }
542 |
543 |
544 |
545 | }
546 |
547 | void fft::convToDB_vdsp(float *in, float *out) {
548 | float ref = 1.0;
549 | vDSP_vdbcon(in, 1, &ref, out, 1, half, 1);
550 | //get rid of any -infs
551 | float vmin=0.0;
552 | float vmax=9999999.0;
553 | vDSP_vclip(out, 1, &vmin, &vmax, out, 1, half);
554 | }
555 |
556 | #endif
557 |
558 | void fft::inversePowerSpectrum(int start, float *finalOut, float *window, float *magnitude,float *phase) {
559 | int i;
560 |
561 | /* get real and imag part */
562 | for (i = 0; i < half; i++) {
563 | // float mag = pow(10.0, magnitude[i] / 20.0) - 1.0;
564 | // in_real[i] = mag *cos(phase[i]);
565 | // in_img[i] = mag *sin(phase[i]);
566 | in_real[i] = magnitude[i] *cos(phase[i]);
567 | in_img[i] = magnitude[i] *sin(phase[i]);
568 | }
569 |
570 | /* zero negative frequencies */
571 | memset(in_real+half, half, 0.0);
572 | memset(in_img+half, half, 0.0);
573 |
574 | FFT(n, 1, in_real, in_img, out_real, out_img); // second parameter indicates inverse transform
575 |
576 | for (i = 0; i < n; i++) {
577 | finalOut[start + i] += out_real[i] * window[i]
578 | ;
579 | }
580 |
581 | }
582 |
583 |
584 | #ifdef __APPLE_CC__
585 | void fft::inversePowerSpectrum_vdsp(int start, float *finalOut, float *window, float *magnitude,float *phase) {
586 | uint32_t i;
587 |
588 | for (i = 0; i < half; i++) {
589 | // polar[2*i] = pow(10.0, magnitude[i] / 20.0) - 1.0;
590 | polar[2*i] = magnitude[i];
591 | polar[2*i + 1] = phase[i];
592 | }
593 |
594 | vDSP_rect(polar, 2, in_real, 2, half);
595 |
596 | vDSP_ctoz((COMPLEX*) in_real, 2, &A, 1, half);
597 | vDSP_fft_zrip(setupReal, &A, 1, log2n, FFT_INVERSE);
598 | vDSP_ztoc(&A, 1, (COMPLEX*) out_real, 2, half);
599 |
600 | float scale = 1./n;
601 | vDSP_vsmul(out_real, 1, &scale, out_real, 1, n);
602 |
603 | //multiply by window
604 | vDSP_vmul(out_real, 1, window, 1, finalOut, 1, n);
605 |
606 | }
607 |
608 | #endif
609 |
--------------------------------------------------------------------------------
/libs/fft.h:
--------------------------------------------------------------------------------
1 | /*
2 | * maximilian
3 | * platform independent synthesis library using portaudio or rtaudio
4 | *
5 | * Created by Mick Grierson on 29/12/2009.
6 | * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved.
7 | * Thanks to the Goldsmiths Creative Computing Team.
8 | * Special thanks to Arturo Castro for the PortAudio implementation.
9 | *
10 | * Permission is hereby granted, free of charge, to any person
11 | * obtaining a copy of this software and associated documentation
12 | * files (the "Software"), to deal in the Software without
13 | * restriction, including without limitation the rights to use,
14 | * copy, modify, merge, publish, distribute, sublicense, and/or sell
15 | * copies of the Software, and to permit persons to whom the
16 | * Software is furnished to do so, subject to the following
17 | * conditions:
18 | *
19 | * The above copyright notice and this permission notice shall be
20 | * included in all copies or substantial portions of the Software.
21 | *
22 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
24 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
27 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
29 | * OTHER DEALINGS IN THE SOFTWARE.
30 | *
31 | */
32 |
33 | #ifndef _FFT
34 | #define _FFT
35 |
36 | #ifndef M_PI
37 | #define M_PI 3.14159265358979323846 /* pi */
38 | #endif
39 |
40 | #ifdef __APPLE_CC__
41 | #include
42 | #endif
43 |
44 |
45 |
46 | class fft {
47 |
48 | public:
49 |
50 | fft(int fftSize);
51 | ~fft();
52 |
53 | int n; //fftSize
54 | int half; //halfFFTSize
55 |
56 | float *in_real, *out_real, *in_img, *out_img;
57 |
58 | #ifdef __APPLE_CC__
59 | int log2n; //log2(n);
60 | FFTSetup setupReal;
61 | COMPLEX_SPLIT A;
62 | float *polar;
63 | void powerSpectrum_vdsp(int start, float *data, float *window, float *magnitude,float *phase);
64 | void inversePowerSpectrum_vdsp(int start, float *finalOut, float *window, float *magnitude,float *phase);
65 | void convToDB_vdsp(float *in, float *out);
66 | #endif
67 |
68 | /* Calculate the power spectrum */
69 | void powerSpectrum(int start, float *data, float *window, float *magnitude, float *phase);
70 | /* ... the inverse */
71 | void inversePowerSpectrum(int start, float *finalOut, float *window, float *magnitude,float *phase);
72 | void convToDB(float *in, float *out);
73 |
74 | static void genWindow(int whichFunction, int NumSamples, float *window);
75 |
76 | };
77 |
78 |
79 | #endif
80 |
--------------------------------------------------------------------------------
/ofxaddons_thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/julapy/ofxFFT/134cfe47be41da319b11ad3bb835311dc4ae36ef/ofxaddons_thumbnail.png
--------------------------------------------------------------------------------
/src/ofxFFTBase.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * AudioAbstract.cpp
3 | * openFrameworks
4 | *
5 | * Created by lukasz karluk on 29/08/09.
6 | * Copyright 2009 __MyCompanyName__. All rights reserved.
7 | *
8 | */
9 |
10 | #include "ofxFFTBase.h"
11 | #include "fft.h"
12 |
13 | ofxFFTBase::ofxFFTBase() {
14 | _fft = NULL;
15 | buffer = NULL;
16 | magnitudes = NULL;
17 | magnitudesDB = NULL;
18 | phases = NULL;
19 | window = NULL;
20 |
21 | setMaxDecay(0.995);
22 | setPeakDecay(0.96);
23 | setThreshold(0.5);
24 | setMirrorData(false);
25 |
26 | renderBorder = 1;
27 |
28 | bufferSize = 512; // default.
29 | binSize = (int)(bufferSize * 0.5);
30 |
31 | initFFT();
32 | initAudioData(fftData, binSize);
33 | }
34 |
35 | ofxFFTBase::~ofxFFTBase() {
36 | killFFT();
37 | }
38 |
39 | void ofxFFTBase::setup() {
40 | //
41 | }
42 |
43 | void ofxFFTBase::audioIn(float * data) {
44 | memcpy(buffer, data, sizeof(float) * bufferSize);
45 | }
46 |
47 | void ofxFFTBase::update() {
48 |
49 | #if defined(__APPLE_CC__) && !defined(_NO_VDSP)
50 | _fft->powerSpectrum_vdsp(0, buffer, window, magnitudes, phases);
51 | // _fft->convToDB_vdsp(magnitudes, magnitudesDB);
52 | #else
53 | _fft->powerSpectrum(0, buffer, window, magnitudes, phases);
54 | // _fft->convToDB(magnitudes, magnitudesDB);
55 | #endif
56 |
57 | updateAudioData(fftData, magnitudes);
58 |
59 | if(bMirrorData) {
60 | mirrorAudioData(fftData);
61 | }
62 | }
63 |
64 | //////////////////////////////////////////////////////
65 | // FFT.
66 | //////////////////////////////////////////////////////
67 |
68 | void ofxFFTBase::initFFT() {
69 | killFFT();
70 |
71 | _fft = new fft(bufferSize);
72 |
73 | buffer = (float *)malloc(bufferSize * sizeof(float));
74 | memset(buffer, 0, bufferSize * sizeof(float));
75 |
76 | magnitudes = (float *)malloc(binSize * sizeof(float));
77 | memset(magnitudes, 0, binSize * sizeof(float));
78 |
79 | magnitudesDB = (float *)malloc(binSize * sizeof(float));
80 | memset(magnitudesDB, 0, binSize * sizeof(float));
81 |
82 | phases = (float *)malloc(binSize * sizeof(float));
83 | memset(phases, 0, binSize * sizeof(float));
84 |
85 | window = (float *)malloc(bufferSize * sizeof(float));
86 | memset(window, 0, bufferSize * sizeof(float));
87 | fft::genWindow(3, bufferSize, window);
88 | }
89 |
90 | void ofxFFTBase::killFFT() {
91 | if(_fft) {
92 | delete _fft;
93 | _fft = NULL;
94 | }
95 |
96 | if(buffer) {
97 | delete[] buffer;
98 | buffer = NULL;
99 | }
100 |
101 | if(magnitudes) {
102 | delete[] magnitudes;
103 | magnitudes = NULL;
104 | }
105 |
106 | if(magnitudesDB) {
107 | delete[] magnitudesDB;
108 | magnitudesDB = NULL;
109 | }
110 |
111 | if(phases) {
112 | delete[] phases;
113 | phases = NULL;
114 | }
115 |
116 | if(window) {
117 | delete[] window;
118 | window = NULL;
119 | }
120 | }
121 |
122 | //////////////////////////////////////////////////////
123 | // AUDIO DATA.
124 | //////////////////////////////////////////////////////
125 |
126 | void ofxFFTBase::initAudioData(ofxFFTData & audioData, int dataSize) {
127 | audioData.size = dataSize;
128 |
129 | audioData.data.resize(dataSize, 0);
130 | audioData.dataNorm.resize(dataSize, 0);
131 | audioData.dataMax.resize(dataSize, 0);
132 | audioData.dataPeak.resize(dataSize, 0);
133 | audioData.dataCut.resize(dataSize, 0);
134 |
135 | audioData.linearEQIntercept = 1.0;
136 | audioData.linearEQSlope = 0.0;
137 | }
138 |
139 | void ofxFFTBase::updateAudioData(ofxFFTData & audioData, float * dataNew) {
140 | audioData.data.clear();
141 | audioData.data.resize(audioData.size, 0);
142 |
143 | for(int i=0; i 0) {
182 | dataNormVal = dataVal / dataMaxVal; // normalise data between 0 and 1.
183 | }
184 |
185 | if(dataVal < 0.1) {
186 | dataNormVal = 0;
187 | }
188 |
189 | dataMaxVal *= audioData.maxDecay; // decay the max value.
190 |
191 | audioData.dataNorm[i] = dataNormVal;
192 |
193 | audioData.dataMax[i] = dataMaxVal;
194 |
195 | float dataPeakVal;
196 | dataPeakVal = audioData.dataPeak[i];
197 | dataPeakVal *= audioData.peakDecay; // decay peak value.
198 |
199 | if(dataPeakVal < dataNormVal) { // check if new peak.
200 | dataPeakVal = dataNormVal;
201 | }
202 |
203 | audioData.dataPeak[i] = dataPeakVal;
204 |
205 | audioData.peakAverage += dataPeakVal; // sum of all peaks.
206 |
207 | int dataCutVal; // switch data (on/off).
208 | if(dataPeakVal < audioData.cutThreshold) {
209 | dataCutVal = 1;
210 | } else {
211 | dataCutVal = 0;
212 | }
213 |
214 | audioData.dataCut[i] = dataCutVal;
215 | }
216 |
217 | audioData.peakAverage /= audioData.size;
218 | }
219 |
220 | void ofxFFTBase::mirrorAudioData(ofxFFTData & audioData) {
221 | int audioDataSizeHalf;
222 | audioDataSizeHalf = (int)(audioData.size * 0.5);
223 |
224 | for(int i=0; i & ofxFFTBase::getFftRawData() {
306 | return fftData.data;
307 | }
308 |
309 | const vector & ofxFFTBase::getFftNormData() {
310 | return fftData.dataNorm;
311 | }
312 |
313 | const vector & ofxFFTBase::getFftPeakData() {
314 | return fftData.dataPeak;
315 | }
316 |
317 | const vector & ofxFFTBase::getGlitchData() {
318 | return fftData.dataCut;
319 | }
320 |
321 | void ofxFFTBase::getFftData(float * data, int length) {
322 | for(int i=0; i data;
22 | vector dataNorm;
23 | vector dataMax;
24 | vector dataPeak;
25 | vector dataCut;
26 | float maxDecay;
27 | float peakValue;
28 | float peakDecay;
29 | float peakAverage;
30 | float cutThreshold;
31 | float linearEQIntercept;
32 | float linearEQSlope;
33 | };
34 |
35 | class ofxFFTBase : public ofBaseApp {
36 |
37 | public:
38 |
39 | ofxFFTBase();
40 | ~ofxFFTBase();
41 |
42 | virtual void setup();
43 |
44 | virtual void audioIn(float * data);
45 | virtual void update();
46 |
47 | virtual void draw(int x=0, int y=0);
48 | virtual void draw(int x, int y, int w, int h);
49 |
50 | virtual void drawData(const ofxFFTData &audioData, int w = OFX_FFT_WIDTH, int h = OFX_FFT_HEIGHT);
51 | virtual void drawBg(const ofxFFTData &audioData, int w = OFX_FFT_WIDTH, int h = OFX_FFT_HEIGHT);
52 | virtual void drawGlitchData(const ofxFFTData &audioData, int w = OFX_FFT_WIDTH, int h = OFX_FFT_HEIGHT);
53 | virtual void drawFftData(const ofxFFTData &audioData, int w = OFX_FFT_WIDTH, int h = OFX_FFT_HEIGHT);
54 | virtual void drawFftNormData(const ofxFFTData &audioData, int w = OFX_FFT_WIDTH, int h = OFX_FFT_HEIGHT);
55 | virtual void drawFftPeakData(const ofxFFTData &audioData, int w = OFX_FFT_WIDTH, int h = OFX_FFT_HEIGHT);
56 | virtual void drawThresholdLine(const ofxFFTData &audioData, int w = OFX_FFT_WIDTH, int h = OFX_FFT_HEIGHT);
57 | virtual void drawBorder(int w, int h);
58 |
59 | virtual void initFFT();
60 | virtual void killFFT();
61 |
62 | virtual void initAudioData(ofxFFTData &audioData, int dataSize);
63 | virtual void updateAudioData(ofxFFTData &audioData, float *dataNew);
64 | virtual void mirrorAudioData(ofxFFTData &audioData);
65 | virtual void resetAudioData(ofxFFTData &audioData);
66 |
67 | virtual void setBufferSize(int value);
68 | virtual int getBufferSize();
69 | virtual void setThreshold(float value);
70 | virtual float getThreshold();
71 | virtual float getAveragePeak();
72 | virtual void setPeakDecay(float value);
73 | virtual float getPeakDecay();
74 | virtual void setMaxDecay(float value);
75 | virtual float getMaxDecay();
76 | virtual void setMirrorData(bool value);
77 |
78 | virtual const vector & getFftRawData();
79 | virtual const vector & getFftNormData();
80 | virtual const vector & getFftPeakData();
81 | virtual const vector & getGlitchData();
82 |
83 | virtual void getFftData(float *data, int length);
84 | virtual void getFftPeakData(float *data, int length);
85 | virtual void getGlitchData(int * data, int length);
86 |
87 | fft * _fft;
88 |
89 | int bufferSize;
90 | int binSize;
91 | float * buffer;
92 | float * magnitudes;
93 | float * magnitudesDB;
94 | float * phases;
95 | float * window;
96 | float averagePower;
97 |
98 | bool bMirrorData;
99 |
100 | ofxFFTData fftData;
101 |
102 | int renderBorder;
103 | int renderSingleBandWidth;
104 | };
105 |
--------------------------------------------------------------------------------
/src/ofxFFTFile.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * ofxFFTFile.cpp
3 | * Created by lukasz karluk on 24/08/09.
4 | *
5 | */
6 |
7 | #include "ofxFFTFile.h"
8 |
9 | ofxFFTFile::ofxFFTFile() : ofxFFTBase() {
10 | bFrameSync = false;
11 | frameSyncRate = 0;
12 | frameSyncIndex = 0;
13 | frameSyncTotal = 0;
14 | player = NULL;
15 | }
16 |
17 | ofxFFTFile::~ofxFFTFile() {
18 | //
19 | }
20 |
21 | void ofxFFTFile::setup() {
22 | ofxFFTBase::setup();
23 | }
24 |
25 | void ofxFFTFile::update() {
26 |
27 | if(bFrameSync == true) {
28 | float position = frameSyncIndex / (float)(frameSyncTotal-1);
29 | player->setPosition(position);
30 | }
31 |
32 | float * data = ofSoundGetSpectrum(bufferSize);
33 | ofxFFTBase::audioIn(data);
34 | ofxFFTBase::update();
35 |
36 | if(bFrameSync == true) {
37 | frameSyncIndex += 1;
38 | bFrameSync = (frameSyncIndex < frameSyncTotal);
39 | }
40 | }
41 |
42 | void ofxFFTFile::startFrameSync(ofSoundPlayer * soundPlayer, int frameRate) {
43 | if(soundPlayer == NULL) {
44 | return;
45 | }
46 |
47 | player = soundPlayer;
48 | if(player->isPlaying()) {
49 | player->setPaused(false);
50 | } else {
51 | player->play();
52 | }
53 |
54 | float position = player->getPosition();
55 |
56 | bFrameSync = true;
57 | frameSyncRate = frameRate;
58 | frameSyncIndex = 0;
59 | frameSyncTotal = 0;
60 |
61 | #ifdef OF_SOUND_PLAYER_FMOD
62 | ofPtr playerPtr = player->getPlayer();
63 | ofFmodSoundPlayer * fmodPlayer = (ofFmodSoundPlayer *)playerPtr.get();
64 | int length = fmodPlayer->length;
65 | float internalFreq = fmodPlayer->internalFreq;
66 | float audioLengthInvFreq = length / internalFreq;
67 | frameSyncTotal = audioLengthInvFreq * frameSyncRate;
68 | #endif
69 |
70 | frameSyncIndex = (frameSyncTotal - 1) * position;
71 |
72 | bFrameSync = (frameSyncTotal > 0);
73 | }
74 |
75 | void ofxFFTFile::stopFrameSync() {
76 | bFrameSync = false;
77 | }
--------------------------------------------------------------------------------
/src/ofxFFTFile.h:
--------------------------------------------------------------------------------
1 | /*
2 | * ofxFFTFile.h
3 | * Created by lukasz karluk on 24/08/09.
4 | *
5 | */
6 |
7 | #pragma once
8 |
9 | #include "ofMain.h"
10 | #include "ofxFFTBase.h"
11 |
12 | class ofxFFTFile : public ofxFFTBase {
13 |
14 | public:
15 |
16 | ofxFFTFile();
17 | ~ofxFFTFile();
18 |
19 | void setup();
20 |
21 | void update();
22 |
23 | void startFrameSync(ofSoundPlayer * player, int frameRate);
24 | void stopFrameSync();
25 |
26 | bool bFrameSync;
27 | int frameSyncRate;
28 | int frameSyncIndex;
29 | int frameSyncTotal;
30 | ofSoundPlayer * player;
31 | };
--------------------------------------------------------------------------------
/src/ofxFFTLive.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * ofxFFTLive.cpp
3 | * Created by lukasz karluk on 29/08/09.
4 | *
5 | */
6 |
7 | #include "ofxFFTLive.h"
8 |
9 | ofxFFTLive::ofxFFTLive() : ofxFFTBase() {
10 | soundStream = NULL;
11 | }
12 |
13 | ofxFFTLive::~ofxFFTLive() {
14 | if(soundStream == NULL) {
15 | return;
16 | }
17 | soundStream->stop();
18 | soundStream->close();
19 | delete soundStream;
20 | soundStream = NULL;
21 | }
22 |
23 | void ofxFFTLive::setup() {
24 | ofSoundStream * soundStream = new ofSoundStream();
25 | soundStream->setup(this, // callback obj.
26 | 0, // out channels.
27 | 1, // in channels.
28 | 44100, // sample rate.
29 | getBufferSize(), // buffer size.
30 | 4); // number of buffers.
31 | this->soundStream = soundStream;
32 | }
33 |
34 | void ofxFFTLive::audioIn(float * input, int bufferSize, int nChannels) {
35 | ofxFFTBase::audioIn(input);
36 | }
--------------------------------------------------------------------------------
/src/ofxFFTLive.h:
--------------------------------------------------------------------------------
1 | /*
2 | * ofxFFTLive.h
3 | * Created by lukasz karluk on 29/08/09.
4 | *
5 | */
6 |
7 | #pragma once
8 |
9 | #include "ofMain.h"
10 | #include "ofxFFTBase.h"
11 |
12 | class ofxFFTLive : public ofxFFTBase {
13 |
14 | public:
15 |
16 | ofxFFTLive();
17 | ~ofxFFTLive();
18 |
19 | void setup();
20 | void audioIn(float * input, int bufferSize, int nChannels);
21 |
22 | ofSoundStream * soundStream;
23 | };
--------------------------------------------------------------------------------