# HG changeset patch # User Fiore Martin # Date 1456498175 0 # Node ID 3004dd6632029dd592cdb621bbb8b27ca56736ed first import diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-aax.vcxproj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-aax.vcxproj Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,545 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + Tracer + Win32 + + + Tracer + x64 + + + + {DC4B5920-933D-4C82-B842-F34431D55A93} + AccessibleSpectrumAnalyser-aax + ManagedCProj + + + + DynamicLibrary + v120 + + + DynamicLibrary + v120 + + + DynamicLibrary + v120 + + + DynamicLibrary + v120 + + + DynamicLibrary + v120 + + + DynamicLibrary + v120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\$(Platform)\ + build-win\aax\$(Platform)\$(Configuration)\ + false + build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\$(Platform)\ + build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\$(Platform)\ + build-win\aax\$(Platform)\$(Configuration)\ + build-win\aax\$(Platform)\$(Configuration)\ + false + false + build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\$(Platform)\ + build-win\aax\$(Platform)\$(Configuration)\ + false + build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\$(Platform)\ + build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\$(Platform)\ + build-win\aax\$(Platform)\$(Configuration)\ + build-win\aax\$(Platform)\$(Configuration)\ + false + false + + + + DEL /Q /F /S .\build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\Win32\ +CALL ..\..\AAX_SDK\Utilities\CreatePackage.bat $(OutDir) ..\..\AAX_SDK\Utilities\PlugIn.ico + + + + + + + + %(Outputs) + + + Disabled + $(AAX_INCLUDES);.\;%(AdditionalIncludeDirectories) + $(AAX_DEFS);$(DEBUG_DEFS);%(PreprocessorDefinitions) + false + Async + EnableFastChecks + MultiThreadedDebug + true + $(IntDir)AccessibleSpectrumAnalyser.pch + + + Level3 + ProgramDatabase + Default + %(ForcedIncludeFiles) + + + $(AAX_LIBS) + $(OutDir)$(BINARY_NAME).aaxplugin + true + true + + + $(OutDir)$(ProjectName).pdb + true + $(IntDir)$(TargetName).map + Windows + $(IntDir)$(TargetName).lib + + + $(OutDir)$(ProjectName).bsc + + + Copying AAX plugin folder to $(AAX_PLUGINS_PATH) + xcopy /E /Y /i ".\build-win\aax\bin\$(BINARY_NAME).aaxplugin" "$(AAX_PLUGINS_PATH)\$(BINARY_NAME).aaxplugin" + + + + + DEL /Q /F /S .\build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\Win32\ +CALL ..\..\AAX_SDK\Utilities\CreatePackage.bat $(OutDir) ..\..\AAX_SDK\Utilities\PlugIn.ico + + + + + + + + %(Outputs) + + + MaxSpeed + Speed + $(AAX_INCLUDES);.\;%(AdditionalIncludeDirectories) + $(AAX_DEFS);$(RELEASE_DEFS);%(PreprocessorDefinitions) + false + Async + MultiThreaded + StreamingSIMDExtensions2 + true + + + + + $(IntDir)vc70.pdb + + + Level3 + ProgramDatabase + Default + %(ForcedIncludeFiles) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(AAX_LIBS) + $(OutDir)$(BINARY_NAME).aaxplugin + true + false + Windows + $(IntDir)$(TargetName).lib + + + $(OutDir)$(ProjectName).bsc + + + Copying AAX plugin folder to $(AAX_PLUGINS_PATH) + xcopy /E /Y /i ".\build-win\aax\bin\$(BINARY_NAME).aaxplugin" "$(AAX_PLUGINS_PATH)\$(BINARY_NAME).aaxplugin" + + + + + DEL /Q /F /S .\build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\Win32\ +CALL ..\..\AAX_SDK\Utilities\CreatePackage.bat $(OutDir) ..\..\AAX_SDK\Utilities\PlugIn.ico + + + + + + + + %(Outputs) + + + MaxSpeed + Speed + $(AAX_INCLUDES);.\;%(AdditionalIncludeDirectories) + $(AAX_DEFS);$(TRACER_DEFS);%(PreprocessorDefinitions) + false + Async + MultiThreaded + StreamingSIMDExtensions2 + true + + + + + $(IntDir)vc70.pdb + + + Level3 + ProgramDatabase + Default + %(ForcedIncludeFiles) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(AAX_LIBS) + $(OutDir)$(BINARY_NAME).aaxplugin + true + false + Windows + $(IntDir)$(TargetName).lib + + + $(OutDir)$(ProjectName).bsc + + + Copying AAX plugin folder to $(AAX_PLUGINS_PATH) + xcopy /E /Y /i ".\build-win\aax\bin\$(BINARY_NAME).aaxplugin" "$(AAX_PLUGINS_PATH)\$(BINARY_NAME).aaxplugin" + + + + + DEL /Q /F /S .\build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\x64\ + + + + + + + + %(Outputs) + + + X64 + + + Disabled + $(AAX_INCLUDES);.\;%(AdditionalIncludeDirectories) + $(AAX_DEFS);$(DEBUG_DEFS);%(PreprocessorDefinitions) + false + Async + EnableFastChecks + MultiThreadedDebug + true + $(IntDir)AccessibleSpectrumAnalyser.pch + true + Level3 + ProgramDatabase + Default + %(ForcedIncludeFiles) + + + $(AAX_LIBS) + $(OutDir)$(BINARY_NAME).aaxplugin + true + true + + + $(OutDir)$(ProjectName).pdb + true + $(IntDir)$(TargetName).map + Windows + $(IntDir)$(TargetName).lib + MachineX64 + + + $(OutDir)$(ProjectName).bsc + + + Copying AAX plugin folder to $(AAX_PLUGINS_PATH) + xcopy /E /Y /i ".\build-win\aax\bin\$(BINARY_NAME).aaxplugin" "$(AAX_PLUGINS_PATH)\$(BINARY_NAME).aaxplugin" + + + + + DEL /Q /F /S .\build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\x64\ + + + + + + + + %(Outputs) + + + X64 + + + MaxSpeed + $(AAX_INCLUDES);.\;%(AdditionalIncludeDirectories) + $(AAX_DEFS);$(RELEASE_DEFS);%(PreprocessorDefinitions) + false + Async + MultiThreaded + true + + + + + $(IntDir)vc70.pdb + Level3 + ProgramDatabase + Default + %(ForcedIncludeFiles) + Speed + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(AAX_LIBS) + $(OutDir)$(BINARY_NAME).aaxplugin + true + false + Windows + $(IntDir)$(TargetName).lib + MachineX64 + + + $(OutDir)$(ProjectName).bsc + + + Copying AAX plugin folder to $(AAX_PLUGINS_PATH) + xcopy /E /Y /i ".\build-win\aax\bin\$(BINARY_NAME).aaxplugin" "$(AAX_PLUGINS_PATH)\$(BINARY_NAME).aaxplugin" + + + + + DEL /Q /F /S .\build-win\aax\bin\$(BINARY_NAME).aaxplugin\Contents\x64\ + + + + + + + + %(Outputs) + + + X64 + + + MaxSpeed + $(AAX_INCLUDES);.\;%(AdditionalIncludeDirectories) + $(AAX_DEFS);$(TRACER_DEFS);%(PreprocessorDefinitions) + false + Async + MultiThreaded + true + + + + + $(IntDir)vc70.pdb + Level3 + ProgramDatabase + Default + %(ForcedIncludeFiles) + Speed + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(AAX_LIBS) + $(OutDir)$(BINARY_NAME).aaxplugin + true + false + Windows + $(IntDir)$(TargetName).lib + MachineX64 + + + $(OutDir)$(ProjectName).bsc + + + Copying AAX plugin folder to $(AAX_PLUGINS_PATH) + xcopy /E /Y /i ".\build-win\aax\bin\$(BINARY_NAME).aaxplugin" "$(AAX_PLUGINS_PATH)\$(BINARY_NAME).aaxplugin" + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.xdc + + + + + + + + + + + + + + + + + + + Document + true + true + true + + + Document + true + true + true + true + + + Document + true + true + true + + + Document + true + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + true + + + true + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + + + + + + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-aax.vcxproj.filters --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-aax.vcxproj.filters Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,134 @@ + + + + + {ed0eb9dd-b586-4a3f-98af-ebd9c084fff2} + + + {a484aa50-ad02-4746-957e-117c8bb5c192} + + + {57d1624e-a679-47da-bd3e-9609f02fdd7b} + + + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug\AAX + + + IPlug\AAX + + + IPlug\AAX + + + + Libs + + + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug\AAX + + + IPlug\AAX + + + + + + + + + + Libs + + + Libs + + + Libs + + + Libs + + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-app.vcxproj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-app.vcxproj Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,303 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + Tracer + Win32 + + + Tracer + x64 + + + + {41785AE4-5B70-4A75-880B-4B418B4E13C6} + AccessibleSpectrumAnalyser + AccessibleSpectrumAnalyser-app + + + + Application + true + MultiByte + v120_xp + + + Application + true + MultiByte + v120_xp + + + Application + false + true + MultiByte + v120_xp + + + Application + false + true + MultiByte + v120_xp + + + Application + false + true + MultiByte + v120_xp + + + Application + false + true + MultiByte + v120_xp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + build-win\app\$(Platform)\bin\ + + + build-win\app\$(Platform)\bin\ + + + build-win\app\$(Platform)\$(Configuration)\ + + + + + build-win\app\$(Platform)\$(Configuration)\ + + + + build-win\app\$(Platform)\bin\ + + + build-win\app\$(Platform)\bin\ + + + build-win\app\$(Platform)\$(Configuration)\ + + + build-win\app\$(Platform)\$(Configuration)\ + + + build-win\app\$(Platform)\bin\ + + + build-win\app\$(Platform)\bin\ + + + build-win\app\$(Platform)\$(Configuration)\ + + + build-win\app\$(Platform)\$(Configuration)\ + + + + Level3 + Disabled + $(APP_DEFS);$(DEBUG_DEFS);%(PreprocessorDefinitions) + $(APP_INCLUDES);%(AdditionalIncludeDirectories) + MultiThreadedDebug + + + true + $(APP_LIBS);%(AdditionalDependencies) + Windows + + + SA_API + + + + + Level3 + Disabled + $(APP_DEFS);$(DEBUG_DEFS);%(PreprocessorDefinitions) + $(APP_INCLUDES);%(AdditionalIncludeDirectories) + MultiThreadedDebug + + + true + $(APP_LIBS);%(AdditionalDependencies) + Windows + $(x64_LIB_PATHS);%(AdditionalLibraryDirectories) + + + SA_API + + + + + Level3 + MaxSpeed + true + true + $(APP_DEFS);$(RELEASE_DEFS);%(PreprocessorDefinitions) + $(APP_INCLUDES);%(AdditionalIncludeDirectories) + true + Speed + + + true + true + true + $(APP_LIBS);%(AdditionalDependencies) + Windows + + + SA_API + + + + + Level3 + MaxSpeed + true + true + $(APP_DEFS);$(RELEASE_DEFS);%(PreprocessorDefinitions) + $(APP_INCLUDES);%(AdditionalIncludeDirectories) + true + Speed + + + true + true + true + $(APP_LIBS);%(AdditionalDependencies) + Windows + $(x64_LIB_PATHS);%(AdditionalLibraryDirectories) + + + SA_API + + + + + Level3 + MaxSpeed + true + true + $(APP_DEFS);$(TRACER_DEFS);%(PreprocessorDefinitions) + $(APP_INCLUDES);%(AdditionalIncludeDirectories) + true + + + true + true + true + $(APP_LIBS);%(AdditionalDependencies) + Windows + $(WDL_PATH)\lice\build-win\$(Platform)\Release\;%(AdditionalLibraryDirectories) + + + SA_API + + + + + Level3 + MaxSpeed + true + true + $(APP_DEFS);$(TRACER_DEFS);%(PreprocessorDefinitions) + $(APP_INCLUDES);%(AdditionalIncludeDirectories) + true + + + true + true + true + $(APP_LIBS);%(AdditionalDependencies) + Windows + $(x64_LIB_PATHS);$(WDL_PATH)\lice\build-win\$(Platform)\Release\;%(AdditionalLibraryDirectories) + + + SA_API + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-app.vcxproj.filters --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-app.vcxproj.filters Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,82 @@ + + + + + {6a6c24bd-7110-4436-97af-07990da17abf} + + + {ef87c677-1479-44bc-aef8-7ba960ef233d} + + + {b91b9db4-5584-4959-a395-7394ba3cf5a3} + + + + + app\RtAudioMidi + + + app\RtAudioMidi + + + app\RtAudioMidi + + + app\ASIO_SDK + + + app\ASIO_SDK + + + app\ASIO_SDK + + + app\ASIO_SDK + + + app\ASIO_SDK + + + app\ASIO_SDK + + + app + + + + + app + + + + + + app\RtAudioMidi + + + app\RtAudioMidi + + + app\ASIO_SDK + + + app\ASIO_SDK + + + app\ASIO_SDK + + + app + + + app + + + + app + + + + + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-rtas.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-rtas.def Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,4 @@ +LIBRARY AccessibleSpectrumAnalyser +EXPORTS + NewPlugIn @1 + _PI_GetRoutineDescriptor @2 \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-rtas.vcxproj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-rtas.vcxproj Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,349 @@ + + + + + + Debug + Win32 + + + Release + Win32 + + + Tracer + Win32 + + + + {8F427C1E-B580-4793-BEAC-F2CFEFA003F5} + AccessibleSpectrumAnalyser-rtas + + + + DynamicLibrary + false + v120 + + + DynamicLibrary + false + v120 + + + DynamicLibrary + false + v120 + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)build-win\rtas\bin\ + $(SolutionDir)build-win\rtas\$(Configuration)\ + false + $(SolutionDir)build-win\rtas\bin\ + $(SolutionDir)build-win\rtas\$(Configuration)\ + false + $(SolutionDir)build-win\rtas\bin\ + $(SolutionDir)build-win\rtas\$(Configuration)\ + false + .dpm + .dpm + .dpm + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)$(TargetName).tlb + + + %40..\..\WDL\IPlug\RTAS\Paths_90_SDK.txt %(AdditionalOptions) + Disabled + OnlyExplicitInline + Speed + $(RTAS_INCLUDES);%(AdditionalIncludeDirectories) + $(RTAS_DEFS);NDEBUG;%(PreprocessorDefinitions) + Async + Default + MultiThreaded + StreamingSIMDExtensions2 + true + + + + + $(IntDir) + $(IntDir) + $(IntDir) + + + Level3 + true + ProgramDatabase + Cdecl + Default + digicode.h;%(ForcedIncludeFiles) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + /MACHINE:I386 /FORCE:MULTIPLE /IGNORE:4006 /IGNORE:4070 %(AdditionalOptions) + wininet.lib;%(AdditionalDependencies) + NotSet + $(OutDir)$(BINARY_NAME).dpm + true + %(AdditionalLibraryDirectories) + libcmt.lib;msvprt.lib + AccessibleSpectrumAnalyser-rtas.def + true + $(RTAS_PLUGINS_PATH)\$(TargetName).pdb + true + $(IntDir)$(TargetName).map + Windows + $(IntDir)$(TargetName).lib + + + Copying dpm and rsr to $(RTAS_PLUGINS_PATH) + copy /Y "$(TargetPath)" "$(RTAS_PLUGINS_PATH)\$(BINARY_NAME).dpm" +copy /Y "$(TargetPath)".rsr "$(RTAS_PLUGINS_PATH)\$(BINARY_NAME).dpm.rsr" + + + + copy /Y ..\..\WDL\IPlug\RTAS\ResourceFile "$(TargetPath)".rsr + $(TargetPath).rsr + Copying dummy rsr + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)$(TargetName).tlb + + + %40..\..\WDL\IPlug\RTAS\Paths_90_SDK.txt %(AdditionalOptions) + Full + OnlyExplicitInline + Speed + $(RTAS_INCLUDES);%(AdditionalIncludeDirectories) + $(RTAS_DEFS);$(RELEASE_DEFS);%(PreprocessorDefinitions) + Async + Default + MultiThreaded + StreamingSIMDExtensions2 + true + + + + + $(IntDir) + $(IntDir) + $(IntDir) + + + Level3 + true + ProgramDatabase + Cdecl + Default + digicode.h;%(ForcedIncludeFiles) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + /MACHINE:I386 /FORCE:MULTIPLE /IGNORE:4006 /IGNORE:4070 %(AdditionalOptions) + wininet.lib;%(AdditionalDependencies) + NotSet + $(OutDir)$(BINARY_NAME).dpm + true + %(AdditionalLibraryDirectories) + libcmt.lib;msvprt.lib + AccessibleSpectrumAnalyser-rtas.def + false + Windows + $(IntDir)$(TargetName).lib + + + Copying dpm and rsr to $(RTAS_PLUGINS_PATH) + copy /Y "$(TargetPath)" "$(RTAS_PLUGINS_PATH)\$(BINARY_NAME).dpm" +copy /Y "$(TargetPath)".rsr "$(RTAS_PLUGINS_PATH)\$(BINARY_NAME).dpm.rsr" + + + + copy /Y ..\..\WDL\IPlug\RTAS\ResourceFile "$(TargetPath)".rsr + $(TargetPath).rsr + Copying dummy rsr + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)$(TargetName).tlb + + + %40..\..\WDL\IPlug\RTAS\Paths_90_SDK.txt %(AdditionalOptions) + Full + OnlyExplicitInline + Speed + $(RTAS_INCLUDES);%(AdditionalIncludeDirectories) + $(RTAS_DEFS);$(TRACER_DEFS);%(PreprocessorDefinitions) + Async + Default + MultiThreaded + StreamingSIMDExtensions2 + true + + + + + $(IntDir) + $(IntDir) + $(IntDir) + + + Level3 + true + ProgramDatabase + Cdecl + Default + digicode.h;%(ForcedIncludeFiles) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + /MACHINE:I386 /FORCE:MULTIPLE /IGNORE:4006 /IGNORE:4070 %(AdditionalOptions) + wininet.lib;%(AdditionalDependencies) + NotSet + $(OutDir)$(BINARY_NAME).dpm + true + %(AdditionalLibraryDirectories) + libcmt.lib;msvprt.lib + AccessibleSpectrumAnalyser-rtas.def + true + $(RTAS_PLUGINS_PATH)\$(TargetName).pdb + true + $(IntDir)$(TargetName).map + Windows + $(IntDir)$(TargetName).lib + + + Copying dpm and rsr to $(RTAS_PLUGINS_PATH) + copy /Y "$(TargetPath)" "$(RTAS_PLUGINS_PATH)\$(BINARY_NAME).dpm" +copy /Y "$(TargetPath)".rsr "$(RTAS_PLUGINS_PATH)\$(BINARY_NAME).dpm.rsr" + + + + copy /Y ..\..\WDL\IPlug\RTAS\ResourceFile "$(TargetPath)".rsr + $(TargetPath).rsr + Copying dummy rsr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {d2ce28ff-63b8-48bc-936d-33f365b4053f} + false + + + + + + + + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-rtas.vcxproj.filters --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-rtas.vcxproj.filters Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,188 @@ + + + + + {73d47a52-ce2f-4264-9bb9-f0b3c16f889d} + + + {f61218de-bb49-4fd2-b3b8-d4d3a4f905de} + + + {f55aca3b-4b35-490a-99d6-51d6724f0396} + + + {13073ee3-c4e8-497c-b935-b091b14197c2} + + + + + Libs + + + Libs + + + Libs + + + Libs + + + Libs + + + Libs + + + Libs + + + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug\RTAS + + + IPlug\RTAS + + + IPlug\RTAS + + + IPlug\RTAS + + + IPlug\RTAS + + + IPlug\RTAS + + + IPlug\RTAS + + + IPlug\RTAS\include + + + + + IPlug\RTAS + + + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug + + + IPlug\RTAS + + + IPlug\RTAS + + + IPlug\RTAS + + + IPlug\RTAS + + + IPlug\RTAS\include + + + IPlug\RTAS\include + + + IPlug\RTAS\include + + + + IPlug\RTAS + + + + + + + + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-vst2.vcxproj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-vst2.vcxproj Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,269 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + Tracer + Win32 + + + Tracer + x64 + + + + {2EB4846A-93E0-43A0-821E-12237105168F} + AccessibleSpectrumAnalyser + AccessibleSpectrumAnalyser-vst2 + + + + DynamicLibrary + true + MultiByte + v120 + + + DynamicLibrary + true + MultiByte + v120 + + + DynamicLibrary + false + true + MultiByte + v120 + + + DynamicLibrary + false + true + MultiByte + v120 + + + DynamicLibrary + false + true + MultiByte + v120 + + + DynamicLibrary + false + true + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + build-win\vst2\$(Platform)\bin\ + + + build-win\vst2\$(Platform)\bin\ + + + build-win\vst2\$(Platform)\$(Configuration)\ + + + + + build-win\vst2\$(Platform)\$(Configuration)\ + + + + build-win\vst2\$(Platform)\bin\ + + + build-win\vst2\$(Platform)\bin\ + + + build-win\vst2\$(Platform)\$(Configuration)\ + + + build-win\vst2\$(Platform)\$(Configuration)\ + + + build-win\vst2\$(Platform)\bin\ + + + build-win\vst2\$(Platform)\bin\ + + + build-win\vst2\$(Platform)\$(Configuration)\ + + + build-win\vst2\$(Platform)\$(Configuration)\ + + + + Level3 + Disabled + $(VST_DEFS);$(DEBUG_DEFS);%(PreprocessorDefinitions) + MultiThreadedDebug + C:\Users\Fiore\Documents\GitHub\wdl-ol\IPlugExamples\AccessibleSpectrumAnalyser\Gamma;%(AdditionalIncludeDirectories) + + + true + Windows + + + + + Level3 + Disabled + $(VST_DEFS);$(DEBUG_DEFS);%(PreprocessorDefinitions) + MultiThreadedDebug + + + true + Windows + $(x64_LIB_PATHS);%(AdditionalLibraryDirectories) + + + + + Level3 + MaxSpeed + true + true + $(VST_DEFS);$(RELEASE_DEFS);%(PreprocessorDefinitions) + true + Speed + + + true + true + true + Windows + + + + + Level3 + MaxSpeed + true + true + $(VST_DEFS);$(RELEASE_DEFS);%(PreprocessorDefinitions) + true + Speed + + + true + true + true + Windows + $(x64_LIB_PATHS);%(AdditionalLibraryDirectories) + + + + + Level3 + MaxSpeed + true + true + $(VST_DEFS);$(TRACER_DEFS);%(PreprocessorDefinitions) + true + + + true + true + true + Windows + $(WDL_PATH)\lice\build-win\$(Platform)\Release\;%(AdditionalLibraryDirectories) + + + + + Level3 + MaxSpeed + true + true + $(VST_DEFS);$(TRACER_DEFS);%(PreprocessorDefinitions) + true + + + true + true + true + Windows + $(x64_LIB_PATHS);$(WDL_PATH)\lice\build-win\$(Platform)\Release\;%(AdditionalLibraryDirectories) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-vst2.vcxproj.filters --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-vst2.vcxproj.filters Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,58 @@ + + + + + + vst2 + + + + + stk + + + stk + + + stk + + + stk + + + + + + + vst2 + + + + + stk + + + stk + + + stk + + + stk + + + stk + + + + + + + + {ea16de74-9d15-4c60-ba09-d0924088d3e5} + + + {7d9eb0e5-ea19-43d8-837e-14fa548bbb3d} + + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-vst2.vcxproj.user --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-vst2.vcxproj.user Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,41 @@ + + + + $(TargetPath) /noload /nosave + + + $(TargetDir) + WindowsLocalDebugger + $(VST2_32_HOST_PATH) + + + $(TargetPath) /noload /nosave + WindowsLocalDebugger + $(TargetDir) + $(VST2_32_HOST_PATH) + + + $(TargetPath) /noload /nosave + WindowsLocalDebugger + $(TargetDir) + $(VST2_32_HOST_PATH) + + + $(TargetDir) + WindowsLocalDebugger + $(TargetPath) /noload /nosave + $(VST2_64_HOST_PATH) + + + $(TargetDir) + WindowsLocalDebugger + $(TargetPath) /noload /nosave + $(VST2_64_HOST_PATH) + + + $(TargetDir) + WindowsLocalDebugger + $(TargetPath) /noload /nosave + $(VST2_64_HOST_PATH) + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-vst3.vcxproj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-vst3.vcxproj Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,354 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + Tracer + Win32 + + + Tracer + x64 + + + + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF} + AccessibleSpectrumAnalyser + AccessibleSpectrumAnalyser-vst3 + + + + DynamicLibrary + true + MultiByte + v120 + + + DynamicLibrary + true + MultiByte + v120 + + + DynamicLibrary + false + true + MultiByte + v120 + + + DynamicLibrary + false + true + MultiByte + v120 + + + DynamicLibrary + false + true + MultiByte + v120 + + + DynamicLibrary + false + true + MultiByte + v120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + build-win\vst3\$(Platform)\bin\ + + + build-win\vst3\$(Platform)\bin\ + + + build-win\vst3\$(Platform)\$(Configuration)\ + + + .vst3 + + + build-win\vst3\$(Platform)\$(Configuration)\ + + .vst3 + + + build-win\vst3\$(Platform)\bin\ + + + build-win\vst3\$(Platform)\bin\ + + + build-win\vst3\$(Platform)\$(Configuration)\ + .vst3 + + + build-win\vst3\$(Platform)\$(Configuration)\ + .vst3 + + + build-win\vst3\$(Platform)\bin\ + + + build-win\vst3\$(Platform)\bin\ + + + build-win\vst3\$(Platform)\$(Configuration)\ + .vst3 + + + build-win\vst3\$(Platform)\$(Configuration)\ + .vst3 + + + + Level3 + Disabled + $(VST3_DEFS);$(DEBUG_DEFS);%(PreprocessorDefinitions) + MultiThreadedDebug + $(VST3_INCLUDES);%(AdditionalIncludeDirectories) + + + true + Windows + base.lib;%(AdditionalDependencies) + ..\..\VST3_SDK\base\win\$(Platform)\$(Configuration)\;$(WDL_PATH)\IPlug\build-win\$(Platform)\$(Configuration)\;$(WDL_PATH)\lice\build-win\$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories) + $(WDL_PATH)\IPlug\IPlugVST3.def + + + echo Post-Build: copy 32bit binary to 32bit VST3 Plugins folder ... ... +copy /y "$(TargetPath)" "$(VST3_32_PATH)\AccessibleSpectrumAnalyser.vst3" + Copy VST3 Binary to VST3 Plugins folder + + + + + Level3 + Disabled + $(VST3_DEFS);$(DEBUG_DEFS);%(PreprocessorDefinitions) + MultiThreadedDebug + $(VST3_INCLUDES);%(AdditionalIncludeDirectories) + + + true + Windows + ..\..\VST3_SDK\base\win\$(Platform)\$(Configuration)\;$(x64_LIB_PATHS);%(AdditionalLibraryDirectories) + base.lib;%(AdditionalDependencies) + $(WDL_PATH)\IPlug\IPlugVST3.def + + + echo Post-Build: copy 64bit binary to 64bit VST3 Plugins folder ... +if exist "%programfiles(x86)%" (copy /y "$(TargetPath)" "$(VST3_64_PATH)\AccessibleSpectrumAnalyser.vst3") else (echo Not copying 64bit binary - 32bit OS detected) + Copy VST3 Binary to VST3 Plugins folder + + + + + Level3 + MaxSpeed + true + true + $(VST3_DEFS);$(RELEASE_DEFS);%(PreprocessorDefinitions) + true + Speed + $(VST3_INCLUDES);%(AdditionalIncludeDirectories) + + + true + true + true + Windows + base.lib;%(AdditionalDependencies) + ..\..\VST3_SDK\base\win\$(Platform)\$(Configuration)\;$(WDL_PATH)\IPlug\build-win\$(Platform)\$(Configuration)\;$(WDL_PATH)\lice\build-win\$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories) + $(WDL_PATH)\IPlug\IPlugVST3.def + + + echo Post-Build: copy 32bit binary to 32bit VST3 Plugins folder ... ... +copy /y "$(TargetPath)" "$(VST3_32_PATH)\AccessibleSpectrumAnalyser.vst3" + Copy VST3 Binary to VST3 Plugins folder + + + + + Level3 + MaxSpeed + true + true + $(VST3_DEFS);$(RELEASE_DEFS);%(PreprocessorDefinitions) + true + Speed + $(VST3_INCLUDES);%(AdditionalIncludeDirectories) + + + true + true + true + Windows + ..\..\VST3_SDK\base\win\$(Platform)\$(Configuration)\;$(x64_LIB_PATHS);%(AdditionalLibraryDirectories) + base.lib;%(AdditionalDependencies) + $(WDL_PATH)\IPlug\IPlugVST3.def + + + echo Post-Build: copy 64bit binary to 64bit VST3 Plugins folder ... +if exist "%programfiles(x86)%" (copy /y "$(TargetPath)" "$(VST3_64_PATH)\AccessibleSpectrumAnalyser.vst3") else (echo Not copying 64bit binary - 32bit OS detected) + Copy VST3 Binary to VST3 Plugins folder + + + + + Level3 + MaxSpeed + true + true + $(VST3_DEFS);$(TRACER_DEFS);%(PreprocessorDefinitions) + true + $(VST3_INCLUDES);%(AdditionalIncludeDirectories) + + + true + true + true + Windows + $(WDL_PATH)\lice\build-win\$(Platform)\Release\;..\..\VST3_SDK\base\win\$(Platform)\Release\;%(AdditionalLibraryDirectories) + base.lib;%(AdditionalDependencies) + $(WDL_PATH)\IPlug\IPlugVST3.def + + + echo Post-Build: copy 32bit binary to 32bit VST3 Plugins folder ... ... +copy /y "$(TargetPath)" "$(VST3_32_PATH)\AccessibleSpectrumAnalyser.vst3" + Copy VST3 Binary to VST3 Plugins folder + + + + + Level3 + MaxSpeed + true + true + $(VST3_DEFS);$(TRACER_DEFS);%(PreprocessorDefinitions) + true + $(VST3_INCLUDES);%(AdditionalIncludeDirectories) + + + true + true + true + Windows + $(x64_LIB_PATHS);$(WDL_PATH)\lice\build-win\$(Platform)\Release\;..\..\VST3_SDK\base\win\$(Platform)\Release\;%(AdditionalLibraryDirectories) + base.lib;%(AdditionalDependencies) + $(WDL_PATH)\IPlug\IPlugVST3.def + + + echo Post-Build: copy 64bit binary to 64bit VST3 Plugins folder ... +if exist "%programfiles(x86)%" (copy /y "$(TargetPath)" "$(VST3_64_PATH)\AccessibleSpectrumAnalyser.vst3") else (echo Not copying 64bit binary - 32bit OS detected) + Copy VST3 Binary to VST3 Plugins folder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-vst3.vcxproj.filters --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-vst3.vcxproj.filters Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,180 @@ + + + + + + vst3\VST3SDK\pluginterfaces\base + + + vst3\VST3SDK\pluginterfaces\base + + + vst3\VST3SDK\public.sdk\common + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\main + + + vst3\VST3SDK\public.sdk\main + + + vst3\VST3SDK\public.sdk\vst + + + vst3 + + + + + + + vst3\VST3SDK\pluginterfaces\base + + + vst3\VST3SDK\pluginterfaces\base + + + vst3\VST3SDK\pluginterfaces\base + + + vst3\VST3SDK\pluginterfaces\base + + + vst3\VST3SDK\pluginterfaces\base + + + vst3\VST3SDK\pluginterfaces\base + + + vst3\VST3SDK\pluginterfaces\base + + + vst3\VST3SDK\pluginterfaces\base + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\vst + + + vst3\VST3SDK\pluginterfaces\gui + + + vst3\VST3SDK\public.sdk\common + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\vst + + + vst3\VST3SDK\public.sdk\main + + + vst3\VST3SDK\public.sdk\vst + + + vst3 + + + + + {0028f8fa-40ce-4098-b1d7-1930d1a7774b} + + + {d33dc1fa-0b31-40b9-a240-b065db740979} + + + {1da1c979-a505-4558-b877-1a2da0e4e758} + + + {cf0c95d2-7b5a-4afa-8a3e-546800d9b337} + + + {babb4a18-d1d6-467e-af1c-fb852400f591} + + + {a0598a21-18c6-4da8-98a8-bebbf0f37b34} + + + {bc78847c-a41c-4ad7-8a8e-2ea825bc2f8e} + + + {23863805-5085-4669-8675-167aba1f0fc9} + + + {00ff2592-e5ef-4ab1-8b06-c42242d80c52} + + + {ec7b025c-4ef1-4403-956b-b3673b4715b8} + + + + + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser-vst3.vcxproj.user --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser-vst3.vcxproj.user Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,43 @@ + + + + $(VST3_32_HOST_PATH) + WindowsLocalDebugger + $(TargetPath) + $(TargetDir) + + + $(VST3_32_HOST_PATH) + WindowsLocalDebugger + $(TargetPath) + $(TargetDir) + + + $(VST3_32_HOST_PATH) + WindowsLocalDebugger + $(TargetPath) + $(TargetDir) + + + $(TargetPath) + + + $(TargetDir) + WindowsLocalDebugger + $(VST3_64_HOST_PATH) + + + $(TargetPath) + + + $(TargetDir) + WindowsLocalDebugger + + + $(TargetPath) + + + $(TargetDir) + WindowsLocalDebugger + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.cbp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.cbp Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,250 @@ + + + + + + diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.cpp Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,346 @@ +#include "AccessibleSpectrumAnalyser.h" +#include "IPlug_include_in_plug_src.h" +#include "IControl.h" +#include "resource.h" +#include "IBitmapMonoText.h" + +#include + +#include "FreqView.h" +#include "Controls.h" + +const int kNumPrograms = 1; + +#define FFT_FORWARD false + +enum EParams +{ + kThreshold = 0, + kSelStart, + kSelSize, + kDry, + kWet, + kNumParams +}; + +enum ELayout +{ + kWidth = GUI_WIDTH, + kHeight = GUI_HEIGHT, + + lKnobSizeW = 52, + lKnobSizeH = 48 + 19 + 19, // 48 for image, 19 for text + + lKnobsY = 315, + + lThresX = 40, + + lSelStartX = 250, + lSelSizeX = 345, + + lDryX = 540, + lWetX = 610, + + kKnobFrames = 60 +}; + +AccessibleSpectrumAnalyser::AccessibleSpectrumAnalyser(IPlugInstanceInfo instanceInfo) : + IPLUG_CTOR(kNumParams, kNumPrograms, instanceInfo), + mDry(-6.0), + mWet(-6.0), + mFFTBufferIndx(0), + mNormFactor(0), + mBinSizeHz(44100/(2*kFFTbufSize)) +{ + TRACE; + + /* init hanning window lookup table */ + + mHannTable.reserve(kFFTbufSize); + + for (int i = 0; i < kFFTbufSize; i++){ + mHannTable.push_back( 0.5 * (1. - std::cos(k2pi * i / (kFFTbufSize - 1) )) ); + } + + for (int i = 0; i < kFFTbufSize; i++) { + mNormFactor += 0.5 * (1. - std::cos(k2pi * i / (double)(kFFTbufSize - 1))); + } + + /* init FFT engine */ + WDL_fft_init(); + + /* init parameters */ + //arguments are: name, defaultVal, minVal, maxVal, step, label, group, shape + + GetParam(kThreshold)->InitDouble("Threshold", 0.0, -60.0, 6.2, 10, "dB"); + + GetParam(kSelStart)->InitDouble("Selection Start", 20, 20, 44100/2, 10, "Hz"); + + GetParam(kSelSize)->InitDouble("Selection Size", 50, kMinSelectionSize, 10000, 10, "Hz"); + + GetParam(kDry)->InitDouble("Dry", -6., -61.0, 0., 0.2, "dB"); + GetParam(kDry)->SetDisplayText(-61.0, " -inf"); + + GetParam(kWet)->InitDouble("Wet", -6., -61.0, 0., 0.2, "dB"); + GetParam(kWet)->SetDisplayText(-61.0, " -inf"); + + + IGraphics* pGraphics = MakeGraphics(this, kWidth, kHeight); + pGraphics->AttachPanelBackground(&kBgColor); + + mFreqView = new FreqView(this, IRECT(4, 40, GUI_WIDTH - 4, 300), kFFTbufSize/2); + pGraphics->AttachControl(mFreqView); + + IBitmap knob = pGraphics->LoadIBitmap(KNOB_ID, KNOB_FN, kKnobFrames); + /* text has info about the font-size, font-type etc. */ + IText text = IText(14); + + /* attach dry and wet knobs to GUI */ + pGraphics->AttachControl(new IKnobMultiControlText(this, + IRECT(lThresX, lKnobsY, lThresX + lKnobSizeW, lKnobsY + lKnobSizeH ), + kThreshold, + &knob, + &text, + 27) ); + + pGraphics->AttachControl(new IKnobMultiControlText(this, + IRECT(lSelStartX, lKnobsY, lSelStartX + lKnobSizeW, lKnobsY + lKnobSizeH ), + kSelStart, + &knob, + &text, + 27) ); + + pGraphics->AttachControl(new IKnobMultiControlText(this, + IRECT(lSelSizeX, lKnobsY, lSelSizeX + lKnobSizeW, lKnobsY + lKnobSizeH ), + kSelSize, + &knob, + &text, + 27) ); + + pGraphics->AttachControl(new IKnobMultiControlText(this, + IRECT(lDryX, lKnobsY, lDryX + lKnobSizeW, lKnobsY + lKnobSizeH ), + kDry, + &knob, + &text, + 27) ); + + pGraphics->AttachControl(new IKnobMultiControlText(this, + IRECT(lWetX, lKnobsY, lWetX + lKnobSizeW, lKnobsY + lKnobSizeH), + kWet, + &knob, + &text, + 27) ); + + + AttachGraphics(pGraphics); + //MakePreset("preset 1", ... ); + MakeDefaultPreset((char *) "-", kNumPrograms); + +} + +AccessibleSpectrumAnalyser::~AccessibleSpectrumAnalyser() {} + +/* + from Ask Justin Frankel: + first, call WDL_fft_init(). Then create a buffer of WDL_FFT_COMPLEX, populate its real components with some audio, + the imaginary with 0s, then optionally apply a windowing function, then call WDL_fft(), + then you can access the results using WDL_fft_permute() to get the correct indices. + */ + +void AccessibleSpectrumAnalyser::ProcessDoubleReplacing(double** inputs, double** outputs, int nFrames) +{ + // Mutex is already locked for us. + + double* in1 = inputs[0]; + double* in2 = inputs[1]; + double* out1 = outputs[0]; + double* out2 = outputs[1]; + + for (int f = 0; f < nFrames; ++f, ++in1, ++in2, ++out1, ++out2){ + + mFFTbuffer[mFFTBufferIndx].re = (*in1 + *in2) / 2; + /* apply Hann window */ + mFFTbuffer[mFFTBufferIndx].re *= mHannTable[mFFTBufferIndx]; + mFFTbuffer[mFFTBufferIndx].im = 0; + + /* when gathered enough samples perform FFT */ + if (mFFTBufferIndx == kFFTbufSize - 1){ + + WDL_fft(mFFTbuffer, kFFTbufSize, FFT_FORWARD); + + float bins[kFFTbufSize / 2]; + + bool thresholdPassed = false; + double maxClippingDiff = 0.0; + int maxClippingBinIndx = 0; + + for (int i = 0; i < mFFTBufferIndx/2; i++){ + + int j = WDL_fft_permute(kFFTbufSize, i); // j is the index after permutation + + /* fill the bins to plot with the magnitudes of the FFT*/ + bins[i] = magnitude(mFFTbuffer[j]); + + /* check bins within selection against threshold for sonification */ + if( binWithinSelection(i) && bins[i] > mThreshold ){ + + thresholdPassed = true; + + /* find the clipping amount in dB */ + double clippingDiff = fabs(::AmpToDB(bins[i]) - ::AmpToDB(mThreshold)); + + /* clipDiff will be rounded to the floor later (with a cast to int), + but if it's very very close to the ceil, then let it be the ceil. */ + const double ceilClippingDiff = ceil(clippingDiff); + if ( ceilClippingDiff - clippingDiff < kClippingCeilingSnap ){ + clippingDiff = ceilClippingDiff; + } + + /* bound the difference to 12 semitones to prevent the sonification from going too high */ + clippingDiff = BOUNDED(clippingDiff, 0.0, 12.0); + + if( clippingDiff > maxClippingDiff){ + maxClippingDiff = clippingDiff; + maxClippingBinIndx = i; + } + } + + } + + if(thresholdPassed){ + /* sonify the difference between the amplitude and threshold of highest bin + one db (rounded downward) is one tone, up to one octave (12 semitones) */ + mSonification.ugen.setFrequency(midi2Freq(69 + int(maxClippingDiff))); + + /* pan the sonification according to the position of the bin in the spectrum */ + mSonification.panning.calculatePanningCoeff( double(maxClippingBinIndx)/(mFFTBufferIndx/2) ); + mSonification.envelope.keyOn(); + } + + /* copy the bids in freqView for the graphics */ + mFreqView->setBins(bins); + mFFTBufferIndx = 0; + + }else{ + + /* increment index to gather more bins in the FFT buffer */ + mFFTBufferIndx++; + + } + + + /* now add the sonification to the audio */ + + /* when attack is done switch immediately to RELEASE (keyOff) * + * so it goes like: attack->release->silence */ + if (mSonification.envelope.getState() == stk::ADSR::DECAY) { + mSonification.envelope.keyOff(); + } + + /* add the sonification to the mix */ + if (mSonification.envelope.getState() == stk::ADSR::ATTACK || + mSonification.envelope.getState() == stk::ADSR::RELEASE) { + + const double env = mSonification.envelope.tick(); + const double tick = mSonification.ugen.tick() * env; + + + *out1 = mix(*in1, tick) * mSonification.panning.left; + *out2 = mix(*in2, tick) * mSonification.panning.right; + + } else { // no sonification + + *out1 = mix(*in1, 0.0); + *out2 = mix(*in2, 0.0); + + } + } +} + +void AccessibleSpectrumAnalyser::Reset() +{ + TRACE; + IMutexLock lock(this); + + mSonification.reset(GetSampleRate()); + mBinSizeHz = GetSampleRate() / kFFTbufSize; + + mFreqView->setSampleRate(GetSampleRate()); + mSelectionEnd = calculateSelectionEndFromView(); + //double sr = GetSampleRate(); +} + +void AccessibleSpectrumAnalyser::OnParamChange(int paramIdx) +{ + IMutexLock lock(this); + + switch (paramIdx) + { + + case kDry: + if (GetParam(kDry)->Value() < -60.5 ){ + mDry = 0.0; /* if the level goes below 60.5 dB, just bring it to silence */ + } + else { + mDry = ::DBToAmp(GetParam(kDry)->Value()); + } + break; + + + case kWet: + + if (GetParam(kWet)->Value() < -60.5 ){ + mWet = 0.0; + } + else { + mWet = ::DBToAmp(GetParam(kWet)->Value()); + } + break; + + + case kSelStart: + mFreqView->setSelectionStart(GetParam(kSelStart)->Value()); + mSelectionEnd = calculateSelectionEndFromView(); + break; + + case kSelSize: + mFreqView->setSelectionSize(GetParam(kSelSize)->Value()); + mSelectionEnd = calculateSelectionEndFromView(); + break; + + case kThreshold: + /* save threshold in amp for the sonification and in db for freq view */ + mThreshold = GetParam(kThreshold)->DBToAmp(); + mFreqView->setThreshold(GetParam(kThreshold)->Value()); + break; + + default: + break; + } +} + + + +void AccessibleSpectrumAnalyser::Sonification::reset(double srate) +{ + ugen.reset(); + + envelope.setValue(0.0); + envelope.setReleaseTime(0.2); + envelope.setAttackTime(0.01); + envelope.setSustainLevel(1); + + if (srate > 0.0){ + ugen.setSampleRate(srate); + envelope.setSampleRate(srate); + } +} + + +const double AccessibleSpectrumAnalyser::k2pi = 2 * PI; +const IColor AccessibleSpectrumAnalyser::kBgColor(255, 6, 120, 21); +const double AccessibleSpectrumAnalyser::kClippingCeilingSnap = 0.05; +const double AccessibleSpectrumAnalyser::kMinSelectionSize = 50; + + + diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.exp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.exp Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,2 @@ +_AccessibleSpectrumAnalyser_Entry +_AccessibleSpectrumAnalyser_ViewEntry diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.h Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,130 @@ +#ifndef __ACCESSIBLESPECTRUMANALYSER__ +#define __ACCESSIBLESPECTRUMANALYSER__ + +#include "IPlug_include_in_plug_hdr.h" + +#include + +#include "fft.h" +#include "FreqView.h" + +#include "stk/include/SineWave.h" +#include "stk/include/Envelope.h" +#include "stk/include/ADSR.h" + + + +class AccessibleSpectrumAnalyser : public IPlug +{ +public: + + AccessibleSpectrumAnalyser(IPlugInstanceInfo instanceInfo); + ~AccessibleSpectrumAnalyser(); + + void Reset(); + void OnParamChange(int paramIdx); + + void ProcessDoubleReplacing(double** inputs, double** outputs, int nFrames); + + inline WDL_FFT_REAL magnitude(const WDL_FFT_COMPLEX & c) const + { + return 2 * sqrt(WDL_FFT_REAL(c.re * c.re + c.im * c.im)) / mNormFactor;// kFFTbufSize if rect window ; + //return 2 * sqrt(WDL_FFT_REAL(c.re * c.re + c.im * c.im)) / kFFTbufSize ; //if rect window ; + } + + /* for dry/wet mix */ + inline double mix(double dry, double wet) const + { + return dry * mDry + wet * mWet; + } + + inline static double midi2Freq(int note) + { + return 440. * pow(2., (note - 69.) / 12.); + } + + inline double calculateSelectionEndFromView() + { + return BOUNDED(mFreqView->getSelectionStart() + mFreqView->getSelectionSize(), + mFreqView->getSelectionStart()+kMinSelectionSize, + GetSampleRate()/2); + } + + inline bool binWithinSelection(int i) const + { + double binHz = i * mBinSizeHz; + + return ( binHz > mFreqView->getSelectionStart() && binHz mHannTable; + double mNormFactor; + + double mBinSizeHz; + + double mDry; + double mWet; + double mSelectionEnd; + double mThreshold; + + + struct Sonification + { + /* the sine wave that is played */ + stk::SineWave ugen; + + /* envelope of the sine wave */ + stk::ADSR envelope; + + struct Panning + { + double left; + double right; + + const double coeff; + + Panning(): coeff(std::sqrt(2)/2) {} + + /* position ranges from 0 to 1 */ + void calculatePanningCoeff(double position) + { + /* map [0,1] to [-pi/4, pi/4] radians */ + double theta = ((position*2)-1) * (PI/4); + + /* calculate left and right amplitudes */ + left = coeff * (std::cos(theta) - std::sin(theta)); + right = coeff * (std::cos(theta) + std::sin(theta)); + + } + + } panning; + + /* resets all the ugens. When srate is less than 0, type and ugen freq are + not affected by resetas well as sample rate. + */ + void reset(double srate = -1.0); + + + } mSonification; + +}; + +#endif diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.props --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.props Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,90 @@ + + + + + + + AccessibleSpectrumAnalyser + SA_API;__WINDOWS_DS__;__WINDOWS_MM__;__WINDOWS_ASIO__; + VST_API;VST_FORCE_DEPRECATED; + VST3_API + _DEBUG; + NDEBUG; + TRACER_BUILD;NDEBUG; + $(ProjectDir)\..\..\..\MyDSP\; + ..\..\ASIO_SDK;..\..\WDL\rtaudiomidi; + dsound.lib;winmm.lib;Comctl32.lib; + ..\..\VST3_SDK; + .\..\..\AAX_SDK\Interfaces;.\..\..\AAX_SDK\Interfaces\ACF;.\..\..\WDL\IPlug\AAX + AAX_API;_WINDOWS;WIN32;_WIN32;WINDOWS_VERSION;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE + lice.lib;wininet.lib;odbc32.lib;odbccp32.lib;psapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comctl32.lib; + .\..\..\WDL\IPlug\RTAS;.\ + RTAS_API;_STDINT;_HAS_ITERATOR_DEBUGGING=0;_SECURE_SCL=0;_WINDOWS;WIN32;_WIN32;WINDOWS_VERSION;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE + comdlg32.lib;uuid.lib;msimg32.lib;odbc32.lib;odbccp32.lib;user32.lib;gdi32.lib;advapi32.lib;shell32.lib + + + $(BINARY_NAME) + <_ProjectFileVersion>10.0.30319.1 + + + + $(ADDITIONAL_INCLUDES);..\..\WDL;..\..\WDL\lice;..\..\WDL\IPlug + + + IPlug.lib;lice.lib;%(AdditionalDependencies) + + + + + $(BINARY_NAME) + + + $(APP_DEFS) + + + $(VST_DEFS) + + + $(VST3_DEFS) + + + $(DEBUG_DEFS) + + + $(RELEASE_DEFS) + + + $(TRACER_DEFS) + + + $(ADDITIONAL_INCLUDES) + + + $(APP_INCLUDES) + + + $(APP_LIBS) + + + $(VST3_INCLUDES) + + + $(AAX_INCLUDES) + + + $(AAX_DEFS) + + + $(AAX_LIBS) + + + $(RTAS_INCLUDES) + + + $(RTAS_DEFS) + + + $(RTAS_LIBS) + + + \ No newline at end of file diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.rc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.rc Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,79 @@ +#include "resource.h" + +KNOB_ID PNG KNOB_FN + + +#ifdef SA_API +//Standalone stuff +#include + +IDI_ICON1 ICON DISCARDABLE "resources\AccessibleSpectrumAnalyser.ico" + +IDD_DIALOG_MAIN DIALOG DISCARDABLE 0, 0, GUI_WIDTH, GUI_HEIGHT +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX +CAPTION "AccessibleSpectrumAnalyser" +MENU IDR_MENU1 +FONT 8, "MS Sans Serif" +BEGIN +// EDITTEXT IDC_EDIT1,59,50,145,14,ES_AUTOHSCROLL +// LTEXT "Enter some text here:",IDC_STATIC,59,39,73,8 +END + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +IDD_DIALOG_PREF DIALOG DISCARDABLE 0, 0, 223, 309 +STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU +CAPTION "Preferences" +FONT 8, "MS Sans Serif" +{ + DEFPUSHBUTTON "OK", IDOK, 110, 285, 50, 14 + PUSHBUTTON "Apply", IDAPPLY, 54, 285, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, 166, 285, 50, 14 + COMBOBOX IDC_COMBO_AUDIO_DRIVER, 20, 35, 100, 100, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Driver Type", IDC_STATIC, 22, 25, 38, 8, SS_LEFT + COMBOBOX IDC_COMBO_AUDIO_IN_DEV, 20, 65, 100, 200, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Input Device", IDC_STATIC, 20, 55, 42, 8, SS_LEFT + COMBOBOX IDC_COMBO_AUDIO_OUT_DEV, 20, 95, 100, 200, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Output Device", IDC_STATIC, 20, 85, 47, 8, SS_LEFT + COMBOBOX IDC_COMBO_AUDIO_IOVS, 135, 35, 65, 100, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "IO Vector Size", IDC_STATIC, 137, 25, 46, 8, SS_LEFT + COMBOBOX IDC_COMBO_AUDIO_SIGVS, 135, 65, 65, 100, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Signal Vector Size", IDC_STATIC, 135, 55, 58, 8, SS_LEFT + COMBOBOX IDC_COMBO_AUDIO_SR, 135, 95, 65, 200, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Sampling Rate", IDC_STATIC, 135, 85, 47, 8, SS_LEFT + GROUPBOX "Audio Device Settings", IDC_STATIC, 5, 10, 210, 170 + PUSHBUTTON "ASIO Config...", IDC_BUTTON_ASIO, 135, 155, 65, 14 + COMBOBOX IDC_COMBO_AUDIO_IN_L, 20, 125, 40, 200, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Input 1 (L)", IDC_STATIC, 20, 115, 33, 8, SS_LEFT + COMBOBOX IDC_COMBO_AUDIO_IN_R, 65, 126, 40, 200, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Input 2 (R)", IDC_STATIC, 65, 115, 34, 8, SS_LEFT + COMBOBOX IDC_COMBO_AUDIO_OUT_L, 20, 155, 40, 200, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Output 1 (L)", IDC_STATIC, 20, 145, 38, 8, SS_LEFT + COMBOBOX IDC_COMBO_AUDIO_OUT_R, 65, 155, 40, 200, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Output 2 (R)", IDC_STATIC, 65, 145, 40, 8, SS_LEFT + GROUPBOX "MIDI Device Settings", IDC_STATIC, 5, 190, 210, 85 + COMBOBOX IDC_COMBO_MIDI_OUT_DEV, 15, 250, 100, 200, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Output Device", IDC_STATIC, 15, 240, 47, 8, SS_LEFT + COMBOBOX IDC_COMBO_MIDI_IN_DEV, 15, 220, 100, 200, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Input Device", IDC_STATIC, 15, 210, 42, 8, SS_LEFT + LTEXT "Input Channel", IDC_STATIC, 125, 210, 45, 8, SS_LEFT + COMBOBOX IDC_COMBO_MIDI_IN_CHAN, 125, 220, 50, 200, CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "Output Channel", IDC_STATIC, 125, 240, 50, 8, SS_LEFT + COMBOBOX IDC_COMBO_MIDI_OUT_CHAN, 125, 250, 50, 200, CBS_DROPDOWNLIST | CBS_HASSTRINGS + AUTOCHECKBOX "Mono Input", IDC_CB_MONO_INPUT, 135, 127, 56, 8 +} + +IDR_MENU1 MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN +// MENUITEM SEPARATOR + MENUITEM "Preferences...", ID_PREFERENCES + MENUITEM "&Quit", ID_QUIT + END + POPUP "&Help" + BEGIN + MENUITEM "&About", ID_ABOUT + END +END + +#endif // SA_API diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.sln --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.sln Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,178 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AccessibleSpectrumAnalyser-app", "AccessibleSpectrumAnalyser-app.vcxproj", "{41785AE4-5B70-4A75-880B-4B418B4E13C6}" + ProjectSection(ProjectDependencies) = postProject + {3059A12C-2A45-439B-81EC-201D8ED347A3} = {3059A12C-2A45-439B-81EC-201D8ED347A3} + {33958832-2FFD-49D8-9C13-5F0B26739E81} = {33958832-2FFD-49D8-9C13-5F0B26739E81} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IPlug", "..\..\WDL\IPlug\IPlug.vcxproj", "{33958832-2FFD-49D8-9C13-5F0B26739E81}" + ProjectSection(ProjectDependencies) = postProject + {3059A12C-2A45-439B-81EC-201D8ED347A3} = {3059A12C-2A45-439B-81EC-201D8ED347A3} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lice", "..\..\WDL\lice\lice.vcxproj", "{3059A12C-2A45-439B-81EC-201D8ED347A3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AccessibleSpectrumAnalyser-vst2", "AccessibleSpectrumAnalyser-vst2.vcxproj", "{2EB4846A-93E0-43A0-821E-12237105168F}" + ProjectSection(ProjectDependencies) = postProject + {3059A12C-2A45-439B-81EC-201D8ED347A3} = {3059A12C-2A45-439B-81EC-201D8ED347A3} + {33958832-2FFD-49D8-9C13-5F0B26739E81} = {33958832-2FFD-49D8-9C13-5F0B26739E81} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AccessibleSpectrumAnalyser-vst3", "AccessibleSpectrumAnalyser-vst3.vcxproj", "{079FC65A-F0E5-4E97-B318-A16D1D0B89DF}" + ProjectSection(ProjectDependencies) = postProject + {3059A12C-2A45-439B-81EC-201D8ED347A3} = {3059A12C-2A45-439B-81EC-201D8ED347A3} + {33958832-2FFD-49D8-9C13-5F0B26739E81} = {33958832-2FFD-49D8-9C13-5F0B26739E81} + {5755CC40-C699-491B-BD7C-5D841C26C28D} = {5755CC40-C699-491B-BD7C-5D841C26C28D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "..\..\VST3_SDK\base\win\base.vcxproj", "{5755CC40-C699-491B-BD7C-5D841C26C28D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AccessibleSpectrumAnalyser-aax", "AccessibleSpectrumAnalyser-aax.vcxproj", "{DC4B5920-933D-4C82-B842-F34431D55A93}" + ProjectSection(ProjectDependencies) = postProject + {3059A12C-2A45-439B-81EC-201D8ED347A3} = {3059A12C-2A45-439B-81EC-201D8ED347A3} + {5E3D286E-BF0D-446A-AFEF-E800F283CE53} = {5E3D286E-BF0D-446A-AFEF-E800F283CE53} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AAXLibrary", "..\..\AAX_SDK\Libs\AAXLibrary\WinBuild\AAXLibrary.vcxproj", "{5E3D286E-BF0D-446A-AFEF-E800F283CE53}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AccessibleSpectrumAnalyser-rtas", "AccessibleSpectrumAnalyser-rtas.vcxproj", "{8F427C1E-B580-4793-BEAC-F2CFEFA003F5}" + ProjectSection(ProjectDependencies) = postProject + {3059A12C-2A45-439B-81EC-201D8ED347A3} = {3059A12C-2A45-439B-81EC-201D8ED347A3} + {D2CE28FF-63B8-48BC-936D-33F365B4053F} = {D2CE28FF-63B8-48BC-936D-33F365B4053F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PlugInLib", "..\..\PT9_SDK\AlturaPorts\TDMPlugIns\PlugInLibrary\WinBuild\PlugInLib.vcxproj", "{D2CE28FF-63B8-48BC-936D-33F365B4053F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + Tracer|Win32 = Tracer|Win32 + Tracer|x64 = Tracer|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Debug|Win32.ActiveCfg = Debug|Win32 + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Debug|Win32.Build.0 = Debug|Win32 + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Debug|x64.ActiveCfg = Debug|x64 + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Debug|x64.Build.0 = Debug|x64 + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Release|Win32.ActiveCfg = Release|Win32 + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Release|Win32.Build.0 = Release|Win32 + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Release|x64.ActiveCfg = Release|x64 + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Release|x64.Build.0 = Release|x64 + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Tracer|Win32.ActiveCfg = Tracer|Win32 + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Tracer|Win32.Build.0 = Tracer|Win32 + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Tracer|x64.ActiveCfg = Tracer|x64 + {41785AE4-5B70-4A75-880B-4B418B4E13C6}.Tracer|x64.Build.0 = Tracer|x64 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Debug|Win32.ActiveCfg = Debug|Win32 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Debug|Win32.Build.0 = Debug|Win32 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Debug|x64.ActiveCfg = Debug|x64 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Debug|x64.Build.0 = Debug|x64 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Release|Win32.ActiveCfg = Release|Win32 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Release|Win32.Build.0 = Release|Win32 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Release|x64.ActiveCfg = Release|x64 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Release|x64.Build.0 = Release|x64 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Tracer|Win32.ActiveCfg = Tracer|Win32 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Tracer|Win32.Build.0 = Tracer|Win32 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Tracer|x64.ActiveCfg = Tracer|x64 + {33958832-2FFD-49D8-9C13-5F0B26739E81}.Tracer|x64.Build.0 = Tracer|x64 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Debug|Win32.ActiveCfg = Debug|Win32 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Debug|Win32.Build.0 = Debug|Win32 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Debug|x64.ActiveCfg = Debug|x64 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Debug|x64.Build.0 = Debug|x64 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Release|Win32.ActiveCfg = Release|Win32 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Release|Win32.Build.0 = Release|Win32 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Release|x64.ActiveCfg = Release|x64 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Release|x64.Build.0 = Release|x64 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Tracer|Win32.ActiveCfg = Release|Win32 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Tracer|Win32.Build.0 = Release|Win32 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Tracer|x64.ActiveCfg = Release|x64 + {3059A12C-2A45-439B-81EC-201D8ED347A3}.Tracer|x64.Build.0 = Release|x64 + {2EB4846A-93E0-43A0-821E-12237105168F}.Debug|Win32.ActiveCfg = Debug|Win32 + {2EB4846A-93E0-43A0-821E-12237105168F}.Debug|Win32.Build.0 = Debug|Win32 + {2EB4846A-93E0-43A0-821E-12237105168F}.Debug|x64.ActiveCfg = Debug|x64 + {2EB4846A-93E0-43A0-821E-12237105168F}.Debug|x64.Build.0 = Debug|x64 + {2EB4846A-93E0-43A0-821E-12237105168F}.Release|Win32.ActiveCfg = Release|Win32 + {2EB4846A-93E0-43A0-821E-12237105168F}.Release|Win32.Build.0 = Release|Win32 + {2EB4846A-93E0-43A0-821E-12237105168F}.Release|x64.ActiveCfg = Release|x64 + {2EB4846A-93E0-43A0-821E-12237105168F}.Release|x64.Build.0 = Release|x64 + {2EB4846A-93E0-43A0-821E-12237105168F}.Tracer|Win32.ActiveCfg = Tracer|Win32 + {2EB4846A-93E0-43A0-821E-12237105168F}.Tracer|Win32.Build.0 = Tracer|Win32 + {2EB4846A-93E0-43A0-821E-12237105168F}.Tracer|x64.ActiveCfg = Tracer|x64 + {2EB4846A-93E0-43A0-821E-12237105168F}.Tracer|x64.Build.0 = Tracer|x64 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Debug|Win32.Build.0 = Debug|Win32 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Debug|x64.ActiveCfg = Debug|x64 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Debug|x64.Build.0 = Debug|x64 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Release|Win32.ActiveCfg = Release|Win32 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Release|Win32.Build.0 = Release|Win32 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Release|x64.ActiveCfg = Release|x64 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Release|x64.Build.0 = Release|x64 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Tracer|Win32.ActiveCfg = Tracer|Win32 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Tracer|Win32.Build.0 = Tracer|Win32 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Tracer|x64.ActiveCfg = Tracer|x64 + {079FC65A-F0E5-4E97-B318-A16D1D0B89DF}.Tracer|x64.Build.0 = Tracer|x64 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Debug|Win32.ActiveCfg = Debug|Win32 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Debug|Win32.Build.0 = Debug|Win32 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Debug|x64.ActiveCfg = Debug|x64 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Debug|x64.Build.0 = Debug|x64 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Release|Win32.ActiveCfg = Release|Win32 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Release|Win32.Build.0 = Release|Win32 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Release|x64.ActiveCfg = Release|x64 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Release|x64.Build.0 = Release|x64 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Tracer|Win32.ActiveCfg = Release|Win32 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Tracer|Win32.Build.0 = Release|Win32 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Tracer|x64.ActiveCfg = Release|x64 + {5755CC40-C699-491B-BD7C-5D841C26C28D}.Tracer|x64.Build.0 = Release|x64 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Debug|Win32.ActiveCfg = Debug|Win32 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Debug|Win32.Build.0 = Debug|Win32 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Debug|x64.ActiveCfg = Debug|x64 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Debug|x64.Build.0 = Debug|x64 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Release|Win32.ActiveCfg = Release|Win32 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Release|Win32.Build.0 = Release|Win32 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Release|x64.ActiveCfg = Release|x64 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Release|x64.Build.0 = Release|x64 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Tracer|Win32.ActiveCfg = Tracer|Win32 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Tracer|Win32.Build.0 = Tracer|Win32 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Tracer|x64.ActiveCfg = Tracer|x64 + {DC4B5920-933D-4C82-B842-F34431D55A93}.Tracer|x64.Build.0 = Tracer|x64 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Debug|Win32.ActiveCfg = Debug|Win32 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Debug|Win32.Build.0 = Debug|Win32 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Debug|x64.ActiveCfg = Debug|x64 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Debug|x64.Build.0 = Debug|x64 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Release|Win32.ActiveCfg = Release|Win32 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Release|Win32.Build.0 = Release|Win32 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Release|x64.ActiveCfg = Release|x64 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Release|x64.Build.0 = Release|x64 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Tracer|Win32.ActiveCfg = Release|Win32 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Tracer|Win32.Build.0 = Release|Win32 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Tracer|x64.ActiveCfg = Release|x64 + {5E3D286E-BF0D-446A-AFEF-E800F283CE53}.Tracer|x64.Build.0 = Release|x64 + {8F427C1E-B580-4793-BEAC-F2CFEFA003F5}.Debug|Win32.ActiveCfg = Debug|Win32 + {8F427C1E-B580-4793-BEAC-F2CFEFA003F5}.Debug|Win32.Build.0 = Debug|Win32 + {8F427C1E-B580-4793-BEAC-F2CFEFA003F5}.Debug|x64.ActiveCfg = Debug|Win32 + {8F427C1E-B580-4793-BEAC-F2CFEFA003F5}.Release|Win32.ActiveCfg = Release|Win32 + {8F427C1E-B580-4793-BEAC-F2CFEFA003F5}.Release|Win32.Build.0 = Release|Win32 + {8F427C1E-B580-4793-BEAC-F2CFEFA003F5}.Release|x64.ActiveCfg = Release|Win32 + {8F427C1E-B580-4793-BEAC-F2CFEFA003F5}.Tracer|Win32.ActiveCfg = Tracer|Win32 + {8F427C1E-B580-4793-BEAC-F2CFEFA003F5}.Tracer|Win32.Build.0 = Tracer|Win32 + {8F427C1E-B580-4793-BEAC-F2CFEFA003F5}.Tracer|x64.ActiveCfg = Tracer|Win32 + {D2CE28FF-63B8-48BC-936D-33F365B4053F}.Debug|Win32.ActiveCfg = Release|Win32 + {D2CE28FF-63B8-48BC-936D-33F365B4053F}.Debug|Win32.Build.0 = Release|Win32 + {D2CE28FF-63B8-48BC-936D-33F365B4053F}.Debug|x64.ActiveCfg = Debug|Win32 + {D2CE28FF-63B8-48BC-936D-33F365B4053F}.Release|Win32.ActiveCfg = Release|Win32 + {D2CE28FF-63B8-48BC-936D-33F365B4053F}.Release|Win32.Build.0 = Release|Win32 + {D2CE28FF-63B8-48BC-936D-33F365B4053F}.Release|x64.ActiveCfg = Release|Win32 + {D2CE28FF-63B8-48BC-936D-33F365B4053F}.Tracer|Win32.ActiveCfg = Release|Win32 + {D2CE28FF-63B8-48BC-936D-33F365B4053F}.Tracer|Win32.Build.0 = Release|Win32 + {D2CE28FF-63B8-48BC-936D-33F365B4053F}.Tracer|x64.ActiveCfg = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.xcconfig --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.xcconfig Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,61 @@ +#include "../../common.xcconfig" + +//------------------------------ +// Global settings + +// the basename of the vst, vst3, app, component, dpm, aaxplugin +BINARY_NAME = AccessibleSpectrumAnalyser + +ADDITIONAL_INCLUDES = // $(SRCROOT)/../../../MyDSP/ + +// for jack headers +//ADDITIONAL_APP_INCLUDES = /usr/local/include + +// Flags to pass to compiler for all builds +GCC_CFLAGS = -Wno-write-strings + +//------------------------------ +// Preprocessor definitions + +// Preprocessor definitions for all VST builds +VST_DEFS = VST_API VST_FORCE_DEPRECATED + +VST3_DEFS = VST3_API + +// Preprocessor definitions for all AU builds +AU_DEFS = AU_API + +RTAS_DEFS = RTAS_API + +AAX_DEFS = AAX_API + +APP_DEFS = SA_API __MACOSX_CORE__ WDL_NO_DEFINE_MINMAX//__UNIX_JACK__ + +IOS_DEFS = SA_API +// Preprocessor definitions for all Debug builds +DEBUG_DEFS = _DEBUG + +// Preprocessor definitions for all Release builds +RELEASE_DEFS = NDEBUG //DEMO_VERSION + +// Preprocessor definitions for all Tracer builds +TRACER_DEFS = TRACER_BUILD NDEBUG + +// Preprocessor definitions for cocoa uniqueness (all builds) +// If you want to use swell inside of iplug, you need to make SWELL_APP_PREFIX unique too +COCOA_DEFS = SWELL_CLEANUP_ON_UNLOAD COCOA_PREFIX=vAccessibleSpectrumAnalyser SWELL_APP_PREFIX=Swell_vAccessibleSpectrumAnalyser + +//------------------------------ +// Release build options + +//Enable/Disable Profiling code +PROFILE = NO //NO, YES - enable this if you want to use shark to profile a plugin + +// GCC optimization level - +// None: [-O0] Fast: [-O, -O1] Faster:[-O2] Fastest: [-O3] Fastest, smallest: Optimize for size. [-Os] +RELEASE_OPTIMIZE = 3 //0,1,2,3,s + +//------------------------------ +// Debug build options +DEBUG_OPTIMIZE = 0 //0,1,2,3,s + diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.xcodeproj/project.pbxproj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.xcodeproj/project.pbxproj Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,2986 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXAggregateTarget section */ + 4F78DAF113B643600032E0F3 /* All */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 4F78DAFD13B643940032E0F3 /* Build configuration list for PBXAggregateTarget "All" */; + buildPhases = ( + ); + dependencies = ( + 4F78DAF613B6436B0032E0F3 /* PBXTargetDependency */, + 4F78DAF813B6436B0032E0F3 /* PBXTargetDependency */, + 4F78DAFA13B6436B0032E0F3 /* PBXTargetDependency */, + 4F8D4C6313E97B3D004F7633 /* PBXTargetDependency */, + 4F9828F8140A9F0200F3FCC1 /* PBXTargetDependency */, + 4F789ED016763E47009EF688 /* PBXTargetDependency */, + ); + name = All; + productName = "AllOSX_32&64_intel"; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 4F1F1BEA135B1F60003A5BB2 /* wdlendian.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F1F1BE9135B1F60003A5BB2 /* wdlendian.h */; }; + 4F20EECB132C69FE0030E34C /* AccessibleSpectrumAnalyser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52FBBED00D0CF139001C8B8A /* AccessibleSpectrumAnalyser.cpp */; }; + 4F20EF2D132C69FE0030E34C /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; }; + 4F20EF2E132C69FE0030E34C /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52C4DB180D0E51270007A920 /* Carbon.framework */; }; + 4F296BDA1678E6C800C0F5C2 /* dfx-au-utilities.c in Sources */ = {isa = PBXBuildFile; fileRef = 4FA88B901444E4C4006CB8DA /* dfx-au-utilities.c */; }; + 4F3AE17B12C0E5E2001FD7A4 /* resource.h in Headers */ = {isa = PBXBuildFile; fileRef = 52FBBED30D0CF143001C8B8A /* resource.h */; }; + 4F3AE17C12C0E5E2001FD7A4 /* AccessibleSpectrumAnalyser.h in Headers */ = {isa = PBXBuildFile; fileRef = 52FBBED20D0CF13D001C8B8A /* AccessibleSpectrumAnalyser.h */; }; + 4F3AE1A312C0E5E2001FD7A4 /* AccessibleSpectrumAnalyser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52FBBED00D0CF139001C8B8A /* AccessibleSpectrumAnalyser.cpp */; }; + 4F3AE1D412C0E5E2001FD7A4 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52C4DB180D0E51270007A920 /* Carbon.framework */; }; + 4F3AE1D512C0E5E2001FD7A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; }; + 4F3AE1D612C0E5E2001FD7A4 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52E41D920D14C2D600A0943B /* AudioToolbox.framework */; }; + 4F3AE1D712C0E5E2001FD7A4 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52E41D7E0D14C2D100A0943B /* AudioUnit.framework */; }; + 4F3AE1D812C0E5E2001FD7A4 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52E41CC40D14C2B000A0943B /* CoreServices.framework */; }; + 4F3AE1D912C0E5E2001FD7A4 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52E41CB90D14C2A900A0943B /* CoreAudio.framework */; }; + 4F3B0B44158B50A5001B0CEF /* libAAXLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F8B6723158B4EB2002FC25B /* libAAXLibrary.a */; }; + 4F3EE94613B65A350097B791 /* IPlugOSDetect.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F3EE94513B65A350097B791 /* IPlugOSDetect.h */; }; + 4F3EE94913B65A350097B791 /* IPlugOSDetect.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F3EE94513B65A350097B791 /* IPlugOSDetect.h */; }; + 4F78D70B13B637340032E0F3 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F78D62313B637200032E0F3 /* CoreFoundation.framework */; }; + 4F78D7D013B637790032E0F3 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F78D7CF13B637790032E0F3 /* CoreMIDI.framework */; }; + 4F78D86E13B637A20032E0F3 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2F7E65807B2D6F200F64583 /* CoreData.framework */; }; + 4F78D87013B637A20032E0F3 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52E41CB90D14C2A900A0943B /* CoreAudio.framework */; }; + 4F78D87113B637A20032E0F3 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; }; + 4F78D87513B637E50032E0F3 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52C4DB180D0E51270007A920 /* Carbon.framework */; }; + 4F78D88613B6382B0032E0F3 /* AccessibleSpectrumAnalyser.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4FD290A8137C34D700CEBE7E /* AccessibleSpectrumAnalyser.icns */; }; + 4F78D89913B639100032E0F3 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4F78D89513B639100032E0F3 /* InfoPlist.strings */; }; + 4F78D89A13B639100032E0F3 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4F78D89713B639100032E0F3 /* MainMenu.xib */; }; + 4F78D8C413B63A700032E0F3 /* RtAudio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8BF13B63A700032E0F3 /* RtAudio.cpp */; }; + 4F78D8C513B63A700032E0F3 /* RtMidi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8C213B63A700032E0F3 /* RtMidi.cpp */; }; + 4F78D8D913B63B5D0032E0F3 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8D213B63B5D0032E0F3 /* aeffect.h */; }; + 4F78D8DA13B63B5D0032E0F3 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8D313B63B5D0032E0F3 /* aeffectx.h */; }; + 4F78D90A13B63BA50032E0F3 /* IPlugStandalone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8EB13B63BA40032E0F3 /* IPlugStandalone.cpp */; }; + 4F78D90B13B63BA50032E0F3 /* IPlugBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8ED13B63BA40032E0F3 /* IPlugBase.cpp */; }; + 4F78D90C13B63BA50032E0F3 /* IPlugStructs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8EF13B63BA50032E0F3 /* IPlugStructs.cpp */; }; + 4F78D90D13B63BA50032E0F3 /* Hosts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F313B63BA50032E0F3 /* Hosts.cpp */; }; + 4F78D90F13B63BA50032E0F3 /* IGraphicsMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F513B63BA50032E0F3 /* IGraphicsMac.mm */; }; + 4F78D91013B63BA50032E0F3 /* IGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F613B63BA50032E0F3 /* IGraphics.cpp */; }; + 4F78D91113B63BA50032E0F3 /* IGraphicsCarbon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F713B63BA50032E0F3 /* IGraphicsCarbon.cpp */; }; + 4F78D91213B63BA50032E0F3 /* IGraphicsCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F813B63BA50032E0F3 /* IGraphicsCocoa.mm */; }; + 4F78D91313B63BA50032E0F3 /* Log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FB13B63BA50032E0F3 /* Log.cpp */; }; + 4F78D91413B63BA50032E0F3 /* IPopupMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FD13B63BA50032E0F3 /* IPopupMenu.cpp */; }; + 4F78D91813B63BA50032E0F3 /* IParam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90413B63BA50032E0F3 /* IParam.cpp */; }; + 4F78D91913B63BA50032E0F3 /* IControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90913B63BA50032E0F3 /* IControl.cpp */; }; + 4F78D93E13B63BA50032E0F3 /* IPlug_include_in_plug_hdr.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8E613B63BA40032E0F3 /* IPlug_include_in_plug_hdr.h */; }; + 4F78D94013B63BA50032E0F3 /* IPlug_include_in_plug_src.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8E813B63BA40032E0F3 /* IPlug_include_in_plug_src.h */; }; + 4F78D94113B63BA50032E0F3 /* IControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8E913B63BA40032E0F3 /* IControl.h */; }; + 4F78D94213B63BA50032E0F3 /* IKeyboardControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8EA13B63BA40032E0F3 /* IKeyboardControl.h */; }; + 4F78D94413B63BA50032E0F3 /* IPlugBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8EC13B63BA40032E0F3 /* IPlugBase.h */; }; + 4F78D94513B63BA50032E0F3 /* IPlugBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8ED13B63BA40032E0F3 /* IPlugBase.cpp */; }; + 4F78D94613B63BA50032E0F3 /* IGraphicsMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8EE13B63BA50032E0F3 /* IGraphicsMac.h */; }; + 4F78D94713B63BA50032E0F3 /* IPlugStructs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8EF13B63BA50032E0F3 /* IPlugStructs.cpp */; }; + 4F78D94913B63BA50032E0F3 /* Containers.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8F113B63BA50032E0F3 /* Containers.h */; }; + 4F78D94A13B63BA50032E0F3 /* Hosts.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8F213B63BA50032E0F3 /* Hosts.h */; }; + 4F78D94B13B63BA50032E0F3 /* Hosts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F313B63BA50032E0F3 /* Hosts.cpp */; }; + 4F78D94D13B63BA50032E0F3 /* IGraphicsMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F513B63BA50032E0F3 /* IGraphicsMac.mm */; }; + 4F78D94E13B63BA50032E0F3 /* IGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F613B63BA50032E0F3 /* IGraphics.cpp */; }; + 4F78D94F13B63BA50032E0F3 /* IGraphicsCarbon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F713B63BA50032E0F3 /* IGraphicsCarbon.cpp */; }; + 4F78D95013B63BA50032E0F3 /* IGraphicsCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F813B63BA50032E0F3 /* IGraphicsCocoa.mm */; }; + 4F78D95113B63BA50032E0F3 /* IGraphicsCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8F913B63BA50032E0F3 /* IGraphicsCocoa.h */; }; + 4F78D95213B63BA50032E0F3 /* Log.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8FA13B63BA50032E0F3 /* Log.h */; }; + 4F78D95313B63BA50032E0F3 /* Log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FB13B63BA50032E0F3 /* Log.cpp */; }; + 4F78D95413B63BA50032E0F3 /* IPopupMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8FC13B63BA50032E0F3 /* IPopupMenu.h */; }; + 4F78D95513B63BA50032E0F3 /* IPopupMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FD13B63BA50032E0F3 /* IPopupMenu.cpp */; }; + 4F78D95613B63BA50032E0F3 /* IPlugStructs.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8FE13B63BA50032E0F3 /* IPlugStructs.h */; }; + 4F78D95A13B63BA50032E0F3 /* IPlug_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D90213B63BA50032E0F3 /* IPlug_Prefix.pch */; }; + 4F78D95B13B63BA50032E0F3 /* IParam.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D90313B63BA50032E0F3 /* IParam.h */; }; + 4F78D95C13B63BA50032E0F3 /* IParam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90413B63BA50032E0F3 /* IParam.cpp */; }; + 4F78D95D13B63BA50032E0F3 /* IMidiQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D90513B63BA50032E0F3 /* IMidiQueue.h */; }; + 4F78D95F13B63BA50032E0F3 /* IGraphicsCarbon.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D90713B63BA50032E0F3 /* IGraphicsCarbon.h */; }; + 4F78D96013B63BA50032E0F3 /* IGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D90813B63BA50032E0F3 /* IGraphics.h */; }; + 4F78D96113B63BA50032E0F3 /* IControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90913B63BA50032E0F3 /* IControl.cpp */; }; + 4F78D9BB13B63BA50032E0F3 /* IPlugBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8ED13B63BA40032E0F3 /* IPlugBase.cpp */; }; + 4F78D9BC13B63BA50032E0F3 /* IPlugStructs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8EF13B63BA50032E0F3 /* IPlugStructs.cpp */; }; + 4F78D9BD13B63BA50032E0F3 /* Hosts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F313B63BA50032E0F3 /* Hosts.cpp */; }; + 4F78D9BF13B63BA50032E0F3 /* IGraphicsMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F513B63BA50032E0F3 /* IGraphicsMac.mm */; }; + 4F78D9C013B63BA50032E0F3 /* IGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F613B63BA50032E0F3 /* IGraphics.cpp */; }; + 4F78D9C113B63BA50032E0F3 /* IGraphicsCarbon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F713B63BA50032E0F3 /* IGraphicsCarbon.cpp */; }; + 4F78D9C213B63BA50032E0F3 /* IGraphicsCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F813B63BA50032E0F3 /* IGraphicsCocoa.mm */; }; + 4F78D9C313B63BA50032E0F3 /* Log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FB13B63BA50032E0F3 /* Log.cpp */; }; + 4F78D9C413B63BA50032E0F3 /* IPopupMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FD13B63BA50032E0F3 /* IPopupMenu.cpp */; }; + 4F78D9C813B63BA50032E0F3 /* IParam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90413B63BA50032E0F3 /* IParam.cpp */; }; + 4F78D9C913B63BA50032E0F3 /* IControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90913B63BA50032E0F3 /* IControl.cpp */; }; + 4F78D9F313B63C6A0032E0F3 /* IPlugVST.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D9EC13B63C6A0032E0F3 /* IPlugVST.cpp */; }; + 4F78DA0713B63CD90032E0F3 /* IPlugAU.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D9FB13B63CD90032E0F3 /* IPlugAU.h */; }; + 4F78DA0813B63CD90032E0F3 /* IPlugAU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D9FC13B63CD90032E0F3 /* IPlugAU.cpp */; }; + 4F78DA0913B63CD90032E0F3 /* IPlugAU.r in Rez */ = {isa = PBXBuildFile; fileRef = 4F78D9FD13B63CD90032E0F3 /* IPlugAU.r */; }; + 4F78DA0A13B63CD90032E0F3 /* IPlugAU_ViewFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D9FE13B63CD90032E0F3 /* IPlugAU_ViewFactory.mm */; }; + 4F78DA5A13B63F150032E0F3 /* AccessibleSpectrumAnalyser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52FBBED00D0CF139001C8B8A /* AccessibleSpectrumAnalyser.cpp */; }; + 4F78DA7713B640050032E0F3 /* resource.h in Headers */ = {isa = PBXBuildFile; fileRef = 52FBBED30D0CF143001C8B8A /* resource.h */; }; + 4F78DA7813B640050032E0F3 /* AccessibleSpectrumAnalyser.h in Headers */ = {isa = PBXBuildFile; fileRef = 52FBBED20D0CF13D001C8B8A /* AccessibleSpectrumAnalyser.h */; }; + 4F78DA8A13B640050032E0F3 /* mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FF016F4134E14E2001447BA /* mutex.h */; }; + 4F78DA8B13B640050032E0F3 /* ptrlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FF016F5134E14E2001447BA /* ptrlist.h */; }; + 4F78DA8C13B640050032E0F3 /* wdlstring.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FF016F6134E14E2001447BA /* wdlstring.h */; }; + 4F78DA8D13B640050032E0F3 /* heapbuf.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FF01719134E153A001447BA /* heapbuf.h */; }; + 4F78DA8E13B640050032E0F3 /* wdlendian.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F1F1BE9135B1F60003A5BB2 /* wdlendian.h */; }; + 4F78DA8F13B640050032E0F3 /* swell.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD16D1713B634E5001D0217 /* swell.h */; }; + 4F78DA9013B640050032E0F3 /* swell-functions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD16D2213B6351C001D0217 /* swell-functions.h */; }; + 4F78DA9113B640050032E0F3 /* swell-internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD16D2B13B6353C001D0217 /* swell-internal.h */; }; + 4F78DA9213B640050032E0F3 /* swell-types.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD16D3013B6355A001D0217 /* swell-types.h */; }; + 4F78DA9313B640050032E0F3 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8D213B63B5D0032E0F3 /* aeffect.h */; }; + 4F78DA9413B640050032E0F3 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8D313B63B5D0032E0F3 /* aeffectx.h */; }; + 4F78DA9513B640050032E0F3 /* IPlug_include_in_plug_hdr.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8E613B63BA40032E0F3 /* IPlug_include_in_plug_hdr.h */; }; + 4F78DA9613B640050032E0F3 /* IPlug_include_in_plug_src.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8E813B63BA40032E0F3 /* IPlug_include_in_plug_src.h */; }; + 4F78DA9713B640050032E0F3 /* IControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8E913B63BA40032E0F3 /* IControl.h */; }; + 4F78DA9813B640050032E0F3 /* IKeyboardControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8EA13B63BA40032E0F3 /* IKeyboardControl.h */; }; + 4F78DA9913B640050032E0F3 /* IPlugBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8EC13B63BA40032E0F3 /* IPlugBase.h */; }; + 4F78DA9A13B640050032E0F3 /* IGraphicsMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8EE13B63BA50032E0F3 /* IGraphicsMac.h */; }; + 4F78DA9C13B640050032E0F3 /* Containers.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8F113B63BA50032E0F3 /* Containers.h */; }; + 4F78DA9D13B640050032E0F3 /* Hosts.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8F213B63BA50032E0F3 /* Hosts.h */; }; + 4F78DA9E13B640050032E0F3 /* IGraphicsCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8F913B63BA50032E0F3 /* IGraphicsCocoa.h */; }; + 4F78DA9F13B640050032E0F3 /* Log.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8FA13B63BA50032E0F3 /* Log.h */; }; + 4F78DAA013B640050032E0F3 /* IPopupMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8FC13B63BA50032E0F3 /* IPopupMenu.h */; }; + 4F78DAA113B640050032E0F3 /* IPlugStructs.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8FE13B63BA50032E0F3 /* IPlugStructs.h */; }; + 4F78DAA213B640050032E0F3 /* IPlug_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D90213B63BA50032E0F3 /* IPlug_Prefix.pch */; }; + 4F78DAA313B640050032E0F3 /* IParam.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D90313B63BA50032E0F3 /* IParam.h */; }; + 4F78DAA413B640050032E0F3 /* IMidiQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D90513B63BA50032E0F3 /* IMidiQueue.h */; }; + 4F78DAA513B640050032E0F3 /* IGraphicsCarbon.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D90713B63BA50032E0F3 /* IGraphicsCarbon.h */; }; + 4F78DAA613B640050032E0F3 /* IGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D90813B63BA50032E0F3 /* IGraphics.h */; }; + 4F78DAB113B640470032E0F3 /* swell-menugen.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD16D0213B63489001D0217 /* swell-menugen.h */; }; + 4F78DAB213B640470032E0F3 /* swell-dlggen.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD16D0313B63494001D0217 /* swell-dlggen.h */; }; + 4F78DAB313B640470032E0F3 /* swellappmain.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD16D4513B635C8001D0217 /* swellappmain.h */; }; + 4F78DAB813B640530032E0F3 /* RtAudio.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8C013B63A700032E0F3 /* RtAudio.h */; }; + 4F78DAB913B640530032E0F3 /* RtError.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8C113B63A700032E0F3 /* RtError.h */; }; + 4F78DABA13B640530032E0F3 /* RtMidi.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D8C313B63A700032E0F3 /* RtMidi.h */; }; + 4F78DABB13B640620032E0F3 /* IPlugStandalone.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F78D9EA13B63BE90032E0F3 /* IPlugStandalone.h */; }; + 4F79A34E146304CD00744AED /* IPlugProcessAS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F79A34C146304CD00744AED /* IPlugProcessAS.cpp */; }; + 4F7E20F91679316C00907FCF /* font-white.png in Resources */ = {isa = PBXBuildFile; fileRef = 4F7E20F71679316C00907FCF /* font-white.png */; }; + 4F7E20FB1679316C00907FCF /* font-white.png in Resources */ = {isa = PBXBuildFile; fileRef = 4F7E20F71679316C00907FCF /* font-white.png */; }; + 4F7E20FD1679316C00907FCF /* font-white.png in Resources */ = {isa = PBXBuildFile; fileRef = 4F7E20F71679316C00907FCF /* font-white.png */; }; + 4F7E20FF1679316C00907FCF /* font-white.png in Resources */ = {isa = PBXBuildFile; fileRef = 4F7E20F71679316C00907FCF /* font-white.png */; }; + 4F7E21011679316C00907FCF /* font-white.png in Resources */ = {isa = PBXBuildFile; fileRef = 4F7E20F71679316C00907FCF /* font-white.png */; }; + 4F7E21031679316C00907FCF /* font-white.png in Resources */ = {isa = PBXBuildFile; fileRef = 4F7E20F71679316C00907FCF /* font-white.png */; }; + 4F7F5C4913E95EC8002918FD /* AccessibleSpectrumAnalyser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52FBBED00D0CF139001C8B8A /* AccessibleSpectrumAnalyser.cpp */; }; + 4F7F5C5013E95EC8002918FD /* swell-gdi.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D0B13B634BF001D0217 /* swell-gdi.mm */; }; + 4F7F5C5113E95EC8002918FD /* IPlugBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8ED13B63BA40032E0F3 /* IPlugBase.cpp */; }; + 4F7F5C5213E95EC8002918FD /* IPlugStructs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8EF13B63BA50032E0F3 /* IPlugStructs.cpp */; }; + 4F7F5C5313E95EC8002918FD /* Hosts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F313B63BA50032E0F3 /* Hosts.cpp */; }; + 4F7F5C5413E95EC8002918FD /* IGraphicsMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F513B63BA50032E0F3 /* IGraphicsMac.mm */; }; + 4F7F5C5513E95EC8002918FD /* IGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F613B63BA50032E0F3 /* IGraphics.cpp */; }; + 4F7F5C5613E95EC8002918FD /* IGraphicsCarbon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F713B63BA50032E0F3 /* IGraphicsCarbon.cpp */; }; + 4F7F5C5713E95EC8002918FD /* IGraphicsCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F813B63BA50032E0F3 /* IGraphicsCocoa.mm */; }; + 4F7F5C5813E95EC8002918FD /* Log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FB13B63BA50032E0F3 /* Log.cpp */; }; + 4F7F5C5913E95EC8002918FD /* IPopupMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FD13B63BA50032E0F3 /* IPopupMenu.cpp */; }; + 4F7F5C5A13E95EC8002918FD /* IParam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90413B63BA50032E0F3 /* IParam.cpp */; }; + 4F7F5C5B13E95EC8002918FD /* IControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90913B63BA50032E0F3 /* IControl.cpp */; }; + 4F7F5C6213E95EC8002918FD /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; }; + 4F7F5C6313E95EC8002918FD /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52C4DB180D0E51270007A920 /* Carbon.framework */; }; + 4F7F5C7113E95FB2002918FD /* IPlugRTAS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F7F5C6F13E95FB2002918FD /* IPlugRTAS.cpp */; }; + 4F7F5CAD13E9607A002918FD /* digicode1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F7F5C9C13E9607A002918FD /* digicode1.cpp */; }; + 4F7F5CAE13E9607A002918FD /* digicode2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F7F5C9D13E9607A002918FD /* digicode2.cpp */; }; + 4F7F5CAF13E9607A002918FD /* digicode3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F7F5C9E13E9607A002918FD /* digicode3.cpp */; }; + 4F7F5CB013E9607A002918FD /* IPlugCustomUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F7F5CA013E9607A002918FD /* IPlugCustomUI.cpp */; }; + 4F7F5CB113E9607A002918FD /* IPlugGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F7F5CA313E9607A002918FD /* IPlugGroup.cpp */; }; + 4F7F5CB213E9607A002918FD /* IPlugProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F7F5CA513E9607A002918FD /* IPlugProcess.cpp */; }; + 4F7F5CB313E9607A002918FD /* IPlugProcessRTAS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F7F5CA713E9607A002918FD /* IPlugProcessRTAS.cpp */; }; + 4F7F5CF713E96564002918FD /* System.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F7F5CF613E96564002918FD /* System.framework */; }; + 4F7F5D2C13E9686E002918FD /* IPlugRTAS.r in Rez */ = {isa = PBXBuildFile; fileRef = 4F7F5D2413E9681E002918FD /* IPlugRTAS.r */; }; + 4F8B6766158B4F74002FC25B /* libPluginLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F8B674F158B4F53002FC25B /* libPluginLibrary.a */; }; + 4F8D4BCD13E97671004F7633 /* lice.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F8D4BCC13E97664004F7633 /* lice.a */; }; + 4F8D4C2813E9778D004F7633 /* lice.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F8D4BCC13E97664004F7633 /* lice.a */; }; + 4F8D4C2913E97794004F7633 /* lice32.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F8D4C1713E976A7004F7633 /* lice32.a */; }; + 4F8D4C2F13E97806004F7633 /* lice.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F8D4BCC13E97664004F7633 /* lice.a */; }; + 4F9828B6140A9EB700F3FCC1 /* AccessibleSpectrumAnalyser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52FBBED00D0CF139001C8B8A /* AccessibleSpectrumAnalyser.cpp */; }; + 4F9828B7140A9EB700F3FCC1 /* swell-gdi.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D0B13B634BF001D0217 /* swell-gdi.mm */; }; + 4F9828B8140A9EB700F3FCC1 /* IPlugBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8ED13B63BA40032E0F3 /* IPlugBase.cpp */; }; + 4F9828B9140A9EB700F3FCC1 /* IPlugStructs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8EF13B63BA50032E0F3 /* IPlugStructs.cpp */; }; + 4F9828BA140A9EB700F3FCC1 /* Hosts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F313B63BA50032E0F3 /* Hosts.cpp */; }; + 4F9828BB140A9EB700F3FCC1 /* IGraphicsMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F513B63BA50032E0F3 /* IGraphicsMac.mm */; }; + 4F9828BC140A9EB700F3FCC1 /* IGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F613B63BA50032E0F3 /* IGraphics.cpp */; }; + 4F9828BD140A9EB700F3FCC1 /* IGraphicsCarbon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F713B63BA50032E0F3 /* IGraphicsCarbon.cpp */; }; + 4F9828BE140A9EB700F3FCC1 /* IGraphicsCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F813B63BA50032E0F3 /* IGraphicsCocoa.mm */; }; + 4F9828BF140A9EB700F3FCC1 /* Log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FB13B63BA50032E0F3 /* Log.cpp */; }; + 4F9828C0140A9EB700F3FCC1 /* IPopupMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FD13B63BA50032E0F3 /* IPopupMenu.cpp */; }; + 4F9828C1140A9EB700F3FCC1 /* IParam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90413B63BA50032E0F3 /* IParam.cpp */; }; + 4F9828C2140A9EB700F3FCC1 /* IControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90913B63BA50032E0F3 /* IControl.cpp */; }; + 4F9828C3140A9EB700F3FCC1 /* IBitmapMonoText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FDA440513F3E4F2000B4551 /* IBitmapMonoText.cpp */; }; + 4F9828C4140A9EB700F3FCC1 /* IPlugVST3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F3E69041409746500C4D749 /* IPlugVST3.cpp */; }; + 4F9828C5140A9EB700F3FCC1 /* memorystream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4ACFF5140996A10068A6D4 /* memorystream.cpp */; }; + 4F9828C6140A9EB700F3FCC1 /* pluginview.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4ACFF7140996A10068A6D4 /* pluginview.cpp */; }; + 4F9828C7140A9EB700F3FCC1 /* macmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4ACFFB140996A10068A6D4 /* macmain.cpp */; }; + 4F9828C8140A9EB700F3FCC1 /* pluginfactoryvst3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4ACFFC140996A10068A6D4 /* pluginfactoryvst3.cpp */; }; + 4F9828C9140A9EB700F3FCC1 /* vstaudioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4ACFFF140996A10068A6D4 /* vstaudioeffect.cpp */; }; + 4F9828CA140A9EB700F3FCC1 /* vstbus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD001140996A10068A6D4 /* vstbus.cpp */; }; + 4F9828CB140A9EB700F3FCC1 /* vstcomponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD003140996A10068A6D4 /* vstcomponent.cpp */; }; + 4F9828CC140A9EB700F3FCC1 /* vstcomponentbase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD005140996A10068A6D4 /* vstcomponentbase.cpp */; }; + 4F9828CE140A9EB700F3FCC1 /* vstinitiids.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD009140996A10068A6D4 /* vstinitiids.cpp */; }; + 4F9828CF140A9EB700F3FCC1 /* vstnoteexpressiontypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD00A140996A10068A6D4 /* vstnoteexpressiontypes.cpp */; }; + 4F9828D0140A9EB700F3FCC1 /* vstparameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD00C140996A10068A6D4 /* vstparameters.cpp */; }; + 4F9828D1140A9EB700F3FCC1 /* vstpresetfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD00E140996A10068A6D4 /* vstpresetfile.cpp */; }; + 4F9828D2140A9EB700F3FCC1 /* vstrepresentation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD010140996A10068A6D4 /* vstrepresentation.cpp */; }; + 4F9828D3140A9EB700F3FCC1 /* vstsinglecomponenteffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD012140996A10068A6D4 /* vstsinglecomponenteffect.cpp */; }; + 4F9828D4140A9EB700F3FCC1 /* conststringtable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD016140996A10068A6D4 /* conststringtable.cpp */; }; + 4F9828D5140A9EB700F3FCC1 /* funknown.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD01D140996A10068A6D4 /* funknown.cpp */; }; + 4F9828D6140A9EB700F3FCC1 /* ustring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4AD028140996A10068A6D4 /* ustring.cpp */; }; + 4F9828D8140A9EB700F3FCC1 /* libbase.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F4AD1F61409A56A0068A6D4 /* libbase.a */; }; + 4F9828DA140A9EB700F3FCC1 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; }; + 4F9828DB140A9EB700F3FCC1 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52C4DB180D0E51270007A920 /* Carbon.framework */; }; + 4F9828F6140A9EEE00F3FCC1 /* lice.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F8D4BCC13E97664004F7633 /* lice.a */; }; + 4FA88B931444E4C4006CB8DA /* dfx-au-utilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FA88B911444E4C4006CB8DA /* dfx-au-utilities.h */; }; + 4FB3624F13B648FE00DB6B76 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FB3624E13B648FE00DB6B76 /* main.mm */; }; + 4FB600181567CB0A0020189A /* AccessibleSpectrumAnalyser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52FBBED00D0CF139001C8B8A /* AccessibleSpectrumAnalyser.cpp */; }; + 4FB600191567CB0A0020189A /* swell-gdi.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D0B13B634BF001D0217 /* swell-gdi.mm */; }; + 4FB6001A1567CB0A0020189A /* IPlugBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8ED13B63BA40032E0F3 /* IPlugBase.cpp */; }; + 4FB6001B1567CB0A0020189A /* IPlugStructs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8EF13B63BA50032E0F3 /* IPlugStructs.cpp */; }; + 4FB6001C1567CB0A0020189A /* Hosts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F313B63BA50032E0F3 /* Hosts.cpp */; }; + 4FB6001D1567CB0A0020189A /* IGraphicsMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F513B63BA50032E0F3 /* IGraphicsMac.mm */; }; + 4FB6001E1567CB0A0020189A /* IGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F613B63BA50032E0F3 /* IGraphics.cpp */; }; + 4FB6001F1567CB0A0020189A /* IGraphicsCarbon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F713B63BA50032E0F3 /* IGraphicsCarbon.cpp */; }; + 4FB600201567CB0A0020189A /* IGraphicsCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8F813B63BA50032E0F3 /* IGraphicsCocoa.mm */; }; + 4FB600211567CB0A0020189A /* Log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FB13B63BA50032E0F3 /* Log.cpp */; }; + 4FB600221567CB0A0020189A /* IPopupMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D8FD13B63BA50032E0F3 /* IPopupMenu.cpp */; }; + 4FB600231567CB0A0020189A /* IParam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90413B63BA50032E0F3 /* IParam.cpp */; }; + 4FB600241567CB0A0020189A /* IControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F78D90913B63BA50032E0F3 /* IControl.cpp */; }; + 4FB600251567CB0A0020189A /* IBitmapMonoText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FDA440513F3E4F2000B4551 /* IBitmapMonoText.cpp */; }; + 4FB600261567CB0A0020189A /* AAX_Exports.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4CC38A1549B91100A9EA21 /* AAX_Exports.cpp */; }; + 4FB600271567CB0A0020189A /* IPlugAAX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4CC4251549BED600A9EA21 /* IPlugAAX.cpp */; }; + 4FB600281567CB0A0020189A /* IPlugAAX_Describe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4CC4401549C15500A9EA21 /* IPlugAAX_Describe.cpp */; }; + 4FB600291567CB0A0020189A /* AAX_CIPlugParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F017360154D4BFC0034BE1A /* AAX_CIPlugParameters.cpp */; }; + 4FB6002C1567CB0A0020189A /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; }; + 4FB6002D1567CB0A0020189A /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52C4DB180D0E51270007A920 /* Carbon.framework */; }; + 4FB600551567CBF90020189A /* lice.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F8D4BCC13E97664004F7633 /* lice.a */; }; + 4FD16CA213B6327D001D0217 /* app_main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16CA013B6327C001D0217 /* app_main.cpp */; }; + 4FD16CA313B6327D001D0217 /* app_dialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16CA113B6327C001D0217 /* app_dialog.cpp */; }; + 4FD16CFC13B63468001D0217 /* swell-appstub.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16CFB13B63468001D0217 /* swell-appstub.mm */; }; + 4FD16D0513B634AA001D0217 /* swell-dlg.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D0413B634AA001D0217 /* swell-dlg.mm */; }; + 4FD16D0C13B634BF001D0217 /* swell-gdi.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D0B13B634BF001D0217 /* swell-gdi.mm */; }; + 4FD16D0E13B634BF001D0217 /* swell-gdi.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D0B13B634BF001D0217 /* swell-gdi.mm */; }; + 4FD16D1213B634BF001D0217 /* swell-gdi.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D0B13B634BF001D0217 /* swell-gdi.mm */; }; + 4FD16D1613B634D2001D0217 /* swell-ini.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D1513B634D2001D0217 /* swell-ini.cpp */; }; + 4FD16D1913B634E5001D0217 /* swell.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD16D1713B634E5001D0217 /* swell.h */; }; + 4FD16D2413B6351C001D0217 /* swell-functions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD16D2213B6351C001D0217 /* swell-functions.h */; }; + 4FD16D2D13B6353C001D0217 /* swell-internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD16D2B13B6353C001D0217 /* swell-internal.h */; }; + 4FD16D3213B6355A001D0217 /* swell-types.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD16D3013B6355A001D0217 /* swell-types.h */; }; + 4FD16D3A13B63582001D0217 /* swell-kb.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D3913B63582001D0217 /* swell-kb.mm */; }; + 4FD16D3C13B6358C001D0217 /* swell-miscdlg.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D3B13B6358C001D0217 /* swell-miscdlg.mm */; }; + 4FD16D3E13B63595001D0217 /* swell-menu.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D3D13B63595001D0217 /* swell-menu.mm */; }; + 4FD16D4013B635A0001D0217 /* swell-misc.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D3F13B635A0001D0217 /* swell-misc.mm */; }; + 4FD16D4213B635AB001D0217 /* swell-wnd.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D4113B635AB001D0217 /* swell-wnd.mm */; }; + 4FD16D4413B635B2001D0217 /* swell.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D4313B635B2001D0217 /* swell.cpp */; }; + 4FD16D4713B635C8001D0217 /* swellappmain.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4FD16D4613B635C8001D0217 /* swellappmain.mm */; }; + 4FDA440713F3E4F2000B4551 /* IBitmapMonoText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FDA440513F3E4F2000B4551 /* IBitmapMonoText.cpp */; }; + 4FDA440813F3E4F2000B4551 /* IBitmapMonoText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FDA440513F3E4F2000B4551 /* IBitmapMonoText.cpp */; }; + 4FDA440913F3E4F2000B4551 /* IBitmapMonoText.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FDA440613F3E4F2000B4551 /* IBitmapMonoText.h */; }; + 4FDA440C13F3E4F2000B4551 /* IBitmapMonoText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FDA440513F3E4F2000B4551 /* IBitmapMonoText.cpp */; }; + 4FDA440E13F3E4F2000B4551 /* IBitmapMonoText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FDA440513F3E4F2000B4551 /* IBitmapMonoText.cpp */; }; + 4FDA440F13F3E4F2000B4551 /* IBitmapMonoText.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FDA440613F3E4F2000B4551 /* IBitmapMonoText.h */; }; + 4FF016F7134E14E2001447BA /* mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FF016F4134E14E2001447BA /* mutex.h */; }; + 4FF016F8134E14E2001447BA /* ptrlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FF016F5134E14E2001447BA /* ptrlist.h */; }; + 4FF016F9134E14E2001447BA /* wdlstring.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FF016F6134E14E2001447BA /* wdlstring.h */; }; + 4FF0171A134E153A001447BA /* heapbuf.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FF01719134E153A001447BA /* heapbuf.h */; }; + F40B6F221C4FD08000DE0457 /* ADSR.h in Headers */ = {isa = PBXBuildFile; fileRef = F40B6F1D1C4FD08000DE0457 /* ADSR.h */; }; + F40B6F231C4FD08000DE0457 /* ADSR.h in Headers */ = {isa = PBXBuildFile; fileRef = F40B6F1D1C4FD08000DE0457 /* ADSR.h */; }; + F40B6F241C4FD08000DE0457 /* Envelope.h in Headers */ = {isa = PBXBuildFile; fileRef = F40B6F1E1C4FD08000DE0457 /* Envelope.h */; }; + F40B6F251C4FD08000DE0457 /* Envelope.h in Headers */ = {isa = PBXBuildFile; fileRef = F40B6F1E1C4FD08000DE0457 /* Envelope.h */; }; + F40B6F261C4FD08000DE0457 /* Generator.h in Headers */ = {isa = PBXBuildFile; fileRef = F40B6F1F1C4FD08000DE0457 /* Generator.h */; }; + F40B6F271C4FD08000DE0457 /* Generator.h in Headers */ = {isa = PBXBuildFile; fileRef = F40B6F1F1C4FD08000DE0457 /* Generator.h */; }; + F40B6F281C4FD08000DE0457 /* SineWave.h in Headers */ = {isa = PBXBuildFile; fileRef = F40B6F201C4FD08000DE0457 /* SineWave.h */; }; + F40B6F291C4FD08000DE0457 /* SineWave.h in Headers */ = {isa = PBXBuildFile; fileRef = F40B6F201C4FD08000DE0457 /* SineWave.h */; }; + F40B6F2A1C4FD08000DE0457 /* Stk.h in Headers */ = {isa = PBXBuildFile; fileRef = F40B6F211C4FD08000DE0457 /* Stk.h */; }; + F40B6F2B1C4FD08000DE0457 /* Stk.h in Headers */ = {isa = PBXBuildFile; fileRef = F40B6F211C4FD08000DE0457 /* Stk.h */; }; + F40B6F301C4FD09000DE0457 /* ADSR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2C1C4FD09000DE0457 /* ADSR.cpp */; }; + F40B6F311C4FD09000DE0457 /* ADSR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2C1C4FD09000DE0457 /* ADSR.cpp */; }; + F40B6F321C4FD09000DE0457 /* ADSR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2C1C4FD09000DE0457 /* ADSR.cpp */; }; + F40B6F331C4FD09000DE0457 /* ADSR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2C1C4FD09000DE0457 /* ADSR.cpp */; }; + F40B6F341C4FD09000DE0457 /* ADSR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2C1C4FD09000DE0457 /* ADSR.cpp */; }; + F40B6F351C4FD09000DE0457 /* ADSR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2C1C4FD09000DE0457 /* ADSR.cpp */; }; + F40B6F361C4FD09000DE0457 /* Envelope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2D1C4FD09000DE0457 /* Envelope.cpp */; }; + F40B6F371C4FD09000DE0457 /* Envelope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2D1C4FD09000DE0457 /* Envelope.cpp */; }; + F40B6F381C4FD09000DE0457 /* Envelope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2D1C4FD09000DE0457 /* Envelope.cpp */; }; + F40B6F391C4FD09000DE0457 /* Envelope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2D1C4FD09000DE0457 /* Envelope.cpp */; }; + F40B6F3A1C4FD09000DE0457 /* Envelope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2D1C4FD09000DE0457 /* Envelope.cpp */; }; + F40B6F3B1C4FD09000DE0457 /* Envelope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2D1C4FD09000DE0457 /* Envelope.cpp */; }; + F40B6F3C1C4FD09000DE0457 /* SineWave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2E1C4FD09000DE0457 /* SineWave.cpp */; }; + F40B6F3D1C4FD09000DE0457 /* SineWave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2E1C4FD09000DE0457 /* SineWave.cpp */; }; + F40B6F3E1C4FD09000DE0457 /* SineWave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2E1C4FD09000DE0457 /* SineWave.cpp */; }; + F40B6F3F1C4FD09000DE0457 /* SineWave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2E1C4FD09000DE0457 /* SineWave.cpp */; }; + F40B6F401C4FD09000DE0457 /* SineWave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2E1C4FD09000DE0457 /* SineWave.cpp */; }; + F40B6F411C4FD09000DE0457 /* SineWave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2E1C4FD09000DE0457 /* SineWave.cpp */; }; + F40B6F421C4FD09000DE0457 /* Stk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2F1C4FD09000DE0457 /* Stk.cpp */; }; + F40B6F431C4FD09000DE0457 /* Stk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2F1C4FD09000DE0457 /* Stk.cpp */; }; + F40B6F441C4FD09000DE0457 /* Stk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2F1C4FD09000DE0457 /* Stk.cpp */; }; + F40B6F451C4FD09000DE0457 /* Stk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2F1C4FD09000DE0457 /* Stk.cpp */; }; + F40B6F461C4FD09000DE0457 /* Stk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2F1C4FD09000DE0457 /* Stk.cpp */; }; + F40B6F471C4FD09000DE0457 /* Stk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F40B6F2F1C4FD09000DE0457 /* Stk.cpp */; }; + F453FF691C47F6F00028FF6C /* FreqView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F453FF671C47F6F00028FF6C /* FreqView.cpp */; }; + F453FF6A1C47F6F00028FF6C /* FreqView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F453FF671C47F6F00028FF6C /* FreqView.cpp */; }; + F453FF6B1C47F6F00028FF6C /* FreqView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F453FF671C47F6F00028FF6C /* FreqView.cpp */; }; + F453FF6C1C47F6F00028FF6C /* FreqView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F453FF671C47F6F00028FF6C /* FreqView.cpp */; }; + F453FF6D1C47F6F00028FF6C /* FreqView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F453FF671C47F6F00028FF6C /* FreqView.cpp */; }; + F453FF6E1C47F6F00028FF6C /* FreqView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F453FF671C47F6F00028FF6C /* FreqView.cpp */; }; + F453FF6F1C47F6F00028FF6C /* FreqView.h in Headers */ = {isa = PBXBuildFile; fileRef = F453FF681C47F6F00028FF6C /* FreqView.h */; }; + F453FF701C47F6F00028FF6C /* FreqView.h in Headers */ = {isa = PBXBuildFile; fileRef = F453FF681C47F6F00028FF6C /* FreqView.h */; }; + F453FF751C47F72D0028FF6C /* fft.c in Sources */ = {isa = PBXBuildFile; fileRef = F453FF731C47F72D0028FF6C /* fft.c */; }; + F453FF761C47F72D0028FF6C /* fft.c in Sources */ = {isa = PBXBuildFile; fileRef = F453FF731C47F72D0028FF6C /* fft.c */; }; + F453FF771C47F72D0028FF6C /* fft.c in Sources */ = {isa = PBXBuildFile; fileRef = F453FF731C47F72D0028FF6C /* fft.c */; }; + F453FF781C47F72D0028FF6C /* fft.c in Sources */ = {isa = PBXBuildFile; fileRef = F453FF731C47F72D0028FF6C /* fft.c */; }; + F453FF791C47F72D0028FF6C /* fft.c in Sources */ = {isa = PBXBuildFile; fileRef = F453FF731C47F72D0028FF6C /* fft.c */; }; + F453FF7A1C47F72D0028FF6C /* fft.c in Sources */ = {isa = PBXBuildFile; fileRef = F453FF731C47F72D0028FF6C /* fft.c */; }; + F453FF7B1C47F72D0028FF6C /* fft.h in Headers */ = {isa = PBXBuildFile; fileRef = F453FF741C47F72D0028FF6C /* fft.h */; }; + F453FF7C1C47F72D0028FF6C /* fft.h in Headers */ = {isa = PBXBuildFile; fileRef = F453FF741C47F72D0028FF6C /* fft.h */; }; + F454F4FC1C4D6AD000CA0276 /* Controls.h in Headers */ = {isa = PBXBuildFile; fileRef = F454F4FB1C4D6AD000CA0276 /* Controls.h */; }; + F454F4FD1C4D6AD000CA0276 /* Controls.h in Headers */ = {isa = PBXBuildFile; fileRef = F454F4FB1C4D6AD000CA0276 /* Controls.h */; }; + F454F4FF1C4D6B9500CA0276 /* knob.png in Resources */ = {isa = PBXBuildFile; fileRef = F454F4FE1C4D6B9500CA0276 /* knob.png */; }; + F454F5001C4D6B9500CA0276 /* knob.png in Resources */ = {isa = PBXBuildFile; fileRef = F454F4FE1C4D6B9500CA0276 /* knob.png */; }; + F454F5011C4D6B9500CA0276 /* knob.png in Resources */ = {isa = PBXBuildFile; fileRef = F454F4FE1C4D6B9500CA0276 /* knob.png */; }; + F454F5021C4D6B9500CA0276 /* knob.png in Resources */ = {isa = PBXBuildFile; fileRef = F454F4FE1C4D6B9500CA0276 /* knob.png */; }; + F454F5031C4D6B9500CA0276 /* knob.png in Resources */ = {isa = PBXBuildFile; fileRef = F454F4FE1C4D6B9500CA0276 /* knob.png */; }; + F454F5041C4D6B9500CA0276 /* knob.png in Resources */ = {isa = PBXBuildFile; fileRef = F454F4FE1C4D6B9500CA0276 /* knob.png */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 4F3B0B42158B509A001B0CEF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4FF7B0F3156A831000E6CB12 /* AAXLibrary.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC045055464E500DB518D; + remoteInfo = AAXLibrary; + }; + 4F4AD1F51409A56A0068A6D4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F4AD1F11409A56A0068A6D4 /* base.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D2AAC046055464E500DB518D; + remoteInfo = base; + }; + 4F678B6C13E984B200A6A9BB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F8D4BC413E97664004F7633 /* lice.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC045055464E500DB518D; + remoteInfo = "lice_32&64_intel"; + }; + 4F789ECF16763E47009EF688 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 089C1669FE841209C02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4FB600121567CB0A0020189A; + remoteInfo = "AAX_32&64_intel"; + }; + 4F78DAF513B6436B0032E0F3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 089C1669FE841209C02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4FD16A0813B63081001D0217; + remoteInfo = "OSXAPP_32&64_intel"; + }; + 4F78DAF713B6436B0032E0F3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 089C1669FE841209C02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4F20EEC8132C69FE0030E34C; + remoteInfo = "VST_32&64_intel"; + }; + 4F78DAF913B6436B0032E0F3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 089C1669FE841209C02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4F3AE17812C0E5E2001FD7A4; + remoteInfo = "AU_32&64_intel"; + }; + 4F8B6722158B4EB2002FC25B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4FF7B0F3156A831000E6CB12 /* AAXLibrary.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D2AAC046055464E500DB518D; + remoteInfo = AAXLibrary; + }; + 4F8B6724158B4EB2002FC25B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4FF7B0F3156A831000E6CB12 /* AAXLibrary.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 4B00D06910E022FD00816F7B; + remoteInfo = AAXLibrary_UnitTest; + }; + 4F8B674E158B4F53002FC25B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F8B6747158B4F53002FC25B /* PluginLibrary.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B65B09B30860FB0800FE2E6A; + remoteInfo = "Plugin Library"; + }; + 4F8B6764158B4F67002FC25B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F8B6747158B4F53002FC25B /* PluginLibrary.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = B65B09B20860FB0800FE2E6A; + remoteInfo = "Plugin Library"; + }; + 4F8D4BCB13E97664004F7633 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F8D4BC413E97664004F7633 /* lice.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D2AAC046055464E500DB518D; + remoteInfo = lice; + }; + 4F8D4C1613E976A7004F7633 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F8D4BC413E97664004F7633 /* lice.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 4F8D4C1413E976A7004F7633; + remoteInfo = "lice copy"; + }; + 4F8D4C2C13E977CD004F7633 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F8D4BC413E97664004F7633 /* lice.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC045055464E500DB518D; + remoteInfo = "lice_32&64_intel"; + }; + 4F8D4C3713E9783A004F7633 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F8D4BC413E97664004F7633 /* lice.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 4F8D4BD513E976A7004F7633; + remoteInfo = lice_32_intel; + }; + 4F8D4C3913E97859004F7633 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F8D4BC413E97664004F7633 /* lice.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC045055464E500DB518D; + remoteInfo = "lice_32&64_intel"; + }; + 4F8D4C6213E97B3D004F7633 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 089C1669FE841209C02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4F7F5C4213E95EC8002918FD; + remoteInfo = RTAS_32_intel; + }; + 4F9828AE140A9EB700F3FCC1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F4AD1F11409A56A0068A6D4 /* base.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC045055464E500DB518D; + remoteInfo = base; + }; + 4F9828F2140A9ED500F3FCC1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F8D4BC413E97664004F7633 /* lice.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC045055464E500DB518D; + remoteInfo = "lice_32&64_intel"; + }; + 4F9828F7140A9F0200F3FCC1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 089C1669FE841209C02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4F9828AA140A9EB700F3FCC1; + remoteInfo = "VST3_32&64_intel"; + }; + 4FA708BE158B47F000BFC572 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F4AD1F11409A56A0068A6D4 /* base.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 4FA708BC158B47D200BFC572; + remoteInfo = base_32; + }; + 4FB6004F1567CB990020189A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4F8D4BC413E97664004F7633 /* lice.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D2AAC045055464E500DB518D; + remoteInfo = "lice_32&64_intel"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 089C1672FE841209C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 089C167FFE841241C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 4F017360154D4BFC0034BE1A /* AAX_CIPlugParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AAX_CIPlugParameters.cpp; path = ../../WDL/IPlug/AAX/AAX_CIPlugParameters.cpp; sourceTree = SOURCE_ROOT; }; + 4F017361154D4BFC0034BE1A /* AAX_CIPlugParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AAX_CIPlugParameters.h; path = ../../WDL/IPlug/AAX/AAX_CIPlugParameters.h; sourceTree = SOURCE_ROOT; }; + 4F1F1BE9135B1F60003A5BB2 /* wdlendian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wdlendian.h; path = ../../WDL/wdlendian.h; sourceTree = SOURCE_ROOT; }; + 4F20EF33132C69FE0030E34C /* AccessibleSpectrumAnalyser.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AccessibleSpectrumAnalyser.vst; sourceTree = BUILT_PRODUCTS_DIR; }; + 4F23BA1313B647E50097A67E /* AccessibleSpectrumAnalyser-AU-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "AccessibleSpectrumAnalyser-AU-Info.plist"; path = "resources/AccessibleSpectrumAnalyser-AU-Info.plist"; sourceTree = ""; }; + 4F23BA1413B647E50097A67E /* AccessibleSpectrumAnalyser-OSXAPP-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "AccessibleSpectrumAnalyser-OSXAPP-Info.plist"; path = "resources/AccessibleSpectrumAnalyser-OSXAPP-Info.plist"; sourceTree = ""; }; + 4F23BA1513B647E50097A67E /* AccessibleSpectrumAnalyser-VST2-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "AccessibleSpectrumAnalyser-VST2-Info.plist"; path = "resources/AccessibleSpectrumAnalyser-VST2-Info.plist"; sourceTree = ""; }; + 4F3E69041409746500C4D749 /* IPlugVST3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugVST3.cpp; path = ../../WDL/IPlug/IPlugVST3.cpp; sourceTree = SOURCE_ROOT; }; + 4F3E69051409746500C4D749 /* IPlugVST3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugVST3.h; path = ../../WDL/IPlug/IPlugVST3.h; sourceTree = SOURCE_ROOT; }; + 4F3E693A1409747300C4D749 /* AccessibleSpectrumAnalyser-VST3-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "AccessibleSpectrumAnalyser-VST3-Info.plist"; path = "resources/AccessibleSpectrumAnalyser-VST3-Info.plist"; sourceTree = ""; }; + 4F3EE94513B65A350097B791 /* IPlugOSDetect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugOSDetect.h; path = ../../WDL/IPlug/IPlugOSDetect.h; sourceTree = SOURCE_ROOT; }; + 4F4ACFF5140996A10068A6D4 /* memorystream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memorystream.cpp; sourceTree = ""; }; + 4F4ACFF6140996A10068A6D4 /* memorystream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memorystream.h; sourceTree = ""; }; + 4F4ACFF7140996A10068A6D4 /* pluginview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pluginview.cpp; sourceTree = ""; }; + 4F4ACFF8140996A10068A6D4 /* pluginview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pluginview.h; sourceTree = ""; }; + 4F4ACFFB140996A10068A6D4 /* macmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = macmain.cpp; sourceTree = ""; }; + 4F4ACFFC140996A10068A6D4 /* pluginfactoryvst3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pluginfactoryvst3.cpp; sourceTree = ""; }; + 4F4ACFFD140996A10068A6D4 /* pluginfactoryvst3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pluginfactoryvst3.h; sourceTree = ""; }; + 4F4ACFFF140996A10068A6D4 /* vstaudioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstaudioeffect.cpp; sourceTree = ""; }; + 4F4AD000140996A10068A6D4 /* vstaudioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstaudioeffect.h; sourceTree = ""; }; + 4F4AD001140996A10068A6D4 /* vstbus.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstbus.cpp; sourceTree = ""; }; + 4F4AD002140996A10068A6D4 /* vstbus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstbus.h; sourceTree = ""; }; + 4F4AD003140996A10068A6D4 /* vstcomponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstcomponent.cpp; sourceTree = ""; }; + 4F4AD004140996A10068A6D4 /* vstcomponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstcomponent.h; sourceTree = ""; }; + 4F4AD005140996A10068A6D4 /* vstcomponentbase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstcomponentbase.cpp; sourceTree = ""; }; + 4F4AD006140996A10068A6D4 /* vstcomponentbase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstcomponentbase.h; sourceTree = ""; }; + 4F4AD009140996A10068A6D4 /* vstinitiids.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstinitiids.cpp; sourceTree = ""; }; + 4F4AD00A140996A10068A6D4 /* vstnoteexpressiontypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstnoteexpressiontypes.cpp; sourceTree = ""; }; + 4F4AD00B140996A10068A6D4 /* vstnoteexpressiontypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstnoteexpressiontypes.h; sourceTree = ""; }; + 4F4AD00C140996A10068A6D4 /* vstparameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstparameters.cpp; sourceTree = ""; }; + 4F4AD00D140996A10068A6D4 /* vstparameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstparameters.h; sourceTree = ""; }; + 4F4AD00E140996A10068A6D4 /* vstpresetfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstpresetfile.cpp; sourceTree = ""; }; + 4F4AD00F140996A10068A6D4 /* vstpresetfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstpresetfile.h; sourceTree = ""; }; + 4F4AD010140996A10068A6D4 /* vstrepresentation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstrepresentation.cpp; sourceTree = ""; }; + 4F4AD011140996A10068A6D4 /* vstrepresentation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstrepresentation.h; sourceTree = ""; }; + 4F4AD012140996A10068A6D4 /* vstsinglecomponenteffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstsinglecomponenteffect.cpp; sourceTree = ""; }; + 4F4AD013140996A10068A6D4 /* vstsinglecomponenteffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstsinglecomponenteffect.h; sourceTree = ""; }; + 4F4AD016140996A10068A6D4 /* conststringtable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conststringtable.cpp; sourceTree = ""; }; + 4F4AD017140996A10068A6D4 /* conststringtable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conststringtable.h; sourceTree = ""; }; + 4F4AD018140996A10068A6D4 /* falignpop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = falignpop.h; sourceTree = ""; }; + 4F4AD019140996A10068A6D4 /* falignpush.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = falignpush.h; sourceTree = ""; }; + 4F4AD01A140996A10068A6D4 /* fplatform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fplatform.h; sourceTree = ""; }; + 4F4AD01B140996A10068A6D4 /* fstrdefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fstrdefs.h; sourceTree = ""; }; + 4F4AD01C140996A10068A6D4 /* ftypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ftypes.h; sourceTree = ""; }; + 4F4AD01D140996A10068A6D4 /* funknown.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = funknown.cpp; sourceTree = ""; }; + 4F4AD01E140996A10068A6D4 /* funknown.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = funknown.h; sourceTree = ""; }; + 4F4AD01F140996A10068A6D4 /* futils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = futils.h; sourceTree = ""; }; + 4F4AD020140996A10068A6D4 /* ibstream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ibstream.h; sourceTree = ""; }; + 4F4AD021140996A10068A6D4 /* icloneable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = icloneable.h; sourceTree = ""; }; + 4F4AD022140996A10068A6D4 /* ierrorcontext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ierrorcontext.h; sourceTree = ""; }; + 4F4AD023140996A10068A6D4 /* ipersistent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ipersistent.h; sourceTree = ""; }; + 4F4AD024140996A10068A6D4 /* ipluginbase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ipluginbase.h; sourceTree = ""; }; + 4F4AD025140996A10068A6D4 /* istringresult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = istringresult.h; sourceTree = ""; }; + 4F4AD026140996A10068A6D4 /* iupdatehandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iupdatehandler.h; sourceTree = ""; }; + 4F4AD027140996A10068A6D4 /* keycodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = keycodes.h; sourceTree = ""; }; + 4F4AD028140996A10068A6D4 /* ustring.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ustring.cpp; sourceTree = ""; }; + 4F4AD029140996A10068A6D4 /* ustring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ustring.h; sourceTree = ""; }; + 4F4AD02B140996A10068A6D4 /* iplugview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iplugview.h; sourceTree = ""; }; + 4F4AD02D140996A10068A6D4 /* ivstattributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstattributes.h; sourceTree = ""; }; + 4F4AD02E140996A10068A6D4 /* ivstaudioprocessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstaudioprocessor.h; sourceTree = ""; }; + 4F4AD02F140996A10068A6D4 /* ivstcomponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstcomponent.h; sourceTree = ""; }; + 4F4AD030140996A10068A6D4 /* ivstcontextmenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstcontextmenu.h; sourceTree = ""; }; + 4F4AD031140996A10068A6D4 /* ivsteditcontroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivsteditcontroller.h; sourceTree = ""; }; + 4F4AD032140996A10068A6D4 /* ivstevents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstevents.h; sourceTree = ""; }; + 4F4AD033140996A10068A6D4 /* ivsthostapplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivsthostapplication.h; sourceTree = ""; }; + 4F4AD034140996A10068A6D4 /* ivstmessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstmessage.h; sourceTree = ""; }; + 4F4AD035140996A10068A6D4 /* ivstmidicontrollers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstmidicontrollers.h; sourceTree = ""; }; + 4F4AD036140996A10068A6D4 /* ivstnoteexpression.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstnoteexpression.h; sourceTree = ""; }; + 4F4AD037140996A10068A6D4 /* ivstparameterchanges.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstparameterchanges.h; sourceTree = ""; }; + 4F4AD038140996A10068A6D4 /* ivstplugview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstplugview.h; sourceTree = ""; }; + 4F4AD039140996A10068A6D4 /* ivstprocesscontext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstprocesscontext.h; sourceTree = ""; }; + 4F4AD03A140996A10068A6D4 /* ivstrepresentation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstrepresentation.h; sourceTree = ""; }; + 4F4AD03B140996A10068A6D4 /* ivstunits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivstunits.h; sourceTree = ""; }; + 4F4AD03C140996A10068A6D4 /* vstpresetkeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstpresetkeys.h; sourceTree = ""; }; + 4F4AD03D140996A10068A6D4 /* vstpshpack4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstpshpack4.h; sourceTree = ""; }; + 4F4AD03E140996A10068A6D4 /* vsttypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vsttypes.h; sourceTree = ""; }; + 4F4AD1F11409A56A0068A6D4 /* base.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = base.xcodeproj; path = ../../VST3_SDK/base/mac/base.xcodeproj; sourceTree = SOURCE_ROOT; }; + 4F4CC3811549B8A700A9EA21 /* AccessibleSpectrumAnalyser-AAX-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "AccessibleSpectrumAnalyser-AAX-Info.plist"; path = "resources/AccessibleSpectrumAnalyser-AAX-Info.plist"; sourceTree = ""; }; + 4F4CC38A1549B91100A9EA21 /* AAX_Exports.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AAX_Exports.cpp; path = ../../AAX_SDK/Interfaces/AAX_Exports.cpp; sourceTree = SOURCE_ROOT; }; + 4F4CC38C1549B92900A9EA21 /* CommonDebugSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CommonDebugSettings.xcconfig; path = ../../AAX_SDK/ExamplePlugIns/Common/Mac/CommonDebugSettings.xcconfig; sourceTree = SOURCE_ROOT; }; + 4F4CC38D1549B92900A9EA21 /* CommonReleaseSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CommonReleaseSettings.xcconfig; path = ../../AAX_SDK/ExamplePlugIns/Common/Mac/CommonReleaseSettings.xcconfig; sourceTree = SOURCE_ROOT; }; + 4F4CC4251549BED600A9EA21 /* IPlugAAX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugAAX.cpp; path = ../../WDL/IPlug/IPlugAAX.cpp; sourceTree = SOURCE_ROOT; }; + 4F4CC4261549BED600A9EA21 /* IPlugAAX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugAAX.h; path = ../../WDL/IPlug/IPlugAAX.h; sourceTree = SOURCE_ROOT; }; + 4F4CC4401549C15500A9EA21 /* IPlugAAX_Describe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugAAX_Describe.cpp; path = ../../WDL/IPlug/AAX/IPlugAAX_Describe.cpp; sourceTree = SOURCE_ROOT; }; + 4F4F73791576739300C124E3 /* AAX_CIPlugTaperDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AAX_CIPlugTaperDelegate.h; path = ../../WDL/IPlug/AAX/AAX_CIPlugTaperDelegate.h; sourceTree = SOURCE_ROOT; }; + 4F78D62313B637200032E0F3 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; + 4F78D7CF13B637790032E0F3 /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + 4F78D89613B639100032E0F3 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = InfoPlist.strings; sourceTree = ""; }; + 4F78D89813B639100032E0F3 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = MainMenu.xib; sourceTree = ""; }; + 4F78D8BD13B63A4E0032E0F3 /* wdltypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wdltypes.h; path = ../../WDL/wdltypes.h; sourceTree = SOURCE_ROOT; }; + 4F78D8BF13B63A700032E0F3 /* RtAudio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RtAudio.cpp; sourceTree = ""; }; + 4F78D8C013B63A700032E0F3 /* RtAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RtAudio.h; sourceTree = ""; }; + 4F78D8C113B63A700032E0F3 /* RtError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RtError.h; sourceTree = ""; }; + 4F78D8C213B63A700032E0F3 /* RtMidi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RtMidi.cpp; sourceTree = ""; }; + 4F78D8C313B63A700032E0F3 /* RtMidi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RtMidi.h; sourceTree = ""; }; + 4F78D8D213B63B5D0032E0F3 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = ""; }; + 4F78D8D313B63B5D0032E0F3 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = ""; }; + 4F78D8E613B63BA40032E0F3 /* IPlug_include_in_plug_hdr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlug_include_in_plug_hdr.h; path = ../../WDL/IPlug/IPlug_include_in_plug_hdr.h; sourceTree = SOURCE_ROOT; }; + 4F78D8E813B63BA40032E0F3 /* IPlug_include_in_plug_src.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlug_include_in_plug_src.h; path = ../../WDL/IPlug/IPlug_include_in_plug_src.h; sourceTree = SOURCE_ROOT; }; + 4F78D8E913B63BA40032E0F3 /* IControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IControl.h; path = ../../WDL/IPlug/IControl.h; sourceTree = SOURCE_ROOT; }; + 4F78D8EA13B63BA40032E0F3 /* IKeyboardControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IKeyboardControl.h; path = ../../WDL/IPlug/IKeyboardControl.h; sourceTree = SOURCE_ROOT; }; + 4F78D8EB13B63BA40032E0F3 /* IPlugStandalone.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugStandalone.cpp; path = ../../WDL/IPlug/IPlugStandalone.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D8EC13B63BA40032E0F3 /* IPlugBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugBase.h; path = ../../WDL/IPlug/IPlugBase.h; sourceTree = SOURCE_ROOT; }; + 4F78D8ED13B63BA40032E0F3 /* IPlugBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugBase.cpp; path = ../../WDL/IPlug/IPlugBase.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D8EE13B63BA50032E0F3 /* IGraphicsMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IGraphicsMac.h; path = ../../WDL/IPlug/IGraphicsMac.h; sourceTree = SOURCE_ROOT; }; + 4F78D8EF13B63BA50032E0F3 /* IPlugStructs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugStructs.cpp; path = ../../WDL/IPlug/IPlugStructs.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D8F113B63BA50032E0F3 /* Containers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Containers.h; path = ../../WDL/IPlug/Containers.h; sourceTree = SOURCE_ROOT; }; + 4F78D8F213B63BA50032E0F3 /* Hosts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Hosts.h; path = ../../WDL/IPlug/Hosts.h; sourceTree = SOURCE_ROOT; }; + 4F78D8F313B63BA50032E0F3 /* Hosts.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Hosts.cpp; path = ../../WDL/IPlug/Hosts.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D8F513B63BA50032E0F3 /* IGraphicsMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = IGraphicsMac.mm; path = ../../WDL/IPlug/IGraphicsMac.mm; sourceTree = SOURCE_ROOT; }; + 4F78D8F613B63BA50032E0F3 /* IGraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IGraphics.cpp; path = ../../WDL/IPlug/IGraphics.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D8F713B63BA50032E0F3 /* IGraphicsCarbon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IGraphicsCarbon.cpp; path = ../../WDL/IPlug/IGraphicsCarbon.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D8F813B63BA50032E0F3 /* IGraphicsCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = IGraphicsCocoa.mm; path = ../../WDL/IPlug/IGraphicsCocoa.mm; sourceTree = SOURCE_ROOT; }; + 4F78D8F913B63BA50032E0F3 /* IGraphicsCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IGraphicsCocoa.h; path = ../../WDL/IPlug/IGraphicsCocoa.h; sourceTree = SOURCE_ROOT; }; + 4F78D8FA13B63BA50032E0F3 /* Log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Log.h; path = ../../WDL/IPlug/Log.h; sourceTree = SOURCE_ROOT; }; + 4F78D8FB13B63BA50032E0F3 /* Log.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Log.cpp; path = ../../WDL/IPlug/Log.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D8FC13B63BA50032E0F3 /* IPopupMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPopupMenu.h; path = ../../WDL/IPlug/IPopupMenu.h; sourceTree = SOURCE_ROOT; }; + 4F78D8FD13B63BA50032E0F3 /* IPopupMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPopupMenu.cpp; path = ../../WDL/IPlug/IPopupMenu.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D8FE13B63BA50032E0F3 /* IPlugStructs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugStructs.h; path = ../../WDL/IPlug/IPlugStructs.h; sourceTree = SOURCE_ROOT; }; + 4F78D90213B63BA50032E0F3 /* IPlug_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlug_Prefix.pch; path = ../../WDL/IPlug/IPlug_Prefix.pch; sourceTree = SOURCE_ROOT; }; + 4F78D90313B63BA50032E0F3 /* IParam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IParam.h; path = ../../WDL/IPlug/IParam.h; sourceTree = SOURCE_ROOT; }; + 4F78D90413B63BA50032E0F3 /* IParam.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IParam.cpp; path = ../../WDL/IPlug/IParam.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D90513B63BA50032E0F3 /* IMidiQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IMidiQueue.h; path = ../../WDL/IPlug/IMidiQueue.h; sourceTree = SOURCE_ROOT; }; + 4F78D90713B63BA50032E0F3 /* IGraphicsCarbon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IGraphicsCarbon.h; path = ../../WDL/IPlug/IGraphicsCarbon.h; sourceTree = SOURCE_ROOT; }; + 4F78D90813B63BA50032E0F3 /* IGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IGraphics.h; path = ../../WDL/IPlug/IGraphics.h; sourceTree = SOURCE_ROOT; }; + 4F78D90913B63BA50032E0F3 /* IControl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IControl.cpp; path = ../../WDL/IPlug/IControl.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D9EA13B63BE90032E0F3 /* IPlugStandalone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugStandalone.h; path = ../../WDL/IPlug/IPlugStandalone.h; sourceTree = SOURCE_ROOT; }; + 4F78D9EC13B63C6A0032E0F3 /* IPlugVST.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugVST.cpp; path = ../../WDL/IPlug/IPlugVST.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D9ED13B63C6A0032E0F3 /* IPlugVST.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugVST.h; path = ../../WDL/IPlug/IPlugVST.h; sourceTree = SOURCE_ROOT; }; + 4F78D9FB13B63CD90032E0F3 /* IPlugAU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugAU.h; path = ../../WDL/IPlug/IPlugAU.h; sourceTree = SOURCE_ROOT; }; + 4F78D9FC13B63CD90032E0F3 /* IPlugAU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugAU.cpp; path = ../../WDL/IPlug/IPlugAU.cpp; sourceTree = SOURCE_ROOT; }; + 4F78D9FD13B63CD90032E0F3 /* IPlugAU.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; name = IPlugAU.r; path = ../../WDL/IPlug/IPlugAU.r; sourceTree = SOURCE_ROOT; }; + 4F78D9FE13B63CD90032E0F3 /* IPlugAU_ViewFactory.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = IPlugAU_ViewFactory.mm; path = ../../WDL/IPlug/IPlugAU_ViewFactory.mm; sourceTree = SOURCE_ROOT; }; + 4F78DAEA13B642790032E0F3 /* IGraphicsWin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IGraphicsWin.cpp; path = ../../WDL/IPlug/IGraphicsWin.cpp; sourceTree = SOURCE_ROOT; }; + 4F78DAEB13B642790032E0F3 /* IGraphicsWin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IGraphicsWin.h; path = ../../WDL/IPlug/IGraphicsWin.h; sourceTree = SOURCE_ROOT; }; + 4F78DB5F13B6462B0032E0F3 /* AccessibleSpectrumAnalyser.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AccessibleSpectrumAnalyser.component; sourceTree = BUILT_PRODUCTS_DIR; }; + 4F79A34C146304CD00744AED /* IPlugProcessAS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugProcessAS.cpp; path = ../../WDL/IPlug/RTAS/IPlugProcessAS.cpp; sourceTree = ""; }; + 4F79A34D146304CD00744AED /* IPlugProcessAS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugProcessAS.h; path = ../../WDL/IPlug/RTAS/IPlugProcessAS.h; sourceTree = ""; }; + 4F7E20F71679316C00907FCF /* font-white.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "font-white.png"; path = "resources/img/font-white.png"; sourceTree = ""; }; + 4F7F5C0C13E95DDC002918FD /* AccessibleSpectrumAnalyser-RTAS-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "AccessibleSpectrumAnalyser-RTAS-Info.plist"; path = "resources/AccessibleSpectrumAnalyser-RTAS-Info.plist"; sourceTree = ""; }; + 4F7F5C6813E95EC8002918FD /* AccessibleSpectrumAnalyser.dpm */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AccessibleSpectrumAnalyser.dpm; sourceTree = BUILT_PRODUCTS_DIR; }; + 4F7F5C6F13E95FB2002918FD /* IPlugRTAS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugRTAS.cpp; path = ../../WDL/IPlug/IPlugRTAS.cpp; sourceTree = SOURCE_ROOT; }; + 4F7F5C7013E95FB2002918FD /* IPlugRTAS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugRTAS.h; path = ../../WDL/IPlug/IPlugRTAS.h; sourceTree = SOURCE_ROOT; }; + 4F7F5C9B13E9607A002918FD /* digicode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = digicode.h; path = ../../WDL/IPlug/RTAS/digicode.h; sourceTree = ""; }; + 4F7F5C9C13E9607A002918FD /* digicode1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = digicode1.cpp; path = ../../WDL/IPlug/RTAS/digicode1.cpp; sourceTree = ""; }; + 4F7F5C9D13E9607A002918FD /* digicode2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = digicode2.cpp; path = ../../WDL/IPlug/RTAS/digicode2.cpp; sourceTree = ""; }; + 4F7F5C9E13E9607A002918FD /* digicode3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = digicode3.cpp; path = ../../WDL/IPlug/RTAS/digicode3.cpp; sourceTree = ""; }; + 4F7F5C9F13E9607A002918FD /* EditorInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditorInterface.h; path = ../../WDL/IPlug/RTAS/EditorInterface.h; sourceTree = ""; }; + 4F7F5CA013E9607A002918FD /* IPlugCustomUI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugCustomUI.cpp; path = ../../WDL/IPlug/RTAS/IPlugCustomUI.cpp; sourceTree = ""; }; + 4F7F5CA113E9607A002918FD /* IPlugCustomUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugCustomUI.h; path = ../../WDL/IPlug/RTAS/IPlugCustomUI.h; sourceTree = ""; }; + 4F7F5CA213E9607A002918FD /* IPlugDigiView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugDigiView.h; path = ../../WDL/IPlug/RTAS/IPlugDigiView.h; sourceTree = ""; }; + 4F7F5CA313E9607A002918FD /* IPlugGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugGroup.cpp; path = ../../WDL/IPlug/RTAS/IPlugGroup.cpp; sourceTree = ""; }; + 4F7F5CA413E9607A002918FD /* IPlugGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugGroup.h; path = ../../WDL/IPlug/RTAS/IPlugGroup.h; sourceTree = ""; }; + 4F7F5CA513E9607A002918FD /* IPlugProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugProcess.cpp; path = ../../WDL/IPlug/RTAS/IPlugProcess.cpp; sourceTree = ""; }; + 4F7F5CA613E9607A002918FD /* IPlugProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugProcess.h; path = ../../WDL/IPlug/RTAS/IPlugProcess.h; sourceTree = ""; }; + 4F7F5CA713E9607A002918FD /* IPlugProcessRTAS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IPlugProcessRTAS.cpp; path = ../../WDL/IPlug/RTAS/IPlugProcessRTAS.cpp; sourceTree = ""; }; + 4F7F5CA813E9607A002918FD /* IPlugProcessRTAS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IPlugProcessRTAS.h; path = ../../WDL/IPlug/RTAS/IPlugProcessRTAS.h; sourceTree = ""; }; + 4F7F5CAA13E9607A002918FD /* ProcessInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProcessInterface.h; path = ../../WDL/IPlug/RTAS/ProcessInterface.h; sourceTree = ""; }; + 4F7F5CAB13E9607A002918FD /* CommonDebugSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CommonDebugSettings.xcconfig; path = ../../PT9_SDK/AlturaPorts/TDMPlugIns/common/Mac/CommonDebugSettings.xcconfig; sourceTree = SOURCE_ROOT; }; + 4F7F5CAC13E9607A002918FD /* CommonReleaseSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CommonReleaseSettings.xcconfig; path = ../../PT9_SDK/AlturaPorts/TDMPlugIns/common/Mac/CommonReleaseSettings.xcconfig; sourceTree = SOURCE_ROOT; }; + 4F7F5CF613E96564002918FD /* System.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = System.framework; path = /System/Library/Frameworks/System.framework; sourceTree = ""; }; + 4F7F5D2413E9681E002918FD /* IPlugRTAS.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; name = IPlugRTAS.r; path = ../../WDL/IPlug/RTAS/IPlugRTAS.r; sourceTree = ""; }; + 4F8B6747158B4F53002FC25B /* PluginLibrary.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = PluginLibrary.xcodeproj; path = ../../PT9_SDK/AlturaPorts/TDMPlugIns/PlugInLibrary/MacBuild/PluginLibrary.xcodeproj; sourceTree = SOURCE_ROOT; }; + 4F8D4BC413E97664004F7633 /* lice.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = lice.xcodeproj; path = ../../WDL/lice/lice.xcodeproj; sourceTree = SOURCE_ROOT; }; + 4F9828E0140A9EB700F3FCC1 /* AccessibleSpectrumAnalyser.vst3 */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AccessibleSpectrumAnalyser.vst3; sourceTree = BUILT_PRODUCTS_DIR; }; + 4FA88B901444E4C4006CB8DA /* dfx-au-utilities.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "dfx-au-utilities.c"; path = "../../WDL/IPlug/dfx/dfx-au-utilities.c"; sourceTree = SOURCE_ROOT; }; + 4FA88B911444E4C4006CB8DA /* dfx-au-utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "dfx-au-utilities.h"; path = "../../WDL/IPlug/dfx/dfx-au-utilities.h"; sourceTree = SOURCE_ROOT; }; + 4FB3624E13B648FE00DB6B76 /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = main.mm; path = app_wrapper/main.mm; sourceTree = ""; }; + 4FB600331567CB0A0020189A /* AccessibleSpectrumAnalyser.aaxplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AccessibleSpectrumAnalyser.aaxplugin; sourceTree = BUILT_PRODUCTS_DIR; }; + 4FCF15AF133124D1009A6277 /* AccessibleSpectrumAnalyser.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = AccessibleSpectrumAnalyser.xcconfig; sourceTree = ""; }; + 4FD16A0913B63081001D0217 /* AccessibleSpectrumAnalyser.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AccessibleSpectrumAnalyser.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 4FD16C9E13B6327C001D0217 /* app_resource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = app_resource.h; path = app_wrapper/app_resource.h; sourceTree = ""; }; + 4FD16C9F13B6327C001D0217 /* app_main.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = app_main.h; path = app_wrapper/app_main.h; sourceTree = ""; }; + 4FD16CA013B6327C001D0217 /* app_main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = app_main.cpp; path = app_wrapper/app_main.cpp; sourceTree = ""; }; + 4FD16CA113B6327C001D0217 /* app_dialog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = app_dialog.cpp; path = app_wrapper/app_dialog.cpp; sourceTree = ""; }; + 4FD16CFB13B63468001D0217 /* swell-appstub.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = "swell-appstub.mm"; path = "../../WDL/swell/swell-appstub.mm"; sourceTree = SOURCE_ROOT; }; + 4FD16D0213B63489001D0217 /* swell-menugen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "swell-menugen.h"; path = "../../WDL/swell/swell-menugen.h"; sourceTree = SOURCE_ROOT; }; + 4FD16D0313B63494001D0217 /* swell-dlggen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "swell-dlggen.h"; path = "../../WDL/swell/swell-dlggen.h"; sourceTree = SOURCE_ROOT; }; + 4FD16D0413B634AA001D0217 /* swell-dlg.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = "swell-dlg.mm"; path = "../../WDL/swell/swell-dlg.mm"; sourceTree = SOURCE_ROOT; }; + 4FD16D0B13B634BF001D0217 /* swell-gdi.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = "swell-gdi.mm"; path = "../../WDL/swell/swell-gdi.mm"; sourceTree = SOURCE_ROOT; }; + 4FD16D1513B634D2001D0217 /* swell-ini.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "swell-ini.cpp"; path = "../../WDL/swell/swell-ini.cpp"; sourceTree = SOURCE_ROOT; }; + 4FD16D1713B634E5001D0217 /* swell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = swell.h; path = ../../WDL/swell/swell.h; sourceTree = SOURCE_ROOT; }; + 4FD16D2213B6351C001D0217 /* swell-functions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "swell-functions.h"; path = "../../WDL/swell/swell-functions.h"; sourceTree = SOURCE_ROOT; }; + 4FD16D2B13B6353C001D0217 /* swell-internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "swell-internal.h"; path = "../../WDL/swell/swell-internal.h"; sourceTree = SOURCE_ROOT; }; + 4FD16D3013B6355A001D0217 /* swell-types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "swell-types.h"; path = "../../WDL/swell/swell-types.h"; sourceTree = SOURCE_ROOT; }; + 4FD16D3913B63582001D0217 /* swell-kb.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = "swell-kb.mm"; path = "../../WDL/swell/swell-kb.mm"; sourceTree = SOURCE_ROOT; }; + 4FD16D3B13B6358C001D0217 /* swell-miscdlg.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = "swell-miscdlg.mm"; path = "../../WDL/swell/swell-miscdlg.mm"; sourceTree = SOURCE_ROOT; }; + 4FD16D3D13B63595001D0217 /* swell-menu.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = "swell-menu.mm"; path = "../../WDL/swell/swell-menu.mm"; sourceTree = SOURCE_ROOT; }; + 4FD16D3F13B635A0001D0217 /* swell-misc.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = "swell-misc.mm"; path = "../../WDL/swell/swell-misc.mm"; sourceTree = SOURCE_ROOT; }; + 4FD16D4113B635AB001D0217 /* swell-wnd.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = "swell-wnd.mm"; path = "../../WDL/swell/swell-wnd.mm"; sourceTree = SOURCE_ROOT; }; + 4FD16D4313B635B2001D0217 /* swell.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = swell.cpp; path = ../../WDL/swell/swell.cpp; sourceTree = SOURCE_ROOT; }; + 4FD16D4513B635C8001D0217 /* swellappmain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = swellappmain.h; path = ../../WDL/swell/swellappmain.h; sourceTree = SOURCE_ROOT; }; + 4FD16D4613B635C8001D0217 /* swellappmain.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = swellappmain.mm; path = ../../WDL/swell/swellappmain.mm; sourceTree = SOURCE_ROOT; }; + 4FD290A8137C34D700CEBE7E /* AccessibleSpectrumAnalyser.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = AccessibleSpectrumAnalyser.icns; path = resources/AccessibleSpectrumAnalyser.icns; sourceTree = ""; }; + 4FDA440513F3E4F2000B4551 /* IBitmapMonoText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IBitmapMonoText.cpp; path = ../../WDL/IPlug/IBitmapMonoText.cpp; sourceTree = SOURCE_ROOT; }; + 4FDA440613F3E4F2000B4551 /* IBitmapMonoText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IBitmapMonoText.h; path = ../../WDL/IPlug/IBitmapMonoText.h; sourceTree = SOURCE_ROOT; }; + 4FF016F4134E14E2001447BA /* mutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mutex.h; path = ../../WDL/mutex.h; sourceTree = SOURCE_ROOT; }; + 4FF016F5134E14E2001447BA /* ptrlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ptrlist.h; path = ../../WDL/ptrlist.h; sourceTree = SOURCE_ROOT; }; + 4FF016F6134E14E2001447BA /* wdlstring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wdlstring.h; path = ../../WDL/wdlstring.h; sourceTree = SOURCE_ROOT; }; + 4FF01719134E153A001447BA /* heapbuf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = heapbuf.h; path = ../../WDL/heapbuf.h; sourceTree = SOURCE_ROOT; }; + 4FF7B0D4156A825000E6CB12 /* common.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = common.xcconfig; path = ../../common.xcconfig; sourceTree = SOURCE_ROOT; }; + 4FF7B0F3156A831000E6CB12 /* AAXLibrary.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = AAXLibrary.xcodeproj; path = ../../AAX_SDK/Libs/AAXLibrary/MacBuild/AAXLibrary.xcodeproj; sourceTree = SOURCE_ROOT; }; + 526F9C010D7DC7D700562CF8 /* AccessibleSpectrumAnalyser.exp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.exports; path = AccessibleSpectrumAnalyser.exp; sourceTree = ""; }; + 52C4DB180D0E51270007A920 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; + 52E41CB90D14C2A900A0943B /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; + 52E41CC40D14C2B000A0943B /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; + 52E41D7E0D14C2D100A0943B /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; }; + 52E41D920D14C2D600A0943B /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; + 52FBBED00D0CF139001C8B8A /* AccessibleSpectrumAnalyser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibleSpectrumAnalyser.cpp; sourceTree = ""; tabWidth = 2; usesTabs = 0; }; + 52FBBED20D0CF13D001C8B8A /* AccessibleSpectrumAnalyser.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; path = AccessibleSpectrumAnalyser.h; sourceTree = ""; tabWidth = 2; usesTabs = 0; }; + 52FBBED30D0CF143001C8B8A /* resource.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; path = resource.h; sourceTree = ""; tabWidth = 2; usesTabs = 0; }; + D2F7E65807B2D6F200F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; + F40B6F1D1C4FD08000DE0457 /* ADSR.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ADSR.h; path = stk/include/ADSR.h; sourceTree = ""; }; + F40B6F1E1C4FD08000DE0457 /* Envelope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Envelope.h; path = stk/include/Envelope.h; sourceTree = ""; }; + F40B6F1F1C4FD08000DE0457 /* Generator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Generator.h; path = stk/include/Generator.h; sourceTree = ""; }; + F40B6F201C4FD08000DE0457 /* SineWave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SineWave.h; path = stk/include/SineWave.h; sourceTree = ""; }; + F40B6F211C4FD08000DE0457 /* Stk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Stk.h; path = stk/include/Stk.h; sourceTree = ""; }; + F40B6F2C1C4FD09000DE0457 /* ADSR.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ADSR.cpp; path = stk/src/ADSR.cpp; sourceTree = ""; }; + F40B6F2D1C4FD09000DE0457 /* Envelope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Envelope.cpp; path = stk/src/Envelope.cpp; sourceTree = ""; }; + F40B6F2E1C4FD09000DE0457 /* SineWave.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SineWave.cpp; path = stk/src/SineWave.cpp; sourceTree = ""; }; + F40B6F2F1C4FD09000DE0457 /* Stk.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Stk.cpp; path = stk/src/Stk.cpp; sourceTree = ""; }; + F453FF671C47F6F00028FF6C /* FreqView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FreqView.cpp; sourceTree = ""; }; + F453FF681C47F6F00028FF6C /* FreqView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FreqView.h; sourceTree = ""; }; + F453FF731C47F72D0028FF6C /* fft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fft.c; path = ../../WDL/fft.c; sourceTree = ""; }; + F453FF741C47F72D0028FF6C /* fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fft.h; path = ../../WDL/fft.h; sourceTree = ""; }; + F454F4FB1C4D6AD000CA0276 /* Controls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Controls.h; sourceTree = ""; }; + F454F4FE1C4D6B9500CA0276 /* knob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = knob.png; path = resources/img/knob.png; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4F20EF2C132C69FE0030E34C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F8D4C2F13E97806004F7633 /* lice.a in Frameworks */, + 4F20EF2D132C69FE0030E34C /* Cocoa.framework in Frameworks */, + 4F20EF2E132C69FE0030E34C /* Carbon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F3AE1D312C0E5E2001FD7A4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F8D4C2813E9778D004F7633 /* lice.a in Frameworks */, + 4F3AE1D412C0E5E2001FD7A4 /* Carbon.framework in Frameworks */, + 4F3AE1D512C0E5E2001FD7A4 /* Cocoa.framework in Frameworks */, + 4F3AE1D612C0E5E2001FD7A4 /* AudioToolbox.framework in Frameworks */, + 4F3AE1D712C0E5E2001FD7A4 /* AudioUnit.framework in Frameworks */, + 4F3AE1D812C0E5E2001FD7A4 /* CoreServices.framework in Frameworks */, + 4F3AE1D912C0E5E2001FD7A4 /* CoreAudio.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F7F5C5F13E95EC8002918FD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F8B6766158B4F74002FC25B /* libPluginLibrary.a in Frameworks */, + 4F8D4C2913E97794004F7633 /* lice32.a in Frameworks */, + 4F7F5C6213E95EC8002918FD /* Cocoa.framework in Frameworks */, + 4F7F5C6313E95EC8002918FD /* Carbon.framework in Frameworks */, + 4F7F5CF713E96564002918FD /* System.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F9828D7140A9EB700F3FCC1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F9828F6140A9EEE00F3FCC1 /* lice.a in Frameworks */, + 4F9828D8140A9EB700F3FCC1 /* libbase.a in Frameworks */, + 4F9828DA140A9EB700F3FCC1 /* Cocoa.framework in Frameworks */, + 4F9828DB140A9EB700F3FCC1 /* Carbon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4FB6002A1567CB0A0020189A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F3B0B44158B50A5001B0CEF /* libAAXLibrary.a in Frameworks */, + 4FB600551567CBF90020189A /* lice.a in Frameworks */, + 4FB6002C1567CB0A0020189A /* Cocoa.framework in Frameworks */, + 4FB6002D1567CB0A0020189A /* Carbon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4FD16A0713B63081001D0217 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F8D4BCD13E97671004F7633 /* lice.a in Frameworks */, + 4F78D87513B637E50032E0F3 /* Carbon.framework in Frameworks */, + 4F78D7D013B637790032E0F3 /* CoreMIDI.framework in Frameworks */, + 4F78D70B13B637340032E0F3 /* CoreFoundation.framework in Frameworks */, + 4F78D86E13B637A20032E0F3 /* CoreData.framework in Frameworks */, + 4F78D87013B637A20032E0F3 /* CoreAudio.framework in Frameworks */, + 4F78D87113B637A20032E0F3 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 089C166AFE841209C02AAC07 /* IPlugExample */ = { + isa = PBXGroup; + children = ( + F40B6F1C1C4FD06600DE0457 /* stk */, + F454F4FB1C4D6AD000CA0276 /* Controls.h */, + F453FF731C47F72D0028FF6C /* fft.c */, + F453FF741C47F72D0028FF6C /* fft.h */, + F453FF671C47F6F00028FF6C /* FreqView.cpp */, + F453FF681C47F6F00028FF6C /* FreqView.h */, + 52FBBED30D0CF143001C8B8A /* resource.h */, + 52FBBED20D0CF13D001C8B8A /* AccessibleSpectrumAnalyser.h */, + 52FBBED00D0CF139001C8B8A /* AccessibleSpectrumAnalyser.cpp */, + 089C167CFE841241C02AAC07 /* Resources */, + 32C88E010371C26100C91783 /* Other Sources */, + 089C1671FE841209C02AAC07 /* Frameworks and Libraries */, + 19C28FB8FE9D52D311CA2CBB /* Products */, + ); + name = IPlugExample; + sourceTree = ""; + }; + 089C1671FE841209C02AAC07 /* Frameworks and Libraries */ = { + isa = PBXGroup; + children = ( + 4FF01613134E0BCD001447BA /* WDL */, + 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */, + ); + name = "Frameworks and Libraries"; + sourceTree = ""; + }; + 089C167CFE841241C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 4FD16A0213B6303B001D0217 /* img */, + 4F23BA1413B647E50097A67E /* AccessibleSpectrumAnalyser-OSXAPP-Info.plist */, + 4F23BA1513B647E50097A67E /* AccessibleSpectrumAnalyser-VST2-Info.plist */, + 4F3E693A1409747300C4D749 /* AccessibleSpectrumAnalyser-VST3-Info.plist */, + 4F23BA1313B647E50097A67E /* AccessibleSpectrumAnalyser-AU-Info.plist */, + 4F7F5C0C13E95DDC002918FD /* AccessibleSpectrumAnalyser-RTAS-Info.plist */, + 4F4CC3811549B8A700A9EA21 /* AccessibleSpectrumAnalyser-AAX-Info.plist */, + 4FD290A8137C34D700CEBE7E /* AccessibleSpectrumAnalyser.icns */, + ); + name = Resources; + sourceTree = ""; + }; + 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + 4F78DB2113B644E80032E0F3 /* App & Plugins */, + 4F3E695B1409774100C4D749 /* VST3 Plugin */, + 4F78DB2213B645060032E0F3 /* AU Plugin */, + 4F7F5CEB13E9651F002918FD /* RTAS Plugin */, + 4F05224015656DAD00AE0D2E /* AAX Plugin */, + 4F78DB2013B644BD0032E0F3 /* App */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 19C28FB8FE9D52D311CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 4FD16A0913B63081001D0217 /* AccessibleSpectrumAnalyser.app */, + 4F20EF33132C69FE0030E34C /* AccessibleSpectrumAnalyser.vst */, + 4F9828E0140A9EB700F3FCC1 /* AccessibleSpectrumAnalyser.vst3 */, + 4F78DB5F13B6462B0032E0F3 /* AccessibleSpectrumAnalyser.component */, + 4F7F5C6813E95EC8002918FD /* AccessibleSpectrumAnalyser.dpm */, + 4FB600331567CB0A0020189A /* AccessibleSpectrumAnalyser.aaxplugin */, + ); + name = Products; + sourceTree = ""; + }; + 32C88E010371C26100C91783 /* Other Sources */ = { + isa = PBXGroup; + children = ( + 4FD16C9D13B6327C001D0217 /* OSX App Wrapper */, + 526F9C010D7DC7D700562CF8 /* AccessibleSpectrumAnalyser.exp */, + 4FCF15AF133124D1009A6277 /* AccessibleSpectrumAnalyser.xcconfig */, + 4FF7B0D4156A825000E6CB12 /* common.xcconfig */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 4F05224015656DAD00AE0D2E /* AAX Plugin */ = { + isa = PBXGroup; + children = ( + 4FF7B0F3156A831000E6CB12 /* AAXLibrary.xcodeproj */, + ); + name = "AAX Plugin"; + sourceTree = ""; + }; + 4F24EE731567A674006B889A /* RTAS_SDK */ = { + isa = PBXGroup; + children = ( + 4F7F5CAB13E9607A002918FD /* CommonDebugSettings.xcconfig */, + 4F7F5CAC13E9607A002918FD /* CommonReleaseSettings.xcconfig */, + 4F7F5C9B13E9607A002918FD /* digicode.h */, + 4F7F5C9C13E9607A002918FD /* digicode1.cpp */, + 4F7F5C9D13E9607A002918FD /* digicode2.cpp */, + 4F7F5C9E13E9607A002918FD /* digicode3.cpp */, + ); + name = RTAS_SDK; + sourceTree = ""; + }; + 4F24EE751567A6A6006B889A /* AAX_SDK */ = { + isa = PBXGroup; + children = ( + 4F4CC38C1549B92900A9EA21 /* CommonDebugSettings.xcconfig */, + 4F4CC38D1549B92900A9EA21 /* CommonReleaseSettings.xcconfig */, + 4F4CC38A1549B91100A9EA21 /* AAX_Exports.cpp */, + ); + name = AAX_SDK; + sourceTree = ""; + }; + 4F3E69001409743C00C4D749 /* VST3 */ = { + isa = PBXGroup; + children = ( + 4F3E69041409746500C4D749 /* IPlugVST3.cpp */, + 4F3E69051409746500C4D749 /* IPlugVST3.h */, + ); + name = VST3; + sourceTree = ""; + }; + 4F3E695B1409774100C4D749 /* VST3 Plugin */ = { + isa = PBXGroup; + children = ( + 4F4AD1F11409A56A0068A6D4 /* base.xcodeproj */, + ); + name = "VST3 Plugin"; + sourceTree = ""; + }; + 4F3E696A1409778C00C4D749 /* VST3_SDK */ = { + isa = PBXGroup; + children = ( + 4F4ACFF2140996A10068A6D4 /* public.sdk */, + 4F4AD014140996A10068A6D4 /* pluginterfaces */, + ); + name = VST3_SDK; + sourceTree = ""; + }; + 4F4ACFF2140996A10068A6D4 /* public.sdk */ = { + isa = PBXGroup; + children = ( + 4F4ACFF3140996A10068A6D4 /* source */, + ); + name = public.sdk; + path = ../../VST3_SDK/public.sdk; + sourceTree = SOURCE_ROOT; + }; + 4F4ACFF3140996A10068A6D4 /* source */ = { + isa = PBXGroup; + children = ( + 4F4ACFF4140996A10068A6D4 /* common */, + 4F4ACFF9140996A10068A6D4 /* main */, + 4F4ACFFE140996A10068A6D4 /* vst */, + ); + path = source; + sourceTree = ""; + }; + 4F4ACFF4140996A10068A6D4 /* common */ = { + isa = PBXGroup; + children = ( + 4F4ACFF5140996A10068A6D4 /* memorystream.cpp */, + 4F4ACFF6140996A10068A6D4 /* memorystream.h */, + 4F4ACFF7140996A10068A6D4 /* pluginview.cpp */, + 4F4ACFF8140996A10068A6D4 /* pluginview.h */, + ); + path = common; + sourceTree = ""; + }; + 4F4ACFF9140996A10068A6D4 /* main */ = { + isa = PBXGroup; + children = ( + 4F4ACFFB140996A10068A6D4 /* macmain.cpp */, + 4F4ACFFC140996A10068A6D4 /* pluginfactoryvst3.cpp */, + 4F4ACFFD140996A10068A6D4 /* pluginfactoryvst3.h */, + ); + path = main; + sourceTree = ""; + }; + 4F4ACFFE140996A10068A6D4 /* vst */ = { + isa = PBXGroup; + children = ( + 4F4ACFFF140996A10068A6D4 /* vstaudioeffect.cpp */, + 4F4AD000140996A10068A6D4 /* vstaudioeffect.h */, + 4F4AD001140996A10068A6D4 /* vstbus.cpp */, + 4F4AD002140996A10068A6D4 /* vstbus.h */, + 4F4AD003140996A10068A6D4 /* vstcomponent.cpp */, + 4F4AD004140996A10068A6D4 /* vstcomponent.h */, + 4F4AD005140996A10068A6D4 /* vstcomponentbase.cpp */, + 4F4AD006140996A10068A6D4 /* vstcomponentbase.h */, + 4F4AD009140996A10068A6D4 /* vstinitiids.cpp */, + 4F4AD00A140996A10068A6D4 /* vstnoteexpressiontypes.cpp */, + 4F4AD00B140996A10068A6D4 /* vstnoteexpressiontypes.h */, + 4F4AD00C140996A10068A6D4 /* vstparameters.cpp */, + 4F4AD00D140996A10068A6D4 /* vstparameters.h */, + 4F4AD00E140996A10068A6D4 /* vstpresetfile.cpp */, + 4F4AD00F140996A10068A6D4 /* vstpresetfile.h */, + 4F4AD010140996A10068A6D4 /* vstrepresentation.cpp */, + 4F4AD011140996A10068A6D4 /* vstrepresentation.h */, + 4F4AD012140996A10068A6D4 /* vstsinglecomponenteffect.cpp */, + 4F4AD013140996A10068A6D4 /* vstsinglecomponenteffect.h */, + ); + path = vst; + sourceTree = ""; + }; + 4F4AD014140996A10068A6D4 /* pluginterfaces */ = { + isa = PBXGroup; + children = ( + 4F4AD015140996A10068A6D4 /* base */, + 4F4AD02A140996A10068A6D4 /* gui */, + 4F4AD02C140996A10068A6D4 /* vst */, + ); + name = pluginterfaces; + path = ../../VST3_SDK/pluginterfaces; + sourceTree = SOURCE_ROOT; + }; + 4F4AD015140996A10068A6D4 /* base */ = { + isa = PBXGroup; + children = ( + 4F4AD016140996A10068A6D4 /* conststringtable.cpp */, + 4F4AD017140996A10068A6D4 /* conststringtable.h */, + 4F4AD018140996A10068A6D4 /* falignpop.h */, + 4F4AD019140996A10068A6D4 /* falignpush.h */, + 4F4AD01A140996A10068A6D4 /* fplatform.h */, + 4F4AD01B140996A10068A6D4 /* fstrdefs.h */, + 4F4AD01C140996A10068A6D4 /* ftypes.h */, + 4F4AD01D140996A10068A6D4 /* funknown.cpp */, + 4F4AD01E140996A10068A6D4 /* funknown.h */, + 4F4AD01F140996A10068A6D4 /* futils.h */, + 4F4AD020140996A10068A6D4 /* ibstream.h */, + 4F4AD021140996A10068A6D4 /* icloneable.h */, + 4F4AD022140996A10068A6D4 /* ierrorcontext.h */, + 4F4AD023140996A10068A6D4 /* ipersistent.h */, + 4F4AD024140996A10068A6D4 /* ipluginbase.h */, + 4F4AD025140996A10068A6D4 /* istringresult.h */, + 4F4AD026140996A10068A6D4 /* iupdatehandler.h */, + 4F4AD027140996A10068A6D4 /* keycodes.h */, + 4F4AD028140996A10068A6D4 /* ustring.cpp */, + 4F4AD029140996A10068A6D4 /* ustring.h */, + ); + path = base; + sourceTree = ""; + }; + 4F4AD02A140996A10068A6D4 /* gui */ = { + isa = PBXGroup; + children = ( + 4F4AD02B140996A10068A6D4 /* iplugview.h */, + ); + path = gui; + sourceTree = ""; + }; + 4F4AD02C140996A10068A6D4 /* vst */ = { + isa = PBXGroup; + children = ( + 4F4AD02D140996A10068A6D4 /* ivstattributes.h */, + 4F4AD02E140996A10068A6D4 /* ivstaudioprocessor.h */, + 4F4AD02F140996A10068A6D4 /* ivstcomponent.h */, + 4F4AD030140996A10068A6D4 /* ivstcontextmenu.h */, + 4F4AD031140996A10068A6D4 /* ivsteditcontroller.h */, + 4F4AD032140996A10068A6D4 /* ivstevents.h */, + 4F4AD033140996A10068A6D4 /* ivsthostapplication.h */, + 4F4AD034140996A10068A6D4 /* ivstmessage.h */, + 4F4AD035140996A10068A6D4 /* ivstmidicontrollers.h */, + 4F4AD036140996A10068A6D4 /* ivstnoteexpression.h */, + 4F4AD037140996A10068A6D4 /* ivstparameterchanges.h */, + 4F4AD038140996A10068A6D4 /* ivstplugview.h */, + 4F4AD039140996A10068A6D4 /* ivstprocesscontext.h */, + 4F4AD03A140996A10068A6D4 /* ivstrepresentation.h */, + 4F4AD03B140996A10068A6D4 /* ivstunits.h */, + 4F4AD03C140996A10068A6D4 /* vstpresetkeys.h */, + 4F4AD03D140996A10068A6D4 /* vstpshpack4.h */, + 4F4AD03E140996A10068A6D4 /* vsttypes.h */, + ); + path = vst; + sourceTree = ""; + }; + 4F4AD1F21409A56A0068A6D4 /* Products */ = { + isa = PBXGroup; + children = ( + 4F4AD1F61409A56A0068A6D4 /* libbase.a */, + 4FA708BF158B47F000BFC572 /* libbase32.a */, + ); + name = Products; + sourceTree = ""; + }; + 4F4CC4241549BEBF00A9EA21 /* AAX */ = { + isa = PBXGroup; + children = ( + 4F4CC4251549BED600A9EA21 /* IPlugAAX.cpp */, + 4F4CC4261549BED600A9EA21 /* IPlugAAX.h */, + 4F017360154D4BFC0034BE1A /* AAX_CIPlugParameters.cpp */, + 4F017361154D4BFC0034BE1A /* AAX_CIPlugParameters.h */, + 4F4F73791576739300C124E3 /* AAX_CIPlugTaperDelegate.h */, + 4F4CC4401549C15500A9EA21 /* IPlugAAX_Describe.cpp */, + ); + name = AAX; + sourceTree = ""; + }; + 4F75900813B7A91A00DA399F /* MACGUI */ = { + isa = PBXGroup; + children = ( + 4F78D8EE13B63BA50032E0F3 /* IGraphicsMac.h */, + 4F78D8F513B63BA50032E0F3 /* IGraphicsMac.mm */, + 4F78D90713B63BA50032E0F3 /* IGraphicsCarbon.h */, + 4F78D8F713B63BA50032E0F3 /* IGraphicsCarbon.cpp */, + 4F78D8F813B63BA50032E0F3 /* IGraphicsCocoa.mm */, + 4F78D8F913B63BA50032E0F3 /* IGraphicsCocoa.h */, + ); + name = MACGUI; + sourceTree = ""; + }; + 4F78D89413B639100032E0F3 /* English.lproj */ = { + isa = PBXGroup; + children = ( + 4F78D89513B639100032E0F3 /* InfoPlist.strings */, + 4F78D89713B639100032E0F3 /* MainMenu.xib */, + ); + name = English.lproj; + path = resources/English.lproj; + sourceTree = ""; + }; + 4F78D8BE13B63A700032E0F3 /* rtaudiomidi */ = { + isa = PBXGroup; + children = ( + 4F78D8BF13B63A700032E0F3 /* RtAudio.cpp */, + 4F78D8C013B63A700032E0F3 /* RtAudio.h */, + 4F78D8C113B63A700032E0F3 /* RtError.h */, + 4F78D8C213B63A700032E0F3 /* RtMidi.cpp */, + 4F78D8C313B63A700032E0F3 /* RtMidi.h */, + ); + name = rtaudiomidi; + path = ../../WDL/rtaudiomidi; + sourceTree = SOURCE_ROOT; + }; + 4F78D8D013B63B390032E0F3 /* IPlug */ = { + isa = PBXGroup; + children = ( + 4F4CC4241549BEBF00A9EA21 /* AAX */, + 4F7F5C7213E95FB8002918FD /* RTAS */, + 4F78D9FA13B63CA10032E0F3 /* APP */, + 4F78D9F913B63C920032E0F3 /* AU */, + 4F3E69001409743C00C4D749 /* VST3 */, + 4F78D9F713B63C710032E0F3 /* VST */, + 4F75900813B7A91A00DA399F /* MACGUI */, + 4F78DAEC13B6427D0032E0F3 /* WINGUI */, + 4F3EE94513B65A350097B791 /* IPlugOSDetect.h */, + 4F78D90813B63BA50032E0F3 /* IGraphics.h */, + 4F78D8F613B63BA50032E0F3 /* IGraphics.cpp */, + 4FDA440513F3E4F2000B4551 /* IBitmapMonoText.cpp */, + 4FDA440613F3E4F2000B4551 /* IBitmapMonoText.h */, + 4F78D8E613B63BA40032E0F3 /* IPlug_include_in_plug_hdr.h */, + 4F78D8E813B63BA40032E0F3 /* IPlug_include_in_plug_src.h */, + 4F78D8EC13B63BA40032E0F3 /* IPlugBase.h */, + 4F78D8ED13B63BA40032E0F3 /* IPlugBase.cpp */, + 4F78D8EF13B63BA50032E0F3 /* IPlugStructs.cpp */, + 4F78D8FE13B63BA50032E0F3 /* IPlugStructs.h */, + 4F78D90313B63BA50032E0F3 /* IParam.h */, + 4F78D90413B63BA50032E0F3 /* IParam.cpp */, + 4F78D8E913B63BA40032E0F3 /* IControl.h */, + 4F78D90913B63BA50032E0F3 /* IControl.cpp */, + 4F78D8EA13B63BA40032E0F3 /* IKeyboardControl.h */, + 4F78D8F113B63BA50032E0F3 /* Containers.h */, + 4F78D8F213B63BA50032E0F3 /* Hosts.h */, + 4F78D8F313B63BA50032E0F3 /* Hosts.cpp */, + 4F78D8FC13B63BA50032E0F3 /* IPopupMenu.h */, + 4F78D8FD13B63BA50032E0F3 /* IPopupMenu.cpp */, + 4F78D90213B63BA50032E0F3 /* IPlug_Prefix.pch */, + 4F78D90513B63BA50032E0F3 /* IMidiQueue.h */, + 4F78D8FA13B63BA50032E0F3 /* Log.h */, + 4F78D8FB13B63BA50032E0F3 /* Log.cpp */, + ); + name = IPlug; + sourceTree = ""; + }; + 4F78D8D113B63B5D0032E0F3 /* VST2_SDK */ = { + isa = PBXGroup; + children = ( + 4F78D8D213B63B5D0032E0F3 /* aeffect.h */, + 4F78D8D313B63B5D0032E0F3 /* aeffectx.h */, + ); + name = VST2_SDK; + path = ../../VST_SDK; + sourceTree = SOURCE_ROOT; + }; + 4F78D9F713B63C710032E0F3 /* VST */ = { + isa = PBXGroup; + children = ( + 4F78D9EC13B63C6A0032E0F3 /* IPlugVST.cpp */, + 4F78D9ED13B63C6A0032E0F3 /* IPlugVST.h */, + ); + name = VST; + sourceTree = ""; + }; + 4F78D9F913B63C920032E0F3 /* AU */ = { + isa = PBXGroup; + children = ( + 4FA88B901444E4C4006CB8DA /* dfx-au-utilities.c */, + 4FA88B911444E4C4006CB8DA /* dfx-au-utilities.h */, + 4F78D9FB13B63CD90032E0F3 /* IPlugAU.h */, + 4F78D9FC13B63CD90032E0F3 /* IPlugAU.cpp */, + 4F78D9FD13B63CD90032E0F3 /* IPlugAU.r */, + 4F78D9FE13B63CD90032E0F3 /* IPlugAU_ViewFactory.mm */, + ); + name = AU; + sourceTree = ""; + }; + 4F78D9FA13B63CA10032E0F3 /* APP */ = { + isa = PBXGroup; + children = ( + 4F78D9EA13B63BE90032E0F3 /* IPlugStandalone.h */, + 4F78D8EB13B63BA40032E0F3 /* IPlugStandalone.cpp */, + ); + name = APP; + sourceTree = ""; + }; + 4F78DAE913B6423C0032E0F3 /* 3rd Party */ = { + isa = PBXGroup; + children = ( + 4F24EE751567A6A6006B889A /* AAX_SDK */, + 4F24EE731567A674006B889A /* RTAS_SDK */, + 4F3E696A1409778C00C4D749 /* VST3_SDK */, + 4F78D8D113B63B5D0032E0F3 /* VST2_SDK */, + 4F78D8BE13B63A700032E0F3 /* rtaudiomidi */, + ); + name = "3rd Party"; + sourceTree = ""; + }; + 4F78DAEC13B6427D0032E0F3 /* WINGUI */ = { + isa = PBXGroup; + children = ( + 4F78DAEA13B642790032E0F3 /* IGraphicsWin.cpp */, + 4F78DAEB13B642790032E0F3 /* IGraphicsWin.h */, + ); + comments = "Not actually included in builds"; + name = WINGUI; + sourceTree = ""; + }; + 4F78DB2013B644BD0032E0F3 /* App */ = { + isa = PBXGroup; + children = ( + 089C167FFE841241C02AAC07 /* AppKit.framework */, + 4F78D7CF13B637790032E0F3 /* CoreMIDI.framework */, + 52E41CB90D14C2A900A0943B /* CoreAudio.framework */, + ); + name = App; + sourceTree = ""; + }; + 4F78DB2113B644E80032E0F3 /* App & Plugins */ = { + isa = PBXGroup; + children = ( + 4F8D4BC413E97664004F7633 /* lice.xcodeproj */, + 4F78D62313B637200032E0F3 /* CoreFoundation.framework */, + D2F7E65807B2D6F200F64583 /* CoreData.framework */, + 089C1672FE841209C02AAC07 /* Foundation.framework */, + 52E41CC40D14C2B000A0943B /* CoreServices.framework */, + 52C4DB180D0E51270007A920 /* Carbon.framework */, + 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */, + ); + name = "App & Plugins"; + sourceTree = ""; + }; + 4F78DB2213B645060032E0F3 /* AU Plugin */ = { + isa = PBXGroup; + children = ( + 52E41D920D14C2D600A0943B /* AudioToolbox.framework */, + 52E41D7E0D14C2D100A0943B /* AudioUnit.framework */, + ); + name = "AU Plugin"; + sourceTree = ""; + }; + 4F7F5C7213E95FB8002918FD /* RTAS */ = { + isa = PBXGroup; + children = ( + 4F7F5C6F13E95FB2002918FD /* IPlugRTAS.cpp */, + 4F7F5C7013E95FB2002918FD /* IPlugRTAS.h */, + 4F7F5D2413E9681E002918FD /* IPlugRTAS.r */, + 4F7F5C9F13E9607A002918FD /* EditorInterface.h */, + 4F7F5CA013E9607A002918FD /* IPlugCustomUI.cpp */, + 4F7F5CA113E9607A002918FD /* IPlugCustomUI.h */, + 4F7F5CA213E9607A002918FD /* IPlugDigiView.h */, + 4F7F5CA313E9607A002918FD /* IPlugGroup.cpp */, + 4F7F5CA413E9607A002918FD /* IPlugGroup.h */, + 4F7F5CA513E9607A002918FD /* IPlugProcess.cpp */, + 4F7F5CA613E9607A002918FD /* IPlugProcess.h */, + 4F79A34C146304CD00744AED /* IPlugProcessAS.cpp */, + 4F79A34D146304CD00744AED /* IPlugProcessAS.h */, + 4F7F5CA713E9607A002918FD /* IPlugProcessRTAS.cpp */, + 4F7F5CA813E9607A002918FD /* IPlugProcessRTAS.h */, + 4F7F5CAA13E9607A002918FD /* ProcessInterface.h */, + ); + name = RTAS; + sourceTree = ""; + }; + 4F7F5CEB13E9651F002918FD /* RTAS Plugin */ = { + isa = PBXGroup; + children = ( + 4F8B6747158B4F53002FC25B /* PluginLibrary.xcodeproj */, + 4F7F5CF613E96564002918FD /* System.framework */, + ); + name = "RTAS Plugin"; + sourceTree = ""; + }; + 4F8B671E158B4EB2002FC25B /* Products */ = { + isa = PBXGroup; + children = ( + 4F8B6723158B4EB2002FC25B /* libAAXLibrary.a */, + 4F8B6725158B4EB2002FC25B /* AAXLibrary_UnitTest */, + ); + name = Products; + sourceTree = ""; + }; + 4F8B6748158B4F53002FC25B /* Products */ = { + isa = PBXGroup; + children = ( + 4F8B674F158B4F53002FC25B /* libPluginLibrary.a */, + ); + name = Products; + sourceTree = ""; + }; + 4F8D4BC513E97664004F7633 /* Products */ = { + isa = PBXGroup; + children = ( + 4F8D4BCC13E97664004F7633 /* lice.a */, + 4F8D4C1713E976A7004F7633 /* lice32.a */, + ); + name = Products; + sourceTree = ""; + }; + 4FD16A0213B6303B001D0217 /* img */ = { + isa = PBXGroup; + children = ( + F454F4FE1C4D6B9500CA0276 /* knob.png */, + 4F7E20F71679316C00907FCF /* font-white.png */, + ); + name = img; + sourceTree = ""; + }; + 4FD16C9D13B6327C001D0217 /* OSX App Wrapper */ = { + isa = PBXGroup; + children = ( + 4FB3624E13B648FE00DB6B76 /* main.mm */, + 4F78D89413B639100032E0F3 /* English.lproj */, + 4FD16C9E13B6327C001D0217 /* app_resource.h */, + 4FD16C9F13B6327C001D0217 /* app_main.h */, + 4FD16CA013B6327C001D0217 /* app_main.cpp */, + 4FD16CA113B6327C001D0217 /* app_dialog.cpp */, + ); + name = "OSX App Wrapper"; + sourceTree = ""; + }; + 4FD16CF713B6343B001D0217 /* SWELL */ = { + isa = PBXGroup; + children = ( + 4FD16D3513B63566001D0217 /* Used by App */, + 4FD16D1C13B634FB001D0217 /* Used by App & Plugins */, + ); + name = SWELL; + sourceTree = ""; + }; + 4FD16D1C13B634FB001D0217 /* Used by App & Plugins */ = { + isa = PBXGroup; + children = ( + 4FD16D2B13B6353C001D0217 /* swell-internal.h */, + 4FD16D3013B6355A001D0217 /* swell-types.h */, + 4FD16D2213B6351C001D0217 /* swell-functions.h */, + 4FD16D0B13B634BF001D0217 /* swell-gdi.mm */, + 4FD16D1713B634E5001D0217 /* swell.h */, + ); + name = "Used by App & Plugins"; + sourceTree = ""; + }; + 4FD16D3513B63566001D0217 /* Used by App */ = { + isa = PBXGroup; + children = ( + 4FD16D0213B63489001D0217 /* swell-menugen.h */, + 4FD16D0313B63494001D0217 /* swell-dlggen.h */, + 4FD16D4513B635C8001D0217 /* swellappmain.h */, + 4FD16D4613B635C8001D0217 /* swellappmain.mm */, + 4FD16CFB13B63468001D0217 /* swell-appstub.mm */, + 4FD16D0413B634AA001D0217 /* swell-dlg.mm */, + 4FD16D1513B634D2001D0217 /* swell-ini.cpp */, + 4FD16D3913B63582001D0217 /* swell-kb.mm */, + 4FD16D3B13B6358C001D0217 /* swell-miscdlg.mm */, + 4FD16D3D13B63595001D0217 /* swell-menu.mm */, + 4FD16D3F13B635A0001D0217 /* swell-misc.mm */, + 4FD16D4113B635AB001D0217 /* swell-wnd.mm */, + 4FD16D4313B635B2001D0217 /* swell.cpp */, + ); + name = "Used by App"; + sourceTree = ""; + }; + 4FF01613134E0BCD001447BA /* WDL */ = { + isa = PBXGroup; + children = ( + 4F78DAE913B6423C0032E0F3 /* 3rd Party */, + 4F78D8D013B63B390032E0F3 /* IPlug */, + 4FD16CF713B6343B001D0217 /* SWELL */, + 4F1F1BE9135B1F60003A5BB2 /* wdlendian.h */, + 4FF01719134E153A001447BA /* heapbuf.h */, + 4FF016F4134E14E2001447BA /* mutex.h */, + 4FF016F5134E14E2001447BA /* ptrlist.h */, + 4FF016F6134E14E2001447BA /* wdlstring.h */, + 4F78D8BD13B63A4E0032E0F3 /* wdltypes.h */, + ); + name = WDL; + sourceTree = ""; + }; + F40B6F1C1C4FD06600DE0457 /* stk */ = { + isa = PBXGroup; + children = ( + F40B6F2C1C4FD09000DE0457 /* ADSR.cpp */, + F40B6F2D1C4FD09000DE0457 /* Envelope.cpp */, + F40B6F2E1C4FD09000DE0457 /* SineWave.cpp */, + F40B6F2F1C4FD09000DE0457 /* Stk.cpp */, + F40B6F1D1C4FD08000DE0457 /* ADSR.h */, + F40B6F1E1C4FD08000DE0457 /* Envelope.h */, + F40B6F1F1C4FD08000DE0457 /* Generator.h */, + F40B6F201C4FD08000DE0457 /* SineWave.h */, + F40B6F211C4FD08000DE0457 /* Stk.h */, + ); + name = stk; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 4F3AE17912C0E5E2001FD7A4 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F3AE17B12C0E5E2001FD7A4 /* resource.h in Headers */, + 4F3AE17C12C0E5E2001FD7A4 /* AccessibleSpectrumAnalyser.h in Headers */, + 4FF016F7134E14E2001447BA /* mutex.h in Headers */, + 4FF016F8134E14E2001447BA /* ptrlist.h in Headers */, + 4FF016F9134E14E2001447BA /* wdlstring.h in Headers */, + 4FD16D1913B634E5001D0217 /* swell.h in Headers */, + 4FD16D2413B6351C001D0217 /* swell-functions.h in Headers */, + 4FD16D2D13B6353C001D0217 /* swell-internal.h in Headers */, + F40B6F271C4FD08000DE0457 /* Generator.h in Headers */, + F40B6F2B1C4FD08000DE0457 /* Stk.h in Headers */, + 4FD16D3213B6355A001D0217 /* swell-types.h in Headers */, + 4F78D8D913B63B5D0032E0F3 /* aeffect.h in Headers */, + 4F78D8DA13B63B5D0032E0F3 /* aeffectx.h in Headers */, + 4FF0171A134E153A001447BA /* heapbuf.h in Headers */, + 4F1F1BEA135B1F60003A5BB2 /* wdlendian.h in Headers */, + 4F78D93E13B63BA50032E0F3 /* IPlug_include_in_plug_hdr.h in Headers */, + 4F78D94013B63BA50032E0F3 /* IPlug_include_in_plug_src.h in Headers */, + F40B6F291C4FD08000DE0457 /* SineWave.h in Headers */, + 4F78D94113B63BA50032E0F3 /* IControl.h in Headers */, + 4F78D94213B63BA50032E0F3 /* IKeyboardControl.h in Headers */, + 4F78D94413B63BA50032E0F3 /* IPlugBase.h in Headers */, + 4F78D94613B63BA50032E0F3 /* IGraphicsMac.h in Headers */, + 4F78D94913B63BA50032E0F3 /* Containers.h in Headers */, + 4F78D94A13B63BA50032E0F3 /* Hosts.h in Headers */, + 4F78D95113B63BA50032E0F3 /* IGraphicsCocoa.h in Headers */, + 4F78D95213B63BA50032E0F3 /* Log.h in Headers */, + 4F78D95413B63BA50032E0F3 /* IPopupMenu.h in Headers */, + F453FF701C47F6F00028FF6C /* FreqView.h in Headers */, + 4F78D95613B63BA50032E0F3 /* IPlugStructs.h in Headers */, + F40B6F231C4FD08000DE0457 /* ADSR.h in Headers */, + 4F78D95A13B63BA50032E0F3 /* IPlug_Prefix.pch in Headers */, + F453FF7C1C47F72D0028FF6C /* fft.h in Headers */, + 4F78D95B13B63BA50032E0F3 /* IParam.h in Headers */, + F40B6F251C4FD08000DE0457 /* Envelope.h in Headers */, + 4F78D95D13B63BA50032E0F3 /* IMidiQueue.h in Headers */, + 4F78D95F13B63BA50032E0F3 /* IGraphicsCarbon.h in Headers */, + 4F78D96013B63BA50032E0F3 /* IGraphics.h in Headers */, + 4F78DA0713B63CD90032E0F3 /* IPlugAU.h in Headers */, + F454F4FD1C4D6AD000CA0276 /* Controls.h in Headers */, + 4F3EE94913B65A350097B791 /* IPlugOSDetect.h in Headers */, + 4FDA440913F3E4F2000B4551 /* IBitmapMonoText.h in Headers */, + 4FA88B931444E4C4006CB8DA /* dfx-au-utilities.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F78DAAC13B640450032E0F3 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F78DABB13B640620032E0F3 /* IPlugStandalone.h in Headers */, + 4F78DAB813B640530032E0F3 /* RtAudio.h in Headers */, + 4F78DAB913B640530032E0F3 /* RtError.h in Headers */, + 4F78DABA13B640530032E0F3 /* RtMidi.h in Headers */, + F40B6F281C4FD08000DE0457 /* SineWave.h in Headers */, + 4F78DAB113B640470032E0F3 /* swell-menugen.h in Headers */, + 4F78DAB213B640470032E0F3 /* swell-dlggen.h in Headers */, + 4F78DAB313B640470032E0F3 /* swellappmain.h in Headers */, + 4F78DA7713B640050032E0F3 /* resource.h in Headers */, + 4F78DA7813B640050032E0F3 /* AccessibleSpectrumAnalyser.h in Headers */, + F453FF6F1C47F6F00028FF6C /* FreqView.h in Headers */, + F40B6F2A1C4FD08000DE0457 /* Stk.h in Headers */, + 4F78DA8A13B640050032E0F3 /* mutex.h in Headers */, + 4F78DA8B13B640050032E0F3 /* ptrlist.h in Headers */, + 4F78DA8C13B640050032E0F3 /* wdlstring.h in Headers */, + 4F78DA8D13B640050032E0F3 /* heapbuf.h in Headers */, + 4F78DA8E13B640050032E0F3 /* wdlendian.h in Headers */, + 4F78DA8F13B640050032E0F3 /* swell.h in Headers */, + F454F4FC1C4D6AD000CA0276 /* Controls.h in Headers */, + 4F78DA9013B640050032E0F3 /* swell-functions.h in Headers */, + 4F78DA9113B640050032E0F3 /* swell-internal.h in Headers */, + 4F78DA9213B640050032E0F3 /* swell-types.h in Headers */, + 4F78DA9313B640050032E0F3 /* aeffect.h in Headers */, + 4F78DA9413B640050032E0F3 /* aeffectx.h in Headers */, + 4F78DA9513B640050032E0F3 /* IPlug_include_in_plug_hdr.h in Headers */, + F40B6F261C4FD08000DE0457 /* Generator.h in Headers */, + 4F78DA9613B640050032E0F3 /* IPlug_include_in_plug_src.h in Headers */, + 4F78DA9713B640050032E0F3 /* IControl.h in Headers */, + 4F78DA9813B640050032E0F3 /* IKeyboardControl.h in Headers */, + 4F78DA9913B640050032E0F3 /* IPlugBase.h in Headers */, + F453FF7B1C47F72D0028FF6C /* fft.h in Headers */, + F40B6F221C4FD08000DE0457 /* ADSR.h in Headers */, + 4F78DA9A13B640050032E0F3 /* IGraphicsMac.h in Headers */, + 4F78DA9C13B640050032E0F3 /* Containers.h in Headers */, + 4F78DA9D13B640050032E0F3 /* Hosts.h in Headers */, + 4F78DA9E13B640050032E0F3 /* IGraphicsCocoa.h in Headers */, + 4F78DA9F13B640050032E0F3 /* Log.h in Headers */, + F40B6F241C4FD08000DE0457 /* Envelope.h in Headers */, + 4F78DAA013B640050032E0F3 /* IPopupMenu.h in Headers */, + 4F78DAA113B640050032E0F3 /* IPlugStructs.h in Headers */, + 4F78DAA213B640050032E0F3 /* IPlug_Prefix.pch in Headers */, + 4F78DAA313B640050032E0F3 /* IParam.h in Headers */, + 4F78DAA413B640050032E0F3 /* IMidiQueue.h in Headers */, + 4F78DAA513B640050032E0F3 /* IGraphicsCarbon.h in Headers */, + 4F78DAA613B640050032E0F3 /* IGraphics.h in Headers */, + 4F3EE94613B65A350097B791 /* IPlugOSDetect.h in Headers */, + 4FDA440F13F3E4F2000B4551 /* IBitmapMonoText.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 4F20EEC8132C69FE0030E34C /* VST2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4F20EF2F132C69FE0030E34C /* Build configuration list for PBXNativeTarget "VST2" */; + buildPhases = ( + 4F20EEC9132C69FE0030E34C /* Resources */, + 4F20EECA132C69FE0030E34C /* Sources */, + 4F20EF2C132C69FE0030E34C /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 4F8D4C2D13E977CD004F7633 /* PBXTargetDependency */, + ); + name = VST2; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = IPlugExample; + productReference = 4F20EF33132C69FE0030E34C /* AccessibleSpectrumAnalyser.vst */; + productType = "com.apple.product-type.bundle"; + }; + 4F3AE17812C0E5E2001FD7A4 /* AU */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4F3AE1DC12C0E5E2001FD7A4 /* Build configuration list for PBXNativeTarget "AU" */; + buildPhases = ( + 4F3AE17912C0E5E2001FD7A4 /* Headers */, + 4F3AE1A212C0E5E2001FD7A4 /* Sources */, + 4F25BECE12C61F47005D51F7 /* Resources */, + 4F3AE1D312C0E5E2001FD7A4 /* Frameworks */, + 4F3AE1DA12C0E5E2001FD7A4 /* Rez */, + 4F744D4C14005ADA002FAD90 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 4F8D4C3A13E97859004F7633 /* PBXTargetDependency */, + ); + name = AU; + productName = IPlugExampleAU; + productReference = 4F78DB5F13B6462B0032E0F3 /* AccessibleSpectrumAnalyser.component */; + productType = "com.apple.product-type.bundle"; + }; + 4F7F5C4213E95EC8002918FD /* RTAS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4F7F5C6413E95EC8002918FD /* Build configuration list for PBXNativeTarget "RTAS" */; + buildPhases = ( + 4F7F5C4813E95EC8002918FD /* Sources */, + 4F7F5C5F13E95EC8002918FD /* Frameworks */, + 4F7F5D3113E9688A002918FD /* Rez */, + 4F7F5C4313E95EC8002918FD /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 4F8D4C3813E9783A004F7633 /* PBXTargetDependency */, + 4F8B6765158B4F67002FC25B /* PBXTargetDependency */, + ); + name = RTAS; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = IPlugExample; + productReference = 4F7F5C6813E95EC8002918FD /* AccessibleSpectrumAnalyser.dpm */; + productType = "com.apple.product-type.bundle"; + }; + 4F9828AA140A9EB700F3FCC1 /* VST3 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4F9828DC140A9EB700F3FCC1 /* Build configuration list for PBXNativeTarget "VST3" */; + buildPhases = ( + 4F9828AF140A9EB700F3FCC1 /* Resources */, + 4F9828B5140A9EB700F3FCC1 /* Sources */, + 4F9828D7140A9EB700F3FCC1 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 4F9828AD140A9EB700F3FCC1 /* PBXTargetDependency */, + 4F9828F3140A9ED500F3FCC1 /* PBXTargetDependency */, + ); + name = VST3; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = IPlugExample; + productReference = 4F9828E0140A9EB700F3FCC1 /* AccessibleSpectrumAnalyser.vst3 */; + productType = "com.apple.product-type.bundle"; + }; + 4FB600121567CB0A0020189A /* AAX */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4FB6002F1567CB0A0020189A /* Build configuration list for PBXNativeTarget "AAX" */; + buildPhases = ( + 4FB600151567CB0A0020189A /* Resources */, + 4FB600171567CB0A0020189A /* Sources */, + 4FB6002A1567CB0A0020189A /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 4FB600501567CB990020189A /* PBXTargetDependency */, + 4F3B0B43158B509A001B0CEF /* PBXTargetDependency */, + ); + name = AAX; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = IPlugExample; + productReference = 4FB600331567CB0A0020189A /* AccessibleSpectrumAnalyser.aaxplugin */; + productType = "com.apple.product-type.bundle"; + }; + 4FD16A0813B63081001D0217 /* APP */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4FD16A0F13B63082001D0217 /* Build configuration list for PBXNativeTarget "APP" */; + buildPhases = ( + 4F78DAAC13B640450032E0F3 /* Headers */, + 4FD16A0513B63081001D0217 /* Resources */, + 4FD16A0613B63081001D0217 /* Sources */, + 4FD16A0713B63081001D0217 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 4F678B6D13E984B200A6A9BB /* PBXTargetDependency */, + ); + name = APP; + productName = "OSXAPP_32&64_intel"; + productReference = 4FD16A0913B63081001D0217 /* AccessibleSpectrumAnalyser.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 089C1669FE841209C02AAC07 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 0620; + }; + buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "AccessibleSpectrumAnalyser" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 089C166AFE841209C02AAC07 /* IPlugExample */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 4F8B671E158B4EB2002FC25B /* Products */; + ProjectRef = 4FF7B0F3156A831000E6CB12 /* AAXLibrary.xcodeproj */; + }, + { + ProductGroup = 4F4AD1F21409A56A0068A6D4 /* Products */; + ProjectRef = 4F4AD1F11409A56A0068A6D4 /* base.xcodeproj */; + }, + { + ProductGroup = 4F8D4BC513E97664004F7633 /* Products */; + ProjectRef = 4F8D4BC413E97664004F7633 /* lice.xcodeproj */; + }, + { + ProductGroup = 4F8B6748158B4F53002FC25B /* Products */; + ProjectRef = 4F8B6747158B4F53002FC25B /* PluginLibrary.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 4F78DAF113B643600032E0F3 /* All */, + 4FD16A0813B63081001D0217 /* APP */, + 4F20EEC8132C69FE0030E34C /* VST2 */, + 4F9828AA140A9EB700F3FCC1 /* VST3 */, + 4F3AE17812C0E5E2001FD7A4 /* AU */, + 4F7F5C4213E95EC8002918FD /* RTAS */, + 4FB600121567CB0A0020189A /* AAX */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 4F4AD1F61409A56A0068A6D4 /* libbase.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libbase.a; + remoteRef = 4F4AD1F51409A56A0068A6D4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4F8B6723158B4EB2002FC25B /* libAAXLibrary.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libAAXLibrary.a; + remoteRef = 4F8B6722158B4EB2002FC25B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4F8B6725158B4EB2002FC25B /* AAXLibrary_UnitTest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = AAXLibrary_UnitTest; + remoteRef = 4F8B6724158B4EB2002FC25B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4F8B674F158B4F53002FC25B /* libPluginLibrary.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libPluginLibrary.a; + remoteRef = 4F8B674E158B4F53002FC25B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4F8D4BCC13E97664004F7633 /* lice.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = lice.a; + remoteRef = 4F8D4BCB13E97664004F7633 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4F8D4C1713E976A7004F7633 /* lice32.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = lice32.a; + remoteRef = 4F8D4C1613E976A7004F7633 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 4FA708BF158B47F000BFC572 /* libbase32.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libbase32.a; + remoteRef = 4FA708BE158B47F000BFC572 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 4F20EEC9132C69FE0030E34C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F7E21011679316C00907FCF /* font-white.png in Resources */, + F454F5001C4D6B9500CA0276 /* knob.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F25BECE12C61F47005D51F7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F7E20FD1679316C00907FCF /* font-white.png in Resources */, + F454F5021C4D6B9500CA0276 /* knob.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F7F5C4313E95EC8002918FD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F7E20F91679316C00907FCF /* font-white.png in Resources */, + F454F5031C4D6B9500CA0276 /* knob.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F9828AF140A9EB700F3FCC1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F7E20FF1679316C00907FCF /* font-white.png in Resources */, + F454F5011C4D6B9500CA0276 /* knob.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4FB600151567CB0A0020189A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F7E20FB1679316C00907FCF /* font-white.png in Resources */, + F454F5041C4D6B9500CA0276 /* knob.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4FD16A0513B63081001D0217 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F78D88613B6382B0032E0F3 /* AccessibleSpectrumAnalyser.icns in Resources */, + 4F78D89913B639100032E0F3 /* InfoPlist.strings in Resources */, + 4F78D89A13B639100032E0F3 /* MainMenu.xib in Resources */, + 4F7E21031679316C00907FCF /* font-white.png in Resources */, + F454F4FF1C4D6B9500CA0276 /* knob.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXRezBuildPhase section */ + 4F3AE1DA12C0E5E2001FD7A4 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F78DA0913B63CD90032E0F3 /* IPlugAU.r in Rez */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F7F5D3113E9688A002918FD /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F7F5D2C13E9686E002918FD /* IPlugRTAS.r in Rez */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 4F744D4C14005ADA002FAD90 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + comments = "reset audiounit caches"; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ -f \"$HOME/Library/Application Support/AU Lab/com.apple.audio.aulab_componentcache.plist\" ]\n then\n\trm \"$HOME/Library/Application Support/AU Lab/com.apple.audio.aulab_componentcache.plist\"\nfi\n\nif [ -f \"$HOME/Library/Caches/com.apple.audiounits.cache\" ]\n then\n\trm \"$HOME/Library/Caches/com.apple.audiounits.cache\"\nfi"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4F20EECA132C69FE0030E34C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F20EECB132C69FE0030E34C /* AccessibleSpectrumAnalyser.cpp in Sources */, + 4FD16D1213B634BF001D0217 /* swell-gdi.mm in Sources */, + 4F78D9BB13B63BA50032E0F3 /* IPlugBase.cpp in Sources */, + F40B6F431C4FD09000DE0457 /* Stk.cpp in Sources */, + F40B6F3D1C4FD09000DE0457 /* SineWave.cpp in Sources */, + 4F78D9BC13B63BA50032E0F3 /* IPlugStructs.cpp in Sources */, + 4F78D9BD13B63BA50032E0F3 /* Hosts.cpp in Sources */, + 4F78D9BF13B63BA50032E0F3 /* IGraphicsMac.mm in Sources */, + F453FF6A1C47F6F00028FF6C /* FreqView.cpp in Sources */, + F40B6F371C4FD09000DE0457 /* Envelope.cpp in Sources */, + 4F78D9C013B63BA50032E0F3 /* IGraphics.cpp in Sources */, + 4F78D9C113B63BA50032E0F3 /* IGraphicsCarbon.cpp in Sources */, + F40B6F311C4FD09000DE0457 /* ADSR.cpp in Sources */, + 4F78D9C213B63BA50032E0F3 /* IGraphicsCocoa.mm in Sources */, + 4F78D9C313B63BA50032E0F3 /* Log.cpp in Sources */, + F453FF761C47F72D0028FF6C /* fft.c in Sources */, + 4F78D9C413B63BA50032E0F3 /* IPopupMenu.cpp in Sources */, + 4F78D9C813B63BA50032E0F3 /* IParam.cpp in Sources */, + 4F78D9C913B63BA50032E0F3 /* IControl.cpp in Sources */, + 4F78D9F313B63C6A0032E0F3 /* IPlugVST.cpp in Sources */, + 4FDA440C13F3E4F2000B4551 /* IBitmapMonoText.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F3AE1A212C0E5E2001FD7A4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F453FF6C1C47F6F00028FF6C /* FreqView.cpp in Sources */, + 4F3AE1A312C0E5E2001FD7A4 /* AccessibleSpectrumAnalyser.cpp in Sources */, + F453FF781C47F72D0028FF6C /* fft.c in Sources */, + 4FD16D0E13B634BF001D0217 /* swell-gdi.mm in Sources */, + 4F78D94513B63BA50032E0F3 /* IPlugBase.cpp in Sources */, + 4F78D94713B63BA50032E0F3 /* IPlugStructs.cpp in Sources */, + 4F78D94B13B63BA50032E0F3 /* Hosts.cpp in Sources */, + 4F78D94D13B63BA50032E0F3 /* IGraphicsMac.mm in Sources */, + F40B6F391C4FD09000DE0457 /* Envelope.cpp in Sources */, + 4F78D94E13B63BA50032E0F3 /* IGraphics.cpp in Sources */, + 4F78D94F13B63BA50032E0F3 /* IGraphicsCarbon.cpp in Sources */, + 4F78D95013B63BA50032E0F3 /* IGraphicsCocoa.mm in Sources */, + F40B6F451C4FD09000DE0457 /* Stk.cpp in Sources */, + 4F78D95313B63BA50032E0F3 /* Log.cpp in Sources */, + 4F78D95513B63BA50032E0F3 /* IPopupMenu.cpp in Sources */, + 4F78D95C13B63BA50032E0F3 /* IParam.cpp in Sources */, + 4F78D96113B63BA50032E0F3 /* IControl.cpp in Sources */, + 4F78DA0813B63CD90032E0F3 /* IPlugAU.cpp in Sources */, + 4F78DA0A13B63CD90032E0F3 /* IPlugAU_ViewFactory.mm in Sources */, + 4FDA440813F3E4F2000B4551 /* IBitmapMonoText.cpp in Sources */, + F40B6F3F1C4FD09000DE0457 /* SineWave.cpp in Sources */, + 4F296BDA1678E6C800C0F5C2 /* dfx-au-utilities.c in Sources */, + F40B6F331C4FD09000DE0457 /* ADSR.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F7F5C4813E95EC8002918FD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F7F5C4913E95EC8002918FD /* AccessibleSpectrumAnalyser.cpp in Sources */, + 4F7F5C5013E95EC8002918FD /* swell-gdi.mm in Sources */, + 4F7F5C5113E95EC8002918FD /* IPlugBase.cpp in Sources */, + 4F7F5C5213E95EC8002918FD /* IPlugStructs.cpp in Sources */, + 4F7F5C5313E95EC8002918FD /* Hosts.cpp in Sources */, + 4F7F5C5413E95EC8002918FD /* IGraphicsMac.mm in Sources */, + F453FF6D1C47F6F00028FF6C /* FreqView.cpp in Sources */, + 4F7F5C5513E95EC8002918FD /* IGraphics.cpp in Sources */, + F40B6F3A1C4FD09000DE0457 /* Envelope.cpp in Sources */, + 4F7F5C5613E95EC8002918FD /* IGraphicsCarbon.cpp in Sources */, + 4F7F5C5713E95EC8002918FD /* IGraphicsCocoa.mm in Sources */, + 4F7F5C5813E95EC8002918FD /* Log.cpp in Sources */, + 4F7F5C5913E95EC8002918FD /* IPopupMenu.cpp in Sources */, + 4F7F5C5A13E95EC8002918FD /* IParam.cpp in Sources */, + 4F7F5C5B13E95EC8002918FD /* IControl.cpp in Sources */, + 4F7F5C7113E95FB2002918FD /* IPlugRTAS.cpp in Sources */, + F40B6F341C4FD09000DE0457 /* ADSR.cpp in Sources */, + 4F7F5CAD13E9607A002918FD /* digicode1.cpp in Sources */, + 4F7F5CAE13E9607A002918FD /* digicode2.cpp in Sources */, + 4F7F5CAF13E9607A002918FD /* digicode3.cpp in Sources */, + 4F7F5CB013E9607A002918FD /* IPlugCustomUI.cpp in Sources */, + F40B6F461C4FD09000DE0457 /* Stk.cpp in Sources */, + F453FF791C47F72D0028FF6C /* fft.c in Sources */, + 4F7F5CB113E9607A002918FD /* IPlugGroup.cpp in Sources */, + 4F7F5CB213E9607A002918FD /* IPlugProcess.cpp in Sources */, + 4F7F5CB313E9607A002918FD /* IPlugProcessRTAS.cpp in Sources */, + 4FDA440713F3E4F2000B4551 /* IBitmapMonoText.cpp in Sources */, + 4F79A34E146304CD00744AED /* IPlugProcessAS.cpp in Sources */, + F40B6F401C4FD09000DE0457 /* SineWave.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4F9828B5140A9EB700F3FCC1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F9828B6140A9EB700F3FCC1 /* AccessibleSpectrumAnalyser.cpp in Sources */, + 4F9828B7140A9EB700F3FCC1 /* swell-gdi.mm in Sources */, + 4F9828B8140A9EB700F3FCC1 /* IPlugBase.cpp in Sources */, + 4F9828B9140A9EB700F3FCC1 /* IPlugStructs.cpp in Sources */, + 4F9828BA140A9EB700F3FCC1 /* Hosts.cpp in Sources */, + 4F9828BB140A9EB700F3FCC1 /* IGraphicsMac.mm in Sources */, + 4F9828BC140A9EB700F3FCC1 /* IGraphics.cpp in Sources */, + 4F9828BD140A9EB700F3FCC1 /* IGraphicsCarbon.cpp in Sources */, + 4F9828BE140A9EB700F3FCC1 /* IGraphicsCocoa.mm in Sources */, + 4F9828BF140A9EB700F3FCC1 /* Log.cpp in Sources */, + 4F9828C0140A9EB700F3FCC1 /* IPopupMenu.cpp in Sources */, + 4F9828C1140A9EB700F3FCC1 /* IParam.cpp in Sources */, + 4F9828C2140A9EB700F3FCC1 /* IControl.cpp in Sources */, + 4F9828C3140A9EB700F3FCC1 /* IBitmapMonoText.cpp in Sources */, + 4F9828C4140A9EB700F3FCC1 /* IPlugVST3.cpp in Sources */, + F40B6F3E1C4FD09000DE0457 /* SineWave.cpp in Sources */, + 4F9828C5140A9EB700F3FCC1 /* memorystream.cpp in Sources */, + 4F9828C6140A9EB700F3FCC1 /* pluginview.cpp in Sources */, + 4F9828C7140A9EB700F3FCC1 /* macmain.cpp in Sources */, + 4F9828C8140A9EB700F3FCC1 /* pluginfactoryvst3.cpp in Sources */, + 4F9828C9140A9EB700F3FCC1 /* vstaudioeffect.cpp in Sources */, + 4F9828CA140A9EB700F3FCC1 /* vstbus.cpp in Sources */, + 4F9828CB140A9EB700F3FCC1 /* vstcomponent.cpp in Sources */, + 4F9828CC140A9EB700F3FCC1 /* vstcomponentbase.cpp in Sources */, + 4F9828CE140A9EB700F3FCC1 /* vstinitiids.cpp in Sources */, + F453FF6B1C47F6F00028FF6C /* FreqView.cpp in Sources */, + 4F9828CF140A9EB700F3FCC1 /* vstnoteexpressiontypes.cpp in Sources */, + 4F9828D0140A9EB700F3FCC1 /* vstparameters.cpp in Sources */, + 4F9828D1140A9EB700F3FCC1 /* vstpresetfile.cpp in Sources */, + F453FF771C47F72D0028FF6C /* fft.c in Sources */, + F40B6F441C4FD09000DE0457 /* Stk.cpp in Sources */, + 4F9828D2140A9EB700F3FCC1 /* vstrepresentation.cpp in Sources */, + 4F9828D3140A9EB700F3FCC1 /* vstsinglecomponenteffect.cpp in Sources */, + 4F9828D4140A9EB700F3FCC1 /* conststringtable.cpp in Sources */, + 4F9828D5140A9EB700F3FCC1 /* funknown.cpp in Sources */, + 4F9828D6140A9EB700F3FCC1 /* ustring.cpp in Sources */, + F40B6F321C4FD09000DE0457 /* ADSR.cpp in Sources */, + F40B6F381C4FD09000DE0457 /* Envelope.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4FB600171567CB0A0020189A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4FB600181567CB0A0020189A /* AccessibleSpectrumAnalyser.cpp in Sources */, + 4FB600191567CB0A0020189A /* swell-gdi.mm in Sources */, + 4FB6001A1567CB0A0020189A /* IPlugBase.cpp in Sources */, + 4FB6001B1567CB0A0020189A /* IPlugStructs.cpp in Sources */, + 4FB6001C1567CB0A0020189A /* Hosts.cpp in Sources */, + F40B6F411C4FD09000DE0457 /* SineWave.cpp in Sources */, + F453FF6E1C47F6F00028FF6C /* FreqView.cpp in Sources */, + F40B6F351C4FD09000DE0457 /* ADSR.cpp in Sources */, + 4FB6001D1567CB0A0020189A /* IGraphicsMac.mm in Sources */, + 4FB6001E1567CB0A0020189A /* IGraphics.cpp in Sources */, + 4FB6001F1567CB0A0020189A /* IGraphicsCarbon.cpp in Sources */, + 4FB600201567CB0A0020189A /* IGraphicsCocoa.mm in Sources */, + 4FB600211567CB0A0020189A /* Log.cpp in Sources */, + 4FB600221567CB0A0020189A /* IPopupMenu.cpp in Sources */, + 4FB600231567CB0A0020189A /* IParam.cpp in Sources */, + 4FB600241567CB0A0020189A /* IControl.cpp in Sources */, + F453FF7A1C47F72D0028FF6C /* fft.c in Sources */, + 4FB600251567CB0A0020189A /* IBitmapMonoText.cpp in Sources */, + F40B6F471C4FD09000DE0457 /* Stk.cpp in Sources */, + 4FB600261567CB0A0020189A /* AAX_Exports.cpp in Sources */, + 4FB600271567CB0A0020189A /* IPlugAAX.cpp in Sources */, + F40B6F3B1C4FD09000DE0457 /* Envelope.cpp in Sources */, + 4FB600281567CB0A0020189A /* IPlugAAX_Describe.cpp in Sources */, + 4FB600291567CB0A0020189A /* AAX_CIPlugParameters.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4FD16A0613B63081001D0217 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4FD16CFC13B63468001D0217 /* swell-appstub.mm in Sources */, + 4FD16D0513B634AA001D0217 /* swell-dlg.mm in Sources */, + 4FD16D0C13B634BF001D0217 /* swell-gdi.mm in Sources */, + F40B6F361C4FD09000DE0457 /* Envelope.cpp in Sources */, + 4FD16D1613B634D2001D0217 /* swell-ini.cpp in Sources */, + 4FD16D3A13B63582001D0217 /* swell-kb.mm in Sources */, + 4FD16D3C13B6358C001D0217 /* swell-miscdlg.mm in Sources */, + 4FD16D3E13B63595001D0217 /* swell-menu.mm in Sources */, + 4FD16D4013B635A0001D0217 /* swell-misc.mm in Sources */, + 4FD16D4213B635AB001D0217 /* swell-wnd.mm in Sources */, + 4FD16D4413B635B2001D0217 /* swell.cpp in Sources */, + 4FD16D4713B635C8001D0217 /* swellappmain.mm in Sources */, + 4F78D8C413B63A700032E0F3 /* RtAudio.cpp in Sources */, + F40B6F3C1C4FD09000DE0457 /* SineWave.cpp in Sources */, + 4F78D8C513B63A700032E0F3 /* RtMidi.cpp in Sources */, + 4F78D90A13B63BA50032E0F3 /* IPlugStandalone.cpp in Sources */, + 4F78D90B13B63BA50032E0F3 /* IPlugBase.cpp in Sources */, + 4F78D90C13B63BA50032E0F3 /* IPlugStructs.cpp in Sources */, + 4F78D90D13B63BA50032E0F3 /* Hosts.cpp in Sources */, + 4F78D90F13B63BA50032E0F3 /* IGraphicsMac.mm in Sources */, + F453FF691C47F6F00028FF6C /* FreqView.cpp in Sources */, + 4F78D91013B63BA50032E0F3 /* IGraphics.cpp in Sources */, + 4F78D91113B63BA50032E0F3 /* IGraphicsCarbon.cpp in Sources */, + 4F78D91213B63BA50032E0F3 /* IGraphicsCocoa.mm in Sources */, + F453FF751C47F72D0028FF6C /* fft.c in Sources */, + 4F78D91313B63BA50032E0F3 /* Log.cpp in Sources */, + 4F78D91413B63BA50032E0F3 /* IPopupMenu.cpp in Sources */, + 4F78D91813B63BA50032E0F3 /* IParam.cpp in Sources */, + 4F78D91913B63BA50032E0F3 /* IControl.cpp in Sources */, + 4F78DA5A13B63F150032E0F3 /* AccessibleSpectrumAnalyser.cpp in Sources */, + F40B6F421C4FD09000DE0457 /* Stk.cpp in Sources */, + 4FD16CA213B6327D001D0217 /* app_main.cpp in Sources */, + 4FD16CA313B6327D001D0217 /* app_dialog.cpp in Sources */, + F40B6F301C4FD09000DE0457 /* ADSR.cpp in Sources */, + 4FB3624F13B648FE00DB6B76 /* main.mm in Sources */, + 4FDA440E13F3E4F2000B4551 /* IBitmapMonoText.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 4F3B0B43158B509A001B0CEF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AAXLibrary; + targetProxy = 4F3B0B42158B509A001B0CEF /* PBXContainerItemProxy */; + }; + 4F678B6D13E984B200A6A9BB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "lice_32&64_intel"; + targetProxy = 4F678B6C13E984B200A6A9BB /* PBXContainerItemProxy */; + }; + 4F789ED016763E47009EF688 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4FB600121567CB0A0020189A /* AAX */; + targetProxy = 4F789ECF16763E47009EF688 /* PBXContainerItemProxy */; + }; + 4F78DAF613B6436B0032E0F3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4FD16A0813B63081001D0217 /* APP */; + targetProxy = 4F78DAF513B6436B0032E0F3 /* PBXContainerItemProxy */; + }; + 4F78DAF813B6436B0032E0F3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4F20EEC8132C69FE0030E34C /* VST2 */; + targetProxy = 4F78DAF713B6436B0032E0F3 /* PBXContainerItemProxy */; + }; + 4F78DAFA13B6436B0032E0F3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4F3AE17812C0E5E2001FD7A4 /* AU */; + targetProxy = 4F78DAF913B6436B0032E0F3 /* PBXContainerItemProxy */; + }; + 4F8B6765158B4F67002FC25B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Plugin Library"; + targetProxy = 4F8B6764158B4F67002FC25B /* PBXContainerItemProxy */; + }; + 4F8D4C2D13E977CD004F7633 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "lice_32&64_intel"; + targetProxy = 4F8D4C2C13E977CD004F7633 /* PBXContainerItemProxy */; + }; + 4F8D4C3813E9783A004F7633 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = lice_32_intel; + targetProxy = 4F8D4C3713E9783A004F7633 /* PBXContainerItemProxy */; + }; + 4F8D4C3A13E97859004F7633 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "lice_32&64_intel"; + targetProxy = 4F8D4C3913E97859004F7633 /* PBXContainerItemProxy */; + }; + 4F8D4C6313E97B3D004F7633 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4F7F5C4213E95EC8002918FD /* RTAS */; + targetProxy = 4F8D4C6213E97B3D004F7633 /* PBXContainerItemProxy */; + }; + 4F9828AD140A9EB700F3FCC1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = base; + targetProxy = 4F9828AE140A9EB700F3FCC1 /* PBXContainerItemProxy */; + }; + 4F9828F3140A9ED500F3FCC1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "lice_32&64_intel"; + targetProxy = 4F9828F2140A9ED500F3FCC1 /* PBXContainerItemProxy */; + }; + 4F9828F8140A9F0200F3FCC1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4F9828AA140A9EB700F3FCC1 /* VST3 */; + targetProxy = 4F9828F7140A9F0200F3FCC1 /* PBXContainerItemProxy */; + }; + 4FB600501567CB990020189A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "lice_32&64_intel"; + targetProxy = 4FB6004F1567CB990020189A /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 4F78D89513B639100032E0F3 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 4F78D89613B639100032E0F3 /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 4F78D89713B639100032E0F3 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 4F78D89813B639100032E0F3 /* English */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 1DEB913F08733D840010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4FCF15AF133124D1009A6277 /* AccessibleSpectrumAnalyser.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; + COPY_PHASE_STRIP = NO; + DEPLOYMENT_LOCATION = YES; + EXECUTABLE_EXTENSION = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_OPTIMIZATION_LEVEL = "$(DEBUG_OPTIMIZE)"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = $IPLUG_PATH/IPlug_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = "$(DEBUG_DEFS)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "$(COCOA_DEFS)"; + GCC_VERSION = "$(COMPILER)"; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + GENERATE_PKGINFO_FILE = YES; + HEADER_SEARCH_PATHS = ( + "$(IPLUG_PATH)", + "$(ADDITIONAL_INCLUDES)", + ); + INFOPLIST_EXPAND_BUILD_SETTINGS = YES; + INFOPLIST_PREPROCESS = NO; + INSTALL_GROUP = admin; + INSTALL_OWNER = root; + INSTALL_PATH = /; + LIBRARY_SEARCH_PATHS = "$(ADDITIONAL_LIBRARY_PATHS)"; + MACOSX_DEPLOYMENT_TARGET = "$(DEPLOYMENT_TARGET)"; + ONLY_ACTIVE_ARCH = YES; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "$(GCC_CFLAGS)", + ); + PREBINDING = NO; + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; + PRODUCT_NAME = "$(BINARY_NAME)"; + SDKROOT = "$(BASE_SDK)"; + SKIP_INSTALL = NO; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "build-mac"; + VALID_ARCHS = "i386 x86_64"; + WRAPPER_EXTENSION = ""; + }; + name = Debug; + }; + 1DEB914008733D840010E9CD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4FCF15AF133124D1009A6277 /* AccessibleSpectrumAnalyser.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEPLOYMENT_LOCATION = YES; + EXECUTABLE_EXTENSION = ""; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = "$(RELEASE_OPTIMIZE)"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = $IPLUG_PATH/IPlug_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = "$(RELEASE_DEFS)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "$(COCOA_DEFS)"; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = "$(COMPILER)"; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + GENERATE_PKGINFO_FILE = YES; + GENERATE_PROFILING_CODE = "$(PROFILE)"; + HEADER_SEARCH_PATHS = ( + "$(IPLUG_PATH)", + "$(ADDITIONAL_INCLUDES)", + ); + INFOPLIST_EXPAND_BUILD_SETTINGS = YES; + INFOPLIST_PREPROCESS = NO; + INSTALL_GROUP = admin; + INSTALL_OWNER = root; + INSTALL_PATH = /; + LIBRARY_SEARCH_PATHS = "$(ADDITIONAL_LIBRARY_PATHS)"; + MACOSX_DEPLOYMENT_TARGET = "$(DEPLOYMENT_TARGET)"; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "$(GCC_CFLAGS)", + ); + PREBINDING = NO; + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; + PRODUCT_NAME = "$(BINARY_NAME)"; + SDKROOT = "$(BASE_SDK)"; + SKIP_INSTALL = NO; + SYMROOT = "build-mac"; + VALID_ARCHS = "i386 x86_64"; + WRAPPER_EXTENSION = ""; + }; + name = Release; + }; + 4F20EF30132C69FE0030E34C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + DSTROOT = "$(VST_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(VST_DEFS)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-VST2-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + SDKROOT = macosx; + SKIP_INSTALL = NO; + WARNING_CFLAGS = "-Wno-main"; + WRAPPER_EXTENSION = vst; + }; + name = Debug; + }; + 4F20EF31132C69FE0030E34C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + DSTROOT = "$(VST_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(VST_DEFS)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-VST2-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + SDKROOT = macosx; + SKIP_INSTALL = NO; + WARNING_CFLAGS = "-Wno-main"; + WRAPPER_EXTENSION = vst; + }; + name = Release; + }; + 4F20EF32132C69FE0030E34C /* Tracer */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + DSTROOT = "$(VST_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(VST_DEFS)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-VST2-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + SDKROOT = macosx; + SKIP_INSTALL = NO; + WARNING_CFLAGS = "-Wno-main"; + WRAPPER_EXTENSION = vst; + }; + name = Tracer; + }; + 4F3AE1DD12C0E5E2001FD7A4 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + DSTROOT = "$(AU_FOLDER)"; + EXPORTED_SYMBOLS_FILE = AccessibleSpectrumAnalyser.exp; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(AU_DEFS)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-AU-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + OTHER_LDFLAGS = "-bundle"; + OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I $CA_SDK/AudioUnits/AUPublic/AUBase"; + PREBINDING = YES; + REZ_SEARCH_PATHS = ( + /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers, + $CA_SDK/AudioUnits/AUPublic/AUBase, + ); + SDKROOT = macosx; + SKIP_INSTALL = NO; + WRAPPER_EXTENSION = component; + }; + name = Debug; + }; + 4F3AE1DE12C0E5E2001FD7A4 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + DSTROOT = "$(AU_FOLDER)"; + EXPORTED_SYMBOLS_FILE = AccessibleSpectrumAnalyser.exp; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(AU_DEFS)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-AU-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + OTHER_LDFLAGS = "-bundle"; + OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I $CA_SDK/AudioUnits/AUPublic/AUBase"; + PREBINDING = YES; + REZ_SEARCH_PATHS = ( + /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers, + $CA_SDK/AudioUnits/AUPublic/AUBase, + ); + SDKROOT = macosx; + SKIP_INSTALL = NO; + WRAPPER_EXTENSION = component; + }; + name = Release; + }; + 4F3AE1DF12C0E5E2001FD7A4 /* Tracer */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + DSTROOT = "$(AU_FOLDER)"; + EXPORTED_SYMBOLS_FILE = AccessibleSpectrumAnalyser.exp; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(AU_DEFS)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-AU-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + OTHER_LDFLAGS = "-bundle"; + OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I $CA_SDK/AudioUnits/AUPublic/AUBase"; + PREBINDING = YES; + REZ_SEARCH_PATHS = ( + /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers, + $CA_SDK/AudioUnits/AUPublic/AUBase, + ); + SDKROOT = macosx; + SKIP_INSTALL = NO; + WRAPPER_EXTENSION = component; + }; + name = Tracer; + }; + 4F78DAF213B643610032E0F3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = "$(DEBUG_OPTIMIZE)"; + PRODUCT_NAME = "AllOSX_32&64_intel"; + SDKROOT = macosx; + }; + name = Debug; + }; + 4F78DAF313B643610032E0F3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + PRODUCT_NAME = "AllOSX_32&64_intel"; + SDKROOT = macosx; + ZERO_LINK = NO; + }; + name = Release; + }; + 4F78DAF413B643610032E0F3 /* Tracer */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "AllOSX_32&64_intel"; + SDKROOT = macosx; + }; + name = Tracer; + }; + 4F7F5C6513E95EC8002918FD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4F7F5CAB13E9607A002918FD /* CommonDebugSettings.xcconfig */; + buildSettings = { + ARCHS = i386; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; + DSTROOT = "$(RTAS_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS = ( + $DEBUG_DEFS, + "_DEBUG=1", + ); + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(inherited)", + "$(RTAS_DEFS)", + ); + GCC_VERSION = "$(COMPILER)"; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + HEADER_SEARCH_PATHS = ( + "$(ADDITIONAL_INCLUDES)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-RTAS-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(ADDITIONAL_LIBRARY_PATHS)", + "\"$(SRCROOT)/../../PT9_SDK/MacBag/Libs/Release\"", + "\"$(SRCROOT)/../../PT9_SDK/MacBag/Libs/Debug\"", + ); + MACOSX_DEPLOYMENT_TARGET = "$(DEPLOYMENT_TARGET)"; + MacBag = "$(PT9_SDK)/MacBag"; + OBJROOT = "build-mac"; + OTHER_CFLAGS = "-fno-inline"; + OTHER_LDFLAGS = ( + "$(inherited)", + "\"-LlibPluginLibrary\"", + ); + SDKROOT = "$(BASE_SDK)"; + SKIP_INSTALL = NO; + SYMROOT = "build-mac"; + VALID_ARCHS = i386; + WARNING_CFLAGS = ( + "-Wno-reorder", + "-Wno-four-char-constants", + ); + WRAPPER_EXTENSION = dpm; + }; + name = Debug; + }; + 4F7F5C6613E95EC8002918FD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4F7F5CAC13E9607A002918FD /* CommonReleaseSettings.xcconfig */; + buildSettings = { + ARCHS = i386; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; + DEPLOYMENT_POSTPROCESSING = NO; + DSTROOT = "$(RTAS_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(RTAS_DEFS)", + "$(inherited)", + ); + GCC_VERSION = "$(COMPILER)"; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + HEADER_SEARCH_PATHS = ( + "$(ADDITIONAL_INCLUDES)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-RTAS-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(ADDITIONAL_LIBRARY_PATHS)", + "\"$(SRCROOT)/../../PT9_SDK/MacBag/Libs/Release\"", + "\"$(SRCROOT)/../../PT9_SDK/MacBag/Libs/Debug\"", + ); + MACOSX_DEPLOYMENT_TARGET = "$(DEPLOYMENT_TARGET)"; + MacBag = "$(PT9_SDK)/MacBag"; + OBJROOT = "build-mac"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = "$(inherited)"; + SDKROOT = "$(BASE_SDK)"; + SKIP_INSTALL = NO; + SYMROOT = "build-mac"; + VALID_ARCHS = i386; + WARNING_CFLAGS = ( + "-Wno-reorder", + "-Wno-four-char-constants", + ); + WRAPPER_EXTENSION = dpm; + }; + name = Release; + }; + 4F7F5C6713E95EC8002918FD /* Tracer */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4F7F5CAC13E9607A002918FD /* CommonReleaseSettings.xcconfig */; + buildSettings = { + ARCHS = i386; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; + DSTROOT = "$(RTAS_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(inherited)", + "$(RTAS_DEFS)", + ); + GCC_VERSION = "$(COMPILER)"; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; + GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + HEADER_SEARCH_PATHS = ( + "$(ADDITIONAL_INCLUDES)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-RTAS-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(ADDITIONAL_LIBRARY_PATHS)", + "\"$(SRCROOT)/../../PT9_SDK/MacBag/Libs/Release\"", + "\"$(SRCROOT)/../../PT9_SDK/MacBag/Libs/Debug\"", + ); + MACOSX_DEPLOYMENT_TARGET = "$(DEPLOYMENT_TARGET)"; + MacBag = "$(PT9_SDK)/MacBag"; + OBJROOT = "build-mac"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + "$(inherited)", + "\"-LlibPluginLibrary\"", + ); + SDKROOT = "$(BASE_SDK)"; + SYMROOT = "build-mac"; + VALID_ARCHS = i386; + WARNING_CFLAGS = ( + "-Wno-reorder", + "-Wno-four-char-constants", + ); + WRAPPER_EXTENSION = dpm; + }; + name = Tracer; + }; + 4F9828DD140A9EB700F3FCC1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = "$(VST3_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(VST3_DEFS)", + "$(inherited)", + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(VST3_SDK)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-VST3-Info.plist"; + SKIP_INSTALL = NO; + WRAPPER_EXTENSION = vst3; + }; + name = Debug; + }; + 4F9828DE140A9EB700F3FCC1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = "$(VST3_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(VST3_DEFS)", + "$(inherited)", + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(VST3_SDK)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-VST3-Info.plist"; + SKIP_INSTALL = NO; + WRAPPER_EXTENSION = vst3; + }; + name = Release; + }; + 4F9828DF140A9EB700F3FCC1 /* Tracer */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = "$(VST3_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(VST3_DEFS)", + "$(inherited)", + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(VST3_SDK)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-VST3-Info.plist"; + SKIP_INSTALL = NO; + WRAPPER_EXTENSION = vst3; + }; + name = Tracer; + }; + 4FB600301567CB0A0020189A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4F4CC38C1549B92900A9EA21 /* CommonDebugSettings.xcconfig */; + buildSettings = { + AAX_SDK_ROOT = "$(AAX_SDK)"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + DEPLOYMENT_LOCATION = YES; + DSTROOT = "$(AAX_FOLDER)"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = $IPLUG_PATH/IPlug_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + $DEBUG_DEFS, + "_DEBUG=1", + ); + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(AAX_DEFS)", + "$(inherited)", + ); + GCC_VERSION = "$(COMPILER)"; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; + HEADER_SEARCH_PATHS = ( + "$(IPLUG_PATH)", + "$(ADDITIONAL_INCLUDES)", + "$(inherited)", + "$(AAX_SDK)/Interfaces", + "$(AAX_SDK)/Interfaces/ACF", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-AAX-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(ADDITIONAL_LIBRARY_PATHS)", + "$(AAX_SDK)/Libs/Debug", + ); + MACOSX_DEPLOYMENT_TARGET = "$(DEPLOYMENT_TARGET)"; + SDKROOT = "$(BASE_SDK)"; + SKIP_INSTALL = NO; + WARNING_CFLAGS = ( + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + "-Wno-incompatible-ms-struct", + ); + WRAPPER_EXTENSION = aaxplugin; + }; + name = Debug; + }; + 4FB600311567CB0A0020189A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4F4CC38D1549B92900A9EA21 /* CommonReleaseSettings.xcconfig */; + buildSettings = { + AAX_SDK_ROOT = "$(AAX_SDK)"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEPLOYMENT_LOCATION = YES; + DEPLOYMENT_POSTPROCESSING = NO; + DSTROOT = "$(AAX_FOLDER)"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = $IPLUG_PATH/IPlug_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + $RELEASE_DEFS, + "_NDEBUG=1", + ); + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(AAX_DEFS)", + "$(inherited)", + ); + GCC_VERSION = "$(COMPILER)"; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; + HEADER_SEARCH_PATHS = ( + "$(IPLUG_PATH)", + "$(ADDITIONAL_INCLUDES)", + "$(inherited)", + "$(AAX_SDK)/Interfaces", + "$(AAX_SDK)/Interfaces/ACF", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-AAX-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(ADDITIONAL_LIBRARY_PATHS)", + "$(AAX_SDK)/Libs/Release", + ); + MACOSX_DEPLOYMENT_TARGET = "$(DEPLOYMENT_TARGET)"; + PREBINDING = YES; + SDKROOT = "$(BASE_SDK)"; + SKIP_INSTALL = NO; + WARNING_CFLAGS = ( + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + "-Wno-incompatible-ms-struct", + ); + WRAPPER_EXTENSION = aaxplugin; + }; + name = Release; + }; + 4FB600321567CB0A0020189A /* Tracer */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4F4CC38D1549B92900A9EA21 /* CommonReleaseSettings.xcconfig */; + buildSettings = { + AAX_SDK_ROOT = "$(AAX_SDK)"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEPLOYMENT_LOCATION = YES; + DEPLOYMENT_POSTPROCESSING = NO; + DSTROOT = "$(AAX_FOLDER)"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = $IPLUG_PATH/IPlug_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + $TRACER_DEFS, + "_NDEBUG=1", + ); + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(AAX_DEFS)", + "$(inherited)", + ); + GCC_VERSION = "$(COMPILER)"; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; + HEADER_SEARCH_PATHS = ( + "$(IPLUG_PATH)", + "$(ADDITIONAL_INCLUDES)", + "$(inherited)", + "$(AAX_SDK)/Interfaces", + "$(AAX_SDK)/Interfaces/ACF", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-AAX-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(ADDITIONAL_LIBRARY_PATHS)", + "$(AAX_SDK)/Libs/Release", + ); + MACOSX_DEPLOYMENT_TARGET = "$(DEPLOYMENT_TARGET)"; + SDKROOT = "$(BASE_SDK)"; + SKIP_INSTALL = NO; + WARNING_CFLAGS = ( + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + "-Wno-incompatible-ms-struct", + ); + WRAPPER_EXTENSION = aaxplugin; + }; + name = Tracer; + }; + 4FD16A0C13B63082001D0217 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = "$(APP_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(APP_DEFS)", + "$(inherited)", + ); + HEADER_SEARCH_PATHS = ( + "$(ADDITIONAL_APP_INCLUDES)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-OSXAPP-Info.plist"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + SKIP_INSTALL = NO; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 4FD16A0D13B63082001D0217 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = "$(APP_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(APP_DEFS)", + "$(inherited)", + ); + HEADER_SEARCH_PATHS = ( + "$(ADDITIONAL_APP_INCLUDES)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-OSXAPP-Info.plist"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + SKIP_INSTALL = NO; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + 4FD16A0E13B63082001D0217 /* Tracer */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = "$(APP_FOLDER)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = ( + "$(APP_DEFS)", + "$(inherited)", + ); + HEADER_SEARCH_PATHS = ( + "$(ADDITIONAL_APP_INCLUDES)", + "$(inherited)", + ); + INFOPLIST_FILE = "resources/AccessibleSpectrumAnalyser-OSXAPP-Info.plist"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + SKIP_INSTALL = NO; + WRAPPER_EXTENSION = app; + }; + name = Tracer; + }; + 528359A90D7F0C3A00577159 /* Tracer */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4FCF15AF133124D1009A6277 /* AccessibleSpectrumAnalyser.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; + DEPLOYMENT_LOCATION = YES; + EXECUTABLE_EXTENSION = ""; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = "$(RELEASE_OPTIMIZE)"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = $IPLUG_PATH/IPlug_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = "$(TRACER_DEFS)"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "$(COCOA_DEFS)"; + GCC_VERSION = "$(COMPILER)"; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + GENERATE_PKGINFO_FILE = YES; + HEADER_SEARCH_PATHS = ( + "$(IPLUG_PATH)", + "$(ADDITIONAL_INCLUDES)", + ); + INFOPLIST_EXPAND_BUILD_SETTINGS = YES; + INFOPLIST_PREPROCESS = NO; + INSTALL_GROUP = admin; + INSTALL_OWNER = root; + INSTALL_PATH = /; + LIBRARY_SEARCH_PATHS = "$(ADDITIONAL_LIBRARY_PATHS)"; + MACOSX_DEPLOYMENT_TARGET = "$(DEPLOYMENT_TARGET)"; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "$(GCC_CFLAGS)", + ); + PREBINDING = NO; + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; + PRODUCT_NAME = "$(BINARY_NAME)"; + SDKROOT = "$(BASE_SDK)"; + SKIP_INSTALL = NO; + SYMROOT = "build-mac"; + VALID_ARCHS = "i386 x86_64"; + WRAPPER_EXTENSION = ""; + }; + name = Tracer; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "AccessibleSpectrumAnalyser" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB913F08733D840010E9CD /* Debug */, + 1DEB914008733D840010E9CD /* Release */, + 528359A90D7F0C3A00577159 /* Tracer */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4F20EF2F132C69FE0030E34C /* Build configuration list for PBXNativeTarget "VST2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4F20EF30132C69FE0030E34C /* Debug */, + 4F20EF31132C69FE0030E34C /* Release */, + 4F20EF32132C69FE0030E34C /* Tracer */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4F3AE1DC12C0E5E2001FD7A4 /* Build configuration list for PBXNativeTarget "AU" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4F3AE1DD12C0E5E2001FD7A4 /* Debug */, + 4F3AE1DE12C0E5E2001FD7A4 /* Release */, + 4F3AE1DF12C0E5E2001FD7A4 /* Tracer */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4F78DAFD13B643940032E0F3 /* Build configuration list for PBXAggregateTarget "All" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4F78DAF213B643610032E0F3 /* Debug */, + 4F78DAF313B643610032E0F3 /* Release */, + 4F78DAF413B643610032E0F3 /* Tracer */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4F7F5C6413E95EC8002918FD /* Build configuration list for PBXNativeTarget "RTAS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4F7F5C6513E95EC8002918FD /* Debug */, + 4F7F5C6613E95EC8002918FD /* Release */, + 4F7F5C6713E95EC8002918FD /* Tracer */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4F9828DC140A9EB700F3FCC1 /* Build configuration list for PBXNativeTarget "VST3" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4F9828DD140A9EB700F3FCC1 /* Debug */, + 4F9828DE140A9EB700F3FCC1 /* Release */, + 4F9828DF140A9EB700F3FCC1 /* Tracer */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4FB6002F1567CB0A0020189A /* Build configuration list for PBXNativeTarget "AAX" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4FB600301567CB0A0020189A /* Debug */, + 4FB600311567CB0A0020189A /* Release */, + 4FB600321567CB0A0020189A /* Tracer */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4FD16A0F13B63082001D0217 /* Build configuration list for PBXNativeTarget "APP" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4FD16A0C13B63082001D0217 /* Debug */, + 4FD16A0D13B63082001D0217 /* Release */, + 4FD16A0E13B63082001D0217 /* Tracer */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/AAX.xcscheme --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/AAX.xcscheme Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/APP.xcscheme --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/APP.xcscheme Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/AU.xcscheme --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/AU.xcscheme Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/All.xcscheme --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/All.xcscheme Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/RTAS.xcscheme --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/RTAS.xcscheme Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/VST2.xcscheme --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/VST2.xcscheme Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/VST3.xcscheme --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/VST3.xcscheme Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 3004dd663202 AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/xcschememanagement.plist --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AccessibleSpectrumAnalyser.xcodeproj/xcuserdata/fiore.xcuserdatad/xcschemes/xcschememanagement.plist Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,82 @@ + + + + + SchemeUserState + + AAX.xcscheme + + orderHint + 14 + + APP.xcscheme + + orderHint + 9 + + AU.xcscheme + + orderHint + 12 + + All.xcscheme + + orderHint + 8 + + RTAS.xcscheme + + orderHint + 13 + + VST2.xcscheme + + orderHint + 10 + + VST3.xcscheme + + orderHint + 11 + + + SuppressBuildableAutocreation + + 4F20EEC8132C69FE0030E34C + + primary + + + 4F3AE17812C0E5E2001FD7A4 + + primary + + + 4F78DAF113B643600032E0F3 + + primary + + + 4F7F5C4213E95EC8002918FD + + primary + + + 4F9828AA140A9EB700F3FCC1 + + primary + + + 4FB600121567CB0A0020189A + + primary + + + 4FD16A0813B63081001D0217 + + primary + + + + + diff -r 000000000000 -r 3004dd663202 Controls.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Controls.h Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,89 @@ +// +// Controls.h +// AccessibleSpectrumAnalyser +// +// Created by Fiore Martin on 18/01/2016. +// +// + +#ifndef Controls_h +#define Controls_h + + +/* Knob with a text label and a text displaying the current value */ +class IKnobMultiControlText : public IKnobControl +{ +private: + IRECT mDisplayRECT, mImgRECT, mNameRECT, mLabelRECT; + IBitmap mBitmap; + +public: + IKnobMultiControlText(IPlugBase* pPlug, IRECT pR, int paramIdx, IBitmap* pBitmap, IText* pText, int indent = 10) + : IKnobControl(pPlug, pR, paramIdx), mBitmap(*pBitmap) + { + mText = *pText; + /* mRECT is the bounding rectangle of the whole KnobMultiControlText */ + mNameRECT = IRECT(mRECT.L, mRECT.T,mRECT.R, mRECT.T+16); + mDisplayRECT = IRECT(mRECT.L, mRECT.B-25, mRECT.R-21, mRECT.B); // left, top, right, bottom + mLabelRECT = mDisplayRECT; + mLabelRECT.L = mDisplayRECT.R; // shift it to the right of the diplay RECT + mLabelRECT.R = mLabelRECT.L+indent; // how much the display is indented + mImgRECT = IRECT(mRECT.L, mRECT.T+16, &mBitmap); + mDisablePrompt = false; + } + + ~IKnobMultiControlText() {} + + bool Draw(IGraphics* pGraphics) + { + int i = 1 + int(0.5 + mValue * (double) (mBitmap.N - 1)); + i = BOUNDED(i, 1, mBitmap.N); + + /* draw the knob */ + pGraphics->DrawBitmap(&mBitmap, &mImgRECT, i, &mBlend); + + /* draw displayed value for host, that is the value as represented in the host */ + char displayedValue[20]; + mPlug->GetParam(mParamIdx)->GetDisplayForHost(displayedValue); + + bool dispDrawn = true; + if (CSTR_NOT_EMPTY(displayedValue)) { + dispDrawn = pGraphics->DrawIText(&mText, displayedValue, &mDisplayRECT); + } + + /* name of the parameter */ + if (CSTR_NOT_EMPTY(mPlug->GetParam(mParamIdx)->GetNameForHost())){ + char nameDisp[MAX_PARAM_NAME_LEN]; + strcpy(nameDisp, mPlug->GetParam(mParamIdx)->GetNameForHost()); + + if (CSTR_NOT_EMPTY(mPlug->GetParam(mParamIdx)->GetLabelForHost())){ + char label[MAX_PARAM_LABEL_LEN]; + strcpy(label, mPlug->GetParam(mParamIdx)->GetLabelForHost()); + pGraphics->DrawIText(&mText, label, &mLabelRECT); + } + + return dispDrawn && pGraphics->DrawIText(&mText, nameDisp, &mNameRECT); + } + + return dispDrawn; + } + + void OnMouseDown(int x, int y, IMouseMod* pMod) + { + OnMouseDrag(x, y, 0, 0, pMod); + } + + /* double click puts it back to default value */ + void OnMouseDblClick(int x, int y, IMouseMod* pMod) + { + if (mDefaultValue >= 0.0) + { + mValue = mDefaultValue; + SetDirty(); + } + } + +}; + + +#endif /* Controls_h */ diff -r 000000000000 -r 3004dd663202 FreqView.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FreqView.cpp Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,11 @@ +#include "FreqView.h" + + +const double FreqView::kPeakDecayRate = 1; +const double FreqView::kMaxPeakDB = 66.0; +const double FreqView::kZeroDbY = FreqView::AmpToMeter(1.0, kMaxPeakDB); +const IColor FreqView::kGridColor(20, 100, 100, 100); +const IColor FreqView::kBgColor(255, 64, 64, 64); +const IColor FreqView::kPadColor(255, 176, 176, 176); +const IChannelBlend FreqView::kSelectionBlend(IChannelBlend::kBlendColorDodge, 0.5); +const IColor FreqView::Grid::kZeroDbLineColor(255, 171, 2, 2); diff -r 000000000000 -r 3004dd663202 FreqView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FreqView.h Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,204 @@ +#pragma once +#include "IControl.h" + +#include + +class FreqView : public IControl +{ + + int mNumBins; + std::vector mBins; + std::vector mPeaks; + double mSampleRate; + double mHalfSampleRate; + double mDecayAmount; + double mSelectionStart; + double mSelectionSize; + double mThreshold; + + IRECT mPad; + +public: + + static const double kPeakDecayRate; + static const double kMaxPeakDB; + static const double kZeroDbY; + static const IColor kGridColor; + static const IColor kBgColor; + static const IColor kPadColor; + static const IChannelBlend kSelectionBlend; + + FreqView(IPlugBase *pPlug, IRECT pR, int numBins) : + IControl(pPlug, pR), + mGrid(*this), + mNumBins(numBins), + mBins(numBins, 0.0f), + mPeaks(numBins, 0.0f), + mSelectionStart(0), + mSelectionSize(1), + mSampleRate(44100), + mHalfSampleRate(44100/2), + mPad(pR.GetPadded(4)) + + { } + + ~FreqView(){} + + bool Draw(IGraphics* pGraphics) override + { + + pGraphics->FillIRect(&kPadColor, &mPad); + pGraphics->FillIRect(&kBgColor, &mRECT); + + /* draw grid */ + mGrid.Draw(pGraphics); + + /* draw the frequency scope */ + for (int i = 1; i < mNumBins; i++){ + //DrawBin(pGraphics, i); + + int x1 = mRECT.L + (float(i-1) / mNumBins * mRECT.W()); + int x2 = mRECT.L + (float(i) / mNumBins * mRECT.W()); + + /* max between new peak and old peak decay wins */ + mPeaks[i] = IPMAX(AmpToMeter(mBins[i], kMaxPeakDB) , mPeaks[i] - mDecayAmount); + + int y1 = mRECT.T + (mRECT.H() * (1 - mPeaks[i-1])); + int y2 = mRECT.T + (mRECT.H() * (1 - mPeaks[i])); + + + pGraphics->DrawLine(&COLOR_WHITE, x1, y1, x2, y2 ); + } + + /* draw the selection */ + //pGraphics->DrawVerticalLine(&COLOR_GREEN, mRECT.L + (mRECT.W() * (mSelectionStart/mHalfSampleRate)) , mRECT.B, mRECT.T); + int left = mRECT.L + (mRECT.W() * (mSelectionStart/mHalfSampleRate)); + int right = left + (mRECT.W() * (mSelectionSize/mHalfSampleRate)); + int top = mRECT.T + (mRECT.H() * (1 - DbToMeter(mThreshold, kMaxPeakDB))); + + IRECT selRect(left , top, right, mRECT.B); + IRECT peakRect(left, mRECT.T, right, top); + + pGraphics->FillIRect(&COLOR_GREEN, &selRect, &kSelectionBlend); + pGraphics->FillIRect(&COLOR_RED, &peakRect, &kSelectionBlend); + + return true; + } + + + + bool IsDirty() override + { + return true; + } + + static double AmpToMeter(double amplitudeVal, double maxDB) + { + double db; + if (amplitudeVal > 0) + db = ::AmpToDB(amplitudeVal); + else + db = -999; + return BOUNDED((db + 60) / maxDB, 0, 1); + } + + static double DbToMeter(double dbVal, double maxDB) + { + return BOUNDED((dbVal + 60) / maxDB, 0, 1); + } + + void setBins(float * compBins) + { + for (int i = 0; i < mNumBins; i++){ + mBins[i] = compBins[i]; + } + SetDirty(false); + Redraw(); + } + + inline void setSelectionStart(double startHz) + { + mSelectionStart = startHz; + } + + inline double getSelectionStart() const + { + return mSelectionStart; + } + + inline void setSelectionSize(double sizeHz) + { + mSelectionSize = sizeHz; + } + + inline double getSelectionSize() const + { + return mSelectionSize; + } + + inline void setThreshold(double thresDb) + { + mThreshold = thresDb; + } + + inline void setSampleRate(double sampleRate) + { + mSampleRate = sampleRate; + mHalfSampleRate = sampleRate/2; + const double deltaT = mNumBins / sampleRate; + mDecayAmount = deltaT * kPeakDecayRate; + + /* reset selection with the new sampling rate */ + setSelectionStart(mSelectionStart); + setSelectionSize(mSelectionSize); + } + + + class Grid + { + /* const reference to enclosing class */ + const FreqView & mView; + std::vector mHlines; + public: + + static const IColor kZeroDbLineColor; + + Grid(const FreqView &v ): mView(v) + { + for (int db=-60; dbDrawHorizontalLine(&FreqView::kGridColor, l, r.L, r.R); + } + + /* draw vertical lines */ + for(int i=1000; iDrawVerticalLine(&kGridColor, x , r.T, r.B); + } + + /* draw the 0 dB horiz line */ + pGraphics->DrawHorizontalLine(&kZeroDbLineColor, r.B - (r.H() * FreqView::kZeroDbY), r.L, r.R ); + + } + + } mGrid; +}; + diff -r 000000000000 -r 3004dd663202 app_wrapper/app_dialog.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app_wrapper/app_dialog.cpp Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,570 @@ +#include "app_main.h" + +#ifdef OS_WIN +#include "asio.h" +#endif + +const int kNumIOVSOptions = 9; +const int kNumSIGVSOptions = 7; + +const std::string kIOVSOptions[kNumIOVSOptions] = {"32", "64", "128", "256", "512", "1024", "2048", "4096", "8192" }; +const std::string kSIGVSOptions[kNumSIGVSOptions] = {"16", "32", "64", "128", "256", "512", "1024" }; + +// check the input and output devices, find matching srs +void PopulateSampleRateList(HWND hwndDlg, RtAudio::DeviceInfo* inputDevInfo, RtAudio::DeviceInfo* outputDevInfo) +{ + char buf[20]; + + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_SR,CB_RESETCONTENT,0,0); + + std::vector matchedSRs; + + for (int i=0; isampleRates.size(); i++) + { + for (int j=0; jsampleRates.size(); j++) + { + if(inputDevInfo->sampleRates[i] == outputDevInfo->sampleRates[j]) + matchedSRs.push_back(inputDevInfo->sampleRates[i]); + } + } + + for (int k=0; kmAudioSR); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_SR,CB_SETCURSEL, sridx, 0); +} + +void PopulateAudioInputList(HWND hwndDlg, RtAudio::DeviceInfo* info) +{ + char buf[20]; + + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_IN_L,CB_RESETCONTENT,0,0); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_IN_R,CB_RESETCONTENT,0,0); + + int i; + + for (i=0; iinputChannels -1; i++) + { +// for (int i=0; imAudioInChanL - 1, 0); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_IN_R,CB_SETCURSEL, gState->mAudioInChanR - 1, 0); +} + +void PopulateAudioOutputList(HWND hwndDlg, RtAudio::DeviceInfo* info) +{ + char buf[20]; + + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_OUT_L,CB_RESETCONTENT,0,0); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_OUT_R,CB_RESETCONTENT,0,0); + + int i; + +// for (int i=0; ioutputChannels -1; i++) + { + + wsprintf(buf,"%i",i+1); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_OUT_L,CB_ADDSTRING,0,(LPARAM)buf); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_OUT_R,CB_ADDSTRING,0,(LPARAM)buf); + } + + // TEMP + wsprintf(buf,"%i",i+1); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_OUT_R,CB_ADDSTRING,0,(LPARAM)buf); + + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_OUT_L,CB_SETCURSEL, gState->mAudioOutChanL - 1, 0); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_OUT_R,CB_SETCURSEL, gState->mAudioOutChanR - 1, 0); +} + +// This has to get called after any change to audio driver/in dev/out dev +void PopulateDriverSpecificControls(HWND hwndDlg) +{ +#ifdef OS_WIN + int driverType = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_DRIVER, CB_GETCURSEL, 0, 0); + if(driverType) //ASIO + { + ComboBox_Enable(GetDlgItem(hwndDlg, IDC_COMBO_AUDIO_IN_DEV), FALSE); + Button_Enable(GetDlgItem(hwndDlg, IDC_BUTTON_ASIO), TRUE); + } + else + { + ComboBox_Enable(GetDlgItem(hwndDlg, IDC_COMBO_AUDIO_IN_DEV), TRUE); + Button_Enable(GetDlgItem(hwndDlg, IDC_BUTTON_ASIO), FALSE); + } +#endif + + int indevidx = 0; + int outdevidx = 0; + + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_IN_DEV,CB_RESETCONTENT,0,0); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_OUT_DEV,CB_RESETCONTENT,0,0); + + for (int i = 0; imAudioInDev)) + indevidx = i; + } + + for (int i = 0; imAudioOutDev)) + outdevidx = i; + } + +#ifdef OS_WIN + if(driverType) + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_IN_DEV,CB_SETCURSEL, outdevidx, 0); + else +#endif + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_IN_DEV,CB_SETCURSEL, indevidx, 0); + + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_OUT_DEV,CB_SETCURSEL, outdevidx, 0); + + RtAudio::DeviceInfo inputDevInfo = gDAC->getDeviceInfo(gAudioInputDevs[indevidx]); + RtAudio::DeviceInfo outputDevInfo = gDAC->getDeviceInfo(gAudioOutputDevs[outdevidx]); + + PopulateAudioInputList(hwndDlg, &inputDevInfo); + PopulateAudioOutputList(hwndDlg, &outputDevInfo); + PopulateSampleRateList(hwndDlg, &inputDevInfo, &outputDevInfo); +} + +void PopulateAudioDialogs(HWND hwndDlg) +{ + PopulateDriverSpecificControls(hwndDlg); + + if (gState->mAudioInIsMono) + { + SendDlgItemMessage(hwndDlg,IDC_CB_MONO_INPUT,BM_SETCHECK, BST_CHECKED,0); + } + else + { + SendDlgItemMessage(hwndDlg,IDC_CB_MONO_INPUT,BM_SETCHECK, BST_UNCHECKED,0); + } + + //Populate IOVS combobox + for (int i = 0; i< kNumIOVSOptions; i++) + { + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_IOVS,CB_ADDSTRING,0,(LPARAM)kIOVSOptions[i].c_str()); + } + + LRESULT iovsidx = SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_IOVS, CB_FINDSTRINGEXACT, -1, (LPARAM)gState->mAudioIOVS); + SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_IOVS, CB_SETCURSEL, iovsidx, 0); + + //Populate SIGVS combobox + for (int i = 0; i< kNumSIGVSOptions; i++) + { + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_SIGVS,CB_ADDSTRING,0,(LPARAM)kSIGVSOptions[i].c_str()); + } + + LRESULT sigvsidx = SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_SIGVS, CB_FINDSTRINGEXACT, -1, (LPARAM)gState->mAudioSigVS); + SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_SIGVS, CB_SETCURSEL, sigvsidx, 0); +} + +bool PopulateMidiDialogs(HWND hwndDlg) +{ + if ( !gMidiIn || !gMidiOut ) + return false; + else + { + for (int i=0; imMidiInDev); + + // if the midi port name wasn't found update the ini file, and set to off + if(indevidx == -1) + { + strcpy(gState->mMidiInDev, "off"); + UpdateINI(); + indevidx = 0; + } + + SendDlgItemMessage(hwndDlg,IDC_COMBO_MIDI_IN_DEV,CB_SETCURSEL, indevidx, 0); + + for (int i=0; imMidiOutDev); + + // if the midi port name wasn't found update the ini file, and set to off + if(outdevidx == -1) + { + strcpy(gState->mMidiOutDev, "off"); + UpdateINI(); + outdevidx = 0; + } + + SendDlgItemMessage(hwndDlg,IDC_COMBO_MIDI_OUT_DEV,CB_SETCURSEL, outdevidx, 0); + + // Populate MIDI channel dialogs + + SendDlgItemMessage(hwndDlg,IDC_COMBO_MIDI_IN_CHAN,CB_ADDSTRING,0,(LPARAM)"all"); + SendDlgItemMessage(hwndDlg,IDC_COMBO_MIDI_OUT_CHAN,CB_ADDSTRING,0,(LPARAM)"all"); + + char buf[20]; + + for (int i=0; i<16; i++) + { + wsprintf(buf,"%i",i+1); + SendDlgItemMessage(hwndDlg,IDC_COMBO_MIDI_IN_CHAN,CB_ADDSTRING,0,(LPARAM)buf); + SendDlgItemMessage(hwndDlg,IDC_COMBO_MIDI_OUT_CHAN,CB_ADDSTRING,0,(LPARAM)buf); + } + + SendDlgItemMessage(hwndDlg,IDC_COMBO_MIDI_IN_CHAN,CB_SETCURSEL, (LPARAM)gState->mMidiInChan, 0); + SendDlgItemMessage(hwndDlg,IDC_COMBO_MIDI_OUT_CHAN,CB_SETCURSEL, (LPARAM)gState->mMidiOutChan, 0); + + return true; + } +} + +#ifdef OS_WIN +void PopulatePreferencesDialog(HWND hwndDlg) +{ + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_DRIVER,CB_ADDSTRING,0,(LPARAM)"DirectSound"); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_DRIVER,CB_ADDSTRING,0,(LPARAM)"ASIO"); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_DRIVER,CB_SETCURSEL, gState->mAudioDriverType, 0); + + PopulateAudioDialogs(hwndDlg); + PopulateMidiDialogs(hwndDlg); +} + +#elif defined OS_OSX +void PopulatePreferencesDialog(HWND hwndDlg) +{ + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_DRIVER,CB_ADDSTRING,0,(LPARAM)"CoreAudio"); + //SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_DRIVER,CB_ADDSTRING,0,(LPARAM)"Jack"); + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_DRIVER,CB_SETCURSEL, gState->mAudioDriverType, 0); + + PopulateAudioDialogs(hwndDlg); + PopulateMidiDialogs(hwndDlg); +} +#endif + +WDL_DLGRET PreferencesDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + int v = 0; + switch(uMsg) + { + case WM_INITDIALOG: + + PopulatePreferencesDialog(hwndDlg); + memcpy(gTempState, gState, sizeof(AppState)); // copy state to temp state + + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) + { + case IDOK: + if(memcmp(gActiveState, gState, sizeof(AppState)) != 0) // if state is different try to change audio + { + TryToChangeAudio(); + } + EndDialog(hwndDlg, IDOK); // INI file will be changed see MainDialogProc + break; + case IDAPPLY: + TryToChangeAudio(); + break; + case IDCANCEL: + EndDialog(hwndDlg, IDCANCEL); + + // if state has been changed reset to previous state, INI file won't be changed + if (!AudioSettingsInStateAreEqual(gState, gTempState) + || !MIDISettingsInStateAreEqual(gState, gTempState)) + { + memcpy(gState, gTempState, sizeof(AppState)); + + TryToChangeAudioDriverType(); + ProbeAudioIO(); + TryToChangeAudio(); + } + + break; + + case IDC_COMBO_AUDIO_DRIVER: + if (HIWORD(wParam) == CBN_SELCHANGE) + { + + v = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_DRIVER, CB_GETCURSEL, 0, 0); + + if(v != gState->mAudioDriverType) + { + gState->mAudioDriverType = v; + + TryToChangeAudioDriverType(); + ProbeAudioIO(); + + strcpy(gState->mAudioInDev,GetAudioDeviceName(gAudioInputDevs[0]).c_str()); + strcpy(gState->mAudioOutDev,GetAudioDeviceName(gAudioOutputDevs[0]).c_str()); + + // Reset IO + gState->mAudioOutChanL = 1; + gState->mAudioOutChanR = 2; + + PopulateAudioDialogs(hwndDlg); + } + } + break; + + case IDC_COMBO_AUDIO_IN_DEV: + if (HIWORD(wParam) == CBN_SELCHANGE) + { + int idx = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_IN_DEV, CB_GETCURSEL, 0, 0); + SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_IN_DEV, CB_GETLBTEXT, idx, (LPARAM) gState->mAudioInDev); + + // Reset IO + gState->mAudioInChanL = 1; + gState->mAudioInChanR = 2; + + PopulateDriverSpecificControls(hwndDlg); + } + break; + + case IDC_COMBO_AUDIO_OUT_DEV: + if (HIWORD(wParam) == CBN_SELCHANGE) + { + int idx = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_OUT_DEV, CB_GETCURSEL, 0, 0); + SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_OUT_DEV, CB_GETLBTEXT, idx, (LPARAM) gState->mAudioOutDev); + + // Reset IO + gState->mAudioOutChanL = 1; + gState->mAudioOutChanR = 2; + + PopulateDriverSpecificControls(hwndDlg); + } + break; + + case IDC_COMBO_AUDIO_IN_L: + if (HIWORD(wParam) == CBN_SELCHANGE) + { + gState->mAudioInChanL = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_IN_L, CB_GETCURSEL, 0, 0) + 1; + + //TEMP + gState->mAudioInChanR = gState->mAudioInChanL + 1; + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_IN_R,CB_SETCURSEL, gState->mAudioInChanR - 1, 0); + // + } + break; + + case IDC_COMBO_AUDIO_IN_R: + if (HIWORD(wParam) == CBN_SELCHANGE) + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_IN_R,CB_SETCURSEL, gState->mAudioInChanR - 1, 0); // TEMP +// gState->mAudioInChanR = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_IN_R, CB_GETCURSEL, 0, 0); + break; + + case IDC_COMBO_AUDIO_OUT_L: + if (HIWORD(wParam) == CBN_SELCHANGE) + { + gState->mAudioOutChanL = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_OUT_L, CB_GETCURSEL, 0, 0) + 1; + + //TEMP + gState->mAudioOutChanR = gState->mAudioOutChanL + 1; + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_OUT_R,CB_SETCURSEL, gState->mAudioOutChanR - 1, 0); + // + } + break; + + case IDC_COMBO_AUDIO_OUT_R: + if (HIWORD(wParam) == CBN_SELCHANGE) + SendDlgItemMessage(hwndDlg,IDC_COMBO_AUDIO_OUT_R,CB_SETCURSEL, gState->mAudioOutChanR - 1, 0); // TEMP +// gState->mAudioOutChanR = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_OUT_R, CB_GETCURSEL, 0, 0); + break; + + case IDC_CB_MONO_INPUT: + if (SendDlgItemMessage(hwndDlg,IDC_CB_MONO_INPUT, BM_GETCHECK, 0, 0) == BST_CHECKED) + gState->mAudioInIsMono = 1; + else + gState->mAudioInIsMono = 0; + break; + + case IDC_COMBO_AUDIO_IOVS: // follow through + case IDC_COMBO_AUDIO_SIGVS: + //TODO: FIX + if (HIWORD(wParam) == CBN_SELCHANGE) + { + int iovsidx = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_IOVS, CB_GETCURSEL, 0, 0); + int sigvsidx = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_SIGVS, CB_GETCURSEL, 0, 0); + + if (atoi(kIOVSOptions[iovsidx].c_str()) < atoi(kSIGVSOptions[sigvsidx].c_str())) // if iovs < sigvs + { + SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_IOVS, CB_GETLBTEXT, iovsidx, (LPARAM) gState->mAudioIOVS); + strcpy(gState->mAudioSigVS, kSIGVSOptions[0].c_str()); // set sigvs to minimum + SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_SIGVS, CB_SETCURSEL, -1, 0); + } + else + { + SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_IOVS, CB_GETLBTEXT, iovsidx, (LPARAM) gState->mAudioIOVS); + SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_SIGVS, CB_GETLBTEXT, sigvsidx, (LPARAM) gState->mAudioSigVS); + } + } + break; + case IDC_COMBO_AUDIO_SR: + if (HIWORD(wParam) == CBN_SELCHANGE) + { + int idx = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_SR, CB_GETCURSEL, 0, 0); + SendDlgItemMessage(hwndDlg, IDC_COMBO_AUDIO_SR, CB_GETLBTEXT, idx, (LPARAM) gState->mAudioSR); + } + break; + + case IDC_BUTTON_ASIO: + if (HIWORD(wParam) == BN_CLICKED) + #ifdef OS_OSX + system("open \"/Applications/Utilities/Audio MIDI Setup.app\""); + #elif defined OS_WIN + if( gState->mAudioDriverType == DAC_ASIO && gDAC->isStreamRunning()) // TODO: still not right + ASIOControlPanel(); + #endif + break; + + case IDC_COMBO_MIDI_IN_DEV: + if (HIWORD(wParam) == CBN_SELCHANGE) + { + int idx = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_MIDI_IN_DEV, CB_GETCURSEL, 0, 0); + SendDlgItemMessage(hwndDlg, IDC_COMBO_MIDI_IN_DEV, CB_GETLBTEXT, idx, (LPARAM) gState->mMidiInDev); + ChooseMidiInput( gState->mMidiInDev ); + } + break; + + case IDC_COMBO_MIDI_OUT_DEV: + if (HIWORD(wParam) == CBN_SELCHANGE) + { + int idx = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_MIDI_OUT_DEV, CB_GETCURSEL, 0, 0); + SendDlgItemMessage(hwndDlg, IDC_COMBO_MIDI_OUT_DEV, CB_GETLBTEXT, idx, (LPARAM) gState->mMidiOutDev); + ChooseMidiOutput( gState->mMidiOutDev ); + } + break; + + case IDC_COMBO_MIDI_IN_CHAN: + if (HIWORD(wParam) == CBN_SELCHANGE) + gState->mMidiInChan = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_MIDI_IN_CHAN, CB_GETCURSEL, 0, 0); + break; + + case IDC_COMBO_MIDI_OUT_CHAN: + if (HIWORD(wParam) == CBN_SELCHANGE) + gState->mMidiOutChan = (int) SendDlgItemMessage(hwndDlg, IDC_COMBO_MIDI_OUT_CHAN, CB_GETCURSEL, 0, 0); + break; + + default: + break; + } + break; + default: + return FALSE; + } + return TRUE; +} + +#ifdef _WIN32 +void ClientResize(HWND hWnd, int nWidth, int nHeight) +{ + RECT rcClient, rcWindow; + POINT ptDiff; + int screenwidth, screenheight; + int x, y; + + screenwidth = GetSystemMetrics(SM_CXSCREEN); + screenheight = GetSystemMetrics(SM_CYSCREEN); + x = (screenwidth / 2) - (nWidth/2); + y = (screenheight / 2) - (nHeight/2); + + GetClientRect(hWnd, &rcClient); + GetWindowRect(hWnd, &rcWindow); + ptDiff.x = (rcWindow.right - rcWindow.left) - rcClient.right; + ptDiff.y = (rcWindow.bottom - rcWindow.top) - rcClient.bottom; + MoveWindow(hWnd, x, y, nWidth + ptDiff.x, nHeight + ptDiff.y, FALSE); +} +#endif + +WDL_DLGRET MainDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + switch (uMsg) + { + case WM_INITDIALOG: + + gHWND=hwndDlg; + + if(!AttachGUI()) printf("couldn't attach gui\n"); + +#ifdef _WIN32 + ClientResize(hwndDlg, GUI_WIDTH, GUI_HEIGHT); + //SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(NULL, MAKEINTRESOURCE(IDI_ICON1))); + //SendMessage(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)LoadIcon(NULL, MAKEINTRESOURCE(IDI_ICON1))); + +#else // OSX + CenterWindow(hwndDlg); +#endif + + ShowWindow(hwndDlg,SW_SHOW); + return 1; + case WM_DESTROY: + gHWND=NULL; + +#ifdef _WIN32 + PostQuitMessage(0); +#else + SWELL_PostQuitMessage(hwndDlg); +#endif + + return 0; + case WM_CLOSE: + DestroyWindow(hwndDlg); + return 0; +// case WM_GETDLGCODE: { +// LPARAM lres; +// lres = CallWindowProc(/*TODO GET PROC */, hWnd, WM_GETDLGCODE, wParam, lParam); +// if (lParam && ((MSG*)lParam)->message == WM_KEYDOWN && wParam == VK_LEFT) { +// lres |= DLGC_WANTMESSAGE; +// } +// return lres; +// } + case WM_COMMAND: + switch (LOWORD(wParam)) + { + case ID_QUIT: + DestroyWindow(hwndDlg); + return 0; + case ID_ABOUT: + if(!gPluginInstance->HostRequestingAboutBox()) + { + char version[50]; + sprintf(version, BUNDLE_MFR"\nBuilt on " __DATE__); + MessageBox(hwndDlg,version, BUNDLE_NAME, MB_OK); + } + return 0; + case ID_PREFERENCES: + { + INT_PTR ret = DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIALOG_PREF), hwndDlg, PreferencesDlgProc); + + if(ret == IDOK) + { + UpdateINI(); + } + + return 0; + } + } + return 0; + } + return 0; +} diff -r 000000000000 -r 3004dd663202 app_wrapper/app_main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app_wrapper/app_main.cpp Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,1056 @@ +#include "app_main.h" + +#ifdef OS_WIN + #include + #include + #include +#endif + +HWND gHWND; + +HINSTANCE gHINST; +UINT gScrollMessage; +IPlug* gPluginInstance; +RtAudio* gDAC = 0; +RtMidiIn *gMidiIn = 0; +RtMidiOut *gMidiOut = 0; + +AppState *gState; +AppState *gTempState; +AppState *gActiveState; + +char *gINIPath = new char[200]; // path of ini file + +unsigned int gIOVS = 512; +unsigned int gSigVS = 32; +unsigned int gBufIndex = 0; // Loops 0 to SigVS +unsigned int gVecElapsed = 0; +double gFadeMult = 0.; // Fade multiplier + +std::vector gAudioInputDevs; +std::vector gAudioOutputDevs; +std::vector gMIDIInputDevNames; +std::vector gMIDIOutputDevNames; +std::vector gAudioIDDevNames; + +void UpdateINI() +{ + char buf[100]; // temp buffer for writing integers to profile strings + + sprintf(buf, "%u", gState->mAudioDriverType); + WritePrivateProfileString("audio", "driver", buf, gINIPath); + + WritePrivateProfileString("audio", "indev", gState->mAudioInDev, gINIPath); + WritePrivateProfileString("audio", "outdev", gState->mAudioOutDev, gINIPath); + + sprintf(buf, "%u", gState->mAudioInChanL); + WritePrivateProfileString("audio", "in1", buf, gINIPath); + sprintf(buf, "%u", gState->mAudioInChanR); + WritePrivateProfileString("audio", "in2", buf, gINIPath); + sprintf(buf, "%u", gState->mAudioOutChanL); + WritePrivateProfileString("audio", "out1", buf, gINIPath); + sprintf(buf, "%u", gState->mAudioOutChanR); + WritePrivateProfileString("audio", "out2", buf, gINIPath); + sprintf(buf, "%u", gState->mAudioInIsMono); + WritePrivateProfileString("audio", "monoinput", buf, gINIPath); + + WritePrivateProfileString("audio", "iovs", gState->mAudioIOVS, gINIPath); + WritePrivateProfileString("audio", "sigvs", gState->mAudioSigVS, gINIPath); + + WritePrivateProfileString("audio", "sr", gState->mAudioSR, gINIPath); + + WritePrivateProfileString("midi", "indev", gState->mMidiInDev, gINIPath); + WritePrivateProfileString("midi", "outdev", gState->mMidiOutDev, gINIPath); + + sprintf(buf, "%u", gState->mMidiInChan); + WritePrivateProfileString("midi", "inchan", buf, gINIPath); + sprintf(buf, "%u", gState->mMidiOutChan); + WritePrivateProfileString("midi", "outchan", buf, gINIPath); +} + +// returns the device name. Core Audio device names are truncated +std::string GetAudioDeviceName(int idx) +{ + return gAudioIDDevNames.at(idx); +} + +// returns the rtaudio device ID, based on the (truncated) device name +int GetAudioDeviceID(char* deviceNameToTest) +{ + TRACE; + + for(int i = 0; i < gAudioIDDevNames.size(); i++) + { + if(!strcmp(deviceNameToTest, gAudioIDDevNames.at(i).c_str() )) + return i; + } + + return -1; +} + +unsigned int GetMIDIInPortNumber(const char* nameToTest) +{ + int start = 1; + + if(!strcmp(nameToTest, "off")) return 0; + + #ifdef OS_OSX + start = 2; + if(!strcmp(nameToTest, "virtual input")) return 1; + #endif + + for (int i = 0; i < gMidiIn->getPortCount(); i++) + { + if(!strcmp(nameToTest, gMidiIn->getPortName(i).c_str())) + return (i + start); + } + + return -1; +} + +unsigned int GetMIDIOutPortNumber(const char* nameToTest) +{ + int start = 1; + + if(!strcmp(nameToTest, "off")) return 0; + + #ifdef OS_OSX + start = 2; + if(!strcmp(nameToTest, "virtual output")) return 1; + #endif + + for (int i = 0; i < gMidiOut->getPortCount(); i++) + { + if(!strcmp(nameToTest, gMidiOut->getPortName(i).c_str())) + return (i + start); + } + + return -1; +} + +// find out which devices have input channels & which have output channels, add their ids to the lists +void ProbeAudioIO() +{ + TRACE; + + RtAudio::DeviceInfo info; + + gAudioInputDevs.clear(); + gAudioOutputDevs.clear(); + gAudioIDDevNames.clear(); + + unsigned int nDevices = gDAC->getDeviceCount(); + + for (int i=0; igetDeviceInfo(i); + std::string deviceName = info.name; + + #ifdef OS_OSX + size_t colonIdx = deviceName.rfind(": "); + + if(colonIdx != std::string::npos && deviceName.length() >= 2) + deviceName = deviceName.substr(colonIdx + 2, deviceName.length() - colonIdx - 2); + + #endif + + gAudioIDDevNames.push_back(deviceName); + + if ( info.probed == false ) + std::cout << deviceName << ": Probe Status = Unsuccessful\n"; + else if ( !strcmp("Generic Low Latency ASIO Driver", deviceName.c_str() )) + std::cout << deviceName << ": Probe Status = Unsuccessful\n"; + else + { + if(info.inputChannels > 0) + gAudioInputDevs.push_back(i); + + if(info.outputChannels > 0) + gAudioOutputDevs.push_back(i); + } + } +} + +void ProbeMidiIO() +{ + if ( !gMidiIn || !gMidiOut ) + return; + else + { + int nInputPorts = gMidiIn->getPortCount(); + + gMIDIInputDevNames.push_back("off"); + + #ifndef OS_WIN + gMIDIInputDevNames.push_back("virtual input"); + #endif + + for (int i=0; igetPortName(i)); + } + + int nOutputPorts = gMidiOut->getPortCount(); + + gMIDIOutputDevNames.push_back("off"); + +#ifndef _WIN32 + gMIDIOutputDevNames.push_back("virtual output"); +#endif + + for (int i=0; igetPortName(i)); + //This means the virtual output port wont be added as an input + } + } +} + +bool AudioSettingsInStateAreEqual(AppState* os, AppState* ns) +{ + if (os->mAudioDriverType != ns->mAudioDriverType) return false; + if (strcmp(os->mAudioInDev, ns->mAudioInDev)) return false; + if (strcmp(os->mAudioOutDev, ns->mAudioOutDev)) return false; + if (strcmp(os->mAudioSR, ns->mAudioSR)) return false; + if (strcmp(os->mAudioIOVS, ns->mAudioIOVS)) return false; + if (strcmp(os->mAudioSigVS, ns->mAudioSigVS)) return false; + if (os->mAudioInChanL != ns->mAudioInChanL) return false; + if (os->mAudioInChanR != ns->mAudioInChanR) return false; + if (os->mAudioOutChanL != ns->mAudioOutChanL) return false; + if (os->mAudioOutChanR != ns->mAudioOutChanR) return false; + if (os->mAudioInIsMono != ns->mAudioInIsMono) return false; + + return true; +} + +bool MIDISettingsInStateAreEqual(AppState* os, AppState* ns) +{ + if (strcmp(os->mMidiInDev, ns->mMidiInDev)) return false; + if (strcmp(os->mMidiOutDev, ns->mMidiOutDev)) return false; + if (os->mMidiInChan != ns->mMidiInChan) return false; + if (os->mMidiOutChan != ns->mMidiOutChan) return false; + + return true; +} + +void MIDICallback( double deltatime, std::vector< unsigned char > *message, void *userData ) +{ + if ( message->size() ) + { + IMidiMsg *myMsg; + + switch (message->size()) + { + case 1: + myMsg = new IMidiMsg(0, message->at(0), 0, 0); + break; + case 2: + myMsg = new IMidiMsg(0, message->at(0), message->at(1), 0); + break; + case 3: + myMsg = new IMidiMsg(0, message->at(0), message->at(1), message->at(2)); + break; + default: + DBGMSG("NOT EXPECTING %d midi callback msg len\n", (int) message->size()); + break; + } + + IMidiMsg msg(*myMsg); + + delete myMsg; + + // filter midi messages based on channel, if gStatus.mMidiInChan != all (0) + if (gState->mMidiInChan) + { + if (gState->mMidiInChan == msg.Channel() + 1 ) + gPluginInstance->ProcessMidiMsg(&msg); + } + else + { + gPluginInstance->ProcessMidiMsg(&msg); + } + } +} + +int AudioCallback(void *outputBuffer, + void *inputBuffer, + unsigned int nFrames, + double streamTime, + RtAudioStreamStatus status, + void *userData ) +{ + if ( status ) + std::cout << "Stream underflow detected!" << std::endl; + + double* inputBufferD = (double*)inputBuffer; + double* outputBufferD = (double*)outputBuffer; + + int inRightOffset = 0; + + if(!gState->mAudioInIsMono) + inRightOffset = nFrames; + + if (gVecElapsed > N_VECTOR_WAIT) // wait N_VECTOR_WAIT * iovs before processing audio, to avoid clicks + { + for (int i=0; iLockMutexAndProcessDoubleReplacing(inputs, outputs, gSigVS); + } + + // fade in + if (gFadeMult < 1.) + { + gFadeMult += (1. / nFrames); + } + + outputBufferD[i] *= gFadeMult; + outputBufferD[i + nFrames] *= gFadeMult; + + outputBufferD[i] *= APP_MULT; + outputBufferD[i + nFrames] *= APP_MULT; + + gBufIndex++; + } + } + else + { + memset(outputBuffer, 0, nFrames * 2 * sizeof(double)); + } + + gVecElapsed++; + + return 0; +} + +bool TryToChangeAudioDriverType() +{ + TRACE; + + if (gDAC) + { + if (gDAC->isStreamOpen()) + { + gDAC->closeStream(); + } + + DELETE_NULL(gDAC); + } + +#ifdef OS_WIN + if(gState->mAudioDriverType == DAC_ASIO) + gDAC = new RtAudio(RtAudio::WINDOWS_ASIO); + else + gDAC = new RtAudio(RtAudio::WINDOWS_DS); +#elif defined OS_OSX + if(gState->mAudioDriverType == DAC_COREAUDIO) + gDAC = new RtAudio(RtAudio::MACOSX_CORE); + //else + //gDAC = new RtAudio(RtAudio::UNIX_JACK); +#endif + + if(gDAC) + return true; + else + return false; +} + +bool TryToChangeAudio() +{ + TRACE; + + int inputID = -1; + int outputID = -1; + +#ifdef OS_WIN + if(gState->mAudioDriverType == DAC_ASIO) + inputID = GetAudioDeviceID(gState->mAudioOutDev); + else + inputID = GetAudioDeviceID(gState->mAudioInDev); +#else + inputID = GetAudioDeviceID(gState->mAudioInDev); +#endif + + outputID = GetAudioDeviceID(gState->mAudioOutDev); + + int samplerate = atoi(gState->mAudioSR); + int iovs = atoi(gState->mAudioIOVS); + + if (inputID != -1 && outputID != -1) + { + return InitialiseAudio(inputID, outputID, samplerate, iovs, NUM_CHANNELS, gState->mAudioInChanL - 1, gState->mAudioOutChanL - 1); + } + + return false; +} + +bool InitialiseAudio(unsigned int inId, + unsigned int outId, + unsigned int sr, + unsigned int iovs, + unsigned int chnls, + unsigned int inChanL, + unsigned int outChanL + ) +{ + TRACE; + + if (gDAC->isStreamOpen()) + { + if (gDAC->isStreamRunning()) + { + try + { + gDAC->abortStream(); + } + catch (RtError& e) + { + e.printMessage(); + } + } + + gDAC->closeStream(); + } + + RtAudio::StreamParameters iParams, oParams; + iParams.deviceId = inId; + iParams.nChannels = chnls; + iParams.firstChannel = inChanL; + + oParams.deviceId = outId; + oParams.nChannels = chnls; + oParams.firstChannel = outChanL; + + gIOVS = iovs; // gIOVS may get changed by stream + gSigVS = atoi(gState->mAudioSigVS); // This is done here so that it changes when the callback is stopped + + DBGMSG("\ntrying to start audio stream @ %i sr, %i iovs, %i sigvs\nindev = %i:%s\noutdev = %i:%s\n", sr, iovs, gSigVS, inId, GetAudioDeviceName(inId).c_str(), outId, GetAudioDeviceName(outId).c_str()); + + RtAudio::StreamOptions options; + options.flags = RTAUDIO_NONINTERLEAVED; +// options.streamName = BUNDLE_NAME; // JACK stream name, not used on other streams + + gBufIndex = 0; + gVecElapsed = 0; + gFadeMult = 0.; + + gPluginInstance->SetBlockSize(gSigVS); + gPluginInstance->SetSampleRate(sr); + gPluginInstance->Reset(); + + try + { + TRACE; + gDAC->openStream( &oParams, &iParams, RTAUDIO_FLOAT64, sr, &gIOVS, &AudioCallback, NULL, &options); + gDAC->startStream(); + + memcpy(gActiveState, gState, sizeof(AppState)); // copy state to active state + } + catch ( RtError& e ) + { + e.printMessage(); + return false; + } + + return true; +} + +bool InitialiseMidi() +{ + try + { + gMidiIn = new RtMidiIn(); + } + catch ( RtError &error ) + { + FREE_NULL(gMidiIn); + error.printMessage(); + return false; + } + + try + { + gMidiOut = new RtMidiOut(); + } + catch ( RtError &error ) + { + FREE_NULL(gMidiOut); + error.printMessage(); + return false; + } + + gMidiIn->setCallback( &MIDICallback ); + gMidiIn->ignoreTypes( !ENABLE_SYSEX, !ENABLE_MIDICLOCK, !ENABLE_ACTIVE_SENSING ); + + return true; +} + +bool ChooseMidiInput(const char* pPortName) +{ + unsigned int port = GetMIDIInPortNumber(pPortName); + + if(port == -1) + { + strcpy(gState->mMidiInDev, "off"); + UpdateINI(); + port = 0; + } + /* + IMidiMsg msg; + msg.MakeControlChangeMsg(IMidiMsg::kAllNotesOff, 127, 0); + + std::vector message; + message.push_back( msg.mStatus ); + message.push_back( msg.mData1 ); + message.push_back( msg.mData2 ); + + gPluginInstance->ProcessMidiMsg(&msg); + */ + if (gMidiIn) + { + gMidiIn->closePort(); + + if (port == 0) + { + return true; + } + #ifdef OS_WIN + else + { + gMidiIn->openPort(port-1); + return true; + } + #else + else if(port == 1) + { + std::string virtualMidiInputName = "To "; + virtualMidiInputName += BUNDLE_NAME; + gMidiIn->openVirtualPort(virtualMidiInputName); + return true; + } + else + { + gMidiIn->openPort(port-2); + return true; + } + #endif + } + + return false; +} + +bool ChooseMidiOutput(const char* pPortName) +{ + unsigned int port = GetMIDIOutPortNumber(pPortName); + + if(port == -1) + { + strcpy(gState->mMidiOutDev, "off"); + UpdateINI(); + port = 0; + } + + if (gMidiOut) + { + /* + IMidiMsg msg; + msg.MakeControlChangeMsg(IMidiMsg::kAllNotesOff, 127, 0); + + std::vector message; + message.push_back( msg.mStatus ); + message.push_back( msg.mData1 ); + message.push_back( msg.mData2 ); + + gMidiOut->sendMessage( &message ); + */ + gMidiOut->closePort(); + + if (port == 0) + { + return true; + } + #ifdef OS_WIN + else + { + gMidiOut->openPort(port-1); + return true; + } + #else + else if(port == 1) + { + std::string virtualMidiOutputName = "From "; + virtualMidiOutputName += BUNDLE_NAME; + gMidiOut->openVirtualPort(virtualMidiOutputName); + return true; + } + else + { + gMidiOut->openPort(port-2); + return true; + } + #endif + } + + return false; +} + +extern bool AttachGUI() +{ + IGraphics* pGraphics = gPluginInstance->GetGUI(); + + if (pGraphics) + { +#ifdef OS_WIN + if (!pGraphics->OpenWindow(gHWND)) + pGraphics=0; +#else // Cocoa OSX + if (!pGraphics->OpenWindow(gHWND)) + pGraphics=0; +#endif + if (pGraphics) + { + gPluginInstance->OnGUIOpen(); + return true; + } + } + + return false; +} + +void Init() +{ + TryToChangeAudioDriverType(); // will init RTAudio with an API type based on gState->mAudioDriverType + ProbeAudioIO(); // find out what audio IO devs are available and put their IDs in the global variables gAudioInputDevs / gAudioOutputDevs + InitialiseMidi(); // creates RTMidiIn and RTMidiOut objects + ProbeMidiIO(); // find out what midi IO devs are available and put their names in the global variables gMidiInputDevs / gMidiOutputDevs + + // Initialise the plugin + gPluginInstance = MakePlug(gMidiOut, &gState->mMidiOutChan); + gPluginInstance->RestorePreset(0); + + ChooseMidiInput(gState->mMidiInDev); + ChooseMidiOutput(gState->mMidiOutDev); + + TryToChangeAudio(); +} + +void Cleanup() +{ + try + { + // Stop the stream + gDAC->stopStream(); + } + catch (RtError& e) + { + e.printMessage(); + } + + gMidiIn->cancelCallback(); + gMidiIn->closePort(); + gMidiOut->closePort(); + + if ( gDAC->isStreamOpen() ) gDAC->closeStream(); + + delete gPluginInstance; + delete gState; + delete gTempState; + delete gActiveState; + delete gMidiIn; + delete gMidiOut; + delete gDAC; + delete [] gINIPath; +} + +#ifdef OS_WIN +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nShowCmd) +{ + // first check to make sure this is the only instance running + // http://www.bcbjournal.org/articles/vol3/9911/Single-instance_applications.htm + try + { + // Try to open the mutex. + HANDLE hMutex = OpenMutex( + MUTEX_ALL_ACCESS, 0, BUNDLE_NAME); + + // If hMutex is 0 then the mutex doesn't exist. + if (!hMutex) + hMutex = CreateMutex(0, 0, BUNDLE_NAME); + else + { + // This is a second instance. Bring the + // original instance to the top. + HWND hWnd = FindWindow(0, BUNDLE_NAME); + SetForegroundWindow(hWnd); + + return 0; + } + + gHINST=hInstance; + + InitCommonControls(); + gScrollMessage = RegisterWindowMessage("MSWHEEL_ROLLMSG"); + + gState = new AppState(); + gTempState = new AppState(); + gActiveState = new AppState(); + + if (SHGetFolderPathA( NULL, CSIDL_LOCAL_APPDATA, NULL, 0, gINIPath ) != S_OK) + { + DBGMSG("could not retrieve the user's application data directory!\n"); + + //TODO error msg? + return 1; + } + + sprintf(gINIPath, "%s\\%s", gINIPath, BUNDLE_NAME); // Add the app name to the path + + struct stat st; + if(stat(gINIPath, &st) == 0) // if directory exists + { + sprintf(gINIPath, "%s\\%s", gINIPath, "settings.ini"); // add file name to path + + if(stat(gINIPath, &st) == 0) // if settings file exists read values into state + { + gState->mAudioDriverType = GetPrivateProfileInt("audio", "driver", 0, gINIPath); + + GetPrivateProfileString("audio", "indev", DEFAULT_INPUT_DEV, gState->mAudioInDev, 100, gINIPath); + GetPrivateProfileString("audio", "outdev", DEFAULT_OUTPUT_DEV, gState->mAudioOutDev, 100, gINIPath); + + //audio + gState->mAudioInChanL = GetPrivateProfileInt("audio", "in1", 1, gINIPath); // 1 is first audio input + gState->mAudioInChanR = GetPrivateProfileInt("audio", "in2", 2, gINIPath); + gState->mAudioOutChanL = GetPrivateProfileInt("audio", "out1", 1, gINIPath); // 1 is first audio output + gState->mAudioOutChanR = GetPrivateProfileInt("audio", "out2", 2, gINIPath); + gState->mAudioInIsMono = GetPrivateProfileInt("audio", "monoinput", 0, gINIPath); + + GetPrivateProfileString("audio", "iovs", "512", gState->mAudioIOVS, 100, gINIPath); + GetPrivateProfileString("audio", "sigvs", "32", gState->mAudioSigVS, 100, gINIPath); + GetPrivateProfileString("audio", "sr", "44100", gState->mAudioSR, 100, gINIPath); + + //midi + GetPrivateProfileString("midi", "indev", "no input", gState->mMidiInDev, 100, gINIPath); + GetPrivateProfileString("midi", "outdev", "no output", gState->mMidiOutDev, 100, gINIPath); + + gState->mMidiInChan = GetPrivateProfileInt("midi", "inchan", 0, gINIPath); // 0 is any + gState->mMidiOutChan = GetPrivateProfileInt("midi", "outchan", 0, gINIPath); // 1 is first chan + + UpdateINI(); // this will write over any invalid values in the file + } + else // settings file doesn't exist, so populate with default values + { + UpdateINI(); + } + } + else + { + // folder doesn't exist - make folder and make file + CreateDirectory(gINIPath, NULL); + sprintf(gINIPath, "%s\\%s", gINIPath, "settings.ini"); // add file name to path + UpdateINI(); // will write file if doesn't exist + } + + Init(); + + CreateDialog(gHINST,MAKEINTRESOURCE(IDD_DIALOG_MAIN),GetDesktopWindow(),MainDlgProc); + + for(;;) + { + MSG msg= {0,}; + int vvv = GetMessage(&msg,NULL,0,0); + if (!vvv) break; + + if (vvv<0) + { + Sleep(10); + continue; + } + if (!msg.hwnd) + { + DispatchMessage(&msg); + continue; + } + + if (gHWND && IsDialogMessage(gHWND,&msg)) continue; + + // default processing for other dialogs + HWND hWndParent=NULL; + HWND temphwnd = msg.hwnd; + do + { + if (GetClassLong(temphwnd, GCW_ATOM) == (INT)32770) + { + hWndParent=temphwnd; + if (!(GetWindowLong(temphwnd,GWL_STYLE)&WS_CHILD)) break; // not a child, exit + } + } + while (temphwnd = GetParent(temphwnd)); + + if (hWndParent && IsDialogMessage(hWndParent,&msg)) continue; + + TranslateMessage(&msg); + DispatchMessage(&msg); + + } + + // in case gHWND didnt get destroyed -- this corresponds to SWELLAPP_DESTROY roughly + if (gHWND) DestroyWindow(gHWND); + + Cleanup(); + + ReleaseMutex(hMutex); + } + catch(...) + { + //TODO proper error catching + DBGMSG("another instance running"); + } + return 0; +} +#else + +extern HMENU SWELL_app_stocksysmenu; +const char *homeDir; + +INT_PTR SWELLAppMain(int msg, INT_PTR parm1, INT_PTR parm2) +{ + switch (msg) + { + case SWELLAPP_ONLOAD: + + gState = new AppState(); + gTempState = new AppState(); + gActiveState = new AppState(); + + homeDir = getenv("HOME"); + sprintf(gINIPath, "%s/Library/Application Support/%s/", homeDir, BUNDLE_NAME); + + struct stat st; + if(stat(gINIPath, &st) == 0) // if directory exists + { + sprintf(gINIPath, "%s%s", gINIPath, "settings.ini"); // add file name to path + + if(stat(gINIPath, &st) == 0) // if settings file exists read values into state + { + gState->mAudioDriverType = GetPrivateProfileInt("audio", "driver", 0, gINIPath); + + GetPrivateProfileString("audio", "indev", "Built-in Input", gState->mAudioInDev, 100, gINIPath); + GetPrivateProfileString("audio", "outdev", "Built-in Output", gState->mAudioOutDev, 100, gINIPath); + + //audio + gState->mAudioInChanL = GetPrivateProfileInt("audio", "in1", 1, gINIPath); // 1 is first audio input + gState->mAudioInChanR = GetPrivateProfileInt("audio", "in2", 2, gINIPath); + gState->mAudioOutChanL = GetPrivateProfileInt("audio", "out1", 1, gINIPath); // 1 is first audio output + gState->mAudioOutChanR = GetPrivateProfileInt("audio", "out2", 2, gINIPath); + gState->mAudioInIsMono = GetPrivateProfileInt("audio", "monoinput", 0, gINIPath); + + GetPrivateProfileString("audio", "iovs", "512", gState->mAudioIOVS, 100, gINIPath); + GetPrivateProfileString("audio", "sigvs", "32", gState->mAudioSigVS, 100, gINIPath); + GetPrivateProfileString("audio", "sr", "44100", gState->mAudioSR, 100, gINIPath); + + //midi + GetPrivateProfileString("midi", "indev", "no input", gState->mMidiInDev, 100, gINIPath); + GetPrivateProfileString("midi", "outdev", "no output", gState->mMidiOutDev, 100, gINIPath); + + gState->mMidiInChan = GetPrivateProfileInt("midi", "inchan", 0, gINIPath); // 0 is any + gState->mMidiOutChan = GetPrivateProfileInt("midi", "outchan", 0, gINIPath); // 1 is first chan + + UpdateINI(); // this will write over any invalid values in the file + } + else // settings file doesn't exist, so populate with default values + { + UpdateINI(); + } + + } + else // folder doesn't exist - make folder and make file + { + // http://blog.tremend.ro/2008/10/06/create-directories-in-c-using-mkdir-with-proper-permissions/ + + mode_t process_mask = umask(0); + int result_code = mkdir(gINIPath, S_IRWXU | S_IRWXG | S_IRWXO); + umask(process_mask); + + if(result_code) return 1; + else + { + sprintf(gINIPath, "%s%s", gINIPath, "settings.ini"); // add file name to path + UpdateINI(); // will write file if doesn't exist + } + } + break; +#pragma mark loaded + case SWELLAPP_LOADED: + { + Init(); + + HMENU menu = SWELL_GetCurrentMenu(); + + if (menu) + { + // other windows will get the stock (bundle) menus + //SWELL_SetDefaultModalWindowMenu(menu); + //SWELL_SetDefaultWindowMenu(menu); + + // work on a new menu + menu = SWELL_DuplicateMenu(menu); + HMENU src = LoadMenu(NULL,MAKEINTRESOURCE(IDR_MENU1)); + int x; + for (x=0; x 0 && GetMenuItemID(sm,a-1)==0) DeleteMenu(sm,--a,MF_BYPOSITION); + + DeleteMenu(menu,1,MF_BYPOSITION); // delete file menu + } + + // if we want to set any default modifiers for items in the menus, we can use: + // SetMenuItemModifier(menu,commandID,MF_BYCOMMAND,'A',FCONTROL) etc. + + HWND hwnd = CreateDialog(gHINST,MAKEINTRESOURCE(IDD_DIALOG_MAIN),NULL,MainDlgProc); + if (menu) + { + SetMenu(hwnd, menu); // set the menu for the dialog to our menu (on Windows that menu is set from the .rc, but on SWELL + SWELL_SetDefaultModalWindowMenu(menu); // other windows will get the stock (bundle) menus + } + // we need to set it manually (and obviously we've edited the menu anyway) + } + + if(!AttachGUI()) DBGMSG("couldn't attach gui\n"); //todo error + + break; + case SWELLAPP_ONCOMMAND: + // this is to catch commands coming from the system menu etc + if (gHWND && (parm1&0xffff)) SendMessage(gHWND,WM_COMMAND,parm1&0xffff,0); + break; +#pragma mark destroy + case SWELLAPP_DESTROY: + + if (gHWND) DestroyWindow(gHWND); + Cleanup(); + break; + case SWELLAPP_PROCESSMESSAGE: // can hook keyboard input here + // parm1 = (MSG*), should we want it -- look in swell.h to see what the return values refer to + break; + } + return 0; +} + +#endif + + +#ifndef OS_WIN +#include "swell-dlggen.h" + +#define SET_IDD_SCALE 1. +#define SET_IDD_STYLE SWELL_DLG_WS_FLIPPED|SWELL_DLG_WS_NOAUTOSIZE + +SWELL_DEFINE_DIALOG_RESOURCE_BEGIN(IDD_DIALOG_MAIN, SET_IDD_STYLE, BUNDLE_NAME, GUI_WIDTH, GUI_HEIGHT, SET_IDD_SCALE) +BEGIN +// EDITTEXT IDC_EDIT1,59,50,145,14,ES_AUTOHSCROLL +// LTEXT "Enter some text here:",IDC_STATIC,59,39,73,8 +END +SWELL_DEFINE_DIALOG_RESOURCE_END(IDD_DIALOG_MAIN) + +SWELL_DEFINE_DIALOG_RESOURCE_BEGIN(IDD_DIALOG_PREF,SET_IDD_STYLE,"Preferences",320,420,SET_IDD_SCALE) +BEGIN +GROUPBOX "Audio Settings", IDC_STATIC, 5, 10, 300, 230 + +LTEXT "Driver Type", IDC_STATIC, 20, 32, 60, 20 +COMBOBOX IDC_COMBO_AUDIO_DRIVER, 20, 50, 150, 100, CBS_DROPDOWNLIST + +LTEXT "Input Device", IDC_STATIC, 20, 75, 80, 20 +COMBOBOX IDC_COMBO_AUDIO_IN_DEV, 20, 90, 150, 100, CBS_DROPDOWNLIST + +LTEXT "Output Device", IDC_STATIC, 20, 115, 80, 20 +COMBOBOX IDC_COMBO_AUDIO_OUT_DEV, 20, 130, 150, 100, CBS_DROPDOWNLIST + +LTEXT "In 1 (L)", IDC_STATIC, 20, 155, 90, 20 +COMBOBOX IDC_COMBO_AUDIO_IN_L, 20, 170, 46, 100, CBS_DROPDOWNLIST + +LTEXT "In 2 (R)", IDC_STATIC, 75, 155, 90, 20 +COMBOBOX IDC_COMBO_AUDIO_IN_R, 75, 170, 46, 100, CBS_DROPDOWNLIST + +CHECKBOX "Mono", IDC_CB_MONO_INPUT, 125, 128, 56, 100, 0 + +LTEXT "Out 1 (L)", IDC_STATIC, 20, 195, 60, 20 +COMBOBOX IDC_COMBO_AUDIO_OUT_L, 20, 210, 46, 100, CBS_DROPDOWNLIST + +LTEXT "Out 2 (R)", IDC_STATIC, 75, 195, 60, 20 +COMBOBOX IDC_COMBO_AUDIO_OUT_R, 75, 210, 46, 100, CBS_DROPDOWNLIST + +LTEXT "IO Vector Size", IDC_STATIC, 200, 32, 80, 20 +COMBOBOX IDC_COMBO_AUDIO_IOVS, 200, 50, 90, 100, CBS_DROPDOWNLIST + +LTEXT "Signal Vector Size", IDC_STATIC, 200, 75, 100, 20 +COMBOBOX IDC_COMBO_AUDIO_SIGVS, 200, 90, 90, 100, CBS_DROPDOWNLIST + +LTEXT "Sampling Rate", IDC_STATIC, 200, 115, 80, 20 +COMBOBOX IDC_COMBO_AUDIO_SR, 200, 130, 90, 100, CBS_DROPDOWNLIST + +PUSHBUTTON "Audio Midi Setup...", IDC_BUTTON_ASIO, 180, 170, 110, 40 + +GROUPBOX "MIDI Settings", IDC_STATIC, 5, 255, 300, 120 + +LTEXT "Input Device", IDC_STATIC, 20, 275, 100, 20 +COMBOBOX IDC_COMBO_MIDI_IN_DEV, 20, 293, 150, 100, CBS_DROPDOWNLIST + +LTEXT "Output Device", IDC_STATIC, 20, 320, 100, 20 +COMBOBOX IDC_COMBO_MIDI_OUT_DEV, 20, 338, 150, 100, CBS_DROPDOWNLIST + +LTEXT "Input Channel", IDC_STATIC, 200, 275, 100, 20 +COMBOBOX IDC_COMBO_MIDI_IN_CHAN, 200, 293, 90, 100, CBS_DROPDOWNLIST + +LTEXT "Output Channel", IDC_STATIC, 200, 320, 100, 20 +COMBOBOX IDC_COMBO_MIDI_OUT_CHAN, 200, 338, 90, 100, CBS_DROPDOWNLIST + +DEFPUSHBUTTON "OK", IDOK, 192, 383, 50, 20 +PUSHBUTTON "Apply", IDAPPLY, 132, 383, 50, 20 +PUSHBUTTON "Cancel", IDCANCEL, 252, 383, 50, 20 +END +SWELL_DEFINE_DIALOG_RESOURCE_END(IDD_DIALOG_PREF) + +#include "swell-menugen.h" + +SWELL_DEFINE_MENU_RESOURCE_BEGIN(IDR_MENU1) +POPUP "&File" +BEGIN +// MENUITEM SEPARATOR +MENUITEM "Preferences...", ID_PREFERENCES +MENUITEM "&Quit", ID_QUIT +END +POPUP "&Help" +BEGIN +MENUITEM "&About", ID_ABOUT +END +SWELL_DEFINE_MENU_RESOURCE_END(IDR_MENU1) + +#endif \ No newline at end of file diff -r 000000000000 -r 3004dd663202 app_wrapper/app_main.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app_wrapper/app_main.h Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,147 @@ +#ifndef _IPLUGAPP_APP_MAIN_H_ +#define _IPLUGAPP_APP_MAIN_H_ + +#include "IPlugOSDetect.h" + +/* + + Standalone osx/win app wrapper for iPlug, using SWELL + Oli Larkin 2012 + + Notes: + + App settings are stored in a .ini file. The location is as follows: + + Windows7: C:\Users\USERNAME\AppData\Local\AccessibleSpectrumAnalyser\settings.ini + Windows XP/Vista: C:\Documents and Settings\USERNAME\Local Settings\Application Data\AccessibleSpectrumAnalyser\settings.ini + OSX: /Users/USERNAME/Library/Application\ Support/AccessibleSpectrumAnalyser/settings.ini + +*/ + +#ifdef OS_WIN + #include + #include + + #define DEFAULT_INPUT_DEV "Default Device" + #define DEFAULT_OUTPUT_DEV "Default Device" + + #define DAC_DS 0 + #define DAC_ASIO 1 +#elif defined OS_OSX + #include "swell.h" + #define SLEEP( milliseconds ) usleep( (unsigned long) (milliseconds * 1000.0) ) + + #define DEFAULT_INPUT_DEV "Built-in Input" + #define DEFAULT_OUTPUT_DEV "Built-in Output" + + #define DAC_COREAUDIO 0 +// #define DAC_JACK 1 +#endif + +#include "wdltypes.h" +#include "RtAudio.h" +#include "RtMidi.h" +#include +#include + +#include "../AccessibleSpectrumAnalyser.h" // change this to match your iplug plugin .h file + +typedef unsigned short UInt16; + +struct AppState +{ + // on osx core audio 0 or jack 1 + // on windows DS 0 or ASIO 1 + UInt16 mAudioDriverType; + + // strings + char mAudioInDev[100]; + char mAudioOutDev[100]; + char mAudioSR[100]; + char mAudioIOVS[100]; + char mAudioSigVS[100]; + + UInt16 mAudioInChanL; + UInt16 mAudioInChanR; + UInt16 mAudioOutChanL; + UInt16 mAudioOutChanR; + UInt16 mAudioInIsMono; + + // strings containing the names of the midi devices + char mMidiInDev[100]; + char mMidiOutDev[100]; + + UInt16 mMidiInChan; + UInt16 mMidiOutChan; + + AppState(): + mAudioDriverType(0), // DS / CoreAudio by default + mAudioInChanL(1), + mAudioInChanR(2), + mAudioOutChanL(1), + mAudioOutChanR(2), + mMidiInChan(0), + mMidiOutChan(0) + { + strcpy(mAudioInDev, DEFAULT_INPUT_DEV); + strcpy(mAudioOutDev, DEFAULT_OUTPUT_DEV); + strcpy(mAudioSR, "44100"); + strcpy(mAudioIOVS, "512"); + strcpy(mAudioSigVS, "32"); + + strcpy(mMidiInDev, "off"); + strcpy(mMidiOutDev, "off"); + } +}; + +extern WDL_DLGRET MainDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +extern WDL_DLGRET PreferencesDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +extern HINSTANCE gHINST; +extern HWND gHWND; +extern UINT gScrollMessage; +extern IPlug* gPluginInstance; // The iplug plugin instance + +extern std::string GetAudioDeviceName(int idx); +extern int GetAudioDeviceID(char* deviceNameToTest); + +extern void ProbeAudioIO(); +extern bool InitialiseAudio(unsigned int inId, + unsigned int outId, + unsigned int sr, + unsigned int iovs, + unsigned int chnls, + unsigned int inChanL, + unsigned int outChanL + ); + +extern bool AudioSettingsInStateAreEqual(AppState* os, AppState* ns); +extern bool MIDISettingsInStateAreEqual(AppState* os, AppState* ns); + +extern bool TryToChangeAudioDriverType(); +extern bool TryToChangeAudio(); +extern bool ChooseMidiInput(const char* pPortName); +extern bool ChooseMidiOutput(const char* pPortName); + +extern bool AttachGUI(); + +extern RtAudio* gDAC; +extern RtMidiIn *gMidiIn; +extern RtMidiOut *gMidiOut; + +extern AppState *gState; +extern AppState *gTempState; // The state is copied here when the pref dialog is opened, and restored if cancel is pressed +extern AppState *gActiveState; // When the audio driver is started the current state is copied here so that if OK is pressed after APPLY nothing is changed + +extern unsigned int gSigVS; +extern unsigned int gBufIndex; // index for signal vector, loops from 0 to gSigVS + +extern char *gINIPath; // path of ini file +extern void UpdateINI(); + +extern std::vector gAudioInputDevs; +extern std::vector gAudioOutputDevs; +extern std::vector gMIDIInputDevNames; +extern std::vector gMIDIOutputDevNames; + +#endif //_IPLUGAPP_APP_MAIN_H_ + diff -r 000000000000 -r 3004dd663202 app_wrapper/app_resource.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app_wrapper/app_resource.h Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,42 @@ +// RESOURCE IDS FOR STANDALONE APP + +#ifndef IDC_STATIC +#define IDC_STATIC (-1) +#endif + +#define IDD_DIALOG_MAIN 40001 +#define IDD_DIALOG_PREF 40002 +#define IDI_ICON1 40003 +#define IDR_MENU1 40004 + +#define ID_ABOUT 40005 +#define ID_PREFERENCES 40006 +#define ID_QUIT 40007 + +#define IDC_COMBO_AUDIO_DRIVER 40008 +#define IDC_COMBO_AUDIO_IN_DEV 40009 +#define IDC_COMBO_AUDIO_OUT_DEV 40010 +#define IDC_COMBO_AUDIO_IOVS 40011 +#define IDC_COMBO_AUDIO_SIGVS 40012 +#define IDC_COMBO_AUDIO_SR 40013 +#define IDC_COMBO_AUDIO_IN_L 40014 +#define IDC_COMBO_AUDIO_IN_R 40015 +#define IDC_COMBO_AUDIO_OUT_R 40016 +#define IDC_COMBO_AUDIO_OUT_L 40017 +#define IDC_COMBO_MIDI_IN_DEV 40018 +#define IDC_COMBO_MIDI_OUT_DEV 40019 +#define IDC_COMBO_MIDI_IN_CHAN 40020 +#define IDC_COMBO_MIDI_OUT_CHAN 40021 +#define IDC_BUTTON_ASIO 40022 +#define IDC_CB_MONO_INPUT 40023 + +#define IDAPPLY 40024 + +// some options for the app + +#define ENABLE_SYSEX 0 +#define ENABLE_MIDICLOCK 0 +#define ENABLE_ACTIVE_SENSING 0 +#define NUM_CHANNELS 2 +#define N_VECTOR_WAIT 50 +#define APP_MULT 0.25 diff -r 000000000000 -r 3004dd663202 app_wrapper/main.mm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app_wrapper/main.mm Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,25 @@ +#import +#include "swell.h" + +int main(int argc, char *argv[]) +{ + return NSApplicationMain(argc, (const char **) argv); +} + +void CenterWindow(HWND hwnd) +{ + if (!hwnd) return; + + id turd=(id)hwnd; + + if ([turd isKindOfClass:[NSView class]]) + { + NSWindow *w = [turd window]; + [w center]; + } + if ([turd isKindOfClass:[NSWindow class]]) + { + [turd center]; + } +} + diff -r 000000000000 -r 3004dd663202 installer/AccessibleSpectrumAnalyser-installer-bg.png Binary file installer/AccessibleSpectrumAnalyser-installer-bg.png has changed diff -r 000000000000 -r 3004dd663202 installer/AccessibleSpectrumAnalyser.iss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/installer/AccessibleSpectrumAnalyser.iss Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,117 @@ +[Setup] +AppName=AccessibleSpectrumAnalyser +AppVersion=1.0.0 +DefaultDirName={pf}\AccessibleSpectrumAnalyser +DefaultGroupName=AccessibleSpectrumAnalyser +Compression=lzma2 +SolidCompression=yes +OutputDir=.\ +ArchitecturesInstallIn64BitMode=x64 +OutputBaseFilename=AccessibleSpectrumAnalyser Installer +LicenseFile=license.rtf +SetupLogging=yes + +[Types] +Name: "full"; Description: "Full installation" +Name: "custom"; Description: "Custom installation"; Flags: iscustom + +[Components] +Name: "app"; Description: "Standalone application (.exe)"; Types: full custom; +Name: "vst2_32"; Description: "32-bit VST2 Plugin (.dll)"; Types: full custom; +Name: "vst2_64"; Description: "64-bit VST2 Plugin (.dll)"; Types: full custom; Check: Is64BitInstallMode; +Name: "vst3_32"; Description: "32-bit VST3 Plugin (.vst3)"; Types: full custom; +Name: "vst3_64"; Description: "64-bit VST3 Plugin (.vst3)"; Types: full custom; Check: Is64BitInstallMode; +Name: "rtas_32"; Description: "32-bit RTAS Plugin (.dpm)"; Types: full custom; +Name: "aax_32"; Description: "32-bit AAX Plugin (.aaxplugin)"; Types: full custom; +Name: "aax_64"; Description: "64-bit AAX Plugin (.aaxplugin)"; Types: full custom; Check: Is64BitInstallMode; +Name: "manual"; Description: "User guide"; Types: full custom; Flags: fixed + +[Files] +Source: "..\build-win\app\Win32\bin\AccessibleSpectrumAnalyser.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode; Components:app; Flags: ignoreversion; +Source: "..\build-win\app\x64\bin\AccessibleSpectrumAnalyser.exe"; DestDir: "{app}"; Check: Is64BitInstallMode; Components:app; Flags: ignoreversion; + +Source: "..\build-win\vst2\Win32\bin\AccessibleSpectrumAnalyser.dll"; DestDir: {code:GetVST2Dir_32}; Check: not Is64BitInstallMode; Components:vst2_32; Flags: ignoreversion; +Source: "..\build-win\vst2\Win32\bin\AccessibleSpectrumAnalyser.dll"; DestDir: {code:GetVST2Dir_32}; Check: Is64BitInstallMode; Components:vst2_32; Flags: ignoreversion; +Source: "..\build-win\vst2\x64\bin\AccessibleSpectrumAnalyser.dll"; DestDir: {code:GetVST2Dir_64}; Check: Is64BitInstallMode; Components:vst2_64; Flags: ignoreversion; + +Source: "..\build-win\vst3\Win32\bin\AccessibleSpectrumAnalyser.vst3"; DestDir: "{cf}\VST3\"; Check: not Is64BitInstallMode; Components:vst3_32; Flags: ignoreversion; +Source: "..\build-win\vst3\Win32\bin\AccessibleSpectrumAnalyser.vst3"; DestDir: "{cf32}\VST3\"; Check: Is64BitInstallMode; Components:vst3_32; Flags: ignoreversion; +Source: "..\build-win\vst3\x64\bin\AccessibleSpectrumAnalyser.vst3"; DestDir: "{cf64}\VST3\"; Check: Is64BitInstallMode; Components:vst3_64; Flags: ignoreversion; + +Source: "..\build-win\rtas\bin\AccessibleSpectrumAnalyser.dpm"; DestDir: "{cf32}\Digidesign\DAE\Plug-Ins\"; Components:rtas_32; Flags: ignoreversion; +Source: "..\build-win\rtas\bin\AccessibleSpectrumAnalyser.dpm.rsr"; DestDir: "{cf32}\Digidesign\DAE\Plug-Ins\"; Components:rtas_32; Flags: ignoreversion; + +Source: "..\build-win\aax\bin\AccessibleSpectrumAnalyser.aaxplugin\*.*"; DestDir: "{cf32}\Avid\Audio\Plug-Ins\AccessibleSpectrumAnalyser.aaxplugin\"; Components:aax_32; Flags: ignoreversion recursesubdirs; +Source: "..\build-win\aax\bin\AccessibleSpectrumAnalyser.aaxplugin\*.*"; DestDir: "{cf}\Avid\Audio\Plug-Ins\AccessibleSpectrumAnalyser.aaxplugin\"; Components:aax_64; Flags: ignoreversion recursesubdirs; + +Source: "..\manual\AccessibleSpectrumAnalyser_manual.pdf"; DestDir: "{app}" +Source: "changelog.txt"; DestDir: "{app}" +Source: "readmewin.rtf"; DestDir: "{app}"; DestName: "readme.rtf"; Flags: isreadme + +[Icons] +Name: "{group}\AccessibleSpectrumAnalyser"; Filename: "{app}\AccessibleSpectrumAnalyser.exe" +Name: "{group}\User guide"; Filename: "{app}\AccessibleSpectrumAnalyser_manual.pdf" +Name: "{group}\Changelog"; Filename: "{app}\changelog.txt" +;Name: "{group}\readme"; Filename: "{app}\readme.rtf" +Name: "{group}\Uninstall AccessibleSpectrumAnalyser"; Filename: "{app}\unins000.exe" + +;[Dirs] +;Name: {cf}\Digidesign\DAE\Plugins\ + +[Code] +var + OkToCopyLog : Boolean; + VST2DirPage_32: TInputDirWizardPage; + VST2DirPage_64: TInputDirWizardPage; + +procedure InitializeWizard; +begin + if IsWin64 then begin + VST2DirPage_64 := CreateInputDirPage(wpSelectDir, + 'Confirm 64-Bit VST2 Plugin Directory', '', + 'Select the folder in which setup should install the 64-bit VST2 Plugin, then click Next.', + False, ''); + VST2DirPage_64.Add(''); + VST2DirPage_64.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\VST,VSTPluginsPath|{pf}\Steinberg\VSTPlugins}\'); + + VST2DirPage_32 := CreateInputDirPage(wpSelectDir, + 'Confirm 32-Bit VST2 Plugin Directory', '', + 'Select the folder in which setup should install the 32-bit VST2 Plugin, then click Next.', + False, ''); + VST2DirPage_32.Add(''); + VST2DirPage_32.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\WOW6432NODE\VST,VSTPluginsPath|{pf32}\Steinberg\VSTPlugins}\'); + end else begin + VST2DirPage_32 := CreateInputDirPage(wpSelectDir, + 'Confirm 32-Bit VST2 Plugin Directory', '', + 'Select the folder in which setup should install the 32-bit VST2 Plugin, then click Next.', + False, ''); + VST2DirPage_32.Add(''); + VST2DirPage_32.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\VST,VSTPluginsPath|{pf}\Steinberg\VSTPlugins}\'); + end; +end; + +function GetVST2Dir_32(Param: String): String; +begin + Result := VST2DirPage_32.Values[0] +end; + +function GetVST2Dir_64(Param: String): String; +begin + Result := VST2DirPage_64.Values[0] +end; + +procedure CurStepChanged(CurStep: TSetupStep); +begin + if CurStep = ssDone then + OkToCopyLog := True; +end; + +procedure DeinitializeSetup(); +begin + if OkToCopyLog then + FileCopy (ExpandConstant ('{log}'), ExpandConstant ('{app}\InstallationLogFile.log'), FALSE); + RestartReplace (ExpandConstant ('{log}'), ''); +end; + +[UninstallDelete] +Type: files; Name: "{app}\InstallationLogFile.log" \ No newline at end of file diff -r 000000000000 -r 3004dd663202 installer/AccessibleSpectrumAnalyser.pkgproj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/installer/AccessibleSpectrumAnalyser.pkgproj Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,3696 @@ + + + + + PACKAGES + + + PACKAGE_FILES + + DEFAULT_INSTALL_LOCATION + / + HIERARCHY + + CHILDREN + + + CHILDREN + + + BUNDLE_CAN_DOWNGRADE + + CHILDREN + + + GID + 80 + PATH + /Applications/AccessibleSpectrumAnalyser.app + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 3 + UID + 0 + + + CHILDREN + + + GID + 80 + PATH + Utilities + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Applications + PATH_TYPE + 0 + PERMISSIONS + 509 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + Application Support + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Documentation + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Filesystems + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Frameworks + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Internet Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchAgents + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchDaemons + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PreferencePanes + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Preferences + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 80 + PATH + Printers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PrivilegedHelperTools + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + QuickTime + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Screen Savers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Scripts + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Services + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Widgets + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Extensions + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + System + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Shared + PATH_TYPE + 0 + PERMISSIONS + 1023 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Users + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + / + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + PAYLOAD_TYPE + 0 + VERSION + 2 + + PACKAGE_SCRIPTS + + POSTINSTALL_PATH + + + PREINSTALL_PATH + + + RESOURCES + + + + PACKAGE_SETTINGS + + AUTHENTICATION + 1 + CONCLUSION_ACTION + 0 + IDENTIFIER + com.QueenMaryUniversityOfLondon.app.pkg.AccessibleSpectrumAnalyser + NAME + Application + OVERWRITE_PERMISSIONS + + RELOCATABLE + + VERSION + 1.0.0 + + UUID + 4C138DB1-9734-45F0-8A00-6E362896C22C + + + PACKAGE_FILES + + DEFAULT_INSTALL_LOCATION + / + HIERARCHY + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + Utilities + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Applications + PATH_TYPE + 0 + PERMISSIONS + 509 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + Application Support + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + /Library/Audio/Plug-Ins/VST/AccessibleSpectrumAnalyser.vst + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 3 + UID + 0 + + + GID + 80 + PATH + VST + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + GID + 80 + PATH + Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + GID + 80 + PATH + Audio + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Documentation + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Filesystems + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Frameworks + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Internet Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchAgents + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchDaemons + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PreferencePanes + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Preferences + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 80 + PATH + Printers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PrivilegedHelperTools + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + QuickTime + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Screen Savers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Scripts + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Services + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Widgets + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Extensions + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + System + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Shared + PATH_TYPE + 0 + PERMISSIONS + 1023 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Users + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + / + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + PAYLOAD_TYPE + 0 + VERSION + 2 + + PACKAGE_SCRIPTS + + POSTINSTALL_PATH + + + PREINSTALL_PATH + + + RESOURCES + + + + PACKAGE_SETTINGS + + AUTHENTICATION + 1 + CONCLUSION_ACTION + 0 + IDENTIFIER + com.QueenMaryUniversityOfLondon.vst.pkg.AccessibleSpectrumAnalyser + LOCATION + 0 + NAME + VST2 Plug-in + OVERWRITE_PERMISSIONS + + RELOCATABLE + + VERSION + 1.0.0 + + TYPE + 0 + UUID + D934BC7F-4840-4112-BB86-D0D97A93A178 + + + PACKAGE_FILES + + DEFAULT_INSTALL_LOCATION + / + HIERARCHY + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + Utilities + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Applications + PATH_TYPE + 0 + PERMISSIONS + 509 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + Application Support + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + /Library/Audio/Plug-Ins/VST3/AccessibleSpectrumAnalyser.vst3 + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 3 + UID + 0 + + + GID + 80 + PATH + VST3 + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + GID + 80 + PATH + Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + GID + 80 + PATH + Audio + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Documentation + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Filesystems + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Frameworks + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Internet Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchAgents + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchDaemons + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PreferencePanes + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Preferences + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 80 + PATH + Printers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PrivilegedHelperTools + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + QuickTime + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Screen Savers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Scripts + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Services + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Widgets + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Extensions + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + System + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Shared + PATH_TYPE + 0 + PERMISSIONS + 1023 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Users + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + / + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + PAYLOAD_TYPE + 0 + VERSION + 2 + + PACKAGE_SCRIPTS + + POSTINSTALL_PATH + + + PREINSTALL_PATH + + + RESOURCES + + + + PACKAGE_SETTINGS + + AUTHENTICATION + 1 + CONCLUSION_ACTION + 0 + IDENTIFIER + com.QueenMaryUniversityOfLondon.vst3.pkg.AccessibleSpectrumAnalyser + LOCATION + 0 + NAME + VST3 Plug-in + OVERWRITE_PERMISSIONS + + RELOCATABLE + + VERSION + 1.0.0 + + TYPE + 0 + UUID + A3C96C22-40C6-40F8-A8C2-1DF92C8F0DF2 + + + PACKAGE_FILES + + DEFAULT_INSTALL_LOCATION + / + HIERARCHY + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + Utilities + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Applications + PATH_TYPE + 0 + PERMISSIONS + 509 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + Application Support + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + /Library/Audio/Plug-Ins/Components/AccessibleSpectrumAnalyser.component + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 3 + UID + 0 + + + GID + 80 + PATH + Components + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + GID + 80 + PATH + Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + GID + 80 + PATH + Audio + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Documentation + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Filesystems + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Frameworks + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Internet Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchAgents + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchDaemons + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PreferencePanes + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Preferences + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 80 + PATH + Printers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PrivilegedHelperTools + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + QuickTime + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Screen Savers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Scripts + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Services + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Widgets + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Extensions + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + System + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Shared + PATH_TYPE + 0 + PERMISSIONS + 1023 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Users + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + / + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + PAYLOAD_TYPE + 0 + VERSION + 2 + + PACKAGE_SCRIPTS + + POSTINSTALL_PATH + + + PREINSTALL_PATH + + + RESOURCES + + + + PACKAGE_SETTINGS + + AUTHENTICATION + 1 + CONCLUSION_ACTION + 0 + IDENTIFIER + com.QueenMaryUniversityOfLondon.au.pkg.AccessibleSpectrumAnalyser + LOCATION + 0 + NAME + AudioUnit Plug-in + OVERWRITE_PERMISSIONS + + RELOCATABLE + + VERSION + 1.0.0 + + TYPE + 0 + UUID + AC237F21-A6EC-4EE8-B064-D17EF4EC7FEC + + + PACKAGE_FILES + + DEFAULT_INSTALL_LOCATION + / + HIERARCHY + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + Utilities + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Applications + PATH_TYPE + 0 + PERMISSIONS + 509 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + /Library/Application Support/Digidesign/Plug-Ins/AccessibleSpectrumAnalyser.dpm + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 3 + UID + 0 + + + GID + 80 + PATH + Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + GID + 80 + PATH + Digidesign + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + GID + 80 + PATH + Application Support + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Documentation + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Filesystems + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Frameworks + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Internet Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchAgents + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchDaemons + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PreferencePanes + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Preferences + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 80 + PATH + Printers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PrivilegedHelperTools + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + QuickTime + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Screen Savers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Scripts + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Services + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Widgets + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Extensions + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + System + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Shared + PATH_TYPE + 0 + PERMISSIONS + 1023 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Users + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + / + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + PAYLOAD_TYPE + 0 + VERSION + 2 + + PACKAGE_SCRIPTS + + POSTINSTALL_PATH + + + PREINSTALL_PATH + + + RESOURCES + + + + PACKAGE_SETTINGS + + AUTHENTICATION + 1 + CONCLUSION_ACTION + 0 + IDENTIFIER + com.QueenMaryUniversityOfLondon.rtas.pkg.AccessibleSpectrumAnalyser + LOCATION + 0 + NAME + RTAS Plug-in + OVERWRITE_PERMISSIONS + + RELOCATABLE + + VERSION + 1.0.0 + + TYPE + 0 + UUID + FFD8A34B-8CDF-448C-A8BA-5F8885257A5F + + + PACKAGE_FILES + + DEFAULT_INSTALL_LOCATION + / + HIERARCHY + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + Utilities + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Applications + PATH_TYPE + 0 + PERMISSIONS + 509 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 80 + PATH + /Library/Application Support/Avid/Audio/Plug-Ins/AccessibleSpectrumAnalyser.aaxplugin + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 3 + UID + 0 + + + GID + 80 + PATH + Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + GID + 80 + PATH + Audio + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + GID + 80 + PATH + Avid + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 2 + UID + 0 + + + GID + 80 + PATH + Application Support + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Documentation + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Filesystems + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Frameworks + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Internet Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchAgents + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + LaunchDaemons + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PreferencePanes + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Preferences + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 80 + PATH + Printers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + PrivilegedHelperTools + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + QuickTime + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Screen Savers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Scripts + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Services + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + GID + 0 + PATH + Widgets + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Extensions + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + System + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + + GID + 0 + PATH + Shared + PATH_TYPE + 0 + PERMISSIONS + 1023 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Users + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + / + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + PAYLOAD_TYPE + 0 + VERSION + 2 + + PACKAGE_SCRIPTS + + POSTINSTALL_PATH + + + PREINSTALL_PATH + + + RESOURCES + + + + PACKAGE_SETTINGS + + AUTHENTICATION + 1 + CONCLUSION_ACTION + 0 + IDENTIFIER + com.QueenMaryUniversityOfLondon.aax.pkg.AccessibleSpectrumAnalyser + LOCATION + 0 + NAME + AAX Plug-in + OVERWRITE_PERMISSIONS + + RELOCATABLE + + VERSION + 1.0.0 + + TYPE + 0 + UUID + E1DE7474-36EA-4760-9011-ACA6B71C3D58 + + + PROJECT + + PROJECT_COMMENTS + + NOTES + + PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M + IDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv + c3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KPG1ldGEgaHR0cC1l + cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7 + IGNoYXJzZXQ9VVRGLTgiPgo8bWV0YSBodHRwLWVxdWl2PSJDb250 + ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp + dGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u + dGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD + b2NvYVZlcnNpb24iIGNvbnRlbnQ9IjEwMzguMzYiPgo8c3R5bGUg + dHlwZT0idGV4dC9jc3MiPgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5 + Pgo8L2JvZHk+CjwvaHRtbD4K + + + PROJECT_PRESENTATION + + BACKGROUND + + ALIGNMENT + 2 + BACKGROUND_PATH + + PATH + AccessibleSpectrumAnalyser-installer-bg.png + PATH_TYPE + 1 + + CUSTOM + 1 + SCALING + 0 + + INSTALLATION TYPE + + HIERARCHIES + + INSTALLER + + LIST + + + DESCRIPTION + + + OPTIONS + + HIDDEN + + STATE + 1 + + PACKAGE_UUID + 4C138DB1-9734-45F0-8A00-6E362896C22C + TITLE + + + TOOLTIP + + + TYPE + 0 + UUID + 46AC220B-6E1B-4748-81D2-E74211917F33 + + + DESCRIPTION + + + OPTIONS + + HIDDEN + + STATE + 1 + + PACKAGE_UUID + D934BC7F-4840-4112-BB86-D0D97A93A178 + TITLE + + + TOOLTIP + + + TYPE + 0 + UUID + 4F61560B-81DA-4303-9E85-81245A52D656 + + + DESCRIPTION + + + OPTIONS + + HIDDEN + + STATE + 1 + + PACKAGE_UUID + A3C96C22-40C6-40F8-A8C2-1DF92C8F0DF2 + TITLE + + + TOOLTIP + + + TYPE + 0 + UUID + 7B94AA58-4ED9-436E-A054-A380AB0E0D74 + + + DESCRIPTION + + + OPTIONS + + HIDDEN + + STATE + 1 + + PACKAGE_UUID + AC237F21-A6EC-4EE8-B064-D17EF4EC7FEC + TITLE + + + TOOLTIP + + + TYPE + 0 + UUID + 9586CE78-FA3B-46D7-B478-BD00B094EB72 + + + DESCRIPTION + + + OPTIONS + + HIDDEN + + STATE + 1 + + PACKAGE_UUID + FFD8A34B-8CDF-448C-A8BA-5F8885257A5F + TITLE + + + TOOLTIP + + + TYPE + 0 + UUID + F06AA4BB-4A5C-461C-A9E1-4F19BF696984 + + + DESCRIPTION + + + OPTIONS + + HIDDEN + + STATE + 1 + + PACKAGE_UUID + E1DE7474-36EA-4760-9011-ACA6B71C3D58 + TITLE + + + TOOLTIP + + + TYPE + 0 + UUID + E5BAC8D7-2A49-4C11-A43C-5457EBB842C9 + + + REMOVED + + + + + INSTALLATION TYPE + 0 + + INSTALLATION_STEPS + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewIntroductionController + INSTALLER_PLUGIN + Introduction + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewReadMeController + INSTALLER_PLUGIN + ReadMe + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewLicenseController + INSTALLER_PLUGIN + License + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewDestinationSelectController + INSTALLER_PLUGIN + TargetSelect + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewInstallationTypeController + INSTALLER_PLUGIN + PackageSelection + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewInstallationController + INSTALLER_PLUGIN + Install + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewSummaryController + INSTALLER_PLUGIN + Summary + LIST_TITLE_KEY + InstallerSectionTitle + + + INTRODUCTION + + LOCALIZATIONS + + + LANGUAGE + English + VALUE + + PATH + intro.rtf + PATH_TYPE + 1 + + + + + LICENSE + + KEYWORDS + + + LOCALIZATIONS + + + LANGUAGE + English + VALUE + + PATH + license.rtf + PATH_TYPE + 1 + + + + MODE + 0 + + README + + LOCALIZATIONS + + + LANGUAGE + English + VALUE + + PATH + readmeosx.rtf + PATH_TYPE + 1 + + + + + TITLE + + LOCALIZATIONS + + + LANGUAGE + English + VALUE + AccessibleSpectrumAnalyser + + + + + PROJECT_REQUIREMENTS + + LIST + + + POSTINSTALL_PATH + + + PREINSTALL_PATH + + + RESOURCES + + + ROOT_VOLUME_ONLY + + + PROJECT_SETTINGS + + ADVANCED_OPTIONS + + + BUILD_FORMAT + 0 + BUILD_PATH + + PATH + build-mac + PATH_TYPE + 1 + + EXCLUDED_FILES + + + PATTERNS_ARRAY + + + REGULAR_EXPRESSION + + STRING + .DS_Store + TYPE + 0 + + + PROTECTED + + PROXY_NAME + Remove .DS_Store files + PROXY_TOOLTIP + Remove ".DS_Store" files created by the Finder. + STATE + + + + PATTERNS_ARRAY + + + REGULAR_EXPRESSION + + STRING + .pbdevelopment + TYPE + 0 + + + PROTECTED + + PROXY_NAME + Remove .pbdevelopment files + PROXY_TOOLTIP + Remove ".pbdevelopment" files created by ProjectBuilder or Xcode. + STATE + + + + PATTERNS_ARRAY + + + REGULAR_EXPRESSION + + STRING + CVS + TYPE + 1 + + + REGULAR_EXPRESSION + + STRING + .cvsignore + TYPE + 0 + + + REGULAR_EXPRESSION + + STRING + .cvspass + TYPE + 0 + + + REGULAR_EXPRESSION + + STRING + .svn + TYPE + 1 + + + PROTECTED + + PROXY_NAME + Remove SCM metadata + PROXY_TOOLTIP + Remove helper files and folders used by the CVS and SVN Source Code Management systems. + STATE + + + + PATTERNS_ARRAY + + + REGULAR_EXPRESSION + + STRING + classes.nib + TYPE + 0 + + + REGULAR_EXPRESSION + + STRING + designable.db + TYPE + 0 + + + REGULAR_EXPRESSION + + STRING + info.nib + TYPE + 0 + + + PROTECTED + + PROXY_NAME + Optimize nib files + PROXY_TOOLTIP + Remove "classes.nib", "info.nib" and "designable.nib" files within .nib bundles. + STATE + + + + PATTERNS_ARRAY + + + REGULAR_EXPRESSION + + STRING + Resources Disabled + TYPE + 1 + + + PROTECTED + + PROXY_NAME + Remove Resources Disabled folders + PROXY_TOOLTIP + Remove "Resources Disabled" folders. + STATE + + + + SEPARATOR + + + + NAME + AccessibleSpectrumAnalyser Installer + + + TYPE + 0 + VERSION + 2 + + diff -r 000000000000 -r 3004dd663202 installer/changelog.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/installer/changelog.txt Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,4 @@ +AccessibleSpectrumAnalyser changelog +www.olilarkin.co.uk + +00/00/00 - v1.00 initial release \ No newline at end of file diff -r 000000000000 -r 3004dd663202 installer/intro.rtf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/installer/intro.rtf Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,15 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;} +\paperw11900\paperh16840\margl1440\margr1440\vieww14440\viewh8920\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural + +\f0\fs26 \cf0 I hope you enjoy using AccessibleSpectrumAnalyser as much as I did making it. Please let me know how you use it and if you make any interesting recordings, I'd love to hear them.\ +\ +Oli Larkin\ +\ +contact@olilarkin.co.uk\ +\ +http://www.olilarkin.co.uk\ +\ +http://soundcloud.com/olilarkin} \ No newline at end of file diff -r 000000000000 -r 3004dd663202 installer/license.rtf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/installer/license.rtf Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,38 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fswiss\fcharset0 ArialMT;} +{\colortbl;\red255\green255\blue255;} +\paperw11900\paperh16840\margl1440\margr1440\vieww17060\viewh12300\viewkind0 +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\f0\b\fs20 \cf0 Caveat: +\b0 \ +By installing this software you agree to use it at your own risk. The developer cannot be held responsible for any damages caused as a result of it's use.\ +\ + +\b Distribution: +\b0 \ +You are not permitted to distribute the software without the developer's permission. This includes, but is not limited to the distribution on magazine covers or software review websites.\ +\ + +\b Multiple Installations*: +\b0 If you purchased this product as an individual, you are licensed to install and use the software on any computer you need to use it on, providing you remove it afterwards (if it is a shared machine). If you purchased it as an institution or company, you are licensed to use it on one machine only, and must purchase additional copies for each machine you wish to use it on.\ +\ + +\b Upgrades*: +\b0 If you purchased this product you are entitled to free updates until the next major version number. The developer makes no guarantee is made that this product will be maintained indefinitely.\ +\ + +\b License transfers*: +\b0 If you purchased this product you may transfer your license to another person. As the original owner you are required to contact the developer with the details of the license transfer, so that the new owner can receive the updates and support attached to the license. Upon transferring a license the original owner must remove any copies from their machines and are no longer permitted to use the software.\ +\ + +\b AccessibleSpectrumAnalyser is \'a9 Copyright Oliver Larkin 2004-2011\ + +\b0 \ +http://www.olilarkin.co.uk\ +\ +VST and VST3 are trademarks of Steinberg Media Technologies GmbH. \ +Audio Unit is a trademark of Apple, Inc. \ +RTAS and AAX are trademarks of Avid, Inc.\ +\ +* Applies to full version only, not the demo version.} \ No newline at end of file diff -r 000000000000 -r 3004dd663202 installer/readmeosx.rtf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/installer/readmeosx.rtf Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,17 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\paperw11900\paperh16840\margl1440\margr1440\vieww14320\viewh8340\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural + +\f0\fs26 \cf0 The plugins will be installed in your system plugin folders which will make them available to all user accounts on your computer. +\f1\fs20 +\f0\fs26 The standalone will be installed in the system Applications folder. \ +\ +If you don't want to install all components, click "Customize" on the "Installation Type" page.\ +\ +The plugins and app support both 32bit and 64bit operation.\ +\ +If you experience any problems with AccessibleSpectrumAnalyser, please contact me at the following address:\ +\ +support@olilarkin.co.uk} \ No newline at end of file diff -r 000000000000 -r 3004dd663202 installer/readmewin.rtf Binary file installer/readmewin.rtf has changed diff -r 000000000000 -r 3004dd663202 makedist-mac.command --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/makedist-mac.command Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,259 @@ +#! /bin/sh + +#shell script to automate IPlug Project build, code-signing and packaging on OSX + +BASEDIR=$(dirname $0) +cd $BASEDIR + +#--------------------------------------------------------------------------------------------------------- + +#variables + +VERSION=`echo | grep PLUG_VER resource.h` +VERSION=${VERSION//\#define PLUG_VER } +VERSION=${VERSION//\'} +MAJOR_VERSION=$(($VERSION & 0xFFFF0000)) +MAJOR_VERSION=$(($MAJOR_VERSION >> 16)) +MINOR_VERSION=$(($VERSION & 0x0000FF00)) +MINOR_VERSION=$(($MINOR_VERSION >> 8)) +BUG_FIX=$(($VERSION & 0x000000FF)) + +FULL_VERSION=$MAJOR_VERSION"."$MINOR_VERSION"."$BUG_FIX + +PLUGIN_NAME=`echo | grep BUNDLE_NAME resource.h` +PLUGIN_NAME=${PLUGIN_NAME//\#define BUNDLE_NAME } +PLUGIN_NAME=${PLUGIN_NAME//\"} + +# work out the paths to the binaries + +VST2=`echo | grep VST_FOLDER ../../common.xcconfig` +VST2=${VST2//\VST_FOLDER = }/$PLUGIN_NAME.vst + +VST3=`echo | grep VST3_FOLDER ../../common.xcconfig` +VST3=${VST3//\VST3_FOLDER = }/$PLUGIN_NAME.vst3 + +AU=`echo | grep AU_FOLDER ../../common.xcconfig` +AU=${AU//\AU_FOLDER = }/$PLUGIN_NAME.component + +APP=`echo | grep APP_FOLDER ../../common.xcconfig` +APP=${APP//\APP_FOLDER = }/$PLUGIN_NAME.app + +# Dev build folder +RTAS=`echo | grep RTAS_FOLDER ../../common.xcconfig` +RTAS=${RTAS//\RTAS_FOLDER = }/$PLUGIN_NAME.dpm +RTAS_FINAL="/Library/Application Support/Digidesign/Plug-Ins/$PLUGIN_NAME.dpm" + +# Dev build folder +AAX=`echo | grep AAX_FOLDER ../../common.xcconfig` +AAX=${AAX//\AAX_FOLDER = }/$PLUGIN_NAME.aaxplugin +AAX_FINAL="/Library/Application Support/Avid/Audio/Plug-Ins/$PLUGIN_NAME.aaxplugin" + +PKG="installer/build-mac/$PLUGIN_NAME Installer.pkg" +PKG_US="installer/build-mac/$PLUGIN_NAME Installer.unsigned.pkg" + +CERT_ID=`echo | grep CERTIFICATE_ID ../../common.xcconfig` +CERT_ID=${CERT_ID//\CERTIFICATE_ID = } + +echo "making $PLUGIN_NAME version $FULL_VERSION mac distribution..." +echo "" + +#--------------------------------------------------------------------------------------------------------- + +#call python script to update version numbers +./update_version.py + +#here you can use the touch command to force xcode to rebuild +#touch MyPlugin.h + +#--------------------------------------------------------------------------------------------------------- + +#if you are zipping the binaries, remove existing dist folder +#if [ -d installer/dist ] +#then +# rm -R installer/dist +#fi + +#mkdir installer/dist + +#remove existing binaries +if [ -d $APP ] +then + sudo rm -f -R -f $APP +fi + +if [ -d $AU ] +then + sudo rm -f -R $AU +fi + +if [ -d $VST2 ] +then + sudo rm -f -R $VST2 +fi + +if [ -d $VST3 ] +then + sudo rm -f -R $VST3 +fi + +if [ -d "${RTAS}" ] +then + sudo rm -f -R "${RTAS}" +fi + +if [ -d "${RTAS_FINAL}" ] +then + sudo rm -f -R "${RTAS_FINAL}" +fi + +if [ -d "${AAX}" ] +then + sudo rm -f -R "${AAX}" +fi + +if [ -d "${AAX_FINAL}" ] +then + sudo rm -f -R "${AAX_FINAL}" +fi + +#--------------------------------------------------------------------------------------------------------- + +# build xcode project. Change target to build individual formats +xcodebuild -project $PLUGIN_NAME.xcodeproj -xcconfig $PLUGIN_NAME.xcconfig -target "All" -configuration Release 2> ./build-mac.log + +if [ -s build-mac.log ] +then + echo "build failed due to following errors:" + echo "" + cat build-mac.log + exit 1 +else + rm build-mac.log +fi + +#--------------------------------------------------------------------------------------------------------- + +#icon stuff - http://maxao.free.fr/telechargements/setfileicon.gz +echo "setting icons" +echo "" +setfileicon resources/$PLUGIN_NAME.icns $AU +setfileicon resources/$PLUGIN_NAME.icns $VST2 +setfileicon resources/$PLUGIN_NAME.icns $VST3 +setfileicon resources/$PLUGIN_NAME.icns "${RTAS}" +setfileicon resources/$PLUGIN_NAME.icns "${AAX}" + +#--------------------------------------------------------------------------------------------------------- + +#strip debug symbols from binaries + +echo "striping binaries" +strip -x $AU/Contents/MacOS/$PLUGIN_NAME +strip -x $VST2/Contents/MacOS/$PLUGIN_NAME +strip -x $VST3/Contents/MacOS/$PLUGIN_NAME +strip -x $APP/Contents/MacOS/$PLUGIN_NAME +strip -x "${AAX}/Contents/MacOS/$PLUGIN_NAME" +strip -x "${RTAS}/Contents/MacOS/$PLUGIN_NAME" + +#--------------------------------------------------------------------------------------------------------- + +#ProTools stuff + +echo "copying RTAS PLUGIN_NAME from 3PDev to main RTAS folder" +sudo cp -p -R "${RTAS}" "${RTAS_FINAL}" + +echo "copying AAX PLUGIN_NAME from 3PDev to main AAX folder" +sudo cp -p -R "${AAX}" "${AAX_FINAL}" + +echo "code sign AAX binary" +#... consult PACE documentation + +#--------------------------------------------------------------------------------------------------------- + +#Mac AppStore stuff + +#xcodebuild -project $PLUGIN_NAME.xcodeproj -xcconfig $PLUGIN_NAME.xcconfig -target "APP" -configuration Release 2> ./build-mac.log + +#echo "code signing app for appstore" +#echo "" +#codesign -f -s "3rd Party Mac Developer Application: ""${CERT_ID}" $APP --entitlements resources/$PLUGIN_NAME.entitlements + +#echo "building pkg for app store" +#echo "" +#productbuild \ +# --component $APP /Applications \ +# --sign "3rd Party Mac Developer Installer: ""${CERT_ID}" \ +# --product "/Applications/$PLUGIN_NAME.app/Contents/Info.plist" installer/$PLUGIN_NAME.pkg + +#--------------------------------------------------------------------------------------------------------- + +#10.8 Gatekeeper/Developer ID stuff + +echo "code app binary for Gatekeeper on 10.8" +echo "" +codesign -f -s "Developer ID Application: ""${CERT_ID}" $APP + +#TODO: code-sign plug-in binaries too? + +#--------------------------------------------------------------------------------------------------------- + +# installer, uses Packages http://s.sudre.free.fr/Software/Packages/about.html +sudo sudo rm -R -f installer/$PLUGIN_NAME-mac.dmg + +echo "building installer" +echo "" +packagesbuild installer/$PLUGIN_NAME.pkgproj + +echo "code-sign installer for Gatekeeper on 10.8" +echo "" +mv "${PKG}" "${PKG_US}" +productsign --sign "Developer ID Installer: ""${CERT_ID}" "${PKG_US}" "${PKG}" + +rm -R -f "${PKG_US}" + +#set installer icon +setfileicon resources/$PLUGIN_NAME.icns "${PKG}" + +#--------------------------------------------------------------------------------------------------------- + +# dmg, can use dmgcanvas http://www.araelium.com/dmgcanvas/ to make a nice dmg + +echo "building dmg" +echo "" + +if [ -d installer/$PLUGIN_NAME.dmgCanvas ] +then + dmgcanvas installer/$PLUGIN_NAME.dmgCanvas installer/$PLUGIN_NAME-mac.dmg +else + hdiutil create installer/$PLUGIN_NAME.dmg -srcfolder installer/build-mac/ -ov -anyowners -volname $PLUGIN_NAME + + if [ -f installer/$PLUGIN_NAME-mac.dmg ] + then + rm -f installer/$PLUGIN_NAME-mac.dmg + fi + + hdiutil convert installer/$PLUGIN_NAME.dmg -format UDZO -o installer/$PLUGIN_NAME-mac.dmg + sudo rm -R -f installer/$PLUGIN_NAME.dmg +fi + +sudo rm -R -f installer/build-mac/ + +#--------------------------------------------------------------------------------------------------------- +# zip + +# echo "copying binaries..." +# echo "" +# cp -R $AU installer/dist/$PLUGIN_NAME.component +# cp -R $VST2 installer/dist/$PLUGIN_NAME.vst +# cp -R $VST3 installer/dist/$PLUGIN_NAME.vst3 +# cp -R $RTAS installer/dist/$PLUGIN_NAME.dpm +# cp -R $AAX installer/dist/$PLUGIN_NAME.aaxplugin +# cp -R $APP installer/dist/$PLUGIN_NAME.app +# +# echo "zipping binaries..." +# echo "" +# ditto -c -k installer/dist installer/$PLUGIN_NAME-mac.zip +# rm -R installer/dist + +#--------------------------------------------------------------------------------------------------------- + +echo "done" \ No newline at end of file diff -r 000000000000 -r 3004dd663202 makedist-win.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/makedist-win.bat Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,72 @@ +echo off + +REM - batch file to build VS2010 project and zip the resulting binaries (or make installer) +REM - updating version numbers requires python and python path added to %PATH% env variable +REM - zipping requires 7zip in %ProgramFiles%\7-Zip\7z.exe +REM - building installer requires innotsetup in "%ProgramFiles(x86)%\Inno Setup 5\iscc" +REM - AAX codesigning requires ashelper tool added to %PATH% env variable and aax.key/.crt in .\..\..\..\Certificates\ + +echo Making AccessibleSpectrumAnalyser win distribution ... + +echo ------------------------------------------------------------------ +echo Updating version numbers ... + +call python update_version.py + +echo ------------------------------------------------------------------ +echo Building ... + +if exist "%ProgramFiles(x86)%" (goto 64-Bit) else (goto 32-Bit) + +:32-Bit +echo 32-Bit O/S detected +call "%ProgramFiles%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" +goto END + +:64-Bit +echo 64-Bit Host O/S detected +call "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" +goto END +:END + +REM - set preprocessor macros like this, for instance to enable demo build: +REM - SET CMDLINE_DEFINES="DEMO_VERSION" + +REM - Could build individual targets like this: +REM - msbuild AccessibleSpectrumAnalyser-app.vcxproj /p:configuration=release /p:platform=win32 + +msbuild AccessibleSpectrumAnalyser.sln /p:configuration=release /p:platform=win32 /nologo /noconsolelogger /fileLogger /v:quiet /flp:logfile=build-win.log;errorsonly +msbuild AccessibleSpectrumAnalyser.sln /p:configuration=release /p:platform=x64 /nologo /noconsolelogger /fileLogger /v:quiet /flp:logfile=build-win.log;errorsonly;append + +#echo ------------------------------------------------------------------ +#echo Code sign aax binary... +#REM - x86 +#REM - x64 + +REM - Make Installer (InnoSetup) + +echo ------------------------------------------------------------------ +echo Making Installer ... + +if exist "%ProgramFiles(x86)%" (goto 64-Bit-is) else (goto 32-Bit-is) + +:32-Bit-is +"%ProgramFiles%\Inno Setup 5\iscc" /cc ".\installer\AccessibleSpectrumAnalyser.iss" +goto END-is + +:64-Bit-is +"%ProgramFiles(x86)%\Inno Setup 5\iscc" /cc ".\installer\AccessibleSpectrumAnalyser.iss" +goto END-is + +:END-is + +REM - ZIP +REM - "%ProgramFiles%\7-Zip\7z.exe" a .\installer\AccessibleSpectrumAnalyser-win-32bit.zip .\build-win\app\win32\bin\AccessibleSpectrumAnalyser.exe .\build-win\vst3\win32\bin\AccessibleSpectrumAnalyser.vst3 .\build-win\vst2\win32\bin\AccessibleSpectrumAnalyser.dll .\build-win\rtas\bin\AccessibleSpectrumAnalyser.dpm .\build-win\rtas\bin\AccessibleSpectrumAnalyser.dpm.rsr .\build-win\aax\bin\AccessibleSpectrumAnalyser.aaxplugin* .\installer\license.rtf .\installer\readmewin.rtf +REM - "%ProgramFiles%\7-Zip\7z.exe" a .\installer\AccessibleSpectrumAnalyser-win-64bit.zip .\build-win\app\x64\bin\AccessibleSpectrumAnalyser.exe .\build-win\vst3\x64\bin\AccessibleSpectrumAnalyser.vst3 .\build-win\vst2\x64\bin\AccessibleSpectrumAnalyser.dll .\installer\license.rtf .\installer\readmewin.rtf + +echo ------------------------------------------------------------------ +echo Printing log file to console... + +type build-win.log + +pause \ No newline at end of file diff -r 000000000000 -r 3004dd663202 manual/AccessibleSpectrumAnalyser_manual.pdf Binary file manual/AccessibleSpectrumAnalyser_manual.pdf has changed diff -r 000000000000 -r 3004dd663202 resource.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resource.h Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,81 @@ +#define PLUG_MFR "QueenMaryUniversityOfLondon" +#define PLUG_NAME "AccessibleSpectrumAnalyser" + +#define PLUG_CLASS_NAME AccessibleSpectrumAnalyser + +#define BUNDLE_MFR "QueenMaryUniversityOfLondon" +#define BUNDLE_NAME "AccessibleSpectrumAnalyser" + +#define PLUG_ENTRY AccessibleSpectrumAnalyser_Entry +#define PLUG_VIEW_ENTRY AccessibleSpectrumAnalyser_ViewEntry + +#define PLUG_ENTRY_STR "AccessibleSpectrumAnalyser_Entry" +#define PLUG_VIEW_ENTRY_STR "AccessibleSpectrumAnalyser_ViewEntry" + +#define VIEW_CLASS AccessibleSpectrumAnalyser_View +#define VIEW_CLASS_STR "AccessibleSpectrumAnalyser_View" + +// Format 0xMAJR.MN.BG - in HEX! so version 10.1.5 would be 0x000A0105 +#define PLUG_VER 0x00010000 +#define VST3_VER_STR "1.0.0" + +// http://service.steinberg.de/databases/plugin.nsf/plugIn?openForm +// 4 chars, single quotes. At least one capital letter +#define PLUG_UNIQUE_ID 'mcqk' +// make sure this is not the same as BUNDLE_MFR +#define PLUG_MFR_ID 'Qmul' + +// ProTools stuff +#if (defined(AAX_API) || defined(RTAS_API)) && !defined(_PIDS_) + #define _PIDS_ + const int PLUG_TYPE_IDS[2] = {'TXN1', 'TXN2'}; +#endif +#define PLUG_MFR_PT "QueenMaryUniversityOfLondon\nQueenMaryUniversityOfLondon\nAcme" +#define PLUG_NAME_PT "AccessibleSpectrumAnalyser\nIPTX" +#define PLUG_TYPE_PT "Effect" +#define PLUG_DOES_AUDIOSUITE 0 + +/* PLUG_TYPE_PT can be "None", "EQ", "Dynamics", "PitchShift", "Reverb", "Delay", "Modulation", +"Harmonic" "NoiseReduction" "Dither" "SoundField" "Effect" +instrument determined by PLUG _IS _INST +*/ + +#define PLUG_CHANNEL_IO "1-1 2-2" + +#define PLUG_LATENCY 0 +#define PLUG_IS_INST 0 + +// if this is 0 RTAS can't get tempo info +#define PLUG_DOES_MIDI 0 + +#define PLUG_DOES_STATE_CHUNKS 0 + +// Unique IDs for each image resource. +#define KNOB_ID 101 + +// Image resource locations for this plug. +#define KNOB_FN "resources/img/knob.png" + + +// GUI default dimensions +#define GUI_WIDTH 700 +#define GUI_HEIGHT 400 + +// on MSVC, you must define SA_API in the resource editor preprocessor macros as well as the c++ ones +#if defined(SA_API) && !defined(OS_IOS) +#include "app_wrapper/app_resource.h" +#endif + +// vst3 stuff +#define MFR_URL "http://depic.eecs.qmul.ac.uk/apm" +#define MFR_EMAIL "depic@eecs.qmul.ac.uk" +#define EFFECT_TYPE_VST3 "Fx" + +/* "Fx|Analyzer"", "Fx|Delay", "Fx|Distortion", "Fx|Dynamics", "Fx|EQ", "Fx|Filter", +"Fx", "Fx|Instrument", "Fx|InstrumentExternal", "Fx|Spatial", "Fx|Generator", +"Fx|Mastering", "Fx|Modulation", "Fx|PitchShift", "Fx|Restoration", "Fx|Reverb", +"Fx|Surround", "Fx|Tools", "Instrument", "Instrument|Drum", "Instrument|Sampler", +"Instrument|Synth", "Instrument|Synth|Sampler", "Instrument|External", "Spatial", +"Spatial|Fx", "OnlyRT", "OnlyOfflineProcess", "Mono", "Stereo", +"Surround" +*/ diff -r 000000000000 -r 3004dd663202 resources/AccessibleSpectrumAnalyser-AAX-Info.plist --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resources/AccessibleSpectrumAnalyser-AAX-Info.plist Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${BINARY_NAME} + CFBundleGetInfoString + 1.0.0, Copyright QueenMaryUniversityOfLondon, 2012 + CFBundleIdentifier + com.QueenMaryUniversityOfLondon.aax.${BINARY_NAME} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${BINARY_NAME} + CFBundlePackageType + TDMw + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + PTul + CFBundleVersion + 1.0.0 + LSMultipleInstancesProhibited + true + LSPrefersCarbon + + NSAppleScriptEnabled + No + + diff -r 000000000000 -r 3004dd663202 resources/AccessibleSpectrumAnalyser-AU-Info.plist --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resources/AccessibleSpectrumAnalyser-AU-Info.plist Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${BINARY_NAME} + CFBundleGetInfoString + 1.0.0, Copyright QueenMaryUniversityOfLondon, 2012 + CFBundleIdentifier + com.QueenMaryUniversityOfLondon.audiounit.${BINARY_NAME} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${BINARY_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + Acme + CFBundleVersion + 1.0.0 + LSMinimumSystemVersion + 10.5.0 + NSPrincipalClass + AccessibleSpectrumAnalyser_View + + diff -r 000000000000 -r 3004dd663202 resources/AccessibleSpectrumAnalyser-OSXAPP-Info.plist --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resources/AccessibleSpectrumAnalyser-OSXAPP-Info.plist Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,36 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${BINARY_NAME} + CFBundleGetInfoString + 1.0.0, Copyright QueenMaryUniversityOfLondon, 2012 + CFBundleIconFile + ${BINARY_NAME}.icns + CFBundleIdentifier + com.QueenMaryUniversityOfLondon.standalone.${BINARY_NAME} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${BINARY_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + Acme + CFBundleVersion + 1.0.0 + LSApplicationCategoryType + public.app-category.music + LSMinimumSystemVersion + 10.5.0 + NSMainNibFile + MainMenu + NSPrincipalClass + SWELLApplication + + diff -r 000000000000 -r 3004dd663202 resources/AccessibleSpectrumAnalyser-Pages.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resources/AccessibleSpectrumAnalyser-Pages.xml Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,143 @@ + + + + + AccessibleSpectrumAnalyser by QueenMaryUniversityOfLondon. + PageTable 1 + + + + + 1 + + + + + + MasterBypass + + + + + 1 + + + + + + + + MasterBypass + + + + + MasterBypass + 1 + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + + + 1 + MasterBypass + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + + + 1 + MasterBypass + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + + MasterBypass + 1 + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + + MasterBypass + + + 1 + + + + + + + Ma + Byp + MByp + Mstr Byp + + + + + + + + + RTAS: AccessibleSpectrumAnalyser + + + + + MasterBypass + + + diff -r 000000000000 -r 3004dd663202 resources/AccessibleSpectrumAnalyser-RTAS-Info.plist --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resources/AccessibleSpectrumAnalyser-RTAS-Info.plist Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${BINARY_NAME} + CFBundleGetInfoString + 1.0.0, Copyright QueenMaryUniversityOfLondon, 2012 + CFBundleIdentifier + com.QueenMaryUniversityOfLondon.rtas.${BINARY_NAME} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${BINARY_NAME} + CFBundlePackageType + TDMw + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + PTul + CFBundleVersion + 1.0.0 + LSMultipleInstancesProhibited + true + LSPrefersCarbon + + NSAppleScriptEnabled + No + + diff -r 000000000000 -r 3004dd663202 resources/AccessibleSpectrumAnalyser-VST2-Info.plist --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resources/AccessibleSpectrumAnalyser-VST2-Info.plist Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${BINARY_NAME} + CFBundleGetInfoString + 1.0.0, Copyright QueenMaryUniversityOfLondon, 2012 + CFBundleIdentifier + com.QueenMaryUniversityOfLondon.vst.${BINARY_NAME} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${BINARY_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + Acme + CFBundleVersion + 1.0.0 + LSMinimumSystemVersion + 10.5.0 + + diff -r 000000000000 -r 3004dd663202 resources/AccessibleSpectrumAnalyser-VST3-Info.plist --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resources/AccessibleSpectrumAnalyser-VST3-Info.plist Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${BINARY_NAME} + CFBundleGetInfoString + 1.0.0, Copyright QueenMaryUniversityOfLondon, 2012 + CFBundleIdentifier + com.QueenMaryUniversityOfLondon.vst3.${BINARY_NAME} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${BINARY_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + Acme + CFBundleVersion + 1.0.0 + LSMinimumSystemVersion + 10.5.0 + + diff -r 000000000000 -r 3004dd663202 resources/AccessibleSpectrumAnalyser.entitlements --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resources/AccessibleSpectrumAnalyser.entitlements Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,16 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.device.microphone + + com.apple.security.device.usb + + com.apple.security.device.firewire + + com.apple.security.files.user-selected.read-write + + + diff -r 000000000000 -r 3004dd663202 resources/AccessibleSpectrumAnalyser.icns Binary file resources/AccessibleSpectrumAnalyser.icns has changed diff -r 000000000000 -r 3004dd663202 resources/AccessibleSpectrumAnalyser.ico Binary file resources/AccessibleSpectrumAnalyser.ico has changed diff -r 000000000000 -r 3004dd663202 resources/English.lproj/InfoPlist.strings --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resources/English.lproj/InfoPlist.strings Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,1 @@ +/* Localized versions of Info.plist keys */ \ No newline at end of file diff -r 000000000000 -r 3004dd663202 resources/English.lproj/MainMenu.xib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resources/English.lproj/MainMenu.xib Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,1046 @@ + + + + 1050 + 10K549 + 851 + 1038.36 + 461.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + SWELLApplication + + + AMainMenu + + YES + + + IPlugText + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + IPlugText + + YES + + + About IPlugText + + 2147483647 + + + 40005 + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + 40006 + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide IPlugText + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit IPlugText + q + 1048576 + 2147483647 + + + 40007 + + + _NSAppleMenu + + + + + Window + + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bring All to Front + + 2147483647 + + + + + _NSWindowsMenu + + + + _NSMainMenu + + + NSFontManager + + + SWELLAppController + + + + + YES + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + terminate: + + + + 449 + + + + onSysMenuCommand: + + + + 451 + + + + performMiniaturize: + + + + 458 + + + + arrangeInFront: + + + + 459 + + + + performZoom: + + + + 460 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + MainMenu + + + 56 + + + YES + + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + + + 144 + + + + + 129 + + + + + 143 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 420 + + + + + 450 + + + Controller + + + 452 + + + YES + + + + + + 453 + + + YES + + + + + + + + + 457 + + + + + 456 + + + + + 455 + + + + + 454 + + + + + + + YES + + YES + -3.IBPluginDependency + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBEditorWindowLastContentRect + 130.IBPluginDependency + 130.ImportedFromIB2 + 130.editorWindowContentRectSynchronizationRect + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 143.IBPluginDependency + 143.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 236.IBPluginDependency + 236.ImportedFromIB2 + 29.IBEditorWindowLastContentRect + 29.IBPluginDependency + 29.ImportedFromIB2 + 29.WindowOrigin + 29.editorWindowContentRectSynchronizationRect + 452.IBPluginDependency + 453.IBEditorWindowLastContentRect + 453.IBPluginDependency + 454.IBPluginDependency + 455.IBPluginDependency + 456.IBPluginDependency + 457.IBPluginDependency + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBEditorWindowLastContentRect + 57.IBPluginDependency + 57.ImportedFromIB2 + 57.editorWindowContentRectSynchronizationRect + 58.IBPluginDependency + 58.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{490, 219}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{436, 809}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{239, 638}, {190, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + {74, 862} + {{6, 978}, {478, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + {{398, 564}, {194, 73}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{251, 455}, {207, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{23, 794}, {245, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 485 + + + + YES + + SWELLAppController + NSObject + + onSysMenuCommand: + id + + + onSysMenuCommand: + + onSysMenuCommand: + id + + + + IBProjectSource + ../../WDL/swell/swellappmain.h + + + + SWELLApplication + NSApplication + + + + + YES + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSFontManager + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSMenuItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSDrawer.h + + + + NSWindow + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSWindow.h + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSWindowScripting.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../../IPlugText.xcodeproj + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + + + YES + {9, 8} + {7, 2} + + + + diff -r 000000000000 -r 3004dd663202 resources/img/font-white.png Binary file resources/img/font-white.png has changed diff -r 000000000000 -r 3004dd663202 resources/img/knob.png Binary file resources/img/knob.png has changed diff -r 000000000000 -r 3004dd663202 stk/include/ADSR.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stk/include/ADSR.h Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,179 @@ +#ifndef STK_ADSR_H +#define STK_ADSR_H + +#include "Generator.h" + +namespace stk { + +/***************************************************/ +/*! \class ADSR + \brief STK ADSR envelope class. + + This class implements a traditional ADSR (Attack, Decay, Sustain, + Release) envelope. It responds to simple keyOn and keyOff + messages, keeping track of its state. The \e state = ADSR::IDLE + before being triggered and after the envelope value reaches 0.0 in + the ADSR::RELEASE state. All rate, target and level settings must + be non-negative. All time settings are in seconds and must be + positive. + + by Perry R. Cook and Gary P. Scavone, 1995--2014. +*/ +/***************************************************/ + +class ADSR : public Generator +{ + public: + + //! ADSR envelope states. + enum { + ATTACK, /*!< Attack */ + DECAY, /*!< Decay */ + SUSTAIN, /*!< Sustain */ + RELEASE, /*!< Release */ + IDLE /*!< Before attack / after release */ + }; + + //! Default constructor. + ADSR( void ); + + //! Class destructor. + ~ADSR( void ); + + //! Set target = 1, state = \e ADSR::ATTACK. + void keyOn( void ); + + //! Set target = 0, state = \e ADSR::RELEASE. + void keyOff( void ); + + //! Set the attack rate (gain / sample). + void setAttackRate( StkFloat rate ); + + //! Set the target value for the attack (default = 1.0). + void setAttackTarget( StkFloat target ); + + //! Set the decay rate (gain / sample). + void setDecayRate( StkFloat rate ); + + //! Set the sustain level. + void setSustainLevel( StkFloat level ); + + //! Set the release rate (gain / sample). + void setReleaseRate( StkFloat rate ); + + //! Set the attack rate based on a time duration (seconds). + void setAttackTime( StkFloat time ); + + //! Set the decay rate based on a time duration (seconds). + void setDecayTime( StkFloat time ); + + //! Set the release rate based on a time duration (seconds). + void setReleaseTime( StkFloat time ); + + //! Set sustain level and attack, decay, and release time durations (seconds). + void setAllTimes( StkFloat aTime, StkFloat dTime, StkFloat sLevel, StkFloat rTime ); + + //! Set a sustain target value and attack or decay from current value to target. + void setTarget( StkFloat target ); + + //! Return the current envelope \e state (ATTACK, DECAY, SUSTAIN, RELEASE, IDLE). + int getState( void ) const { return state_; }; + + //! Set to state = ADSR::SUSTAIN with current and target values of \e value. + void setValue( StkFloat value ); + + //! Return the last computed output value. + StkFloat lastOut( void ) const { return lastFrame_[0]; }; + + //! Compute and return one output sample. + StkFloat tick( void ); + + //! Fill a channel of the StkFrames object with computed outputs. + /*! + The \c channel argument must be less than the number of + channels in the StkFrames argument (the first channel is specified + by 0). However, range checking is only performed if _STK_DEBUG_ + is defined during compilation, in which case an out-of-range value + will trigger an StkError exception. + */ + StkFrames& tick( StkFrames& frames, unsigned int channel = 0 ); + + protected: + + void sampleRateChanged( StkFloat newRate, StkFloat oldRate ); + + int state_; + StkFloat value_; + StkFloat target_; + StkFloat attackRate_; + StkFloat decayRate_; + StkFloat releaseRate_; + StkFloat releaseTime_; + StkFloat sustainLevel_; +}; + +inline StkFloat ADSR :: tick( void ) +{ + switch ( state_ ) { + + case ATTACK: + value_ += attackRate_; + if ( value_ >= target_ ) { + value_ = target_; + target_ = sustainLevel_; + state_ = DECAY; + } + lastFrame_[0] = value_; + break; + + case DECAY: + if ( value_ > sustainLevel_ ) { + value_ -= decayRate_; + if ( value_ <= sustainLevel_ ) { + value_ = sustainLevel_; + state_ = SUSTAIN; + } + } + else { + value_ += decayRate_; // attack target < sustain level + if ( value_ >= sustainLevel_ ) { + value_ = sustainLevel_; + state_ = SUSTAIN; + } + } + lastFrame_[0] = value_; + break; + + case RELEASE: + value_ -= releaseRate_; + if ( value_ <= 0.0 ) { + value_ = 0.0; + state_ = IDLE; + } + lastFrame_[0] = value_; + + } + + return value_; +} + +inline StkFrames& ADSR :: tick( StkFrames& frames, unsigned int channel ) +{ +#if defined(_STK_DEBUG_) + if ( channel >= frames.channels() ) { + oStream_ << "ADSR::tick(): channel and StkFrames arguments are incompatible!"; + handleError( StkError::FUNCTION_ARGUMENT ); + } +#endif + + StkFloat *samples = &frames[channel]; + unsigned int hop = frames.channels(); + for ( unsigned int i=0; isetTarget( 1.0 ); }; + + //! Set target = 0. + void keyOff( void ) { this->setTarget( 0.0 ); }; + + //! Set the \e rate. + /*! + The \e rate must be positive (though a value of 0.0 is allowed). + */ + void setRate( StkFloat rate ); + + //! Set the \e rate based on a positive time duration (seconds). + /*! + The \e rate is calculated such that the envelope will ramp from + a value of 0.0 to 1.0 in the specified time duration. + */ + void setTime( StkFloat time ); + + //! Set the target value. + void setTarget( StkFloat target ); + + //! Set current and target values to \e value. + void setValue( StkFloat value ); + + //! Return the current envelope \e state (0 = at target, 1 otherwise). + int getState( void ) const { return state_; }; + + //! Return the last computed output value. + StkFloat lastOut( void ) const { return lastFrame_[0]; }; + + //! Compute and return one output sample. + StkFloat tick( void ); + + //! Fill a channel of the StkFrames object with computed outputs. + /*! + The \c channel argument must be less than the number of + channels in the StkFrames argument (the first channel is specified + by 0). However, range checking is only performed if _STK_DEBUG_ + is defined during compilation, in which case an out-of-range value + will trigger an StkError exception. + */ + StkFrames& tick( StkFrames& frames, unsigned int channel = 0 ); + + protected: + + void sampleRateChanged( StkFloat newRate, StkFloat oldRate ); + + StkFloat value_; + StkFloat target_; + StkFloat rate_; + int state_; +}; + +inline StkFloat Envelope :: tick( void ) +{ + if ( state_ ) { + if ( target_ > value_ ) { + value_ += rate_; + if ( value_ >= target_ ) { + value_ = target_; + state_ = 0; + } + } + else { + value_ -= rate_; + if ( value_ <= target_ ) { + value_ = target_; + state_ = 0; + } + } + lastFrame_[0] = value_; + } + + return value_; +} + +inline StkFrames& Envelope :: tick( StkFrames& frames, unsigned int channel ) +{ +#if defined(_STK_DEBUG_) + if ( channel >= frames.channels() ) { + oStream_ << "Envelope::tick(): channel and StkFrames arguments are incompatible!"; + handleError( StkError::FUNCTION_ARGUMENT ); + } +#endif + + StkFloat *samples = &frames[channel]; + unsigned int hop = frames.channels(); + for ( unsigned int i=0; i= TABLE_SIZE ) + time_ -= TABLE_SIZE; + + iIndex_ = (unsigned int) time_; + alpha_ = time_ - iIndex_; + StkFloat tmp = table_[ iIndex_ ]; + tmp += ( alpha_ * ( table_[ iIndex_ + 1 ] - tmp ) ); + + // Increment time, which can be negative. + time_ += rate_; + + lastFrame_[0] = tmp; + return lastFrame_[0]; +} + +inline StkFrames& SineWave :: tick( StkFrames& frames, unsigned int channel ) +{ +#if defined(_STK_DEBUG_) + if ( channel >= frames.channels() ) { + oStream_ << "SineWave::tick(): channel and StkFrames arguments are incompatible!"; + handleError( StkError::FUNCTION_ARGUMENT ); + } +#endif + + StkFloat *samples = &frames[channel]; + StkFloat tmp = 0.0; + + unsigned int hop = frames.channels(); + for ( unsigned int i=0; i= TABLE_SIZE ) + time_ -= TABLE_SIZE; + + iIndex_ = (unsigned int) time_; + alpha_ = time_ - iIndex_; + tmp = table_[ iIndex_ ]; + tmp += ( alpha_ * ( table_[ iIndex_ + 1 ] - tmp ) ); + *samples = tmp; + + // Increment time, which can be negative. + time_ += rate_; + } + + lastFrame_[0] = tmp; + return frames; +} + +} // stk namespace + +#endif + diff -r 000000000000 -r 3004dd663202 stk/include/Stk.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stk/include/Stk.h Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,548 @@ +#ifndef STK_STK_H +#define STK_STK_H + +#include +#include +#include +#include +#include +//#include + +/*! \namespace stk + \brief The STK namespace. + + Most Stk classes are defined within the STK namespace. Exceptions + to this include the classes RtAudio and RtMidi. +*/ +namespace stk { + +/***************************************************/ +/*! \class Stk + \brief STK base class + + Nearly all STK classes inherit from this class. + The global sample rate and rawwave path variables + can be queried and modified via Stk. In addition, + this class provides error handling and + byte-swapping functions. + + The Synthesis ToolKit in C++ (STK) is a set of open source audio + signal processing and algorithmic synthesis classes written in the + C++ programming language. STK was designed to facilitate rapid + development of music synthesis and audio processing software, with + an emphasis on cross-platform functionality, realtime control, + ease of use, and educational example code. STK currently runs + with realtime support (audio and MIDI) on Linux, Macintosh OS X, + and Windows computer platforms. Generic, non-realtime support has + been tested under NeXTStep, Sun, and other platforms and should + work with any standard C++ compiler. + + STK WWW site: http://ccrma.stanford.edu/software/stk/ + + The Synthesis ToolKit in C++ (STK) + Copyright (c) 1995--2014 Perry R. Cook and Gary P. Scavone + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + Any person wishing to distribute modifications to the Software is + asked to send the modifications to the original developer so that + they can be incorporated into the canonical version. This is, + however, not a binding provision of this license. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +/***************************************************/ + +//#define _STK_DEBUG_ + +// Most data in STK is passed and calculated with the +// following user-definable floating-point type. You +// can change this to "float" if you prefer or perhaps +// a "long double" in the future. +typedef double StkFloat; + +//! STK error handling class. +/*! + This is a fairly abstract exception handling class. There could + be sub-classes to take care of more specific error conditions ... or + not. +*/ +class StkError +{ +public: + enum Type { + STATUS, + WARNING, + DEBUG_PRINT, + MEMORY_ALLOCATION, + MEMORY_ACCESS, + FUNCTION_ARGUMENT, + FILE_NOT_FOUND, + FILE_UNKNOWN_FORMAT, + FILE_ERROR, + PROCESS_THREAD, + PROCESS_SOCKET, + PROCESS_SOCKET_IPADDR, + AUDIO_SYSTEM, + MIDI_SYSTEM, + UNSPECIFIED + }; + +protected: + std::string message_; + Type type_; + +public: + //! The constructor. + StkError(const std::string& message, Type type = StkError::UNSPECIFIED) + : message_(message), type_(type) {} + + //! The destructor. + virtual ~StkError(void) {}; + + //! Prints thrown error message to stderr. + virtual void printMessage(void) { std::cerr << '\n' << message_ << "\n\n"; } + + //! Returns the thrown error message type. + virtual const Type& getType(void) { return type_; } + + //! Returns the thrown error message string. + virtual const std::string& getMessage(void) { return message_; } + + //! Returns the thrown error message as a C string. + virtual const char *getMessageCString(void) { return message_.c_str(); } +}; + + +class Stk +{ +public: + + typedef unsigned long StkFormat; + static const StkFormat STK_SINT8; /*!< -128 to +127 */ + static const StkFormat STK_SINT16; /*!< -32768 to +32767 */ + static const StkFormat STK_SINT24; /*!< Lower 3 bytes of 32-bit signed integer. */ + static const StkFormat STK_SINT32; /*!< -2147483648 to +2147483647. */ + static const StkFormat STK_FLOAT32; /*!< Normalized between plus/minus 1.0. */ + static const StkFormat STK_FLOAT64; /*!< Normalized between plus/minus 1.0. */ + + //! Static method that returns the current STK sample rate. + static StkFloat sampleRate( void ) { return srate_; } + + //! Static method that sets the STK sample rate. + /*! + The sample rate set using this method is queried by all STK + classes that depend on its value. It is initialized to the + default SRATE set in Stk.h. Many STK classes use the sample rate + during instantiation. Therefore, if you wish to use a rate that + is different from the default rate, it is imperative that it be + set \e BEFORE STK objects are instantiated. A few classes that + make use of the global STK sample rate are automatically notified + when the rate changes so that internal class data can be + appropriately updated. However, this has not been fully + implemented. Specifically, classes that appropriately update + their own data when either a setFrequency() or noteOn() function + is called do not currently receive the automatic notification of + rate change. If the user wants a specific class instance to + ignore such notifications, perhaps in a multi-rate context, the + function Stk::ignoreSampleRateChange() should be called. + */ + static void setSampleRate( StkFloat rate ); + + //! A function to enable/disable the automatic updating of class data when the STK sample rate changes. + /*! + This function allows the user to enable or disable class data + updates in response to global sample rate changes on a class by + class basis. + */ + void ignoreSampleRateChange( bool ignore = true ) { ignoreSampleRateChange_ = ignore; }; + + //! Static method that returns the current rawwave path. + static std::string rawwavePath(void) { return rawwavepath_; } + + //! Static method that sets the STK rawwave path. + static void setRawwavePath( std::string path ); + + //! Static method that byte-swaps a 16-bit data type. + static void swap16( unsigned char *ptr ); + + //! Static method that byte-swaps a 32-bit data type. + static void swap32( unsigned char *ptr ); + + //! Static method that byte-swaps a 64-bit data type. + static void swap64( unsigned char *ptr ); + + //! Static cross-platform method to sleep for a number of milliseconds. + static void sleep( unsigned long milliseconds ); + + //! Static method to check whether a value is within a specified range. + static bool inRange( StkFloat value, StkFloat min, StkFloat max ) { + if ( value < min ) return false; + else if ( value > max ) return false; + else return true; + } + + //! Static function for error reporting and handling using c-strings. + static void handleError( const char *message, StkError::Type type ); + + //! Static function for error reporting and handling using c++ strings. + static void handleError( std::string message, StkError::Type type ); + + //! Toggle display of WARNING and STATUS messages. + static void showWarnings( bool status ) { showWarnings_ = status; } + + //! Toggle display of error messages before throwing exceptions. + static void printErrors( bool status ) { printErrors_ = status; } + +private: + static StkFloat srate_; + static std::string rawwavepath_; + static bool showWarnings_; + static bool printErrors_; + static std::vector alertList_; + +protected: + + static std::ostringstream oStream_; + bool ignoreSampleRateChange_; + + //! Default constructor. + Stk( void ); + + //! Class destructor. + virtual ~Stk( void ); + + //! This function should be implemented in subclasses that depend on the sample rate. + virtual void sampleRateChanged( StkFloat newRate, StkFloat oldRate ); + + //! Add class pointer to list for sample rate change notification. + void addSampleRateAlert( Stk *ptr ); + + //! Remove class pointer from list for sample rate change notification. + void removeSampleRateAlert( Stk *ptr ); + + //! Internal function for error reporting that assumes message in \c oStream_ variable. + void handleError( StkError::Type type ) const; +}; + + +/***************************************************/ +/*! \class StkFrames + \brief An STK class to handle vectorized audio data. + + This class can hold single- or multi-channel audio data. The data + type is always StkFloat and the channel format is always + interleaved. In an effort to maintain efficiency, no + out-of-bounds checks are performed in this class unless + _STK_DEBUG_ is defined. + + Internally, the data is stored in a one-dimensional C array. An + indexing operator is available to set and retrieve data values. + Alternately, one can use pointers to access the data, using the + index operator to get an address for a particular location in the + data: + + StkFloat* ptr = &myStkFrames[0]; + + Note that this class can also be used as a table with interpolating + lookup. + + Possible future improvements in this class could include functions + to convert to and return other data types. + + by Perry R. Cook and Gary P. Scavone, 1995--2014. +*/ +/***************************************************/ + +class StkFrames +{ +public: + + //! The default constructor initializes the frame data structure to size zero. + StkFrames( unsigned int nFrames = 0, unsigned int nChannels = 0 ); + + //! Overloaded constructor that initializes the frame data to the specified size with \c value. + StkFrames( const StkFloat& value, unsigned int nFrames, unsigned int nChannels ); + + //! The destructor. + ~StkFrames(); + + // A copy constructor. + StkFrames( const StkFrames& f ); + + // Assignment operator that returns a reference to self. + StkFrames& operator= ( const StkFrames& f ); + + //! Subscript operator that returns a reference to element \c n of self. + /*! + The result can be used as an lvalue. This reference is valid + until the resize function is called or the array is destroyed. The + index \c n must be between 0 and size less one. No range checking + is performed unless _STK_DEBUG_ is defined. + */ + StkFloat& operator[] ( size_t n ); + + //! Subscript operator that returns the value at element \c n of self. + /*! + The index \c n must be between 0 and size less one. No range + checking is performed unless _STK_DEBUG_ is defined. + */ + StkFloat operator[] ( size_t n ) const; + + //! Assignment by sum operator into self. + /*! + The dimensions of the argument are expected to be the same as + self. No range checking is performed unless _STK_DEBUG_ is + defined. + */ + void operator+= ( StkFrames& f ); + + //! Assignment by product operator into self. + /*! + The dimensions of the argument are expected to be the same as + self. No range checking is performed unless _STK_DEBUG_ is + defined. + */ + void operator*= ( StkFrames& f ); + + //! Channel / frame subscript operator that returns a reference. + /*! + The result can be used as an lvalue. This reference is valid + until the resize function is called or the array is destroyed. The + \c frame index must be between 0 and frames() - 1. The \c channel + index must be between 0 and channels() - 1. No range checking is + performed unless _STK_DEBUG_ is defined. + */ + StkFloat& operator() ( size_t frame, unsigned int channel ); + + //! Channel / frame subscript operator that returns a value. + /*! + The \c frame index must be between 0 and frames() - 1. The \c + channel index must be between 0 and channels() - 1. No range checking + is performed unless _STK_DEBUG_ is defined. + */ + StkFloat operator() ( size_t frame, unsigned int channel ) const; + + //! Return an interpolated value at the fractional frame index and channel. + /*! + This function performs linear interpolation. The \c frame + index must be between 0.0 and frames() - 1. The \c channel index + must be between 0 and channels() - 1. No range checking is + performed unless _STK_DEBUG_ is defined. + */ + StkFloat interpolate( StkFloat frame, unsigned int channel = 0 ) const; + + //! Returns the total number of audio samples represented by the object. + size_t size() const { return size_; }; + + //! Returns \e true if the object size is zero and \e false otherwise. + bool empty() const; + + //! Resize self to represent the specified number of channels and frames. + /*! + Changes the size of self based on the number of frames and + channels. No element assignment is performed. No memory + deallocation occurs if the new size is smaller than the previous + size. Further, no new memory is allocated when the new size is + smaller or equal to a previously allocated size. + */ + void resize( size_t nFrames, unsigned int nChannels = 1 ); + + //! Resize self to represent the specified number of channels and frames and perform element initialization. + /*! + Changes the size of self based on the number of frames and + channels, and assigns \c value to every element. No memory + deallocation occurs if the new size is smaller than the previous + size. Further, no new memory is allocated when the new size is + smaller or equal to a previously allocated size. + */ + void resize( size_t nFrames, unsigned int nChannels, StkFloat value ); + + //! Return the number of channels represented by the data. + unsigned int channels( void ) const { return nChannels_; }; + + //! Return the number of sample frames represented by the data. + unsigned int frames( void ) const { return (unsigned int)nFrames_; }; + + //! Set the sample rate associated with the StkFrames data. + /*! + By default, this value is set equal to the current STK sample + rate at the time of instantiation. + */ + void setDataRate( StkFloat rate ) { dataRate_ = rate; }; + + //! Return the sample rate associated with the StkFrames data. + /*! + By default, this value is set equal to the current STK sample + rate at the time of instantiation. + */ + StkFloat dataRate( void ) const { return dataRate_; }; + +private: + + StkFloat *data_; + StkFloat dataRate_; + size_t nFrames_; + unsigned int nChannels_; + size_t size_; + size_t bufferSize_; + +}; + +inline bool StkFrames :: empty() const +{ + if ( size_ > 0 ) return false; + else return true; +} + +inline StkFloat& StkFrames :: operator[] ( size_t n ) +{ +#if defined(_STK_DEBUG_) + if ( n >= size_ ) { + std::ostringstream error; + error << "StkFrames::operator[]: invalid index (" << n << ") value!"; + Stk::handleError( error.str(), StkError::MEMORY_ACCESS ); + } +#endif + + return data_[n]; +} + +inline StkFloat StkFrames :: operator[] ( size_t n ) const +{ +#if defined(_STK_DEBUG_) + if ( n >= size_ ) { + std::ostringstream error; + error << "StkFrames::operator[]: invalid index (" << n << ") value!"; + Stk::handleError( error.str(), StkError::MEMORY_ACCESS ); + } +#endif + + return data_[n]; +} + +inline StkFloat& StkFrames :: operator() ( size_t frame, unsigned int channel ) +{ +#if defined(_STK_DEBUG_) + if ( frame >= nFrames_ || channel >= nChannels_ ) { + std::ostringstream error; + error << "StkFrames::operator(): invalid frame (" << frame << ") or channel (" << channel << ") value!"; + Stk::handleError( error.str(), StkError::MEMORY_ACCESS ); + } +#endif + + return data_[ frame * nChannels_ + channel ]; +} + +inline StkFloat StkFrames :: operator() ( size_t frame, unsigned int channel ) const +{ +#if defined(_STK_DEBUG_) + if ( frame >= nFrames_ || channel >= nChannels_ ) { + std::ostringstream error; + error << "StkFrames::operator(): invalid frame (" << frame << ") or channel (" << channel << ") value!"; + Stk::handleError( error.str(), StkError::MEMORY_ACCESS ); + } +#endif + + return data_[ frame * nChannels_ + channel ]; +} + +inline void StkFrames :: operator+= ( StkFrames& f ) +{ +#if defined(_STK_DEBUG_) + if ( f.frames() != nFrames_ || f.channels() != nChannels_ ) { + std::ostringstream error; + error << "StkFrames::operator+=: frames argument must be of equal dimensions!"; + Stk::handleError( error.str(), StkError::MEMORY_ACCESS ); + } +#endif + + StkFloat *fptr = &f[0]; + StkFloat *dptr = data_; + for ( unsigned int i=0; i 0.0 ) + releaseRate_ = value_ / ( releaseTime_ * Stk::sampleRate() ); +} + +void ADSR :: setAttackRate( StkFloat rate ) +{ + if ( rate < 0.0 ) { + oStream_ << "ADSR::setAttackRate: argument must be >= 0.0!"; + handleError( StkError::WARNING ); return; + } + + attackRate_ = rate; +} + +void ADSR :: setAttackTarget( StkFloat target ) +{ + if ( target < 0.0 ) { + oStream_ << "ADSR::setAttackTarget: negative target not allowed!"; + handleError( StkError::WARNING ); return; + } + + target_ = target; +} + +void ADSR :: setDecayRate( StkFloat rate ) +{ + if ( rate < 0.0 ) { + oStream_ << "ADSR::setDecayRate: negative rates not allowed!"; + handleError( StkError::WARNING ); return; + } + + decayRate_ = rate; +} + +void ADSR :: setSustainLevel( StkFloat level ) +{ + if ( level < 0.0 ) { + oStream_ << "ADSR::setSustainLevel: negative level not allowed!"; + handleError( StkError::WARNING ); return; + } + + sustainLevel_ = level; +} + +void ADSR :: setReleaseRate( StkFloat rate ) +{ + if ( rate < 0.0 ) { + oStream_ << "ADSR::setReleaseRate: negative rates not allowed!"; + handleError( StkError::WARNING ); return; + } + + releaseRate_ = rate; + + // Set to negative value so we don't update the release rate on keyOff() + releaseTime_ = -1.0; +} + +void ADSR :: setAttackTime( StkFloat time ) +{ + if ( time <= 0.0 ) { + oStream_ << "ADSR::setAttackTime: negative or zero times not allowed!"; + handleError( StkError::WARNING ); return; + } + + attackRate_ = 1.0 / ( time * Stk::sampleRate() ); +} + +void ADSR :: setDecayTime( StkFloat time ) +{ + if ( time <= 0.0 ) { + oStream_ << "ADSR::setDecayTime: negative or zero times not allowed!"; + handleError( StkError::WARNING ); return; + } + + decayRate_ = (1.0 - sustainLevel_) / ( time * Stk::sampleRate() ); +} + +void ADSR :: setReleaseTime( StkFloat time ) +{ + if ( time <= 0.0 ) { + oStream_ << "ADSR::setReleaseTime: negative or zero times not allowed!"; + handleError( StkError::WARNING ); return; + } + + releaseRate_ = sustainLevel_ / ( time * Stk::sampleRate() ); + releaseTime_ = time; +} + +void ADSR :: setAllTimes( StkFloat aTime, StkFloat dTime, StkFloat sLevel, StkFloat rTime ) +{ + this->setAttackTime( aTime ); + this->setSustainLevel( sLevel ); + this->setDecayTime( dTime ); + this->setReleaseTime( rTime ); +} + +void ADSR :: setTarget( StkFloat target ) +{ + if ( target < 0.0 ) { + oStream_ << "ADSR::setTarget: negative target not allowed!"; + handleError( StkError::WARNING ); return; + } + + target_ = target; + + this->setSustainLevel( target_ ); + if ( value_ < target_ ) state_ = ATTACK; + if ( value_ > target_ ) state_ = DECAY; +} + +void ADSR :: setValue( StkFloat value ) +{ + state_ = SUSTAIN; + target_ = value; + value_ = value; + this->setSustainLevel( value ); + lastFrame_[0] = value; +} + +} // stk namespace diff -r 000000000000 -r 3004dd663202 stk/src/Envelope.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stk/src/Envelope.cpp Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,84 @@ +/***************************************************/ +/*! \class Envelope + \brief STK linear line envelope class. + + This class implements a simple linear line envelope generator + which is capable of ramping to an arbitrary target value by a + specified \e rate. It also responds to simple \e keyOn and \e + keyOff messages, ramping to 1.0 on keyOn and to 0.0 on keyOff. + + by Perry R. Cook and Gary P. Scavone, 1995--2014. +*/ +/***************************************************/ + +#include "../include/Envelope.h" + +namespace stk { + +Envelope :: Envelope( void ) : Generator() +{ + target_ = 0.0; + value_ = 0.0; + rate_ = 0.001; + state_ = 0; + Stk::addSampleRateAlert( this ); +} + +Envelope :: ~Envelope( void ) +{ + Stk::removeSampleRateAlert( this ); +} + +Envelope& Envelope :: operator= ( const Envelope& e ) +{ + if ( this != &e ) { + target_ = e.target_; + value_ = e.value_; + rate_ = e.rate_; + state_ = e.state_; + } + + return *this; +} + +void Envelope :: sampleRateChanged( StkFloat newRate, StkFloat oldRate ) +{ + if ( !ignoreSampleRateChange_ ) + rate_ = oldRate * rate_ / newRate; +} + +void Envelope :: setRate( StkFloat rate ) +{ + if ( rate < 0.0 ) { + oStream_ << "Envelope::setRate: argument must be >= 0.0!"; + handleError( StkError::WARNING ); return; + } + + rate_ = rate; +} + +void Envelope :: setTime( StkFloat time ) +{ + if ( time <= 0.0 ) { + oStream_ << "Envelope::setTime: argument must be > 0.0!"; + handleError( StkError::WARNING ); return; + } + + rate_ = 1.0 / ( time * Stk::sampleRate() ); +} + +void Envelope :: setTarget( StkFloat target ) +{ + target_ = target; + if ( value_ != target_ ) state_ = 1; +} + +void Envelope :: setValue( StkFloat value ) +{ + state_ = 0; + target_ = value; + value_ = value; + lastFrame_[0] = value_; +} + +} // stk namespace diff -r 000000000000 -r 3004dd663202 stk/src/SineWave.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stk/src/SineWave.cpp Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,78 @@ +/***************************************************/ +/*! \class SineWave + \brief STK sinusoid oscillator class. + + This class computes and saves a static sine "table" that can be + shared by multiple instances. It has an interface similar to the + WaveLoop class but inherits from the Generator class. Output + values are computed using linear interpolation. + + The "table" length, set in SineWave.h, is 2048 samples by default. + + by Perry R. Cook and Gary P. Scavone, 1995--2014. +*/ +/***************************************************/ + +#include "../include/SineWave.h" +#include + +namespace stk { + +StkFrames SineWave :: table_; + +SineWave :: SineWave( void ) + : time_(0.0), rate_(1.0), phaseOffset_(0.0) +{ + if ( table_.empty() ) { + table_.resize( TABLE_SIZE + 1, 1 ); + StkFloat temp = 1.0 / TABLE_SIZE; + for ( unsigned long i=0; i<=TABLE_SIZE; i++ ) + table_[i] = sin( TWO_PI * i * temp ); + } + + Stk::addSampleRateAlert( this ); +} + +SineWave :: ~SineWave() +{ + Stk::removeSampleRateAlert( this ); +} + +void SineWave :: sampleRateChanged( StkFloat newRate, StkFloat oldRate ) +{ + if ( !ignoreSampleRateChange_ ) + this->setRate( oldRate * rate_ / newRate ); +} + +void SineWave :: reset( void ) +{ + time_ = 0.0; + lastFrame_[0] = 0; +} + +void SineWave :: setFrequency( StkFloat frequency ) +{ + // This is a looping frequency. + this->setRate( TABLE_SIZE * frequency / Stk::sampleRate() ); +} + +void SineWave :: addTime( StkFloat time ) +{ + // Add an absolute time in samples. + time_ += time; +} + +void SineWave :: addPhase( StkFloat phase ) +{ + // Add a time in cycles (one cycle = TABLE_SIZE). + time_ += TABLE_SIZE * phase; +} + +void SineWave :: addPhaseOffset( StkFloat phaseOffset ) +{ + // Add a phase offset relative to any previous offset value. + time_ += ( phaseOffset - phaseOffset_ ) * TABLE_SIZE; + phaseOffset_ = phaseOffset; +} + +} // stk namespace diff -r 000000000000 -r 3004dd663202 stk/src/Stk.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stk/src/Stk.cpp Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,340 @@ +/***************************************************/ +/*! \class Stk + \brief STK base class + + Nearly all STK classes inherit from this class. + The global sample rate can be queried and + modified via Stk. In addition, this class + provides error handling and byte-swapping + functions. + + The Synthesis ToolKit in C++ (STK) is a set of open source audio + signal processing and algorithmic synthesis classes written in the + C++ programming language. STK was designed to facilitate rapid + development of music synthesis and audio processing software, with + an emphasis on cross-platform functionality, realtime control, + ease of use, and educational example code. STK currently runs + with realtime support (audio and MIDI) on Linux, Macintosh OS X, + and Windows computer platforms. Generic, non-realtime support has + been tested under NeXTStep, Sun, and other platforms and should + work with any standard C++ compiler. + + STK WWW site: http://ccrma.stanford.edu/software/stk/ + + The Synthesis ToolKit in C++ (STK) + Copyright (c) 1995--2014 Perry R. Cook and Gary P. Scavone + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + Any person wishing to distribute modifications to the Software is + asked to send the modifications to the original developer so that + they can be incorporated into the canonical version. This is, + however, not a binding provision of this license. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +/***************************************************/ + +#include "../include/Stk.h" +#include + +namespace stk { + +StkFloat Stk :: srate_ = (StkFloat) SRATE; +std::string Stk :: rawwavepath_ = RAWWAVE_PATH; +const Stk::StkFormat Stk :: STK_SINT8 = 0x1; +const Stk::StkFormat Stk :: STK_SINT16 = 0x2; +const Stk::StkFormat Stk :: STK_SINT24 = 0x4; +const Stk::StkFormat Stk :: STK_SINT32 = 0x8; +const Stk::StkFormat Stk :: STK_FLOAT32 = 0x10; +const Stk::StkFormat Stk :: STK_FLOAT64 = 0x20; +bool Stk :: showWarnings_ = true; +bool Stk :: printErrors_ = true; +std::vector Stk :: alertList_; +std::ostringstream Stk :: oStream_; + +Stk :: Stk( void ) + : ignoreSampleRateChange_(false) +{ +} + +Stk :: ~Stk( void ) +{ +} + +void Stk :: setSampleRate( StkFloat rate ) +{ + if ( rate > 0.0 && rate != srate_ ) { + StkFloat oldRate = srate_; + srate_ = rate; + + for ( unsigned int i=0; isampleRateChanged( srate_, oldRate ); + } +} + +void Stk :: sampleRateChanged( StkFloat /*newRate*/, StkFloat /*oldRate*/ ) +{ + // This function should be reimplemented in classes that need to + // make internal variable adjustments in response to a global sample + // rate change. +} + +void Stk :: addSampleRateAlert( Stk *ptr ) +{ + for ( unsigned int i=0; i +#elif defined(__OS_WINDOWS__) + #include +#endif + +void Stk :: sleep(unsigned long milliseconds) +{ +#if defined(__OS_WINDOWS__) + Sleep((DWORD) milliseconds); +#elif (defined(__OS_IRIX__) || defined(__OS_LINUX__) || defined(__OS_MACOSX__)) + usleep( (unsigned long) (milliseconds * 1000.0) ); +#endif +} + +void Stk :: handleError( StkError::Type type ) const +{ + handleError( oStream_.str(), type ); + oStream_.str( std::string() ); // reset the ostringstream buffer +} + +void Stk :: handleError( const char *message, StkError::Type type ) +{ + std::string msg( message ); + handleError( msg, type ); +} + +void Stk :: handleError( std::string message, StkError::Type type ) +{ + if ( type == StkError::WARNING || type == StkError::STATUS ) { + if ( !showWarnings_ ) return; + std::cerr << '\n' << message << '\n' << std::endl; + } + else if (type == StkError::DEBUG_PRINT) { +#if defined(_STK_DEBUG_) + std::cerr << '\n' << message << '\n' << std::endl; +#endif + } + else { + if ( printErrors_ ) { + // Print error message before throwing. + std::cerr << '\n' << message << '\n' << std::endl; + } + throw StkError(message, type); + } +} + +// +// StkFrames definitions +// + +StkFrames :: StkFrames( unsigned int nFrames, unsigned int nChannels ) + : data_( 0 ), nFrames_( nFrames ), nChannels_( nChannels ) +{ + size_ = nFrames_ * nChannels_; + bufferSize_ = size_; + + if ( size_ > 0 ) { + data_ = (StkFloat *) calloc( size_, sizeof( StkFloat ) ); +#if defined(_STK_DEBUG_) + if ( data_ == NULL ) { + std::string error = "StkFrames: memory allocation error in constructor!"; + Stk::handleError( error, StkError::MEMORY_ALLOCATION ); + } +#endif + } + + dataRate_ = Stk::sampleRate(); +} + +StkFrames :: StkFrames( const StkFloat& value, unsigned int nFrames, unsigned int nChannels ) + : data_( 0 ), nFrames_( nFrames ), nChannels_( nChannels ) +{ + size_ = nFrames_ * nChannels_; + bufferSize_ = size_; + if ( size_ > 0 ) { + data_ = (StkFloat *) malloc( size_ * sizeof( StkFloat ) ); +#if defined(_STK_DEBUG_) + if ( data_ == NULL ) { + std::string error = "StkFrames: memory allocation error in constructor!"; + Stk::handleError( error, StkError::MEMORY_ALLOCATION ); + } +#endif + for ( long i=0; i<(long)size_; i++ ) data_[i] = value; + } + + dataRate_ = Stk::sampleRate(); +} + +StkFrames :: ~StkFrames() +{ + if ( data_ ) free( data_ ); +} + +StkFrames :: StkFrames( const StkFrames& f ) + : data_(0), size_(0), bufferSize_(0) +{ + resize( f.frames(), f.channels() ); + dataRate_ = Stk::sampleRate(); + for ( unsigned int i=0; i bufferSize_ ) { + if ( data_ ) free( data_ ); + data_ = (StkFloat *) malloc( size_ * sizeof( StkFloat ) ); +#if defined(_STK_DEBUG_) + if ( data_ == NULL ) { + std::string error = "StkFrames::resize: memory allocation error!"; + Stk::handleError( error, StkError::MEMORY_ALLOCATION ); + } +#endif + bufferSize_ = size_; + } +} + +void StkFrames :: resize( size_t nFrames, unsigned int nChannels, StkFloat value ) +{ + this->resize( nFrames, nChannels ); + + for ( size_t i=0; i (StkFloat) ( nFrames_ - 1 ) || channel >= nChannels_ ) { + std::ostringstream error; + error << "StkFrames::interpolate: invalid frame (" << frame << ") or channel (" << channel << ") value!"; + Stk::handleError( error.str(), StkError::MEMORY_ACCESS ); + } +#endif + + size_t iIndex = ( size_t ) frame; // integer part of index + StkFloat output, alpha = frame - (StkFloat) iIndex; // fractional part of index + + iIndex = iIndex * nChannels_ + channel; + output = data_[ iIndex ]; + if ( alpha > 0.0 ) + output += ( alpha * ( data_[ iIndex + nChannels_ ] - output ) ); + + return output; +} + +} // stk namespace diff -r 000000000000 -r 3004dd663202 stk/stk-license.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stk/stk-license.txt Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,39 @@ +The Synthesis ToolKit in C++ (STK) is a set of open source audio +signal processing and algorithmic synthesis classes written in the +C++ programming language. STK was designed to facilitate rapid +development of music synthesis and audio processing software, with +an emphasis on cross-platform functionality, realtime control, +ease of use, and educational example code. STK currently runs +with realtime support (audio and MIDI) on Linux, Macintosh OS X, +and Windows computer platforms. Generic, non-realtime support has +been tested under NeXTStep, Sun, and other platforms and should +work with any standard C++ compiler. + +STK WWW site: http://ccrma.stanford.edu/software/stk/ + +The Synthesis ToolKit in C++ (STK) +Copyright (c) 1995--2014 Perry R. Cook and Gary P. Scavone + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +Any person wishing to distribute modifications to the Software is +asked to send the modifications to the original developer so that they +can be incorporated into the canonical version. This is, however, not +a binding provision of this license. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff -r 000000000000 -r 3004dd663202 update_version.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/update_version.py Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,116 @@ +#!/usr/bin/python + +# this script will update the versions in plist and installer files to match that in resource.h + +import plistlib, os, datetime, fileinput, glob, sys, string +scriptpath = os.path.dirname(os.path.realpath(__file__)) + +def replacestrs(filename, s, r): + files = glob.glob(filename) + + for line in fileinput.input(files,inplace=1): + string.find(line, s) + line = line.replace(s, r) + sys.stdout.write(line) + +def main(): + + MajorStr = "" + MinorStr = "" + BugfixStr = "" + + for line in fileinput.input(scriptpath + "/resource.h",inplace=0): + if "#define PLUG_VER " in line: + FullVersion = int(string.lstrip(line, "#define PLUG_VER "), 16) + major = FullVersion & 0xFFFF0000 + MajorStr = str(major >> 16) + minor = FullVersion & 0x0000FF00 + MinorStr = str(minor >> 8) + BugfixStr = str(FullVersion & 0x000000FF) + + + FullVersionStr = MajorStr + "." + MinorStr + "." + BugfixStr + + today = datetime.date.today() + CFBundleGetInfoString = FullVersionStr + ", Copyright QueenMaryUniversityOfLondon, " + str(today.year) + CFBundleVersion = FullVersionStr + + print "update_version.py - setting version to " + FullVersionStr + print "Updating plist version info..." + + plistpath = scriptpath + "/resources/AccessibleSpectrumAnalyser-VST2-Info.plist" + vst2 = plistlib.readPlist(plistpath) + vst2['CFBundleGetInfoString'] = CFBundleGetInfoString + vst2['CFBundleVersion'] = CFBundleVersion + vst2['CFBundleShortVersionString'] = CFBundleVersion + plistlib.writePlist(vst2, plistpath) + replacestrs(plistpath, "//Apple//", "//Apple Computer//"); + + plistpath = scriptpath + "/resources/AccessibleSpectrumAnalyser-AU-Info.plist" + au = plistlib.readPlist(plistpath) + au['CFBundleGetInfoString'] = CFBundleGetInfoString + au['CFBundleVersion'] = CFBundleVersion + au['CFBundleShortVersionString'] = CFBundleVersion + plistlib.writePlist(au, plistpath) + replacestrs(plistpath, "//Apple//", "//Apple Computer//"); + + plistpath = scriptpath + "/resources/AccessibleSpectrumAnalyser-VST3-Info.plist" + vst3 = plistlib.readPlist(plistpath) + vst3['CFBundleGetInfoString'] = CFBundleGetInfoString + vst3['CFBundleVersion'] = CFBundleVersion + vst3['CFBundleShortVersionString'] = CFBundleVersion + plistlib.writePlist(vst3, plistpath) + replacestrs(plistpath, "//Apple//", "//Apple Computer//"); + + plistpath = scriptpath + "/resources/AccessibleSpectrumAnalyser-OSXAPP-Info.plist" + app = plistlib.readPlist(plistpath) + app['CFBundleGetInfoString'] = CFBundleGetInfoString + app['CFBundleVersion'] = CFBundleVersion + app['CFBundleShortVersionString'] = CFBundleVersion + plistlib.writePlist(app, plistpath) + replacestrs(plistpath, "//Apple//", "//Apple Computer//"); + + plistpath = scriptpath + "/resources/AccessibleSpectrumAnalyser-RTAS-Info.plist" + rtas = plistlib.readPlist(plistpath) + rtas['CFBundleGetInfoString'] = CFBundleGetInfoString + rtas['CFBundleVersion'] = CFBundleVersion + rtas['CFBundleShortVersionString'] = CFBundleVersion + plistlib.writePlist(rtas, plistpath) + replacestrs(plistpath, "//Apple//", "//Apple Computer//"); + + plistpath = scriptpath + "/resources/AccessibleSpectrumAnalyser-AAX-Info.plist" + aax = plistlib.readPlist(plistpath) + aax['CFBundleGetInfoString'] = CFBundleGetInfoString + aax['CFBundleVersion'] = CFBundleVersion + aax['CFBundleShortVersionString'] = CFBundleVersion + plistlib.writePlist(aax, plistpath) + replacestrs(plistpath, "//Apple//", "//Apple Computer//"); + +# plistpath = scriptpath + "/resources/AccessibleSpectrumAnalyser-IOSAPP-Info.plist" +# iosapp = plistlib.readPlist(plistpath) +# iosapp['CFBundleGetInfoString'] = CFBundleGetInfoString +# iosapp['CFBundleVersion'] = CFBundleVersion +# iosapp['CFBundleShortVersionString'] = CFBundleVersion +# plistlib.writePlist(iosapp, plistpath) +# replacestrs(plistpath, "//Apple//", "//Apple Computer//"); + + print "Updating Mac Installer version info..." + + plistpath = scriptpath + "/installer/AccessibleSpectrumAnalyser.pkgproj" + installer = plistlib.readPlist(plistpath) + + for x in range(0,6): + installer['PACKAGES'][x]['PACKAGE_SETTINGS']['VERSION'] = FullVersionStr + + plistlib.writePlist(installer, plistpath) + replacestrs(plistpath, "//Apple//", "//Apple Computer//"); + + print "Updating Windows Installer version info..." + + for line in fileinput.input(scriptpath + "/installer/AccessibleSpectrumAnalyser.iss",inplace=1): + if "AppVersion" in line: + line="AppVersion=" + FullVersionStr + "\n" + sys.stdout.write(line) + +if __name__ == '__main__': + main() \ No newline at end of file diff -r 000000000000 -r 3004dd663202 validate_audiounit.command --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/validate_audiounit.command Fri Feb 26 14:49:35 2016 +0000 @@ -0,0 +1,85 @@ +#! /bin/sh +# shell script to validate your iplug audiounit using auval +# run from terminal with the argument leaks to perform the leaks test (See auval docs) + +BASEDIR=$(dirname $0) + +cd $BASEDIR + +OS_VERSION=`sw_vers -productVersion | egrep -o '10\.[0-9]+'` + +x86_ARGS="" +x64_ARGS="" + +if [[ $OS_VERSION == "10.9" ]] || [[ $OS_VERSION == "10.10" ]] +then + x86_ARGS="-32" + x64_ARGS="" +else + x86_ARGS="" + x64_ARGS="-64" +fi + +PUID=`echo | grep PLUG_UNIQUE_ID resource.h` +PUID=${PUID//\#define PLUG_UNIQUE_ID } +PUID=${PUID//\'} + +PMID=`echo | grep PLUG_MFR_ID resource.h` +PMID=${PMID//\#define PLUG_MFR_ID } +PMID=${PMID//\'} + +PII=`echo | grep PLUG_IS_INST resource.h` +PII=${PII//\#define PLUG_IS_INST } + +PDM=`echo | grep PLUG_DOES_MIDI resource.h` +PDM=${PDM//\#define PLUG_DOES_MIDI } + +TYPE=aufx + +if [ $PII == 1 ] # instrument +then + TYPE=aumu +else + if [ $PDM == 1 ] # midi effect + then + TYPE=aumf + fi +fi + +if [ "$1" == "leaks" ] +then + echo "testing for leaks (i386 32 bit)" + echo 'launch a new shell and type: ps axc|awk "{if (\$5==\"auvaltool\") print \$1}" to get the pid'; + echo "then leaks PID" + + export MallocStackLogging=1 + set env MallocStackLoggingNoCompact=1 + + auval $x86_ARGS -v $TYPE $PUID $PMID -w -q + + unset MallocStackLogging + +else + + echo "\nvalidating i386 32 bit... ------------------------" + echo "--------------------------------------------------" + echo "--------------------------------------------------" + echo "--------------------------------------------------" + echo "--------------------------------------------------" + echo "--------------------------------------------------" + + auval $x86_ARGS -v $TYPE $PUID $PMID + + echo "\nvalidating i386 64 bit... ------------------------" + echo "--------------------------------------------------" + echo "--------------------------------------------------" + echo "--------------------------------------------------" + echo "--------------------------------------------------" + echo "--------------------------------------------------" + + auval $x64_ARGS -v $TYPE $PUID $PMID + +fi + +echo "done" +