diff --git a/.gitignore b/.gitignore index 336a7f1..c3252e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ **/Builds -**/JuceLibraryCode + **/.DS_Store diff --git a/JuceLibraryCode/BinaryData.cpp b/JuceLibraryCode/BinaryData.cpp new file mode 100644 index 0000000..457d63e --- /dev/null +++ b/JuceLibraryCode/BinaryData.cpp @@ -0,0 +1,286 @@ +/* ==================================== JUCER_BINARY_RESOURCE ==================================== + + This is an auto-generated file: Any edits you make may be overwritten! + +*/ + +namespace BinaryData +{ + +//================== final_upam ================== +static const unsigned char temp_binary_data_0[] = +"\r\n" +"\r\n" +"\r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +"\r\n" +"\0"; + +const char* final_upam = (const char*) temp_binary_data_0; + +//================== test_velikost_fixpozicije ================== +static const unsigned char temp_binary_data_1[] = +"\r\n" +"\r\n" +"\r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +"\r\n" +"\0"; + +const char* test_velikost_fixpozicije = (const char*) temp_binary_data_1; + + +const char* getNamedResource (const char* resourceNameUTF8, int& numBytes); +const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) +{ + unsigned int hash = 0; + + if (resourceNameUTF8 != nullptr) + while (*resourceNameUTF8 != 0) + hash = 31 * hash + (unsigned int) *resourceNameUTF8++; + + switch (hash) + { + case 0x910f5130: numBytes = 6931; return final_upam; + case 0x1503bd23: numBytes = 6954; return test_velikost_fixpozicije; + default: break; + } + + numBytes = 0; + return nullptr; +} + +const char* namedResourceList[] = +{ + "final_upam", + "test_velikost_fixpozicije" +}; + +const char* originalFilenames[] = +{ + "final_upam", + "test_velikost_fixpozicije" +}; + +const char* getNamedResourceOriginalFilename (const char* resourceNameUTF8); +const char* getNamedResourceOriginalFilename (const char* resourceNameUTF8) +{ + for (unsigned int i = 0; i < (sizeof (namedResourceList) / sizeof (namedResourceList[0])); ++i) + { + if (namedResourceList[i] == resourceNameUTF8) + return originalFilenames[i]; + } + + return nullptr; +} + +} diff --git a/JuceLibraryCode/BinaryData.h b/JuceLibraryCode/BinaryData.h new file mode 100644 index 0000000..30a36a4 --- /dev/null +++ b/JuceLibraryCode/BinaryData.h @@ -0,0 +1,33 @@ +/* ========================================================================================= + + This is an auto-generated file: Any edits you make may be overwritten! + +*/ + +#pragma once + +namespace BinaryData +{ + extern const char* final_upam; + const int final_upamSize = 6931; + + extern const char* test_velikost_fixpozicije; + const int test_velikost_fixpozicijeSize = 6954; + + // Number of elements in the namedResourceList and originalFileNames arrays. + const int namedResourceListSize = 2; + + // Points to the start of a list of resource names. + extern const char* namedResourceList[]; + + // Points to the start of a list of resource filenames. + extern const char* originalFilenames[]; + + // If you provide the name of one of the binary resource variables above, this function will + // return the corresponding data and its size (or a null pointer if the name isn't found). + const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes); + + // If you provide the name of one of the binary resource variables above, this function will + // return the corresponding original, non-mangled filename (or a null pointer if the name isn't found). + const char* getNamedResourceOriginalFilename (const char* resourceNameUTF8); +} diff --git a/JuceLibraryCode/JuceHeader.h b/JuceLibraryCode/JuceHeader.h new file mode 100644 index 0000000..7aa574f --- /dev/null +++ b/JuceLibraryCode/JuceHeader.h @@ -0,0 +1,52 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + + This is the header file that your files should include in order to get all the + JUCE library headers. You should avoid including the JUCE headers directly in + your own source files, because that wouldn't pick up the correct configuration + options for your app. + +*/ + +#pragma once + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "BinaryData.h" + +#if defined (JUCE_PROJUCER_VERSION) && JUCE_PROJUCER_VERSION < JUCE_VERSION + /** If you've hit this error then the version of the Projucer that was used to generate this project is + older than the version of the JUCE modules being included. To fix this error, re-save your project + using the latest version of the Projucer or, if you aren't using the Projucer to manage your project, + remove the JUCE_PROJUCER_VERSION define. + */ + #error "This project was last saved using an outdated version of the Projucer! Re-save this project with the latest version to fix this error." +#endif + + +#if ! JUCE_DONT_DECLARE_PROJECTINFO +namespace ProjectInfo +{ + const char* const projectName = "multiband_comp"; + const char* const companyName = "Aerio"; + const char* const versionString = "1.0.0"; + const int versionNumber = 0x10000; +} +#endif diff --git a/JuceLibraryCode/JucePluginDefines.h b/JuceLibraryCode/JucePluginDefines.h new file mode 100644 index 0000000..1a30e87 --- /dev/null +++ b/JuceLibraryCode/JucePluginDefines.h @@ -0,0 +1,159 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#pragma once + +//============================================================================== +// Audio plugin settings.. + +#ifndef JucePlugin_Build_VST + #define JucePlugin_Build_VST 0 +#endif +#ifndef JucePlugin_Build_VST3 + #define JucePlugin_Build_VST3 1 +#endif +#ifndef JucePlugin_Build_AU + #define JucePlugin_Build_AU 1 +#endif +#ifndef JucePlugin_Build_AUv3 + #define JucePlugin_Build_AUv3 0 +#endif +#ifndef JucePlugin_Build_RTAS + #define JucePlugin_Build_RTAS 0 +#endif +#ifndef JucePlugin_Build_AAX + #define JucePlugin_Build_AAX 0 +#endif +#ifndef JucePlugin_Build_Standalone + #define JucePlugin_Build_Standalone 1 +#endif +#ifndef JucePlugin_Build_Unity + #define JucePlugin_Build_Unity 0 +#endif +#ifndef JucePlugin_Enable_IAA + #define JucePlugin_Enable_IAA 0 +#endif +#ifndef JucePlugin_Name + #define JucePlugin_Name "multiband_comp" +#endif +#ifndef JucePlugin_Desc + #define JucePlugin_Desc "multiband_comp" +#endif +#ifndef JucePlugin_Manufacturer + #define JucePlugin_Manufacturer "Aerio" +#endif +#ifndef JucePlugin_ManufacturerWebsite + #define JucePlugin_ManufacturerWebsite "" +#endif +#ifndef JucePlugin_ManufacturerEmail + #define JucePlugin_ManufacturerEmail "" +#endif +#ifndef JucePlugin_ManufacturerCode + #define JucePlugin_ManufacturerCode 0x4d616e75 +#endif +#ifndef JucePlugin_PluginCode + #define JucePlugin_PluginCode 0x53326d35 +#endif +#ifndef JucePlugin_IsSynth + #define JucePlugin_IsSynth 0 +#endif +#ifndef JucePlugin_WantsMidiInput + #define JucePlugin_WantsMidiInput 0 +#endif +#ifndef JucePlugin_ProducesMidiOutput + #define JucePlugin_ProducesMidiOutput 0 +#endif +#ifndef JucePlugin_IsMidiEffect + #define JucePlugin_IsMidiEffect 0 +#endif +#ifndef JucePlugin_EditorRequiresKeyboardFocus + #define JucePlugin_EditorRequiresKeyboardFocus 0 +#endif +#ifndef JucePlugin_Version + #define JucePlugin_Version 1.0.0 +#endif +#ifndef JucePlugin_VersionCode + #define JucePlugin_VersionCode 0x10000 +#endif +#ifndef JucePlugin_VersionString + #define JucePlugin_VersionString "1.0.0" +#endif +#ifndef JucePlugin_VSTUniqueID + #define JucePlugin_VSTUniqueID JucePlugin_PluginCode +#endif +#ifndef JucePlugin_VSTCategory + #define JucePlugin_VSTCategory kPlugCategEffect +#endif +#ifndef JucePlugin_Vst3Category + #define JucePlugin_Vst3Category "Fx" +#endif +#ifndef JucePlugin_AUMainType + #define JucePlugin_AUMainType 'aufx' +#endif +#ifndef JucePlugin_AUSubType + #define JucePlugin_AUSubType JucePlugin_PluginCode +#endif +#ifndef JucePlugin_AUExportPrefix + #define JucePlugin_AUExportPrefix multiband_compAU +#endif +#ifndef JucePlugin_AUExportPrefixQuoted + #define JucePlugin_AUExportPrefixQuoted "multiband_compAU" +#endif +#ifndef JucePlugin_AUManufacturerCode + #define JucePlugin_AUManufacturerCode JucePlugin_ManufacturerCode +#endif +#ifndef JucePlugin_CFBundleIdentifier + #define JucePlugin_CFBundleIdentifier com.Aerio.multiband_comp +#endif +#ifndef JucePlugin_RTASCategory + #define JucePlugin_RTASCategory 2 +#endif +#ifndef JucePlugin_RTASManufacturerCode + #define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode +#endif +#ifndef JucePlugin_RTASProductId + #define JucePlugin_RTASProductId JucePlugin_PluginCode +#endif +#ifndef JucePlugin_RTASDisableBypass + #define JucePlugin_RTASDisableBypass 0 +#endif +#ifndef JucePlugin_RTASDisableMultiMono + #define JucePlugin_RTASDisableMultiMono 0 +#endif +#ifndef JucePlugin_AAXIdentifier + #define JucePlugin_AAXIdentifier com.Aerio.multiband_comp +#endif +#ifndef JucePlugin_AAXManufacturerCode + #define JucePlugin_AAXManufacturerCode JucePlugin_ManufacturerCode +#endif +#ifndef JucePlugin_AAXProductId + #define JucePlugin_AAXProductId JucePlugin_PluginCode +#endif +#ifndef JucePlugin_AAXCategory + #define JucePlugin_AAXCategory 0 +#endif +#ifndef JucePlugin_AAXDisableBypass + #define JucePlugin_AAXDisableBypass 0 +#endif +#ifndef JucePlugin_AAXDisableMultiMono + #define JucePlugin_AAXDisableMultiMono 0 +#endif +#ifndef JucePlugin_IAAType + #define JucePlugin_IAAType 0x61757278 +#endif +#ifndef JucePlugin_IAASubType + #define JucePlugin_IAASubType JucePlugin_PluginCode +#endif +#ifndef JucePlugin_IAAName + #define JucePlugin_IAAName "Aerio: multiband_comp" +#endif +#ifndef JucePlugin_VSTNumMidiInputs + #define JucePlugin_VSTNumMidiInputs 16 +#endif +#ifndef JucePlugin_VSTNumMidiOutputs + #define JucePlugin_VSTNumMidiOutputs 16 +#endif diff --git a/JuceLibraryCode/ReadMe.txt b/JuceLibraryCode/ReadMe.txt new file mode 100644 index 0000000..1e6784f --- /dev/null +++ b/JuceLibraryCode/ReadMe.txt @@ -0,0 +1,12 @@ + + Important Note!! + ================ + +The purpose of this folder is to contain files that are auto-generated by the Projucer, +and ALL files in this folder will be mercilessly DELETED and completely re-written whenever +the Projucer saves your project. + +Therefore, it's a bad idea to make any manual changes to the files in here, or to +put any of your own files in here if you don't want to lose them. (Of course you may choose +to add the folder's contents to your version-control system so that you can re-merge your own +modifications after the Projucer has saved its changes). diff --git a/JuceLibraryCode/include_foleys_gui_magic.cpp b/JuceLibraryCode/include_foleys_gui_magic.cpp new file mode 100644 index 0000000..69fc0ad --- /dev/null +++ b/JuceLibraryCode/include_foleys_gui_magic.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_basics.cpp b/JuceLibraryCode/include_juce_audio_basics.cpp new file mode 100644 index 0000000..4070844 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_basics.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_basics.mm b/JuceLibraryCode/include_juce_audio_basics.mm new file mode 100644 index 0000000..0c09914 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_basics.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_devices.cpp b/JuceLibraryCode/include_juce_audio_devices.cpp new file mode 100644 index 0000000..c9c2d11 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_devices.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_devices.mm b/JuceLibraryCode/include_juce_audio_devices.mm new file mode 100644 index 0000000..77e69b1 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_devices.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_formats.cpp b/JuceLibraryCode/include_juce_audio_formats.cpp new file mode 100644 index 0000000..78e74f7 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_formats.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_formats.mm b/JuceLibraryCode/include_juce_audio_formats.mm new file mode 100644 index 0000000..0adf319 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_formats.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_AAX.cpp b/JuceLibraryCode/include_juce_audio_plugin_client_AAX.cpp new file mode 100644 index 0000000..a20d1e3 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_AAX.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm b/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm new file mode 100644 index 0000000..0d740d8 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_AU.r b/JuceLibraryCode/include_juce_audio_plugin_client_AU.r new file mode 100644 index 0000000..207c35e --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_AU.r @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm b/JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm new file mode 100644 index 0000000..0924b03 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm b/JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm new file mode 100644 index 0000000..402f054 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_AUv3.mm b/JuceLibraryCode/include_juce_audio_plugin_client_AUv3.mm new file mode 100644 index 0000000..5c705a2 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_AUv3.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_RTAS.r b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS.r new file mode 100644 index 0000000..260c71a --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS.r @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_1.cpp b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_1.cpp new file mode 100644 index 0000000..df6137b --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_1.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_2.cpp b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_2.cpp new file mode 100644 index 0000000..89fc6c2 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_2.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_3.cpp b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_3.cpp new file mode 100644 index 0000000..d6b5f4f --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_3.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_4.cpp b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_4.cpp new file mode 100644 index 0000000..0259399 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_4.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.cpp b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.cpp new file mode 100644 index 0000000..a4ac1a4 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.mm b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.mm new file mode 100644 index 0000000..0d853f9 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp b/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp new file mode 100644 index 0000000..198ae8c --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_Unity.cpp b/JuceLibraryCode/include_juce_audio_plugin_client_Unity.cpp new file mode 100644 index 0000000..acf6830 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_Unity.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp b/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp new file mode 100644 index 0000000..b019de9 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp b/JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp new file mode 100644 index 0000000..ac79442 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm b/JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm new file mode 100644 index 0000000..0b79acb --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp b/JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp new file mode 100644 index 0000000..6c06467 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_processors.cpp b/JuceLibraryCode/include_juce_audio_processors.cpp new file mode 100644 index 0000000..0dbc0b6 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_processors.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_processors.mm b/JuceLibraryCode/include_juce_audio_processors.mm new file mode 100644 index 0000000..dac7f37 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_processors.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_utils.cpp b/JuceLibraryCode/include_juce_audio_utils.cpp new file mode 100644 index 0000000..f31e8b6 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_utils.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_audio_utils.mm b/JuceLibraryCode/include_juce_audio_utils.mm new file mode 100644 index 0000000..4dfd5b4 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_utils.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_core.cpp b/JuceLibraryCode/include_juce_core.cpp new file mode 100644 index 0000000..6f55178 --- /dev/null +++ b/JuceLibraryCode/include_juce_core.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_core.mm b/JuceLibraryCode/include_juce_core.mm new file mode 100644 index 0000000..db83b69 --- /dev/null +++ b/JuceLibraryCode/include_juce_core.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_cryptography.cpp b/JuceLibraryCode/include_juce_cryptography.cpp new file mode 100644 index 0000000..76cc41d --- /dev/null +++ b/JuceLibraryCode/include_juce_cryptography.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_cryptography.mm b/JuceLibraryCode/include_juce_cryptography.mm new file mode 100644 index 0000000..b91dc32 --- /dev/null +++ b/JuceLibraryCode/include_juce_cryptography.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_data_structures.cpp b/JuceLibraryCode/include_juce_data_structures.cpp new file mode 100644 index 0000000..f53f241 --- /dev/null +++ b/JuceLibraryCode/include_juce_data_structures.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_data_structures.mm b/JuceLibraryCode/include_juce_data_structures.mm new file mode 100644 index 0000000..db212c9 --- /dev/null +++ b/JuceLibraryCode/include_juce_data_structures.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_dsp.cpp b/JuceLibraryCode/include_juce_dsp.cpp new file mode 100644 index 0000000..ec2c898 --- /dev/null +++ b/JuceLibraryCode/include_juce_dsp.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_dsp.mm b/JuceLibraryCode/include_juce_dsp.mm new file mode 100644 index 0000000..e641589 --- /dev/null +++ b/JuceLibraryCode/include_juce_dsp.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_events.cpp b/JuceLibraryCode/include_juce_events.cpp new file mode 100644 index 0000000..33a3a69 --- /dev/null +++ b/JuceLibraryCode/include_juce_events.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_events.mm b/JuceLibraryCode/include_juce_events.mm new file mode 100644 index 0000000..6ad0eda --- /dev/null +++ b/JuceLibraryCode/include_juce_events.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_graphics.cpp b/JuceLibraryCode/include_juce_graphics.cpp new file mode 100644 index 0000000..12f6750 --- /dev/null +++ b/JuceLibraryCode/include_juce_graphics.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_graphics.mm b/JuceLibraryCode/include_juce_graphics.mm new file mode 100644 index 0000000..ab22eb4 --- /dev/null +++ b/JuceLibraryCode/include_juce_graphics.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_gui_basics.cpp b/JuceLibraryCode/include_juce_gui_basics.cpp new file mode 100644 index 0000000..80a5878 --- /dev/null +++ b/JuceLibraryCode/include_juce_gui_basics.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_gui_basics.mm b/JuceLibraryCode/include_juce_gui_basics.mm new file mode 100644 index 0000000..708837c --- /dev/null +++ b/JuceLibraryCode/include_juce_gui_basics.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_gui_extra.cpp b/JuceLibraryCode/include_juce_gui_extra.cpp new file mode 100644 index 0000000..ea050e5 --- /dev/null +++ b/JuceLibraryCode/include_juce_gui_extra.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_gui_extra.mm b/JuceLibraryCode/include_juce_gui_extra.mm new file mode 100644 index 0000000..9bb3fea --- /dev/null +++ b/JuceLibraryCode/include_juce_gui_extra.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index 9c0d462..4e0ecf4 100644 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -10,12 +10,12 @@ #include "PluginEditor.h" //============================================================================== -Multiband_compAudioProcessorEditor::Multiband_compAudioProcessorEditor (Multiband_compAudioProcessor& p) - : AudioProcessorEditor (&p), audioProcessor (p) +Multiband_compAudioProcessorEditor::Multiband_compAudioProcessorEditor(Multiband_compAudioProcessor& p) + : AudioProcessorEditor(&p), audioProcessor(p) { // Make sure that before the constructor has finished, you've set the // editor's size to whatever you need it to be. - setSize (400, 300); + setSize(400, 300); } Multiband_compAudioProcessorEditor::~Multiband_compAudioProcessorEditor() @@ -23,18 +23,18 @@ Multiband_compAudioProcessorEditor::~Multiband_compAudioProcessorEditor() } //============================================================================== -void Multiband_compAudioProcessorEditor::paint (juce::Graphics& g) +void Multiband_compAudioProcessorEditor::paint(juce::Graphics& g) { // (Our component is opaque, so we must completely fill the background with a solid colour) - g.fillAll (getLookAndFeel().findColour (juce::ResizableWindow::backgroundColourId)); + g.fillAll(getLookAndFeel().findColour(juce::ResizableWindow::backgroundColourId)); - g.setColour (juce::Colours::white); - g.setFont (15.0f); - g.drawFittedText ("Hello World!", getLocalBounds(), juce::Justification::centred, 1); + g.setColour(juce::Colours::white); + g.setFont(15.0f); + g.drawFittedText("Hello World!", getLocalBounds(), juce::Justification::centred, 1); } void Multiband_compAudioProcessorEditor::resized() { // This is generally where you'll want to lay out the positions of any // subcomponents in your editor.. -} +} \ No newline at end of file diff --git a/Source/PluginEditor.h b/Source/PluginEditor.h index f13fa94..872cf03 100644 --- a/Source/PluginEditor.h +++ b/Source/PluginEditor.h @@ -14,14 +14,14 @@ //============================================================================== /** */ -class Multiband_compAudioProcessorEditor : public juce::AudioProcessorEditor +class Multiband_compAudioProcessorEditor : public juce::AudioProcessorEditor { public: - Multiband_compAudioProcessorEditor (Multiband_compAudioProcessor&); + Multiband_compAudioProcessorEditor(Multiband_compAudioProcessor&); ~Multiband_compAudioProcessorEditor() override; //============================================================================== - void paint (juce::Graphics&) override; + void paint(juce::Graphics&) override; void resized() override; private: @@ -29,5 +29,5 @@ class Multiband_compAudioProcessorEditor : public juce::AudioProcessorEditor // access the processor object that created it. Multiband_compAudioProcessor& audioProcessor; - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Multiband_compAudioProcessorEditor) -}; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(Multiband_compAudioProcessorEditor) +}; \ No newline at end of file diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index 0e51db8..2c33311 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -11,17 +11,24 @@ //============================================================================== Multiband_compAudioProcessor::Multiband_compAudioProcessor() -#ifndef JucePlugin_PreferredChannelConfigurations - : AudioProcessor (BusesProperties() - #if ! JucePlugin_IsMidiEffect - #if ! JucePlugin_IsSynth - .withInput ("Input", juce::AudioChannelSet::stereo(), true) - #endif - .withOutput ("Output", juce::AudioChannelSet::stereo(), true) - #endif - ) + +#if 0 //ndef JucePlugin_PreferredChannelConfigurations + : AudioProcessor(BusesProperties() +#if ! JucePlugin_IsMidiEffect +#if ! JucePlugin_IsSynth + .withInput("Input", juce::AudioChannelSet::stereo(), true) +#endif + .withOutput("Output", juce::AudioChannelSet::stereo(), true) +#endif + ) #endif { + magicState.setGuiValueTree(BinaryData::final_upam, BinaryData::final_upamSize); + + magicState.setApplicationSettingsFile(juce::File::getSpecialLocation(juce::File::userApplicationDataDirectory) + .getChildFile(ProjectInfo::companyName) + .getChildFile(ProjectInfo::projectName + juce::String(".settings"))); + using namespace Params; const auto& params = GetParams(); @@ -32,16 +39,16 @@ Multiband_compAudioProcessor::Multiband_compAudioProcessor() }; - floatHelper(lowBandComp.attack, Names::Attack_Low_Band); - floatHelper(lowBandComp.release, Names::Release_Low_Band); - floatHelper(lowBandComp.threshold, Names::Threshold_Low_Band); + floatHelper(lowBandComp.attack, Names::Attack_Low_Band); + floatHelper(lowBandComp.release, Names::Release_Low_Band); + floatHelper(lowBandComp.threshold, Names::Threshold_Low_Band); - floatHelper(midBandComp.attack, Names::Attack_Mid_Band); - floatHelper(midBandComp.release, Names::Release_Mid_Band); - floatHelper(midBandComp.threshold, Names::Threshold_Mid_Band); + floatHelper(midBandComp.attack, Names::Attack_Mid_Band); + floatHelper(midBandComp.release, Names::Release_Mid_Band); + floatHelper(midBandComp.threshold, Names::Threshold_Mid_Band); - floatHelper(highBandComp.attack, Names::Attack_High_Band); - floatHelper(highBandComp.release, Names::Release_High_Band); + floatHelper(highBandComp.attack, Names::Attack_High_Band); + floatHelper(highBandComp.release, Names::Release_High_Band); floatHelper(highBandComp.threshold, Names::Threshold_High_Band); auto choiceHelper = [&apvts = this->apvts, ¶ms](auto& param, const auto& paramName) { @@ -51,9 +58,9 @@ Multiband_compAudioProcessor::Multiband_compAudioProcessor() }; - choiceHelper(lowBandComp.ratio, Names::Ratio_Low_Band); - choiceHelper(midBandComp.ratio, Names::Ratio_Mid_Band); - choiceHelper(highBandComp.ratio, Names::Ratio_High_Band); + choiceHelper(lowBandComp.ratio, Names::Ratio_Low_Band); + choiceHelper(midBandComp.ratio, Names::Ratio_Mid_Band); + choiceHelper(highBandComp.ratio, Names::Ratio_High_Band); auto boolHelper = [&apvts = this->apvts, ¶ms](auto& param, const auto& paramName) { @@ -62,17 +69,17 @@ Multiband_compAudioProcessor::Multiband_compAudioProcessor() }; - boolHelper(lowBandComp.bypassed, Names::Bypassed_Low_Band); - boolHelper(midBandComp.bypassed, Names::Bypassed_Mid_Band); - boolHelper(highBandComp.bypassed, Names::Bypassed_High_Band); + boolHelper(lowBandComp.bypassed, Names::Bypassed_Low_Band); + boolHelper(midBandComp.bypassed, Names::Bypassed_Mid_Band); + boolHelper(highBandComp.bypassed, Names::Bypassed_High_Band); - boolHelper(lowBandComp.mute, Names::Mute_Low_Band); - boolHelper(midBandComp.mute, Names::Mute_Mid_Band); - boolHelper(highBandComp.mute, Names::Mute_High_Band); + boolHelper(lowBandComp.mute, Names::Mute_Low_Band); + boolHelper(midBandComp.mute, Names::Mute_Mid_Band); + boolHelper(highBandComp.mute, Names::Mute_High_Band); - boolHelper(lowBandComp.solo, Names::Solo_Low_Band); - boolHelper(midBandComp.solo, Names::Solo_Mid_Band); - boolHelper(highBandComp.solo, Names::Solo_High_Band); + boolHelper(lowBandComp.solo, Names::Solo_Low_Band); + boolHelper(midBandComp.solo, Names::Solo_Mid_Band); + boolHelper(highBandComp.solo, Names::Solo_High_Band); floatHelper(lowMidCrossover, Names::Low_Mid_Crossover_Freq); floatHelper(midHighCrossover, Names::Mid_High_Crossover_Freq); @@ -104,29 +111,29 @@ const juce::String Multiband_compAudioProcessor::getName() const bool Multiband_compAudioProcessor::acceptsMidi() const { - #if JucePlugin_WantsMidiInput +#if JucePlugin_WantsMidiInput return true; - #else +#else return false; - #endif +#endif } bool Multiband_compAudioProcessor::producesMidi() const { - #if JucePlugin_ProducesMidiOutput +#if JucePlugin_ProducesMidiOutput return true; - #else +#else return false; - #endif +#endif } bool Multiband_compAudioProcessor::isMidiEffect() const { - #if JucePlugin_IsMidiEffect +#if JucePlugin_IsMidiEffect return true; - #else +#else return false; - #endif +#endif } double Multiband_compAudioProcessor::getTailLengthSeconds() const @@ -145,21 +152,21 @@ int Multiband_compAudioProcessor::getCurrentProgram() return 0; } -void Multiband_compAudioProcessor::setCurrentProgram (int index) +void Multiband_compAudioProcessor::setCurrentProgram(int index) { } -const juce::String Multiband_compAudioProcessor::getProgramName (int index) +const juce::String Multiband_compAudioProcessor::getProgramName(int index) { return {}; } -void Multiband_compAudioProcessor::changeProgramName (int index, const juce::String& newName) +void Multiband_compAudioProcessor::changeProgramName(int index, const juce::String& newName) { } //============================================================================== -void Multiband_compAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock) +void Multiband_compAudioProcessor::prepareToPlay(double sampleRate, int samplesPerBlock) { // Use this method as the place to do any pre-playback // initialisation that you need.. @@ -172,7 +179,7 @@ void Multiband_compAudioProcessor::prepareToPlay (double sampleRate, int samples for (auto& comp : compressor) { comp.prepare(spec); } - + LP1.prepare(spec); HP1.prepare(spec); @@ -205,35 +212,35 @@ void Multiband_compAudioProcessor::releaseResources() } #ifndef JucePlugin_PreferredChannelConfigurations -bool Multiband_compAudioProcessor::isBusesLayoutSupported (const BusesLayout& layouts) const +bool Multiband_compAudioProcessor::isBusesLayoutSupported(const BusesLayout& layouts) const { - #if JucePlugin_IsMidiEffect - juce::ignoreUnused (layouts); +#if JucePlugin_IsMidiEffect + juce::ignoreUnused(layouts); return true; - #else +#else // This is the place where you check if the layout is supported. // In this template code we only support mono or stereo. // Some plugin hosts, such as certain GarageBand versions, will only // load plugins that support stereo bus layouts. if (layouts.getMainOutputChannelSet() != juce::AudioChannelSet::mono() - && layouts.getMainOutputChannelSet() != juce::AudioChannelSet::stereo()) + && layouts.getMainOutputChannelSet() != juce::AudioChannelSet::stereo()) return false; // This checks if the input layout matches the output layout - #if ! JucePlugin_IsSynth +#if ! JucePlugin_IsSynth if (layouts.getMainOutputChannelSet() != layouts.getMainInputChannelSet()) return false; - #endif +#endif return true; - #endif +#endif } #endif void Multiband_compAudioProcessor::updateState() { for (auto& cmp : compressor) cmp.updateCompressorSettings(); - + auto lowMidCutoffFreq = lowMidCrossover->get(); LP1.setCutoffFrequency(lowMidCutoffFreq); HP1.setCutoffFrequency(lowMidCutoffFreq); @@ -314,7 +321,7 @@ void Multiband_compAudioProcessor::processBlock(juce::AudioBuffer& buffer inputBuffer.addFrom(i, 0, source, i, 0, ns); } }; - + auto bandsAreSoloed = false; for (auto& comp : compressor) { if (comp.solo->get()) { @@ -335,28 +342,32 @@ void Multiband_compAudioProcessor::processBlock(juce::AudioBuffer& buffer else { for (rsize_t i = 0; i < compressor.size(); ++i) { auto& comp = compressor[i]; - if(!comp.mute->get()) + if (!comp.mute->get()) addFilterBand(buffer, filterBuffers[i]); } } applyGain(buffer, outputGain); - + } //============================================================================== + bool Multiband_compAudioProcessor::hasEditor() const { return true; // (change this to false if you choose to not supply an editor) } - +/* juce::AudioProcessorEditor* Multiband_compAudioProcessor::createEditor() { - return new Multiband_compAudioProcessorEditor (*this); -} + return new foleys::MagicPluginEditor (magicState); + //return new Multiband_compAudioProcessorEditor(*this); +}*/ + + //============================================================================== -void Multiband_compAudioProcessor::getStateInformation (juce::MemoryBlock& destData) +void Multiband_compAudioProcessor::getStateInformation(juce::MemoryBlock& destData) { // You should use this method to store your parameters in the memory block. // You could do that either as raw data, or use the XML or ValueTree classes @@ -365,7 +376,7 @@ void Multiband_compAudioProcessor::getStateInformation (juce::MemoryBlock& destD apvts.state.writeToStream(mos); } -void Multiband_compAudioProcessor::setStateInformation (const void* data, int sizeInBytes) +void Multiband_compAudioProcessor::setStateInformation(const void* data, int sizeInBytes) { // You should use this method to restore your parameters from this memory block, // whose contents will have been created by the getStateInformation() call. @@ -373,7 +384,7 @@ void Multiband_compAudioProcessor::setStateInformation (const void* data, int si auto tree = juce::ValueTree::readFromData(data, sizeInBytes); if (tree.isValid()) { apvts.replaceState(tree); - } + } } @@ -445,7 +456,7 @@ juce::AudioProcessorValueTreeState::ParameterLayout Multiband_compAudioProcessor params.at(Names::Solo_Low_Band), params.at(Names::Solo_Low_Band), false)); - + //MID======================================================================================= layout.add(std::make_unique( params.at(Names::Threshold_Mid_Band), @@ -527,7 +538,7 @@ juce::AudioProcessorValueTreeState::ParameterLayout Multiband_compAudioProcessor params.at(Names::Mid_High_Crossover_Freq), NormalisableRange(1000, 20000, 1, 1), 2000)); - + return layout; } @@ -537,4 +548,4 @@ juce::AudioProcessorValueTreeState::ParameterLayout Multiband_compAudioProcessor juce::AudioProcessor* JUCE_CALLTYPE createPluginFilter() { return new Multiband_compAudioProcessor(); -} +} \ No newline at end of file diff --git a/Source/PluginProcessor.h b/Source/PluginProcessor.h index 5955ef0..8e519f6 100644 --- a/Source/PluginProcessor.h +++ b/Source/PluginProcessor.h @@ -11,6 +11,9 @@ #include +#include + + namespace Params { enum Names @@ -88,9 +91,9 @@ namespace Params { {Gain_In, "Gain In"}, {Gain_Out, "Gain Out"}, - - + + }; return params; @@ -139,7 +142,8 @@ struct CompressorBand { //============================================================================== /** */ -class Multiband_compAudioProcessor : public juce::AudioProcessor +class Multiband_compAudioProcessor : public foleys::MagicProcessor // juce::AudioProcessor //foleys::MagicProcessor + { public: //============================================================================== @@ -147,19 +151,23 @@ class Multiband_compAudioProcessor : public juce::AudioProcessor ~Multiband_compAudioProcessor() override; //============================================================================== - void prepareToPlay (double sampleRate, int samplesPerBlock) override; + void prepareToPlay(double sampleRate, int samplesPerBlock) override; void releaseResources() override; - #ifndef JucePlugin_PreferredChannelConfigurations - bool isBusesLayoutSupported (const BusesLayout& layouts) const override; - #endif +#ifndef JucePlugin_PreferredChannelConfigurations + bool isBusesLayoutSupported(const BusesLayout& layouts) const override; +#endif - void processBlock (juce::AudioBuffer&, juce::MidiBuffer&) override; + void processBlock(juce::AudioBuffer&, juce::MidiBuffer&) override; //============================================================================== - juce::AudioProcessorEditor* createEditor() override; + + //juce::AudioProcessorEditor* createEditor() override; bool hasEditor() const override; + + + //============================================================================== const juce::String getName() const override; @@ -171,19 +179,23 @@ class Multiband_compAudioProcessor : public juce::AudioProcessor //============================================================================== int getNumPrograms() override; int getCurrentProgram() override; - void setCurrentProgram (int index) override; - const juce::String getProgramName (int index) override; - void changeProgramName (int index, const juce::String& newName) override; + void setCurrentProgram(int index) override; + const juce::String getProgramName(int index) override; + void changeProgramName(int index, const juce::String& newName) override; //============================================================================== - void getStateInformation (juce::MemoryBlock& destData) override; - void setStateInformation (const void* data, int sizeInBytes) override; + + void getStateInformation(juce::MemoryBlock& destData) override; + void setStateInformation(const void* data, int sizeInBytes) override; + using APVTS = juce::AudioProcessorValueTreeState; static APVTS::ParameterLayout createParameterLayout(); APVTS apvts{ *this, nullptr, "Parameters", createParameterLayout() }; + + private: std::array compressor; @@ -193,21 +205,21 @@ class Multiband_compAudioProcessor : public juce::AudioProcessor using Filter = juce::dsp::LinkwitzRileyFilter; - // fc0 fc1 + // fc0 fc1 Filter LP1, AP2, - HP1, LP2, - HP2; - //saturation mors potem stegat + HP1, LP2, + HP2; + //saturation - juce::AudioParameterFloat* lowMidCrossover { nullptr }; - juce::AudioParameterFloat* midHighCrossover { nullptr }; + juce::AudioParameterFloat* lowMidCrossover{ nullptr }; + juce::AudioParameterFloat* midHighCrossover{ nullptr }; std::array, 3> filterBuffers; juce::dsp::Gain inputGain, outputGain; - juce::AudioParameterFloat* inputGainParam { nullptr }; - juce::AudioParameterFloat* outputGainParam { nullptr }; + juce::AudioParameterFloat* inputGainParam{ nullptr }; + juce::AudioParameterFloat* outputGainParam{ nullptr }; template void applyGain(T& buffer, U& gain) { @@ -218,6 +230,10 @@ class Multiband_compAudioProcessor : public juce::AudioProcessor void updateState(); void splitBands(const juce::AudioBuffer& inputBuffer); + + //foleys::MagicProcessorState magicState; + + //============================================================================== - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Multiband_compAudioProcessor) -}; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(Multiband_compAudioProcessor) +}; \ No newline at end of file diff --git a/final_upam.xml b/final_upam.xml new file mode 100644 index 0000000..9507ed8 Binary files /dev/null and b/final_upam.xml differ diff --git a/multiband_comp.jucer b/multiband_comp.jucer index d3c4b96..a92e75b 100644 --- a/multiband_comp.jucer +++ b/multiband_comp.jucer @@ -4,6 +4,11 @@ addUsingNamespaceToJuceHeader="0" jucerFormatVersion="1" cppLanguageStandard="17" companyName="Aerio" pluginRTASCategory="2"> + + + + @@ -14,7 +19,8 @@ - + @@ -35,10 +41,13 @@ + + + @@ -47,6 +56,7 @@ + diff --git a/multiband_demo.sav.xml b/multiband_demo.sav.xml new file mode 100644 index 0000000..9b1ed9a --- /dev/null +++ b/multiband_demo.sav.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +