From ff238c98b7487a59f967482094c2834c573b6e3e Mon Sep 17 00:00:00 2001
From: my1e5 <10064103+my1e5@users.noreply.github.com>
Date: Mon, 15 Aug 2022 14:54:16 +0100
Subject: [PATCH] main : a basic upmixer that takes in stereo and outputs
left/right/centre
---
.gitignore | 3 +
BasicUpmixer/BasicUpmixer.jucer | 58 ++++++
BasicUpmixer/JuceLibraryCode/JuceHeader.h | 48 +++++
.../JuceLibraryCode/JucePluginDefines.h | 162 +++++++++++++++
BasicUpmixer/JuceLibraryCode/ReadMe.txt | 12 ++
.../include_juce_audio_basics.cpp | 8 +
.../include_juce_audio_basics.mm | 8 +
.../include_juce_audio_devices.cpp | 8 +
.../include_juce_audio_devices.mm | 8 +
.../include_juce_audio_formats.cpp | 8 +
.../include_juce_audio_formats.mm | 8 +
.../include_juce_audio_plugin_client_AAX.cpp | 8 +
.../include_juce_audio_plugin_client_AAX.mm | 8 +
.../include_juce_audio_plugin_client_ARA.cpp | 8 +
.../include_juce_audio_plugin_client_AU.r | 8 +
.../include_juce_audio_plugin_client_AU_1.mm | 8 +
.../include_juce_audio_plugin_client_AU_2.mm | 8 +
.../include_juce_audio_plugin_client_AUv3.mm | 8 +
.../include_juce_audio_plugin_client_LV2.cpp | 8 +
.../include_juce_audio_plugin_client_LV2.mm | 8 +
...de_juce_audio_plugin_client_Standalone.cpp | 8 +
...include_juce_audio_plugin_client_Unity.cpp | 8 +
.../include_juce_audio_plugin_client_VST2.cpp | 8 +
.../include_juce_audio_plugin_client_VST3.cpp | 8 +
...lude_juce_audio_plugin_client_VST_utils.mm | 8 +
...include_juce_audio_plugin_client_utils.cpp | 8 +
.../include_juce_audio_processors.cpp | 8 +
.../include_juce_audio_processors.mm | 8 +
.../include_juce_audio_processors_ara.cpp | 8 +
...include_juce_audio_processors_lv2_libs.cpp | 8 +
.../include_juce_audio_utils.cpp | 8 +
.../include_juce_audio_utils.mm | 8 +
.../JuceLibraryCode/include_juce_core.cpp | 8 +
.../JuceLibraryCode/include_juce_core.mm | 8 +
.../include_juce_data_structures.cpp | 8 +
.../include_juce_data_structures.mm | 8 +
.../JuceLibraryCode/include_juce_events.cpp | 8 +
.../JuceLibraryCode/include_juce_events.mm | 8 +
.../JuceLibraryCode/include_juce_graphics.cpp | 8 +
.../JuceLibraryCode/include_juce_graphics.mm | 8 +
.../include_juce_gui_basics.cpp | 8 +
.../include_juce_gui_basics.mm | 8 +
.../include_juce_gui_extra.cpp | 8 +
.../JuceLibraryCode/include_juce_gui_extra.mm | 8 +
BasicUpmixer/Source/PluginEditor.cpp | 40 ++++
BasicUpmixer/Source/PluginEditor.h | 33 ++++
BasicUpmixer/Source/PluginProcessor.cpp | 185 ++++++++++++++++++
BasicUpmixer/Source/PluginProcessor.h | 62 ++++++
48 files changed, 915 insertions(+)
create mode 100644 BasicUpmixer/BasicUpmixer.jucer
create mode 100644 BasicUpmixer/JuceLibraryCode/JuceHeader.h
create mode 100644 BasicUpmixer/JuceLibraryCode/JucePluginDefines.h
create mode 100644 BasicUpmixer/JuceLibraryCode/ReadMe.txt
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_basics.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_basics.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_devices.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_devices.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_formats.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_formats.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AAX.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_ARA.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AU.r
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AUv3.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_LV2.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_LV2.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_Unity.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_processors.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_processors.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_processors_ara.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_processors_lv2_libs.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_utils.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_audio_utils.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_core.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_core.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_data_structures.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_data_structures.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_events.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_events.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_graphics.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_graphics.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_gui_basics.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_gui_basics.mm
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_gui_extra.cpp
create mode 100644 BasicUpmixer/JuceLibraryCode/include_juce_gui_extra.mm
create mode 100644 BasicUpmixer/Source/PluginEditor.cpp
create mode 100644 BasicUpmixer/Source/PluginEditor.h
create mode 100644 BasicUpmixer/Source/PluginProcessor.cpp
create mode 100644 BasicUpmixer/Source/PluginProcessor.h
diff --git a/.gitignore b/.gitignore
index 259148f..82d63c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
+# Builds
+*/Builds
+
# Prerequisites
*.d
diff --git a/BasicUpmixer/BasicUpmixer.jucer b/BasicUpmixer/BasicUpmixer.jucer
new file mode 100644
index 0000000..4205f31
--- /dev/null
+++ b/BasicUpmixer/BasicUpmixer.jucer
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BasicUpmixer/JuceLibraryCode/JuceHeader.h b/BasicUpmixer/JuceLibraryCode/JuceHeader.h
new file mode 100644
index 0000000..512ed7c
--- /dev/null
+++ b/BasicUpmixer/JuceLibraryCode/JuceHeader.h
@@ -0,0 +1,48 @@
+/*
+
+ 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
+
+
+#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 = "BasicUpmixer";
+ const char* const companyName = "my1e5";
+ const char* const versionString = "1.0.0";
+ const int versionNumber = 0x10000;
+}
+#endif
diff --git a/BasicUpmixer/JuceLibraryCode/JucePluginDefines.h b/BasicUpmixer/JuceLibraryCode/JucePluginDefines.h
new file mode 100644
index 0000000..c8cca12
--- /dev/null
+++ b/BasicUpmixer/JuceLibraryCode/JucePluginDefines.h
@@ -0,0 +1,162 @@
+/*
+
+ 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_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_Build_LV2
+ #define JucePlugin_Build_LV2 0
+#endif
+#ifndef JucePlugin_Enable_IAA
+ #define JucePlugin_Enable_IAA 0
+#endif
+#ifndef JucePlugin_Enable_ARA
+ #define JucePlugin_Enable_ARA 0
+#endif
+#ifndef JucePlugin_Name
+ #define JucePlugin_Name "Basic Upmixer"
+#endif
+#ifndef JucePlugin_Desc
+ #define JucePlugin_Desc "A stereo to left/right/centre upmixer"
+#endif
+#ifndef JucePlugin_Manufacturer
+ #define JucePlugin_Manufacturer "my1e5"
+#endif
+#ifndef JucePlugin_ManufacturerWebsite
+ #define JucePlugin_ManufacturerWebsite " "
+#endif
+#ifndef JucePlugin_ManufacturerEmail
+ #define JucePlugin_ManufacturerEmail ""
+#endif
+#ifndef JucePlugin_ManufacturerCode
+ #define JucePlugin_ManufacturerCode 0x4d793165
+#endif
+#ifndef JucePlugin_PluginCode
+ #define JucePlugin_PluginCode 0x4d793165
+#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 BasicUpmixerAU
+#endif
+#ifndef JucePlugin_AUExportPrefixQuoted
+ #define JucePlugin_AUExportPrefixQuoted "BasicUpmixerAU"
+#endif
+#ifndef JucePlugin_AUManufacturerCode
+ #define JucePlugin_AUManufacturerCode JucePlugin_ManufacturerCode
+#endif
+#ifndef JucePlugin_CFBundleIdentifier
+ #define JucePlugin_CFBundleIdentifier
+#endif
+#ifndef JucePlugin_AAXIdentifier
+ #define JucePlugin_AAXIdentifier my1e5.BasicUpmixer
+#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 "my1e5: Basic Upmixer"
+#endif
+#ifndef JucePlugin_VSTNumMidiInputs
+ #define JucePlugin_VSTNumMidiInputs 16
+#endif
+#ifndef JucePlugin_VSTNumMidiOutputs
+ #define JucePlugin_VSTNumMidiOutputs 16
+#endif
+#ifndef JucePlugin_ARAContentTypes
+ #define JucePlugin_ARAContentTypes 0
+#endif
+#ifndef JucePlugin_ARATransformationFlags
+ #define JucePlugin_ARATransformationFlags 0
+#endif
+#ifndef JucePlugin_ARAFactoryID
+ #define JucePlugin_ARAFactoryID "com.my1e5.BasicUpmixer.factory"
+#endif
+#ifndef JucePlugin_ARADocumentArchiveID
+ #define JucePlugin_ARADocumentArchiveID "com.my1e5.BasicUpmixer.aradocumentarchive.1.0.0"
+#endif
+#ifndef JucePlugin_ARACompatibleArchiveIDs
+ #define JucePlugin_ARACompatibleArchiveIDs ""
+#endif
diff --git a/BasicUpmixer/JuceLibraryCode/ReadMe.txt b/BasicUpmixer/JuceLibraryCode/ReadMe.txt
new file mode 100644
index 0000000..1e6784f
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_basics.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_basics.cpp
new file mode 100644
index 0000000..4070844
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_basics.mm b/BasicUpmixer/JuceLibraryCode/include_juce_audio_basics.mm
new file mode 100644
index 0000000..0c09914
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_devices.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_devices.cpp
new file mode 100644
index 0000000..c9c2d11
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_devices.mm b/BasicUpmixer/JuceLibraryCode/include_juce_audio_devices.mm
new file mode 100644
index 0000000..77e69b1
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_formats.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_formats.cpp
new file mode 100644
index 0000000..78e74f7
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_formats.mm b/BasicUpmixer/JuceLibraryCode/include_juce_audio_formats.mm
new file mode 100644
index 0000000..0adf319
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AAX.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AAX.cpp
new file mode 100644
index 0000000..a20d1e3
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm
new file mode 100644
index 0000000..0d740d8
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_ARA.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_ARA.cpp
new file mode 100644
index 0000000..d64efb0
--- /dev/null
+++ b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_ARA.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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AU.r b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AU.r
new file mode 100644
index 0000000..207c35e
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm
new file mode 100644
index 0000000..0924b03
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm
new file mode 100644
index 0000000..402f054
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AUv3.mm b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_AUv3.mm
new file mode 100644
index 0000000..5c705a2
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_LV2.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_LV2.cpp
new file mode 100644
index 0000000..dd2858f
--- /dev/null
+++ b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_LV2.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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_LV2.mm b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_LV2.mm
new file mode 100644
index 0000000..ef6fab7
--- /dev/null
+++ b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_LV2.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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp
new file mode 100644
index 0000000..198ae8c
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_Unity.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_Unity.cpp
new file mode 100644
index 0000000..acf6830
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp
new file mode 100644
index 0000000..b019de9
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp
new file mode 100644
index 0000000..ac79442
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm
new file mode 100644
index 0000000..0b79acb
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp
new file mode 100644
index 0000000..6c06467
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_processors.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_processors.cpp
new file mode 100644
index 0000000..0dbc0b6
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_processors.mm b/BasicUpmixer/JuceLibraryCode/include_juce_audio_processors.mm
new file mode 100644
index 0000000..dac7f37
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_processors_ara.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_processors_ara.cpp
new file mode 100644
index 0000000..1651fc5
--- /dev/null
+++ b/BasicUpmixer/JuceLibraryCode/include_juce_audio_processors_ara.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/BasicUpmixer/JuceLibraryCode/include_juce_audio_processors_lv2_libs.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_processors_lv2_libs.cpp
new file mode 100644
index 0000000..1151b5a
--- /dev/null
+++ b/BasicUpmixer/JuceLibraryCode/include_juce_audio_processors_lv2_libs.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/BasicUpmixer/JuceLibraryCode/include_juce_audio_utils.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_audio_utils.cpp
new file mode 100644
index 0000000..f31e8b6
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_audio_utils.mm b/BasicUpmixer/JuceLibraryCode/include_juce_audio_utils.mm
new file mode 100644
index 0000000..4dfd5b4
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_core.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_core.cpp
new file mode 100644
index 0000000..6f55178
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_core.mm b/BasicUpmixer/JuceLibraryCode/include_juce_core.mm
new file mode 100644
index 0000000..db83b69
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_data_structures.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_data_structures.cpp
new file mode 100644
index 0000000..f53f241
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_data_structures.mm b/BasicUpmixer/JuceLibraryCode/include_juce_data_structures.mm
new file mode 100644
index 0000000..db212c9
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_events.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_events.cpp
new file mode 100644
index 0000000..33a3a69
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_events.mm b/BasicUpmixer/JuceLibraryCode/include_juce_events.mm
new file mode 100644
index 0000000..6ad0eda
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_graphics.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_graphics.cpp
new file mode 100644
index 0000000..12f6750
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_graphics.mm b/BasicUpmixer/JuceLibraryCode/include_juce_graphics.mm
new file mode 100644
index 0000000..ab22eb4
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_gui_basics.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_gui_basics.cpp
new file mode 100644
index 0000000..80a5878
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_gui_basics.mm b/BasicUpmixer/JuceLibraryCode/include_juce_gui_basics.mm
new file mode 100644
index 0000000..708837c
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_gui_extra.cpp b/BasicUpmixer/JuceLibraryCode/include_juce_gui_extra.cpp
new file mode 100644
index 0000000..ea050e5
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/JuceLibraryCode/include_juce_gui_extra.mm b/BasicUpmixer/JuceLibraryCode/include_juce_gui_extra.mm
new file mode 100644
index 0000000..9bb3fea
--- /dev/null
+++ b/BasicUpmixer/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/BasicUpmixer/Source/PluginEditor.cpp b/BasicUpmixer/Source/PluginEditor.cpp
new file mode 100644
index 0000000..b839857
--- /dev/null
+++ b/BasicUpmixer/Source/PluginEditor.cpp
@@ -0,0 +1,40 @@
+/*
+ ==============================================================================
+
+ This file contains the basic framework code for a JUCE plugin editor.
+
+ ==============================================================================
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+//==============================================================================
+BasicUpmixerAudioProcessorEditor::BasicUpmixerAudioProcessorEditor (BasicUpmixerAudioProcessor& 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);
+}
+
+BasicUpmixerAudioProcessorEditor::~BasicUpmixerAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void BasicUpmixerAudioProcessorEditor::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.setColour (juce::Colours::white);
+ g.setFont (15.0f);
+ g.drawFittedText ("Basic Upmixer\nL=L, R=R, C=0.5*(L+R)", getLocalBounds(), juce::Justification::centred, 1);
+}
+
+void BasicUpmixerAudioProcessorEditor::resized()
+{
+ // This is generally where you'll want to lay out the positions of any
+ // subcomponents in your editor..
+}
diff --git a/BasicUpmixer/Source/PluginEditor.h b/BasicUpmixer/Source/PluginEditor.h
new file mode 100644
index 0000000..5f2c039
--- /dev/null
+++ b/BasicUpmixer/Source/PluginEditor.h
@@ -0,0 +1,33 @@
+/*
+ ==============================================================================
+
+ This file contains the basic framework code for a JUCE plugin editor.
+
+ ==============================================================================
+*/
+
+#pragma once
+
+#include
+#include "PluginProcessor.h"
+
+//==============================================================================
+/**
+*/
+class BasicUpmixerAudioProcessorEditor : public juce::AudioProcessorEditor
+{
+public:
+ BasicUpmixerAudioProcessorEditor (BasicUpmixerAudioProcessor&);
+ ~BasicUpmixerAudioProcessorEditor() override;
+
+ //==============================================================================
+ void paint (juce::Graphics&) override;
+ void resized() override;
+
+private:
+ // This reference is provided as a quick way for your editor to
+ // access the processor object that created it.
+ BasicUpmixerAudioProcessor& audioProcessor;
+
+ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BasicUpmixerAudioProcessorEditor)
+};
diff --git a/BasicUpmixer/Source/PluginProcessor.cpp b/BasicUpmixer/Source/PluginProcessor.cpp
new file mode 100644
index 0000000..8efc2fa
--- /dev/null
+++ b/BasicUpmixer/Source/PluginProcessor.cpp
@@ -0,0 +1,185 @@
+/*
+ ==============================================================================
+
+ This file contains the basic framework code for a JUCE plugin processor.
+
+ ==============================================================================
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+//==============================================================================
+BasicUpmixerAudioProcessor::BasicUpmixerAudioProcessor()
+#ifndef JucePlugin_PreferredChannelConfigurations
+ : AudioProcessor (BusesProperties()
+ #if ! JucePlugin_IsMidiEffect
+ #if ! JucePlugin_IsSynth
+ .withInput ("Input", juce::AudioChannelSet::stereo(), true)
+ #endif
+ .withOutput ("Output", juce::AudioChannelSet::createLCR(), true)
+ #endif
+ )
+#endif
+{
+}
+
+BasicUpmixerAudioProcessor::~BasicUpmixerAudioProcessor()
+{
+}
+
+//==============================================================================
+const juce::String BasicUpmixerAudioProcessor::getName() const
+{
+ return JucePlugin_Name;
+}
+
+bool BasicUpmixerAudioProcessor::acceptsMidi() const
+{
+ #if JucePlugin_WantsMidiInput
+ return true;
+ #else
+ return false;
+ #endif
+}
+
+bool BasicUpmixerAudioProcessor::producesMidi() const
+{
+ #if JucePlugin_ProducesMidiOutput
+ return true;
+ #else
+ return false;
+ #endif
+}
+
+bool BasicUpmixerAudioProcessor::isMidiEffect() const
+{
+ #if JucePlugin_IsMidiEffect
+ return true;
+ #else
+ return false;
+ #endif
+}
+
+double BasicUpmixerAudioProcessor::getTailLengthSeconds() const
+{
+ return 0.0;
+}
+
+int BasicUpmixerAudioProcessor::getNumPrograms()
+{
+ return 1; // NB: some hosts don't cope very well if you tell them there are 0 programs,
+ // so this should be at least 1, even if you're not really implementing programs.
+}
+
+int BasicUpmixerAudioProcessor::getCurrentProgram()
+{
+ return 0;
+}
+
+void BasicUpmixerAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const juce::String BasicUpmixerAudioProcessor::getProgramName (int index)
+{
+ return {};
+}
+
+void BasicUpmixerAudioProcessor::changeProgramName (int index, const juce::String& newName)
+{
+}
+
+//==============================================================================
+void BasicUpmixerAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+ // Use this method as the place to do any pre-playback
+ // initialisation that you need..
+}
+
+void BasicUpmixerAudioProcessor::releaseResources()
+{
+ // When playback stops, you can use this as an opportunity to free up any
+ // spare memory, etc.
+}
+
+#ifndef JucePlugin_PreferredChannelConfigurations
+bool BasicUpmixerAudioProcessor::isBusesLayoutSupported(const BusesLayout& layouts) const
+{
+ const juce::AudioChannelSet& mainInput = layouts.getMainInputChannelSet();
+ const juce::AudioChannelSet& mainOutput = layouts.getMainOutputChannelSet();
+
+ return mainInput.size() == 2 && mainOutput.size() == 3;
+}
+#endif
+
+void BasicUpmixerAudioProcessor::processBlock (juce::AudioBuffer& buffer, juce::MidiBuffer& midiMessages)
+{
+ juce::ScopedNoDenormals noDenormals;
+ auto totalNumInputChannels = getTotalNumInputChannels();
+ auto totalNumOutputChannels = getTotalNumOutputChannels();
+
+ // Find buffer length
+ const int numSamples = buffer.getNumSamples();
+ if (numSamples == 0) {
+ return; // Exit if no samples
+ }
+
+ // In case we have more outputs than inputs, this code clears any output
+ // channels that didn't contain input data, (because these aren't
+ // guaranteed to be empty - they may contain garbage).
+ // This is here to avoid people getting screaming feedback
+ // when they first compile a plugin, but obviously you don't need to keep
+ // this code if your algorithm always overwrites all the output channels.
+ for (auto i = totalNumInputChannels; i < totalNumOutputChannels; ++i)
+ buffer.clear(i, 0, buffer.getNumSamples());
+
+ // Initialise write pointers
+ auto outputL = buffer.getWritePointer(0);
+ auto outputR = buffer.getWritePointer(1);
+ auto outputC = buffer.getWritePointer(2);
+
+ // Main processing loop
+ for (int n = 0; n < numSamples; ++n)
+ {
+ float inputL = buffer.getSample(0, n);
+ float inputR = buffer.getSample(1, n);
+
+ outputL[n] = inputL;
+ outputR[n] = inputR;
+ outputC[n] = 0.5f * (inputL + inputR);
+
+ }
+}
+
+//==============================================================================
+bool BasicUpmixerAudioProcessor::hasEditor() const
+{
+ return true; // (change this to false if you choose to not supply an editor)
+}
+
+juce::AudioProcessorEditor* BasicUpmixerAudioProcessor::createEditor()
+{
+ return new BasicUpmixerAudioProcessorEditor (*this);
+}
+
+//==============================================================================
+void BasicUpmixerAudioProcessor::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
+ // as intermediaries to make it easy to save and load complex data.
+}
+
+void BasicUpmixerAudioProcessor::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.
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+juce::AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+ return new BasicUpmixerAudioProcessor();
+}
diff --git a/BasicUpmixer/Source/PluginProcessor.h b/BasicUpmixer/Source/PluginProcessor.h
new file mode 100644
index 0000000..772db70
--- /dev/null
+++ b/BasicUpmixer/Source/PluginProcessor.h
@@ -0,0 +1,62 @@
+/*
+ ==============================================================================
+
+ This file contains the basic framework code for a JUCE plugin processor.
+
+ ==============================================================================
+*/
+
+#pragma once
+
+#include
+
+//==============================================================================
+/**
+*/
+class BasicUpmixerAudioProcessor : public juce::AudioProcessor
+ #if JucePlugin_Enable_ARA
+ , public juce::AudioProcessorARAExtension
+ #endif
+{
+public:
+ //==============================================================================
+ BasicUpmixerAudioProcessor();
+ ~BasicUpmixerAudioProcessor() override;
+
+ //==============================================================================
+ void prepareToPlay (double sampleRate, int samplesPerBlock) override;
+ void releaseResources() override;
+
+ #ifndef JucePlugin_PreferredChannelConfigurations
+ bool isBusesLayoutSupported (const BusesLayout& layouts) const override;
+ #endif
+
+ void processBlock (juce::AudioBuffer&, juce::MidiBuffer&) override;
+
+ //==============================================================================
+ juce::AudioProcessorEditor* createEditor() override;
+ bool hasEditor() const override;
+
+ //==============================================================================
+ const juce::String getName() const override;
+
+ bool acceptsMidi() const override;
+ bool producesMidi() const override;
+ bool isMidiEffect() const override;
+ double getTailLengthSeconds() const override;
+
+ //==============================================================================
+ 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 getStateInformation (juce::MemoryBlock& destData) override;
+ void setStateInformation (const void* data, int sizeInBytes) override;
+
+private:
+ //==============================================================================
+ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BasicUpmixerAudioProcessor)
+};