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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+