From d3bf7393d2f6810464331c1f03cbaa9c96a0acf9 Mon Sep 17 00:00:00 2001 From: asb2m10 Date: Fri, 20 Nov 2015 23:32:21 -0500 Subject: [PATCH] Modulation (wheel,foot,breath,aftertouch) support --- Builds/MacOSX/Dexed.xcodeproj/project.pbxproj | 199 +--------- .../UserInterfaceState.xcuserstate | Bin 201623 -> 201542 bytes Builds/MacOSX/Info.plist | 72 ++-- Dexed.jucer | 2 +- JuceLibraryCode/AppConfig.h | 2 +- Source/EngineMkI.cpp | 11 - Source/ParamDialog.cpp | 364 +++++++++++++++++- Source/ParamDialog.h | 24 +- Source/PluginData.cpp | 1 + Source/PluginProcessor.cpp | 58 +-- Source/PluginProcessor.h | 1 - Source/msfa/controllers.h | 76 +++- Source/msfa/dx7note.cc | 313 ++++++++------- Source/msfa/dx7note.h | 80 ++-- 14 files changed, 708 insertions(+), 495 deletions(-) diff --git a/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj b/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj index 8c96fe7..7a426d6 100644 --- a/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj +++ b/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj @@ -8,48 +8,36 @@ /* Begin PBXBuildFile section */ 00C044DBB8BA1AF35CBC42E6 /* juce_VST_Wrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D6C6FCBA5ECA257959BFE674 /* juce_VST_Wrapper.cpp */; }; - 02B7485A3DD3F44C6058AB0E /* AUCarbonViewBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8ED1068B85DCEFEFDD3C4F82 /* AUCarbonViewBase.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; 069530C6CF2796C568DD3E90 /* juce_gui_basics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 19B56FF22ED0090A8D7A3E04 /* juce_gui_basics.mm */; }; 082D6FF34EFF195C3A3B0CFB /* OperatorEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 838E63F5800CA577B92EF6AE /* OperatorEditor.cpp */; }; - 09E5F88C9C879073B1B103F1 /* AUCarbonViewControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D8F138F48E933ECCF2DB2321 /* AUCarbonViewControl.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; 0D3132A8B412AE9E63024927 /* sin.cc in Sources */ = {isa = PBXBuildFile; fileRef = B0230FCCA099E6430411DFC9 /* sin.cc */; }; - 0E0B0D39FCB31A57F5298C7A /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6A462A15DB909F68F4A9BECC /* AUInputElement.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; 13F8BF7C26D50908163425CF /* juce_VST3_Wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 01EF232D8B427B8CE38127C2 /* juce_VST3_Wrapper.mm */; }; 1C87DA0B69D67481FC6CF4FD /* BinaryData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 54363D0B39B88D43447C0123 /* BinaryData.cpp */; }; 1CBFE444B43C89E749602B7F /* PluginProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45ADFD8885BE76C7F7D999AC /* PluginProcessor.cpp */; }; 1E2E719F9E93AD97BC37565F /* juce_RTAS_DigiCode2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D8038990994C30BDD631733E /* juce_RTAS_DigiCode2.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; - 2360F3C87933B5A51B0D4839 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0598D37F24E489C12F43EF93 /* AUBase.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; - 26E1D92384FB66ED8FCF5101 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C4DE747B720C310D6BC65936 /* AUBuffer.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; 3AB728E101D7B85DD39C5CC8 /* freqlut.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3715DFDD7A1B12083F051F5A /* freqlut.cc */; }; - 3D8568887BBA0D81340FF64D /* AUMIDIEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3E301CD94F9029D7E3898EB2 /* AUMIDIEffectBase.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; - 3FC0533D8E67D63666A51C64 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8B14C1AA3491F103E6A5F7 /* AUEffectBase.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; 434647C21C803FA8A4D44A70 /* fm_op_kernel.cc in Sources */ = {isa = PBXBuildFile; fileRef = 78CA76788217B98287D9E007 /* fm_op_kernel.cc */; }; 478699B4EF80A1A1C0D34C10 /* PluginEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 018D0FB9E97B68D2EB3E3F72 /* PluginEditor.cpp */; }; 47C317B0F77A29ECA0400B2B /* dx7note.cc in Sources */ = {isa = PBXBuildFile; fileRef = AE09B4C2A4BDE8FDA01A8A13 /* dx7note.cc */; }; 4B27ACC5993C8C74FFCDD3BB /* EngineOpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 61F792AFE04C15F413A4F766 /* EngineOpl.cpp */; }; 52770E3D32989EC50834582A /* juce_data_structures.mm in Sources */ = {isa = PBXBuildFile; fileRef = 48BDF7DFA849127655B86873 /* juce_data_structures.mm */; }; 52C0C94470D90310AF2F8433 /* juce_VST3_Wrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0178A36F6E46F92111E4883 /* juce_VST3_Wrapper.cpp */; }; - 556863C97636A308001CFD21 /* CarbonEventHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A44529EBD28E325DAA12D80 /* CarbonEventHandler.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; 5B3A6A14A3951CF8E37608FF /* juce_gui_extra.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6DC26B61BA1638AFAF142A6C /* juce_gui_extra.mm */; }; 5F4FB65ABC71FAAD6EDD822E /* juce_RTAS_DigiCode1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 55E39FAA63BA8B9D40F40712 /* juce_RTAS_DigiCode1.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; 60686C2C30A9F2777CEF01BD /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A56796E1B84D05D8DD1100D /* AudioToolbox.framework */; }; 623AFA9E78826CA0136251DF /* PluginParam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 59D15F780D468B587F9C7E78 /* PluginParam.cpp */; }; 6252C45CDFF75E05CCDBF737 /* CartManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B3889626BDBB814F2387085 /* CartManager.cpp */; }; - 62798B841D9D5E0B71064A73 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2CA60524355CF872ADB42EA4 /* CAVectorUnit.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; 6443699C06267ECC22CF9D12 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E32283AE8CC5A022E1A6B30B /* Accelerate.framework */; }; 68878920F603FF1473994736 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC856709502EE15E8D3F448B /* IOKit.framework */; }; - 6970EC0E1FEDCF3793098929 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B2E31BD7292002DEBCC366B /* CAStreamBasicDescription.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; 697C52FD23363CB2EB9075C6 /* EngineMkI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BEBEDCAD409EE3A5D383B6D /* EngineMkI.cpp */; }; 69A60891A52C61989A205791 /* ProgramListBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF7A1720DADC7983F61E895C /* ProgramListBox.cpp */; }; 6CE74A36A215C0D39041710F /* juce_events.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB6186E32E92664DEFA0C0A1 /* juce_events.mm */; }; 7116DC8487DC8321F36CD3D8 /* DiscRecording.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 452C1184BD776249B33151E5 /* DiscRecording.framework */; }; - 77C3EA8D0A12986429BA466D /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 838A5E852BBD79A98CD9FDDD /* AudioUnit.framework */; }; 7B82F1D5F8DED01AA8988D33 /* fm_core.cc in Sources */ = {isa = PBXBuildFile; fileRef = C01EE75D859C1F942DA3AE61 /* fm_core.cc */; }; 7E444608AFB10ED54DB5C9AB /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E966C95FACF7B8D5A907FE3 /* WebKit.framework */; }; 7E6DF76EEA834AC1E96470CE /* juce_AAX_Wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3254CAE4C282C4432214B016 /* juce_AAX_Wrapper.mm */; }; 8121E10419E2D99645EA254E /* DXComponents.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D984CE634945077E682B48F3 /* DXComponents.cpp */; }; 813B2285513D65DDA30AA6E3 /* RecentFilesMenuTemplate.nib in Resources */ = {isa = PBXBuildFile; fileRef = 6F9852573AA442CFBAD9695F /* RecentFilesMenuTemplate.nib */; }; - 82253A3BBFF29FC56A08C972 /* CoreAudioKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 919DF1054C09D19EDA044BE8 /* CoreAudioKit.framework */; }; 823ECA6DD062A4D0CC056CF0 /* juce_core.mm in Sources */ = {isa = PBXBuildFile; fileRef = 99078823EE2D77389696F0E5 /* juce_core.mm */; }; 87B95D41180EF626460B2EA3 /* juce_audio_basics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3DF47857774F10344F12BE65 /* juce_audio_basics.mm */; }; 8BE2A084394DA3E45DDB5646 /* PluginData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7936BBAA586387B2FAFB958B /* PluginData.cpp */; }; @@ -57,36 +45,24 @@ 927401C89B9B4F84AC1FE42F /* juce_audio_processors.mm in Sources */ = {isa = PBXBuildFile; fileRef = AA2F01B149F981C2997D583F /* juce_audio_processors.mm */; }; 93279A1D631E5F4103EAB17E /* juce_AU_Wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 502D49C82606515A80907EB3 /* juce_AU_Wrapper.mm */; }; 95105DC8536836A06FD5C7BB /* pitchenv.cc in Sources */ = {isa = PBXBuildFile; fileRef = 51E5757E2D48E638F9A4CB61 /* pitchenv.cc */; }; - 95D4EF9899B0D0D3FC729312 /* AUOutputBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 16D7D354B7CBC971E8B0CFA5 /* AUOutputBase.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; - 9D042F9D005532F763A72C26 /* juce_AU_Resources.r in Rez */ = {isa = PBXBuildFile; fileRef = 64CC83E4D891EAEC65EE41C4 /* juce_AU_Resources.r */; }; 9EC12165834B1341938E951D /* env.cc in Sources */ = {isa = PBXBuildFile; fileRef = 00FDFD1ABE59B4CEF74BF5A3 /* env.cc */; }; A451AE788A4BD5AA72174D4C /* juce_audio_formats.mm in Sources */ = {isa = PBXBuildFile; fileRef = 32FC163D919C52263303EF7E /* juce_audio_formats.mm */; }; A6E2908774D7F669F21B1874 /* juce_RTAS_MacUtilities.mm in Sources */ = {isa = PBXBuildFile; fileRef = C7C6039A52C3EE370CA9E73A /* juce_RTAS_MacUtilities.mm */; }; A7D45B047CA84D7EF7018CDC /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F55D83145737DE69999DB92 /* QuartzCore.framework */; }; - AE7F0435D9C8D94FFDA16DCA /* AUMIDIBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E1E415B080EA491A7D58D3A /* AUMIDIBase.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; B0A4786A252B14B604101175 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A01DC4DEBE65C313C7C8A44 /* CoreAudio.framework */; }; B18C192606DF6079E7B9AEB9 /* PluginFx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BADEB7BF1A65E83A7A1736D /* PluginFx.cpp */; }; B82FDEB3E53C9455BC6A5DAE /* juce_RTAS_Wrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EAA5D8078BCC042BDF94C77A /* juce_RTAS_Wrapper.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; - B96C21AF3AD25C7950EA6CE5 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F3171B20C2BBF12A5786B1F5 /* CAAudioChannelLayout.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; - C19B69B5974FA50D116A4F52 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 81A949AE03BA033D5D762E9F /* AUOutputElement.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; C2090920CAE913A6C56E0ACE /* juce_PluginUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B63E7FBEF314AA2B6A8083F4 /* juce_PluginUtilities.cpp */; }; C510246D7D5E162C9DE63DDE /* GlobalEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 19CEF599CB23958AC63D427E /* GlobalEditor.cpp */; }; - CCC498943EDC85558AF6D8B8 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 561A9793AA73B7FDDED14476 /* ComponentBase.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; CD1CF0C6B4AB9F4C8175FE08 /* ParamDialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F221CF21582EE0B8FE774583 /* ParamDialog.cpp */; }; D5A4D43A16EA4C71D53E96CD /* DXLookNFeel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A02775EA788AD4BF7DD1B1A1 /* DXLookNFeel.cpp */; }; - DAC2F8A317486D36C0E0F81F /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A31C49ABA24290126250F574 /* CAMutex.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; DDD1E74DE1AC7E6493AF04CA /* juce_RTAS_DigiCode3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4574217C2F5219DEDDDC9656 /* juce_RTAS_DigiCode3.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; - DFA8CE3B7D7FE269254C9BDD /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DB84FE1DF027D2AB0952F18 /* CAAUParameter.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; E3FA856CA4DB2009BB0F13E7 /* juce_AAX_Wrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 505852570B48EB3F18076B03 /* juce_AAX_Wrapper.cpp */; }; E52CB89B4C49057C5A54CFFE /* juce_graphics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9E3820CD63B47B5385AF2DB6 /* juce_graphics.mm */; }; E8BEA8ABF5E288C5D5FCD620 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 817CC81F50861DAEEFB2043A /* Carbon.framework */; }; E8D9A2B640A87FE92D2DA887 /* juce_VST_Wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6F950B6ABB40B62AE4C0B78 /* juce_VST_Wrapper.mm */; }; - EB464CA0288DD69ABBAE73B3 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 02802D92B7CF0D835254B6C1 /* AUDispatch.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; EC23F9F2EE10A2DE3CB6D406 /* SysexComm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65BE679590BFE2466E16EA67 /* SysexComm.cpp */; }; - ED19C7C3EF2026BC9386CAA3 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BAADD431AF7666E435C6C4B3 /* AUScopeElement.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; ED2B6C710BC0474617D147B7 /* juce_audio_devices.mm in Sources */ = {isa = PBXBuildFile; fileRef = 31AEFAC2A9E8C7C96ECB4B96 /* juce_audio_devices.mm */; }; - EE173D0BBBF66A8977FE3A7E /* AUCarbonViewDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 173994FFD45CE7CB6D2CCAD7 /* AUCarbonViewDispatch.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; - F1106DF1AB7F08D4FC6B6BBB /* MusicDeviceBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 68CCE716313990E1412107A8 /* MusicDeviceBase.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; F329522961F1313091764113 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FDF76165C655B2E77BE4CFD /* Cocoa.framework */; }; F9A9CC03BA0B3030E92675AD /* exp2.cc in Sources */ = {isa = PBXBuildFile; fileRef = F63CE53483AF125DCFB024F1 /* exp2.cc */; }; FA2AF2015CFD98299593EA30 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A81F4DC234E8D93BF9803529 /* CoreMIDI.framework */; }; @@ -103,9 +79,7 @@ 01EF232D8B427B8CE38127C2 /* juce_VST3_Wrapper.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_VST3_Wrapper.mm; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.mm; sourceTree = SOURCE_ROOT; }; 02139A14E2732DE36631414F /* juce_TableHeaderComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableHeaderComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp; sourceTree = SOURCE_ROOT; }; 0236A082C107280C1505021A /* juce_ImageConvolutionKernel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageConvolutionKernel.h; path = ../../JuceLibraryCode/modules/juce_graphics/images/juce_ImageConvolutionKernel.h; sourceTree = SOURCE_ROOT; }; - 02802D92B7CF0D835254B6C1 /* AUDispatch.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUDispatch.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUDispatch.cpp; sourceTree = DEVELOPER_DIR; }; 02E962E65624D43B0906B0C6 /* juce_PerformanceCounter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PerformanceCounter.cpp; path = ../../JuceLibraryCode/modules/juce_core/time/juce_PerformanceCounter.cpp; sourceTree = SOURCE_ROOT; }; - 0337F4D67CD2D5C29939E940 /* CAMutex.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAMutex.h; path = Extras/CoreAudio/PublicUtility/CAMutex.h; sourceTree = DEVELOPER_DIR; }; 0353CE3273A1063693BC5D55 /* juce_win32_Files.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Files.cpp; path = ../../JuceLibraryCode/modules/juce_core/native/juce_win32_Files.cpp; sourceTree = SOURCE_ROOT; }; 037F8EB68705A98C29AEE6B0 /* juce_SystemStats.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SystemStats.cpp; path = ../../JuceLibraryCode/modules/juce_core/system/juce_SystemStats.cpp; sourceTree = SOURCE_ROOT; }; 03813BF0D93D100F6F0393C9 /* AlgoDisplay.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AlgoDisplay.cpp; path = ../../Source/AlgoDisplay.cpp; sourceTree = SOURCE_ROOT; }; @@ -116,7 +90,6 @@ 041EA7D542B0EBF7213B9BA2 /* juce_ApplicationCommandID.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ApplicationCommandID.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/commands/juce_ApplicationCommandID.h; sourceTree = SOURCE_ROOT; }; 041F12CAFA1CD7215AEC5098 /* juce_Component.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Component.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/components/juce_Component.h; sourceTree = SOURCE_ROOT; }; 04E04837EB4F3E03908835C9 /* juce_win32_HiddenMessageWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_win32_HiddenMessageWindow.h; path = ../../JuceLibraryCode/modules/juce_events/native/juce_win32_HiddenMessageWindow.h; sourceTree = SOURCE_ROOT; }; - 0598D37F24E489C12F43EF93 /* AUBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp; sourceTree = DEVELOPER_DIR; }; 05F4DA9558D39B50DA5DEF79 /* juce_SortedSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SortedSet.h; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_SortedSet.h; sourceTree = SOURCE_ROOT; }; 06387FD4ED709086E8E0152E /* juce_XmlDocument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_XmlDocument.h; path = ../../JuceLibraryCode/modules/juce_core/xml/juce_XmlDocument.h; sourceTree = SOURCE_ROOT; }; 06625FB929EB46E8D09E77F8 /* juce_ApplicationCommandInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ApplicationCommandInfo.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h; sourceTree = SOURCE_ROOT; }; @@ -140,7 +113,6 @@ 0C0B6B8DAD62A3F5C926825F /* juce_DynamicLibrary.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DynamicLibrary.h; path = ../../JuceLibraryCode/modules/juce_core/threads/juce_DynamicLibrary.h; sourceTree = SOURCE_ROOT; }; 0CB234755B75E0DBC2FFB58E /* juce_ResizableCornerComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableCornerComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp; sourceTree = SOURCE_ROOT; }; 0D5761BE1D2DEA319B57D740 /* Switch_48x26.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Switch_48x26.png; path = ../../Resources/ui/Switch_48x26.png; sourceTree = SOURCE_ROOT; }; - 0DB84FE1DF027D2AB0952F18 /* CAAUParameter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAAUParameter.cpp; path = Extras/CoreAudio/PublicUtility/CAAUParameter.cpp; sourceTree = DEVELOPER_DIR; }; 0DCC7A5AD5AC5D3637FFAAFB /* juce_ToolbarButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ToolbarButton.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/buttons/juce_ToolbarButton.h; sourceTree = SOURCE_ROOT; }; 0DE1759C594D2719742E928A /* juce_ElementComparator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ElementComparator.h; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_ElementComparator.h; sourceTree = SOURCE_ROOT; }; 0E3FA3D7B11FC7D19CC634BE /* about.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = about.png; path = ../../Resources/about.png; sourceTree = SOURCE_ROOT; }; @@ -153,7 +125,6 @@ 0FDAC75611540A0DE7FE3E22 /* juce_SplashScreen.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SplashScreen.cpp; path = ../../JuceLibraryCode/modules/juce_gui_extra/misc/juce_SplashScreen.cpp; sourceTree = SOURCE_ROOT; }; 105DA88FCA60BE6C92A7249B /* juce_FloatVectorOperations.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FloatVectorOperations.h; path = ../../JuceLibraryCode/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h; sourceTree = SOURCE_ROOT; }; 108462DA6B96E6F49DBD521E /* juce_ScrollBar.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ScrollBar.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_ScrollBar.cpp; sourceTree = SOURCE_ROOT; }; - 10E7F81B8369A5A923D5EE9A /* AUInputFormatConverter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUInputFormatConverter.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUInputFormatConverter.h; sourceTree = DEVELOPER_DIR; }; 112C97A7D8CEC06ED2E1B1BE /* juce_StringArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StringArray.h; path = ../../JuceLibraryCode/modules/juce_core/text/juce_StringArray.h; sourceTree = SOURCE_ROOT; }; 113019177161C70BFD9E655E /* juce_module_info */ = {isa = PBXFileReference; lastKnownFileType = text; name = juce_module_info; path = ../../JuceLibraryCode/modules/juce_gui_extra/juce_module_info; sourceTree = SOURCE_ROOT; }; 11329C73799FA61B7BC76418 /* juce_ResizableEdgeComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableEdgeComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp; sourceTree = SOURCE_ROOT; }; @@ -177,9 +148,7 @@ 1629C7407F033B97102CEF6B /* juce_NormalisableRange.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NormalisableRange.h; path = ../../JuceLibraryCode/modules/juce_core/maths/juce_NormalisableRange.h; sourceTree = SOURCE_ROOT; }; 1635BBF869518BAA7A88A6A0 /* juce_FileSearchPathListComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileSearchPathListComponent.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h; sourceTree = SOURCE_ROOT; }; 163C2312B370BA53F482B84B /* juce_TabbedButtonBar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TabbedButtonBar.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.h; sourceTree = SOURCE_ROOT; }; - 16D7D354B7CBC971E8B0CFA5 /* AUOutputBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUOutputBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUOutputBase.cpp; sourceTree = DEVELOPER_DIR; }; 170F06D00B2197E66300D558 /* juce_TextPropertyComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TextPropertyComponent.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/properties/juce_TextPropertyComponent.h; sourceTree = SOURCE_ROOT; }; - 173994FFD45CE7CB6D2CCAD7 /* AUCarbonViewDispatch.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewDispatch.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewDispatch.cpp; sourceTree = DEVELOPER_DIR; }; 1754400A2E372510CB25043F /* juce_TopLevelWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TopLevelWindow.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/windows/juce_TopLevelWindow.h; sourceTree = SOURCE_ROOT; }; 1756BAFDC82F5E69704BEAFE /* juce_ComponentMovementWatcher.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComponentMovementWatcher.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp; sourceTree = SOURCE_ROOT; }; 17A328AD02B5D7DA362E1D5D /* juce_ConnectedChildProcess.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ConnectedChildProcess.cpp; path = ../../JuceLibraryCode/modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp; sourceTree = SOURCE_ROOT; }; @@ -217,7 +186,6 @@ 2068B2F409A743F7AA6005B8 /* juce_android_Network.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_Network.cpp; path = ../../JuceLibraryCode/modules/juce_core/native/juce_android_Network.cpp; sourceTree = SOURCE_ROOT; }; 20D22F9CE83DD70583C68940 /* juce_BufferingAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BufferingAudioSource.h; path = ../../JuceLibraryCode/modules/juce_audio_basics/sources/juce_BufferingAudioSource.h; sourceTree = SOURCE_ROOT; }; 20D4AE86B061E4D7F2F1F1BF /* juce_ToolbarItemComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ToolbarItemComponent.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h; sourceTree = SOURCE_ROOT; }; - 210364718D006CC26958D583 /* CAVectorUnit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAVectorUnit.h; path = Extras/CoreAudio/PublicUtility/CAVectorUnit.h; sourceTree = DEVELOPER_DIR; }; 212A0795619AC3D8387EB085 /* juce_Logger.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Logger.cpp; path = ../../JuceLibraryCode/modules/juce_core/logging/juce_Logger.cpp; sourceTree = SOURCE_ROOT; }; 214092134C5925973C210C26 /* juce_Process.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Process.h; path = ../../JuceLibraryCode/modules/juce_core/threads/juce_Process.h; sourceTree = SOURCE_ROOT; }; 217D5E7DC9D4006AA1994A96 /* juce_module_info */ = {isa = PBXFileReference; lastKnownFileType = text; name = juce_module_info; path = ../../JuceLibraryCode/modules/juce_audio_processors/juce_module_info; sourceTree = SOURCE_ROOT; }; @@ -260,7 +228,6 @@ 2BEBDED2BACDEEEE975583F3 /* juce_StringPool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StringPool.h; path = ../../JuceLibraryCode/modules/juce_core/text/juce_StringPool.h; sourceTree = SOURCE_ROOT; }; 2C65FDA74486C92DF5EA5C87 /* juce_FileFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileFilter.h; path = ../../JuceLibraryCode/modules/juce_core/files/juce_FileFilter.h; sourceTree = SOURCE_ROOT; }; 2CA19470CA427333F8CAC0A5 /* juce_ImagePreviewComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ImagePreviewComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp; sourceTree = SOURCE_ROOT; }; - 2CA60524355CF872ADB42EA4 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAVectorUnit.cpp; path = Extras/CoreAudio/PublicUtility/CAVectorUnit.cpp; sourceTree = DEVELOPER_DIR; }; 2CB4C73C121FCDEF65CBAC79 /* juce_mac_MainMenu.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_MainMenu.mm; path = ../../JuceLibraryCode/modules/juce_gui_basics/native/juce_mac_MainMenu.mm; sourceTree = SOURCE_ROOT; }; 2D26E2304C0F6FC633936014 /* lfo.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = lfo.cc; path = ../../Source/msfa/lfo.cc; sourceTree = SOURCE_ROOT; }; 2D8A5B5929909ADD898D7E00 /* juce_HashMap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HashMap.h; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_HashMap.h; sourceTree = SOURCE_ROOT; }; @@ -313,7 +280,6 @@ 3A0F35877A9E2F5D5D6A0434 /* juce_IIRFilterAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_IIRFilterAudioSource.h; path = ../../JuceLibraryCode/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h; sourceTree = SOURCE_ROOT; }; 3A2252FE59FEB529074751B8 /* juce_osx_ObjCHelpers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_osx_ObjCHelpers.h; path = ../../JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h; sourceTree = SOURCE_ROOT; }; 3A2DE2FA7B6D718AEF872F43 /* juce_ChannelRemappingAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ChannelRemappingAudioSource.h; path = ../../JuceLibraryCode/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h; sourceTree = SOURCE_ROOT; }; - 3A44529EBD28E325DAA12D80 /* CarbonEventHandler.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CarbonEventHandler.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/CarbonEventHandler.cpp; sourceTree = DEVELOPER_DIR; }; 3BB7B60AE87F68C10DBEE118 /* juce_FileSearchPath.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileSearchPath.h; path = ../../JuceLibraryCode/modules/juce_core/files/juce_FileSearchPath.h; sourceTree = SOURCE_ROOT; }; 3BE8F91A99E8F48CB9F10C1F /* sin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = sin.h; path = ../../Source/msfa/sin.h; sourceTree = SOURCE_ROOT; }; 3C11994F7B26920BEB9DA52D /* juce_LookAndFeel_V3.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LookAndFeel_V3.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h; sourceTree = SOURCE_ROOT; }; @@ -321,7 +287,6 @@ 3D52BDFF32D151178ABE21D0 /* juce_module_info */ = {isa = PBXFileReference; lastKnownFileType = text; name = juce_module_info; path = ../../JuceLibraryCode/modules/juce_gui_basics/juce_module_info; sourceTree = SOURCE_ROOT; }; 3DC88C42A001EAAB6B959C6F /* juce_MidiKeyboardState.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiKeyboardState.cpp; path = ../../JuceLibraryCode/modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp; sourceTree = SOURCE_ROOT; }; 3DF47857774F10344F12BE65 /* juce_audio_basics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_audio_basics.mm; path = ../../JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.mm; sourceTree = SOURCE_ROOT; }; - 3E301CD94F9029D7E3898EB2 /* AUMIDIEffectBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUMIDIEffectBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.cpp; sourceTree = DEVELOPER_DIR; }; 3E312C7BB77E7FF22DF88B96 /* juce_RTAS_DigiCode_Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RTAS_DigiCode_Header.h; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/RTAS/juce_RTAS_DigiCode_Header.h; sourceTree = SOURCE_ROOT; }; 3E5A6D7508BF64D897DABC3A /* juce_DrawableText.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DrawableText.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/drawables/juce_DrawableText.cpp; sourceTree = SOURCE_ROOT; }; 3EBA7E3E2CFD54B3C786098E /* juce_ModalComponentManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ModalComponentManager.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/components/juce_ModalComponentManager.cpp; sourceTree = SOURCE_ROOT; }; @@ -339,7 +304,6 @@ 4166468539A5F6E92A7A153E /* juce_ReferenceCountedArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedArray.h; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_ReferenceCountedArray.h; sourceTree = SOURCE_ROOT; }; 41700CC92AEEF157D3B53BA2 /* juce_Drawable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Drawable.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/drawables/juce_Drawable.h; sourceTree = SOURCE_ROOT; }; 418C5A909668054B5140BDA9 /* juce_FileInputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileInputStream.h; path = ../../JuceLibraryCode/modules/juce_core/files/juce_FileInputStream.h; sourceTree = SOURCE_ROOT; }; - 42037D6AD47F7FEBAF6D4732 /* AUBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUBuffer.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBuffer.h; sourceTree = DEVELOPER_DIR; }; 420843F2827F7FB7A31A4C76 /* juce_TableListBox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableListBox.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TableListBox.cpp; sourceTree = SOURCE_ROOT; }; 4313B453E6E7735DFFD2609A /* juce_ApplicationCommandTarget.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ApplicationCommandTarget.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp; sourceTree = SOURCE_ROOT; }; 431B6C9349785FFC83D695F5 /* juce_Toolbar.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Toolbar.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Toolbar.cpp; sourceTree = SOURCE_ROOT; }; @@ -364,14 +328,12 @@ 462B768DFC2129F54233D51D /* juce_StretchableLayoutResizerBar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StretchableLayoutResizerBar.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h; sourceTree = SOURCE_ROOT; }; 46908987EEFC3623A53A95C2 /* juce_LagrangeInterpolator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LagrangeInterpolator.cpp; path = ../../JuceLibraryCode/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp; sourceTree = SOURCE_ROOT; }; 46969E6B78BC89383358DCDA /* juce_XMLCodeTokeniser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_XMLCodeTokeniser.h; path = ../../JuceLibraryCode/modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h; sourceTree = SOURCE_ROOT; }; - 4697BFC33D1A3C846B2DED19 /* AUSilentTimeout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUSilentTimeout.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUSilentTimeout.h; sourceTree = DEVELOPER_DIR; }; 46C20298CCB469481F5C8D36 /* juce_MouseInactivityDetector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MouseInactivityDetector.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h; sourceTree = SOURCE_ROOT; }; 4710CA869326390AF0CE2A0B /* juce_ResizableEdgeComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableEdgeComponent.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h; sourceTree = SOURCE_ROOT; }; 47168956BF1BAC3FCBD55BB8 /* juce_posix_NamedPipe.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_posix_NamedPipe.cpp; path = ../../JuceLibraryCode/modules/juce_core/native/juce_posix_NamedPipe.cpp; sourceTree = SOURCE_ROOT; }; 475CE9A832328566544F457F /* juce_ZipFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ZipFile.h; path = ../../JuceLibraryCode/modules/juce_core/zip/juce_ZipFile.h; sourceTree = SOURCE_ROOT; }; 4778838DB96C82580CBE10D0 /* juce_module_info */ = {isa = PBXFileReference; lastKnownFileType = text; name = juce_module_info; path = ../../JuceLibraryCode/modules/juce_audio_utils/juce_module_info; sourceTree = SOURCE_ROOT; }; 477946525F6F1BE9135A3101 /* juce_FakeMouseMoveGenerator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FakeMouseMoveGenerator.h; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/utility/juce_FakeMouseMoveGenerator.h; sourceTree = SOURCE_ROOT; }; - 478D907DACBE0CF918C6A0AD /* CarbonEventHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CarbonEventHandler.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/CarbonEventHandler.h; sourceTree = DEVELOPER_DIR; }; 47EF393874A20700CD249091 /* juce_AffineTransform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AffineTransform.h; path = ../../JuceLibraryCode/modules/juce_graphics/geometry/juce_AffineTransform.h; sourceTree = SOURCE_ROOT; }; 4836B8889A1100EA724CE7C2 /* juce_StretchableLayoutManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StretchableLayoutManager.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h; sourceTree = SOURCE_ROOT; }; 48BDF7DFA849127655B86873 /* juce_data_structures.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_data_structures.mm; path = ../../JuceLibraryCode/modules/juce_data_structures/juce_data_structures.mm; sourceTree = SOURCE_ROOT; }; @@ -392,7 +354,6 @@ 4C67D4B9902C1B0CC80E11D8 /* LFO_36_26.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = LFO_36_26.png; path = ../../Resources/ui/LFO_36_26.png; sourceTree = SOURCE_ROOT; }; 4C6C14363344C87BDA4C1C71 /* juce_ComponentBoundsConstrainer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComponentBoundsConstrainer.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp; sourceTree = SOURCE_ROOT; }; 4C9751F81C3C052C9A6390F4 /* juce_StretchableObjectResizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StretchableObjectResizer.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h; sourceTree = SOURCE_ROOT; }; - 4CB06EEFAA877AA4A28FE150 /* MusicDeviceBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MusicDeviceBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.h; sourceTree = DEVELOPER_DIR; }; 4CD97CB51FE3AD5248285B0A /* juce_MouseCursor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MouseCursor.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/mouse/juce_MouseCursor.cpp; sourceTree = SOURCE_ROOT; }; 4D488219CE9D736D69F6EF59 /* juce_DirectoryIterator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DirectoryIterator.h; path = ../../JuceLibraryCode/modules/juce_core/files/juce_DirectoryIterator.h; sourceTree = SOURCE_ROOT; }; 4D8B2790A6E7552C64453A53 /* juce_StretchableLayoutManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StretchableLayoutManager.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp; sourceTree = SOURCE_ROOT; }; @@ -424,7 +385,6 @@ 55474A49BF29196733C89BBB /* juce_BigInteger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BigInteger.h; path = ../../JuceLibraryCode/modules/juce_core/maths/juce_BigInteger.h; sourceTree = SOURCE_ROOT; }; 5548DEE5ED071453F8AD8AB6 /* juce_ResamplingAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResamplingAudioSource.cpp; path = ../../JuceLibraryCode/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp; sourceTree = SOURCE_ROOT; }; 55E39FAA63BA8B9D40F40712 /* juce_RTAS_DigiCode1.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode1.cpp; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/RTAS/juce_RTAS_DigiCode1.cpp; sourceTree = SOURCE_ROOT; }; - 561A9793AA73B7FDDED14476 /* ComponentBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ComponentBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.cpp; sourceTree = DEVELOPER_DIR; }; 5721702823682EC883FCB870 /* juce_HyperlinkButton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_HyperlinkButton.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp; sourceTree = SOURCE_ROOT; }; 577D5E62E1CE48CEAD5855AE /* juce_ThreadWithProgressWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ThreadWithProgressWindow.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h; sourceTree = SOURCE_ROOT; }; 57A533082FEF0CE002D69EDB /* juce_ChannelRemappingAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ChannelRemappingAudioSource.cpp; path = ../../JuceLibraryCode/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp; sourceTree = SOURCE_ROOT; }; @@ -433,7 +393,6 @@ 59D15F780D468B587F9C7E78 /* PluginParam.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = PluginParam.cpp; path = ../../Source/PluginParam.cpp; sourceTree = SOURCE_ROOT; }; 5A1BD822F8CB7D42BB0EAF7A /* juce_PluginListComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PluginListComponent.cpp; path = ../../JuceLibraryCode/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp; sourceTree = SOURCE_ROOT; }; 5A366F36F3B4E50587A30351 /* NotoSans-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file.ttf; name = "NotoSans-Bold.ttf"; path = "../../Resources/ui/NotoSans-Bold.ttf"; sourceTree = SOURCE_ROOT; }; - 5AD3DDD0285C94CEB17BF03C /* AUEffectBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUEffectBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUEffectBase.h; sourceTree = DEVELOPER_DIR; }; 5B12686E2808FCCB8BBE0E24 /* juce_android_GraphicsContext.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_GraphicsContext.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/native/juce_android_GraphicsContext.cpp; sourceTree = SOURCE_ROOT; }; 5BA236D62129EFE13A9EAB1B /* juce_MixerAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MixerAudioSource.cpp; path = ../../JuceLibraryCode/modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp; sourceTree = SOURCE_ROOT; }; 5BC311F801FE9D018A7B231C /* juce_ComponentDragger.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ComponentDragger.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp; sourceTree = SOURCE_ROOT; }; @@ -449,8 +408,6 @@ 5FA112054E39C5FF09F6928B /* juce_LowLevelGraphicsSoftwareRenderer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LowLevelGraphicsSoftwareRenderer.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp; sourceTree = SOURCE_ROOT; }; 5FE10203FC5AE23DBA573E3B /* juce_KnownPluginList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_KnownPluginList.h; path = ../../JuceLibraryCode/modules/juce_audio_processors/scanning/juce_KnownPluginList.h; sourceTree = SOURCE_ROOT; }; 600DDC87EB44F5B6EFA1500F /* juce_ApplicationCommandTarget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ApplicationCommandTarget.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h; sourceTree = SOURCE_ROOT; }; - 6050F8DB4EA5F9A4A27D7653 /* CADebugMacros.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CADebugMacros.h; path = Extras/CoreAudio/PublicUtility/CADebugMacros.h; sourceTree = DEVELOPER_DIR; }; - 60F23312570D43B7F7FC0D43 /* AUInputElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUInputElement.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUInputElement.h; sourceTree = DEVELOPER_DIR; }; 61A517E758E2BF89FF445D7F /* juce_MemoryBlock.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryBlock.cpp; path = ../../JuceLibraryCode/modules/juce_core/memory/juce_MemoryBlock.cpp; sourceTree = SOURCE_ROOT; }; 61E56039E1D2929463E58D62 /* juce_GlyphArrangement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_GlyphArrangement.h; path = ../../JuceLibraryCode/modules/juce_graphics/fonts/juce_GlyphArrangement.h; sourceTree = SOURCE_ROOT; }; 61F792AFE04C15F413A4F766 /* EngineOpl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = EngineOpl.cpp; path = ../../Source/EngineOpl.cpp; sourceTree = SOURCE_ROOT; }; @@ -459,7 +416,6 @@ 63B73D99B066179BB9661D4E /* juce_ChoicePropertyComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ChoicePropertyComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp; sourceTree = SOURCE_ROOT; }; 6475DF69D5BDC709E275BF4D /* juce_WeakReference.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WeakReference.h; path = ../../JuceLibraryCode/modules/juce_core/memory/juce_WeakReference.h; sourceTree = SOURCE_ROOT; }; 64C579AFCDCEED8CAFEF9830 /* juce_ListBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ListBox.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/widgets/juce_ListBox.h; sourceTree = SOURCE_ROOT; }; - 64CC83E4D891EAEC65EE41C4 /* juce_AU_Resources.r */ = {isa = PBXFileReference; lastKnownFileType = file.r; name = juce_AU_Resources.r; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/AU/juce_AU_Resources.r; sourceTree = SOURCE_ROOT; }; 64CF42AFC2E05AEF9D350CD2 /* env.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = env.h; path = ../../Source/msfa/env.h; sourceTree = SOURCE_ROOT; }; 64E0EE125571D369100796D9 /* juce_ComponentPeer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ComponentPeer.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/windows/juce_ComponentPeer.h; sourceTree = SOURCE_ROOT; }; 65BE679590BFE2466E16EA67 /* SysexComm.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = SysexComm.cpp; path = ../../Source/SysexComm.cpp; sourceTree = SOURCE_ROOT; }; @@ -467,17 +423,14 @@ 6742794BECA5E223253EF810 /* juce_mac_Fonts.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_Fonts.mm; path = ../../JuceLibraryCode/modules/juce_graphics/native/juce_mac_Fonts.mm; sourceTree = SOURCE_ROOT; }; 6833DFDF33AA9A5F551EA79D /* juce_DrawableComposite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DrawableComposite.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/drawables/juce_DrawableComposite.h; sourceTree = SOURCE_ROOT; }; 687A7EC567E4B00B663808F1 /* juce_audio_utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_audio_utils.h; path = ../../JuceLibraryCode/modules/juce_audio_utils/juce_audio_utils.h; sourceTree = SOURCE_ROOT; }; - 68CCE716313990E1412107A8 /* MusicDeviceBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MusicDeviceBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.cpp; sourceTree = DEVELOPER_DIR; }; 68D35AFE11BAA35EAE497D47 /* synth.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = synth.h; path = ../../Source/msfa/synth.h; sourceTree = SOURCE_ROOT; }; 68E9769CFD4CE3B4CA530DA3 /* juce_BooleanPropertyComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BooleanPropertyComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp; sourceTree = SOURCE_ROOT; }; 68EBBB35B7A5A57E4BA2F8E2 /* module.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = module.h; path = ../../Source/msfa/module.h; sourceTree = SOURCE_ROOT; }; 69327BB424333BE9051A2C1D /* juce_win32_DragAndDrop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_DragAndDrop.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp; sourceTree = SOURCE_ROOT; }; 69B3908CF6E97D2326117534 /* juce_PathIterator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PathIterator.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/geometry/juce_PathIterator.cpp; sourceTree = SOURCE_ROOT; }; 6A33E3588893DFC8E8370460 /* juce_FFT.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FFT.h; path = ../../JuceLibraryCode/modules/juce_audio_basics/effects/juce_FFT.h; sourceTree = SOURCE_ROOT; }; - 6A462A15DB909F68F4A9BECC /* AUInputElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUInputElement.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUInputElement.cpp; sourceTree = DEVELOPER_DIR; }; 6AFA3298C0E6EBF44DF90481 /* juce_PixelFormats.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PixelFormats.h; path = ../../JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h; sourceTree = SOURCE_ROOT; }; 6B3889626BDBB814F2387085 /* CartManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CartManager.cpp; path = ../../Source/CartManager.cpp; sourceTree = SOURCE_ROOT; }; - 6B8B14C1AA3491F103E6A5F7 /* AUEffectBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUEffectBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUEffectBase.cpp; sourceTree = DEVELOPER_DIR; }; 6C1EBFA6E5161BFC6E0A6686 /* juce_Expression.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Expression.cpp; path = ../../JuceLibraryCode/modules/juce_core/maths/juce_Expression.cpp; sourceTree = SOURCE_ROOT; }; 6CAAD366E2D6A650900C75F0 /* juce_linux_Network.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_Network.cpp; path = ../../JuceLibraryCode/modules/juce_core/native/juce_linux_Network.cpp; sourceTree = SOURCE_ROOT; }; 6CBCD70FF1AE3E23D1598F84 /* juce_ContainerDeletePolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ContainerDeletePolicy.h; path = ../../JuceLibraryCode/modules/juce_core/memory/juce_ContainerDeletePolicy.h; sourceTree = SOURCE_ROOT; }; @@ -486,7 +439,6 @@ 6DC26B61BA1638AFAF142A6C /* juce_gui_extra.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_gui_extra.mm; path = ../../JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.mm; sourceTree = SOURCE_ROOT; }; 6DCB546B40A962FCA3C74DB9 /* juce_ColourGradient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ColourGradient.h; path = ../../JuceLibraryCode/modules/juce_graphics/colour/juce_ColourGradient.h; sourceTree = SOURCE_ROOT; }; 6DEFC761C7F27A8ED88790B4 /* juce_XMLCodeTokeniser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_XMLCodeTokeniser.cpp; path = ../../JuceLibraryCode/modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp; sourceTree = SOURCE_ROOT; }; - 6E1E415B080EA491A7D58D3A /* AUMIDIBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUMIDIBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.cpp; sourceTree = DEVELOPER_DIR; }; 6E2A781F28B3F735F4FAB2A2 /* juce_KeyMappingEditorComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_KeyMappingEditorComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp; sourceTree = SOURCE_ROOT; }; 6E84E300D2ECD62ED1ED3478 /* juce_FileInputSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileInputSource.h; path = ../../JuceLibraryCode/modules/juce_core/streams/juce_FileInputSource.h; sourceTree = SOURCE_ROOT; }; 6E8FC799E88893F8CD15BB71 /* juce_LADSPAPluginFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LADSPAPluginFormat.cpp; path = ../../JuceLibraryCode/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp; sourceTree = SOURCE_ROOT; }; @@ -532,13 +484,10 @@ 7A0FB6545BA2E344A1F45EA5 /* juce_Decibels.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Decibels.h; path = ../../JuceLibraryCode/modules/juce_audio_basics/effects/juce_Decibels.h; sourceTree = SOURCE_ROOT; }; 7A26D67672786E0663369D49 /* juce_IIRFilterAudioSource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_IIRFilterAudioSource.cpp; path = ../../JuceLibraryCode/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp; sourceTree = SOURCE_ROOT; }; 7A58027CF8C6967B02370E01 /* EngineOpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = EngineOpl.h; path = ../../Source/EngineOpl.h; sourceTree = SOURCE_ROOT; }; - 7A65F23E42CEFBDBA64EE2DA /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAAudioChannelLayout.h; path = Extras/CoreAudio/PublicUtility/CAAudioChannelLayout.h; sourceTree = DEVELOPER_DIR; }; 7A739B1B4B833A4668904CA6 /* juce_ReferenceCountedObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedObject.h; path = ../../JuceLibraryCode/modules/juce_core/memory/juce_ReferenceCountedObject.h; sourceTree = SOURCE_ROOT; }; 7A854175B4E6D35ABB7D4E45 /* juce_URL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_URL.h; path = ../../JuceLibraryCode/modules/juce_core/network/juce_URL.h; sourceTree = SOURCE_ROOT; }; 7A905E3EE096DAA1D7BA7ABD /* juce_TabbedButtonBar.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TabbedButtonBar.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp; sourceTree = SOURCE_ROOT; }; 7AB9FBAA49422497E050FFAC /* juce_ChildProcess.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ChildProcess.h; path = ../../JuceLibraryCode/modules/juce_core/threads/juce_ChildProcess.h; sourceTree = SOURCE_ROOT; }; - 7B2E31BD7292002DEBCC366B /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAStreamBasicDescription.cpp; path = Extras/CoreAudio/PublicUtility/CAStreamBasicDescription.cpp; sourceTree = DEVELOPER_DIR; }; - 7B6DC352755033E8436427CA /* AUMIDIBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUMIDIBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.h; sourceTree = DEVELOPER_DIR; }; 7BE1A83B817F581F39B1F983 /* juce_TextEditor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TextEditor.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TextEditor.cpp; sourceTree = SOURCE_ROOT; }; 7BF1EEFA4D36A91714D26060 /* juce_Time.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Time.cpp; path = ../../JuceLibraryCode/modules/juce_core/time/juce_Time.cpp; sourceTree = SOURCE_ROOT; }; 7C2634F55C78A3822A661CE2 /* juce_XmlElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_XmlElement.cpp; path = ../../JuceLibraryCode/modules/juce_core/xml/juce_XmlElement.cpp; sourceTree = SOURCE_ROOT; }; @@ -556,18 +505,13 @@ 7FCE241BE34BC4D1E6988B1F /* juce_Result.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Result.cpp; path = ../../JuceLibraryCode/modules/juce_core/misc/juce_Result.cpp; sourceTree = SOURCE_ROOT; }; 80149DC851E70B4D50DA03DB /* juce_SparseSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SparseSet.h; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_SparseSet.h; sourceTree = SOURCE_ROOT; }; 80153220EFB623D6F205FD1B /* juce_MenuBarComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MenuBarComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp; sourceTree = SOURCE_ROOT; }; - 801E57A03A710591F1B5FEC6 /* AUDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUDispatch.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUDispatch.h; sourceTree = DEVELOPER_DIR; }; 80B36B053E1EA2D1352BD0C9 /* juce_AudioProcessorParameter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioProcessorParameter.h; path = ../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h; sourceTree = SOURCE_ROOT; }; 8141C52E88E3E82A0A226FAD /* juce_KeyPress.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_KeyPress.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/keyboard/juce_KeyPress.cpp; sourceTree = SOURCE_ROOT; }; 817CC81F50861DAEEFB2043A /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; - 81A949AE03BA033D5D762E9F /* AUOutputElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUOutputElement.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUOutputElement.cpp; sourceTree = DEVELOPER_DIR; }; 81E389AD161BE88DA92A59AA /* juce_events.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_events.h; path = ../../JuceLibraryCode/modules/juce_events/juce_events.h; sourceTree = SOURCE_ROOT; }; 829D2BFEB85DC3589FEBB868 /* juce_WildcardFileFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_WildcardFileFilter.cpp; path = ../../JuceLibraryCode/modules/juce_core/files/juce_WildcardFileFilter.cpp; sourceTree = SOURCE_ROOT; }; - 82D97C5FDE8A53DEBB075DC7 /* AUCarbonViewControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUCarbonViewControl.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewControl.h; sourceTree = DEVELOPER_DIR; }; 8312A52619B88D3763F6B493 /* juce_LookAndFeel_V3.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_LookAndFeel_V3.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp; sourceTree = SOURCE_ROOT; }; - 83281A9109419F0057EABD31 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAVectorUnitTypes.h; path = Extras/CoreAudio/PublicUtility/CAVectorUnitTypes.h; sourceTree = DEVELOPER_DIR; }; 834F3F9FC2FE9564FF95243D /* juce_win32_Fonts.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Fonts.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/native/juce_win32_Fonts.cpp; sourceTree = SOURCE_ROOT; }; - 838A5E852BBD79A98CD9FDDD /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; 838E63F5800CA577B92EF6AE /* OperatorEditor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OperatorEditor.cpp; path = ../../Source/OperatorEditor.cpp; sourceTree = SOURCE_ROOT; }; 8390BC6E8D8190A7C45C6A08 /* juce_win32_Messaging.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_win32_Messaging.cpp; path = ../../JuceLibraryCode/modules/juce_events/native/juce_win32_Messaging.cpp; sourceTree = SOURCE_ROOT; }; 83B3A12467C52CB13FB353C6 /* juce_mac_SystemTrayIcon.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_mac_SystemTrayIcon.cpp; path = ../../JuceLibraryCode/modules/juce_gui_extra/native/juce_mac_SystemTrayIcon.cpp; sourceTree = SOURCE_ROOT; }; @@ -584,7 +528,6 @@ 88DEE0054A9328954E19EECA /* juce_InterprocessConnection.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_InterprocessConnection.cpp; path = ../../JuceLibraryCode/modules/juce_events/interprocess/juce_InterprocessConnection.cpp; sourceTree = SOURCE_ROOT; }; 89003B5CB547C82F42EEB0A9 /* juce_mac_NSViewComponentPeer.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_NSViewComponentPeer.mm; path = ../../JuceLibraryCode/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm; sourceTree = SOURCE_ROOT; }; 8915FD41B7EB8AB0961F199A /* juce_ImageFileFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageFileFormat.h; path = ../../JuceLibraryCode/modules/juce_graphics/images/juce_ImageFileFormat.h; sourceTree = SOURCE_ROOT; }; - 8921057E004FE1036191B888 /* AUOutputBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUOutputBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUOutputBase.h; sourceTree = DEVELOPER_DIR; }; 89BBB19B9AFC6DAD43B9B512 /* juce_Random.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Random.cpp; path = ../../JuceLibraryCode/modules/juce_core/maths/juce_Random.cpp; sourceTree = SOURCE_ROOT; }; 89CF359102665330C30E1F9A /* juce_NamedPipe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_NamedPipe.h; path = ../../JuceLibraryCode/modules/juce_core/network/juce_NamedPipe.h; sourceTree = SOURCE_ROOT; }; 8A4EB298996C4C410C1B4CDC /* juce_PathStrokeType.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PathStrokeType.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/geometry/juce_PathStrokeType.cpp; sourceTree = SOURCE_ROOT; }; @@ -607,7 +550,6 @@ 8E04EF74113A0E9808FC4F09 /* juce_PluginDescription.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginDescription.h; path = ../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_PluginDescription.h; sourceTree = SOURCE_ROOT; }; 8E3B1087D0795F0D4E02DAF0 /* juce_DirectoryContentsList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DirectoryContentsList.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h; sourceTree = SOURCE_ROOT; }; 8EC249E14405CAC614E7A4CF /* juce_AttributedString.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AttributedString.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/fonts/juce_AttributedString.cpp; sourceTree = SOURCE_ROOT; }; - 8ED1068B85DCEFEFDD3C4F82 /* AUCarbonViewBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewBase.cpp; sourceTree = DEVELOPER_DIR; }; 8F32EF92B0A18751EC39A79B /* JuceHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = SOURCE_ROOT; }; 8F395B738E7AB81A0333AF96 /* freqlut.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = freqlut.h; path = ../../Source/msfa/freqlut.h; sourceTree = SOURCE_ROOT; }; 8F62A58CDAF0709EDE33F5E0 /* juce_ImageButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageButton.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/buttons/juce_ImageButton.h; sourceTree = SOURCE_ROOT; }; @@ -618,7 +560,6 @@ 911A3E44C161694FF7084464 /* juce_ToggleButton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ToggleButton.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/buttons/juce_ToggleButton.cpp; sourceTree = SOURCE_ROOT; }; 91544DAFCDBE05708D10A24C /* juce_WaitableEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WaitableEvent.h; path = ../../JuceLibraryCode/modules/juce_core/threads/juce_WaitableEvent.h; sourceTree = SOURCE_ROOT; }; 9196D1FCEC768D074AAAD581 /* juce_Variant.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Variant.cpp; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_Variant.cpp; sourceTree = SOURCE_ROOT; }; - 919DF1054C09D19EDA044BE8 /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; 930D512FD24D7E21E43C7322 /* juce_data_structures.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_data_structures.h; path = ../../JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h; sourceTree = SOURCE_ROOT; }; 936D695F9C82434D08C181FC /* juce_BorderSize.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_BorderSize.h; path = ../../JuceLibraryCode/modules/juce_graphics/geometry/juce_BorderSize.h; sourceTree = SOURCE_ROOT; }; 937CFA7E69529A634C1DCD5C /* juce_PropertyComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PropertyComponent.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/properties/juce_PropertyComponent.h; sourceTree = SOURCE_ROOT; }; @@ -673,7 +614,6 @@ A2C4984859B7A2F3CB17C609 /* juce_MultiTimer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MultiTimer.h; path = ../../JuceLibraryCode/modules/juce_events/timers/juce_MultiTimer.h; sourceTree = SOURCE_ROOT; }; A2D3A958C5D96910BEDE9283 /* juce_ListBox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ListBox.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/widgets/juce_ListBox.cpp; sourceTree = SOURCE_ROOT; }; A2DABCCF72397C2C7C69F441 /* juce_TreeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TreeView.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TreeView.h; sourceTree = SOURCE_ROOT; }; - A31C49ABA24290126250F574 /* CAMutex.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAMutex.cpp; path = Extras/CoreAudio/PublicUtility/CAMutex.cpp; sourceTree = DEVELOPER_DIR; }; A348DAE6ECDEF51CAD6B5FE4 /* juce_ValueTree.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ValueTree.cpp; path = ../../JuceLibraryCode/modules/juce_data_structures/values/juce_ValueTree.cpp; sourceTree = SOURCE_ROOT; }; A354DF25FF89648B38DB63DC /* juce_gui_basics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_gui_basics.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h; sourceTree = SOURCE_ROOT; }; A3B840D8C76CA45D3096241C /* juce_OwnedArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OwnedArray.h; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_OwnedArray.h; sourceTree = SOURCE_ROOT; }; @@ -690,7 +630,6 @@ A70082D71DB8B5D779944812 /* juce_FileOutputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileOutputStream.h; path = ../../JuceLibraryCode/modules/juce_core/files/juce_FileOutputStream.h; sourceTree = SOURCE_ROOT; }; A700ACBCC4D648B60362B3D6 /* juce_FileLogger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_FileLogger.h; path = ../../JuceLibraryCode/modules/juce_core/logging/juce_FileLogger.h; sourceTree = SOURCE_ROOT; }; A763DB1FF5441EFF39491530 /* juce_UndoManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_UndoManager.h; path = ../../JuceLibraryCode/modules/juce_data_structures/undomanager/juce_UndoManager.h; sourceTree = SOURCE_ROOT; }; - A7894AD5A242CD86ACE9455C /* AUResources.r */ = {isa = PBXFileReference; lastKnownFileType = file.r; name = AUResources.r; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUResources.r; sourceTree = DEVELOPER_DIR; }; A7BE5CE9E0BA615BCC867CB8 /* juce_DrawableRectangle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DrawableRectangle.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/drawables/juce_DrawableRectangle.h; sourceTree = SOURCE_ROOT; }; A7C3E1CAAA03F545AA4FCFAA /* juce_Path.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Path.h; path = ../../JuceLibraryCode/modules/juce_graphics/geometry/juce_Path.h; sourceTree = SOURCE_ROOT; }; A810A279E11A672B8F84AD72 /* juce_MidiBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiBuffer.h; path = ../../JuceLibraryCode/modules/juce_audio_basics/midi/juce_MidiBuffer.h; sourceTree = SOURCE_ROOT; }; @@ -724,7 +663,6 @@ AE4B8002F4435BEADA3AE966 /* juce_PropertySet.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PropertySet.cpp; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_PropertySet.cpp; sourceTree = SOURCE_ROOT; }; AE4DF6AF917F1A8DDF5376E3 /* juce_ModalComponentManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ModalComponentManager.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/components/juce_ModalComponentManager.h; sourceTree = SOURCE_ROOT; }; AE8321756C03700EB12FF98A /* juce_RecentlyOpenedFilesList.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RecentlyOpenedFilesList.cpp; path = ../../JuceLibraryCode/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp; sourceTree = SOURCE_ROOT; }; - AE84ADD347C9AB73ECFCBED7 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUTimestampGenerator.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUTimestampGenerator.h; sourceTree = DEVELOPER_DIR; }; AED57A3601CE4B9FF8007855 /* juce_HeapBlock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HeapBlock.h; path = ../../JuceLibraryCode/modules/juce_core/memory/juce_HeapBlock.h; sourceTree = SOURCE_ROOT; }; AEFD0A7D65FEC1D23A87FB1C /* juce_PropertyPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PropertyPanel.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/properties/juce_PropertyPanel.h; sourceTree = SOURCE_ROOT; }; AF1DFD842A36E967DF140D5C /* aligned_buf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = aligned_buf.h; path = ../../Source/msfa/aligned_buf.h; sourceTree = SOURCE_ROOT; }; @@ -765,9 +703,7 @@ BA9FFDC7BCC2D364014E1280 /* juce_FileTreeComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileTreeComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp; sourceTree = SOURCE_ROOT; }; BAA40A78E81F4FF0F0E075A6 /* juce_linux_Clipboard.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_Clipboard.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/native/juce_linux_Clipboard.cpp; sourceTree = SOURCE_ROOT; }; BAA44451865610A98B3A69AE /* juce_FileBasedDocument.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileBasedDocument.cpp; path = ../../JuceLibraryCode/modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp; sourceTree = SOURCE_ROOT; }; - BAADD431AF7666E435C6C4B3 /* AUScopeElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUScopeElement.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUScopeElement.cpp; sourceTree = DEVELOPER_DIR; }; BAE2BAF1F5DC75A6E72FC56A /* juce_TableListBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TableListBox.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/widgets/juce_TableListBox.h; sourceTree = SOURCE_ROOT; }; - BAEAEDCE17A81C84439E984A /* CAAUParameter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAAUParameter.h; path = Extras/CoreAudio/PublicUtility/CAAUParameter.h; sourceTree = DEVELOPER_DIR; }; BB08970C0517BF01D80D49B3 /* juce_ComponentAnimator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ComponentAnimator.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_ComponentAnimator.h; sourceTree = SOURCE_ROOT; }; BB7808FBEB84DD9C60978532 /* juce_audio_plugin_client.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_audio_plugin_client.h; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client.h; sourceTree = SOURCE_ROOT; }; BC383B9F2F352E373DE6C4A6 /* juce_CharPointer_UTF32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CharPointer_UTF32.h; path = ../../JuceLibraryCode/modules/juce_core/text/juce_CharPointer_UTF32.h; sourceTree = SOURCE_ROOT; }; @@ -791,7 +727,6 @@ C16DEC12DA7B1444AF0FD5BB /* juce_CustomTypeface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_CustomTypeface.h; path = ../../JuceLibraryCode/modules/juce_graphics/fonts/juce_CustomTypeface.h; sourceTree = SOURCE_ROOT; }; C1CB32E507C8F16FFF6014F6 /* juce_ApplicationBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ApplicationBase.h; path = ../../JuceLibraryCode/modules/juce_events/messages/juce_ApplicationBase.h; sourceTree = SOURCE_ROOT; }; C1E13F0AFFDADDB080D11B74 /* juce_Drawable.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Drawable.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/drawables/juce_Drawable.cpp; sourceTree = SOURCE_ROOT; }; - C1F03CEB2804747AF4C6BF4D /* ComponentBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ComponentBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.h; sourceTree = DEVELOPER_DIR; }; C1FFEA64DED8E45D6A8F17F2 /* juce_ImageFileFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ImageFileFormat.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/images/juce_ImageFileFormat.cpp; sourceTree = SOURCE_ROOT; }; C222D35AC4FC5C2A3BB0F8B6 /* EngineMkI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = EngineMkI.h; path = ../../Source/EngineMkI.h; sourceTree = SOURCE_ROOT; }; C28D3CC3B868C4F092E68D45 /* juce_module_info */ = {isa = PBXFileReference; lastKnownFileType = text; name = juce_module_info; path = ../../JuceLibraryCode/modules/juce_graphics/juce_module_info; sourceTree = SOURCE_ROOT; }; @@ -803,7 +738,6 @@ C48DAE373124C258F3414CDB /* juce_GIFLoader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_GIFLoader.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/image_formats/juce_GIFLoader.cpp; sourceTree = SOURCE_ROOT; }; C49F636E4677A7C8C62A9859 /* juce_Synthesiser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Synthesiser.h; path = ../../JuceLibraryCode/modules/juce_audio_basics/synthesisers/juce_Synthesiser.h; sourceTree = SOURCE_ROOT; }; C4A2C1FDE57CCF33BE778B39 /* juce_AppleRemote.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AppleRemote.h; path = ../../JuceLibraryCode/modules/juce_gui_extra/misc/juce_AppleRemote.h; sourceTree = SOURCE_ROOT; }; - C4DE747B720C310D6BC65936 /* AUBuffer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUBuffer.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBuffer.cpp; sourceTree = DEVELOPER_DIR; }; C56E401381FF968837F82364 /* PluginData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PluginData.h; path = ../../Source/PluginData.h; sourceTree = SOURCE_ROOT; }; C5E92613992AB74C2E715271 /* juce_ApplicationCommandManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ApplicationCommandManager.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp; sourceTree = SOURCE_ROOT; }; C6559A509BD759234BFFCA5D /* juce_TooltipWindow.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TooltipWindow.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp; sourceTree = SOURCE_ROOT; }; @@ -813,7 +747,6 @@ C78890910E4BE9A24F562397 /* juce_BufferedInputStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_BufferedInputStream.cpp; path = ../../JuceLibraryCode/modules/juce_core/streams/juce_BufferedInputStream.cpp; sourceTree = SOURCE_ROOT; }; C7C6039A52C3EE370CA9E73A /* juce_RTAS_MacUtilities.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_RTAS_MacUtilities.mm; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/RTAS/juce_RTAS_MacUtilities.mm; sourceTree = SOURCE_ROOT; }; C7EFC098CAC8AAB04A9D5183 /* juce_win32_ComSmartPtr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_win32_ComSmartPtr.h; path = ../../JuceLibraryCode/modules/juce_core/native/juce_win32_ComSmartPtr.h; sourceTree = SOURCE_ROOT; }; - C89190A10B698C7B1E42C76D /* AUMIDIEffectBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUMIDIEffectBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.h; sourceTree = DEVELOPER_DIR; }; C8DE1F3E1A1871ABB88A5B2D /* juce_SelectedItemSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SelectedItemSet.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/mouse/juce_SelectedItemSet.h; sourceTree = SOURCE_ROOT; }; C92DFD53D297FAD265D1DB8D /* juce_InputSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_InputSource.h; path = ../../JuceLibraryCode/modules/juce_core/streams/juce_InputSource.h; sourceTree = SOURCE_ROOT; }; C9BA4E2199E2302799EFB744 /* juce_ValueTreeSynchroniser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ValueTreeSynchroniser.h; path = ../../JuceLibraryCode/modules/juce_data_structures/values/juce_ValueTreeSynchroniser.h; sourceTree = SOURCE_ROOT; }; @@ -833,17 +766,14 @@ CFFA7532FAFF5655253878FE /* juce_android_Threads.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_android_Threads.cpp; path = ../../JuceLibraryCode/modules/juce_core/native/juce_android_Threads.cpp; sourceTree = SOURCE_ROOT; }; D0096F2804DF0875565D0051 /* juce_AudioDataConverters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioDataConverters.h; path = ../../JuceLibraryCode/modules/juce_audio_basics/buffers/juce_AudioDataConverters.h; sourceTree = SOURCE_ROOT; }; D0178A36F6E46F92111E4883 /* juce_VST3_Wrapper.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VST3_Wrapper.cpp; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp; sourceTree = SOURCE_ROOT; }; - D0A92955B64EB66E9334F51F /* AUOutputElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUOutputElement.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUOutputElement.h; sourceTree = DEVELOPER_DIR; }; D1353A684AD92A6A9FAFBB1B /* juce_DynamicObject.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DynamicObject.cpp; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_DynamicObject.cpp; sourceTree = SOURCE_ROOT; }; D154251B66BF13E992D3D06A /* juce_SystemTrayIconComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_SystemTrayIconComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp; sourceTree = SOURCE_ROOT; }; D17049595AD1C1353337817D /* juce_ImageConvolutionKernel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ImageConvolutionKernel.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp; sourceTree = SOURCE_ROOT; }; D1BEED433BFC4AA10346BE1C /* juce_FileSearchPath.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileSearchPath.cpp; path = ../../JuceLibraryCode/modules/juce_core/files/juce_FileSearchPath.cpp; sourceTree = SOURCE_ROOT; }; - D251BD558FBD32ECA221D81C /* AUScopeElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUScopeElement.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUScopeElement.h; sourceTree = DEVELOPER_DIR; }; D25566BCBFE5CCA4E425E6A7 /* juce_Variant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Variant.h; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_Variant.h; sourceTree = SOURCE_ROOT; }; D2E57CCA4E6F6DBE2953744C /* juce_ComponentBoundsConstrainer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ComponentBoundsConstrainer.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h; sourceTree = SOURCE_ROOT; }; D33DD8892334E06135451054 /* juce_FileSearchPathListComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileSearchPathListComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp; sourceTree = SOURCE_ROOT; }; D35E45B2269C44FCCAD7B1C4 /* juce_Typeface.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Typeface.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/fonts/juce_Typeface.cpp; sourceTree = SOURCE_ROOT; }; - D378EA436E4D111ECE7099C6 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUViewLocalizedStringKeys.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUViewBase/AUViewLocalizedStringKeys.h; sourceTree = DEVELOPER_DIR; }; D409BECBAD7CDC3DE48EFA2F /* juce_FileInputStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_FileInputStream.cpp; path = ../../JuceLibraryCode/modules/juce_core/files/juce_FileInputStream.cpp; sourceTree = SOURCE_ROOT; }; D4811402C8922A6D8EB4C660 /* juce_AudioProcessorPlayer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioProcessorPlayer.cpp; path = ../../JuceLibraryCode/modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp; sourceTree = SOURCE_ROOT; }; D4B060A58438D21EE6CC8F76 /* juce_TimeSliceThread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TimeSliceThread.h; path = ../../JuceLibraryCode/modules/juce_core/threads/juce_TimeSliceThread.h; sourceTree = SOURCE_ROOT; }; @@ -863,7 +793,6 @@ D7E27005916D044FD96919B8 /* juce_ReverbAudioSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReverbAudioSource.h; path = ../../JuceLibraryCode/modules/juce_audio_basics/sources/juce_ReverbAudioSource.h; sourceTree = SOURCE_ROOT; }; D8038990994C30BDD631733E /* juce_RTAS_DigiCode2.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode2.cpp; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/RTAS/juce_RTAS_DigiCode2.cpp; sourceTree = SOURCE_ROOT; }; D8498304CBB374B2800442D4 /* juce_LassoComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_LassoComponent.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/mouse/juce_LassoComponent.h; sourceTree = SOURCE_ROOT; }; - D8F138F48E933ECCF2DB2321 /* AUCarbonViewControl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewControl.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewControl.cpp; sourceTree = DEVELOPER_DIR; }; D90A42D47F3DD9C505D8A925 /* juce_SystemStats.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SystemStats.h; path = ../../JuceLibraryCode/modules/juce_core/system/juce_SystemStats.h; sourceTree = SOURCE_ROOT; }; D921C8001631F2FC4D7EFF9D /* juce_KeyboardFocusTraverser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_KeyboardFocusTraverser.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h; sourceTree = SOURCE_ROOT; }; D984CE634945077E682B48F3 /* DXComponents.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DXComponents.cpp; path = ../../Source/DXComponents.cpp; sourceTree = SOURCE_ROOT; }; @@ -948,14 +877,11 @@ F273ED17232368EBFAFC820B /* juce_DropShadowEffect.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DropShadowEffect.cpp; path = ../../JuceLibraryCode/modules/juce_graphics/effects/juce_DropShadowEffect.cpp; sourceTree = SOURCE_ROOT; }; F27DB431B9ECEE07B84281E8 /* juce_TextButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TextButton.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/buttons/juce_TextButton.h; sourceTree = SOURCE_ROOT; }; F2A26292713BB459A7AE5780 /* juce_ImageCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageCache.h; path = ../../JuceLibraryCode/modules/juce_graphics/images/juce_ImageCache.h; sourceTree = SOURCE_ROOT; }; - F2C763A217C6D0704C6FB4F2 /* AUCarbonViewBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUCarbonViewBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewBase.h; sourceTree = DEVELOPER_DIR; }; - F3171B20C2BBF12A5786B1F5 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAAudioChannelLayout.cpp; path = Extras/CoreAudio/PublicUtility/CAAudioChannelLayout.cpp; sourceTree = DEVELOPER_DIR; }; F32BA2ADBCF84519105AB974 /* juce_TextDiff.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TextDiff.h; path = ../../JuceLibraryCode/modules/juce_core/text/juce_TextDiff.h; sourceTree = SOURCE_ROOT; }; F3718D9D288A2760B6126585 /* juce_mac_CoreGraphicsContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_mac_CoreGraphicsContext.h; path = ../../JuceLibraryCode/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h; sourceTree = SOURCE_ROOT; }; F38E4F0A432CAB98BA8F4F8A /* fm_op_kernel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fm_op_kernel.h; path = ../../Source/msfa/fm_op_kernel.h; sourceTree = SOURCE_ROOT; }; F39BD87913AB2F91817C50EF /* juce_DrawableImage.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_DrawableImage.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/drawables/juce_DrawableImage.cpp; sourceTree = SOURCE_ROOT; }; F3EADB9BD1C520ABD153B785 /* juce_AudioPluginInstance.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioPluginInstance.h; path = ../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioPluginInstance.h; sourceTree = SOURCE_ROOT; }; - F4050C3BAC97B06A7ED35103 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAStreamBasicDescription.h; path = Extras/CoreAudio/PublicUtility/CAStreamBasicDescription.h; sourceTree = DEVELOPER_DIR; }; F426F0185DB4E97E1E59A807 /* juce_module_info */ = {isa = PBXFileReference; lastKnownFileType = text; name = juce_module_info; path = ../../JuceLibraryCode/modules/juce_events/juce_module_info; sourceTree = SOURCE_ROOT; }; F47FA981083705D4B545339F /* pitchenv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pitchenv.h; path = ../../Source/msfa/pitchenv.h; sourceTree = SOURCE_ROOT; }; F4EA09FAC67FDDA4D2E1D151 /* juce_InterprocessConnection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_InterprocessConnection.h; path = ../../JuceLibraryCode/modules/juce_events/interprocess/juce_InterprocessConnection.h; sourceTree = SOURCE_ROOT; }; @@ -966,7 +892,6 @@ F6F950B6ABB40B62AE4C0B78 /* juce_VST_Wrapper.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_VST_Wrapper.mm; path = ../../JuceLibraryCode/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.mm; sourceTree = SOURCE_ROOT; }; F74CAAECFC16D1E87041E5A7 /* juce_DropShadower.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DropShadower.h; path = ../../JuceLibraryCode/modules/juce_gui_basics/misc/juce_DropShadower.h; sourceTree = SOURCE_ROOT; }; F7826D43ACD985679DEACFD0 /* juce_PluginDescription.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_PluginDescription.cpp; path = ../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_PluginDescription.cpp; sourceTree = SOURCE_ROOT; }; - F7B762EB74B4145099C06C5A /* AUBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.h; sourceTree = DEVELOPER_DIR; }; F805C241B3074BB357475216 /* juce_ToolbarButton.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ToolbarButton.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp; sourceTree = SOURCE_ROOT; }; F83AF328F15F82C722B45598 /* juce_ImageEffectFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ImageEffectFilter.h; path = ../../JuceLibraryCode/modules/juce_graphics/effects/juce_ImageEffectFilter.h; sourceTree = SOURCE_ROOT; }; F8A589597222065EA52C4F9C /* juce_linux_CommonFile.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_linux_CommonFile.cpp; path = ../../JuceLibraryCode/modules/juce_core/native/juce_linux_CommonFile.cpp; sourceTree = SOURCE_ROOT; }; @@ -1006,11 +931,9 @@ files = ( 6443699C06267ECC22CF9D12 /* Accelerate.framework in Frameworks */, 60686C2C30A9F2777CEF01BD /* AudioToolbox.framework in Frameworks */, - 77C3EA8D0A12986429BA466D /* AudioUnit.framework in Frameworks */, E8BEA8ABF5E288C5D5FCD620 /* Carbon.framework in Frameworks */, F329522961F1313091764113 /* Cocoa.framework in Frameworks */, B0A4786A252B14B604101175 /* CoreAudio.framework in Frameworks */, - 82253A3BBFF29FC56A08C972 /* CoreAudioKit.framework in Frameworks */, FA2AF2015CFD98299593EA30 /* CoreMIDI.framework in Frameworks */, 7116DC8487DC8321F36CD3D8 /* DiscRecording.framework in Frameworks */, 68878920F603FF1473994736 /* IOKit.framework in Frameworks */, @@ -1341,11 +1264,9 @@ children = ( E32283AE8CC5A022E1A6B30B /* Accelerate.framework */, 0A56796E1B84D05D8DD1100D /* AudioToolbox.framework */, - 838A5E852BBD79A98CD9FDDD /* AudioUnit.framework */, 817CC81F50861DAEEFB2043A /* Carbon.framework */, 2FDF76165C655B2E77BE4CFD /* Cocoa.framework */, 3A01DC4DEBE65C313C7C8A44 /* CoreAudio.framework */, - 919DF1054C09D19EDA044BE8 /* CoreAudioKit.framework */, A81F4DC234E8D93BF9803529 /* CoreMIDI.framework */, 452C1184BD776249B33151E5 /* DiscRecording.framework */, FC856709502EE15E8D3F448B /* IOKit.framework */, @@ -1392,13 +1313,11 @@ 3E0C3A2E8ED7ED09FA4E1CF0 /* Juce Library Code */ = { isa = PBXGroup; children = ( - C2089BDCA7170FE59577FA72 /* Juce AU Wrapper */, A4732634AB48AFD0FB06D7FA /* AppConfig.h */, 54363D0B39B88D43447C0123 /* BinaryData.cpp */, 7228D8E143CA465FB15BD546 /* BinaryData.h */, 505852570B48EB3F18076B03 /* juce_AAX_Wrapper.cpp */, 3254CAE4C282C4432214B016 /* juce_AAX_Wrapper.mm */, - 64CC83E4D891EAEC65EE41C4 /* juce_AU_Resources.r */, 502D49C82606515A80907EB3 /* juce_AU_Wrapper.mm */, 3DF47857774F10344F12BE65 /* juce_audio_basics.mm */, 31AEFAC2A9E8C7C96ECB4B96 /* juce_audio_devices.mm */, @@ -2255,61 +2174,6 @@ name = juce_audio_plugin_client; sourceTree = ""; }; - C2089BDCA7170FE59577FA72 /* Juce AU Wrapper */ = { - isa = PBXGroup; - children = ( - 0598D37F24E489C12F43EF93 /* AUBase.cpp */, - F7B762EB74B4145099C06C5A /* AUBase.h */, - C4DE747B720C310D6BC65936 /* AUBuffer.cpp */, - 42037D6AD47F7FEBAF6D4732 /* AUBuffer.h */, - 8ED1068B85DCEFEFDD3C4F82 /* AUCarbonViewBase.cpp */, - F2C763A217C6D0704C6FB4F2 /* AUCarbonViewBase.h */, - D8F138F48E933ECCF2DB2321 /* AUCarbonViewControl.cpp */, - 82D97C5FDE8A53DEBB075DC7 /* AUCarbonViewControl.h */, - 173994FFD45CE7CB6D2CCAD7 /* AUCarbonViewDispatch.cpp */, - 02802D92B7CF0D835254B6C1 /* AUDispatch.cpp */, - 801E57A03A710591F1B5FEC6 /* AUDispatch.h */, - 6B8B14C1AA3491F103E6A5F7 /* AUEffectBase.cpp */, - 5AD3DDD0285C94CEB17BF03C /* AUEffectBase.h */, - 6A462A15DB909F68F4A9BECC /* AUInputElement.cpp */, - 60F23312570D43B7F7FC0D43 /* AUInputElement.h */, - 10E7F81B8369A5A923D5EE9A /* AUInputFormatConverter.h */, - 6E1E415B080EA491A7D58D3A /* AUMIDIBase.cpp */, - 7B6DC352755033E8436427CA /* AUMIDIBase.h */, - 3E301CD94F9029D7E3898EB2 /* AUMIDIEffectBase.cpp */, - C89190A10B698C7B1E42C76D /* AUMIDIEffectBase.h */, - 16D7D354B7CBC971E8B0CFA5 /* AUOutputBase.cpp */, - 8921057E004FE1036191B888 /* AUOutputBase.h */, - 81A949AE03BA033D5D762E9F /* AUOutputElement.cpp */, - D0A92955B64EB66E9334F51F /* AUOutputElement.h */, - A7894AD5A242CD86ACE9455C /* AUResources.r */, - BAADD431AF7666E435C6C4B3 /* AUScopeElement.cpp */, - D251BD558FBD32ECA221D81C /* AUScopeElement.h */, - 4697BFC33D1A3C846B2DED19 /* AUSilentTimeout.h */, - AE84ADD347C9AB73ECFCBED7 /* AUTimestampGenerator.h */, - D378EA436E4D111ECE7099C6 /* AUViewLocalizedStringKeys.h */, - F3171B20C2BBF12A5786B1F5 /* CAAudioChannelLayout.cpp */, - 7A65F23E42CEFBDBA64EE2DA /* CAAudioChannelLayout.h */, - 0DB84FE1DF027D2AB0952F18 /* CAAUParameter.cpp */, - BAEAEDCE17A81C84439E984A /* CAAUParameter.h */, - 6050F8DB4EA5F9A4A27D7653 /* CADebugMacros.h */, - A31C49ABA24290126250F574 /* CAMutex.cpp */, - 0337F4D67CD2D5C29939E940 /* CAMutex.h */, - 3A44529EBD28E325DAA12D80 /* CarbonEventHandler.cpp */, - 478D907DACBE0CF918C6A0AD /* CarbonEventHandler.h */, - 7B2E31BD7292002DEBCC366B /* CAStreamBasicDescription.cpp */, - F4050C3BAC97B06A7ED35103 /* CAStreamBasicDescription.h */, - 2CA60524355CF872ADB42EA4 /* CAVectorUnit.cpp */, - 210364718D006CC26958D583 /* CAVectorUnit.h */, - 83281A9109419F0057EABD31 /* CAVectorUnitTypes.h */, - 561A9793AA73B7FDDED14476 /* ComponentBase.cpp */, - C1F03CEB2804747AF4C6BF4D /* ComponentBase.h */, - 68CCE716313990E1412107A8 /* MusicDeviceBase.cpp */, - 4CB06EEFAA877AA4A28FE150 /* MusicDeviceBase.h */, - ); - name = "Juce AU Wrapper"; - sourceTree = ""; - }; C21CEF3B473FDC99270B7623 /* Dexed */ = { isa = PBXGroup; children = ( @@ -2699,7 +2563,6 @@ buildConfigurationList = 5900493D34C3F35BEFC2B3D6 /* Build configuration list for PBXNativeTarget "Dexed" */; buildPhases = ( F33A1146DD22EEF53DEB0728 /* Resources */, - D7ECE35BCBD5C64A95ACCFC6 /* Rez */, 9DB7317ADCFFCEAB747A09AF /* Sources */, 06D721A024B3596A28AB8EC1 /* Frameworks */, 3272AB811807EDC647D52F52 /* Post-build script */, @@ -2720,7 +2583,7 @@ 0DA61024CABBA334F84603C0 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0700; + LastUpgradeCheck = 0440; }; buildConfigurationList = 79EC971C74D382E87C0F443D /* Build configuration list for PBXProject "Dexed" */; compatibilityVersion = "Xcode 3.2"; @@ -2749,17 +2612,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXRezBuildPhase section */ - D7ECE35BCBD5C64A95ACCFC6 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - 9D042F9D005532F763A72C26 /* juce_AU_Resources.r in Rez */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXRezBuildPhase section */ - /* Begin PBXShellScriptBuildPhase section */ 3272AB811807EDC647D52F52 /* Post-build script */ = { isa = PBXShellScriptBuildPhase; @@ -2803,27 +2655,6 @@ 623AFA9E78826CA0136251DF /* PluginParam.cpp in Sources */, 8BE2A084394DA3E45DDB5646 /* PluginData.cpp in Sources */, EC23F9F2EE10A2DE3CB6D406 /* SysexComm.cpp in Sources */, - 2360F3C87933B5A51B0D4839 /* AUBase.cpp in Sources */, - 26E1D92384FB66ED8FCF5101 /* AUBuffer.cpp in Sources */, - 02B7485A3DD3F44C6058AB0E /* AUCarbonViewBase.cpp in Sources */, - 09E5F88C9C879073B1B103F1 /* AUCarbonViewControl.cpp in Sources */, - EE173D0BBBF66A8977FE3A7E /* AUCarbonViewDispatch.cpp in Sources */, - EB464CA0288DD69ABBAE73B3 /* AUDispatch.cpp in Sources */, - 3FC0533D8E67D63666A51C64 /* AUEffectBase.cpp in Sources */, - 0E0B0D39FCB31A57F5298C7A /* AUInputElement.cpp in Sources */, - AE7F0435D9C8D94FFDA16DCA /* AUMIDIBase.cpp in Sources */, - 3D8568887BBA0D81340FF64D /* AUMIDIEffectBase.cpp in Sources */, - 95D4EF9899B0D0D3FC729312 /* AUOutputBase.cpp in Sources */, - C19B69B5974FA50D116A4F52 /* AUOutputElement.cpp in Sources */, - ED19C7C3EF2026BC9386CAA3 /* AUScopeElement.cpp in Sources */, - B96C21AF3AD25C7950EA6CE5 /* CAAudioChannelLayout.cpp in Sources */, - DFA8CE3B7D7FE269254C9BDD /* CAAUParameter.cpp in Sources */, - DAC2F8A317486D36C0E0F81F /* CAMutex.cpp in Sources */, - 556863C97636A308001CFD21 /* CarbonEventHandler.cpp in Sources */, - 6970EC0E1FEDCF3793098929 /* CAStreamBasicDescription.cpp in Sources */, - 62798B841D9D5E0B71064A73 /* CAVectorUnit.cpp in Sources */, - CCC498943EDC85558AF6D8B8 /* ComponentBase.cpp in Sources */, - F1106DF1AB7F08D4FC6B6BBB /* MusicDeviceBase.cpp in Sources */, 1C87DA0B69D67481FC6CF4FD /* BinaryData.cpp in Sources */, E3FA856CA4DB2009BB0F13E7 /* juce_AAX_Wrapper.cpp in Sources */, 7E6DF76EEA834AC1E96470CE /* juce_AAX_Wrapper.mm in Sources */, @@ -2859,7 +2690,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(NATIVE_ARCH_ACTUAL)"; DEBUG_INFORMATION_FORMAT = dwarf; GCC_C_LANGUAGE_STANDARD = c99; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; @@ -2870,10 +2700,9 @@ GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = Dexed; - SDKROOT = macosx10.8; + SDKROOT = macosx10.7; WARNING_CFLAGS = "-Wreorder"; ZERO_LINK = NO; }; @@ -2883,7 +2712,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(NATIVE_ARCH_ACTUAL)"; DEBUG_INFORMATION_FORMAT = dwarf; GCC_C_LANGUAGE_STANDARD = c99; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; @@ -2894,10 +2722,8 @@ GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; - ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = Dexed; - SDKROOT = macosx10.8; + SDKROOT = macosx10.7; WARNING_CFLAGS = "-Wreorder"; ZERO_LINK = NO; }; @@ -2906,14 +2732,12 @@ 4AA859F8A477DEBA3D568766 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; CLANG_LINK_OBJC_RUNTIME = NO; COMBINE_HIDPI_IMAGES = YES; CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; DEAD_CODE_STRIPPING = YES; - EXCLUDED_SOURCE_FILE_NAMES = "$(EXCLUDED_SOURCE_FILE_NAMES_$(CURRENT_ARCH))"; - EXCLUDED_SOURCE_FILE_NAMES_x86_64 = "*Carbon*.cpp"; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = s; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -2930,20 +2754,14 @@ "~/Documents/src/vstsdk2.4", ../../JuceLibraryCode, ../../JuceLibraryCode/modules, - "$(DEVELOPER_DIR)/Extras/CoreAudio/PublicUtility", - "$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/Utility", - "$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase", "$(inherited)", ); INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; LIBRARY_STYLE = Bundle; MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; - ONLY_ACTIVE_ARCH = YES; OTHER_LDFLAGS = "-bundle"; OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\""; - PRODUCT_BUNDLE_IDENTIFIER = com.digitalsuburban.Dexed; - SDKROOT = macosx10.8; SDKROOT_ppc = macosx10.5; WRAPPER_EXTENSION = component; }; @@ -2952,14 +2770,11 @@ 93498502B083FC03423F6407 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; CLANG_LINK_OBJC_RUNTIME = NO; COMBINE_HIDPI_IMAGES = YES; CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; COPY_PHASE_STRIP = NO; - EXCLUDED_SOURCE_FILE_NAMES = "$(EXCLUDED_SOURCE_FILE_NAMES_$(CURRENT_ARCH))"; - EXCLUDED_SOURCE_FILE_NAMES_x86_64 = "*Carbon*.cpp"; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -2975,20 +2790,14 @@ "~/Documents/src/vstsdk2.4", ../../JuceLibraryCode, ../../JuceLibraryCode/modules, - "$(DEVELOPER_DIR)/Extras/CoreAudio/PublicUtility", - "$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/Utility", - "$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase", "$(inherited)", ); INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; LIBRARY_STYLE = Bundle; MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; - ONLY_ACTIVE_ARCH = YES; OTHER_LDFLAGS = "-bundle"; OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\""; - PRODUCT_BUNDLE_IDENTIFIER = com.digitalsuburban.Dexed; - SDKROOT = macosx10.8; SDKROOT_ppc = macosx10.5; WRAPPER_EXTENSION = component; }; diff --git a/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate b/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate index 074dcf24691a191de274526eb725eb4f1f09f319..c6761a6980ef390649876afd8618b27d930a2956 100644 GIT binary patch literal 201542 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't-6{l=gkV<7jK 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≥V3`zE9bbtpU6I^07Z~-j$U($^Aa-7apO61 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 Y@BhvV|G)ose&qlC_y7NYxKGmm0g=duS^xk5 literal 201623 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

XU4BI7Mt% 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%0A9{bSWOmd6|Ig{s4=9S0h_8_NnOLJoj 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 z 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 diff --git a/Builds/MacOSX/Info.plist b/Builds/MacOSX/Info.plist index fcac41b..4cf7c15 100644 --- a/Builds/MacOSX/Info.plist +++ b/Builds/MacOSX/Info.plist @@ -1,45 +1,27 @@ - - - - - AudioComponents - - - description - Dexed FM Synth - factoryFunction - DexedAUFactory - manufacturer - DGSB - name - Digital Suburban: Dexed - subtype - Dexd - type - aumu - version - 65536 - - - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleName - Dexed - CFBundlePackageType - TDMw - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - PTul - CFBundleVersion - 1.0.0 - NSHighResolutionCapable - - NSHumanReadableCopyright - Digital Suburban - - + + + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.digitalsuburban.Dexed + CFBundleName + Dexed + CFBundlePackageType + TDMw + CFBundleSignature + PTul + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + Digital Suburban + NSHighResolutionCapable + + + diff --git a/Dexed.jucer b/Dexed.jucer index 425c742..efb2907 100644 --- a/Dexed.jucer +++ b/Dexed.jucer @@ -2,7 +2,7 @@ sinBitFilter; int32_t y1 = ((int64_t)y * (int64_t)gain) >> 24; output[i] += y1; phase += freq; @@ -77,7 +76,6 @@ void EngineMkI::compute(int32_t *output, const int32_t *input, for (int i = 0; i < N; i++) { gain += dgain; int32_t y = Sin::lookup(phase + input[i]); - y &= controllers->sinBitFilter; int32_t y1 = ((int64_t)y * (int64_t)gain) >> 24; output[i] = y1; phase += freq; @@ -95,7 +93,6 @@ void EngineMkI::compute_pure(int32_t *output, int32_t phase0, int32_t freq, for (int i = 0; i < N; i++) { gain += dgain; int32_t y = Sin::lookup(phase); - y &= controllers->sinBitFilter; int32_t y1 = ((int64_t)y * (int64_t)gain) >> 24; output[i] += y1; phase += freq; @@ -104,7 +101,6 @@ void EngineMkI::compute_pure(int32_t *output, int32_t phase0, int32_t freq, for (int i = 0; i < N; i++) { gain += dgain; int32_t y = Sin::lookup(phase); - y &= controllers->sinBitFilter; int32_t y1 = ((int64_t)y * (int64_t)gain) >> 24; output[i] = y1; phase += freq; @@ -126,7 +122,6 @@ void EngineMkI::compute_fb(int32_t *output, int32_t phase0, int32_t freq, int32_t scaled_fb = (y0 + y) >> (fb_shift + 1); y0 = y; y = Sin::lookup(phase + scaled_fb); - y &= controllers->sinBitFilter; y = ((int64_t)y * (int64_t)gain) >> 24; output[i] += y; phase += freq; @@ -137,7 +132,6 @@ void EngineMkI::compute_fb(int32_t *output, int32_t phase0, int32_t freq, int32_t scaled_fb = (y0 + y) >> (fb_shift + 1); y0 = y; y = Sin::lookup(phase + scaled_fb); - y &= controllers->sinBitFilter; y = ((int64_t)y * (int64_t)gain) >> 24; output[i] = y; phase += freq; @@ -173,14 +167,12 @@ void EngineMkI::compute_fb2(int32_t *output, FmOpParams *parms, int32_t gain01, int32_t scaled_fb = (y0 + y) >> (fb_shift + 2); // tsk tsk tsk: this needs some tuning y0 = y; y = Sin::lookup(phase[0] + scaled_fb); - y &= cont->sinBitFilter; y = ((int64_t)y * (int64_t)gain[0]) >> 24; phase[0] += parms[0].freq; // op 1 gain[1] += dgain[1]; y = Sin::lookup(phase[1] + y); - y &= cont->sinBitFilter; y = ((int64_t)y * (int64_t)gain[1]) >> 24; output[i] = y; phase[1] += parms[1].freq; @@ -218,21 +210,18 @@ void EngineMkI::compute_fb3(int32_t *output, FmOpParams *parms, int32_t gain01, int32_t scaled_fb = (y0 + y) >> (fb_shift + 6); // tsk tsk tsk: this needs some tuning y0 = y; y = Sin::lookup(phase[0] + scaled_fb); - y &= cont->sinBitFilter; y = ((int64_t)y * (int64_t)gain[0]) >> 24; phase[0] += parms[0].freq; // op 1 gain[1] += dgain[1]; y = Sin::lookup(phase[1] + y); - y &= cont->sinBitFilter; y = ((int64_t)y * (int64_t)gain[1]) >> 24; phase[1] += parms[1].freq; // op 2 gain[2] += dgain[2]; y = Sin::lookup(phase[2] + y); - y &= cont->sinBitFilter; y = ((int64_t)y * (int64_t)gain[2]) >> 24; output[i] = y; phase[2] += parms[2].freq; diff --git a/Source/ParamDialog.cpp b/Source/ParamDialog.cpp index 0c51929..6b061de 100644 --- a/Source/ParamDialog.cpp +++ b/Source/ParamDialog.cpp @@ -7,12 +7,12 @@ the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded and re-saved. - Created with Introjucer version: 3.1.0 + Created with Introjucer version: 3.2.0 ------------------------------------------------------------------------------ The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-13 by Raw Material Software Ltd. + Copyright (c) 2015 - ROLI Ltd. ============================================================================== */ @@ -30,6 +30,9 @@ //============================================================================== ParamDialog::ParamDialog () { + //[Constructor_pre] You can add your own custom stuff here.. + //[/Constructor_pre] + addAndMakeVisible (pitchRange = new Slider ("pitchRange")); pitchRange->setRange (0, 12, 1); pitchRange->setSliderStyle (Slider::RotaryVerticalDrag); @@ -75,11 +78,83 @@ ParamDialog::ParamDialog () addAndMakeVisible (showKeyboard = new ToggleButton ("showKeyboard")); showKeyboard->setButtonText (String::empty); + addAndMakeVisible (whlRange = new Slider ("whlRange")); + whlRange->setRange (0, 99, 1); + whlRange->setSliderStyle (Slider::RotaryVerticalDrag); + whlRange->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); + whlRange->addListener (this); + + addAndMakeVisible (ftRange = new Slider ("ftRange")); + ftRange->setRange (0, 99, 1); + ftRange->setSliderStyle (Slider::RotaryVerticalDrag); + ftRange->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); + ftRange->addListener (this); + + addAndMakeVisible (brRange = new Slider ("brRange")); + brRange->setRange (0, 99, 1); + brRange->setSliderStyle (Slider::RotaryVerticalDrag); + brRange->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); + brRange->addListener (this); + + addAndMakeVisible (atRange = new Slider ("atRange")); + atRange->setRange (0, 99, 1); + atRange->setSliderStyle (Slider::RotaryVerticalDrag); + atRange->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); + atRange->addListener (this); + + addAndMakeVisible (whlEg = new ToggleButton ("whlEg")); + whlEg->setButtonText (String::empty); + whlEg->addListener (this); + + addAndMakeVisible (ftEg = new ToggleButton ("ftEg")); + ftEg->setButtonText (String::empty); + ftEg->addListener (this); + + addAndMakeVisible (brEg = new ToggleButton ("brEg")); + brEg->setButtonText (String::empty); + brEg->addListener (this); + + addAndMakeVisible (atEg = new ToggleButton ("atEg")); + atEg->setButtonText (String::empty); + atEg->addListener (this); + + addAndMakeVisible (whlAmp = new ToggleButton ("whlAmp")); + whlAmp->setButtonText (String::empty); + whlAmp->addListener (this); + + addAndMakeVisible (ftAmp = new ToggleButton ("ftAmp")); + ftAmp->setButtonText (String::empty); + ftAmp->addListener (this); + + addAndMakeVisible (brAmp = new ToggleButton ("brAmp")); + brAmp->setButtonText (String::empty); + brAmp->addListener (this); + + addAndMakeVisible (atAmp = new ToggleButton ("atAmp")); + atAmp->setButtonText (String::empty); + atAmp->addListener (this); + + addAndMakeVisible (whlPitch = new ToggleButton ("whlPitch")); + whlPitch->setButtonText (String::empty); + whlPitch->addListener (this); + + addAndMakeVisible (ftPitch = new ToggleButton ("ftPitch")); + ftPitch->setButtonText (String::empty); + ftPitch->addListener (this); + + addAndMakeVisible (brPitch = new ToggleButton ("brPitch")); + brPitch->setButtonText (String::empty); + brPitch->addListener (this); + + addAndMakeVisible (atPitch = new ToggleButton ("atPitch")); + atPitch->setButtonText (String::empty); + atPitch->addListener (this); + //[UserPreSize] //[/UserPreSize] - setSize (350, 350); + setSize (700, 350); //[Constructor] You can add your own custom stuff here.. @@ -110,6 +185,22 @@ ParamDialog::~ParamDialog() sysexChl = nullptr; engineReso = nullptr; showKeyboard = nullptr; + whlRange = nullptr; + ftRange = nullptr; + brRange = nullptr; + atRange = nullptr; + whlEg = nullptr; + ftEg = nullptr; + brEg = nullptr; + atEg = nullptr; + whlAmp = nullptr; + ftAmp = nullptr; + brAmp = nullptr; + atAmp = nullptr; + whlPitch = nullptr; + ftPitch = nullptr; + brPitch = nullptr; + atPitch = nullptr; //[Destructor]. You can add your own custom destruction code here.. @@ -172,12 +263,60 @@ void ParamDialog::paint (Graphics& g) 20, 96, 276, 23, Justification::centredLeft, true); + g.setColour (Colours::black); + g.fillRect (352, 11, 1, 325); + + g.setColour (Colours::white); + g.setFont (Font (15.00f, Font::plain)); + g.drawText (TRANS("Wheel"), + 368, 19, 276, 23, + Justification::centredLeft, true); + + g.setColour (Colours::white); + g.setFont (Font (15.00f, Font::plain)); + g.drawText (TRANS("Foot"), + 368, 99, 276, 23, + Justification::centredLeft, true); + + g.setColour (Colours::white); + g.setFont (Font (15.00f, Font::plain)); + g.drawText (TRANS("Breath"), + 368, 59, 276, 23, + Justification::centredLeft, true); + + g.setColour (Colours::white); + g.setFont (Font (15.00f, Font::plain)); + g.drawText (TRANS("After Touch"), + 368, 139, 276, 23, + Justification::centredLeft, true); + + g.setColour (Colours::white); + g.setFont (Font (15.00f, Font::plain)); + g.drawText (TRANS("PITCH"), + 536, 163, 48, 23, + Justification::centred, true); + + g.setColour (Colours::white); + g.setFont (Font (15.00f, Font::plain)); + g.drawText (TRANS("AMP"), + 592, 163, 48, 21, + Justification::centred, true); + + g.setColour (Colours::white); + g.setFont (Font (15.00f, Font::plain)); + g.drawText (TRANS("EG BIAS"), + 648, 163, 48, 23, + Justification::centred, true); + //[UserPaint] Add your own custom painting code here.. //[/UserPaint] } void ParamDialog::resized() { + //[UserPreResize] Add your own custom resize code here.. + //[/UserPreResize] + pitchRange->setBounds (264, 16, 72, 24); pitchStep->setBounds (264, 56, 72, 24); sysexIn->setBounds (104, 224, 224, 24); @@ -185,6 +324,22 @@ void ParamDialog::resized() sysexChl->setBounds (264, 304, 72, 24); engineReso->setBounds (160, 156, 168, 24); showKeyboard->setBounds (264, 96, 56, 24); + whlRange->setBounds (448, 16, 72, 24); + ftRange->setBounds (448, 56, 72, 24); + brRange->setBounds (448, 96, 72, 24); + atRange->setBounds (448, 136, 72, 24); + whlEg->setBounds (640, 16, 56, 24); + ftEg->setBounds (640, 56, 56, 24); + brEg->setBounds (640, 96, 56, 24); + atEg->setBounds (640, 136, 56, 24); + whlAmp->setBounds (584, 16, 56, 24); + ftAmp->setBounds (584, 56, 56, 24); + brAmp->setBounds (584, 96, 56, 24); + atAmp->setBounds (584, 136, 56, 24); + whlPitch->setBounds (528, 16, 56, 24); + ftPitch->setBounds (528, 56, 56, 24); + brPitch->setBounds (528, 96, 56, 24); + atPitch->setBounds (528, 136, 56, 24); //[UserResized] Add your own custom resize handling here.. //[/UserResized] } @@ -210,6 +365,26 @@ void ParamDialog::sliderValueChanged (Slider* sliderThatWasMoved) //[UserSliderCode_sysexChl] -- add your slider handling code here.. //[/UserSliderCode_sysexChl] } + else if (sliderThatWasMoved == whlRange) + { + //[UserSliderCode_whlRange] -- add your slider handling code here.. + //[/UserSliderCode_whlRange] + } + else if (sliderThatWasMoved == ftRange) + { + //[UserSliderCode_ftRange] -- add your slider handling code here.. + //[/UserSliderCode_ftRange] + } + else if (sliderThatWasMoved == brRange) + { + //[UserSliderCode_brRange] -- add your slider handling code here.. + //[/UserSliderCode_brRange] + } + else if (sliderThatWasMoved == atRange) + { + //[UserSliderCode_atRange] -- add your slider handling code here.. + //[/UserSliderCode_atRange] + } //[UsersliderValueChanged_Post] //[/UsersliderValueChanged_Post] @@ -240,6 +415,76 @@ void ParamDialog::comboBoxChanged (ComboBox* comboBoxThatHasChanged) //[/UsercomboBoxChanged_Post] } +void ParamDialog::buttonClicked (Button* buttonThatWasClicked) +{ + //[UserbuttonClicked_Pre] + //[/UserbuttonClicked_Pre] + + if (buttonThatWasClicked == whlEg) + { + //[UserButtonCode_whlEg] -- add your button handler code here.. + //[/UserButtonCode_whlEg] + } + else if (buttonThatWasClicked == ftEg) + { + //[UserButtonCode_ftEg] -- add your button handler code here.. + //[/UserButtonCode_ftEg] + } + else if (buttonThatWasClicked == brEg) + { + //[UserButtonCode_brEg] -- add your button handler code here.. + //[/UserButtonCode_brEg] + } + else if (buttonThatWasClicked == atEg) + { + //[UserButtonCode_atEg] -- add your button handler code here.. + //[/UserButtonCode_atEg] + } + else if (buttonThatWasClicked == whlAmp) + { + //[UserButtonCode_whlAmp] -- add your button handler code here.. + //[/UserButtonCode_whlAmp] + } + else if (buttonThatWasClicked == ftAmp) + { + //[UserButtonCode_ftAmp] -- add your button handler code here.. + //[/UserButtonCode_ftAmp] + } + else if (buttonThatWasClicked == brAmp) + { + //[UserButtonCode_brAmp] -- add your button handler code here.. + //[/UserButtonCode_brAmp] + } + else if (buttonThatWasClicked == atAmp) + { + //[UserButtonCode_atAmp] -- add your button handler code here.. + //[/UserButtonCode_atAmp] + } + else if (buttonThatWasClicked == whlPitch) + { + //[UserButtonCode_whlPitch] -- add your button handler code here.. + //[/UserButtonCode_whlPitch] + } + else if (buttonThatWasClicked == ftPitch) + { + //[UserButtonCode_ftPitch] -- add your button handler code here.. + //[/UserButtonCode_ftPitch] + } + else if (buttonThatWasClicked == brPitch) + { + //[UserButtonCode_brPitch] -- add your button handler code here.. + //[/UserButtonCode_brPitch] + } + else if (buttonThatWasClicked == atPitch) + { + //[UserButtonCode_atPitch] -- add your button handler code here.. + //[/UserButtonCode_atPitch] + } + + //[UserbuttonClicked_Post] + //[/UserbuttonClicked_Post] +} + //[MiscUserCode] You can add your own definitions of your custom methods or any other code here... @@ -249,6 +494,27 @@ void ParamDialog::setDialogValues(Controllers &c, SysexComm &mgr, int reso, bool pitchStep->setValue(c.values_[kControllerPitchStep]); sysexChl->setValue(mgr.getChl() + 1); + whlRange->setValue(c.wheel.range); + whlPitch->setToggleState(c.wheel.pitch, dontSendNotification); + whlPitch->setToggleState(c.wheel.pitch, dontSendNotification); + whlAmp->setToggleState(c.wheel.amp, dontSendNotification); + whlEg->setToggleState(c.wheel.eg, dontSendNotification); + + ftRange->setValue(c.foot.range); + ftPitch->setToggleState(c.foot.pitch, dontSendNotification); + ftAmp->setToggleState(c.foot.amp, dontSendNotification); + ftEg->setToggleState(c.foot.eg, dontSendNotification); + + brRange->setValue(c.breath.range); + brPitch->setToggleState(c.breath.pitch, dontSendNotification); + brAmp->setToggleState(c.breath.amp, dontSendNotification); + brEg->setToggleState(c.breath.eg, dontSendNotification); + + atRange->setValue(c.at.range); + atPitch->setToggleState(c.at.pitch, dontSendNotification); + atAmp->setToggleState(c.at.amp, dontSendNotification); + atEg->setToggleState(c.at.eg, dontSendNotification); + StringArray inputs = MidiInput::getDevices(); int idx = inputs.indexOf(mgr.getInput()); idx = idx == -1 ? 0 : idx + 1; @@ -268,6 +534,29 @@ bool ParamDialog::getDialogValues(Controllers &c, SysexComm &mgr, int *reso, boo c.values_[kControllerPitchRange] = pitchRange->getValue(); c.values_[kControllerPitchStep] = pitchStep->getValue(); + + c.wheel.range = whlRange->getValue(); + c.wheel.pitch = whlPitch->getToggleState(); + c.wheel.amp = whlAmp->getToggleState(); + c.wheel.eg = whlEg->getToggleState(); + + c.foot.range = ftRange->getValue(); + c.foot.pitch = ftPitch->getToggleState(); + c.foot.amp = ftAmp->getToggleState(); + c.foot.eg = ftEg->getToggleState(); + + c.breath.range = brRange->getValue(); + c.breath.pitch = brPitch->getToggleState(); + c.breath.amp = brAmp->getToggleState(); + c.breath.eg = brEg->getToggleState(); + + c.at.range = atRange->getValue(); + c.at.pitch = atPitch->getToggleState(); + c.at.amp = atAmp->getToggleState(); + c.at.eg = atEg->getToggleState(); + + c.refresh(); + ret &= mgr.setInput(sysexIn->getItemText(sysexIn->getSelectedItemIndex())); ret &= mgr.setOutput(sysexOut->getItemText(sysexOut->getSelectedItemIndex())); mgr.setChl(sysexChl->getValue() - 1); @@ -292,7 +581,7 @@ BEGIN_JUCER_METADATA + fixedSize="1" initialWidth="700" initialHeight="350"> @@ -310,6 +599,21 @@ BEGIN_JUCER_METADATA + + + + + + + + + + + + + + + + + + + + + + + + END_JUCER_METADATA diff --git a/Source/ParamDialog.h b/Source/ParamDialog.h index 0c3fa08..c5cd896 100644 --- a/Source/ParamDialog.h +++ b/Source/ParamDialog.h @@ -7,12 +7,12 @@ the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded and re-saved. - Created with Introjucer version: 3.1.0 + Created with Introjucer version: 3.2.0 ------------------------------------------------------------------------------ The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-13 by Raw Material Software Ltd. + Copyright (c) 2015 - ROLI Ltd. ============================================================================== */ @@ -38,7 +38,8 @@ */ class ParamDialog : public Component, public SliderListener, - public ComboBoxListener + public ComboBoxListener, + public ButtonListener { public: //============================================================================== @@ -55,6 +56,7 @@ public: void resized(); void sliderValueChanged (Slider* sliderThatWasMoved); void comboBoxChanged (ComboBox* comboBoxThatHasChanged); + void buttonClicked (Button* buttonThatWasClicked); @@ -70,6 +72,22 @@ private: ScopedPointer sysexChl; ScopedPointer engineReso; ScopedPointer showKeyboard; + ScopedPointer whlRange; + ScopedPointer ftRange; + ScopedPointer brRange; + ScopedPointer atRange; + ScopedPointer whlEg; + ScopedPointer ftEg; + ScopedPointer brEg; + ScopedPointer atEg; + ScopedPointer whlAmp; + ScopedPointer ftAmp; + ScopedPointer brAmp; + ScopedPointer atAmp; + ScopedPointer whlPitch; + ScopedPointer ftPitch; + ScopedPointer brPitch; + ScopedPointer atPitch; //============================================================================== diff --git a/Source/PluginData.cpp b/Source/PluginData.cpp index bf5bce0..26cf328 100644 --- a/Source/PluginData.cpp +++ b/Source/PluginData.cpp @@ -286,6 +286,7 @@ void DexedAudioProcessor::getStateInformation(MemoryBlock& destData) { dexedState.setAttribute("monoMode", monoMode); dexedState.setAttribute("engineType", (int) engineType); + if ( activeFileCartridge.exists() ) dexedState.setAttribute("activeFileCartridge", activeFileCartridge.getFullPathName()); diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index 241ab0a..22c366d 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -99,7 +99,10 @@ void DexedAudioProcessor::prepareToPlay(double sampleRate, int samplesPerBlock) currentNote = 0; controllers.values_[kControllerPitch] = 0x2000; - controllers.values_[kControllerModWheel] = 0; + controllers.modwheel_cc = 0; + controllers.foot_cc = 0; + controllers.breath_cc = 0; + controllers.aftertouch_cc = 0; sustain = false; extra_buf_size = 0; @@ -265,36 +268,49 @@ void DexedAudioProcessor::processMidiMessage(const MidiMessage *msg) { case 0x90 : keydown(buf[1], buf[2]); return; - + case 0xb0 : { - int controller = buf[1]; + int ctrl = buf[1]; int value = buf[2]; - // mod wheel - if ( controller == 1 ) { - controllers.values_[kControllerModWheel] = value; - return; - } - - // pedal - if (controller == 64) { - sustain = value != 0; - if (!sustain) { - for (int note = 0; note < MAX_ACTIVE_NOTES; note++) { - if (voices[note].sustained && !voices[note].keydown) { - voices[note].dx7_note->keyup(); - voices[note].sustained = false; + switch(ctrl) { + case 1: + controllers.modwheel_cc = value; + controllers.refresh(); + break; + case 2: + controllers.breath_cc = value; + controllers.refresh(); + break; + case 4: + controllers.foot_cc = value; + controllers.refresh(); + break; + case 5: + sustain = value != 0; + if (!sustain) { + for (int note = 0; note < MAX_ACTIVE_NOTES; note++) { + if (voices[note].sustained && !voices[note].keydown) { + voices[note].dx7_note->keyup(); + voices[note].sustained = false; + } } } - } - return; + break; } } return; case 0xc0 : setCurrentProgram(buf[1]); - return; + return; + + // aftertouch + case 0xd0 : + controllers.aftertouch_cc = buf[1]; + controllers.refresh(); + return; + } switch (cmd) { @@ -464,8 +480,6 @@ void DexedAudioProcessor::setEngineType(int tp) { controllers.core = &engineMsfa; break; case DEXED_ENGINE_MARKI: - controllers.sinBitFilter = 0xFFFFC000; // 10 bit - controllers.dacBitFilter = 0xFFFFF000; // semi 14 bit controllers.core = &engineMkI; break; case DEXED_ENGINE_OPL: diff --git a/Source/PluginProcessor.h b/Source/PluginProcessor.h index da8abaf..cb607e7 100644 --- a/Source/PluginProcessor.h +++ b/Source/PluginProcessor.h @@ -154,7 +154,6 @@ public : ScopedPointer fxReso; ScopedPointer output; - //int importSysex(const char *imported); void loadCartridge(Cartridge &cart); void setDxValue(int offset, int v); diff --git a/Source/msfa/controllers.h b/Source/msfa/controllers.h index 873e2e0..b065fc4 100755 --- a/Source/msfa/controllers.h +++ b/Source/msfa/controllers.h @@ -1,12 +1,12 @@ /* * Copyright 2013 Google Inc. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,25 +18,79 @@ #define __CONTROLLERS_H #include "synth.h" +#include "../Dexed.h" // State of MIDI controllers -const int kControllerModWheel = 1; const int kControllerPitch = 128; const int kControllerPitchRange = 129; const int kControllerPitchStep = 130; class FmCore; +struct FmMod { + int range = 0; + bool pitch = false; + bool amp = false; + bool eg = false; +}; + class Controllers { - public: - int values_[131]; + void applyMod(int cc, FmMod &mod) { + float range = 0.01 * mod.range; + if ( mod.amp ) { + int total = cc * range; + if ( amp_mod + total > 127 ) + amp_mod = 127; + else + amp_mod += total; + } + if ( mod.pitch ) { + int total = cc * range; + if ( pitch_mod + total > 127 ) + pitch_mod = 127; + else + pitch_mod += total; + } + if ( mod.eg ) { + int total = cc * range; + if ( eg_mod + total > 127 ) + eg_mod = 127; + else + eg_mod += total; + } + } + +public: + int values_[131]; + + int amp_mod = 0; + int pitch_mod = 0; + int eg_mod = 0; + + int aftertouch_cc; + int breath_cc; + int foot_cc; + int modwheel_cc; + + FmMod wheel; + FmMod foot; + FmMod breath; + FmMod at; - // engine bit filters - uint32_t sinBitFilter; // bit filter based upon sin LUT lookup - uint32_t dacBitFilter; // bit filter based upon DAC resolution - uint32_t mulBitFilter; // bit filter based upon multipliers (?????) + void refresh() { + amp_mod = 0; + pitch_mod = 0; + eg_mod = 0; + + applyMod(modwheel_cc, wheel); + applyMod(breath_cc, breath); + applyMod(foot_cc, foot); + applyMod(aftertouch_cc, at); + + TRACE("amp_mod %d pitch_mod %d", amp_mod, pitch_mod); + } - FmCore *core; + FmCore *core; }; #endif // __CONTROLLERS_H diff --git a/Source/msfa/dx7note.cc b/Source/msfa/dx7note.cc index 6be3a04..c10f18b 100644 --- a/Source/msfa/dx7note.cc +++ b/Source/msfa/dx7note.cc @@ -1,12 +1,12 @@ /* * Copyright 2012 Google Inc. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -14,10 +14,6 @@ * limitations under the License. */ -#ifdef VERBOSE -#include -using namespace std; -#endif #include #include #include "synth.h" @@ -27,104 +23,104 @@ using namespace std; #include "dx7note.h" int32_t midinote_to_logfreq(int midinote) { - const int base = 50857777; // (1 << 24) * (log(440) / log(2) - 69/12) - const int step = (1 << 24) / 12; - return base + step * midinote; + const int base = 50857777; // (1 << 24) * (log(440) / log(2) - 69/12) + const int step = (1 << 24) / 12; + return base + step * midinote; } const int32_t coarsemul[] = { - -16777216, 0, 16777216, 26591258, 33554432, 38955489, 43368474, 47099600, - 50331648, 53182516, 55732705, 58039632, 60145690, 62083076, 63876816, - 65546747, 67108864, 68576247, 69959732, 71268397, 72509921, 73690858, - 74816848, 75892776, 76922906, 77910978, 78860292, 79773775, 80654032, - 81503396, 82323963, 83117622 + -16777216, 0, 16777216, 26591258, 33554432, 38955489, 43368474, 47099600, + 50331648, 53182516, 55732705, 58039632, 60145690, 62083076, 63876816, + 65546747, 67108864, 68576247, 69959732, 71268397, 72509921, 73690858, + 74816848, 75892776, 76922906, 77910978, 78860292, 79773775, 80654032, + 81503396, 82323963, 83117622 }; int32_t osc_freq(int midinote, int mode, int coarse, int fine, int detune) { - // TODO: pitch randomization - int32_t logfreq; - if (mode == 0) { - logfreq = midinote_to_logfreq(midinote); - logfreq += coarsemul[coarse & 31]; - if (fine) { - // (1 << 24) / log(2) - logfreq += (int32_t)floor(24204406.323123 * log(1 + 0.01 * fine) + 0.5); + // TODO: pitch randomization + int32_t logfreq; + if (mode == 0) { + logfreq = midinote_to_logfreq(midinote); + logfreq += coarsemul[coarse & 31]; + if (fine) { + // (1 << 24) / log(2) + logfreq += (int32_t)floor(24204406.323123 * log(1 + 0.01 * fine) + 0.5); + } + // This was measured at 7.213Hz per count at 9600Hz, but the exact + // value is somewhat dependent on midinote. Close enough for now. + logfreq += 12606 * (detune - 7); + } else { + // ((1 << 24) * log(10) / log(2) * .01) << 3 + logfreq = (4458616 * ((coarse & 3) * 100 + fine)) >> 3; + logfreq += detune > 7 ? 13457 * (detune - 7) : 0; } - // This was measured at 7.213Hz per count at 9600Hz, but the exact - // value is somewhat dependent on midinote. Close enough for now. - logfreq += 12606 * (detune - 7); - } else { - // ((1 << 24) * log(10) / log(2) * .01) << 3 - logfreq = (4458616 * ((coarse & 3) * 100 + fine)) >> 3; - logfreq += detune > 7 ? 13457 * (detune - 7) : 0; - } - return logfreq; + return logfreq; } const uint8_t velocity_data[64] = { - 0, 70, 86, 97, 106, 114, 121, 126, 132, 138, 142, 148, 152, 156, 160, 163, - 166, 170, 173, 174, 178, 181, 184, 186, 189, 190, 194, 196, 198, 200, 202, - 205, 206, 209, 211, 214, 216, 218, 220, 222, 224, 225, 227, 229, 230, 232, - 233, 235, 237, 238, 240, 241, 242, 243, 244, 246, 246, 248, 249, 250, 251, - 252, 253, 254 + 0, 70, 86, 97, 106, 114, 121, 126, 132, 138, 142, 148, 152, 156, 160, 163, + 166, 170, 173, 174, 178, 181, 184, 186, 189, 190, 194, 196, 198, 200, 202, + 205, 206, 209, 211, 214, 216, 218, 220, 222, 224, 225, 227, 229, 230, 232, + 233, 235, 237, 238, 240, 241, 242, 243, 244, 246, 246, 248, 249, 250, 251, + 252, 253, 254 }; // See "velocity" section of notes. Returns velocity delta in microsteps. int ScaleVelocity(int velocity, int sensitivity) { - int clamped_vel = max(0, min(127, velocity)); - int vel_value = velocity_data[clamped_vel >> 1] - 239; - int scaled_vel = ((sensitivity * vel_value + 7) >> 3) << 4; - return scaled_vel; + int clamped_vel = max(0, min(127, velocity)); + int vel_value = velocity_data[clamped_vel >> 1] - 239; + int scaled_vel = ((sensitivity * vel_value + 7) >> 3) << 4; + return scaled_vel; } int ScaleRate(int midinote, int sensitivity) { - int x = min(31, max(0, midinote / 3 - 7)); - int qratedelta = (sensitivity * x) >> 3; + int x = min(31, max(0, midinote / 3 - 7)); + int qratedelta = (sensitivity * x) >> 3; #ifdef SUPER_PRECISE - int rem = x & 7; - if (sensitivity == 3 && rem == 3) { - qratedelta -= 1; - } else if (sensitivity == 7 && rem > 0 && rem < 4) { - qratedelta += 1; - } + int rem = x & 7; + if (sensitivity == 3 && rem == 3) { + qratedelta -= 1; + } else if (sensitivity == 7 && rem > 0 && rem < 4) { + qratedelta += 1; + } #endif - return qratedelta; + return qratedelta; } const uint8_t exp_scale_data[] = { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16, 19, 23, 27, 33, 39, 47, 56, 66, - 80, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 250 + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 16, 19, 23, 27, 33, 39, 47, 56, 66, + 80, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 250 }; int ScaleCurve(int group, int depth, int curve) { - int scale; - if (curve == 0 || curve == 3) { - // linear - scale = (group * depth * 329) >> 12; - } else { - // exponential - int n_scale_data = sizeof(exp_scale_data); - int raw_exp = exp_scale_data[min(group, n_scale_data - 1)]; - scale = (raw_exp * depth * 329) >> 15; - } - if (curve < 2) { - scale = -scale; - } - return scale; + int scale; + if (curve == 0 || curve == 3) { + // linear + scale = (group * depth * 329) >> 12; + } else { + // exponential + int n_scale_data = sizeof(exp_scale_data); + int raw_exp = exp_scale_data[min(group, n_scale_data - 1)]; + scale = (raw_exp * depth * 329) >> 15; + } + if (curve < 2) { + scale = -scale; + } + return scale; } int ScaleLevel(int midinote, int break_pt, int left_depth, int right_depth, - int left_curve, int right_curve) { - int offset = midinote - break_pt - 17; - if (offset >= 0) { - return ScaleCurve(offset / 3, right_depth, right_curve); - } else { - return ScaleCurve((-offset) / 3, left_depth, left_curve); - } + int left_curve, int right_curve) { + int offset = midinote - break_pt - 17; + if (offset >= 0) { + return ScaleCurve(offset / 3, right_depth, right_curve); + } else { + return ScaleCurve((-offset) / 3, left_depth, left_curve); + } } static const uint8_t pitchmodsenstab[] = { - 0, 10, 20, 33, 55, 92, 153, 255 + 0, 10, 20, 33, 55, 92, 153, 255 }; // 0, 66, 109, 255 @@ -140,74 +136,58 @@ Dx7Note::Dx7Note() { } void Dx7Note::init(const uint8_t patch[156], int midinote, int velocity) { - int rates[4]; - int levels[4]; - for (int op = 0; op < 6; op++) { - int off = op * 21; - for (int i = 0; i < 4; i++) { - rates[i] = patch[off + i]; - levels[i] = patch[off + 4 + i]; + int rates[4]; + int levels[4]; + for (int op = 0; op < 6; op++) { + int off = op * 21; + for (int i = 0; i < 4; i++) { + rates[i] = patch[off + i]; + levels[i] = patch[off + 4 + i]; + } + int outlevel = patch[off + 16]; + outlevel = Env::scaleoutlevel(outlevel); + int level_scaling = ScaleLevel(midinote, patch[off + 8], patch[off + 9], + patch[off + 10], patch[off + 11], patch[off + 12]); + outlevel += level_scaling; + outlevel = min(127, outlevel); + outlevel = outlevel << 5; + outlevel += ScaleVelocity(velocity, patch[off + 15]); + outlevel = max(0, outlevel); + int rate_scaling = ScaleRate(midinote, patch[off + 13]); + env_[op].init(rates, levels, outlevel, rate_scaling); + + int mode = patch[off + 17]; + int coarse = patch[off + 18]; + int fine = patch[off + 19]; + int detune = patch[off + 20]; + int32_t freq = osc_freq(midinote, mode, coarse, fine, detune); + basepitch_[op] = freq; + ampmodsens_[op] = ampmodsenstab[patch[off + 14] & 3]; } - int outlevel = patch[off + 16]; - outlevel = Env::scaleoutlevel(outlevel); -#ifdef VERBOSE - for (int j = 8; j < 12; j++) { - cout << (int)patch[off + j] << " "; + for (int i = 0; i < 4; i++) { + rates[i] = patch[126 + i]; + levels[i] = patch[130 + i]; } -#endif - int level_scaling = ScaleLevel(midinote, patch[off + 8], patch[off + 9], - patch[off + 10], patch[off + 11], patch[off + 12]); - outlevel += level_scaling; - outlevel = min(127, outlevel); -#ifdef VERBOSE - cout << op << ": " << level_scaling << " " << outlevel << endl; -#endif - outlevel = outlevel << 5; - outlevel += ScaleVelocity(velocity, patch[off + 15]); - outlevel = max(0, outlevel); - int rate_scaling = ScaleRate(midinote, patch[off + 13]); - env_[op].init(rates, levels, outlevel, rate_scaling); - - int mode = patch[off + 17]; - int coarse = patch[off + 18]; - int fine = patch[off + 19]; - int detune = patch[off + 20]; - int32_t freq = osc_freq(midinote, mode, coarse, fine, detune); - basepitch_[op] = freq; - // cout << op << " freq: " << freq << endl; - //params_[op].phase = 0; - //params_[op].gain_out = 0; - ampmodsens_[op] = ampmodsenstab[patch[off + 14] & 3]; - } - for (int i = 0; i < 4; i++) { - rates[i] = patch[126 + i]; - levels[i] = patch[130 + i]; - } - pitchenv_.set(rates, levels); - algorithm_ = patch[134]; - int feedback = patch[135]; - fb_shift_ = feedback != 0 ? 8 - feedback : 16; - pitchmoddepth_ = (patch[139] * 165) >> 6; - pitchmodsens_ = pitchmodsenstab[patch[143] & 7]; - ampmoddepth_ = (patch[140] * 165) >> 6; + pitchenv_.set(rates, levels); + algorithm_ = patch[134]; + int feedback = patch[135]; + fb_shift_ = feedback != 0 ? 8 - feedback : 16; + pitchmoddepth_ = (patch[139] * 165) >> 6; + pitchmodsens_ = pitchmodsenstab[patch[143] & 7]; + ampmoddepth_ = (patch[140] * 165) >> 6; } void Dx7Note::compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, const Controllers *ctrls) { - int32_t pitchmod = pitchenv_.getsample(); + // ==== PITCH ==== uint32_t pmd = pitchmoddepth_ * lfo_delay; // Q32 - // TODO(PG) : make this integer friendly - uint32_t pwmd = (ctrls->values_[kControllerModWheel] * 0.7874) * (1 << 24); int32_t senslfo = pitchmodsens_ * (lfo_val - (1 << 23)); + int32_t pmod_1 = (((int64_t) pmd) * (int64_t) senslfo) >> 39; + int32_t pmod_2 = ((int64_t)ctrls->pitch_mod * (int64_t)senslfo) >> 14; + int32_t pitch_mod = pitchenv_.getsample() + max(pmod_1, pmod_2); - uint32_t amd = ((int64_t) ampmoddepth_ * (int64_t) lfo_delay) >> 8; // Q24 :D - amd = ((int64_t) amd * (int64_t) lfo_val) >> 24; - - pitchmod += (((int64_t) pwmd) * (int64_t) senslfo) >> 39; - pitchmod += (((int64_t) pmd) * (int64_t) senslfo) >> 39; - + // ---- PITCH BEND ---- int pitchbend = ctrls->values_[kControllerPitch]; int32_t pb = (pitchbend - 0x2000); - if (pb != 0) { if (ctrls->values_[kControllerPitchStep] == 0) { pb = ((float) (pb << 11)) * ((float) ctrls->values_[kControllerPitchRange]) / 12.0; @@ -217,15 +197,26 @@ void Dx7Note::compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, const Co pb = (pb * (8191 / stp)) << 11; } } - - pitchmod += pb; + pitch_mod += pb; + + // ==== AMP MOD ==== + uint32_t amod_1 = ((int64_t) ampmoddepth_ * (int64_t) lfo_delay) >> 8; // Q24 :D + amod_1 = ((int64_t) amod_1 * (int64_t) lfo_val) >> 24; + uint32_t amod_2 = ((int64_t) ctrls->amp_mod * (int64_t) lfo_val) >> 7; // Q?? :| + uint32_t amd_mod = max(amod_1, amod_2); + + // ==== EG AMP MOD ==== + uint32_t amod_3 = (ctrls->eg_mod+1) << 16; + amd_mod = max((1<<23) - amod_3, amd_mod); + + // ==== OP RENDER ==== for (int op = 0; op < 6; op++) { //int32_t gain = pow(2, 10 + level * (1.0 / (1 << 24))); - params_[op].freq = Freqlut::lookup(basepitch_[op] + pitchmod); - + params_[op].freq = Freqlut::lookup(basepitch_[op] + pitch_mod); + int32_t level = env_[op].getsample(); if (ampmodsens_[op] != 0) { - uint32_t sensamp = ((uint64_t) amd) * ((uint64_t) ampmodsens_[op]) >> 24; + uint32_t sensamp = ((uint64_t) amd_mod) * ((uint64_t) ampmodsens_[op]) >> 24; // TODO: mehhh.. this needs some real tuning. uint32_t pt = exp(((float)sensamp)/262144 * 0.07 + 12.2); @@ -238,36 +229,36 @@ void Dx7Note::compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, const Co } void Dx7Note::keyup() { - for (int op = 0; op < 6; op++) { - env_[op].keydown(false); - pitchenv_.keydown(false); - } + for (int op = 0; op < 6; op++) { + env_[op].keydown(false); + pitchenv_.keydown(false); + } } void Dx7Note::update(const uint8_t patch[156], int midinote) { - for (int op = 0; op < 6; op++) { - int off = op * 21; - int mode = patch[off + 17]; - int coarse = patch[off + 18]; - int fine = patch[off + 19]; - int detune = patch[off + 20]; - basepitch_[op] = osc_freq(midinote, mode, coarse, fine, detune); - ampmodsens_[op] = ampmodsenstab[patch[off + 14] & 3]; - } - algorithm_ = patch[134]; - int feedback = patch[135]; - fb_shift_ = feedback != 0 ? 8 - feedback : 16; - pitchmoddepth_ = (patch[139] * 165) >> 6; - pitchmodsens_ = pitchmodsenstab[patch[143] & 7]; - ampmoddepth_ = (patch[140] * 165) >> 6; + for (int op = 0; op < 6; op++) { + int off = op * 21; + int mode = patch[off + 17]; + int coarse = patch[off + 18]; + int fine = patch[off + 19]; + int detune = patch[off + 20]; + basepitch_[op] = osc_freq(midinote, mode, coarse, fine, detune); + ampmodsens_[op] = ampmodsenstab[patch[off + 14] & 3]; + } + algorithm_ = patch[134]; + int feedback = patch[135]; + fb_shift_ = feedback != 0 ? 8 - feedback : 16; + pitchmoddepth_ = (patch[139] * 165) >> 6; + pitchmodsens_ = pitchmodsenstab[patch[143] & 7]; + ampmoddepth_ = (patch[140] * 165) >> 6; } void Dx7Note::peekVoiceStatus(VoiceStatus &status) { - for(int i=0;i<6;i++) { - status.amp[i] = Exp2::lookup(params_[i].level_in - (14 * (1 << 24))); - env_[i].getPosition(&status.ampStep[i]); - } - pitchenv_.getPosition(&status.pitchStep); + for(int i=0;i<6;i++) { + status.amp[i] = Exp2::lookup(params_[i].level_in - (14 * (1 << 24))); + env_[i].getPosition(&status.ampStep[i]); + } + pitchenv_.getPosition(&status.pitchStep); } /** diff --git a/Source/msfa/dx7note.h b/Source/msfa/dx7note.h index 2adb55a..a8153b3 100644 --- a/Source/msfa/dx7note.h +++ b/Source/msfa/dx7note.h @@ -1,12 +1,12 @@ /* * Copyright 2012 Google Inc. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -28,48 +28,48 @@ #include "fm_core.h" struct VoiceStatus { - uint32_t amp[6]; - char ampStep[6]; - char pitchStep; + uint32_t amp[6]; + char ampStep[6]; + char pitchStep; }; class Dx7Note { - public: - Dx7Note(); - void init(const uint8_t patch[156], int midinote, int velocity); - - // Note: this _adds_ to the buffer. Interesting question whether it's - // worth it... - void compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, - const Controllers *ctrls); - - void keyup(); +public: + Dx7Note(); + void init(const uint8_t patch[156], int midinote, int velocity); - // TODO: some way of indicating end-of-note. Maybe should be a return - // value from the compute method? (Having a count return from keyup - // is also tempting, but if there's a dynamic parameter change after - // keyup, that won't work. - - // PG:add the update - void update(const uint8_t patch[156], int midinote); - void peekVoiceStatus(VoiceStatus &status); - void transferState(Dx7Note& src); - void transferSignal(Dx7Note &src); - void oscSync(); + // Note: this _adds_ to the buffer. Interesting question whether it's + // worth it... + void compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, + const Controllers *ctrls); + + void keyup(); + + // TODO: some way of indicating end-of-note. Maybe should be a return + // value from the compute method? (Having a count return from keyup + // is also tempting, but if there's a dynamic parameter change after + // keyup, that won't work. + + // PG:add the update + void update(const uint8_t patch[156], int midinote); + void peekVoiceStatus(VoiceStatus &status); + void transferState(Dx7Note& src); + void transferSignal(Dx7Note &src); + void oscSync(); + +private: + Env env_[6]; + FmOpParams params_[6]; + PitchEnv pitchenv_; + int32_t basepitch_[6]; + int32_t fb_buf_[2]; + int32_t fb_shift_; + int32_t ampmodsens_[6]; - private: - Env env_[6]; - FmOpParams params_[6]; - PitchEnv pitchenv_; - int32_t basepitch_[6]; - int32_t fb_buf_[2]; - int32_t fb_shift_; - int32_t ampmodsens_[6]; - - int ampmoddepth_; - int algorithm_; - int pitchmoddepth_; - int pitchmodsens_; + int ampmoddepth_; + int algorithm_; + int pitchmoddepth_; + int pitchmodsens_; }; #endif // SYNTH_DX7NOTE_H_