From dd63339e85fbc8a2f6cdcc91751d13e801c3bd66 Mon Sep 17 00:00:00 2001 From: Robert Daniel Black Date: Sat, 24 Oct 2020 20:25:19 -0600 Subject: [PATCH 1/7] Add Stereo Control effect --- cmake/modules/PluginList.cmake | 1 + plugins/StereoControl/CMakeLists.txt | 3 + plugins/StereoControl/OLD_1/CMakeLists.txt | 3 + plugins/StereoControl/OLD_1/StereoControl.cpp | 399 ++++++++++++++++ plugins/StereoControl/OLD_1/StereoControl.h | 75 +++ .../OLD_1/StereoControlControlDialog.cpp | 197 ++++++++ .../OLD_1/StereoControlControlDialog.h | 45 ++ .../OLD_1/StereoControlControls.cpp | 102 ++++ .../OLD_1/StereoControlControls.h | 89 ++++ plugins/StereoControl/OLD_1/artwork.png | Bin 0 -> 7739 bytes plugins/StereoControl/OLD_1/audition_sel.png | Bin 0 -> 2489 bytes .../StereoControl/OLD_1/audition_unsel.png | Bin 0 -> 2615 bytes plugins/StereoControl/OLD_1/dc_sel.png | Bin 0 -> 3018 bytes plugins/StereoControl/OLD_1/dc_unsel.png | Bin 0 -> 2870 bytes plugins/StereoControl/OLD_1/gain_sel.png | Bin 0 -> 4033 bytes plugins/StereoControl/OLD_1/gain_unsel.png | Bin 0 -> 3761 bytes plugins/StereoControl/OLD_1/haas_sel.png | Bin 0 -> 4129 bytes plugins/StereoControl/OLD_1/haas_unsel.png | Bin 0 -> 3400 bytes plugins/StereoControl/OLD_1/invertL_sel.png | Bin 0 -> 2024 bytes plugins/StereoControl/OLD_1/invertL_unsel.png | Bin 0 -> 1851 bytes plugins/StereoControl/OLD_1/invertR_sel.png | Bin 0 -> 2274 bytes plugins/StereoControl/OLD_1/invertR_unsel.png | Bin 0 -> 2019 bytes plugins/StereoControl/OLD_1/logo.png | Bin 0 -> 774 bytes plugins/StereoControl/OLD_1/monoBass_sel.png | Bin 0 -> 5825 bytes .../StereoControl/OLD_1/monoBass_unsel.png | Bin 0 -> 5529 bytes plugins/StereoControl/OLD_1/mono_sel.png | Bin 0 -> 3743 bytes plugins/StereoControl/OLD_1/mono_unsel.png | Bin 0 -> 3933 bytes plugins/StereoControl/OLD_1/mute_sel.png | Bin 0 -> 4256 bytes plugins/StereoControl/OLD_1/mute_unsel.png | Bin 0 -> 3863 bytes plugins/StereoControl/OLD_1/soloL_sel.png | Bin 0 -> 3369 bytes plugins/StereoControl/OLD_1/soloL_unsel.png | Bin 0 -> 3585 bytes plugins/StereoControl/OLD_1/soloR_sel.png | Bin 0 -> 4530 bytes plugins/StereoControl/OLD_1/soloR_unsel.png | Bin 0 -> 4154 bytes .../StereoControl/OLD_1/soloStereo_sel.png | Bin 0 -> 4423 bytes .../StereoControl/OLD_1/soloStereo_unsel.png | Bin 0 -> 4570 bytes plugins/StereoControl/OLD_1/stereo_sel.png | Bin 0 -> 3811 bytes plugins/StereoControl/OLD_1/stereo_unsel.png | Bin 0 -> 3764 bytes plugins/StereoControl/OLD_2/CMakeLists.txt | 3 + plugins/StereoControl/OLD_2/StereoControl.cpp | 428 +++++++++++++++++ plugins/StereoControl/OLD_2/StereoControl.h | 78 +++ .../OLD_2/StereoControlControlDialog.cpp | 198 ++++++++ .../OLD_2/StereoControlControlDialog.h | 45 ++ .../OLD_2/StereoControlControls.cpp | 105 +++++ .../OLD_2/StereoControlControls.h | 90 ++++ plugins/StereoControl/OLD_2/artwork.png | Bin 0 -> 62279 bytes plugins/StereoControl/OLD_2/audition_sel.png | Bin 0 -> 653 bytes .../StereoControl/OLD_2/audition_unsel.png | Bin 0 -> 693 bytes plugins/StereoControl/OLD_2/basic_sel.png | Bin 0 -> 993 bytes plugins/StereoControl/OLD_2/basic_unsel.png | Bin 0 -> 1026 bytes plugins/StereoControl/OLD_2/binaural_sel.png | Bin 0 -> 1054 bytes .../StereoControl/OLD_2/binaural_unsel.png | Bin 0 -> 1071 bytes plugins/StereoControl/OLD_2/dc_sel.png | Bin 0 -> 600 bytes plugins/StereoControl/OLD_2/dc_unsel.png | Bin 0 -> 624 bytes plugins/StereoControl/OLD_2/dual_sel.png | Bin 0 -> 738 bytes plugins/StereoControl/OLD_2/dual_unsel.png | Bin 0 -> 759 bytes plugins/StereoControl/OLD_2/invertL_sel.png | Bin 0 -> 309 bytes plugins/StereoControl/OLD_2/invertL_unsel.png | Bin 0 -> 302 bytes plugins/StereoControl/OLD_2/invertR_sel.png | Bin 0 -> 433 bytes plugins/StereoControl/OLD_2/invertR_unsel.png | Bin 0 -> 439 bytes plugins/StereoControl/OLD_2/logo.png | Bin 0 -> 774 bytes plugins/StereoControl/OLD_2/monoBass_sel.png | Bin 0 -> 5825 bytes .../StereoControl/OLD_2/monoBass_unsel.png | Bin 0 -> 5529 bytes plugins/StereoControl/OLD_2/mono_sel.png | Bin 0 -> 783 bytes plugins/StereoControl/OLD_2/mono_unsel.png | Bin 0 -> 808 bytes plugins/StereoControl/OLD_2/mute_sel.png | Bin 0 -> 694 bytes plugins/StereoControl/OLD_2/mute_unsel.png | Bin 0 -> 694 bytes plugins/StereoControl/OLD_2/soloL_sel.png | Bin 0 -> 3369 bytes plugins/StereoControl/OLD_2/soloL_unsel.png | Bin 0 -> 3585 bytes plugins/StereoControl/OLD_2/soloR_sel.png | Bin 0 -> 4530 bytes plugins/StereoControl/OLD_2/soloR_unsel.png | Bin 0 -> 4154 bytes .../StereoControl/OLD_2/soloStereo_sel.png | Bin 0 -> 4423 bytes .../StereoControl/OLD_2/soloStereo_unsel.png | Bin 0 -> 4570 bytes plugins/StereoControl/OLD_2/stereo_sel.png | Bin 0 -> 3811 bytes plugins/StereoControl/OLD_2/stereo_unsel.png | Bin 0 -> 3764 bytes plugins/StereoControl/OLD_3/CMakeLists.txt | 3 + plugins/StereoControl/OLD_3/StereoControl.cpp | 427 +++++++++++++++++ plugins/StereoControl/OLD_3/StereoControl.h | 77 +++ .../OLD_3/StereoControlControlDialog.cpp | 191 ++++++++ .../OLD_3/StereoControlControlDialog.h | 44 ++ .../OLD_3/StereoControlControls.cpp | 111 +++++ .../OLD_3/StereoControlControls.h | 92 ++++ plugins/StereoControl/OLD_3/artwork.png | Bin 0 -> 62462 bytes plugins/StereoControl/OLD_3/audition_sel.png | Bin 0 -> 653 bytes .../StereoControl/OLD_3/audition_unsel.png | Bin 0 -> 693 bytes plugins/StereoControl/OLD_3/basic_sel.png | Bin 0 -> 993 bytes plugins/StereoControl/OLD_3/basic_unsel.png | Bin 0 -> 1026 bytes plugins/StereoControl/OLD_3/binaural_sel.png | Bin 0 -> 1054 bytes .../StereoControl/OLD_3/binaural_unsel.png | Bin 0 -> 1071 bytes plugins/StereoControl/OLD_3/dc_sel.png | Bin 0 -> 600 bytes plugins/StereoControl/OLD_3/dc_unsel.png | Bin 0 -> 624 bytes plugins/StereoControl/OLD_3/dual_sel.png | Bin 0 -> 738 bytes plugins/StereoControl/OLD_3/dual_unsel.png | Bin 0 -> 759 bytes plugins/StereoControl/OLD_3/invertL_sel.png | Bin 0 -> 309 bytes plugins/StereoControl/OLD_3/invertL_unsel.png | Bin 0 -> 302 bytes plugins/StereoControl/OLD_3/invertR_sel.png | Bin 0 -> 433 bytes plugins/StereoControl/OLD_3/invertR_unsel.png | Bin 0 -> 439 bytes plugins/StereoControl/OLD_3/logo.png | Bin 0 -> 774 bytes plugins/StereoControl/OLD_3/monoBass_sel.png | Bin 0 -> 5825 bytes .../StereoControl/OLD_3/monoBass_unsel.png | Bin 0 -> 5529 bytes plugins/StereoControl/OLD_3/mono_sel.png | Bin 0 -> 783 bytes plugins/StereoControl/OLD_3/mono_unsel.png | Bin 0 -> 808 bytes plugins/StereoControl/OLD_3/mute_sel.png | Bin 0 -> 694 bytes plugins/StereoControl/OLD_3/mute_unsel.png | Bin 0 -> 694 bytes plugins/StereoControl/OLD_3/soloL_sel.png | Bin 0 -> 3369 bytes plugins/StereoControl/OLD_3/soloL_unsel.png | Bin 0 -> 3585 bytes plugins/StereoControl/OLD_3/soloR_sel.png | Bin 0 -> 4530 bytes plugins/StereoControl/OLD_3/soloR_unsel.png | Bin 0 -> 4154 bytes .../StereoControl/OLD_3/soloStereo_sel.png | Bin 0 -> 4423 bytes .../StereoControl/OLD_3/soloStereo_unsel.png | Bin 0 -> 4570 bytes plugins/StereoControl/StereoControl.cpp | 443 ++++++++++++++++++ plugins/StereoControl/StereoControl.h | 77 +++ .../StereoControlControlDialog.cpp | 231 +++++++++ .../StereoControlControlDialog.h | 80 ++++ .../StereoControl/StereoControlControls.cpp | 118 +++++ plugins/StereoControl/StereoControlControls.h | 94 ++++ plugins/StereoControl/artwork.png | Bin 0 -> 44613 bytes plugins/StereoControl/audition_sel.png | Bin 0 -> 653 bytes plugins/StereoControl/audition_unsel.png | Bin 0 -> 693 bytes plugins/StereoControl/basic_sel.png | Bin 0 -> 7885 bytes plugins/StereoControl/basic_unsel.png | Bin 0 -> 7843 bytes plugins/StereoControl/binaural_sel.png | Bin 0 -> 9589 bytes plugins/StereoControl/binaural_unsel.png | Bin 0 -> 9457 bytes plugins/StereoControl/dc_sel.png | Bin 0 -> 600 bytes plugins/StereoControl/dc_unsel.png | Bin 0 -> 624 bytes plugins/StereoControl/dual_sel.png | Bin 0 -> 7419 bytes plugins/StereoControl/dual_unsel.png | Bin 0 -> 7397 bytes plugins/StereoControl/invertL_sel.png | Bin 0 -> 314 bytes plugins/StereoControl/invertL_unsel.png | Bin 0 -> 340 bytes plugins/StereoControl/invertR_sel.png | Bin 0 -> 437 bytes plugins/StereoControl/invertR_unsel.png | Bin 0 -> 440 bytes plugins/StereoControl/logo.png | Bin 0 -> 774 bytes plugins/StereoControl/mono_sel.png | Bin 0 -> 790 bytes plugins/StereoControl/mono_unsel.png | Bin 0 -> 809 bytes plugins/StereoControl/mute_sel.png | Bin 0 -> 698 bytes plugins/StereoControl/mute_unsel.png | Bin 0 -> 697 bytes 135 files changed, 3849 insertions(+) create mode 100755 plugins/StereoControl/CMakeLists.txt create mode 100755 plugins/StereoControl/OLD_1/CMakeLists.txt create mode 100755 plugins/StereoControl/OLD_1/StereoControl.cpp create mode 100755 plugins/StereoControl/OLD_1/StereoControl.h create mode 100755 plugins/StereoControl/OLD_1/StereoControlControlDialog.cpp create mode 100755 plugins/StereoControl/OLD_1/StereoControlControlDialog.h create mode 100755 plugins/StereoControl/OLD_1/StereoControlControls.cpp create mode 100755 plugins/StereoControl/OLD_1/StereoControlControls.h create mode 100755 plugins/StereoControl/OLD_1/artwork.png create mode 100755 plugins/StereoControl/OLD_1/audition_sel.png create mode 100755 plugins/StereoControl/OLD_1/audition_unsel.png create mode 100755 plugins/StereoControl/OLD_1/dc_sel.png create mode 100755 plugins/StereoControl/OLD_1/dc_unsel.png create mode 100755 plugins/StereoControl/OLD_1/gain_sel.png create mode 100755 plugins/StereoControl/OLD_1/gain_unsel.png create mode 100755 plugins/StereoControl/OLD_1/haas_sel.png create mode 100755 plugins/StereoControl/OLD_1/haas_unsel.png create mode 100755 plugins/StereoControl/OLD_1/invertL_sel.png create mode 100755 plugins/StereoControl/OLD_1/invertL_unsel.png create mode 100755 plugins/StereoControl/OLD_1/invertR_sel.png create mode 100755 plugins/StereoControl/OLD_1/invertR_unsel.png create mode 100755 plugins/StereoControl/OLD_1/logo.png create mode 100755 plugins/StereoControl/OLD_1/monoBass_sel.png create mode 100755 plugins/StereoControl/OLD_1/monoBass_unsel.png create mode 100755 plugins/StereoControl/OLD_1/mono_sel.png create mode 100755 plugins/StereoControl/OLD_1/mono_unsel.png create mode 100755 plugins/StereoControl/OLD_1/mute_sel.png create mode 100755 plugins/StereoControl/OLD_1/mute_unsel.png create mode 100755 plugins/StereoControl/OLD_1/soloL_sel.png create mode 100755 plugins/StereoControl/OLD_1/soloL_unsel.png create mode 100755 plugins/StereoControl/OLD_1/soloR_sel.png create mode 100755 plugins/StereoControl/OLD_1/soloR_unsel.png create mode 100755 plugins/StereoControl/OLD_1/soloStereo_sel.png create mode 100755 plugins/StereoControl/OLD_1/soloStereo_unsel.png create mode 100755 plugins/StereoControl/OLD_1/stereo_sel.png create mode 100755 plugins/StereoControl/OLD_1/stereo_unsel.png create mode 100755 plugins/StereoControl/OLD_2/CMakeLists.txt create mode 100755 plugins/StereoControl/OLD_2/StereoControl.cpp create mode 100755 plugins/StereoControl/OLD_2/StereoControl.h create mode 100755 plugins/StereoControl/OLD_2/StereoControlControlDialog.cpp create mode 100755 plugins/StereoControl/OLD_2/StereoControlControlDialog.h create mode 100755 plugins/StereoControl/OLD_2/StereoControlControls.cpp create mode 100755 plugins/StereoControl/OLD_2/StereoControlControls.h create mode 100755 plugins/StereoControl/OLD_2/artwork.png create mode 100755 plugins/StereoControl/OLD_2/audition_sel.png create mode 100755 plugins/StereoControl/OLD_2/audition_unsel.png create mode 100755 plugins/StereoControl/OLD_2/basic_sel.png create mode 100755 plugins/StereoControl/OLD_2/basic_unsel.png create mode 100755 plugins/StereoControl/OLD_2/binaural_sel.png create mode 100755 plugins/StereoControl/OLD_2/binaural_unsel.png create mode 100755 plugins/StereoControl/OLD_2/dc_sel.png create mode 100755 plugins/StereoControl/OLD_2/dc_unsel.png create mode 100755 plugins/StereoControl/OLD_2/dual_sel.png create mode 100755 plugins/StereoControl/OLD_2/dual_unsel.png create mode 100755 plugins/StereoControl/OLD_2/invertL_sel.png create mode 100755 plugins/StereoControl/OLD_2/invertL_unsel.png create mode 100755 plugins/StereoControl/OLD_2/invertR_sel.png create mode 100755 plugins/StereoControl/OLD_2/invertR_unsel.png create mode 100755 plugins/StereoControl/OLD_2/logo.png create mode 100755 plugins/StereoControl/OLD_2/monoBass_sel.png create mode 100755 plugins/StereoControl/OLD_2/monoBass_unsel.png create mode 100755 plugins/StereoControl/OLD_2/mono_sel.png create mode 100755 plugins/StereoControl/OLD_2/mono_unsel.png create mode 100755 plugins/StereoControl/OLD_2/mute_sel.png create mode 100755 plugins/StereoControl/OLD_2/mute_unsel.png create mode 100755 plugins/StereoControl/OLD_2/soloL_sel.png create mode 100755 plugins/StereoControl/OLD_2/soloL_unsel.png create mode 100755 plugins/StereoControl/OLD_2/soloR_sel.png create mode 100755 plugins/StereoControl/OLD_2/soloR_unsel.png create mode 100755 plugins/StereoControl/OLD_2/soloStereo_sel.png create mode 100755 plugins/StereoControl/OLD_2/soloStereo_unsel.png create mode 100755 plugins/StereoControl/OLD_2/stereo_sel.png create mode 100755 plugins/StereoControl/OLD_2/stereo_unsel.png create mode 100755 plugins/StereoControl/OLD_3/CMakeLists.txt create mode 100755 plugins/StereoControl/OLD_3/StereoControl.cpp create mode 100755 plugins/StereoControl/OLD_3/StereoControl.h create mode 100755 plugins/StereoControl/OLD_3/StereoControlControlDialog.cpp create mode 100755 plugins/StereoControl/OLD_3/StereoControlControlDialog.h create mode 100755 plugins/StereoControl/OLD_3/StereoControlControls.cpp create mode 100755 plugins/StereoControl/OLD_3/StereoControlControls.h create mode 100755 plugins/StereoControl/OLD_3/artwork.png create mode 100755 plugins/StereoControl/OLD_3/audition_sel.png create mode 100755 plugins/StereoControl/OLD_3/audition_unsel.png create mode 100755 plugins/StereoControl/OLD_3/basic_sel.png create mode 100755 plugins/StereoControl/OLD_3/basic_unsel.png create mode 100755 plugins/StereoControl/OLD_3/binaural_sel.png create mode 100755 plugins/StereoControl/OLD_3/binaural_unsel.png create mode 100755 plugins/StereoControl/OLD_3/dc_sel.png create mode 100755 plugins/StereoControl/OLD_3/dc_unsel.png create mode 100755 plugins/StereoControl/OLD_3/dual_sel.png create mode 100755 plugins/StereoControl/OLD_3/dual_unsel.png create mode 100755 plugins/StereoControl/OLD_3/invertL_sel.png create mode 100755 plugins/StereoControl/OLD_3/invertL_unsel.png create mode 100755 plugins/StereoControl/OLD_3/invertR_sel.png create mode 100755 plugins/StereoControl/OLD_3/invertR_unsel.png create mode 100755 plugins/StereoControl/OLD_3/logo.png create mode 100755 plugins/StereoControl/OLD_3/monoBass_sel.png create mode 100755 plugins/StereoControl/OLD_3/monoBass_unsel.png create mode 100755 plugins/StereoControl/OLD_3/mono_sel.png create mode 100755 plugins/StereoControl/OLD_3/mono_unsel.png create mode 100755 plugins/StereoControl/OLD_3/mute_sel.png create mode 100755 plugins/StereoControl/OLD_3/mute_unsel.png create mode 100755 plugins/StereoControl/OLD_3/soloL_sel.png create mode 100755 plugins/StereoControl/OLD_3/soloL_unsel.png create mode 100755 plugins/StereoControl/OLD_3/soloR_sel.png create mode 100755 plugins/StereoControl/OLD_3/soloR_unsel.png create mode 100755 plugins/StereoControl/OLD_3/soloStereo_sel.png create mode 100755 plugins/StereoControl/OLD_3/soloStereo_unsel.png create mode 100755 plugins/StereoControl/StereoControl.cpp create mode 100755 plugins/StereoControl/StereoControl.h create mode 100755 plugins/StereoControl/StereoControlControlDialog.cpp create mode 100755 plugins/StereoControl/StereoControlControlDialog.h create mode 100755 plugins/StereoControl/StereoControlControls.cpp create mode 100755 plugins/StereoControl/StereoControlControls.h create mode 100644 plugins/StereoControl/artwork.png create mode 100644 plugins/StereoControl/audition_sel.png create mode 100644 plugins/StereoControl/audition_unsel.png create mode 100644 plugins/StereoControl/basic_sel.png create mode 100644 plugins/StereoControl/basic_unsel.png create mode 100644 plugins/StereoControl/binaural_sel.png create mode 100644 plugins/StereoControl/binaural_unsel.png create mode 100644 plugins/StereoControl/dc_sel.png create mode 100644 plugins/StereoControl/dc_unsel.png create mode 100644 plugins/StereoControl/dual_sel.png create mode 100644 plugins/StereoControl/dual_unsel.png create mode 100644 plugins/StereoControl/invertL_sel.png create mode 100644 plugins/StereoControl/invertL_unsel.png create mode 100644 plugins/StereoControl/invertR_sel.png create mode 100644 plugins/StereoControl/invertR_unsel.png create mode 100755 plugins/StereoControl/logo.png create mode 100644 plugins/StereoControl/mono_sel.png create mode 100644 plugins/StereoControl/mono_unsel.png create mode 100644 plugins/StereoControl/mute_sel.png create mode 100644 plugins/StereoControl/mute_unsel.png diff --git a/cmake/modules/PluginList.cmake b/cmake/modules/PluginList.cmake index a2871bf99ec..81b35295397 100644 --- a/cmake/modules/PluginList.cmake +++ b/cmake/modules/PluginList.cmake @@ -58,6 +58,7 @@ SET(LMMS_PLUGIN_LIST sfxr sid SpectrumAnalyzer + StereoControl stereo_enhancer stereo_matrix stk diff --git a/plugins/StereoControl/CMakeLists.txt b/plugins/StereoControl/CMakeLists.txt new file mode 100755 index 00000000000..3a5d3dafbe4 --- /dev/null +++ b/plugins/StereoControl/CMakeLists.txt @@ -0,0 +1,3 @@ +INCLUDE(BuildPlugin) + +BUILD_PLUGIN(stereocontrol StereoControl.cpp StereoControlControls.cpp StereoControlControlDialog.cpp MOCFILES StereoControlControls.h StereoControlControlDialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/StereoControl/OLD_1/CMakeLists.txt b/plugins/StereoControl/OLD_1/CMakeLists.txt new file mode 100755 index 00000000000..3a5d3dafbe4 --- /dev/null +++ b/plugins/StereoControl/OLD_1/CMakeLists.txt @@ -0,0 +1,3 @@ +INCLUDE(BuildPlugin) + +BUILD_PLUGIN(stereocontrol StereoControl.cpp StereoControlControls.cpp StereoControlControlDialog.cpp MOCFILES StereoControlControls.h StereoControlControlDialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/StereoControl/OLD_1/StereoControl.cpp b/plugins/StereoControl/OLD_1/StereoControl.cpp new file mode 100755 index 00000000000..7c3944b5298 --- /dev/null +++ b/plugins/StereoControl/OLD_1/StereoControl.cpp @@ -0,0 +1,399 @@ +/* + * StereoControl.cpp + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "StereoControl.h" + +#include "embed.h" +#include "plugin_export.h" +#include "lmms_math.h" +#include "interpolation.h" + +extern "C" +{ + +Plugin::Descriptor PLUGIN_EXPORT stereocontrol_plugin_descriptor = +{ + STRINGIFY( PLUGIN_NAME ), + "Stereo Control", + QT_TRANSLATE_NOOP( "pluginBrowser", "A plugin generated by Lost Robot's LMMS Development Package. This is your plugin description. You should change this." ), + "Lost Robot ", + 0x0100, + Plugin::Effect, + new PluginPixmapLoader("logo"), + NULL, + NULL +} ; + +} + + + +StereoControlEffect::StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ) : + Effect( &stereocontrol_plugin_descriptor, parent, key ), + m_stereocontrolControls( this ) +{ + m_sampleRate = Engine::mixer()->processingSampleRate(); + + m_delayBufSize = int(m_sampleRate / 160.f) + 1.f; + m_delayBuf[0].resize(m_delayBufSize); + m_delayBuf[1].resize(m_delayBufSize); + + m_haasBufSize = int(m_sampleRate * 0.002f) + 1.f; + m_haasBuf[0].resize(m_haasBufSize); + m_haasBuf[1].resize(m_haasBufSize); +} + + + + +StereoControlEffect::~StereoControlEffect() +{ +} + + + + +bool StereoControlEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) +{ + if( !isEnabled() || !isRunning () ) + { + return( false ); + } + + double outSum = 0.0; + const float d = dryLevel(); + const float w = wetLevel(); + + const ValueBuffer * volumeBuf = m_stereocontrolControls.m_volumeModel.valueBuffer(); + const ValueBuffer * stereoizerBuf = m_stereocontrolControls.m_stereoizerModel.valueBuffer(); + const ValueBuffer * widthBuf = m_stereocontrolControls.m_widthModel.valueBuffer(); + const ValueBuffer * panModeBuf = m_stereocontrolControls.m_panModeModel.valueBuffer(); + const ValueBuffer * panBuf = m_stereocontrolControls.m_panModel.valueBuffer(); + const ValueBuffer * monoBuf = m_stereocontrolControls.m_monoModel.valueBuffer(); + const ValueBuffer * dcBuf = m_stereocontrolControls.m_dcModel.valueBuffer(); + const ValueBuffer * muteBuf = m_stereocontrolControls.m_muteModel.valueBuffer(); + const ValueBuffer * monoBassBuf = m_stereocontrolControls.m_monoBassModel.valueBuffer(); + const ValueBuffer * auditionBuf = m_stereocontrolControls.m_auditionModel.valueBuffer(); + const ValueBuffer * invertLBuf = m_stereocontrolControls.m_invertLModel.valueBuffer(); + const ValueBuffer * invertRBuf = m_stereocontrolControls.m_invertRModel.valueBuffer(); + const ValueBuffer * soloChannelBuf = m_stereocontrolControls.m_soloChannelModel.valueBuffer(); + const ValueBuffer * monoBassFreqBuf = m_stereocontrolControls.m_monoBassFreqModel.valueBuffer(); + const ValueBuffer * stereoizerLPBuf = m_stereocontrolControls.m_stereoizerLPModel.valueBuffer(); + const ValueBuffer * stereoizerHPBuf = m_stereocontrolControls.m_stereoizerHPModel.valueBuffer(); + const ValueBuffer * panSpectralBuf = m_stereocontrolControls.m_panSpectralModel.valueBuffer(); + + for( fpp_t f = 0; f < frames; ++f ) + { + const float volume = (volumeBuf ? volumeBuf->value( f ) : m_stereocontrolControls.m_volumeModel.value()) * 0.01f; + const float stereoizer = (stereoizerBuf ? stereoizerBuf->value( f ) : m_stereocontrolControls.m_stereoizerModel.value()) * 0.01f; + const float width = (widthBuf ? widthBuf->value( f ) : m_stereocontrolControls.m_widthModel.value()) * 0.01f; + const int panMode = panModeBuf ? panModeBuf->value( f ) : m_stereocontrolControls.m_panModeModel.value(); + const float pan = (panBuf ? panBuf->value( f ) : m_stereocontrolControls.m_panModel.value()) * 0.01f; + const bool mono = monoBuf ? monoBuf->value( f ) : m_stereocontrolControls.m_monoModel.value(); + const bool dc = dcBuf ? dcBuf->value( f ) : m_stereocontrolControls.m_dcModel.value(); + const bool mute = muteBuf ? muteBuf->value( f ) : m_stereocontrolControls.m_muteModel.value(); + const bool monoBass = monoBassBuf ? monoBassBuf->value( f ) : m_stereocontrolControls.m_monoBassModel.value(); + const bool audition = auditionBuf ? auditionBuf->value( f ) : m_stereocontrolControls.m_auditionModel.value(); + const bool invertL = invertLBuf ? invertLBuf->value( f ) : m_stereocontrolControls.m_invertLModel.value(); + const bool invertR = invertRBuf ? invertRBuf->value( f ) : m_stereocontrolControls.m_invertRModel.value(); + const int soloChannel = soloChannelBuf ? soloChannelBuf->value( f ) : m_stereocontrolControls.m_soloChannelModel.value(); + const float monoBassFreq = monoBassFreqBuf ? monoBassFreqBuf->value( f ) : m_stereocontrolControls.m_monoBassFreqModel.value(); + const float stereoizerLP = stereoizerLPBuf ? stereoizerLPBuf->value( f ) : m_stereocontrolControls.m_stereoizerLPModel.value(); + const float stereoizerHP = stereoizerHPBuf ? stereoizerHPBuf->value( f ) : m_stereocontrolControls.m_stereoizerHPModel.value(); + const float panSpectral = panSpectralBuf ? panSpectralBuf->value( f ) : m_stereocontrolControls.m_panSpectralModel.value(); + + sample_t s[2] = { buf[f][0], buf[f][1] }; + + switch (soloChannel) + { + case 0: + { + break; + } + case 1: + { + s[1] = s[0]; + break; + } + case 2: + { + s[0] = s[1]; + break; + } + } + + if (invertL) + { + s[0] *= -1.f; + } + + if (invertR) + { + s[1] *= -1.f; + } + + float allpassFreq = 0; + float delayLength = 0; + allpassFreq = linearInterpolate(370.f, 170.f, stereoizer * 0.5f); + delayLength = allpassFreq; + + delayLength = m_sampleRate / delayLength; + + const float w0 = (F_2PI / m_sampleRate) * allpassFreq; + const float a0 = 1 + (sin(w0) / (0.707f * 2.f)); + m_filtA = (1 - (a0 - 1)) / a0; + m_filtB = (-2*cos(w0)) / a0; + + float delayResult[2] = {0}; + for (int i = 0; i < 2; ++i) + { + // Read next value from delay buffer + float readLoc = m_delayIndex[i] - delayLength; + if (readLoc < 0) {readLoc += m_delayBufSize;} + float readLocFrac = fraction(readLoc); + if (readLoc < m_delayBufSize - 1) + { + delayResult[i] = linearInterpolate(m_delayBuf[i][floor(readLoc)], m_delayBuf[i][ceil(readLoc)], readLocFrac); + } + else// For when the interpolation wraps around to the beginning of the buffer + { + delayResult[i] = linearInterpolate(m_delayBuf[i][m_delayBufSize - 1], m_delayBuf[i][0], readLocFrac); + } + + // Increment delay ring buffer index + ++m_delayIndex[i]; + if (m_delayIndex[i] >= m_delayBufSize) + { + m_delayIndex[i] -= m_delayBufSize; + } + // Send new value to delay line + m_delayBuf[i][m_delayIndex[i]] = s[i]; + } + + for (int i = 0; i < 2; ++i) + { + float allpassValue = (delayResult[0] + delayResult[1]) * 0.5f; + + for (int j = 0; j < 2; ++j) + { + allpassValue = calcAllpassFilter(allpassValue, m_sampleRate, j, i, m_filtA, m_filtB); + } + + allpassValue *= i ? -1.f : 1.f; + + float lp; + float hp; + float hp2; + float g = tan(F_PI * stereoizerHP / m_sampleRate); + g /= (1.f + g); + multimodeFilter(allpassValue, g, lp, hp, m_stereoizerFilter[0][i]); + float g2 = tan(F_PI * stereoizerLP / m_sampleRate); + g2 /= (1.f + g2); + multimodeFilter(hp, g2, lp, hp2, m_stereoizerFilter[1][i]); + + s[i] += lp * qMin(stereoizer, 1.f); + } + + const float sMid = (s[0] + s[1]) * 0.5f; + const float sSide = (s[0] - s[1]) * 0.5f; + + s[0] = sMid + sSide * width; + s[1] = sMid - sSide * width; + + if (mono) + { + s[0] = (s[0] + s[1]) * 0.5f; + s[1] = s[0]; + } + + if (monoBass) + { + float g = tan(F_PI * monoBassFreq / m_sampleRate); + g /= (1.f + g); + + float lp[2]; + float hp[2]; + + for (int i = 0 ; i < 2; ++i) + { + multimodeFilter(s[i], g, lp[i], hp[i], m_monoBassFilter[i]); + } + + float lowmono = (lp[0] + lp[1]) * 0.5f; + + if (audition) + { + s[0] = lowmono; + s[1] = lowmono; + } + else + { + s[0] = lowmono - hp[0];// Subtraction is needed due to filter phase shift + s[1] = lowmono - hp[1]; + } + } + + switch (panMode) + { + case 0:// Gain + { + const float lGain = pan > 0 ? 1.f - pan : 1.f; + const float rGain = pan < 0 ? 1.f + pan : 1.f; + s[0] *= lGain; + s[1] *= rGain; + break; + } + case 1:// Stereo + { + const float temp = s[0]; + const float llGain = pan > 0 ? 1.f - pan : ( pan + 1.f) * 0.5f + 0.5f; + const float rrGain = pan < 0 ? 1.f + pan : (-pan + 1.f) * 0.5f + 0.5f; + const float lrGain = pan < 0 ? -pan * 0.5f : 0.f; + const float rlGain = pan > 0 ? pan * 0.5f : 0.f; + s[0] = s[0] * llGain + s[1] * lrGain; + s[1] = temp * rlGain + s[1] * rrGain; + break; + } + case 2:// Haas + { + float haasResult = 0; + float haasDelayVal[2] = {0}; + + if (pan >= 0) + { + haasDelayVal[0] = linearInterpolate(0, 0.0008f * m_sampleRate, abs(pan)); + } + else + { + haasDelayVal[1] = linearInterpolate(0, 0.0008f * m_sampleRate, abs(pan)); + } + + for (int i = 0; i < 2; ++i) + { + if ((i == 0 && pan >= 0) || (i == 1 && pan < 0)) + { + // Read next value from delay buffer + float readLoc = m_haasIndex[i] - haasDelayVal[i]; + if (readLoc < 0) {readLoc += m_haasBufSize;} + float readLocFrac = fraction(readLoc); + if (readLoc < m_haasBufSize - 1) + { + haasResult = linearInterpolate(m_haasBuf[i][floor(readLoc)], m_haasBuf[i][ceil(readLoc)], readLocFrac); + } + else// For when the interpolation wraps around to the beginning of the buffer + { + haasResult = linearInterpolate(m_haasBuf[i][m_haasBufSize - 1], m_haasBuf[i][0], readLocFrac); + } + } + + // Increment delay ring buffer index + ++m_haasIndex[i]; + if (m_haasIndex[i] >= m_haasBufSize) + { + m_haasIndex[i] -= m_haasBufSize; + } + // Send new value to delay line + m_haasBuf[i][m_haasIndex[i]] = s[i]; + } + + const float minGain = linearInterpolate(1.f, 0.15f, abs(pan)); + if (pan >= 0) + { + const float lGain = ((pan > 0 ? 1.f - pan : 1.f) + minGain) / (1.f + minGain); + s[0] = haasResult * lGain; + } + else + { + const float rGain = ((pan < 0 ? 1.f + pan : 1.f) + minGain) / (1.f + minGain); + s[1] = haasResult * rGain; + } + } + } + + if (dc) + { + for (int i = 0; i < 2; ++i) + { + m_dcInfo[i] = m_dcInfo[i] * 0.999f + s[i] * 0.001f; + s[i] -= m_dcInfo[i]; + } + } + + if (mute) + { + s[0] = 0; + s[1] = 0; + } + + s[0] *= volume; + s[1] *= volume; + + buf[f][0] = d * buf[f][0] + w * s[0]; + buf[f][1] = d * buf[f][1] + w * s[1]; + + outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; + } + + checkGate( outSum / frames ); + + return isRunning(); +} + + +sample_t StereoControlEffect::calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b) +{ + float filterOutput = a * (inSamp - m_filtY[filtNum][channel][1]) + + b * (m_filtX[filtNum][channel][0] - m_filtY[filtNum][channel][0]) + + m_filtX[filtNum][channel][1]; + + m_filtX[filtNum][channel][1] = m_filtX[filtNum][channel][0]; + m_filtX[filtNum][channel][0] = inSamp; + m_filtY[filtNum][channel][1] = m_filtY[filtNum][channel][0]; + m_filtY[filtNum][channel][0] = filterOutput; + + return filterOutput; +} + + +void StereoControlEffect::multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf) +{ + lp = in * g + filtBuf; + hp = in - lp; + filtBuf = hp * g * 2.f + filtBuf; +} + + + + +extern "C" +{ + +// necessary for getting instance out of shared lib +PLUGIN_EXPORT Plugin * lmms_plugin_main( Model* parent, void* data ) +{ + return new StereoControlEffect( parent, static_cast( data ) ); +} + +} + diff --git a/plugins/StereoControl/OLD_1/StereoControl.h b/plugins/StereoControl/OLD_1/StereoControl.h new file mode 100755 index 00000000000..a70bc29dbfb --- /dev/null +++ b/plugins/StereoControl/OLD_1/StereoControl.h @@ -0,0 +1,75 @@ +/* + * StereoControl.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef STEREOCONTROL_H +#define STEREOCONTROL_H + +#include "Effect.h" +#include "StereoControlControls.h" +#include "ValueBuffer.h" + +class StereoControlEffect : public Effect +{ +public: + StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); + virtual ~StereoControlEffect(); + virtual bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ); + + virtual EffectControls* controls() + { + return &m_stereocontrolControls; + } + + +private: + sample_t calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b); + void multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf); + + StereoControlControls m_stereocontrolControls; + + float m_filtX[2][2][2] = {{{0}}};// [filter number][channel][samples back in time] + float m_filtY[2][2][2] = {{{0}}}; + float m_filtA = 0; + float m_filtB = 0; + std::vector m_delayBuf[2]; + int m_delayBufSize = 0; + int m_delayIndex[2] = {0}; + + std::vector m_haasBuf[2]; + int m_haasBufSize = 0; + int m_haasIndex[2] = {0}; + + float m_sampleRate = 0; + + float m_dcInfo[2] = {0}; + + float m_monoBassFilter[2] = {0}; + float m_stereoizerFilter[2][2] = {0}; + + friend class StereoControlControls; + +} ; + +#endif diff --git a/plugins/StereoControl/OLD_1/StereoControlControlDialog.cpp b/plugins/StereoControl/OLD_1/StereoControlControlDialog.cpp new file mode 100755 index 00000000000..a5da6b7193f --- /dev/null +++ b/plugins/StereoControl/OLD_1/StereoControlControlDialog.cpp @@ -0,0 +1,197 @@ +/* + * StereoControlControlDialog.cpp + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include + +#include "StereoControlControlDialog.h" +#include "StereoControlControls.h" +#include "embed.h" +#include "ToolTip.h" +#include "Knob.h" +#include "PixmapButton.h" + + + +StereoControlControlDialog::StereoControlControlDialog( StereoControlControls* controls ) : + EffectControlDialog( controls ) +{ + setAutoFillBackground( true ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); + setFixedSize( 400, 350 ); + + Knob * volumeKnob = new Knob( knobBright_26, this); + volumeKnob -> move( 40, 40 ); + volumeKnob -> setVolumeKnob( true ); + volumeKnob->setModel( &controls->m_volumeModel ); + volumeKnob->setLabel( tr( "VOL" ) ); + volumeKnob->setHintText( tr( "Volume:" ) , "%" ); + + Knob * stereoizerKnob = new Knob( knobBright_26, this); + stereoizerKnob -> move( 80, 40 ); + stereoizerKnob->setModel( &controls->m_stereoizerModel ); + stereoizerKnob->setLabel( tr( "STEREOIZE" ) ); + stereoizerKnob->setHintText( tr( "Stereoize:" ) , "%" ); + + Knob * widthKnob = new Knob( knobBright_26, this); + widthKnob -> move( 160, 40 ); + widthKnob->setModel( &controls->m_widthModel ); + widthKnob->setLabel( tr( "WIDTH" ) ); + widthKnob->setHintText( tr( "Width:" ) , "%" ); + + Knob * monoBassFreqKnob = new Knob( knobBright_26, this); + monoBassFreqKnob -> move( 160, 80 ); + monoBassFreqKnob->setModel( &controls->m_monoBassFreqModel ); + monoBassFreqKnob->setLabel( tr( "MONO BASS FREQ" ) ); + monoBassFreqKnob->setHintText( tr( "Mono Bass Frequency:" ) , " Hz" ); + + Knob * stereoizerLPKnob = new Knob( knobBright_26, this); + stereoizerLPKnob -> move( 0, 110 ); + stereoizerLPKnob->setModel( &controls->m_stereoizerLPModel ); + stereoizerLPKnob->setLabel( tr( "Stereoizer Lowpass" ) ); + stereoizerLPKnob->setHintText( tr( "Stereoizer Lowpass:" ) , " Hz" ); + + Knob * stereoizerHPKnob = new Knob( knobBright_26, this); + stereoizerHPKnob -> move( 0, 140 ); + stereoizerHPKnob->setModel( &controls->m_stereoizerHPModel ); + stereoizerHPKnob->setLabel( tr( "Stereoizer Highpass" ) ); + stereoizerHPKnob->setHintText( tr( "Stereoizer Highpass:" ) , " Hz" ); + + Knob * panSpectralKnob = new Knob( knobBright_26, this); + panSpectralKnob -> move( 0, 170 ); + panSpectralKnob->setModel( &controls->m_panSpectralModel ); + panSpectralKnob->setLabel( tr( "Spectral" ) ); + panSpectralKnob->setHintText( tr( "Spectral Panning:" ) , "%" ); + + Knob * panKnob = new Knob( knobBright_26, this); + panKnob -> move( 200, 40 ); + panKnob->setModel( &controls->m_panModel ); + panKnob->setLabel( tr( "PAN" ) ); + panKnob->setHintText( tr( "Pan:" ) , "%" ); + + PixmapButton * gainButton = new PixmapButton(this, tr("Gain Panning")); + gainButton->move(300, 40); + gainButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("gain_sel")); + gainButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("gain_unsel")); + ToolTip::add(gainButton, tr("Change gain of each channel")); + + PixmapButton * stereoButton = new PixmapButton(this, tr("Stereo Panning")); + stereoButton->move(300, 57); + stereoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("stereo_sel")); + stereoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("stereo_unsel")); + ToolTip::add(stereoButton, tr("Pan one channel into the other")); + + PixmapButton * haasButton = new PixmapButton(this, tr("Haas Panning")); + haasButton->move(300, 74); + haasButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("haas_sel")); + haasButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("haas_unsel")); + ToolTip::add(haasButton, tr("Stereo panning with single-channel fractional delay")); + + automatableButtonGroup * panModeGroup = new automatableButtonGroup(this); + panModeGroup->addButton(gainButton); + panModeGroup->addButton(stereoButton); + panModeGroup->addButton(haasButton); + panModeGroup->setModel(&controls->m_panModeModel); + + PixmapButton * monoButton = new PixmapButton(this, tr("Mono")); + monoButton->move(300, 100); + monoButton->setModel(&controls->m_monoModel); + monoButton->setCheckable(true); + monoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mono_sel")); + monoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mono_unsel")); + ToolTip::add(monoButton, tr("Converts input to mono")); + + PixmapButton * dcButton = new PixmapButton(this, tr("DC Offset Removal")); + dcButton->move(100, 150); + dcButton->setModel(&controls->m_dcModel); + dcButton->setCheckable(true); + dcButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dc_sel")); + dcButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dc_unsel")); + ToolTip::add(dcButton, tr("Removes DC offset from the signal")); + + PixmapButton * muteButton = new PixmapButton(this, tr("Mute")); + muteButton->move(200, 100); + muteButton->setModel(&controls->m_muteModel); + muteButton->setCheckable(true); + muteButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mute_sel")); + muteButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mute_unsel")); + ToolTip::add(muteButton, tr("Mute audio")); + + PixmapButton * monoBassButton = new PixmapButton(this, tr("Mono Bass")); + monoBassButton->move(100, 250); + monoBassButton->setModel(&controls->m_monoBassModel); + monoBassButton->setCheckable(true); + monoBassButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("monoBass_sel")); + monoBassButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("monoBass_unsel")); + ToolTip::add(monoBassButton, tr("Mono Bass")); + + PixmapButton * auditionButton = new PixmapButton(this, tr("Bass Mono Audition")); + auditionButton->move(100, 300); + auditionButton->setModel(&controls->m_auditionModel); + auditionButton->setCheckable(true); + auditionButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("audition_sel")); + auditionButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("audition_unsel")); + ToolTip::add(auditionButton, tr("Bass Mono Audition")); + + PixmapButton * invertLButton = new PixmapButton(this, tr("Invert Left Channel")); + invertLButton->move(200, 150); + invertLButton->setModel(&controls->m_invertLModel); + invertLButton->setCheckable(true); + invertLButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_sel")); + invertLButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_unsel")); + ToolTip::add(invertLButton, tr("Invert Left Channel")); + + PixmapButton * invertRButton = new PixmapButton(this, tr("Invert Right Channel")); + invertRButton->move(200, 167); + invertRButton->setModel(&controls->m_invertRModel); + invertRButton->setCheckable(true); + invertRButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_sel")); + invertRButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_unsel")); + ToolTip::add(invertRButton, tr("Invert Right Channel")); + + PixmapButton * soloStereoButton = new PixmapButton(this, tr("Use both channels")); + soloStereoButton->move(200, 200); + soloStereoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloStereo_sel")); + soloStereoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloStereo_unsel")); + ToolTip::add(soloStereoButton, tr("Use both channels")); + + PixmapButton * soloLButton = new PixmapButton(this, tr("Solo left channel")); + soloLButton->move(200, 217); + soloLButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloL_sel")); + soloLButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloL_unsel")); + ToolTip::add(soloLButton, tr("Solo left channel")); + + PixmapButton * soloRButton = new PixmapButton(this, tr("Solo right channel")); + soloRButton->move(200, 234); + soloRButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloR_sel")); + soloRButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloR_unsel")); + ToolTip::add(soloRButton, tr("Solo right channel")); + + automatableButtonGroup * soloChannelGroup = new automatableButtonGroup(this); + soloChannelGroup->addButton(soloStereoButton); + soloChannelGroup->addButton(soloLButton); + soloChannelGroup->addButton(soloRButton); + soloChannelGroup->setModel(&controls->m_soloChannelModel); +} diff --git a/plugins/StereoControl/OLD_1/StereoControlControlDialog.h b/plugins/StereoControl/OLD_1/StereoControlControlDialog.h new file mode 100755 index 00000000000..5b7681a7ef3 --- /dev/null +++ b/plugins/StereoControl/OLD_1/StereoControlControlDialog.h @@ -0,0 +1,45 @@ +/* + * StereoControlControlDialog.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef STEREOCONTROL_CONTROL_DIALOG_H +#define STEREOCONTROL_CONTROL_DIALOG_H + +#include "EffectControlDialog.h" + + +class StereoControlControls; + + +class StereoControlControlDialog : public EffectControlDialog +{ + Q_OBJECT +public: + StereoControlControlDialog( StereoControlControls* controls ); + virtual ~StereoControlControlDialog() + { + } + +} ; + +#endif diff --git a/plugins/StereoControl/OLD_1/StereoControlControls.cpp b/plugins/StereoControl/OLD_1/StereoControlControls.cpp new file mode 100755 index 00000000000..cee5280f179 --- /dev/null +++ b/plugins/StereoControl/OLD_1/StereoControlControls.cpp @@ -0,0 +1,102 @@ +/* + * StereoControlControls.cpp + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include + +#include "StereoControlControls.h" +#include "StereoControl.h" +#include "Engine.h" +#include "Song.h" + + +StereoControlControls::StereoControlControls( StereoControlEffect* effect ) : + EffectControls( effect ), + m_effect( effect ), + m_volumeModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Volume" ) ), + m_stereoizerModel( 0.0f, 0.0f, 200.0f, 0.01f, this, tr( "Stereoize" ) ), + m_widthModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Width" ) ), + m_panModel( 0.0f, -100.0f, 100.0f, 0.01f, this, tr( "Pan" ) ), + m_monoBassFreqModel( 120.0f, 0.0f, 500.0f, 0.01f, this, tr( "Mono Bass Frequency" ) ), + m_stereoizerLPModel( 20000.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Lowpass" ) ), + m_stereoizerHPModel( 0.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Highpass" ) ), + m_panSpectralModel( 0.0f, 0.0f, 100.0f, 0.01f, this, tr( "Spectral Panning" ) ), + m_panModeModel(0, 0, 2, this, tr("Panning Mode")), + m_soloChannelModel(0, 0, 2, this, tr("Solo Channel")), + m_monoModel(false, this, tr("Mono")), + m_dcModel(false, this, tr("DC Offset Removal")), + m_muteModel(false, this, tr("Mute")), + m_monoBassModel(false, this, tr("Mono Bass")), + m_auditionModel(false, this, tr("Mono Bass Audition")), + m_invertLModel(false, this, tr("Invert Left Channel")), + m_invertRModel(false, this, tr("Invert Right Channel")) +{ +} + + +void StereoControlControls::saveSettings( QDomDocument& doc, QDomElement& _this ) +{ + m_volumeModel.saveSettings( doc, _this, "volume" ); + m_stereoizerModel.saveSettings( doc, _this, "stereoizer" ); + m_widthModel.saveSettings( doc, _this, "width" ); + m_panModel.saveSettings( doc, _this, "pan" ); + m_panModeModel.saveSettings( doc, _this, "panMode" ); + m_monoModel.saveSettings( doc, _this, "mono" ); + m_dcModel.saveSettings( doc, _this, "dc" ); + m_muteModel.saveSettings( doc, _this, "mute" ); + m_monoBassModel.saveSettings( doc, _this, "monoBass" ); + m_auditionModel.saveSettings( doc, _this, "audition" ); + m_invertLModel.saveSettings( doc, _this, "invertL" ); + m_invertRModel.saveSettings( doc, _this, "invertR" ); + m_soloChannelModel.saveSettings( doc, _this, "soloChannel" ); + m_monoBassFreqModel.saveSettings( doc, _this, "monoBassFreq" ); + m_stereoizerLPModel.saveSettings( doc, _this, "stereoizerLP" ); + m_stereoizerHPModel.saveSettings( doc, _this, "stereoizerHP" ); + m_panSpectralModel.saveSettings( doc, _this, "panSpectral" ); +} + + + +void StereoControlControls::loadSettings( const QDomElement& _this ) +{ + m_volumeModel.loadSettings( _this, "volume" ); + m_stereoizerModel.loadSettings( _this, "stereoizer" ); + m_widthModel.loadSettings( _this, "width" ); + m_panModel.loadSettings( _this, "pan" ); + m_panModeModel.loadSettings( _this, "panMode" ); + m_monoModel.loadSettings( _this, "mono" ); + m_dcModel.loadSettings( _this, "dc" ); + m_muteModel.loadSettings( _this, "mute" ); + m_monoBassModel.loadSettings( _this, "monoBass" ); + m_auditionModel.loadSettings( _this, "audition" ); + m_invertLModel.loadSettings( _this, "invertL" ); + m_invertRModel.loadSettings( _this, "invertR" ); + m_soloChannelModel.loadSettings( _this, "soloChannel" ); + m_monoBassFreqModel.loadSettings( _this, "monoBassFreq" ); + m_stereoizerLPModel.loadSettings( _this, "stereoizerLP" ); + m_stereoizerHPModel.loadSettings( _this, "stereoizerHP" ); + m_panSpectralModel.loadSettings( _this, "panSpectral" ); +} + + diff --git a/plugins/StereoControl/OLD_1/StereoControlControls.h b/plugins/StereoControl/OLD_1/StereoControlControls.h new file mode 100755 index 00000000000..6807bbe60df --- /dev/null +++ b/plugins/StereoControl/OLD_1/StereoControlControls.h @@ -0,0 +1,89 @@ +/* + * StereoControlControls.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef STEREOCONTROL_CONTROLS_H +#define STEREOCONTROL_CONTROLS_H + +#include "EffectControls.h" +#include "StereoControlControlDialog.h" + + +class StereoControlEffect; + + +class StereoControlControls : public EffectControls +{ + Q_OBJECT +public: + StereoControlControls( StereoControlEffect* effect ); + virtual ~StereoControlControls() + { + } + + virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent ); + virtual void loadSettings( const QDomElement & _this ); + inline virtual QString nodeName() const + { + return "StereoControlControls"; + } + + virtual int controlCount() + { + return 4; + } + + virtual EffectControlDialog* createView() + { + return new StereoControlControlDialog( this ); + } + +private: + StereoControlEffect* m_effect; + + FloatModel m_volumeModel; + FloatModel m_stereoizerModel; + FloatModel m_widthModel; + FloatModel m_panModel; + FloatModel m_monoBassFreqModel; + FloatModel m_stereoizerLPModel; + FloatModel m_stereoizerHPModel; + FloatModel m_panSpectralModel; + + IntModel m_panModeModel; + IntModel m_soloChannelModel; + + BoolModel m_monoModel; + BoolModel m_dcModel; + BoolModel m_muteModel; + BoolModel m_monoBassModel; + BoolModel m_auditionModel; + BoolModel m_invertLModel; + BoolModel m_invertRModel; + + friend class StereoControlControlDialog; + friend class StereoControlEffect; + +} ; + +#endif diff --git a/plugins/StereoControl/OLD_1/artwork.png b/plugins/StereoControl/OLD_1/artwork.png new file mode 100755 index 0000000000000000000000000000000000000000..5598b32db47134819b686a2f2e282c297fe78c06 GIT binary patch literal 7739 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 Bz%u{< literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/audition_sel.png b/plugins/StereoControl/OLD_1/audition_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..79699a84c00b5c31015d634ef76186bc8c26f11d GIT binary patch literal 2489 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 DL_eDy literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/audition_unsel.png b/plugins/StereoControl/OLD_1/audition_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..108cd60dc15841b41b15ffe895fb16770cd80621 GIT binary patch literal 2615 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 ZichQAohc-f*2n+=002ovPDHLkV1iuL%6|X= literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/dc_sel.png b/plugins/StereoControl/OLD_1/dc_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..984dc8a44f103cd7076a54f567abc5bfdd031cd2 GIT binary patch literal 3018 zcmV;*3pMnKP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3#vlH@E7g#UAjJ%T|9!EyLf#NJ?!zYi`~PxnmE z%)1d=jw;(2gHWbYqQd^qzdihmPZCWbtJTs-FjPZ@lvTdw+C2&*Ini z5YzJ@(IlMZbz95RzG%OY{eyy(O0z~DtwD{q|`-+Z?ljVM`a2Q|Z+U}!qR6=Kh_JVAKW5yO!0B4Um zuGpi;eV=EXn3&T}#yO>#FG6$ruqEE}wtK!AD>JW1 z*Ay8H27P~o-#z$Wk9#2Z!@?MkGw)!$0ZxaKm~oIhzw`o-=#NkJCe8c!LC8Zq?*p$ykqh1n>4+eQA~hP!qdQ}Ne8T)75-SRaHy+jR@D;Jv})5{q-3J3 z6e~x1yNP9DtC(4}X1z+yRconMYi+f+)C6VLR+_ciT4=p9X=mup+npZ0k2GZDp`#2N zb+pkZ^qG0;EYoJ4ZT6LxEOcj;Wvi|hR^M?$rA?S`0({rqc6Yeu;@Q;^1+U(`f1viD z`t=Au>C2x{iw|n)M(XslAE?o6_8uZ0Injd|h@~7s+ztXq5)WoqjX9@-+`;T>iJ(BP z(1~!sS@9s20A$Cc9zU@Af!tql3tIj$Zs||Rg#+FH1G#XZ1G!&u`v$eu?}R5eKqm^1 zPcI?*{0dUHus9}g-7C8%HD-K#5(19?2xV}xVzQGlUm;b;p+gTijq3k1PDQr!HqwnFM1 z>FC>4=P3b-rCj$WFGS)WK>g9r(mdQiKFYv zbKq>&vhXm`5J%3VmeHv6W>33yJvzeDM@?OW!5|ckLKDWzIvo$ER%x1)n3^yiI(3#0 zc)ew5Dg$pU^q>+WgcbJHa9srVXJdEyH0}C`vZkC`DPw#u20w zBM2n^u91^~BMG5|y~m8hP-6B^6Oo5h+~C<0A7i4BnRkiA1hG=X`|c@)0RORpe-VvfVTD7F%DOKynhc%ixy6VE=dOR8r#6*1|1{&YpsR9V9}VXB$T- zrz69;u%#$hK5Bh=IcfCb9q5eIcDd(BZJs{@h-gHfqC;sY{p>+Vajj8tKwC0r*Hqg$ zQBa1DOO>oex(&ykm|PRA#Vrw*LQUJ~5V1iKw^O-;g5dF;jXf53wfBi{Nb$ZWhEcJB zQzR;!JhLW6AJq~9y$AcMP9fe=H0mNc_lk#p5^51(yY$88OqTIpPShSZHCTg;~+mh$o4os-{!EknvdMyv127RaoPm z{DtA1zP!YBnnOrn0gI3zLO}%^D8WXIR-F_JDcXRA0s5Z|*_2%=NK?q?f%h}|rYz8N3v{k}y*2i6`T(Su3>Fv=KJdq50000SbVXQnLvL+uWo~o;P;Yl-a%E&7VtF7(PE{{V zX>N6RKo=~a0003YNklk0NTE});b6RDW&E;d1AgyU8)SS2J^)f z+n_Ho7wG`}xbVE}3%*n##<!XHiP1-ndp@jBYhj7Jn{pp3_AtF(zOA z?8NCJ_8)*5_*9W+Yko`pnOvVTLuVegPEddkfLGxCWcRV|yWW78Upkb)8}!MuJOBUy M07*qoM6N<$g2;c&CjbBd literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/dc_unsel.png b/plugins/StereoControl/OLD_1/dc_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..af634c507da9c8cad62080a75fdd9a8d55866861 GIT binary patch literal 2870 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 U^^vFf$N&HU07*qoM6N<$f`1fiod5s; literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/gain_sel.png b/plugins/StereoControl/OLD_1/gain_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..ab8284968137d7731cc00647a384299d9392ae5b GIT binary patch literal 4033 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 literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/gain_unsel.png b/plugins/StereoControl/OLD_1/gain_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..b6e05b26f78e8564e58e4cfcb51fbb26061fc011 GIT binary patch literal 3761 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 bZb$eA5`jx3tVKlL00000NkvXXu0mjf$Ke81 literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/haas_sel.png b/plugins/StereoControl/OLD_1/haas_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..94384f997d7c100bedf12033702c3bcab66bf785 GIT binary patch literal 4129 zcmV++5Z>>JP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3&sa^yM=g#Ysta|G@nkHZCwm>bOT=L1XSw%vZ) z#JJieStW4+5}Ao=r~mo)asT2c#pYcu(rT~O^OJk-ad6W7>u22e;PZXIKV?6kg|F9L zh|dR+ONnE8{n_esUAfLZp*+{uGtS_8`83dY1`6}*2V*?rw`YRq`g@`jUK99dg>F6r zrTEO8Uw=On``Vj)-onnGR_dQH@aycY_9Ik6n=(;cl`2m>TiBOO)TTRqWJZL zeEj?pfcES6oZZgR*X~BHq^Q2O7Cu6F&$y96a=MRIUcztTT<)v$YLw0*+Z(V=UMutv z9eF+>haE;ZLGN*e#S(MWC>G2Lq|N$hbYOMJFhI8jnhJGB&DTHqydIex4q+LuCk1zK}AN^PIS^aLliPg6wAiLd4vK#e_r#d=06D8ob0PArQw# zf(9#(DaT0$0<&#SmMxxp_vyy*HNlx(s8Ih(f6fx#?+;tegw@k=(%0D5>O9 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 literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/haas_unsel.png b/plugins/StereoControl/OLD_1/haas_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..c47717468d0614609ecb63499460c9fc45f587cb GIT binary patch literal 3400 zcmV-O4Y%@%P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3#ta%(FNh5s{(9s(f5V>mpkdImlG{)FwsImtcu z-0F_Yd)sV`gx1oMh}-}9_i_K?FII^zX{ov8?DL``uK5_$Gh{+Tt#eNkiuuZSMMa=KoeY?C|G*#>AXN7s$XLC zy8rU$ULXE=d-Xdd?34S66B2%=L`lyX@(Ysrd85v+6nfvAdo!5aq|#!bb@2CngRsl>4*HtMFDnm-}kGDycI;dqK9rYlar01LqS` zSfPg#_Px(AaWTam3-=gjlsi_X#1^L*@X21`#3D_WSklUbFT!yA@FiTk?b@56VtECo z#=v3$KK=M|fA!#>zV1Tj7z;zNVBTcB0LM$!VBf{A%mR>bo-x%+n%C=-kZ-^W29J5K>$w0S!nWc}5D@S=h=v?|iLr!094i2IJdcv%0D%DQ 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 literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/invertR_sel.png b/plugins/StereoControl/OLD_1/invertR_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..f4e540d7ec10c3cd0e1bcb6c771abe5446feda5d GIT binary patch literal 2274 zcmV<82p#u{P)_8o000H+dQ@0+Qek%> zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1b@cI+w+{Ld<82}VK)mcy6MnH{|4PYK(d?xb&$ zd*<0`gJq0Fl~g!k{qtW7|G_~qQb?jD*PIU=sisN|opPK<+t+xceccCLk8uBD5Al9N zFfm#_Z%e-H3wDf&a@ofO!g_43Ns zl<;17mlO4PpAwp`5&VhCd`FbOKG^fid+Im8PmZELR{o2i7=cwzhV>!iFRQsJ8ACoBO#xNWiTik=7M<}NZeC&i66Pen`g#2 zL7UErqRwjqKm^}{U?PKoBS)5)&x7r2RyYlmat~feN{AyrXfC zC85&{#RL(;83kIvPy<;h3Gzo%K@K%xNg|Sis1&KvGUtRU%UQEaZ&TKU+RCb0v}!9{ zQjwC2mQreIl`2D-rRJ)&)Ea7QaN00+!`lrbTIUU|Op^QCXCaWWtW-TyCVw)N2)>Hti?GFeu0lKU1NmrVVbTuwB ziXkat!mKZ@f(NrYOq1)Lq@p6a@KPjX2ZPOh_Q|7nj@Fj3cI1TgHch)#T0?uRNXXpb zEe=~t$!IFH+U10=l^0_@P+L@;vb?4q+|G z_``1ksNbD$TIy3!eG_nE*E|=M>DaZI?q!DW*8Mlj4sX|u)SQ2rnqj7MweFW0ocF$Z zA9EoiXI}8RY~|h~s;h_$gbSlZ8bZqD8XwBoubK(4_BQ zJlE=rUQp1L==6?~(FXO*GK0xn&@L0_Lj0N9hV$??K))Ojc8YEAipP#%~uMj`| zHU00>p|oa_=_4Hi{q!0?3iqRvu^p&~3CIlvp11^I7!dI6UiH}T91b}J1KORrs!mmB zr$bpLS)U+PGtYvC8bk>?V?mKsH9rry9hWm9J((*0TYxiEjR4ANb9hp%v!=uMMxO=E% z3e+I1gs<3oTDr&WpS?Hnukiwd0Li`psrw~yIx5nBSJvV63H^3TDo|Rf@2_Zy@(2c_ z1>Z--oRbcmP+KztavSyJ#H(O)0-)I`d3t^(2c(?m&k2cf{;wb|spJzcjyF7?+r87) z?nwH^^gD*$weN%t43gmM2Zde16Yy|?e&~fa#!OyGTP^$pqtD+M!>@-z3Mc-*2>%1} z+aCCJW<{s~00Dz(LqkwWLqi~Na&Km7Y-Iodc$|HaJxIeq9K~PLN<}IT78G&FP@OD@ zia2T&iclfc3avVrT>1q~8j=(jN5Qq=;KyRs!Nplu2UkH5`~Y!sbW(JY691PJTEuv8 z+>dwn9(V5mp;2L)6&eRL-8R$7gqY2(is4s;5y1e02+7Pc<|HWv-|=;i0AKIoJj?&w zpQBgJTMP(@#IwvWZQ>2$=}p_Ty$CBnNc&7o+pkH zi^UFBI+&GAjd+SUrfNFn3t5j<&Rd+dN{zMd$zK@B>nqD#r#Xxy7O?~gA{5k6Mg=zF zwCbc-NYj48$3NuyC2}d`Dua<@0aa*_T|f9A{O;B&Oip-7kp$57;y528KzJ8u)*a{j z*m0UCK=2v3(%b%O1DN?Fz24ShM?l{;aBw3Vu2MI^!67hOr0jK{cXxO8_V1Zie?R2ka&E7xf-(RA00v@9M??Vs z0RI60puMM)00009a7bBm000XU000XU0RWnu7ytkO2XskIMF->u3>O3@7XM|C0000S zbVXQnLvL+uWo~o;P;Yl-a%E&7VtF7(PE{{VX>N6RKo=~a0002NNkl&G)~0_S&XNcgKSoHE9tL3&|cJkolM$04fgw!0vde2CxMHF#VvJl>=aa zz|BAAqhVukc5aPiV; w>ZT}w0=Uxs9)yT;o8UGTg*XGaJZxCKZYDl}p*|G9Hvj+t07*qoM6N<$g45?W?EnA( literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/invertR_unsel.png b/plugins/StereoControl/OLD_1/invertR_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..01e44af8195556f6648739b649213cc69a75ccb2 GIT binary patch literal 2019 zcmV<92ORi`P)_8o000EkdQ@0+Qek%> zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1YwlIti8{bv=k1SBCI%Mq`t*}*J-4%klOPHx}Z zQxjsqNa%GWup9sUJ>6gUQ4Zb(O*xhrJ$|8t!iGuq$Io_8KJ0$~_$1-|w(jVnFqQ

jUfHAwAdIDaWv`FM{k8MD+Bd5YXq%c%@hK3l9gjjBc=?K%M@OpRG0=AXV6|2HL zgv9Uu*vxV~h9{vX@W8n}_Y%+tCwxEw=-4M{I(?cK2#D$}M%Vb|=dQ^gyO-ZnV$IyA zoGAWtN~Cad$QLBzWl?-5Z29^b`i<|4;$)Xad?!@z^%j8qeCF(V&T)8WAp)X!xJHi< z?im;%C&=Cw(GniTJndG{GD@cb?T%!tXpIW71J08IbuyYX_SmSw#K40SM&`z{*Rmuo z+++bCR-?&Digd}sP8#w>u*?rzXzMLoU!x4ooxsWjVaTA*&Hak-)3yc8xw4RG1+yHn zf?d2*l~!uV>cIs-Xr3|EoitZ_CgcmS0t9u3IYX}bdWfh>&)kxYvw%-AhC>jgehNT{ zpj%-K2@vp+L@AO_%!vqb%mBz>IZNOQ1PE#0VI-s01jWFamu~Dyw0T+iSjLG7AXFj> zGy@?6SRp9#Cxwh0G8GM~8l5K1TGXP%fGUeI#dY*rk`z!|F{PAKNtPvttU2bCb1vBm z7s1J_C6-ijDXy47sX?@1w}Hc~a+MmY)>u=`wNz_JpB9?7*iy@_H0#`@dHB zapUiha|^ov139;#19I=UeL$_-zVKuNw5o8$)C;O_7B@#WuCOQ;+#sWq;!gqI;;88d ziF5VZ23$69gTK)m(S1w(0nz>Ut#_h(r{bj^13r6jz=G3koe4qLwfsIJj-xwLNra0b zFIlrLu{~a_MpNH&4azVjFhOxxOztsz zOl0)2&A9COvUk&A?6S;alUk4>%e4vrQ?GN~FtW*zFqZ@_4@U~#cC^-~*Qe1v7m$k8 z$VRei-b%pH*$Ks@xE>XvHq-kAaUC$v(TcEbL+^WE6>bwl&+YUm+xqmpnd*LN>lahK zox@VMk-uwm_dUzbJq62Q3Jh4qv*LM#^DLib<7MAY$UjK9k0Z6&AsinV=!21~hpWiq z!`}6oc^^}6u*J{*m|!2a&6;5n!LU;C<KD^13b1qiDYm^JSTG$Y=V< zi?3n`G&sc^&V~N;H|(>b;AWzZEpeS1*9?O7I7EX>4Tx0C=2zkv&MmKpe$i(@I4u4i*$~$WWauh>AFB6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfa&%I3krMxx6k5c1aNLh~_a1le0HIM~niU!cG~G7S z$%L5At%~7Sgb~32f(XgXGUg;H1>f;?j{slq;yla$+@GUY&07ozh{UtZFm2)u;^|G> z;Ji;9WhGf9J|`YC>4L)|5Tqat9cEGGtSBr65hAPypV~=$mpt|1Hq7=JnRv$LRx*p{`Olz`-Ff zTBPiCpLch6_V(|YR)0U_-*RrRs)8~A000JJOGiWi{{a60|De66lK=n!32;bRa{vGf z6951U69E94oEQKA00(qQO+^Rf2MiYkDj!KHy8r+H9CSrkbVF}#ZDnqB08nptWpZU? zAYyqSM^05QOlfX)ct95{pa1{>*-1n}R7l6gmB9|eAPk0ohSR%=7u}RaO!WO9M&qU~ z+dHTSwO*#OOe3RPXu<(f=*M450na7?&|f;1l7s^2foaiw`VC}n(OV2H(=*n9QS>dA+_4X zk^Dyr>@2PVmkh~SW%%-ol}4Foov0DG7D1$Rtpr&Bt`;f%R=^d+DFwAYK-Bn@+N4DQ zplO^y2;rw2N*UsMIU^j7{Pg4TWJXekWce05A5V_ThW(P@j!6Ij002ovPDHLkV1hOu Bz`Fnd literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/logo.png b/plugins/StereoControl/OLD_1/logo.png new file mode 100755 index 0000000000000000000000000000000000000000..9340da708dd79ed97111eb535f51b81a91d6a15b GIT binary patch literal 774 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 LNkvXXu0mjf(VzwV literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/monoBass_unsel.png b/plugins/StereoControl/OLD_1/monoBass_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..b5e6462f66b14761a4f053130f47674d168a4a70 GIT binary patch literal 5529 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 b$ypme9CKl&Jb1X~00000NkvXXu0mjfZjnjR literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/mono_sel.png b/plugins/StereoControl/OLD_1/mono_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..e50bd3f0acfcbcdc9eb8cc7656232850457cf0b8 GIT binary patch literal 3743 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 JPDHLkV1oP;8CC!Q literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/mono_unsel.png b/plugins/StereoControl/OLD_1/mono_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..796f1786a29dfd88f3eaceb5c0d6584c71c06643 GIT binary patch literal 3933 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 ZyaP8x3Bb1#C?5a-002ovPDHLkV1iI5H2nYo literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/soloL_sel.png b/plugins/StereoControl/OLD_1/soloL_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..8c48c959b972d9da8ddd8f56337bac1e9f06d44e GIT binary patch literal 3369 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 Hu0mjfa-Pg< literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/soloR_sel.png b/plugins/StereoControl/OLD_1/soloR_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..299078f717b8d81bc0bda96973b5d48da9a158c7 GIT binary patch literal 4530 zcmV;j5l!xiP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3&sk{mg%g#Ysta|CW6$m4*U*}K6Ue?CM;sY_~2 zzizXsR8>aC!UYbvJ5u5N`~PnE7e7Tx4pp?b(OTrEjyke&(BtRFp1 =kN0)`@NQa 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 Q;{X5v07*qoM6N<$f(eSBzyJUM literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/soloR_unsel.png b/plugins/StereoControl/OLD_1/soloR_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..dd799831a10c49cb2c8335cb838adbfa758c3f90 GIT binary patch literal 4154 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 Ef~!8o1ONa4 literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/soloStereo_sel.png b/plugins/StereoControl/OLD_1/soloStereo_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..d3974efa02884a4fbbd563188fc20a7694b3c4c7 GIT binary patch literal 4423 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 N002ovPDHLkV1ga7P-_4H literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/soloStereo_unsel.png b/plugins/StereoControl/OLD_1/soloStereo_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..23cdd827544b895783274c03333b2340e74551dd GIT binary patch literal 4570 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 Ef|!w)qyPW_ literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_1/stereo_sel.png b/plugins/StereoControl/OLD_1/stereo_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..d1292d89bf41385e21265bff027cc243f07f1313 GIT binary patch literal 3811 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 ek}AgW=@{=ct=3f%8vT_30000 + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "StereoControl.h" + +#include "embed.h" +#include "plugin_export.h" +#include "lmms_math.h" +#include "interpolation.h" + +extern "C" +{ + +Plugin::Descriptor PLUGIN_EXPORT stereocontrol_plugin_descriptor = +{ + STRINGIFY( PLUGIN_NAME ), + "Stereo Control", + QT_TRANSLATE_NOOP( "pluginBrowser", "A plugin generated by Lost Robot's LMMS Development Package. This is your plugin description. You should change this." ), + "Lost Robot ", + 0x0100, + Plugin::Effect, + new PluginPixmapLoader("logo"), + NULL, + NULL +} ; + +} + + + +StereoControlEffect::StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ) : + Effect( &stereocontrol_plugin_descriptor, parent, key ), + m_stereocontrolControls( this ) +{ + m_sampleRate = Engine::mixer()->processingSampleRate(); + + m_delayBufSize = int(m_sampleRate / 160.f) + 1.f; + m_delayBuf[0].resize(m_delayBufSize); + m_delayBuf[1].resize(m_delayBufSize); + + m_haasBufSize = int(m_sampleRate * 0.002f) + 1.f; + m_haasBuf[0].resize(m_haasBufSize); + m_haasBuf[1].resize(m_haasBufSize); +} + + + + +StereoControlEffect::~StereoControlEffect() +{ +} + + + + +bool StereoControlEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) +{ + if( !isEnabled() || !isRunning () ) + { + return( false ); + } + + double outSum = 0.0; + const float d = dryLevel(); + const float w = wetLevel(); + + const ValueBuffer * volumeBuf = m_stereocontrolControls.m_volumeModel.valueBuffer(); + const ValueBuffer * stereoizerBuf = m_stereocontrolControls.m_stereoizerModel.valueBuffer(); + const ValueBuffer * widthBuf = m_stereocontrolControls.m_widthModel.valueBuffer(); + const ValueBuffer * panModeBuf = m_stereocontrolControls.m_panModeModel.valueBuffer(); + const ValueBuffer * panBuf = m_stereocontrolControls.m_panModel.valueBuffer(); + const ValueBuffer * monoBuf = m_stereocontrolControls.m_monoModel.valueBuffer(); + const ValueBuffer * dcBuf = m_stereocontrolControls.m_dcModel.valueBuffer(); + const ValueBuffer * muteBuf = m_stereocontrolControls.m_muteModel.valueBuffer(); + const ValueBuffer * monoBassBuf = m_stereocontrolControls.m_monoBassModel.valueBuffer(); + const ValueBuffer * auditionBuf = m_stereocontrolControls.m_auditionModel.valueBuffer(); + const ValueBuffer * invertLBuf = m_stereocontrolControls.m_invertLModel.valueBuffer(); + const ValueBuffer * invertRBuf = m_stereocontrolControls.m_invertRModel.valueBuffer(); + const ValueBuffer * soloChannelBuf = m_stereocontrolControls.m_soloChannelModel.valueBuffer(); + const ValueBuffer * monoBassFreqBuf = m_stereocontrolControls.m_monoBassFreqModel.valueBuffer(); + const ValueBuffer * stereoizerLPBuf = m_stereocontrolControls.m_stereoizerLPModel.valueBuffer(); + const ValueBuffer * stereoizerHPBuf = m_stereocontrolControls.m_stereoizerHPModel.valueBuffer(); + const ValueBuffer * panSpectralBuf = m_stereocontrolControls.m_panSpectralModel.valueBuffer(); + const ValueBuffer * panWidthBuf = m_stereocontrolControls.m_panWidthModel.valueBuffer(); + + for( fpp_t f = 0; f < frames; ++f ) + { + const float volume = (volumeBuf ? volumeBuf->value( f ) : m_stereocontrolControls.m_volumeModel.value()) * 0.01f; + const float stereoizer = (stereoizerBuf ? stereoizerBuf->value( f ) : m_stereocontrolControls.m_stereoizerModel.value()) * 0.01f; + const float width = (widthBuf ? widthBuf->value( f ) : m_stereocontrolControls.m_widthModel.value()) * 0.01f; + const int panMode = panModeBuf ? panModeBuf->value( f ) : m_stereocontrolControls.m_panModeModel.value(); + const float pan = (panBuf ? panBuf->value( f ) : m_stereocontrolControls.m_panModel.value()) * 0.01f; + const bool mono = monoBuf ? monoBuf->value( f ) : m_stereocontrolControls.m_monoModel.value(); + const bool dc = dcBuf ? dcBuf->value( f ) : m_stereocontrolControls.m_dcModel.value(); + const bool mute = muteBuf ? muteBuf->value( f ) : m_stereocontrolControls.m_muteModel.value(); + const bool monoBass = monoBassBuf ? monoBassBuf->value( f ) : m_stereocontrolControls.m_monoBassModel.value(); + const bool audition = auditionBuf ? auditionBuf->value( f ) : m_stereocontrolControls.m_auditionModel.value(); + const bool invertL = invertLBuf ? invertLBuf->value( f ) : m_stereocontrolControls.m_invertLModel.value(); + const bool invertR = invertRBuf ? invertRBuf->value( f ) : m_stereocontrolControls.m_invertRModel.value(); + const int soloChannel = soloChannelBuf ? soloChannelBuf->value( f ) : m_stereocontrolControls.m_soloChannelModel.value(); + const float monoBassFreq = monoBassFreqBuf ? monoBassFreqBuf->value( f ) : m_stereocontrolControls.m_monoBassFreqModel.value(); + const float stereoizerLP = stereoizerLPBuf ? stereoizerLPBuf->value( f ) : m_stereocontrolControls.m_stereoizerLPModel.value(); + const float stereoizerHP = stereoizerHPBuf ? stereoizerHPBuf->value( f ) : m_stereocontrolControls.m_stereoizerHPModel.value(); + const float panSpectral = (panSpectralBuf ? panSpectralBuf->value( f ) : m_stereocontrolControls.m_panSpectralModel.value()) * 0.01f; + const float panWidth = (panWidthBuf ? panWidthBuf->value( f ) : m_stereocontrolControls.m_panWidthModel.value()) * 0.01f; + + sample_t s[2] = { buf[f][0], buf[f][1] }; + + switch (soloChannel) + { + case 0: + { + break; + } + case 1: + { + s[1] = s[0]; + break; + } + case 2: + { + s[0] = s[1]; + break; + } + } + + if (invertL) + { + s[0] *= -1.f; + } + + if (invertR) + { + s[1] *= -1.f; + } + + float allpassFreq = 0; + float delayLength = 0; + allpassFreq = linearInterpolate(370.f, 170.f, stereoizer * 0.5f); + delayLength = allpassFreq; + + delayLength = m_sampleRate / delayLength; + + const float w0 = (F_2PI / m_sampleRate) * allpassFreq; + const float a0 = 1 + (sin(w0) / (0.707f * 2.f)); + m_filtA = (1 - (a0 - 1)) / a0; + m_filtB = (-2*cos(w0)) / a0; + + float delayResult[2] = {0}; + for (int i = 0; i < 2; ++i) + { + // Read next value from delay buffer + float readLoc = m_delayIndex[i] - delayLength; + if (readLoc < 0) {readLoc += m_delayBufSize;} + float readLocFrac = fraction(readLoc); + if (readLoc < m_delayBufSize - 1) + { + delayResult[i] = linearInterpolate(m_delayBuf[i][floor(readLoc)], m_delayBuf[i][ceil(readLoc)], readLocFrac); + } + else// For when the interpolation wraps around to the beginning of the buffer + { + delayResult[i] = linearInterpolate(m_delayBuf[i][m_delayBufSize - 1], m_delayBuf[i][0], readLocFrac); + } + + // Increment delay ring buffer index + ++m_delayIndex[i]; + if (m_delayIndex[i] >= m_delayBufSize) + { + m_delayIndex[i] -= m_delayBufSize; + } + // Send new value to delay line + m_delayBuf[i][m_delayIndex[i]] = s[i]; + } + + for (int i = 0; i < 2; ++i) + { + float allpassValue = (delayResult[0] + delayResult[1]) * 0.5f; + + for (int j = 0; j < 2; ++j) + { + allpassValue = calcAllpassFilter(allpassValue, m_sampleRate, j, i, m_filtA, m_filtB); + } + + allpassValue *= i ? -1.f : 1.f; + + float lp; + float hp; + float hp2; + multimodeFilter(allpassValue, multimodeCoeff(stereoizerHP), lp, hp, m_stereoizerFilter[0][i]); + multimodeFilter(hp, multimodeCoeff(stereoizerLP), lp, hp2, m_stereoizerFilter[1][i]); + + s[i] += lp * qMin(stereoizer, 1.f); + } + + const float sMid = (s[0] + s[1]) * 0.5f; + const float sSide = (s[0] - s[1]) * 0.5f; + + s[0] = sMid + sSide * width; + s[1] = sMid - sSide * width; + + if (mono) + { + s[0] = (s[0] + s[1]) * 0.5f; + s[1] = s[0]; + } + + if (monoBass) + { + float lp[2]; + float hp[2]; + + for (int i = 0 ; i < 2; ++i) + { + multimodeFilter(s[i], multimodeCoeff(monoBassFreq), lp[i], hp[i], m_monoBassFilter[i]); + } + + float lowmono = (lp[0] + lp[1]) * 0.5f; + + if (audition) + { + s[0] = lowmono; + s[1] = lowmono; + } + else + { + s[0] = lowmono - hp[0];// Subtraction is needed due to filter phase shift + s[1] = lowmono - hp[1]; + } + } + + switch (panMode) + { + case 0:// Gain + { + const float lGain = pan > 0 ? 1.f - pan : 1.f; + const float rGain = pan < 0 ? 1.f + pan : 1.f; + s[0] *= lGain; + s[1] *= rGain; + break; + } + case 1:// Stereo + { + const float temp = s[0]; + const float llGain = pan > 0 ? 1.f - pan : ( pan + 1.f) * 0.5f + 0.5f; + const float rrGain = pan < 0 ? 1.f + pan : (-pan + 1.f) * 0.5f + 0.5f; + const float lrGain = pan < 0 ? -pan * 0.5f : 0.f; + const float rlGain = pan > 0 ? pan * 0.5f : 0.f; + s[0] = s[0] * llGain + s[1] * lrGain; + s[1] = temp * rlGain + s[1] * rrGain; + break; + } + case 2:// Haas + { + float widthTemp = panWidth <= 1.f ? linearInterpolate(0.5f, 1.f, panWidth) : linearInterpolate(1.f, 0.5f, panWidth - 1.f); + s[0] = (s[0] + s[1] * (1.f - panWidth)) * widthTemp; + s[1] = (s[1] + s[0] * (1.f - panWidth)) * widthTemp; + + float haasResult = 0; + float haasDelayVal[2] = {0}; + + if (pan >= 0) + { + haasDelayVal[0] = linearInterpolate(0, 0.0008f * m_sampleRate, abs(pan)); + } + else + { + haasDelayVal[1] = linearInterpolate(0, 0.0008f * m_sampleRate, abs(pan)); + } + + for (int i = 0; i < 2; ++i) + { + if ((i == 0 && pan > 0) || (i == 1 && pan < 0)) + { + // Read next value from delay buffer + float readLoc = m_haasIndex[i] - haasDelayVal[i]; + if (readLoc < 0) {readLoc += m_haasBufSize;} + float readLocFrac = fraction(readLoc); + if (readLoc < m_haasBufSize - 1) + { + haasResult = linearInterpolate(m_haasBuf[i][floor(readLoc)], m_haasBuf[i][ceil(readLoc)], readLocFrac); + } + else// For when the interpolation wraps around to the beginning of the buffer + { + haasResult = linearInterpolate(m_haasBuf[i][m_haasBufSize - 1], m_haasBuf[i][0], readLocFrac); + } + } + + // Increment delay ring buffer index + ++m_haasIndex[i]; + if (m_haasIndex[i] >= m_haasBufSize) + { + m_haasIndex[i] -= m_haasBufSize; + } + // Send new value to delay line + m_haasBuf[i][m_haasIndex[i]] = s[i]; + } + + if (pan != 0) + { + const float minGain = linearInterpolate(1.f, 0.15f, abs(pan)); + if (pan >= 0) + { + const float lGain = ((1.f - pan) + minGain) / (1.f + minGain); + s[0] = haasResult * lGain; + } + else + { + const float rGain = ((1.f + pan) + minGain) / (1.f + minGain); + s[1] = haasResult * rGain; + } + } + + const int lowChnl = (pan <= 0); + const int highChnl = !lowChnl; + + float lp; + float hp; + + float temp = -abs(pan) + 1.f; + float filtFreq = 2000.f + 8000.f * temp * temp; + float hpGain = abs(pan) < 0.5 ? 1.f - abs(pan) * 2.f : 0.f; + hpGain = linearInterpolate(1.f, hpGain, panSpectral); + multimodeFilter(s[lowChnl], multimodeCoeff(filtFreq), lp, hp, m_haasSpectralPanFilter[lowChnl]); + + s[lowChnl] = lp + hp * hpGain; + + filtFreq = 2000.f; + hpGain = abs(pan) + 1.f; + hpGain = linearInterpolate(1.f, hpGain, panSpectral); + multimodeFilter(s[highChnl], multimodeCoeff(filtFreq), lp, hp, m_haasSpectralPanFilter[highChnl]); + + s[highChnl] = lp + hp * hpGain; + } + } + + if (dc) + { + for (int i = 0; i < 2; ++i) + { + m_dcInfo[i] = m_dcInfo[i] * 0.999f + s[i] * 0.001f; + s[i] -= m_dcInfo[i]; + } + } + + if (mute) + { + s[0] = 0; + s[1] = 0; + } + + s[0] *= volume; + s[1] *= volume; + + buf[f][0] = d * buf[f][0] + w * s[0]; + buf[f][1] = d * buf[f][1] + w * s[1]; + + outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; + } + + checkGate( outSum / frames ); + + return isRunning(); +} + + +sample_t StereoControlEffect::calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b) +{ + float filterOutput = a * (inSamp - m_filtY[filtNum][channel][1]) + + b * (m_filtX[filtNum][channel][0] - m_filtY[filtNum][channel][0]) + + m_filtX[filtNum][channel][1]; + + m_filtX[filtNum][channel][1] = m_filtX[filtNum][channel][0]; + m_filtX[filtNum][channel][0] = inSamp; + m_filtY[filtNum][channel][1] = m_filtY[filtNum][channel][0]; + m_filtY[filtNum][channel][0] = filterOutput; + + return filterOutput; +} + + +void StereoControlEffect::multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf) +{ + lp = in * g + filtBuf; + hp = in - lp; + filtBuf = hp * g * 2.f + filtBuf; +} + +float StereoControlEffect::multimodeCoeff(float freq) +{ + const float g = tan(F_PI * freq / m_sampleRate); + return g / (1.f + g); +} + + + + +extern "C" +{ + +// necessary for getting instance out of shared lib +PLUGIN_EXPORT Plugin * lmms_plugin_main( Model* parent, void* data ) +{ + return new StereoControlEffect( parent, static_cast( data ) ); +} + +} + diff --git a/plugins/StereoControl/OLD_2/StereoControl.h b/plugins/StereoControl/OLD_2/StereoControl.h new file mode 100755 index 00000000000..e3f7f15c7d9 --- /dev/null +++ b/plugins/StereoControl/OLD_2/StereoControl.h @@ -0,0 +1,78 @@ +/* + * StereoControl.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef STEREOCONTROL_H +#define STEREOCONTROL_H + +#include "Effect.h" +#include "StereoControlControls.h" +#include "ValueBuffer.h" + +class StereoControlEffect : public Effect +{ +public: + StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); + virtual ~StereoControlEffect(); + virtual bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ); + + virtual EffectControls* controls() + { + return &m_stereocontrolControls; + } + + +private: + inline sample_t calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b); + inline void multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf); + inline float multimodeCoeff(float freq); + + StereoControlControls m_stereocontrolControls; + + float m_filtX[2][2][2] = {{{0}}};// [filter number][channel][samples back in time] + float m_filtY[2][2][2] = {{{0}}}; + float m_filtA = 0; + float m_filtB = 0; + std::vector m_delayBuf[2]; + int m_delayBufSize = 0; + int m_delayIndex[2] = {0}; + + std::vector m_haasBuf[2]; + int m_haasBufSize = 0; + int m_haasIndex[2] = {0}; + + float m_sampleRate = 0; + + float m_dcInfo[2] = {0}; + + float m_monoBassFilter[2] = {0}; + float m_stereoizerFilter[2][2] = {0}; + + float m_haasSpectralPanFilter[2] = {0}; + + friend class StereoControlControls; + +} ; + +#endif diff --git a/plugins/StereoControl/OLD_2/StereoControlControlDialog.cpp b/plugins/StereoControl/OLD_2/StereoControlControlDialog.cpp new file mode 100755 index 00000000000..84d1b808f02 --- /dev/null +++ b/plugins/StereoControl/OLD_2/StereoControlControlDialog.cpp @@ -0,0 +1,198 @@ +/* + * StereoControlControlDialog.cpp + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include + +#include "StereoControlControlDialog.h" +#include "StereoControlControls.h" +#include "embed.h" +#include "ToolTip.h" +#include "Knob.h" +#include "PixmapButton.h" + + + +StereoControlControlDialog::StereoControlControlDialog( StereoControlControls* controls ) : + EffectControlDialog( controls ) +{ + setAutoFillBackground( true ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); + setFixedSize( 350, 255 ); + + Knob * volumeKnob = new Knob( knobBright_26, this); + volumeKnob -> move( 40, 40 ); + volumeKnob -> setVolumeKnob( true ); + volumeKnob->setModel( &controls->m_volumeModel ); + volumeKnob->setLabel( tr( "VOL" ) ); + volumeKnob->setHintText( tr( "Volume:" ) , "%" ); + + Knob * stereoizerKnob = new Knob( knobBright_26, this); + stereoizerKnob -> move( 169, 19 ); + stereoizerKnob->setModel( &controls->m_stereoizerModel ); + stereoizerKnob->setHintText( tr( "Stereoize:" ) , "%" ); + + Knob * widthKnob = new Knob( knobBright_26, this); + widthKnob -> move( 169, 68 ); + widthKnob->setModel( &controls->m_widthModel ); + widthKnob->setHintText( tr( "Width:" ) , "%" ); + + Knob * monoBassFreqKnob = new Knob( knobBright_26, this); + monoBassFreqKnob -> move( 278, 33 ); + monoBassFreqKnob->setModel( &controls->m_monoBassFreqModel ); + monoBassFreqKnob->setHintText( tr( "Mono Bass Frequency:" ) , " Hz" ); + + Knob * stereoizerLPKnob = new Knob( knobBright_26, this); + stereoizerLPKnob -> move( 206, 31 ); + stereoizerLPKnob->setModel( &controls->m_stereoizerLPModel ); + stereoizerLPKnob->setHintText( tr( "Stereoizer Lowpass:" ) , " Hz" ); + + Knob * stereoizerHPKnob = new Knob( knobBright_26, this); + stereoizerHPKnob -> move( 140, 31 ); + stereoizerHPKnob->setModel( &controls->m_stereoizerHPModel ); + stereoizerHPKnob->setHintText( tr( "Stereoizer Highpass:" ) , " Hz" ); + + Knob * panSpectralKnob = new Knob( knobBright_26, this); + panSpectralKnob -> move( 200, 250 ); + panSpectralKnob->setModel( &controls->m_panSpectralModel ); + panSpectralKnob->setLabel( tr( "Spectral" ) ); + panSpectralKnob->setHintText( tr( "Spectral Panning:" ) , "%" ); + + Knob * panWidthKnob = new Knob( knobBright_26, this); + panWidthKnob -> move( 200, 150 ); + panWidthKnob->setModel( &controls->m_panWidthModel ); + panWidthKnob->setLabel( tr( "Pan Width" ) ); + panWidthKnob->setHintText( tr( "Pan Width:" ) , "%" ); + + Knob * panKnob = new Knob( knobBright_26, this); + panKnob -> move( 200, 200 ); + panKnob->setModel( &controls->m_panModel ); + panKnob->setLabel( tr( "PAN" ) ); + panKnob->setHintText( tr( "Pan:" ) , "%" ); + + PixmapButton * gainButton = new PixmapButton(this, tr("Gain Panning")); + gainButton->move(123, 135); + gainButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("basic_sel")); + gainButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("basic_unsel")); + ToolTip::add(gainButton, tr("Change gain of each channel")); + + PixmapButton * stereoButton = new PixmapButton(this, tr("Stereo Panning")); + stereoButton->move(198, 135); + stereoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("stereo_sel")); + stereoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("stereo_unsel")); + ToolTip::add(stereoButton, tr("Pan one channel into the other")); + + PixmapButton * haasButton = new PixmapButton(this, tr("Haas Panning")); + haasButton->move(273, 135); + haasButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("binaural_sel")); + haasButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("binaural_unsel")); + ToolTip::add(haasButton, tr("Stereo panning with single-channel fractional delay")); + + automatableButtonGroup * panModeGroup = new automatableButtonGroup(this); + panModeGroup->addButton(gainButton); + panModeGroup->addButton(stereoButton); + panModeGroup->addButton(haasButton); + panModeGroup->setModel(&controls->m_panModeModel); + + PixmapButton * monoButton = new PixmapButton(this, tr("Mono")); + monoButton->move(263, 87); + monoButton->setModel(&controls->m_monoModel); + monoButton->setCheckable(true); + monoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mono_sel")); + monoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mono_unsel")); + ToolTip::add(monoButton, tr("Converts input to mono")); + + PixmapButton * dcButton = new PixmapButton(this, tr("DC Offset Removal")); + dcButton->move(59, 168); + dcButton->setModel(&controls->m_dcModel); + dcButton->setCheckable(true); + dcButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dc_sel")); + dcButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dc_unsel")); + ToolTip::add(dcButton, tr("Removes DC offset from the signal")); + + PixmapButton * muteButton = new PixmapButton(this, tr("Mute")); + muteButton->move(16, 212); + muteButton->setModel(&controls->m_muteModel); + muteButton->setCheckable(true); + muteButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mute_sel")); + muteButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mute_unsel")); + ToolTip::add(muteButton, tr("Mute audio")); + + PixmapButton * monoBassButton = new PixmapButton(this, tr("Mono Bass")); + monoBassButton->move(278, 3); + monoBassButton->setModel(&controls->m_monoBassModel); + monoBassButton->setCheckable(true); + monoBassButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("monoBass_sel")); + monoBassButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("monoBass_unsel")); + ToolTip::add(monoBassButton, tr("Mono Bass")); + + PixmapButton * auditionButton = new PixmapButton(this, tr("Bass Mono Audition")); + auditionButton->move(325, 27); + auditionButton->setModel(&controls->m_auditionModel); + auditionButton->setCheckable(true); + auditionButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("audition_sel")); + auditionButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("audition_unsel")); + ToolTip::add(auditionButton, tr("Bass Mono Audition")); + + PixmapButton * invertLButton = new PixmapButton(this, tr("Invert Left Channel")); + invertLButton->move(30, 79); + invertLButton->setModel(&controls->m_invertLModel); + invertLButton->setCheckable(true); + invertLButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_sel")); + invertLButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_unsel")); + ToolTip::add(invertLButton, tr("Invert Left Channel")); + + PixmapButton * invertRButton = new PixmapButton(this, tr("Invert Right Channel")); + invertRButton->move(60, 79); + invertRButton->setModel(&controls->m_invertRModel); + invertRButton->setCheckable(true); + invertRButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_sel")); + invertRButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_unsel")); + ToolTip::add(invertRButton, tr("Invert Right Channel")); + + PixmapButton * soloStereoButton = new PixmapButton(this, tr("Use both channels")); + soloStereoButton->move(200, 200); + soloStereoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloStereo_sel")); + soloStereoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloStereo_unsel")); + ToolTip::add(soloStereoButton, tr("Use both channels")); + + PixmapButton * soloLButton = new PixmapButton(this, tr("Solo left channel")); + soloLButton->move(200, 217); + soloLButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloL_sel")); + soloLButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloL_unsel")); + ToolTip::add(soloLButton, tr("Solo left channel")); + + PixmapButton * soloRButton = new PixmapButton(this, tr("Solo right channel")); + soloRButton->move(200, 234); + soloRButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloR_sel")); + soloRButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloR_unsel")); + ToolTip::add(soloRButton, tr("Solo right channel")); + + automatableButtonGroup * soloChannelGroup = new automatableButtonGroup(this); + soloChannelGroup->addButton(soloStereoButton); + soloChannelGroup->addButton(soloLButton); + soloChannelGroup->addButton(soloRButton); + soloChannelGroup->setModel(&controls->m_soloChannelModel); +} diff --git a/plugins/StereoControl/OLD_2/StereoControlControlDialog.h b/plugins/StereoControl/OLD_2/StereoControlControlDialog.h new file mode 100755 index 00000000000..5b7681a7ef3 --- /dev/null +++ b/plugins/StereoControl/OLD_2/StereoControlControlDialog.h @@ -0,0 +1,45 @@ +/* + * StereoControlControlDialog.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef STEREOCONTROL_CONTROL_DIALOG_H +#define STEREOCONTROL_CONTROL_DIALOG_H + +#include "EffectControlDialog.h" + + +class StereoControlControls; + + +class StereoControlControlDialog : public EffectControlDialog +{ + Q_OBJECT +public: + StereoControlControlDialog( StereoControlControls* controls ); + virtual ~StereoControlControlDialog() + { + } + +} ; + +#endif diff --git a/plugins/StereoControl/OLD_2/StereoControlControls.cpp b/plugins/StereoControl/OLD_2/StereoControlControls.cpp new file mode 100755 index 00000000000..90608e38df9 --- /dev/null +++ b/plugins/StereoControl/OLD_2/StereoControlControls.cpp @@ -0,0 +1,105 @@ +/* + * StereoControlControls.cpp + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include + +#include "StereoControlControls.h" +#include "StereoControl.h" +#include "Engine.h" +#include "Song.h" + + +StereoControlControls::StereoControlControls( StereoControlEffect* effect ) : + EffectControls( effect ), + m_effect( effect ), + m_volumeModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Volume" ) ), + m_stereoizerModel( 0.0f, 0.0f, 200.0f, 0.01f, this, tr( "Stereoize" ) ), + m_widthModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Width" ) ), + m_panModel( 0.0f, -100.0f, 100.0f, 0.01f, this, tr( "Pan" ) ), + m_monoBassFreqModel( 120.0f, 0.0f, 500.0f, 0.01f, this, tr( "Mono Bass Frequency" ) ), + m_stereoizerLPModel( 20000.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Lowpass" ) ), + m_stereoizerHPModel( 0.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Highpass" ) ), + m_panSpectralModel( 0.0f, 0.0f, 100.0f, 0.01f, this, tr( "Spectral Panning" ) ), + m_panWidthModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Pan Width" ) ), + m_panModeModel(0, 0, 2, this, tr("Panning Mode")), + m_soloChannelModel(0, 0, 2, this, tr("Solo Channel")), + m_monoModel(false, this, tr("Mono")), + m_dcModel(false, this, tr("DC Offset Removal")), + m_muteModel(false, this, tr("Mute")), + m_monoBassModel(false, this, tr("Mono Bass")), + m_auditionModel(false, this, tr("Mono Bass Audition")), + m_invertLModel(false, this, tr("Invert Left Channel")), + m_invertRModel(false, this, tr("Invert Right Channel")) +{ +} + + +void StereoControlControls::saveSettings( QDomDocument& doc, QDomElement& _this ) +{ + m_volumeModel.saveSettings( doc, _this, "volume" ); + m_stereoizerModel.saveSettings( doc, _this, "stereoizer" ); + m_widthModel.saveSettings( doc, _this, "width" ); + m_panModel.saveSettings( doc, _this, "pan" ); + m_panModeModel.saveSettings( doc, _this, "panMode" ); + m_monoModel.saveSettings( doc, _this, "mono" ); + m_dcModel.saveSettings( doc, _this, "dc" ); + m_muteModel.saveSettings( doc, _this, "mute" ); + m_monoBassModel.saveSettings( doc, _this, "monoBass" ); + m_auditionModel.saveSettings( doc, _this, "audition" ); + m_invertLModel.saveSettings( doc, _this, "invertL" ); + m_invertRModel.saveSettings( doc, _this, "invertR" ); + m_soloChannelModel.saveSettings( doc, _this, "soloChannel" ); + m_monoBassFreqModel.saveSettings( doc, _this, "monoBassFreq" ); + m_stereoizerLPModel.saveSettings( doc, _this, "stereoizerLP" ); + m_stereoizerHPModel.saveSettings( doc, _this, "stereoizerHP" ); + m_panSpectralModel.saveSettings( doc, _this, "panSpectral" ); + m_panWidthModel.saveSettings( doc, _this, "panWidth" ); +} + + + +void StereoControlControls::loadSettings( const QDomElement& _this ) +{ + m_volumeModel.loadSettings( _this, "volume" ); + m_stereoizerModel.loadSettings( _this, "stereoizer" ); + m_widthModel.loadSettings( _this, "width" ); + m_panModel.loadSettings( _this, "pan" ); + m_panModeModel.loadSettings( _this, "panMode" ); + m_monoModel.loadSettings( _this, "mono" ); + m_dcModel.loadSettings( _this, "dc" ); + m_muteModel.loadSettings( _this, "mute" ); + m_monoBassModel.loadSettings( _this, "monoBass" ); + m_auditionModel.loadSettings( _this, "audition" ); + m_invertLModel.loadSettings( _this, "invertL" ); + m_invertRModel.loadSettings( _this, "invertR" ); + m_soloChannelModel.loadSettings( _this, "soloChannel" ); + m_monoBassFreqModel.loadSettings( _this, "monoBassFreq" ); + m_stereoizerLPModel.loadSettings( _this, "stereoizerLP" ); + m_stereoizerHPModel.loadSettings( _this, "stereoizerHP" ); + m_panSpectralModel.loadSettings( _this, "panSpectral" ); + m_panWidthModel.loadSettings( _this, "panWidth" ); +} + + diff --git a/plugins/StereoControl/OLD_2/StereoControlControls.h b/plugins/StereoControl/OLD_2/StereoControlControls.h new file mode 100755 index 00000000000..eed9ed0f582 --- /dev/null +++ b/plugins/StereoControl/OLD_2/StereoControlControls.h @@ -0,0 +1,90 @@ +/* + * StereoControlControls.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef STEREOCONTROL_CONTROLS_H +#define STEREOCONTROL_CONTROLS_H + +#include "EffectControls.h" +#include "StereoControlControlDialog.h" + + +class StereoControlEffect; + + +class StereoControlControls : public EffectControls +{ + Q_OBJECT +public: + StereoControlControls( StereoControlEffect* effect ); + virtual ~StereoControlControls() + { + } + + virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent ); + virtual void loadSettings( const QDomElement & _this ); + inline virtual QString nodeName() const + { + return "StereoControlControls"; + } + + virtual int controlCount() + { + return 4; + } + + virtual EffectControlDialog* createView() + { + return new StereoControlControlDialog( this ); + } + +private: + StereoControlEffect* m_effect; + + FloatModel m_volumeModel; + FloatModel m_stereoizerModel; + FloatModel m_widthModel; + FloatModel m_panModel; + FloatModel m_monoBassFreqModel; + FloatModel m_stereoizerLPModel; + FloatModel m_stereoizerHPModel; + FloatModel m_panSpectralModel; + FloatModel m_panWidthModel; + + IntModel m_panModeModel; + IntModel m_soloChannelModel; + + BoolModel m_monoModel; + BoolModel m_dcModel; + BoolModel m_muteModel; + BoolModel m_monoBassModel; + BoolModel m_auditionModel; + BoolModel m_invertLModel; + BoolModel m_invertRModel; + + friend class StereoControlControlDialog; + friend class StereoControlEffect; + +} ; + +#endif diff --git a/plugins/StereoControl/OLD_2/artwork.png b/plugins/StereoControl/OLD_2/artwork.png new file mode 100755 index 0000000000000000000000000000000000000000..959473547d859caf0e901afbbfb03885d5587cb8 GIT binary patch literal 62279 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%0DU!0#c~+lY-~KamaXgF~ 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 b`3U|7XjvY-)hiui00000NkvXXu0mjfeU>-d literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/basic_sel.png b/plugins/StereoControl/OLD_2/basic_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..9fa15efcfbba1359194d328e3609cc4166398a35 GIT binary patch literal 993 zcmV<710MW|P)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirufA7gTIj2dRtWDR(wNcw?or{EatFEJL6RfjXvCdr#FDhPHK{s?b z7zl#GyqVM$$B+s0d*W^;Y=|F7>!?)(zm{dT^CG0PnohHHS-wur$vIv`Qa5$>qA4i( z!wZMQbKV2L_j&%$!z&t_19mbIr)U~f_0Mw13c?{Pc3XQpE>~@p$TgJBrjd)LK`vh) zb$PBzhn8?4Tai2H?K=O&rC8JI2G=vU9gOmKeKC&Cz zu-qzAMn|2#fNS&=Vsfr>u$CSd_;w#h`XGwE(a-#ggBUwPIK$%r==a}7&FNY4Yy7x_ zUPNRb`}UR0KfW37TVJ8P{T+6|Lt!w8c}o-8@JSldI;r7a>en9vAanQuOuq;3=x0cu z$FO<==mTphcCA95j8_s?Xt|8x0WuB#RAfpM%yG>oD3IQM>v)zJu&Kz=_0 zu?!-XL7n*JZ}+qYSCb31;Cu8v#Q1C}}5C z_7K`fGo^Am62@^Pj0!lP=_Rwh6YVNij&L0Fp>FIgE#)%&&vwHr&b-ry{^Ta)-_jU& z-Gr3NQ@`fG!u+!DPO|-LaXh^NebZ{R6K9YnV$kYA@3|5Ar{rJGSR9*19qK0a!T|19 zCy^#*ur{=!KN!L}_9ODkUsnW{0Bqk%|B`N+oPKIybTBQH^GVzXPmvw&Mfo9)y6eM* z;Oku^KN+U(wJ*_o+cDaFSS}|bXP{2aQS9~{N*@Q{D*9`swA zu{>HS{@ev>_KzVd)D0^F>wi9!Rwwwy&skMg)y!IQSdGmAs+WI@yZrkd9~^tS8uBnW P00000NkvXXu0mjf-%8TE literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/basic_unsel.png b/plugins/StereoControl/OLD_2/basic_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..18084a7d2e4ae6aa6b57a8e4088c7a288c0e53bb GIT binary patch literal 1026 zcmV+d1pWJoP)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirupD!#(zkq{tlz z3kyRI;Pd$;HSU7X=OYvVL6Fp#1)ay zI}N)SwpiF+*ATp}Y*hiPRu-XDD)ISzjC(v7&UJ$T8>_1T_|5C3yt0Of@cYW zjfRI~qH(y~#66~_TEBs>PMzjV=QpULmE^9-CT__R8uxsH*Xw0{N7`#9UvCw>`a=v#N+Xhm6^fKo4-=BW_{4*)t9Qs&VHVCt4qktOvhm8 zW?;~WO7$SADap88Ki!sD=fAy3S*ew}9ouO?dYr*4Mv`<|3i9*l@BfZd9i5`QjtmeI zpG=?ApdBaMgQJ7r@5kYA(suX=l@)8TT5asze=z9#!2J7ZYd*-a<0r{TPeZMKgz)fi zrl+T|+3f5;@F~w`Wm2RZ)>iRQw34l_Zzf(7M^sc4)3000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirut03RPBaHofB3WGUv*4`o#~**aTg%D^*eS zi;Pu-v{KP2_+g655LSg1(XJB}E!%Kvb*0j+Db|*{B~6>R=Jg&wq)ih|Vv^~%JaFOO zbDrmapYwlS&fy5XqRM0>=o3U7`D~uG7a5%{H)D+5cB!)lmXN8dh zqN*y1L>yf_UMazUlU0rsq^z(}q$s6Q-X@d2=S<^VPQU!(tc0s!ryX1skJn8)X--uWQ_^42;$L;J9|4!}Yz z{cq1?7q)%JS$O;5ln#im(WvvOJNtB=G^6FULKSy};I%Hd8&iUorZ@_$F48zTOtvb?SiaINeV^L{i%hmaYu%fy`YU_L)X_+T5B zZ$DX!m4xI|EeK7bJ9Yu1qk-kS)}hKZdr3w@WaZTgMuVC7fmSq=if-g$LCj41a@%xS zWoSJ#$hA$cW83jArt>rSU)cV)RmrSxQ~x(a9F1rXHf8BVwr{{VHVa79kA5V6{WWO! z-w0a1k`a*5Qc30N!1Mjn1oqxRUGFgBCvRcQoc@)zZiRAKUa=PwOBmi7CGddbpT1NI5Bm7jz~(R^E$-oKT_(gcBBC20;zy?4I*a! zEFFD>#O9mOAG-h)!2II(Tygw=cf+i>wAhF~dk=~yn6njU@@DM)ituMoB2_&Sh`rK= z&L5$EWB=ND=I}PcJ8r`mN@AG2OsIPsmgH$jXoP$2!!YfIOTjd*ID46zmxow-Z5QIz zFvOGjF}Z54$~$NI`Z}NwL_$NI@lkVRm_+v$mJZ&Vn*X(vddC}U?nwz315};*jlgba zDg)YX!8Gd5Y9Q*-GiZBSNItQNs>8#CUTSCYoxMmQFid-?I&vzz;Yf+@q?=m%2>$2W z(JzDwVrKfjD)n81=uS))wQgavH&jlg#cXO<=20XSu1YAw3JE1N_zGLail|)v6@U5n Y7xoVMDp#6Gs{jB107*qoM6N<$g7jPWdH?_b literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/binaural_unsel.png b/plugins/StereoControl/OLD_2/binaural_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..ba00d93977708c6e2acc0377a059f0c4dbf4e957 GIT binary patch literal 1071 zcmV+~1kn45P)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru?gWOr`@(22xBm7Hpla#Y!W~7HjX_1N5#pwx#WJzvd)8 z=X~e8-}%nDr?*!DIDkdO5e^RE14Z8YP2#-y^W$-ZfoF1(!R!4KN&y8<*F-##Fi1>H z1X!5h^?KuJ%mRN#N<=Z9MubQZfoMvvsS~TkgwI-G^{?b$wV3$qQ@zxtPF{%BVq)&x=VaIJGk39ixHjxVZ>%*d1@+))GyAo&$tV6ZGUIu@n&{bX)$$wOOa+9 z>vA(^(F_P=lbyw?jI^MfH7~E`^5q|S@Zc}X zOG|=s0`&s>|NiG+%zc-bnwlatb!k}5aJrGsTPc@`44-`bk@Vf^bfKIxCy1SCjNf%I zG(3!UPZjkIjWWCC#aj^sfh$-0Nl#zF+T83Q(S-Il@A)Klyjg}yrQ+us1G8un)L&F* zRxA-W>YFJpub^h%L56SN=3w0cLT)YKtMeDg$Vg}1+H4tTLLCO`t#8Kvq^JSFZL0gw(t>G$QjJ3zWqAdp*j-MXJVkx|hwS%w@Oqzy)C}n_ny_L?x#7rR0DL|l_wM~kOPhhp9p%*M-kmsJiz9UQ8w<`y?UJB~v2?ziH002ovPDHLkV1i$A{WJgo literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/dc_sel.png b/plugins/StereoControl/OLD_2/dc_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..f385966298b8867b2e9aaf9d7096d9741d51955b GIT binary patch literal 600 zcmV-e0;m0nP)nfZQa-kbLr#?m>d zYPtj>F;&xLDxH%;)pR*NF@b6BAqrHhKlxlNqBR2_uhwAu$G1p?bzLV2d=voR_lXK^ zEe!xEi5eQev)&Drk2eV8I)oC{YhbLG8F}~~W#vn2!M+%^yJxA+j1!I;C~h6YE@Ljf zMHITHPiYOk9wJz`UXVJoMDorG!f&#*a2|O&14!IQ7pNc0kX(F&HT#(4LLPynIi2ar zsSO;Pl8aihF_&$^msjxSW{4+O@s4M)=9Uq!HvmxA*D#-~^`%qVDeh)F@z~{yt$w9( za4*4h7Omn!exoNxCr<4TbwBJ{)7~vQ%nb--fE54bYn(VhtoR-EgF|4AB2Q)it$*!= zdJx^5N%PVq)u$J!9~#5BUqC#wF+MqL&(9KEJ4$#sL2z{n_xWY~>nD413P4(^{ar({ zW#4R-lawf)Ps}be^57lHt5WMwlL>0K&rv^;CQQT;p5H3DdwE2`>0F|lPJiM5fy$=S mZXiSITtmLSQ$Xti5B3IO-kEnK|NLu=~+wz=ID3I%dG zjj_jJ(%J82c^&JH%WYub#t_|S&T{+CU5q~l{lTm3RhmEut_S;2TACRheMrx_UPkUc zKp;?Cnk_jiIySMmw9I%c&Uh@&t(ya!KGnsm*Kbf&g1~&Nv3+Ysy56G$fQ*kf&|f`jkJhB2UkI>q+PbO zWt*TVZPBI&?jl+VMuC{4m70wXiu3l)y*}mnKJQYVdmZIjrn}cs$BfFo?@c8zhn|EJyx0tn2_y(@3Wc zQ~<+pD8 zk9T98uUy-k?KOmg0U~d1Z1HVgt+h4(^=pkVyTg?A4B@{xfbYRO6vJfkQ9II7xh{?E zQp@a9SL!JoogsPDkJS0Hp34ViYToYhj~E5d$M9Z%iF;y!MAx~TO%tc9C>$I`pIySZ zd1g-~>B>h7lT9)7k!j+s$MHz!JF?XV0rPeviY2H|zv8Z|AklOfO|tvWOAoVO`I};_ zR%m6Dl>%uC5R$FOaF5Oag7$0#qp}#Qtvb7Jn`?2g&EK`>ien{%atD znlRAELil=KqkQ}gKvCa&V)rhw^rRC}6!fVuMGrrK2&v{;Jf9{v6;R8btqKUYS~MP*PlDEXp%%}APwg(OCn55k}VgI;0}gZ_YE5T%+Xq(x9z zX;9EY8blkcp{zxLwQw;;PC5oPqRzrn8^splIQO)uxuZEw&f?DMelEYoIp_X<_nhx} z-Xj5bfTKVX8sYE&&m=%DDB34&Oi0iq3B&Bn4355Dp#vlti64_wnkr$4jg1A6VgP(T zpQgxv2xz1OKnP8dH4+0LRJ1PZ6YMrC&%2(|(f*ibb0c}V*$6! z+sVn?uB3~0=V7;5xqZvLBKDrbd{yhe)D*!GLOlbn-?+({x{KUxxsPwrM}z4K#;hH| zT7>X{V7lzUeui8w(o$1N(r;PyJ=HB5BP_tQcb0eW`!F?G7#$tsM9nd!ER@gEw9$}5 zPtO}BCcaaBxN1f0=#Q|dNEXcdJUB>VV&W?DEcdCdEJK!MUcc?-)4%|`@^^-ft#(^t zqN3M7d4bs^%OYgCBuU7AKL{u;-iymM3<6%*U!m9Q$unlJuC>Z-(f#?Ry1S(K`vfo; zvKbp2XWHvUmSxh@l5q}w0U$kP8vv8jKM@ErGct&ai{oW?hvHvRevpsOp^&lFMyK?W z%52)O9-|?P%JM^`Bqw8PXkuYu5x0AU^L1xwd-w>yU*^KOTE@pcOip>JJypZp+%JwC zKdHp2uRBd?Y01hN8BM{|?xDs86G8~)=jZw6c4M|QGyHV~fR+cXT)tF~#e5Zz@OV7j zYi&ayC@d_%(cizUe%4MKRaF&~mz5~7mvYT);X|K8wYErr$jU9yPNZvK*y#xDk{S`6 p^fe+~!?b_Nh}JOe0x^OM#NU1}H*fC~v_1d;002ovPDHLkV1gs&SQY>P literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/invertL_sel.png b/plugins/StereoControl/OLD_2/invertL_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..d1bb52006613ccc53e13e30a0250367f63d978a2 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7X~gM>e|$kW9!#NzbYDUMu+3`AVwZ?m}E z>6o^waADku$sBuU+;bCHxFcj0hnCi|Uw1XMJftt#oOo7mbjC-aWb!^2FYX5=N=sG! zehImFoldY=ax>@Qp`SHLQ&U$|C+>*Jm+6yMS6plAn#jS}W4PnfzSRr@3-uILee<3R zzk3{*`dHq5ishuPztffFSFGwfvdO7CBf>R!o>rCX>h;bH9_sJ@#=aBR>~H%wbL(Zv zhb2FaZ$Euqq!?ZH^OvmeADjK`vh{r*zHYQ-e5X@V5}TC+^eqE}r>mdKI;Vst0PiVu AxBvhE literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/invertL_unsel.png b/plugins/StereoControl/OLD_2/invertL_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..57494efb9e331c59d4378fa62f48c889ff317516 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7X~gMh~tsw9Xl&H3twD_w#aO;60hNl3b~UO^%KXdcwZA;f>#spGkWhJSQ=fBsZ*D^}%;ZOku#s@oRen7E!a8Ho t^8c|X1UT8MzG)nYX1<_nw{_PS=4igOL-|YPd4b+w@O1TaS?83{1OU5NZyo>u literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/invertR_sel.png b/plugins/StereoControl/OLD_2/invertR_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..b5b8a88b6e5b8892e7765514b88aba95a3a1aad8 GIT binary patch literal 433 zcmV;i0Z#sjP)TlfjmXrrVS z1;I)zBwG51C?qi#v*)cv41#7kxZJ?^<=R~ zDwQS*TCFCJ)hgo4S9t9X^~Q4~At@!kudo1=Qba|sR{)?jgF^7LwZEv{ZV)6T1RA^f zN&4)Lq3w!M$m*7U4+73s8F#)!_UMB8$_&Bsgpq57dVcF5O4rzpHo>$TGMZsU8qoP+ z)cPzzQesu^ja>2D(#Oo7}-B3aZ?M~QU9?S-7Mp*9br*d~F(o?&o%kFP b*T?n^x<0ABv#T$H00000NkvXXu0mjfyy~^p literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/invertR_unsel.png b/plugins/StereoControl/OLD_2/invertR_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..2a4454574daefd52b6367343e228371be6eaeac8 GIT binary patch literal 439 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 LNkvXXu0mjf(VzwV literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/monoBass_unsel.png b/plugins/StereoControl/OLD_2/monoBass_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..b5e6462f66b14761a4f053130f47674d168a4a70 GIT binary patch literal 5529 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 b$ypme9CKl&Jb1X~00000NkvXXu0mjfZjnjR literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/mono_sel.png b/plugins/StereoControl/OLD_2/mono_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..4996a84eba22eadf6bb3fb1c99339665f6a20752 GIT binary patch literal 783 zcmV+q1MvKbP)Br>Z-Py}W{1O+WxS&M2D6a=l3rgpk$ zQ&dnyMMy5(2+<2QL=5r~sWl3M_-Gn)X6_6#cjmN^8JzMl19NxxgR?o@@4Nhe=iI~p z9;vvbT>SRWkkI3pT3xcD;wdUcQWRBGR8`?{xJ)W*NYg@0`g|z59w!owu^5~+sjMMY zRnhf07Jzu%{2bR)ije|<5GIiZL_=BTVr1zz1eg%{9{|ehLG(>75@&XxHEhHBurIwo^xb7B{xI~-W%%Uo3F5^r zgj-z-8UKa-%M{v`hNWk6@EcK+W%(A*?*I}>>>tKiynY0ADuC2Iy~3KU;QQy8u(f_7 zy0eVriOL-P`LD@hBrgP5+j>aaRqW3PGU|~>X3&eAhje;!AV z53RXAH@^WjSq$cdm<+SArVXimJY!z!_=$CFj^MpU66dN())W%ESx=~O7mkj>%nZPK z_dT%+4+*y|YrhdS8Qh17)w6}bd8wU<_c(uU9V2N|Q34vSmjkFR-T!C&2;zJ@N-%Yx zXYJ3gBtR4umzo`EHofKiOsa7;JN?`mSCdz+zeXmptj{p>0x`D>#J?aIDQn|@yNv(< N002ovPDHLkV1i=@U}69O literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/mono_unsel.png b/plugins/StereoControl/OLD_2/mono_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..7c854ccd3c61e8138831fde7dbcfe9c2993faa34 GIT binary patch literal 808 zcmV+@1K0eCP)+u)5aMcrEv!4?(TOvo5T6Od%pkq|L-~X z09*hj0iiUzO%I%R0}Roz@fvTn8U_D{*<_-(yLHwB(5&Fb%fDlSV9E1m}Uo=;vwyF%H(a5EoTx;LM`&tgg#ZpjML__m8)ZW{;b>k{w zp`l2Ugvn&0p|OeAmG7(?LI`rTchOJ%0-(J31+Pj<`O@08C119H$(3P}^WcCx|y7wp}ew&=9bSSC7!lw z)YR4y84*rMaDYuEIKr31ll!_QbGdv&V>7-Q4Mz{h5OW}!>bEsk!+V2+Fd9vaj8E9` zdV2ft_4UO|@&sVw=Oq0D17v4rteduQkneg=?lQ)U<>eJRySmA_a+#^=X$FVK*Vf0T zyf!T3hA}0jZwL+!;$T$7<{Gibm%-C&NxJ^A%(}dy3NJ5-y7~_`{Uf8J`1q*V6R_Kc z7abLe!7#_)g$3)_u?amtdV0u6PqW6t5xyLrWX&)H80O5Rq-D|G)oYUho!|S=>2%z? zt>yTUICk#XPF8v<2??k8)YxRBfq<9AW%&E=LZwnU&X>WHhb6=0fUu)25ai`QMw@$$ z+?&^tBnh+m5B2r$DXpm9q%mWdqqVJ_udi2nd7AK@Hc8000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru83PyA(I{9ajmZFP_ zbg6?lLK_z`;-EqYV@sqEtL7R>b4f|=?m4tclXz#^;R=QO!sEE#z4yKMzWlzw zd-tRbo3@C&I*p-MabXRwtPqKIB6(#+bj9NYgB`9aHYk;fWF{w(4ZTWvu0mnlw$ z6h%STt9SsaRo8<5LrotU03lpOmH-*R38~caK4euRy#GNxRvtc1@xWFh*Pi3~Fh%ZJ zFR|UXVWv{=lS^M9+WUyy@L6k1{3x()?|szqK1{#T^ej9whVSZIXT@?xE-?KH#<>LE zd!GS4yXL z0#G@>2mhBWl5VVW8#+|7#`y^YeoZoUur z@U9tpj~P%1Jp9*000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru)5kxFS3))ak4TuOuq*hyywifXw zwwS5~TL`3B(@?=8dJ}rH=PWv0?uroXF&HI>r zGdlnm0R<3NHLNk4JPfi03RX|nwyU! zfVOijEU&DR&1Orml#eTYHhRyjxf{h(W1dTxee;&>E*D1+H_&jv&E$)zk}xa5V2rEx z_AOqACkxfA#I0#Umx&}vXt`W5OM^M~4-64m z_*CuBaO+Dx!ihi-heKvMJX6%3QdKlfV|U%o!kD^UI{-+e*2-+@*%wtTrmrjnq}Dcc zlk?_gmT2@Fmpj@SeKJNar{TTiAr@0eBvoBoMn0;1bP#5-GPEra3_tdB)pvz^19t%l zMNt^>kLr%mYwNqyQ*v~e#y>V;8Y~GA_50k`iSr*?Sz65RhL$Q$@Rt53XIcM-70bH( ctMKyg7a)*9PKs+T^8f$<07*qoM6N<$g0lK7asU7T literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/soloL_sel.png b/plugins/StereoControl/OLD_2/soloL_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..8c48c959b972d9da8ddd8f56337bac1e9f06d44e GIT binary patch literal 3369 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 Hu0mjfa-Pg< literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/soloR_sel.png b/plugins/StereoControl/OLD_2/soloR_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..299078f717b8d81bc0bda96973b5d48da9a158c7 GIT binary patch literal 4530 zcmV;j5l!xiP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3&sk{mg%g#Ysta|CW6$m4*U*}K6Ue?CM;sY_~2 zzizXsR8>aC!UYbvJ5u5N`~PnE7e7Tx4pp?b(OTrEjyke&(BtRFp1 =kN0)`@NQa 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 Q;{X5v07*qoM6N<$f(eSBzyJUM literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/soloR_unsel.png b/plugins/StereoControl/OLD_2/soloR_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..dd799831a10c49cb2c8335cb838adbfa758c3f90 GIT binary patch literal 4154 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 Ef~!8o1ONa4 literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/soloStereo_sel.png b/plugins/StereoControl/OLD_2/soloStereo_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..d3974efa02884a4fbbd563188fc20a7694b3c4c7 GIT binary patch literal 4423 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 N002ovPDHLkV1ga7P-_4H literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/soloStereo_unsel.png b/plugins/StereoControl/OLD_2/soloStereo_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..23cdd827544b895783274c03333b2340e74551dd GIT binary patch literal 4570 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 Ef|!w)qyPW_ literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_2/stereo_sel.png b/plugins/StereoControl/OLD_2/stereo_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..d1292d89bf41385e21265bff027cc243f07f1313 GIT binary patch literal 3811 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 ek}AgW=@{=ct=3f%8vT_30000 + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "StereoControl.h" + +#include "embed.h" +#include "plugin_export.h" +#include "lmms_math.h" +#include "interpolation.h" + +extern "C" +{ + +Plugin::Descriptor PLUGIN_EXPORT stereocontrol_plugin_descriptor = +{ + STRINGIFY( PLUGIN_NAME ), + "Stereo Control", + QT_TRANSLATE_NOOP( "pluginBrowser", "A plugin generated by Lost Robot's LMMS Development Package. This is your plugin description. You should change this." ), + "Lost Robot ", + 0x0100, + Plugin::Effect, + new PluginPixmapLoader("logo"), + NULL, + NULL +} ; + +} + + + +StereoControlEffect::StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ) : + Effect( &stereocontrol_plugin_descriptor, parent, key ), + m_stereocontrolControls( this ) +{ + m_sampleRate = Engine::mixer()->processingSampleRate(); + + m_delayBufSize = int(m_sampleRate / 160.f) + 1.f; + m_delayBuf[0].resize(m_delayBufSize); + m_delayBuf[1].resize(m_delayBufSize); + + m_haasBufSize = int(m_sampleRate * 0.002f) + 1.f; + m_haasBuf[0].resize(m_haasBufSize); + m_haasBuf[1].resize(m_haasBufSize); +} + + + + +StereoControlEffect::~StereoControlEffect() +{ +} + + + + +bool StereoControlEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) +{ + if( !isEnabled() || !isRunning () ) + { + return( false ); + } + + double outSum = 0.0; + const float d = dryLevel(); + const float w = wetLevel(); + + const ValueBuffer * volumeBuf = m_stereocontrolControls.m_volumeModel.valueBuffer(); + const ValueBuffer * stereoizerBuf = m_stereocontrolControls.m_stereoizerModel.valueBuffer(); + const ValueBuffer * widthBuf = m_stereocontrolControls.m_widthModel.valueBuffer(); + const ValueBuffer * panModeBuf = m_stereocontrolControls.m_panModeModel.valueBuffer(); + const ValueBuffer * panBuf = m_stereocontrolControls.m_panModel.valueBuffer(); + const ValueBuffer * monoBuf = m_stereocontrolControls.m_monoModel.valueBuffer(); + const ValueBuffer * dcBuf = m_stereocontrolControls.m_dcModel.valueBuffer(); + const ValueBuffer * muteBuf = m_stereocontrolControls.m_muteModel.valueBuffer(); + const ValueBuffer * monoBassBuf = m_stereocontrolControls.m_monoBassModel.valueBuffer(); + const ValueBuffer * auditionBuf = m_stereocontrolControls.m_auditionModel.valueBuffer(); + const ValueBuffer * invertLBuf = m_stereocontrolControls.m_invertLModel.valueBuffer(); + const ValueBuffer * invertRBuf = m_stereocontrolControls.m_invertRModel.valueBuffer(); + const ValueBuffer * soloChannelBuf = m_stereocontrolControls.m_soloChannelModel.valueBuffer(); + const ValueBuffer * monoBassFreqBuf = m_stereocontrolControls.m_monoBassFreqModel.valueBuffer(); + const ValueBuffer * stereoizerLPBuf = m_stereocontrolControls.m_stereoizerLPModel.valueBuffer(); + const ValueBuffer * stereoizerHPBuf = m_stereocontrolControls.m_stereoizerHPModel.valueBuffer(); + const ValueBuffer * panSpectralBuf = m_stereocontrolControls.m_panSpectralModel.valueBuffer(); + const ValueBuffer * panDelayBuf = m_stereocontrolControls.m_panDelayModel.valueBuffer(); + const ValueBuffer * panDualLBuf = m_stereocontrolControls.m_panDualLModel.valueBuffer(); + const ValueBuffer * panDualRBuf = m_stereocontrolControls.m_panDualRModel.valueBuffer(); + + for( fpp_t f = 0; f < frames; ++f ) + { + const float volume = (volumeBuf ? volumeBuf->value( f ) : m_stereocontrolControls.m_volumeModel.value()) * 0.01f; + const float stereoizer = (stereoizerBuf ? stereoizerBuf->value( f ) : m_stereocontrolControls.m_stereoizerModel.value()) * 0.01f; + const float width = (widthBuf ? widthBuf->value( f ) : m_stereocontrolControls.m_widthModel.value()) * 0.01f; + const int panMode = panModeBuf ? panModeBuf->value( f ) : m_stereocontrolControls.m_panModeModel.value(); + const float pan = (panBuf ? panBuf->value( f ) : m_stereocontrolControls.m_panModel.value()) * 0.01f; + const bool mono = monoBuf ? monoBuf->value( f ) : m_stereocontrolControls.m_monoModel.value(); + const bool dc = dcBuf ? dcBuf->value( f ) : m_stereocontrolControls.m_dcModel.value(); + const bool mute = muteBuf ? muteBuf->value( f ) : m_stereocontrolControls.m_muteModel.value(); + const bool monoBass = monoBassBuf ? monoBassBuf->value( f ) : m_stereocontrolControls.m_monoBassModel.value(); + const bool audition = auditionBuf ? auditionBuf->value( f ) : m_stereocontrolControls.m_auditionModel.value(); + const bool invertL = invertLBuf ? invertLBuf->value( f ) : m_stereocontrolControls.m_invertLModel.value(); + const bool invertR = invertRBuf ? invertRBuf->value( f ) : m_stereocontrolControls.m_invertRModel.value(); + const int soloChannel = soloChannelBuf ? soloChannelBuf->value( f ) : m_stereocontrolControls.m_soloChannelModel.value(); + const float monoBassFreq = monoBassFreqBuf ? monoBassFreqBuf->value( f ) : m_stereocontrolControls.m_monoBassFreqModel.value(); + const float stereoizerLP = stereoizerLPBuf ? stereoizerLPBuf->value( f ) : m_stereocontrolControls.m_stereoizerLPModel.value(); + const float stereoizerHP = stereoizerHPBuf ? stereoizerHPBuf->value( f ) : m_stereocontrolControls.m_stereoizerHPModel.value(); + const float panSpectral = (panSpectralBuf ? panSpectralBuf->value( f ) : m_stereocontrolControls.m_panSpectralModel.value()) * 0.01f; + const float panDelay = (panDelayBuf ? panDelayBuf->value( f ) : m_stereocontrolControls.m_panDelayModel.value()) * 0.01f; + const float panDualL = (panDualLBuf ? panDualLBuf->value( f ) : m_stereocontrolControls.m_panDualLModel.value()) * 0.01f; + const float panDualR = (panDualRBuf ? panDualRBuf->value( f ) : m_stereocontrolControls.m_panDualRModel.value()) * 0.01f; + + sample_t s[2] = { buf[f][0], buf[f][1] }; + + switch (soloChannel) + { + case 0: + { + break; + } + case 1: + { + s[1] = s[0]; + break; + } + case 2: + { + s[0] = s[1]; + break; + } + } + + if (invertL) + { + s[0] *= -1.f; + } + + if (invertR) + { + s[1] *= -1.f; + } + + float allpassFreq = 0; + float delayLength = 0; + allpassFreq = linearInterpolate(370.f, 170.f, stereoizer * 0.5f); + delayLength = allpassFreq; + + delayLength = m_sampleRate / delayLength; + + const float w0 = (F_2PI / m_sampleRate) * allpassFreq; + const float a0 = 1 + (sin(w0) / (0.707f * 2.f)); + m_filtA = (1 - (a0 - 1)) / a0; + m_filtB = (-2*cos(w0)) / a0; + + float delayResult[2] = {0}; + for (int i = 0; i < 2; ++i) + { + // Read next value from delay buffer + float readLoc = m_delayIndex[i] - delayLength; + if (readLoc < 0) {readLoc += m_delayBufSize;} + float readLocFrac = fraction(readLoc); + if (readLoc < m_delayBufSize - 1) + { + delayResult[i] = linearInterpolate(m_delayBuf[i][floor(readLoc)], m_delayBuf[i][ceil(readLoc)], readLocFrac); + } + else// For when the interpolation wraps around to the beginning of the buffer + { + delayResult[i] = linearInterpolate(m_delayBuf[i][m_delayBufSize - 1], m_delayBuf[i][0], readLocFrac); + } + + // Increment delay ring buffer index + ++m_delayIndex[i]; + if (m_delayIndex[i] >= m_delayBufSize) + { + m_delayIndex[i] -= m_delayBufSize; + } + // Send new value to delay line + m_delayBuf[i][m_delayIndex[i]] = s[i]; + } + + for (int i = 0; i < 2; ++i) + { + float allpassValue = (delayResult[0] + delayResult[1]) * 0.5f; + + for (int j = 0; j < 2; ++j) + { + allpassValue = calcAllpassFilter(allpassValue, m_sampleRate, j, i, m_filtA, m_filtB); + } + + allpassValue *= i ? -1.f : 1.f; + + float lp; + float hp; + float hp2; + multimodeFilter(allpassValue, multimodeCoeff(stereoizerHP), lp, hp, m_stereoizerFilter[0][i]); + multimodeFilter(hp, multimodeCoeff(stereoizerLP), lp, hp2, m_stereoizerFilter[1][i]); + + s[i] += lp * qMin(stereoizer, 1.f); + } + + const float sMid = (s[0] + s[1]) * 0.5f; + const float sSide = (s[0] - s[1]) * 0.5f; + + s[0] = sMid + sSide * width; + s[1] = sMid - sSide * width; + + if (mono) + { + s[0] = (s[0] + s[1]) * 0.5f; + s[1] = s[0]; + } + + if (monoBass) + { + float lp[2]; + float hp[2]; + + for (int i = 0 ; i < 2; ++i) + { + multimodeFilter(s[i], multimodeCoeff(monoBassFreq), lp[i], hp[i], m_monoBassFilter[i]); + } + + float lowmono = (lp[0] + lp[1]) * 0.5f; + + if (audition) + { + s[0] = lowmono; + s[1] = lowmono; + } + else + { + s[0] = lowmono - hp[0];// Subtraction is needed due to filter phase shift + s[1] = lowmono - hp[1]; + } + } + + switch (panMode) + { + case 0:// Gain + { + const float lGain = pan > 0 ? 1.f - pan : 1.f; + const float rGain = pan < 0 ? 1.f + pan : 1.f; + s[0] *= lGain; + s[1] *= rGain; + break; + } + case 1:// Stereo + { + const float lGainL = panDualL > 0 ? 1.f - panDualL : 1.f; + const float rGainL = panDualL < 0 ? 1.f + panDualL : 1.f; + const float lGainR = panDualR > 0 ? 1.f - panDualR : 1.f; + const float rGainR = panDualR < 0 ? 1.f + panDualR : 1.f; + s[0] = s[0] * lGainL + s[1] * rGainL; + s[1] = s[0] * lGainR + s[1] * rGainR; + break; + } + case 2:// Haas + { + float haasResult = 0; + float haasDelayVal[2] = {0}; + + if (pan >= 0) + { + haasDelayVal[0] = linearInterpolate(0, 0.0008f * m_sampleRate * panDelay, abs(pan)); + } + else + { + haasDelayVal[1] = linearInterpolate(0, 0.0008f * m_sampleRate * panDelay, abs(pan)); + } + + for (int i = 0; i < 2; ++i) + { + if ((i == 0 && pan > 0) || (i == 1 && pan < 0)) + { + // Read next value from delay buffer + float readLoc = m_haasIndex[i] - haasDelayVal[i]; + if (readLoc < 0) {readLoc += m_haasBufSize;} + float readLocFrac = fraction(readLoc); + if (readLoc < m_haasBufSize - 1) + { + haasResult = linearInterpolate(m_haasBuf[i][floor(readLoc)], m_haasBuf[i][ceil(readLoc)], readLocFrac); + } + else// For when the interpolation wraps around to the beginning of the buffer + { + haasResult = linearInterpolate(m_haasBuf[i][m_haasBufSize - 1], m_haasBuf[i][0], readLocFrac); + } + } + + // Increment delay ring buffer index + ++m_haasIndex[i]; + if (m_haasIndex[i] >= m_haasBufSize) + { + m_haasIndex[i] -= m_haasBufSize; + } + // Send new value to delay line + m_haasBuf[i][m_haasIndex[i]] = s[i]; + } + + if (pan != 0) + { + const float minGain = linearInterpolate(1.f, 0.15f, abs(pan)); + if (pan >= 0) + { + const float lGain = ((1.f - pan) + minGain) / (1.f + minGain); + s[0] = haasResult * lGain; + } + else + { + const float rGain = ((1.f + pan) + minGain) / (1.f + minGain); + s[1] = haasResult * rGain; + } + } + + const int lowChnl = (pan <= 0); + const int highChnl = !lowChnl; + + float lp; + float hp; + + float temp = -abs(pan) + 1.f; + float filtFreq = 2000.f + 8000.f * temp * temp; + float hpGain = abs(pan) < 0.5 ? 1.f - abs(pan) * 2.f : 0.f; + hpGain = linearInterpolate(1.f, hpGain, panSpectral); + multimodeFilter(s[lowChnl], multimodeCoeff(filtFreq), lp, hp, m_haasSpectralPanFilter[lowChnl]); + + s[lowChnl] = lp + hp * hpGain; + + filtFreq = 2000.f; + hpGain = abs(pan) + 1.f; + hpGain = linearInterpolate(1.f, hpGain, panSpectral); + multimodeFilter(s[highChnl], multimodeCoeff(filtFreq), lp, hp, m_haasSpectralPanFilter[highChnl]); + + s[highChnl] = lp + hp * hpGain; + } + } + + if (dc) + { + for (int i = 0; i < 2; ++i) + { + m_dcInfo[i] = m_dcInfo[i] * 0.999f + s[i] * 0.001f; + s[i] -= m_dcInfo[i]; + } + } + + if (mute) + { + s[0] = 0; + s[1] = 0; + } + + s[0] *= volume; + s[1] *= volume; + + buf[f][0] = d * buf[f][0] + w * s[0]; + buf[f][1] = d * buf[f][1] + w * s[1]; + + outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; + } + + checkGate( outSum / frames ); + + return isRunning(); +} + + +sample_t StereoControlEffect::calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b) +{ + float filterOutput = a * (inSamp - m_filtY[filtNum][channel][1]) + + b * (m_filtX[filtNum][channel][0] - m_filtY[filtNum][channel][0]) + + m_filtX[filtNum][channel][1]; + + m_filtX[filtNum][channel][1] = m_filtX[filtNum][channel][0]; + m_filtX[filtNum][channel][0] = inSamp; + m_filtY[filtNum][channel][1] = m_filtY[filtNum][channel][0]; + m_filtY[filtNum][channel][0] = filterOutput; + + return filterOutput; +} + + +void StereoControlEffect::multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf) +{ + lp = in * g + filtBuf; + hp = in - lp; + filtBuf = hp * g * 2.f + filtBuf; +} + +float StereoControlEffect::multimodeCoeff(float freq) +{ + const float g = tan(F_PI * freq / m_sampleRate); + return g / (1.f + g); +} + + + + +extern "C" +{ + +// necessary for getting instance out of shared lib +PLUGIN_EXPORT Plugin * lmms_plugin_main( Model* parent, void* data ) +{ + return new StereoControlEffect( parent, static_cast( data ) ); +} + +} + diff --git a/plugins/StereoControl/OLD_3/StereoControl.h b/plugins/StereoControl/OLD_3/StereoControl.h new file mode 100755 index 00000000000..70a3e82ea65 --- /dev/null +++ b/plugins/StereoControl/OLD_3/StereoControl.h @@ -0,0 +1,77 @@ +/* + * StereoControl.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef STEREOCONTROL_H +#define STEREOCONTROL_H + +#include "Effect.h" +#include "StereoControlControls.h" +#include "ValueBuffer.h" + +class StereoControlEffect : public Effect +{ +public: + StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); + virtual ~StereoControlEffect(); + virtual bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ); + + virtual EffectControls* controls() + { + return &m_stereocontrolControls; + } + +private: + inline sample_t calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b); + inline void multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf); + inline float multimodeCoeff(float freq); + + StereoControlControls m_stereocontrolControls; + + float m_filtX[2][2][2] = {{{0}}};// [filter number][channel][samples back in time] + float m_filtY[2][2][2] = {{{0}}}; + float m_filtA = 0; + float m_filtB = 0; + std::vector m_delayBuf[2]; + int m_delayBufSize = 0; + int m_delayIndex[2] = {0}; + + std::vector m_haasBuf[2]; + int m_haasBufSize = 0; + int m_haasIndex[2] = {0}; + + float m_sampleRate = 0; + + float m_dcInfo[2] = {0}; + + float m_monoBassFilter[2] = {0}; + float m_stereoizerFilter[2][2] = {0}; + + float m_haasSpectralPanFilter[2] = {0}; + + friend class StereoControlControls; + +} ; + +#endif diff --git a/plugins/StereoControl/OLD_3/StereoControlControlDialog.cpp b/plugins/StereoControl/OLD_3/StereoControlControlDialog.cpp new file mode 100755 index 00000000000..68740a3ab49 --- /dev/null +++ b/plugins/StereoControl/OLD_3/StereoControlControlDialog.cpp @@ -0,0 +1,191 @@ +/* + * StereoControlControlDialog.cpp + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include + +#include "StereoControlControlDialog.h" +#include "StereoControlControls.h" +#include "embed.h" +#include "ToolTip.h" +#include "Knob.h" +#include "PixmapButton.h" +#include "LedCheckbox.h" +#include "ComboBox.h" +#include "gui_templates.h" + + +StereoControlControlDialog::StereoControlControlDialog( StereoControlControls* controls ) : + EffectControlDialog(controls) +{ + setAutoFillBackground( true ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); + setFixedSize( 359, 255 ); + + Knob * volumeKnob = new Knob( knobBright_26, this); + volumeKnob -> move( 18, 148 ); + volumeKnob -> setVolumeKnob( true ); + volumeKnob->setModel( &controls->m_volumeModel ); + volumeKnob->setHintText( tr( "Volume:" ) , "%" ); + + Knob * stereoizerKnob = new Knob( knobBright_26, this); + stereoizerKnob -> move( 168, 20 ); + stereoizerKnob->setModel( &controls->m_stereoizerModel ); + stereoizerKnob->setHintText( tr( "Stereoize:" ) , "%" ); + + Knob * widthKnob = new Knob( knobBright_26, this); + widthKnob -> move( 168, 69 ); + widthKnob->setModel( &controls->m_widthModel ); + widthKnob->setHintText( tr( "Width:" ) , "%" ); + + Knob * monoBassFreqKnob = new Knob( knobBright_26, this); + monoBassFreqKnob -> move( 277, 34 ); + monoBassFreqKnob->setModel( &controls->m_monoBassFreqModel ); + monoBassFreqKnob->setHintText( tr( "Mono Bass Frequency:" ) , " Hz" ); + + Knob * stereoizerLPKnob = new Knob( knobSmall_17, this); + stereoizerLPKnob -> move( 205, 32 ); + stereoizerLPKnob->setModel( &controls->m_stereoizerLPModel ); + stereoizerLPKnob->setHintText( tr( "Stereoizer Lowpass:" ) , " Hz" ); + + Knob * stereoizerHPKnob = new Knob( knobSmall_17, this); + stereoizerHPKnob -> move( 139, 32 ); + stereoizerHPKnob->setModel( &controls->m_stereoizerHPModel ); + stereoizerHPKnob->setHintText( tr( "Stereoizer Highpass:" ) , " Hz" ); + + Knob * panSpectralKnob = new Knob( knobBright_26, this); + panSpectralKnob -> move( 250, 200 ); + panSpectralKnob->setModel( &controls->m_panSpectralModel ); + panSpectralKnob->setLabel( tr( "Spectral" ) ); + panSpectralKnob->setHintText( tr( "Spectral Panning:" ) , "%" ); + + Knob * panDelayKnob = new Knob( knobBright_26, this); + panDelayKnob -> move( 150, 200 ); + panDelayKnob->setModel( &controls->m_panDelayModel ); + panDelayKnob->setLabel( tr( "Delay" ) ); + panDelayKnob->setHintText( tr( "Panning Delay:" ) , "%" ); + + Knob * panDualLKnob = new Knob( knobBright_26, this); + panDualLKnob -> move( 150, 230 ); + panDualLKnob->setModel( &controls->m_panDualLModel ); + panDualLKnob->setLabel( tr( "L" ) ); + panDualLKnob->setHintText( tr( "Left Pan:" ) , "%" ); + + Knob * panDualRKnob = new Knob( knobBright_26, this); + panDualRKnob -> move( 180, 230 ); + panDualRKnob->setModel( &controls->m_panDualRModel ); + panDualRKnob->setLabel( tr( "R" ) ); + panDualRKnob->setHintText( tr( "Right Pan:" ) , "%" ); + + Knob * panKnob = new Knob( knobBright_26, this); + panKnob -> move( 200, 200 ); + panKnob->setModel( &controls->m_panModel ); + panKnob->setLabel( tr( "PAN" ) ); + panKnob->setHintText( tr( "Pan:" ) , "%" ); + + PixmapButton * gainButton = new PixmapButton(this, tr("Gain Panning")); + gainButton->move(122, 136); + gainButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("basic_sel")); + gainButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("basic_unsel")); + ToolTip::add(gainButton, tr("Change gain of each channel")); + + PixmapButton * stereoButton = new PixmapButton(this, tr("Stereo Panning")); + stereoButton->move(197, 136); + stereoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dual_sel")); + stereoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dual_unsel")); + ToolTip::add(stereoButton, tr("Pan one channel into the other")); + + PixmapButton * haasButton = new PixmapButton(this, tr("Haas Panning")); + haasButton->move(273, 136); + haasButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("binaural_sel")); + haasButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("binaural_unsel")); + ToolTip::add(haasButton, tr("Stereo panning with single-channel fractional delay")); + + automatableButtonGroup * panModeGroup = new automatableButtonGroup(this); + panModeGroup->addButton(gainButton); + panModeGroup->addButton(stereoButton); + panModeGroup->addButton(haasButton); + panModeGroup->setModel(&controls->m_panModeModel); + + PixmapButton * monoButton = new PixmapButton(this, tr("Mono")); + monoButton->move(262, 88); + monoButton->setModel(&controls->m_monoModel); + monoButton->setCheckable(true); + monoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mono_sel")); + monoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mono_unsel")); + ToolTip::add(monoButton, tr("Converts input to mono")); + + PixmapButton * dcButton = new PixmapButton(this, tr("DC Offset Removal")); + dcButton->move(58, 161); + dcButton->setModel(&controls->m_dcModel); + dcButton->setCheckable(true); + dcButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dc_sel")); + dcButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dc_unsel")); + ToolTip::add(dcButton, tr("Removes DC offset from the signal")); + + PixmapButton * muteButton = new PixmapButton(this, tr("Mute")); + muteButton->move(15, 213); + muteButton->setModel(&controls->m_muteModel); + muteButton->setCheckable(true); + muteButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mute_sel")); + muteButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mute_unsel")); + ToolTip::add(muteButton, tr("Mute audio")); + + LedCheckBox * monoBassButton = new LedCheckBox("", this, tr("Mono Bass"), LedCheckBox::Green); + monoBassButton->move(260, 14); + monoBassButton->setModel(&controls->m_monoBassModel); + monoBassButton->setCheckable(true); + ToolTip::add(monoBassButton, tr("Mono Bass")); + + PixmapButton * auditionButton = new PixmapButton(this, tr("Bass Mono Audition")); + auditionButton->move(324, 28); + auditionButton->setModel(&controls->m_auditionModel); + auditionButton->setCheckable(true); + auditionButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("audition_sel")); + auditionButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("audition_unsel")); + ToolTip::add(auditionButton, tr("Bass Mono Audition")); + + PixmapButton * invertLButton = new PixmapButton(this, tr("Invert Left Channel")); + invertLButton->move(29, 89); + invertLButton->setModel(&controls->m_invertLModel); + invertLButton->setCheckable(true); + invertLButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_sel")); + invertLButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_unsel")); + ToolTip::add(invertLButton, tr("Invert Left Channel")); + + PixmapButton * invertRButton = new PixmapButton(this, tr("Invert Right Channel")); + invertRButton->move(59, 89); + invertRButton->setModel(&controls->m_invertRModel); + invertRButton->setCheckable(true); + invertRButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_sel")); + invertRButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_unsel")); + ToolTip::add(invertRButton, tr("Invert Right Channel")); + + ComboBox * m_soloChannelBox = new ComboBox(this); + m_soloChannelBox->setGeometry(13, 21, 82, 22); + m_soloChannelBox->setFont(pointSize<8>(m_soloChannelBox->font())); + m_soloChannelBox->move(12, 20); + m_soloChannelBox->setModel(&controls->m_soloChannelModel); +} diff --git a/plugins/StereoControl/OLD_3/StereoControlControlDialog.h b/plugins/StereoControl/OLD_3/StereoControlControlDialog.h new file mode 100755 index 00000000000..25696286080 --- /dev/null +++ b/plugins/StereoControl/OLD_3/StereoControlControlDialog.h @@ -0,0 +1,44 @@ +/* + * StereoControlControlDialog.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef STEREOCONTROL_CONTROL_DIALOG_H +#define STEREOCONTROL_CONTROL_DIALOG_H + +#include "EffectControlDialog.h" + + +class StereoControlControls; + + +class StereoControlControlDialog : public EffectControlDialog +{ + Q_OBJECT +public: + StereoControlControlDialog( StereoControlControls* controls ); + virtual ~StereoControlControlDialog() + { + } +} ; + +#endif diff --git a/plugins/StereoControl/OLD_3/StereoControlControls.cpp b/plugins/StereoControl/OLD_3/StereoControlControls.cpp new file mode 100755 index 00000000000..9596294a25a --- /dev/null +++ b/plugins/StereoControl/OLD_3/StereoControlControls.cpp @@ -0,0 +1,111 @@ +/* + * StereoControlControls.cpp + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include + +#include "StereoControlControls.h" +#include "StereoControl.h" +#include "Engine.h" +#include "Song.h" + + +StereoControlControls::StereoControlControls( StereoControlEffect* effect ) : + EffectControls( effect ), + m_effect( effect ), + m_volumeModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Volume" ) ), + m_stereoizerModel( 0.0f, 0.0f, 200.0f, 0.01f, this, tr( "Stereoize" ) ), + m_widthModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Width" ) ), + m_panModel( 0.0f, -100.0f, 100.0f, 0.01f, this, tr( "Pan" ) ), + m_monoBassFreqModel( 120.0f, 0.0f, 500.0f, 0.01f, this, tr( "Mono Bass Frequency" ) ), + m_stereoizerLPModel( 20000.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Lowpass" ) ), + m_stereoizerHPModel( 0.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Highpass" ) ), + m_panSpectralModel( 0.0f, 0.0f, 100.0f, 0.01f, this, tr( "Spectral Panning" ) ), + m_panDelayModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Panning Delay" ) ), + m_panDualLModel( -100.0f, -100.0f, 100.0f, 0.01f, this, tr( "Left Pan" ) ), + m_panDualRModel( 100.0f, -100.0f, 100.0f, 0.01f, this, tr( "Right Pan" ) ), + m_panModeModel(0, 0, 2, this, tr("Panning Mode")), + m_soloChannelModel(0, 0, 2, this, tr("Solo Channel")), + m_monoModel(false, this, tr("Mono")), + m_dcModel(false, this, tr("DC Offset Removal")), + m_muteModel(false, this, tr("Mute")), + m_monoBassModel(false, this, tr("Mono Bass")), + m_auditionModel(false, this, tr("Mono Bass Audition")), + m_invertLModel(false, this, tr("Invert Left Channel")), + m_invertRModel(false, this, tr("Invert Right Channel")) +{ +} + + +void StereoControlControls::saveSettings( QDomDocument& doc, QDomElement& _this ) +{ + m_volumeModel.saveSettings( doc, _this, "volume" ); + m_stereoizerModel.saveSettings( doc, _this, "stereoizer" ); + m_widthModel.saveSettings( doc, _this, "width" ); + m_panModel.saveSettings( doc, _this, "pan" ); + m_panModeModel.saveSettings( doc, _this, "panMode" ); + m_monoModel.saveSettings( doc, _this, "mono" ); + m_dcModel.saveSettings( doc, _this, "dc" ); + m_muteModel.saveSettings( doc, _this, "mute" ); + m_monoBassModel.saveSettings( doc, _this, "monoBass" ); + m_auditionModel.saveSettings( doc, _this, "audition" ); + m_invertLModel.saveSettings( doc, _this, "invertL" ); + m_invertRModel.saveSettings( doc, _this, "invertR" ); + m_soloChannelModel.saveSettings( doc, _this, "soloChannel" ); + m_monoBassFreqModel.saveSettings( doc, _this, "monoBassFreq" ); + m_stereoizerLPModel.saveSettings( doc, _this, "stereoizerLP" ); + m_stereoizerHPModel.saveSettings( doc, _this, "stereoizerHP" ); + m_panSpectralModel.saveSettings( doc, _this, "panSpectral" ); + m_panDelayModel.saveSettings( doc, _this, "panDelay" ); + m_panDualLModel.saveSettings( doc, _this, "panDualL" ); + m_panDualRModel.saveSettings( doc, _this, "panDualR" ); +} + + + +void StereoControlControls::loadSettings( const QDomElement& _this ) +{ + m_volumeModel.loadSettings( _this, "volume" ); + m_stereoizerModel.loadSettings( _this, "stereoizer" ); + m_widthModel.loadSettings( _this, "width" ); + m_panModel.loadSettings( _this, "pan" ); + m_panModeModel.loadSettings( _this, "panMode" ); + m_monoModel.loadSettings( _this, "mono" ); + m_dcModel.loadSettings( _this, "dc" ); + m_muteModel.loadSettings( _this, "mute" ); + m_monoBassModel.loadSettings( _this, "monoBass" ); + m_auditionModel.loadSettings( _this, "audition" ); + m_invertLModel.loadSettings( _this, "invertL" ); + m_invertRModel.loadSettings( _this, "invertR" ); + m_soloChannelModel.loadSettings( _this, "soloChannel" ); + m_monoBassFreqModel.loadSettings( _this, "monoBassFreq" ); + m_stereoizerLPModel.loadSettings( _this, "stereoizerLP" ); + m_stereoizerHPModel.loadSettings( _this, "stereoizerHP" ); + m_panSpectralModel.loadSettings( _this, "panSpectral" ); + m_panDelayModel.loadSettings( _this, "panDelay" ); + m_panDualLModel.loadSettings( _this, "panDualL" ); + m_panDualRModel.loadSettings( _this, "panDualR" ); +} + + diff --git a/plugins/StereoControl/OLD_3/StereoControlControls.h b/plugins/StereoControl/OLD_3/StereoControlControls.h new file mode 100755 index 00000000000..cc2f22fd51d --- /dev/null +++ b/plugins/StereoControl/OLD_3/StereoControlControls.h @@ -0,0 +1,92 @@ +/* + * StereoControlControls.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef STEREOCONTROL_CONTROLS_H +#define STEREOCONTROL_CONTROLS_H + +#include "EffectControls.h" +#include "StereoControlControlDialog.h" + + +class StereoControlEffect; + + +class StereoControlControls : public EffectControls +{ + Q_OBJECT +public: + StereoControlControls( StereoControlEffect* effect ); + virtual ~StereoControlControls() + { + } + + virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent ); + virtual void loadSettings( const QDomElement & _this ); + inline virtual QString nodeName() const + { + return "StereoControlControls"; + } + + virtual int controlCount() + { + return 4; + } + + virtual EffectControlDialog* createView() + { + return new StereoControlControlDialog( this ); + } + +private: + StereoControlEffect* m_effect; + + FloatModel m_volumeModel; + FloatModel m_stereoizerModel; + FloatModel m_widthModel; + FloatModel m_panModel; + FloatModel m_monoBassFreqModel; + FloatModel m_stereoizerLPModel; + FloatModel m_stereoizerHPModel; + FloatModel m_panSpectralModel; + FloatModel m_panDelayModel; + FloatModel m_panDualLModel; + FloatModel m_panDualRModel; + + IntModel m_panModeModel; + IntModel m_soloChannelModel; + + BoolModel m_monoModel; + BoolModel m_dcModel; + BoolModel m_muteModel; + BoolModel m_monoBassModel; + BoolModel m_auditionModel; + BoolModel m_invertLModel; + BoolModel m_invertRModel; + + friend class StereoControlControlDialog; + friend class StereoControlEffect; + +} ; + +#endif diff --git a/plugins/StereoControl/OLD_3/artwork.png b/plugins/StereoControl/OLD_3/artwork.png new file mode 100755 index 0000000000000000000000000000000000000000..5ee97db8f10dc7a722a854c4f3574f984fe8fb6a GIT binary patch literal 62462 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�n4WL4$v3acEqtG)cI0BAs{w$-3C@NsW#QF%Q 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�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 SjM%g$O!27%G~j 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 b`3U|7XjvY-)hiui00000NkvXXu0mjfeU>-d literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/basic_sel.png b/plugins/StereoControl/OLD_3/basic_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..9fa15efcfbba1359194d328e3609cc4166398a35 GIT binary patch literal 993 zcmV<710MW|P)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirufA7gTIj2dRtWDR(wNcw?or{EatFEJL6RfjXvCdr#FDhPHK{s?b z7zl#GyqVM$$B+s0d*W^;Y=|F7>!?)(zm{dT^CG0PnohHHS-wur$vIv`Qa5$>qA4i( z!wZMQbKV2L_j&%$!z&t_19mbIr)U~f_0Mw13c?{Pc3XQpE>~@p$TgJBrjd)LK`vh) zb$PBzhn8?4Tai2H?K=O&rC8JI2G=vU9gOmKeKC&Cz zu-qzAMn|2#fNS&=Vsfr>u$CSd_;w#h`XGwE(a-#ggBUwPIK$%r==a}7&FNY4Yy7x_ zUPNRb`}UR0KfW37TVJ8P{T+6|Lt!w8c}o-8@JSldI;r7a>en9vAanQuOuq;3=x0cu z$FO<==mTphcCA95j8_s?Xt|8x0WuB#RAfpM%yG>oD3IQM>v)zJu&Kz=_0 zu?!-XL7n*JZ}+qYSCb31;Cu8v#Q1C}}5C z_7K`fGo^Am62@^Pj0!lP=_Rwh6YVNij&L0Fp>FIgE#)%&&vwHr&b-ry{^Ta)-_jU& z-Gr3NQ@`fG!u+!DPO|-LaXh^NebZ{R6K9YnV$kYA@3|5Ar{rJGSR9*19qK0a!T|19 zCy^#*ur{=!KN!L}_9ODkUsnW{0Bqk%|B`N+oPKIybTBQH^GVzXPmvw&Mfo9)y6eM* z;Oku^KN+U(wJ*_o+cDaFSS}|bXP{2aQS9~{N*@Q{D*9`swA zu{>HS{@ev>_KzVd)D0^F>wi9!Rwwwy&skMg)y!IQSdGmAs+WI@yZrkd9~^tS8uBnW P00000NkvXXu0mjf-%8TE literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/basic_unsel.png b/plugins/StereoControl/OLD_3/basic_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..18084a7d2e4ae6aa6b57a8e4088c7a288c0e53bb GIT binary patch literal 1026 zcmV+d1pWJoP)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirupD!#(zkq{tlz z3kyRI;Pd$;HSU7X=OYvVL6Fp#1)ay zI}N)SwpiF+*ATp}Y*hiPRu-XDD)ISzjC(v7&UJ$T8>_1T_|5C3yt0Of@cYW zjfRI~qH(y~#66~_TEBs>PMzjV=QpULmE^9-CT__R8uxsH*Xw0{N7`#9UvCw>`a=v#N+Xhm6^fKo4-=BW_{4*)t9Qs&VHVCt4qktOvhm8 zW?;~WO7$SADap88Ki!sD=fAy3S*ew}9ouO?dYr*4Mv`<|3i9*l@BfZd9i5`QjtmeI zpG=?ApdBaMgQJ7r@5kYA(suX=l@)8TT5asze=z9#!2J7ZYd*-a<0r{TPeZMKgz)fi zrl+T|+3f5;@F~w`Wm2RZ)>iRQw34l_Zzf(7M^sc4)3000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirut03RPBaHofB3WGUv*4`o#~**aTg%D^*eS zi;Pu-v{KP2_+g655LSg1(XJB}E!%Kvb*0j+Db|*{B~6>R=Jg&wq)ih|Vv^~%JaFOO zbDrmapYwlS&fy5XqRM0>=o3U7`D~uG7a5%{H)D+5cB!)lmXN8dh zqN*y1L>yf_UMazUlU0rsq^z(}q$s6Q-X@d2=S<^VPQU!(tc0s!ryX1skJn8)X--uWQ_^42;$L;J9|4!}Yz z{cq1?7q)%JS$O;5ln#im(WvvOJNtB=G^6FULKSy};I%Hd8&iUorZ@_$F48zTOtvb?SiaINeV^L{i%hmaYu%fy`YU_L)X_+T5B zZ$DX!m4xI|EeK7bJ9Yu1qk-kS)}hKZdr3w@WaZTgMuVC7fmSq=if-g$LCj41a@%xS zWoSJ#$hA$cW83jArt>rSU)cV)RmrSxQ~x(a9F1rXHf8BVwr{{VHVa79kA5V6{WWO! z-w0a1k`a*5Qc30N!1Mjn1oqxRUGFgBCvRcQoc@)zZiRAKUa=PwOBmi7CGddbpT1NI5Bm7jz~(R^E$-oKT_(gcBBC20;zy?4I*a! zEFFD>#O9mOAG-h)!2II(Tygw=cf+i>wAhF~dk=~yn6njU@@DM)ituMoB2_&Sh`rK= z&L5$EWB=ND=I}PcJ8r`mN@AG2OsIPsmgH$jXoP$2!!YfIOTjd*ID46zmxow-Z5QIz zFvOGjF}Z54$~$NI`Z}NwL_$NI@lkVRm_+v$mJZ&Vn*X(vddC}U?nwz315};*jlgba zDg)YX!8Gd5Y9Q*-GiZBSNItQNs>8#CUTSCYoxMmQFid-?I&vzz;Yf+@q?=m%2>$2W z(JzDwVrKfjD)n81=uS))wQgavH&jlg#cXO<=20XSu1YAw3JE1N_zGLail|)v6@U5n Y7xoVMDp#6Gs{jB107*qoM6N<$g7jPWdH?_b literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/binaural_unsel.png b/plugins/StereoControl/OLD_3/binaural_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..ba00d93977708c6e2acc0377a059f0c4dbf4e957 GIT binary patch literal 1071 zcmV+~1kn45P)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru?gWOr`@(22xBm7Hpla#Y!W~7HjX_1N5#pwx#WJzvd)8 z=X~e8-}%nDr?*!DIDkdO5e^RE14Z8YP2#-y^W$-ZfoF1(!R!4KN&y8<*F-##Fi1>H z1X!5h^?KuJ%mRN#N<=Z9MubQZfoMvvsS~TkgwI-G^{?b$wV3$qQ@zxtPF{%BVq)&x=VaIJGk39ixHjxVZ>%*d1@+))GyAo&$tV6ZGUIu@n&{bX)$$wOOa+9 z>vA(^(F_P=lbyw?jI^MfH7~E`^5q|S@Zc}X zOG|=s0`&s>|NiG+%zc-bnwlatb!k}5aJrGsTPc@`44-`bk@Vf^bfKIxCy1SCjNf%I zG(3!UPZjkIjWWCC#aj^sfh$-0Nl#zF+T83Q(S-Il@A)Klyjg}yrQ+us1G8un)L&F* zRxA-W>YFJpub^h%L56SN=3w0cLT)YKtMeDg$Vg}1+H4tTLLCO`t#8Kvq^JSFZL0gw(t>G$QjJ3zWqAdp*j-MXJVkx|hwS%w@Oqzy)C}n_ny_L?x#7rR0DL|l_wM~kOPhhp9p%*M-kmsJiz9UQ8w<`y?UJB~v2?ziH002ovPDHLkV1i$A{WJgo literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/dc_sel.png b/plugins/StereoControl/OLD_3/dc_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..f385966298b8867b2e9aaf9d7096d9741d51955b GIT binary patch literal 600 zcmV-e0;m0nP)nfZQa-kbLr#?m>d zYPtj>F;&xLDxH%;)pR*NF@b6BAqrHhKlxlNqBR2_uhwAu$G1p?bzLV2d=voR_lXK^ zEe!xEi5eQev)&Drk2eV8I)oC{YhbLG8F}~~W#vn2!M+%^yJxA+j1!I;C~h6YE@Ljf zMHITHPiYOk9wJz`UXVJoMDorG!f&#*a2|O&14!IQ7pNc0kX(F&HT#(4LLPynIi2ar zsSO;Pl8aihF_&$^msjxSW{4+O@s4M)=9Uq!HvmxA*D#-~^`%qVDeh)F@z~{yt$w9( za4*4h7Omn!exoNxCr<4TbwBJ{)7~vQ%nb--fE54bYn(VhtoR-EgF|4AB2Q)it$*!= zdJx^5N%PVq)u$J!9~#5BUqC#wF+MqL&(9KEJ4$#sL2z{n_xWY~>nD413P4(^{ar({ zW#4R-lawf)Ps}be^57lHt5WMwlL>0K&rv^;CQQT;p5H3DdwE2`>0F|lPJiM5fy$=S mZXiSITtmLSQ$Xti5B3IO-kEnK|NLu=~+wz=ID3I%dG zjj_jJ(%J82c^&JH%WYub#t_|S&T{+CU5q~l{lTm3RhmEut_S;2TACRheMrx_UPkUc zKp;?Cnk_jiIySMmw9I%c&Uh@&t(ya!KGnsm*Kbf&g1~&Nv3+Ysy56G$fQ*kf&|f`jkJhB2UkI>q+PbO zWt*TVZPBI&?jl+VMuC{4m70wXiu3l)y*}mnKJQYVdmZIjrn}cs$BfFo?@c8zhn|EJyx0tn2_y(@3Wc zQ~<+pD8 zk9T98uUy-k?KOmg0U~d1Z1HVgt+h4(^=pkVyTg?A4B@{xfbYRO6vJfkQ9II7xh{?E zQp@a9SL!JoogsPDkJS0Hp34ViYToYhj~E5d$M9Z%iF;y!MAx~TO%tc9C>$I`pIySZ zd1g-~>B>h7lT9)7k!j+s$MHz!JF?XV0rPeviY2H|zv8Z|AklOfO|tvWOAoVO`I};_ zR%m6Dl>%uC5R$FOaF5Oag7$0#qp}#Qtvb7Jn`?2g&EK`>ien{%atD znlRAELil=KqkQ}gKvCa&V)rhw^rRC}6!fVuMGrrK2&v{;Jf9{v6;R8btqKUYS~MP*PlDEXp%%}APwg(OCn55k}VgI;0}gZ_YE5T%+Xq(x9z zX;9EY8blkcp{zxLwQw;;PC5oPqRzrn8^splIQO)uxuZEw&f?DMelEYoIp_X<_nhx} z-Xj5bfTKVX8sYE&&m=%DDB34&Oi0iq3B&Bn4355Dp#vlti64_wnkr$4jg1A6VgP(T zpQgxv2xz1OKnP8dH4+0LRJ1PZ6YMrC&%2(|(f*ibb0c}V*$6! z+sVn?uB3~0=V7;5xqZvLBKDrbd{yhe)D*!GLOlbn-?+({x{KUxxsPwrM}z4K#;hH| zT7>X{V7lzUeui8w(o$1N(r;PyJ=HB5BP_tQcb0eW`!F?G7#$tsM9nd!ER@gEw9$}5 zPtO}BCcaaBxN1f0=#Q|dNEXcdJUB>VV&W?DEcdCdEJK!MUcc?-)4%|`@^^-ft#(^t zqN3M7d4bs^%OYgCBuU7AKL{u;-iymM3<6%*U!m9Q$unlJuC>Z-(f#?Ry1S(K`vfo; zvKbp2XWHvUmSxh@l5q}w0U$kP8vv8jKM@ErGct&ai{oW?hvHvRevpsOp^&lFMyK?W z%52)O9-|?P%JM^`Bqw8PXkuYu5x0AU^L1xwd-w>yU*^KOTE@pcOip>JJypZp+%JwC zKdHp2uRBd?Y01hN8BM{|?xDs86G8~)=jZw6c4M|QGyHV~fR+cXT)tF~#e5Zz@OV7j zYi&ayC@d_%(cizUe%4MKRaF&~mz5~7mvYT);X|K8wYErr$jU9yPNZvK*y#xDk{S`6 p^fe+~!?b_Nh}JOe0x^OM#NU1}H*fC~v_1d;002ovPDHLkV1gs&SQY>P literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/invertL_sel.png b/plugins/StereoControl/OLD_3/invertL_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..d1bb52006613ccc53e13e30a0250367f63d978a2 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7X~gM>e|$kW9!#NzbYDUMu+3`AVwZ?m}E z>6o^waADku$sBuU+;bCHxFcj0hnCi|Uw1XMJftt#oOo7mbjC-aWb!^2FYX5=N=sG! zehImFoldY=ax>@Qp`SHLQ&U$|C+>*Jm+6yMS6plAn#jS}W4PnfzSRr@3-uILee<3R zzk3{*`dHq5ishuPztffFSFGwfvdO7CBf>R!o>rCX>h;bH9_sJ@#=aBR>~H%wbL(Zv zhb2FaZ$Euqq!?ZH^OvmeADjK`vh{r*zHYQ-e5X@V5}TC+^eqE}r>mdKI;Vst0PiVu AxBvhE literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/invertL_unsel.png b/plugins/StereoControl/OLD_3/invertL_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..57494efb9e331c59d4378fa62f48c889ff317516 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7X~gMh~tsw9Xl&H3twD_w#aO;60hNl3b~UO^%KXdcwZA;f>#spGkWhJSQ=fBsZ*D^}%;ZOku#s@oRen7E!a8Ho t^8c|X1UT8MzG)nYX1<_nw{_PS=4igOL-|YPd4b+w@O1TaS?83{1OU5NZyo>u literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/invertR_sel.png b/plugins/StereoControl/OLD_3/invertR_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..b5b8a88b6e5b8892e7765514b88aba95a3a1aad8 GIT binary patch literal 433 zcmV;i0Z#sjP)TlfjmXrrVS z1;I)zBwG51C?qi#v*)cv41#7kxZJ?^<=R~ zDwQS*TCFCJ)hgo4S9t9X^~Q4~At@!kudo1=Qba|sR{)?jgF^7LwZEv{ZV)6T1RA^f zN&4)Lq3w!M$m*7U4+73s8F#)!_UMB8$_&Bsgpq57dVcF5O4rzpHo>$TGMZsU8qoP+ z)cPzzQesu^ja>2D(#Oo7}-B3aZ?M~QU9?S-7Mp*9br*d~F(o?&o%kFP b*T?n^x<0ABv#T$H00000NkvXXu0mjfyy~^p literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/invertR_unsel.png b/plugins/StereoControl/OLD_3/invertR_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..2a4454574daefd52b6367343e228371be6eaeac8 GIT binary patch literal 439 zcmV;o0Z9IdP)~d z5&Y=8T&8%PFR4JZMu?Bkk}o4o(*QaYfNHghUpZ@40BoC9rP4^OS*N)}bX})bv#C@p zF7lV`WDlf9%3nv#1+1)XkRG2RcXZ6q-~c_{hLly1oT;PAkKp9&9LutZ#X6;IJtO29 zh1=UO$5QCJ&Q;+?%Bo&ION$Et2qD7WEc)VQ)zLm`B#lSD% z0Wg;#IH?7|3b0p&fj_`2;A{cm@zx+(Ge?s$@EN$6LtMjg>;+(boCbaXw;ja=b6mQ?gRp67Yf18(18niCN0v&eY^{Cr&#;#IcF{ks?!* z&o!_q>9xbSw`QytRI!M?zP_o#K-8ExJaV?vi znPt?~0KhTu23U+Gy8^Tw;^SzWSet9n zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3*-l4Ge6hyUjkJ_3-Cz;Q^H2;acR_m@vnb#+gB z+>UV7w4O?OV#(#Vpb6(+|GeQJ{1mM@l-jxu)yPj7W#q||9$!E6c}%f9kIzrt@AuNr zuZNW1Z)9E)uJZb`>-+V?>)ey-`}Or6XYzXeHqd+zl=6sLe-xIuF|4bz5H9>r@ zFxYz_$?uuV>+ko(QAcmzx3J5%mBx1%_!s=4M!l_RZCR_995uI*V`=5onr~Ue@HAri zOxT`vd`ksR ziQD|FDF6J%T)zaO|M++B?)RS8?q*R^q_3@|uMj@ZxY5X=JRehj8~-ZL+w(j4?X=D! z+nZuDepebP2l9MVNjuGS(|N8dEtXjF$&G8yE6ej*mzGCf;)yT*n{IA0WJ{MEWKl1| z%lT_9>6v#t^R3jGc_(hoiNU;fe)}8#(;NTm?=#T7UWF-nFrQ|85}dsxS%zoMAGwQ! zr2CF(eTwGu`=cPgC058_eZt(?;EeVf!fN_aTk_;txUX_8uYpqA?*RxAb5|CVgbYMY zQj@0Ga&9RR$4-JKE6-B0k%2_nZx)$L5TO}z&ptPwY3aE)*Zg`J#C+OPY1U4LCdn$L zQa`P9YG_uerPivUw%Y5cQ$>MZRc-3fJDapZZ)t0-x6x*oUV81?Tkn1JIr0#Yxegs| z^fAJilSwB-Pd+`lV@}H^R;-#@vu?xYqI_0ab?IuWud(LNTQ<0}b+_I32z#D%D5XQ2 z9~%7hGtRu!+Lc>wy@0~)cij1vwRcv3{tdt2%im`$y|b2|O!i)4Ck1 zGbQc2UD1B!%uSS89!UjOMn1PD*4+c-HP*Pc#9EsyD)n>DDrFLJ(tehw=I)-96S z8YLt~9I}jX=rlf{H}6@QSeg2)F%wzb8`Nb6Z}^ee&TJ>?MgwhS*-b~7#K%?#Shro~ z)j}!uqCBiFd(|XkIg&^-c9v>kI+oOGVwQSOaVljXqF4M0*J^fhxsl{iIrHw3l?uxn z&e4*T^&O&2HOfL29ArwRSkhL@lcwE=5o~rPyLGeob&RS$B`$LnA-U}{h+@etGKKA! ziEOWh#E#Tj-D}=(*e+pD?`!qiV}(1DCeyK-mL1KC9vigiLKm^;%e^!Wt#i+;)a(dE zmm9{2drU53>V=UISBHNWwi?vusQj6Vjlp^*fAyuZ7AxIr9nvFV*V+9E*Kw;Qy`Bzb z0R<&wMYK_VCClnsuhiJqG(P^!)K{X2p8^R|Sw$pwn##_;zIu%Y{AJ5>I_*bszVh

b?)h{jS?yVl9Aom_Ev9zL&;5m0C?S`}^$EcD}XVI9kuG6r13{c39a(6Mzv*2eypFmqC-wz-sBuIz~g|wO)x)BwbXK z&e})^={W?bgO}zbgM%oEKBd>VC?gWF&>HFK&Q3y36l+-*lV2X}o10X%%AV~%MP8WKmts_QUEByyZnLoQz0KeRg z-s(dF9gb862T%>j&k_$hrZw>AP`_#F?Vxvc9AYule9uIXUDTUt!mX=tkrakp8jF2V z)P1^Us(g9^Ni^|jARR>1%+qtUo(wg>GMSso>!w4pmeC^n?3x?>CbISiPd--$OR|lo zQ`-PQKGwTl2WN`GvQU&`gHjfhrT|Y^2?O?9x3kq)tbjDkGuHOz1X8E`W)?tlz@^qs z00tdAfsRtT>ZYux`-6yb+U62*h;1o@UHb0!*T z^(}gk2#Hj*3ElJxZV;EL)cA!z$sl+M%G4RYH&kPKR!G&IP0b8yD&~7g*7bCVty42t zTu3-0fPM5oE#M3oh80TY)?vw@O^c8S!dMD@E9@%$5ha|M1p09f3L1PeQ&02iB zU^b*U7t`kc>1aB25}8dk0-RW0wCaF7E{IzlR0urVEvc-5Xh3J-l(E zurBM(gr*1F=~tGAUSELpx}ALx^9`|zuinNH!WYV1^fRD9;k61^Mvx$h2_I$b-A3gz z`8s3JeC@@RW8=RYK>$vSW80Es#P^l{@xz%VP_FQ7s) zB8Rub+ral>JV@!JI%Dv?BX%H=+=?_%E}g|gJq=|~l^Vi^io+~< zc|?b&;y~jtp&D%H^>V`*-=68d*~&ihQf!r^<)cd>?%Esvub{k6qkhvM5AI1=;)z#K z{&!LA)FcGa8{!Te1|W(;-ojMKAM76lS@(EIlLD+o82ny0R=%H}H0&ov>_8w46qi0bhB z@PLJrsT3ONo9w?ijq2%|d^pE8r~p+2mDODZ*;Jp(2X5NR;ZEuV)aFWn1;NR#sGLU6 z0h!*)Ae9};Yg2Qm29^|+a1--YpR57X68uT=#;iocTmfuI5l%CO+#AGFsSQOoAl(** zgA_xNu0zla$wQ5{joX2Zw%CT}$!IvVJ6MqE0!(d0h=YEpCUBh()BD>$*y%WGmsTJJ zz7SFe9&Jhlfy8TLRC8l-6a7Ngh*_eE9U|$_aWZL!oHQXk;B=a?x_X~;bb^hJDcXRP zNMPfIKL>K+97u{ZdguTReAu2?P9nhW7ZlLJ36~42xs_1y1B8YdoRLH=NEP5dmr_K( zS%I^T4wnp49Q=m5YF|iA(2hcB@!{9*g z4xMn_1YDj7WkUdHpw}z6ASzH1*b9)I6uDJ_`~U-gZ^JBdQU6du1FpGxnIJ0(1m*6M zC3Ja473Y|zeNh&-R1g!lx>1rBfT3TyUGNz93Ugry@5;P@>1{^3fa!oFc4l`61FB2~ zA#$qwVAk9}!>u$H4T+A)t{6}+$AKLdKx$l?oWj6{2XGHN2~N9!w2C*t0QStShg-;h zbvv+JOm^!ES$#RM>Tl78#cg(|R3o#Zk`|U~f!csPBGkZ@32nk}sA8Q@GA! zgYorXiqld=^#ky0d^5t!*nr3n^$9dL+!6S*svsT`TP~61-<{|wtPoY66IejXaaK^2 z*l3^^pz<;`4k}(W(fs`Afu}(|Qzz#-8#rb9>+Y!7OXfcpvxNdfIr;;vcAUY0d4xT+ z67Vmc^GV3R-3Yc(2Mv{PO>=xy7V3LN*R|FPJm+Ou`-DRZm4-gT1?JH+*04BNg7+QO zPO)KGs3@u$Hz!6n+*DX6B0qw-8mT) zo#a9+p-v$46p-tbwX$N~7#NaCTIv@!(}?q}$>A&q?}shB$LeAQ%QH;nqM`w0v>en;!EsI;sf0 z0ZPpX{h->I35Db|hyudM5%?4-c~}WD$y=jqDy*m|zC--O6C-Co0AHv2bw3Nm+;C0HXn0j$o(<=hFcB9N$o z@&4kG?zo6AM!)cW^Y;%RNuN;d zv>{Fgx5xMeZ&N+9NE3`OA*h1#kB{P5o9M0x9iuWPVhRv9+7l5AA~AGY8Ej;_pTtsWlP{d{){Pu{~`SD zbwpoR(ASNq8;d)ExC7#XC1v@@i4G#usCATPakru{hM!VZ+P{J8cibSwg}u7kgRv@_ z2j`CwW~+~&Fia8*nKP0S6u@62pw>`u;WU^A;wTCn;Ic(f6L<(2t6`-kw7ixR%ksZ) z;>8c1TK1sR0IZ8}Rs#B>4w&|pC# zo5xcDczjaCf<0;3fn~8N(9ZD^qoQb7V0W7!>BlM)722f~eAk+asYWpC|{Oifk-G>6<=BIPd#gE?MCh!%G z#e!1lG`yeKNd@2hsLHTF>(3X(__Z|+SekkZG9Y3wK_#rb+3lzhzK!*}x02g+i zhk!E0El_}aAuiE2q#Kc`$R7OhP?hfAB+#3Fp0DkvAWUdQp)NiX2pg`_r3Naqp|DnV zKBLn;vddV8pZQY8){y=R2K!giyEg`M2ih zCFBy!>v917K#`&L8bThR-X}~r(@QW)O`W>KG741yHpDhTDKr3d;;vGr;4`TxoC;1J zE7M?8R7>3;S%9Jv63xv$+8)nF=V8Chz(S#Mt{)|mWB=yBFX$TlYDB|^eijk zz)h%~L4?ux{v{_ZhYv)MBgFh1nnz;juHup&SDX|z6%*^8G|Gr>oHiDMD5B-#uNm0~ z1ez2pLYS`60{XG;$Bxsg5nYZ;WY0UEvuF5taX%?Ju^;3rI!OI13rG#R1czEuET++e zNLAbJu_I>4A-ellQK&)*{@n~eLMOK@KXo=$MUQ873 z3B;@&5^gKJahi52)i{ zkh+sVKGCN^rY!bLur2vFbD4Icyy#6@hs<<|i@)4+qGm|Vpm;{C4`nA$?eGJE=6r`B z9R~Q*ulX=DxS##x6U;;AqMt6dFR}#J_ZNo4+ZNybqr&sPenvIacz?(nCRIck`Ka$?%U5=BtgNhz>U|KAIypZoh+p7{Z1GI-!m6rn<>6dwn9(V5mp;2X;)inlax@~4sNimmS5ks#CA%cFy5tf-{%t}%kzT@j20lwZPc$WXU zKSx9@SPTe=#52q=ZQ^y}sZHD9yiXiuWmzRYCytwRLE=ZQD;~dbF1al5%&3{o%n?V4 z#Zm_=9n8w6Mm$LzQ#GCPg`CGK=Pk}!wZ>Za;~#SU61fy|RlvwGj}2&$T|f9A{O;B&PK4lwv+$foQ{L7GCb2)v)sH|2qW zTcCH<>#enq(+40+U8Qe;gF|4nMA>UT@9ydB?cX!4{(b;eD{`B_5&Gu<000JJOGiWi z000000Qp0^e*gdg32;bRa{vGf6951U69E94oEQKA00(qQO+^Rf2MrP}2}d7dtN;K2 z9CSrkbVF}#ZDnqB08nptWpZU?AYyqSM^05QOlfX)ct95{pa1{?pGibPR9M69n88kj zFc5}+3c6XMCzCz!LSB9Uqb3|Mo;0Yt+ZhjpSPF$sDHtM?G$Fe%GyU5Bofg<_bxQzn zes{l{qho8s9I`oi4EePEN#YU_RMH2Z9gevdz&4nxQ$ycLev<;L@^aF@`RsZ> zWY8pe5)+c7D+|hJ#K)2~-?g9Hj!GbIL8_$2%+0>ZBhbeHxRzk(vW_K9r@EN*H8rqH z4m=ywl>|x%9O(c`^|ys>=NIaGEZ@0H-L1Ngu?L!XtqBE&qnpKL^a`p61&PV zH%;Goz8h-%s?1YfV$HrKBqmhb=Sq#af}o2yTGY`;bk9?{=1DG)}#kH(p}(}^H&4?=Jo&;aB;KS6!8AN z%;o%z48R)`JrK*T8daL@Q~{8_%1)-hD*!wJc){;Mb#KeHX8?~smv4c7Aq)5Y00000 LNkvXXu0mjf(VzwV literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/monoBass_unsel.png b/plugins/StereoControl/OLD_3/monoBass_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..b5e6462f66b14761a4f053130f47674d168a4a70 GIT binary patch literal 5529 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 b$ypme9CKl&Jb1X~00000NkvXXu0mjfZjnjR literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/mono_sel.png b/plugins/StereoControl/OLD_3/mono_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..4996a84eba22eadf6bb3fb1c99339665f6a20752 GIT binary patch literal 783 zcmV+q1MvKbP)Br>Z-Py}W{1O+WxS&M2D6a=l3rgpk$ zQ&dnyMMy5(2+<2QL=5r~sWl3M_-Gn)X6_6#cjmN^8JzMl19NxxgR?o@@4Nhe=iI~p z9;vvbT>SRWkkI3pT3xcD;wdUcQWRBGR8`?{xJ)W*NYg@0`g|z59w!owu^5~+sjMMY zRnhf07Jzu%{2bR)ije|<5GIiZL_=BTVr1zz1eg%{9{|ehLG(>75@&XxHEhHBurIwo^xb7B{xI~-W%%Uo3F5^r zgj-z-8UKa-%M{v`hNWk6@EcK+W%(A*?*I}>>>tKiynY0ADuC2Iy~3KU;QQy8u(f_7 zy0eVriOL-P`LD@hBrgP5+j>aaRqW3PGU|~>X3&eAhje;!AV z53RXAH@^WjSq$cdm<+SArVXimJY!z!_=$CFj^MpU66dN())W%ESx=~O7mkj>%nZPK z_dT%+4+*y|YrhdS8Qh17)w6}bd8wU<_c(uU9V2N|Q34vSmjkFR-T!C&2;zJ@N-%Yx zXYJ3gBtR4umzo`EHofKiOsa7;JN?`mSCdz+zeXmptj{p>0x`D>#J?aIDQn|@yNv(< N002ovPDHLkV1i=@U}69O literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/mono_unsel.png b/plugins/StereoControl/OLD_3/mono_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..7c854ccd3c61e8138831fde7dbcfe9c2993faa34 GIT binary patch literal 808 zcmV+@1K0eCP)+u)5aMcrEv!4?(TOvo5T6Od%pkq|L-~X z09*hj0iiUzO%I%R0}Roz@fvTn8U_D{*<_-(yLHwB(5&Fb%fDlSV9E1m}Uo=;vwyF%H(a5EoTx;LM`&tgg#ZpjML__m8)ZW{;b>k{w zp`l2Ugvn&0p|OeAmG7(?LI`rTchOJ%0-(J31+Pj<`O@08C119H$(3P}^WcCx|y7wp}ew&=9bSSC7!lw z)YR4y84*rMaDYuEIKr31ll!_QbGdv&V>7-Q4Mz{h5OW}!>bEsk!+V2+Fd9vaj8E9` zdV2ft_4UO|@&sVw=Oq0D17v4rteduQkneg=?lQ)U<>eJRySmA_a+#^=X$FVK*Vf0T zyf!T3hA}0jZwL+!;$T$7<{Gibm%-C&NxJ^A%(}dy3NJ5-y7~_`{Uf8J`1q*V6R_Kc z7abLe!7#_)g$3)_u?amtdV0u6PqW6t5xyLrWX&)H80O5Rq-D|G)oYUho!|S=>2%z? zt>yTUICk#XPF8v<2??k8)YxRBfq<9AW%&E=LZwnU&X>WHhb6=0fUu)25ai`QMw@$$ z+?&^tBnh+m5B2r$DXpm9q%mWdqqVJ_udi2nd7AK@Hc8000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru83PyA(I{9ajmZFP_ zbg6?lLK_z`;-EqYV@sqEtL7R>b4f|=?m4tclXz#^;R=QO!sEE#z4yKMzWlzw zd-tRbo3@C&I*p-MabXRwtPqKIB6(#+bj9NYgB`9aHYk;fWF{w(4ZTWvu0mnlw$ z6h%STt9SsaRo8<5LrotU03lpOmH-*R38~caK4euRy#GNxRvtc1@xWFh*Pi3~Fh%ZJ zFR|UXVWv{=lS^M9+WUyy@L6k1{3x()?|szqK1{#T^ej9whVSZIXT@?xE-?KH#<>LE zd!GS4yXL z0#G@>2mhBWl5VVW8#+|7#`y^YeoZoUur z@U9tpj~P%1Jp9*000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru)5kxFS3))ak4TuOuq*hyywifXw zwwS5~TL`3B(@?=8dJ}rH=PWv0?uroXF&HI>r zGdlnm0R<3NHLNk4JPfi03RX|nwyU! zfVOijEU&DR&1Orml#eTYHhRyjxf{h(W1dTxee;&>E*D1+H_&jv&E$)zk}xa5V2rEx z_AOqACkxfA#I0#Umx&}vXt`W5OM^M~4-64m z_*CuBaO+Dx!ihi-heKvMJX6%3QdKlfV|U%o!kD^UI{-+e*2-+@*%wtTrmrjnq}Dcc zlk?_gmT2@Fmpj@SeKJNar{TTiAr@0eBvoBoMn0;1bP#5-GPEra3_tdB)pvz^19t%l zMNt^>kLr%mYwNqyQ*v~e#y>V;8Y~GA_50k`iSr*?Sz65RhL$Q$@Rt53XIcM-70bH( ctMKyg7a)*9PKs+T^8f$<07*qoM6N<$g0lK7asU7T literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/soloL_sel.png b/plugins/StereoControl/OLD_3/soloL_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..8c48c959b972d9da8ddd8f56337bac1e9f06d44e GIT binary patch literal 3369 zcmV+^4c79BP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3#rlIyw+h5vIESpo?TAeY0jDm%#X^MRIoxYN6- ziruzkN+Lji0YNbieN_ujg9$KJJ1% z7lfh6F}{A*@{DiBxhLdjd_MDZ#`Bkn`ZG}&-!Jt3%wHb^&-mL=3@-!z@z9NDq9~8$ z^!oi6_N7(*x`dU!c=>fI->-)yzCN9g@*TK`#l^;X!|=yc`Yq`gz%nm;{d~WA1l0-Pv%_jyYa51&IIiR*#_?!S`Y`$C#0}K z4=3z6ciWld|eVJo=O%!xJ6A&V7XPgNU1bhiGhZ4MsXb8ly0#L_uiAe?s1Zcl- zQWCjFGDsD(%`+PAy^`fMjA8;rj)i2cmZX4{Qiea8Dje!L=9F_TE^Ds2~S#aO!ENf1viD z`u**G(3d}>79P~(B4zjKCu$6 zI0I(|Lref<2gxUVVE2jKKjP+c`D@(dPsllg?*DXWV{)+UmF9#S4&Sp~cik zvhR2o>y9iA11Im5&XKHGAzpDh!wzxz7i>8bZ{;z2RG_L6z{tJ`12xvS*@p%yzWzs%MA1Pwkv=<2lU{c(o;szy3>l%e()o0knXx!DM48$ zIr;{m)HXB-$suL?(I(n?B-MZh_Z7(dtU5xUuwS5b+Ox5aud#Pe@MrlWCf_l%_Ugx* z-M71&&X(d@y%nQp`jO5xra~(m+A~m@Rt(Zk_SdNtKSUYxzTl_dL;=5G- z{O1uMCO#aIajHZ9_+2j_WGOlbGiw-UL&Ni;#?t2R(Mu+2rVWMz91~}Cmv;7clf)zi zdWO^a8XF*={58w+$OE%FD?maR=s%-P+C%MJtMw+5L^pT87Ya-}iA+M+>dm*EN+o4* z_>^Ewn?MJ}8c#!2 z(bORRJ4545K25ZUes1-O0l);84*P+ldIWofKZC|;=i+=7Qxn>82? zLh6x@$r7W$WKtm;40z*(VjfkzQBMGb0W{gl zsw(>l!M||zK$?Gf?tbe!ZBeC&lBkQl#2Hc7C}2>}o@WfwNszEOr~#9zG%l3xU5iF-`WQ59Y|~Nt=Cux6 zM#k%6rZAVVlw>)}8PMP(2^AN&ip<`#EF!`B#7Oknx?2V@g7-9*h{MqMR!iXa4ljzS!61-#B!^( zwGor-&W!y^r$3KYBBnRs)JVi%xEV?KeDOXFphq0nI9DJ&hQPYa}Qx4eg4G^F?{ty$kj3(P)q`<8F7EQJN8RrV3lD|e~(7grviMWfyMp_#Y?hR97 z{~uXBjtPHBBfYA`F4&r&O{7pN`g4Qnh0+@%bp{bk1ES4--_{+jO?X6iWkF}gC+Ly+ zqv$NC^SSMUBmU5KhGYK|p@x#*E;btZvSBdgDuZcn{zTLqFaYotqLXOJ!Cv>}Gur+b1O zc1=`N@EVB}32RaSm#<4{hUP|a=@V|Xwe3LJUkFG5=a)hD-S#g=+fTSsS{qZ%(6pZJ zPEX>4Tx0C=2zkv&MmP!xqvQ>7v;4t5Yx$WR5rf~bh2R-p(LLaorMgUL&O zgeDD1ii@M*T5#}ZvFhOBtgC~oAPD||I5|2gx=4xlC509-UU#0mH3=^)T9d%KXP61_>FVXWr1f#%}jcZI7%!Q+gNF1Rx&l>N#dBQ z>69;IJytnyan{OJ*1RWwVK}cZFL9mL0Fqe1A|!}VP{jtyuo0(SC&faV&J#ZVe%CLN zOCi?=7&+!qfd<+2ga5(r*;<8(aW5&H06JeB=VJ&6?E;OO<9r`GPU8d!J_A>J%U`Jj z)1Rc*T3YM~=-CD?u3MV22VCv|eNTpL%B~coB@_z4`x$*x4(PoFx>voqHP3PS0Ay%Z zsT<(n5Ew2}_L|STyV~dWZ%=c6KTT3{n9)rP_y7O^24YJ`L;xKC{{ST8s5o!{000Sa zNLh0L01FcU01FcV0GgZ_00007bV*G`2jmA00UtG+U{`Yh0010xMObu0Z*6U5Zgc=p zZ+B&KWn>^?c_2qlRWD3wZgqG-7c8Iv00B8kL_t(o!|j*NPQx$|gvaZE0Ko~VhrUp+ zy#KLC96+2v6an7h5GpDWhqcorwCqSe`A5m;@z@KvCRYH!i_0q~F_B)LpU?mRSUx$W z)Z4$GCl;G!wy!U? z=8QEObGp;%B>#kaO5tsR=QeD2y}nJY{T?b2LNG!HkLsvfHfy}oLTkLZ_7^b&FVeZy z6#>6F&=MP?W*MA7=@^0x zhE@{|*5_Sr&OE?v#bf}$lhZTPU~9$oZ>v&61^@o`TJ}y?O%RDrH^ZhR(;umNZOv~@ zAFb zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3#rk{i7ZhX3;vIRXiAJr38Z+#tu#14*LRwpY5A=`h@gspU-hR?dffx{v0Tb&j-Cf$FI)`p6#!RG(0Bo&lS4y97yFk zbA0^$oY?19%lj5qd|Ro1hJm-UkL2?yC8r`eHohzOuF0v~KoeXRQJCqur}F}VsD8xg zb^qz*USIxtd-Xdd?3?=)Cp7$;5+y!+=ub%I*NXD@2Y3ARYv?b&ZxfgPT9JG{&=;p) zulnPC&Z_6^$L@N}K$IU_3tu6;-{?5NQ18z&SK*!bUhdVnD$`8RUXX2Y&Cr54a6Tc1 z6?!;f-}?-cB}Um&xQk5D+g7zmlc@%Lv@0AbP+)0QaXR6P(kx$V33uLh=bNE2^9pp8 zz+f=w*O&X3RyHrw5E%mH9qOzPz zHtX$0OGI0_lu}D8y=sj$)m%%hwbkCFDbAc)Zl%@MT0hWl zQT@E!PyX^})WQ=rxky>R@&h%ROL+|u%ubSF24WHeh!;b^EYUFYHN+@}oMGmhAPVdX zpKu1w3Wk^f$PSWD_`>c7a{m)Im-1iZCVxWC8Fc>-_KEE@%+|8HzO}hm;~1^)TBdK^r+#WzGEirqs|<-NtdVAE zZLmFPQr8GWu|4s1_pT$kkiD{qJy+HDjeKhvrOX(5nTh4r2Ifnj3= zcb*2BWv_Hx&TH&Uz*^9}_uT7@IRU6d(2sphi(ySMY(;dW!g6+8)0{UgE4OwjVC06k zj-SB&+*Z02R@6yc%brkM4ZBO;wSkg5Eokr}$`L zfzyeZ>?timdTPOA-DE|vw~^4X^&r*nM{wH7 zn1zK017WKbDaVrgPPr29UOr%P?^u;Lk>!=^>AKDyr}wEnXJlB~DGiz&++uBXHGF4H zGNbdmdVWu%1=trLF+i(Nc5f7|1RxZHskHUP={wDXd&g^YyWCq^ft+B1b@AswWhvF79>xgu(}4s-5L)BYLih*M~+wS5NKN3 zSRGozAG{|a8KQ;-r4cdM!LrCY#7kMJt6)y%^-~cx`w()zjI9K=g*|4x&{J^@sKJg& zFbt^$FGu5Bl+p3hhNq`BxLqDrDUi?mM699zFzZ)K*kcyG}wOKqs`-I+Li`N9mH&`(VI>;$jD{vD!HZO z<6fMWy^&}~8!B3i%%CTF47ytjcdICIWH_1TvCs=eM9s6GPQ9=Wu~|B*(HEKe$vF#C zEDPv4cLdl;-2ouT7ibApBRu5klfrOmNv7CAA|dab$k#2B5&4#h9l_5*azF5+V^$o$2ZuY9f4LS;&i=b&F=h~ym1v?qR?ZYmWxEwS{d5#uWj_Km@=|2$d#M@p^ zx#2HXRCJs+%5puW!51oB%CAB_UC@rX=`|PJT;}311?QKgD}q3!@ake6LcqxIBkEq3 zKS+J>o(i%z_{o81)T2s@*Bi6YCbe0!8#K;r<$R57=ioTp$=fPC7HR(kL2Il&z-a30 zjqb@5aN<->*x7=-*94bwMEfpttcgN5cByU;;9Annk_G=enDv<9`evmWgXv?!cNXxB z%X4$#wYi0Bbr=3Lz%8CQv_Qti;bLs_*|u!waB2nmP)BWvQyjEJGm*t{DmX~@x&4pX zw}rMmV$X=IqhWoEhnbUaZ0N#~Ix(wV5q@&EXd=h zIh^6g$s?Blkx-$>xh*dV=LpH1pegqbzQoC*wLE8Io(z^8o5ZS~(2{9&JFu|-ZuAtd zj%qSVJUBG3T^~{gxvp}|31^gB37E?P?YR~G#XGyg%EdZkWdxsNloS$M0_w4cg)TKA z= z|_nBPshT8FoEB0fgH#ov7c}AyRQZOx`&k@=efejk;`(Kxeb)(2gwj1Fzr^g zh>3)x@Jgvq8a0kAG5~nslo_`nbK^bu7$wx2)0{&21!@*cKSC8>hf^JphCe`$9))SX zg`J4P=@Nr<;)Gki7{YPw#Erm8jhzrMSF`h&0gh?Zf} zBMoze5M*%d;Pzj%gEwF4=hLhJ00D(*LqkwWLqi~Na&Km7Y-Iodc$|HaJxIe)6opSy zr6Mg3b`Vj>PzAw)sEDIhp$HX1tfqw6tAnc`2>yUL zIXWr2NQw6)g%&Yhc)XAE?m4`7A0X7rOtU)108O{ebTT1kb1P!#6(K|rz#v9sW*M`R zl!9-4-BTykU7Tn6_x)KBHE%H>AQI0o!?cOliKjMggY!Odl$B(a_?&puqze*1a$WKG zjdRgufoDd|OnQzuN-P%JSZQNcGBx5!;+U%GlrLmGRyl8R*2-1ZyeEHQIIk}+ah=ux zl32hZB#2N@#Rkf-5vN@z#X_3S6F&Za*DsMvA=d^NIp$G;2HEw4|H1FsT7`*mFDaY= zI$s>;V+aWC0*#vEd>=bb;{*sk16O*>U#SDrpQP7XTI>ku*#<7ITbi;5ThHeGn3!EeVG75^d1C2rt`aAl5u?~;?TyrY`Hh9d$_*@Ge^Ce2Acl{yo3fe&_z_M zO}Jez2k^e!fW}?~5}Zhwql-P)tjTNJk{DZ*a6D;8*ZD6&sVAMS@&HZl`no zGnlA1#g$?qF~A=-t9DM8sD#FtBGi@zxZ;uMTC1Q4#rh^r*__m%j@8BqUfsVuAAqyA z!t3q@)x{--=r#`TZ?LX{ySf?U`RNgLy&tG_9M)ABU61hr_#q8Ky}!|R00000NkvXX Hu0mjfa-Pg< literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/soloR_sel.png b/plugins/StereoControl/OLD_3/soloR_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..299078f717b8d81bc0bda96973b5d48da9a158c7 GIT binary patch literal 4530 zcmV;j5l!xiP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3&sk{mg%g#Ysta|CW6$m4*U*}K6Ue?CM;sY_~2 zzizXsR8>aC!UYbvJ5u5N`~PnE7e7Tx4pp?b(OTrEjyke&(BtRFp1 =kN0)`@NQa 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 Q;{X5v07*qoM6N<$f(eSBzyJUM literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/soloR_unsel.png b/plugins/StereoControl/OLD_3/soloR_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..dd799831a10c49cb2c8335cb838adbfa758c3f90 GIT binary patch literal 4154 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 Ef~!8o1ONa4 literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/soloStereo_sel.png b/plugins/StereoControl/OLD_3/soloStereo_sel.png new file mode 100755 index 0000000000000000000000000000000000000000..d3974efa02884a4fbbd563188fc20a7694b3c4c7 GIT binary patch literal 4423 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 N002ovPDHLkV1ga7P-_4H literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/OLD_3/soloStereo_unsel.png b/plugins/StereoControl/OLD_3/soloStereo_unsel.png new file mode 100755 index 0000000000000000000000000000000000000000..23cdd827544b895783274c03333b2340e74551dd GIT binary patch literal 4570 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 Ef|!w)qyPW_ literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/StereoControl.cpp b/plugins/StereoControl/StereoControl.cpp new file mode 100755 index 00000000000..f4614b85262 --- /dev/null +++ b/plugins/StereoControl/StereoControl.cpp @@ -0,0 +1,443 @@ +/* + * StereoControl.cpp + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "StereoControl.h" + +#include "embed.h" +#include "interpolation.h" +#include "lmms_math.h" +#include "plugin_export.h" + +extern "C" +{ + +Plugin::Descriptor PLUGIN_EXPORT stereocontrol_plugin_descriptor = +{ + STRINGIFY(PLUGIN_NAME), + "Stereo Control", + QT_TRANSLATE_NOOP("pluginBrowser", "General utility and stereo processing, including multiple types of panning and stereo enhancement."), + "Lost Robot ", + 0x0100, + Plugin::Effect, + new PluginPixmapLoader("logo"), + NULL, + NULL +}; + +} + + + +StereoControlEffect::StereoControlEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key) : + Effect(&stereocontrol_plugin_descriptor, parent, key), + m_stereocontrolControls(this) +{ + m_sampleRate = Engine::mixer()->processingSampleRate(); + + m_delayBufSize = int(m_sampleRate / 160.f) + 1.f; + m_delayBuf[0].resize(m_delayBufSize); + m_delayBuf[1].resize(m_delayBufSize); + + m_haasBufSize = int(m_sampleRate * 0.002f) + 1.f; + m_haasBuf[0].resize(m_haasBufSize); + m_haasBuf[1].resize(m_haasBufSize); +} + + + + +StereoControlEffect::~StereoControlEffect() +{ +} + + + + +bool StereoControlEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) +{ + if(!isEnabled() || !isRunning ()) + { + return false; + } + + double outSum = 0.0; + const float d = dryLevel(); + const float w = wetLevel(); + + const ValueBuffer * gainBuf = m_stereocontrolControls.m_gainModel.valueBuffer(); + const ValueBuffer * stereoizerBuf = m_stereocontrolControls.m_stereoizerModel.valueBuffer(); + const ValueBuffer * widthBuf = m_stereocontrolControls.m_widthModel.valueBuffer(); + const ValueBuffer * panModeBuf = m_stereocontrolControls.m_panModeModel.valueBuffer(); + const ValueBuffer * panBuf = m_stereocontrolControls.m_panModel.valueBuffer(); + const ValueBuffer * monoBuf = m_stereocontrolControls.m_monoModel.valueBuffer(); + const ValueBuffer * dcBuf = m_stereocontrolControls.m_dcModel.valueBuffer(); + const ValueBuffer * muteBuf = m_stereocontrolControls.m_muteModel.valueBuffer(); + const ValueBuffer * monoBassBuf = m_stereocontrolControls.m_monoBassModel.valueBuffer(); + const ValueBuffer * auditionBuf = m_stereocontrolControls.m_auditionModel.valueBuffer(); + const ValueBuffer * invertLBuf = m_stereocontrolControls.m_invertLModel.valueBuffer(); + const ValueBuffer * invertRBuf = m_stereocontrolControls.m_invertRModel.valueBuffer(); + const ValueBuffer * soloChannelBuf = m_stereocontrolControls.m_soloChannelModel.valueBuffer(); + const ValueBuffer * monoBassFreqBuf = m_stereocontrolControls.m_monoBassFreqModel.valueBuffer(); + const ValueBuffer * stereoizerLPBuf = m_stereocontrolControls.m_stereoizerLPModel.valueBuffer(); + const ValueBuffer * stereoizerHPBuf = m_stereocontrolControls.m_stereoizerHPModel.valueBuffer(); + const ValueBuffer * panSpectralBuf = m_stereocontrolControls.m_panSpectralModel.valueBuffer(); + const ValueBuffer * panDelayBuf = m_stereocontrolControls.m_panDelayModel.valueBuffer(); + const ValueBuffer * panDualLBuf = m_stereocontrolControls.m_panDualLModel.valueBuffer(); + const ValueBuffer * panDualRBuf = m_stereocontrolControls.m_panDualRModel.valueBuffer(); + + for(fpp_t f = 0; f < frames; ++f) + { + const float gain = dbfsToAmp(gainBuf ? gainBuf->value(f) : m_stereocontrolControls.m_gainModel.value()); + const float stereoizer = (stereoizerBuf ? stereoizerBuf->value(f) : m_stereocontrolControls.m_stereoizerModel.value()) * 0.01f; + const float width = (widthBuf ? widthBuf->value(f) : m_stereocontrolControls.m_widthModel.value()) * 0.01f; + const int panMode = panModeBuf ? panModeBuf->value(f) : m_stereocontrolControls.m_panModeModel.value(); + const float pan = (panBuf ? panBuf->value(f) : m_stereocontrolControls.m_panModel.value()) * 0.01f; + const bool mono = monoBuf ? monoBuf->value(f) : m_stereocontrolControls.m_monoModel.value(); + const bool dc = dcBuf ? dcBuf->value(f) : m_stereocontrolControls.m_dcModel.value(); + const bool mute = muteBuf ? muteBuf->value(f) : m_stereocontrolControls.m_muteModel.value(); + const bool monoBass = monoBassBuf ? monoBassBuf->value(f) : m_stereocontrolControls.m_monoBassModel.value(); + const bool audition = auditionBuf ? auditionBuf->value(f) : m_stereocontrolControls.m_auditionModel.value(); + const bool invertL = invertLBuf ? invertLBuf->value(f) : m_stereocontrolControls.m_invertLModel.value(); + const bool invertR = invertRBuf ? invertRBuf->value(f) : m_stereocontrolControls.m_invertRModel.value(); + const int soloChannel = soloChannelBuf ? soloChannelBuf->value(f) : m_stereocontrolControls.m_soloChannelModel.value(); + const float monoBassFreq = monoBassFreqBuf ? monoBassFreqBuf->value(f) : m_stereocontrolControls.m_monoBassFreqModel.value(); + const float stereoizerLP = stereoizerLPBuf ? stereoizerLPBuf->value(f) : m_stereocontrolControls.m_stereoizerLPModel.value(); + const float stereoizerHP = stereoizerHPBuf ? stereoizerHPBuf->value(f) : m_stereocontrolControls.m_stereoizerHPModel.value(); + const float panSpectral = (panSpectralBuf ? panSpectralBuf->value(f) : m_stereocontrolControls.m_panSpectralModel.value()) * 0.01f; + const float panDelay = (panDelayBuf ? panDelayBuf->value(f) : m_stereocontrolControls.m_panDelayModel.value()) * 0.01f; + const float panDualL = (panDualLBuf ? panDualLBuf->value(f) : m_stereocontrolControls.m_panDualLModel.value()) * 0.01f; + const float panDualR = (panDualRBuf ? panDualRBuf->value(f) : m_stereocontrolControls.m_panDualRModel.value()) * 0.01f; + + sample_t s[2] = { buf[f][0], buf[f][1] }; + + switch (soloChannel) + { + case 0: + { + break; + } + case 1: + { + s[1] = s[0]; + break; + } + case 2: + { + s[0] = s[1]; + break; + } + } + + if (invertL) + { + s[0] *= -1.f; + } + + if (invertR) + { + s[1] *= -1.f; + } + + // VVV Stereoizer VVV + + /* + The Stereoizer delays the audio slightly, inverts one channel of the delayed signal, and mixes that with the dry signal. + This results in an extremely wide result, even with a mono input. + Also, when collapsed to mono, any previously-mid part of that delayed signal will be cancelled out, so it's very mono-compatible. + + Of course, delaying audio and mixing it with the dry signal creates a comb filter, which is undesirable. With certain inputs and delay + amounts, it'll even result in silence. To help reduce this effect, the delayed signal is sent through some allpass filters, which makes + the delay vary depending on frequency, so the comb filtering is significantly less obvious. + */ + + float allpassFreq = 0; + float delayLength = 0; + allpassFreq = linearInterpolate(370.f, 170.f, stereoizer * 0.5f);// Arbitrary + delayLength = m_sampleRate / allpassFreq; + + // Filter coefficient calculation + const float w0 = (F_2PI / m_sampleRate) * allpassFreq; + const float a0 = 1 + (sin(w0) / (0.707f * 2.f)); + m_filtA = (1 - (a0 - 1)) / a0; + m_filtB = (-2*cos(w0)) / a0; + + float delayResult[2] = {0}; + for (int i = 0; i < 2; ++i) + { + // Read next value from delay buffer + float readLoc = m_delayIndex[i] - delayLength; + if (readLoc < 0) {readLoc += m_delayBufSize;} + float readLocFrac = fraction(readLoc); + if (readLoc < m_delayBufSize - 1) + { + delayResult[i] = linearInterpolate(m_delayBuf[i][floor(readLoc)], m_delayBuf[i][ceil(readLoc)], readLocFrac); + } + else// For when the interpolation wraps around to the beginning of the buffer + { + delayResult[i] = linearInterpolate(m_delayBuf[i][m_delayBufSize - 1], m_delayBuf[i][0], readLocFrac); + } + + // Increment delay ring buffer index + ++m_delayIndex[i]; + if (m_delayIndex[i] >= m_delayBufSize) + { + m_delayIndex[i] -= m_delayBufSize; + } + // Send new value to delay line + m_delayBuf[i][m_delayIndex[i]] = s[i]; + } + + for (int i = 0; i < 2; ++i) + { + float allpassValue = (delayResult[0] + delayResult[1]) * 0.5f; + + for (int j = 0; j < 2; ++j) + { + allpassValue = calcAllpassFilter(allpassValue, m_sampleRate, j, i, m_filtA, m_filtB); + } + + allpassValue *= i ? -1.f : 1.f; + + float lp; + float hp; + float hp2; + multimodeFilter(allpassValue, multimodeCoeff(stereoizerHP), lp, hp, m_stereoizerFilter[0][i]); + multimodeFilter(hp, multimodeCoeff(stereoizerLP), lp, hp2, m_stereoizerFilter[1][i]); + + s[i] += lp * qMin(stereoizer, 1.f); + } + // ^^^ Stereoizer ^^^ + + const float sMid = (s[0] + s[1]) * 0.5f; + const float sSide = (s[0] - s[1]) * 0.5f; + + s[0] = sMid + sSide * width; + s[1] = sMid - sSide * width; + + if (mono) + { + s[0] = (s[0] + s[1]) * 0.5f; + s[1] = s[0]; + } + + if (monoBass) + { + float lp[2]; + float hp[2]; + + for (int i = 0; i < 2; ++i) + { + // We apply two filters because a single filter doesn't have a strong enough slope + multimodeFilter(s[i], multimodeCoeff(monoBassFreq), lp[i], hp[i], m_monoBassFilter[i][0]); + multimodeFilter(s[i], multimodeCoeff(monoBassFreq), lp[i], hp[i], m_monoBassFilter[i][1]); + } + + float lowmono = (lp[0] + lp[1]) * 0.5f; + + if (audition) + { + s[0] = lowmono; + s[1] = lowmono; + } + else + { + s[0] = lowmono - hp[0];// Subtraction is needed due to filter phase shift + s[1] = lowmono - hp[1]; + } + } + + switch (panMode) + { + case 0:// Gain + { + const float lGain = pan > 0 ? 1.f - pan : 1.f; + const float rGain = pan < 0 ? 1.f + pan : 1.f; + s[0] *= lGain; + s[1] *= rGain; + break; + } + case 1:// Stereo + { + const float lGainL = panDualL > 0 ? 1.f - panDualL : 1.f; + const float rGainL = panDualL < 0 ? 1.f + panDualL : 1.f; + const float lGainR = panDualR > 0 ? 1.f - panDualR : 1.f; + const float rGainR = panDualR < 0 ? 1.f + panDualR : 1.f; + const float temp = s[0]; + s[0] = s[0] * lGainL + s[1] * lGainR; + s[1] = temp * rGainL + s[1] * rGainR; + break; + } + case 2:// Haas + { + float haasResult = 0; + float haasDelayVal[2] = {0}; + + if (pan >= 0) + { + haasDelayVal[0] = linearInterpolate(0, 0.0008f * m_sampleRate * panDelay, abs(pan)); + } + else + { + haasDelayVal[1] = linearInterpolate(0, 0.0008f * m_sampleRate * panDelay, abs(pan)); + } + + for (int i = 0; i < 2; ++i) + { + if ((i == 0 && pan > 0) || (i == 1 && pan < 0)) + { + // Read next value from delay buffer + float readLoc = m_haasIndex[i] - haasDelayVal[i]; + if (readLoc < 0) {readLoc += m_haasBufSize;} + float readLocFrac = fraction(readLoc); + if (readLoc < m_haasBufSize - 1) + { + haasResult = linearInterpolate(m_haasBuf[i][floor(readLoc)], m_haasBuf[i][ceil(readLoc)], readLocFrac); + } + else// For when the interpolation wraps around to the beginning of the buffer + { + haasResult = linearInterpolate(m_haasBuf[i][m_haasBufSize - 1], m_haasBuf[i][0], readLocFrac); + } + } + + // Increment delay ring buffer index + ++m_haasIndex[i]; + if (m_haasIndex[i] >= m_haasBufSize) + { + m_haasIndex[i] -= m_haasBufSize; + } + // Send new value to delay line + m_haasBuf[i][m_haasIndex[i]] = s[i]; + } + + if (pan != 0) + { + const float minGain = linearInterpolate(1.f, 0.15f, abs(pan)); + if (pan >= 0) + { + const float lGain = ((1.f - pan) + minGain) / (1.f + minGain); + s[0] = haasResult * lGain; + } + else + { + const float rGain = ((1.f + pan) + minGain) / (1.f + minGain); + s[1] = haasResult * rGain; + } + } + + const int lowChnl = (pan <= 0); + const int highChnl = !lowChnl; + + float lp; + float hp; + + // Filter parameters are semi-arbitrary, but are vaguely based on some random graphs I saw during research + float temp = -abs(pan) + 1.f; + float filtFreq = 2000.f + 8000.f * temp * temp; + float hpGain = abs(pan) < 0.5 ? 1.f - abs(pan) * 2.f : 0.f; + hpGain = linearInterpolate(1.f, hpGain, panSpectral); + multimodeFilter(s[lowChnl], multimodeCoeff(filtFreq), lp, hp, m_haasSpectralPanFilter[lowChnl]); + + s[lowChnl] = lp + hp * hpGain; + + filtFreq = 2000.f; + hpGain = abs(pan) + 1.f; + hpGain = linearInterpolate(1.f, hpGain, panSpectral); + multimodeFilter(s[highChnl], multimodeCoeff(filtFreq), lp, hp, m_haasSpectralPanFilter[highChnl]); + + s[highChnl] = lp + hp * hpGain; + } + } + + if (dc) + { + for (int i = 0; i < 2; ++i) + { + m_dcInfo[i] = m_dcInfo[i] * 0.999f + s[i] * 0.001f; + s[i] -= m_dcInfo[i]; + } + } + + if (mute) + { + s[0] = 0; + s[1] = 0; + } + + s[0] *= gain; + s[1] *= gain; + + buf[f][0] = d * buf[f][0] + w * s[0]; + buf[f][1] = d * buf[f][1] + w * s[1]; + + outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; + } + + checkGate(outSum / frames); + + return isRunning(); +} + + +sample_t StereoControlEffect::calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b) +{ + float filterOutput = a * (inSamp - m_filtY[filtNum][channel][1]) + + b * (m_filtX[filtNum][channel][0] - m_filtY[filtNum][channel][0]) + + m_filtX[filtNum][channel][1]; + + m_filtX[filtNum][channel][1] = m_filtX[filtNum][channel][0]; + m_filtX[filtNum][channel][0] = inSamp; + m_filtY[filtNum][channel][1] = m_filtY[filtNum][channel][0]; + m_filtY[filtNum][channel][0] = filterOutput; + + return filterOutput; +} + + +void StereoControlEffect::multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf) +{ + lp = in * g + filtBuf; + hp = in - lp; + filtBuf = hp * g * 2.f + filtBuf; +} + +float StereoControlEffect::multimodeCoeff(float freq) +{ + const float g = tan(F_PI * freq / m_sampleRate); + return g / (1.f + g); +} + + + + +extern "C" +{ + +// necessary for getting instance out of shared lib +PLUGIN_EXPORT Plugin * lmms_plugin_main(Model* parent, void* data) +{ + return new StereoControlEffect(parent, static_cast(data)); +} + +} + diff --git a/plugins/StereoControl/StereoControl.h b/plugins/StereoControl/StereoControl.h new file mode 100755 index 00000000000..3e6694bb8ca --- /dev/null +++ b/plugins/StereoControl/StereoControl.h @@ -0,0 +1,77 @@ +/* + * StereoControl.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef STEREOCONTROL_H +#define STEREOCONTROL_H + +#include "Effect.h" +#include "StereoControlControls.h" +#include "ValueBuffer.h" + +class StereoControlEffect : public Effect +{ +public: + StereoControlEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key); + ~StereoControlEffect() override; + bool processAudioBuffer(sampleFrame* buf, const fpp_t frames) override; + + EffectControls* controls() override + { + return &m_stereocontrolControls; + } + +private: + inline sample_t calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b); + inline void multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf); + inline float multimodeCoeff(float freq); + + StereoControlControls m_stereocontrolControls; + + float m_filtX[2][2][2] = {{{0}}};// [filter number][channel][samples back in time] + float m_filtY[2][2][2] = {{{0}}}; + float m_filtA = 0; + float m_filtB = 0; + std::vector m_delayBuf[2]; + int m_delayBufSize = 0; + int m_delayIndex[2] = {0}; + + std::vector m_haasBuf[2]; + int m_haasBufSize = 0; + int m_haasIndex[2] = {0}; + + float m_sampleRate = 0; + + float m_dcInfo[2] = {0}; + + float m_monoBassFilter[2][2] = {{0}}; + float m_stereoizerFilter[2][2] = {{0}}; + + float m_haasSpectralPanFilter[2] = {0}; + + friend class StereoControlControls; + +}; + +#endif diff --git a/plugins/StereoControl/StereoControlControlDialog.cpp b/plugins/StereoControl/StereoControlControlDialog.cpp new file mode 100755 index 00000000000..67586f077a9 --- /dev/null +++ b/plugins/StereoControl/StereoControlControlDialog.cpp @@ -0,0 +1,231 @@ +/* + * StereoControlControlDialog.cpp + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include + +#include "StereoControlControlDialog.h" +#include "StereoControlControls.h" + +#include "embed.h" +#include "gui_templates.h" +#include "ToolTip.h" + + +StereoControlControlDialog::StereoControlControlDialog(StereoControlControls* controls) : + EffectControlDialog(controls), + m_controls(controls) +{ + setAutoFillBackground(true); + QPalette pal; + pal.setBrush(backgroundRole(), PLUGIN_NAME::getIconPixmap("artwork")); + setPalette(pal); + setFixedSize(335, 215); + + m_gainKnob = new Knob(knobBright_26, this); + m_gainKnob->move(15, 126); + m_gainKnob->setModel(&m_controls->m_gainModel); + m_gainKnob->setHintText(tr("Gain:"), " db"); + ToolTip::add(m_gainKnob, tr("Gain")); + + m_stereoizerKnob = new Knob(knobBright_26, this); + m_stereoizerKnob->move(155, 19); + m_stereoizerKnob->setModel(&m_controls->m_stereoizerModel); + m_stereoizerKnob->setHintText(tr("Stereoize:"), "%"); + ToolTip::add(m_stereoizerKnob, tr("Enhance width of any audio")); + + m_widthKnob = new Knob(knobBright_26, this); + m_widthKnob->move(155, 68); + m_widthKnob->setModel(&m_controls->m_widthModel); + m_widthKnob->setHintText(tr("Width:"), "%"); + ToolTip::add(m_widthKnob, tr("Adjust volume of stereo audio")); + + m_monoBassFreqKnob = new Knob(knobBright_26, this); + m_monoBassFreqKnob->move(256, 64); + m_monoBassFreqKnob->setModel(&m_controls->m_monoBassFreqModel); + m_monoBassFreqKnob->setHintText(tr("Mono Bass Frequency:"), " Hz"); + ToolTip::add(m_monoBassFreqKnob, tr("Remove sidebands from audio below this frequency")); + + m_stereoizerLPKnob = new Knob(knobSmall_17, this); + m_stereoizerLPKnob->move(192, 31); + m_stereoizerLPKnob->setModel(&m_controls->m_stereoizerLPModel); + m_stereoizerLPKnob->setHintText(tr("Stereoizer Lowpass:"), " Hz"); + ToolTip::add(m_stereoizerLPKnob, tr("Lowpass delayed signal")); + + m_stereoizerHPKnob = new Knob(knobSmall_17, this); + m_stereoizerHPKnob->move(128, 31); + m_stereoizerHPKnob->setModel(&m_controls->m_stereoizerHPModel); + m_stereoizerHPKnob->setHintText(tr("Stereoizer Highpass:"), " Hz"); + ToolTip::add(m_stereoizerHPKnob, tr("Highpass delayed signal")); + + m_panSpectralKnob = new Knob(knobSmall_17, this); + m_panSpectralKnob->move(234, 171); + m_panSpectralKnob->setModel(&m_controls->m_panSpectralModel); + m_panSpectralKnob->setLabel(tr("Spectral")); + m_panSpectralKnob->setHintText(tr("Spectral Panning:"), "%"); + ToolTip::add(m_panSpectralKnob, tr("Spectral adjustment amount")); + + m_panDelayKnob = new Knob(knobSmall_17, this); + m_panDelayKnob->move(173, 171); + m_panDelayKnob->setModel(&m_controls->m_panDelayModel); + m_panDelayKnob->setLabel(tr("Delay")); + m_panDelayKnob->setHintText(tr("Panning Delay:"), "%"); + ToolTip::add(m_panDelayKnob, tr("Single-channel delay length")); + + m_panDualLKnob = new Knob(knobBright_26, this); + m_panDualLKnob->move(183, 162); + m_panDualLKnob->setModel(&m_controls->m_panDualLModel); + m_panDualLKnob->setLabel(tr("L")); + m_panDualLKnob->setHintText(tr("Left Pan:"), "%"); + ToolTip::add(m_panDualLKnob, tr("Pan left channel")); + + m_panDualRKnob = new Knob(knobBright_26, this); + m_panDualRKnob->move(225, 162); + m_panDualRKnob->setModel(&m_controls->m_panDualRModel); + m_panDualRKnob->setLabel(tr("R")); + m_panDualRKnob->setHintText(tr("Right Pan:"), "%"); + ToolTip::add(m_panDualRKnob, tr("Pan right channel")); + + m_panKnob = new Knob(knobBright_26, this); + m_panKnob->move(204, 161); + m_panKnob->setModel(&m_controls->m_panModel); + m_panKnob->setLabel(tr("PAN")); + m_panKnob->setHintText(tr("Pan:"), "%"); + ToolTip::add(m_panKnob, tr("Pan")); + + m_gainButton = new PixmapButton(this, tr("Gain Panning")); + m_gainButton->move(114, 135); + m_gainButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("basic_sel")); + m_gainButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("basic_unsel")); + ToolTip::add(m_gainButton, tr("Change gain of each channel")); + + m_stereoButton = new PixmapButton(this, tr("Stereo Panning")); + m_stereoButton->move(183, 135); + m_stereoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dual_sel")); + m_stereoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dual_unsel")); + ToolTip::add(m_stereoButton, tr("Pan one channel into the other")); + + m_haasButton = new PixmapButton(this, tr("Haas Panning")); + m_haasButton->move(252, 135); + m_haasButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("binaural_sel")); + m_haasButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("binaural_unsel")); + ToolTip::add(m_haasButton, tr("Stereo panning with spectral adjustment and single-channel fractional delay")); + + m_panModeGroup = new automatableButtonGroup(this); + m_panModeGroup->addButton(m_gainButton); + m_panModeGroup->addButton(m_stereoButton); + m_panModeGroup->addButton(m_haasButton); + m_panModeGroup->setModel(&m_controls->m_panModeModel); + + m_monoButton = new PixmapButton(this, tr("Mono")); + m_monoButton->move(238, 13); + m_monoButton->setModel(&m_controls->m_monoModel); + m_monoButton->setCheckable(true); + m_monoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mono_sel")); + m_monoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mono_unsel")); + ToolTip::add(m_monoButton, tr("Converts input to mono")); + + m_dcButton = new PixmapButton(this, tr("DC Offset Removal")); + m_dcButton->move(55, 146); + m_dcButton->setModel(&m_controls->m_dcModel); + m_dcButton->setCheckable(true); + m_dcButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dc_sel")); + m_dcButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dc_unsel")); + ToolTip::add(m_dcButton, tr("Removes DC offset from the signal")); + + m_muteButton = new PixmapButton(this, tr("Mute")); + m_muteButton->move(11, 181); + m_muteButton->setModel(&m_controls->m_muteModel); + m_muteButton->setCheckable(true); + m_muteButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mute_sel")); + m_muteButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mute_unsel")); + ToolTip::add(m_muteButton, tr("Mute audio")); + + m_monoBassButton = new LedCheckBox("", this, tr("Mono Bass"), LedCheckBox::Green); + m_monoBassButton->move(241, 41); + m_monoBassButton->setModel(&m_controls->m_monoBassModel); + m_monoBassButton->setCheckable(true); + ToolTip::add(m_monoBassButton, tr("Mono Bass")); + + m_auditionButton = new PixmapButton(this, tr("Bass Mono audition")); + m_auditionButton->move(305, 55); + m_auditionButton->setModel(&m_controls->m_auditionModel); + m_auditionButton->setCheckable(true); + m_auditionButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("audition_sel")); + m_auditionButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("audition_unsel")); + ToolTip::add(m_auditionButton, tr("Bass Mono Audition")); + + m_invertLButton = new PixmapButton(this, tr("Invert Left Channel")); + m_invertLButton->move(25, 77); + m_invertLButton->setModel(&m_controls->m_invertLModel); + m_invertLButton->setCheckable(true); + m_invertLButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_sel")); + m_invertLButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_unsel")); + ToolTip::add(m_invertLButton, tr("Invert Left Channel")); + + m_invertRButton = new PixmapButton(this, tr("Invert Right Channel")); + m_invertRButton->move(55, 77); + m_invertRButton->setModel(&m_controls->m_invertRModel); + m_invertRButton->setCheckable(true); + m_invertRButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_sel")); + m_invertRButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_unsel")); + ToolTip::add(m_invertRButton, tr("Invert Right Channel")); + + m_soloChannelBox = new ComboBox(this); + m_soloChannelBox->setGeometry(11, 13, 77, 22); + m_soloChannelBox->setFont(pointSize<8>(m_soloChannelBox->font())); + m_soloChannelBox->setModel(&m_controls->m_soloChannelModel); + ToolTip::add(m_soloChannelBox, tr("Solo a single channel")); + + connect(&m_controls->m_panModeModel, SIGNAL(dataChanged()), this, SLOT(updateKnobVisibility())); + emit updateKnobVisibility(); +} + + +void StereoControlControlDialog::updateKnobVisibility() +{ + switch (m_controls->m_panModeModel.value()) + { + case 0: + m_panKnob->show(); + m_panDualLKnob->hide(); + m_panDualRKnob->hide(); + m_panSpectralKnob->hide(); + m_panDelayKnob->hide(); + break; + case 1: + m_panKnob->hide(); + m_panDualLKnob->show(); + m_panDualRKnob->show(); + m_panSpectralKnob->hide(); + m_panDelayKnob->hide(); + break; + case 2: + m_panKnob->show(); + m_panDualLKnob->hide(); + m_panDualRKnob->hide(); + m_panSpectralKnob->show(); + m_panDelayKnob->show(); + break; + } +} diff --git a/plugins/StereoControl/StereoControlControlDialog.h b/plugins/StereoControl/StereoControlControlDialog.h new file mode 100755 index 00000000000..52f4ff23da7 --- /dev/null +++ b/plugins/StereoControl/StereoControlControlDialog.h @@ -0,0 +1,80 @@ +/* + * StereoControlControlDialog.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef STEREOCONTROL_CONTROL_DIALOG_H +#define STEREOCONTROL_CONTROL_DIALOG_H + +#include "EffectControlDialog.h" + +#include "ComboBox.h" +#include "LedCheckbox.h" +#include "Knob.h" +#include "PixmapButton.h" + + +class StereoControlControls; + + +class StereoControlControlDialog : public EffectControlDialog +{ + Q_OBJECT +public: + StereoControlControlDialog(StereoControlControls* controls); + ~StereoControlControlDialog() override + { + } + +private: + StereoControlControls * m_controls; + + Knob * m_gainKnob; + Knob * m_stereoizerKnob; + Knob * m_widthKnob; + Knob * m_monoBassFreqKnob; + Knob * m_stereoizerLPKnob; + Knob * m_stereoizerHPKnob; + Knob * m_panSpectralKnob; + Knob * m_panDelayKnob; + Knob * m_panDualLKnob; + Knob * m_panDualRKnob; + Knob * m_panKnob; + PixmapButton * m_gainButton; + PixmapButton * m_stereoButton; + PixmapButton * m_haasButton; + automatableButtonGroup * m_panModeGroup; + PixmapButton * m_monoButton; + PixmapButton * m_dcButton; + PixmapButton * m_muteButton; + LedCheckBox * m_monoBassButton; + PixmapButton * m_auditionButton; + PixmapButton * m_invertLButton; + PixmapButton * m_invertRButton; + ComboBox * m_soloChannelBox; + +private slots: + void updateKnobVisibility(); + +} ; + +#endif diff --git a/plugins/StereoControl/StereoControlControls.cpp b/plugins/StereoControl/StereoControlControls.cpp new file mode 100755 index 00000000000..092d7fb2dd8 --- /dev/null +++ b/plugins/StereoControl/StereoControlControls.cpp @@ -0,0 +1,118 @@ +/* + * StereoControlControls.cpp + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include + +#include "Engine.h" +#include "Song.h" +#include "StereoControlControls.h" +#include "StereoControl.h" + + +StereoControlControls::StereoControlControls(StereoControlEffect* effect) : + EffectControls(effect), + m_effect(effect), + m_gainModel(0.0f, -54.0f, 54.0f, 0.01f, this, tr("gain")), + m_stereoizerModel(0.0f, 0.0f, 200.0f, 0.01f, this, tr("Stereoize")), + m_widthModel(100.0f, 0.0f, 200.0f, 0.01f, this, tr("Width")), + m_panModel(0.0f, -100.0f, 100.0f, 0.01f, this, tr("Pan")), + m_monoBassFreqModel(80.0f, 0.0f, 500.0f, 0.01f, this, tr("Mono Bass Frequency")), + m_stereoizerLPModel(20000.0f, 0.0f, 20000.0f, 0.01f, this, tr("Stereoizer Lowpass")), + m_stereoizerHPModel(0.0f, 0.0f, 20000.0f, 0.01f, this, tr("Stereoizer Highpass")), + m_panSpectralModel(0.0f, 0.0f, 100.0f, 0.01f, this, tr("Spectral Panning")), + m_panDelayModel(100.0f, 0.0f, 200.0f, 0.01f, this, tr("Panning Delay")), + m_panDualLModel(-100.0f, -100.0f, 100.0f, 0.01f, this, tr("Left Pan")), + m_panDualRModel(100.0f, -100.0f, 100.0f, 0.01f, this, tr("Right Pan")), + m_panModeModel(0, 0, 2, this, tr("Panning Mode")), + m_soloChannelModel(this, tr("Solo Channel")), + m_monoModel(false, this, tr("Mono")), + m_dcModel(false, this, tr("DC Offset Removal")), + m_muteModel(false, this, tr("Mute")), + m_monoBassModel(false, this, tr("Mono Bass")), + m_auditionModel(false, this, tr("Mono Bass Audition")), + m_invertLModel(false, this, tr("Invert Left Channel")), + m_invertRModel(false, this, tr("Invert Right Channel")) +{ + m_monoBassFreqModel.setScaleLogarithmic(true); + m_stereoizerLPModel.setScaleLogarithmic(true); + m_stereoizerHPModel.setScaleLogarithmic(true); + + m_soloChannelModel.addItem(tr("Stereo")); + m_soloChannelModel.addItem(tr("Left")); + m_soloChannelModel.addItem(tr("Right")); +} + + +void StereoControlControls::saveSettings(QDomDocument& doc, QDomElement& _this) +{ + m_gainModel.saveSettings(doc, _this, "gain"); + m_stereoizerModel.saveSettings(doc, _this, "stereoizer"); + m_widthModel.saveSettings(doc, _this, "width"); + m_panModel.saveSettings(doc, _this, "pan"); + m_panModeModel.saveSettings(doc, _this, "panMode"); + m_monoModel.saveSettings(doc, _this, "mono"); + m_dcModel.saveSettings(doc, _this, "dc"); + m_muteModel.saveSettings(doc, _this, "mute"); + m_monoBassModel.saveSettings(doc, _this, "monoBass"); + m_auditionModel.saveSettings(doc, _this, "audition"); + m_invertLModel.saveSettings(doc, _this, "invertL"); + m_invertRModel.saveSettings(doc, _this, "invertR"); + m_soloChannelModel.saveSettings(doc, _this, "soloChannel"); + m_monoBassFreqModel.saveSettings(doc, _this, "monoBassFreq"); + m_stereoizerLPModel.saveSettings(doc, _this, "stereoizerLP"); + m_stereoizerHPModel.saveSettings(doc, _this, "stereoizerHP"); + m_panSpectralModel.saveSettings(doc, _this, "panSpectral"); + m_panDelayModel.saveSettings(doc, _this, "panDelay"); + m_panDualLModel.saveSettings(doc, _this, "panDualL"); + m_panDualRModel.saveSettings(doc, _this, "panDualR"); +} + + + +void StereoControlControls::loadSettings(const QDomElement& _this) +{ + m_gainModel.loadSettings(_this, "gain"); + m_stereoizerModel.loadSettings(_this, "stereoizer"); + m_widthModel.loadSettings(_this, "width"); + m_panModel.loadSettings(_this, "pan"); + m_panModeModel.loadSettings(_this, "panMode"); + m_monoModel.loadSettings(_this, "mono"); + m_dcModel.loadSettings(_this, "dc"); + m_muteModel.loadSettings(_this, "mute"); + m_monoBassModel.loadSettings(_this, "monoBass"); + m_auditionModel.loadSettings(_this, "audition"); + m_invertLModel.loadSettings(_this, "invertL"); + m_invertRModel.loadSettings(_this, "invertR"); + m_soloChannelModel.loadSettings(_this, "soloChannel"); + m_monoBassFreqModel.loadSettings(_this, "monoBassFreq"); + m_stereoizerLPModel.loadSettings(_this, "stereoizerLP"); + m_stereoizerHPModel.loadSettings(_this, "stereoizerHP"); + m_panSpectralModel.loadSettings(_this, "panSpectral"); + m_panDelayModel.loadSettings(_this, "panDelay"); + m_panDualLModel.loadSettings(_this, "panDualL"); + m_panDualRModel.loadSettings(_this, "panDualR"); +} + + diff --git a/plugins/StereoControl/StereoControlControls.h b/plugins/StereoControl/StereoControlControls.h new file mode 100755 index 00000000000..df4372ae392 --- /dev/null +++ b/plugins/StereoControl/StereoControlControls.h @@ -0,0 +1,94 @@ +/* + * StereoControlControls.h + * + * Copyright (c) 2020 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef STEREOCONTROL_CONTROLS_H +#define STEREOCONTROL_CONTROLS_H + +#include "EffectControls.h" +#include "StereoControlControlDialog.h" + +#include "ComboBox.h" + + +class StereoControlEffect; + + +class StereoControlControls : public EffectControls +{ + Q_OBJECT +public: + StereoControlControls(StereoControlEffect* effect); + ~StereoControlControls() override + { + } + + void saveSettings(QDomDocument & _doc, QDomElement & _parent) override; + void loadSettings(const QDomElement & _this); + inline QString nodeName() const override + { + return "StereoControlControls"; + } + + int controlCount() override + { + return 20; + } + + EffectControlDialog* createView() override + { + return new StereoControlControlDialog(this); + } + +private: + StereoControlEffect* m_effect; + + FloatModel m_gainModel; + FloatModel m_stereoizerModel; + FloatModel m_widthModel; + FloatModel m_panModel; + FloatModel m_monoBassFreqModel; + FloatModel m_stereoizerLPModel; + FloatModel m_stereoizerHPModel; + FloatModel m_panSpectralModel; + FloatModel m_panDelayModel; + FloatModel m_panDualLModel; + FloatModel m_panDualRModel; + + IntModel m_panModeModel; + ComboBoxModel m_soloChannelModel; + + BoolModel m_monoModel; + BoolModel m_dcModel; + BoolModel m_muteModel; + BoolModel m_monoBassModel; + BoolModel m_auditionModel; + BoolModel m_invertLModel; + BoolModel m_invertRModel; + + friend class StereoControlControlDialog; + friend class StereoControlEffect; + +}; + +#endif diff --git a/plugins/StereoControl/artwork.png b/plugins/StereoControl/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..963e8caba2b80bd363da999913686189f2d86cb0 GIT binary patch literal 44613 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 Ri){b^002ovPDHLkV1k|WKO+DD literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/audition_sel.png b/plugins/StereoControl/audition_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..840801c755968e2659d320011c7325d2d79dd19d GIT binary patch literal 653 zcmV;80&@L{P)D>trO zN>Rj}sB~p1Drym2*pM2lO#`NBhGdfY^IS|!W*S#%FI)!hedoOU&bbWP+^o{2p@6Yd zmxjvbW|ffAP$vro(&)LhDlu z(z|gUKW}3{c!RvZir8pHyfYyf)GrdVDT)X?x4LW z53ioF2o{QnN(0UH!1WVYxsMB3cW5qM!K^mWb~~h3s<0cm7M5md-7KNCd-!=9tL`MQ zBbtS#L`}$OYjkZ?GZEF5p`(tNiPp$!1Q~0ezp=H6eU&B%Cnpm9=<1ldsgFPUipHP= zm4{Hh)kUst5_drEe?{uvYxG+eQ7MVobHNLTFRbihe%nT`JLv1b(Vi#QM*!+rHpfBZ nPrWwk=0T!wz#*|6=AZU2orM)OF6XT700000NkvXXu0mjf7?26p;LDEcAQWv!svQX-;)DAq7LbciCbL-ZeX3%YcR zLg-rIA*n-DO3)8bRM1^x;<8*L;jav|I&zF}kyzl$G^YVNj2H-lN z19kgwy+Dt<06Gd}V;Aps5R2rR`DTOKCMGC-pQu(q~V*5IkG;=oFEYl)99p%BpM?@kKy03K6qHZg4 z^TSHtxZUq36bkcYc=V4RNM%-eHSn6MDuvFDKp|h;tfXC4n;01#!?LWu+G;8iC7aEn zHZ_&x+0d+1G|RG(C5dxqI??qcBV!YVTAj~JN8lK-`2~I%28LlcxVZ-?W;9*r*3BEl zV)LX@DJH|yWDNs=LkISAt*4vSY?fwK<%2fl;FfLXmSx;-H-Z47t3-v|EeHZGmkUXf z@OV59uDIE(KA-QOTrY|uH8q}cYuF_x6b`d)7e8ljI(cMPR+yL!Ir37$XE{86(noif zhN38>GZ`$?D%9r}7MY#>fu?ChXJ+_1JnG;IfW7aapGxs9JYKF@CD^crZU47{!3zJf b`3U|7XjvY-)hiui00000NkvXXu0mjfeU>-d literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/basic_sel.png b/plugins/StereoControl/basic_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..d328c8cb10bdd024c653f1478c5a4e2157ed38d6 GIT binary patch literal 7885 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 Cz0j!u literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/binaural_unsel.png b/plugins/StereoControl/binaural_unsel.png new file mode 100644 index 0000000000000000000000000000000000000000..2c1e5cbc0e8bfc7a938ea22b9ce769e6fc3d938a GIT binary patch literal 9457 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 Z`QM;6B#WhZtAg%?m>F9eT{GMl`CkC9;?Dp8 literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/invertL_sel.png b/plugins/StereoControl/invertL_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..a78ecfef82dbbed6b60ee1178e7598adf7d186c2 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VTavfC3xfeeJj0X|4{SAoBAf*t zk;M!QddeWoSh3W;3@FH6;_2(k{)9_F(9$4J@I*9F=(wkgV~EA+ty2$j9dh7tiN75? z;gRc>7e|}Fw*L`2D1Ujspo>6%mzd+yuIOIz?hcP=DfVwdZHmS>1+4DwV>!kZ@S63Q z*Oj;3;u6};7HT}RuQ<+{7r8!cM)k8DG5Iq7x1*Y_MQu9sklEt-itd=h?viW_f~Jo1 zn?AmMp8Rfc;>y7N)=O46YaV>qFDd4#A)2I@IrGxA-l7)$(^XX!4Oqv~N%a)H^W-D`SIyzcA*f(zeD3p{qv3rHbpO;L1t!@J9yRwZ8&KkTwTW$P?iKkIn zLG?4w5w;!MtoBAJcWDSOH&MO0PG4-rU4u8@+JjmWC77--H|U(!khW}Rb#Qra^vt@u zX|s*_s!yW4r+!X}`Y>zB5{A`JoAP$AocERa@w$MJYN>O(qJ)k=j`&{oQ9*=V?_+?* zpIyuTy!ja1vHVc}DF(I27o%&fW^cZ!CegDzRq)rx1r-Z4x9I%0O<)xdC=BuYapU3s jY1~Td9{fIUypQ>qPwQ@nWTyE*&oX$r`njxgN@xNAX}p9r literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/invertR_sel.png b/plugins/StereoControl/invertR_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..a957f0282bd002ff41565716fa937ca4daac6575 GIT binary patch literal 437 zcmV;m0ZRUfP)UG3-pzymrnyr^aKq)0bpl|?`QY5Vb!@+V10JOFXjKVeUHVM-bLXF%0 zB71(%&`!+={B1cZ4Upfi;w@AdIliR1I!m}RY1GH_@V$qq+~Bslgfm`@mJJqaKo^Hm z8*_wdiBo$p>c!u&h|3+V^;_{3qX!qHZW}Q?jJAZatt$ET6C7U=%ukpHZ~!#y_rKS# z{b2OV^A69hLA7e9xf;GmMah+Cy1 zxVT#fEfzr+2NBdkP=^W$J}Bfl)ND;6B!cI0rgu2pciz1hzye%AMx+av3Lvw610+)^ zqTsX9png@A8i0$!+xtf(!$cwhps2(Q6`Z zu{p0^uv0n+e=<_GC$O@%L2+V=@==B1p+S0kj6l6gKx27uz68goXV|t)I^7khZ)Heu zhRMzj3gdZnUFWiP9jMpB{FW9M01!g3yJzwA@*19@^f>^_tLx0p%_D>$lQDd?o?hh_ zAwE1lv$?fRF4xb@^kkquv_kK`c5{nW+GlKZgkmA@t5*QoZDeC<>ifGoe>2Pf+ORdt iF)jxHGluo=(fkJS2H$?K_sU}c00007WEc)VQ)zLm`B#lSD% z0Wg;#IH?7|3b0p&fj_`2;A{cm@zx+(Ge?s$@EN$6LtMjg>;+(boCbaXw;ja=b6mQ?gRp67Yf18(18niCN0v&eY^{Cr&#;#IcF{ks?!* z&o!_q>9xbSw`QytRI!M?zP_o#K-8ExJaV?vi znPt?~0KhTu23U+Gy8^Tw;^SzWSet9nBr>Z-Py}W{1O+WxS&M2D6a=l3rgpk$ zQ&dnyMMy5(2+<#Eh#2HgXec@~l_kHjA-gD1) zzwbzeMWy10Z-%%Y!^HnXR#ZF%#Yl>xin59d91fT1N*17LK_K12dTO6qXvQpx8iB)Kz=v~ zn;e919Y)(-imvi%ZXGLk$0^f`Nc5O&;qKro4ocxLMN(I z8ji=kXf>M=btUPWmLcCTV}&qg04Oi}(Kon=pW232w*~9{p49iI?<_&_g`j6HjVE_b z5G!;c-0G6Z=y&X&rqC|cEj_aezEN>nmLH?s4>@eMNw^rHh1J#s0J}EpB;e2ED+E*i)3o)AyC3%m-m1meP=V z=W%q6qczs9j&D$$mNoDdF&ScgRSQz_g8%>k07*qoM6N<$f<0?#jQ{`u literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/mono_unsel.png b/plugins/StereoControl/mono_unsel.png new file mode 100644 index 0000000000000000000000000000000000000000..66e54407b895fb2bdbeb49f58547a2479833eb04 GIT binary patch literal 809 zcmV+^1J?YBP)Y+iZ*AcW$Gi{ZiYi7N-HD@rh%&0NUR+xza{&E`N%GKk}j{>C0d2!THPHpYn`0F)L!<3&+1pPD=V%9qtxIWtz0JUNwcocDE2 z_-Zxm-4o30>@2qb$hmh5wOUPHegVTH296zx+0^o$HxaxNd>^z_i=jr`p8UATO~y}$(Ki`yUf0_xVS`nM<-dAE;2DWN&n#J%Gx?? z>oqB`W=v7>D}sUo*&i9cejjecmr3XHQ6SG}Q&(D6fv2ZLP3=2}{-NPvyuCH-^55ye z(?v#LGR^RNZq7b-WX#C7t}fD2Q|z8O!=}yy(~Om*lnh!sx*amA{c8^fgMm9Y zvpISwhV9$7l98HBT-*sh)HgW9K*00D68!vjpjNA$=gXwi!cp9Q^r*4v>+~;qJoRK(2c05s5=p>D7Y`Kq+mohMOQvH(o%Gz zBHh%5xQH%Xh*BRYE{Y2kx-hmx3bAUYku;N(WG2@|nlyS)C|Iect z&!YcTBX22r6g>Ce*X1tFWRVPkh^(*95j#Q%2}sVH`dZc|tj|gAK)sdyCp6YBHuk!F zH3L`t2ip1lc#Uz;OXMybz?D#8DqANB*#!~D8^3L#0j z5-Psy&&}tU*wVv&FkIi`l))F4W+VY380xlnwC(Iof6i8$?6&|^4=GyLY g_C;oUs9a?J241Zk2T&5-0RR9107*qoM6N<$f^MWbO#lD@ literal 0 HcmV?d00001 diff --git a/plugins/StereoControl/mute_unsel.png b/plugins/StereoControl/mute_unsel.png new file mode 100644 index 0000000000000000000000000000000000000000..5b888304c88dfc1c505dda3058787367f1ce4f26 GIT binary patch literal 697 zcmV;q0!ICbP)Y;~{2qF?Gp&Zt15D`d(Sqh;h(OaZ6 zD3;XK@P&hPg-zc0W0 z`<-(DE(025gY+TnC!;{VuKUuR+NW5No!G$dm2gvm-7u-R+?H5Pz$ zI&CsiCbC>v0T9AuWQ(x!FXI`7P;d-IQE2zw%#HPQb<%jGfyYmV`L_6-7ycodFSe2T z^*gs_dNM#)cQ20~4(RHQ#bS6mZV(ENVYl1!=3a-wJbxK5o;af;&Te;b=F|z^%zU86 zx}k6&!)wAvoQ1SJv&`4jvuY3{*arASCa)UmqSTu z>U!?p;ca*#*S(%r!+o-1bdm#9Rb%$^9KH@O@=uwim1vFwO%uBONRou6s`otq)Sh~sB)`X#33NL zwxOHYH#ajxqd&OX-p0tYQB+mKd&R@*s!Tkg=;|tEV;hbm!f4(~+7Jkap8C1&yT*h5 z`+$Tj%MANRbY=9$dhc}?97m?`kB%GalLUym18(y~y9F#SE@Z2!iHeGYiAr;vc~`9n f=0j!$51D@e9Gp{5ttVB$00000NkvXXu0mjf@^nDK literal 0 HcmV?d00001 From 71a7c3157018a4e7599a6efbdf6ad31696dbe8b6 Mon Sep 17 00:00:00 2001 From: Robert Daniel Black Date: Sat, 24 Oct 2020 22:22:28 -0600 Subject: [PATCH 2/7] Remove backup folders --- plugins/StereoControl/OLD_1/CMakeLists.txt | 3 - plugins/StereoControl/OLD_1/StereoControl.cpp | 399 ---------------- plugins/StereoControl/OLD_1/StereoControl.h | 75 --- .../OLD_1/StereoControlControlDialog.cpp | 197 -------- .../OLD_1/StereoControlControlDialog.h | 45 -- .../OLD_1/StereoControlControls.cpp | 102 ----- .../OLD_1/StereoControlControls.h | 89 ---- plugins/StereoControl/OLD_1/artwork.png | Bin 7739 -> 0 bytes plugins/StereoControl/OLD_1/audition_sel.png | Bin 2489 -> 0 bytes .../StereoControl/OLD_1/audition_unsel.png | Bin 2615 -> 0 bytes plugins/StereoControl/OLD_1/dc_sel.png | Bin 3018 -> 0 bytes plugins/StereoControl/OLD_1/dc_unsel.png | Bin 2870 -> 0 bytes plugins/StereoControl/OLD_1/gain_sel.png | Bin 4033 -> 0 bytes plugins/StereoControl/OLD_1/gain_unsel.png | Bin 3761 -> 0 bytes plugins/StereoControl/OLD_1/haas_sel.png | Bin 4129 -> 0 bytes plugins/StereoControl/OLD_1/haas_unsel.png | Bin 3400 -> 0 bytes plugins/StereoControl/OLD_1/invertL_sel.png | Bin 2024 -> 0 bytes plugins/StereoControl/OLD_1/invertL_unsel.png | Bin 1851 -> 0 bytes plugins/StereoControl/OLD_1/invertR_sel.png | Bin 2274 -> 0 bytes plugins/StereoControl/OLD_1/invertR_unsel.png | Bin 2019 -> 0 bytes plugins/StereoControl/OLD_1/logo.png | Bin 774 -> 0 bytes plugins/StereoControl/OLD_1/monoBass_sel.png | Bin 5825 -> 0 bytes .../StereoControl/OLD_1/monoBass_unsel.png | Bin 5529 -> 0 bytes plugins/StereoControl/OLD_1/mono_sel.png | Bin 3743 -> 0 bytes plugins/StereoControl/OLD_1/mono_unsel.png | Bin 3933 -> 0 bytes plugins/StereoControl/OLD_1/mute_sel.png | Bin 4256 -> 0 bytes plugins/StereoControl/OLD_1/mute_unsel.png | Bin 3863 -> 0 bytes plugins/StereoControl/OLD_1/soloL_sel.png | Bin 3369 -> 0 bytes plugins/StereoControl/OLD_1/soloL_unsel.png | Bin 3585 -> 0 bytes plugins/StereoControl/OLD_1/soloR_sel.png | Bin 4530 -> 0 bytes plugins/StereoControl/OLD_1/soloR_unsel.png | Bin 4154 -> 0 bytes .../StereoControl/OLD_1/soloStereo_sel.png | Bin 4423 -> 0 bytes .../StereoControl/OLD_1/soloStereo_unsel.png | Bin 4570 -> 0 bytes plugins/StereoControl/OLD_1/stereo_sel.png | Bin 3811 -> 0 bytes plugins/StereoControl/OLD_1/stereo_unsel.png | Bin 3764 -> 0 bytes plugins/StereoControl/OLD_2/CMakeLists.txt | 3 - plugins/StereoControl/OLD_2/StereoControl.cpp | 428 ------------------ plugins/StereoControl/OLD_2/StereoControl.h | 78 ---- .../OLD_2/StereoControlControlDialog.cpp | 198 -------- .../OLD_2/StereoControlControlDialog.h | 45 -- .../OLD_2/StereoControlControls.cpp | 105 ----- .../OLD_2/StereoControlControls.h | 90 ---- plugins/StereoControl/OLD_2/artwork.png | Bin 62279 -> 0 bytes plugins/StereoControl/OLD_2/audition_sel.png | Bin 653 -> 0 bytes .../StereoControl/OLD_2/audition_unsel.png | Bin 693 -> 0 bytes plugins/StereoControl/OLD_2/basic_sel.png | Bin 993 -> 0 bytes plugins/StereoControl/OLD_2/basic_unsel.png | Bin 1026 -> 0 bytes plugins/StereoControl/OLD_2/binaural_sel.png | Bin 1054 -> 0 bytes .../StereoControl/OLD_2/binaural_unsel.png | Bin 1071 -> 0 bytes plugins/StereoControl/OLD_2/dc_sel.png | Bin 600 -> 0 bytes plugins/StereoControl/OLD_2/dc_unsel.png | Bin 624 -> 0 bytes plugins/StereoControl/OLD_2/dual_sel.png | Bin 738 -> 0 bytes plugins/StereoControl/OLD_2/dual_unsel.png | Bin 759 -> 0 bytes plugins/StereoControl/OLD_2/invertL_sel.png | Bin 309 -> 0 bytes plugins/StereoControl/OLD_2/invertL_unsel.png | Bin 302 -> 0 bytes plugins/StereoControl/OLD_2/invertR_sel.png | Bin 433 -> 0 bytes plugins/StereoControl/OLD_2/invertR_unsel.png | Bin 439 -> 0 bytes plugins/StereoControl/OLD_2/logo.png | Bin 774 -> 0 bytes plugins/StereoControl/OLD_2/monoBass_sel.png | Bin 5825 -> 0 bytes .../StereoControl/OLD_2/monoBass_unsel.png | Bin 5529 -> 0 bytes plugins/StereoControl/OLD_2/mono_sel.png | Bin 783 -> 0 bytes plugins/StereoControl/OLD_2/mono_unsel.png | Bin 808 -> 0 bytes plugins/StereoControl/OLD_2/mute_sel.png | Bin 694 -> 0 bytes plugins/StereoControl/OLD_2/mute_unsel.png | Bin 694 -> 0 bytes plugins/StereoControl/OLD_2/soloL_sel.png | Bin 3369 -> 0 bytes plugins/StereoControl/OLD_2/soloL_unsel.png | Bin 3585 -> 0 bytes plugins/StereoControl/OLD_2/soloR_sel.png | Bin 4530 -> 0 bytes plugins/StereoControl/OLD_2/soloR_unsel.png | Bin 4154 -> 0 bytes .../StereoControl/OLD_2/soloStereo_sel.png | Bin 4423 -> 0 bytes .../StereoControl/OLD_2/soloStereo_unsel.png | Bin 4570 -> 0 bytes plugins/StereoControl/OLD_2/stereo_sel.png | Bin 3811 -> 0 bytes plugins/StereoControl/OLD_2/stereo_unsel.png | Bin 3764 -> 0 bytes plugins/StereoControl/OLD_3/CMakeLists.txt | 3 - plugins/StereoControl/OLD_3/StereoControl.cpp | 427 ----------------- plugins/StereoControl/OLD_3/StereoControl.h | 77 ---- .../OLD_3/StereoControlControlDialog.cpp | 191 -------- .../OLD_3/StereoControlControlDialog.h | 44 -- .../OLD_3/StereoControlControls.cpp | 111 ----- .../OLD_3/StereoControlControls.h | 92 ---- plugins/StereoControl/OLD_3/artwork.png | Bin 62462 -> 0 bytes plugins/StereoControl/OLD_3/audition_sel.png | Bin 653 -> 0 bytes .../StereoControl/OLD_3/audition_unsel.png | Bin 693 -> 0 bytes plugins/StereoControl/OLD_3/basic_sel.png | Bin 993 -> 0 bytes plugins/StereoControl/OLD_3/basic_unsel.png | Bin 1026 -> 0 bytes plugins/StereoControl/OLD_3/binaural_sel.png | Bin 1054 -> 0 bytes .../StereoControl/OLD_3/binaural_unsel.png | Bin 1071 -> 0 bytes plugins/StereoControl/OLD_3/dc_sel.png | Bin 600 -> 0 bytes plugins/StereoControl/OLD_3/dc_unsel.png | Bin 624 -> 0 bytes plugins/StereoControl/OLD_3/dual_sel.png | Bin 738 -> 0 bytes plugins/StereoControl/OLD_3/dual_unsel.png | Bin 759 -> 0 bytes plugins/StereoControl/OLD_3/invertL_sel.png | Bin 309 -> 0 bytes plugins/StereoControl/OLD_3/invertL_unsel.png | Bin 302 -> 0 bytes plugins/StereoControl/OLD_3/invertR_sel.png | Bin 433 -> 0 bytes plugins/StereoControl/OLD_3/invertR_unsel.png | Bin 439 -> 0 bytes plugins/StereoControl/OLD_3/logo.png | Bin 774 -> 0 bytes plugins/StereoControl/OLD_3/monoBass_sel.png | Bin 5825 -> 0 bytes .../StereoControl/OLD_3/monoBass_unsel.png | Bin 5529 -> 0 bytes plugins/StereoControl/OLD_3/mono_sel.png | Bin 783 -> 0 bytes plugins/StereoControl/OLD_3/mono_unsel.png | Bin 808 -> 0 bytes plugins/StereoControl/OLD_3/mute_sel.png | Bin 694 -> 0 bytes plugins/StereoControl/OLD_3/mute_unsel.png | Bin 694 -> 0 bytes plugins/StereoControl/OLD_3/soloL_sel.png | Bin 3369 -> 0 bytes plugins/StereoControl/OLD_3/soloL_unsel.png | Bin 3585 -> 0 bytes plugins/StereoControl/OLD_3/soloR_sel.png | Bin 4530 -> 0 bytes plugins/StereoControl/OLD_3/soloR_unsel.png | Bin 4154 -> 0 bytes .../StereoControl/OLD_3/soloStereo_sel.png | Bin 4423 -> 0 bytes .../StereoControl/OLD_3/soloStereo_unsel.png | Bin 4570 -> 0 bytes 107 files changed, 2802 deletions(-) delete mode 100755 plugins/StereoControl/OLD_1/CMakeLists.txt delete mode 100755 plugins/StereoControl/OLD_1/StereoControl.cpp delete mode 100755 plugins/StereoControl/OLD_1/StereoControl.h delete mode 100755 plugins/StereoControl/OLD_1/StereoControlControlDialog.cpp delete mode 100755 plugins/StereoControl/OLD_1/StereoControlControlDialog.h delete mode 100755 plugins/StereoControl/OLD_1/StereoControlControls.cpp delete mode 100755 plugins/StereoControl/OLD_1/StereoControlControls.h delete mode 100755 plugins/StereoControl/OLD_1/artwork.png delete mode 100755 plugins/StereoControl/OLD_1/audition_sel.png delete mode 100755 plugins/StereoControl/OLD_1/audition_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/dc_sel.png delete mode 100755 plugins/StereoControl/OLD_1/dc_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/gain_sel.png delete mode 100755 plugins/StereoControl/OLD_1/gain_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/haas_sel.png delete mode 100755 plugins/StereoControl/OLD_1/haas_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/invertL_sel.png delete mode 100755 plugins/StereoControl/OLD_1/invertL_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/invertR_sel.png delete mode 100755 plugins/StereoControl/OLD_1/invertR_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/logo.png delete mode 100755 plugins/StereoControl/OLD_1/monoBass_sel.png delete mode 100755 plugins/StereoControl/OLD_1/monoBass_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/mono_sel.png delete mode 100755 plugins/StereoControl/OLD_1/mono_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/mute_sel.png delete mode 100755 plugins/StereoControl/OLD_1/mute_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/soloL_sel.png delete mode 100755 plugins/StereoControl/OLD_1/soloL_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/soloR_sel.png delete mode 100755 plugins/StereoControl/OLD_1/soloR_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/soloStereo_sel.png delete mode 100755 plugins/StereoControl/OLD_1/soloStereo_unsel.png delete mode 100755 plugins/StereoControl/OLD_1/stereo_sel.png delete mode 100755 plugins/StereoControl/OLD_1/stereo_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/CMakeLists.txt delete mode 100755 plugins/StereoControl/OLD_2/StereoControl.cpp delete mode 100755 plugins/StereoControl/OLD_2/StereoControl.h delete mode 100755 plugins/StereoControl/OLD_2/StereoControlControlDialog.cpp delete mode 100755 plugins/StereoControl/OLD_2/StereoControlControlDialog.h delete mode 100755 plugins/StereoControl/OLD_2/StereoControlControls.cpp delete mode 100755 plugins/StereoControl/OLD_2/StereoControlControls.h delete mode 100755 plugins/StereoControl/OLD_2/artwork.png delete mode 100755 plugins/StereoControl/OLD_2/audition_sel.png delete mode 100755 plugins/StereoControl/OLD_2/audition_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/basic_sel.png delete mode 100755 plugins/StereoControl/OLD_2/basic_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/binaural_sel.png delete mode 100755 plugins/StereoControl/OLD_2/binaural_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/dc_sel.png delete mode 100755 plugins/StereoControl/OLD_2/dc_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/dual_sel.png delete mode 100755 plugins/StereoControl/OLD_2/dual_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/invertL_sel.png delete mode 100755 plugins/StereoControl/OLD_2/invertL_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/invertR_sel.png delete mode 100755 plugins/StereoControl/OLD_2/invertR_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/logo.png delete mode 100755 plugins/StereoControl/OLD_2/monoBass_sel.png delete mode 100755 plugins/StereoControl/OLD_2/monoBass_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/mono_sel.png delete mode 100755 plugins/StereoControl/OLD_2/mono_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/mute_sel.png delete mode 100755 plugins/StereoControl/OLD_2/mute_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/soloL_sel.png delete mode 100755 plugins/StereoControl/OLD_2/soloL_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/soloR_sel.png delete mode 100755 plugins/StereoControl/OLD_2/soloR_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/soloStereo_sel.png delete mode 100755 plugins/StereoControl/OLD_2/soloStereo_unsel.png delete mode 100755 plugins/StereoControl/OLD_2/stereo_sel.png delete mode 100755 plugins/StereoControl/OLD_2/stereo_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/CMakeLists.txt delete mode 100755 plugins/StereoControl/OLD_3/StereoControl.cpp delete mode 100755 plugins/StereoControl/OLD_3/StereoControl.h delete mode 100755 plugins/StereoControl/OLD_3/StereoControlControlDialog.cpp delete mode 100755 plugins/StereoControl/OLD_3/StereoControlControlDialog.h delete mode 100755 plugins/StereoControl/OLD_3/StereoControlControls.cpp delete mode 100755 plugins/StereoControl/OLD_3/StereoControlControls.h delete mode 100755 plugins/StereoControl/OLD_3/artwork.png delete mode 100755 plugins/StereoControl/OLD_3/audition_sel.png delete mode 100755 plugins/StereoControl/OLD_3/audition_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/basic_sel.png delete mode 100755 plugins/StereoControl/OLD_3/basic_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/binaural_sel.png delete mode 100755 plugins/StereoControl/OLD_3/binaural_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/dc_sel.png delete mode 100755 plugins/StereoControl/OLD_3/dc_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/dual_sel.png delete mode 100755 plugins/StereoControl/OLD_3/dual_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/invertL_sel.png delete mode 100755 plugins/StereoControl/OLD_3/invertL_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/invertR_sel.png delete mode 100755 plugins/StereoControl/OLD_3/invertR_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/logo.png delete mode 100755 plugins/StereoControl/OLD_3/monoBass_sel.png delete mode 100755 plugins/StereoControl/OLD_3/monoBass_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/mono_sel.png delete mode 100755 plugins/StereoControl/OLD_3/mono_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/mute_sel.png delete mode 100755 plugins/StereoControl/OLD_3/mute_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/soloL_sel.png delete mode 100755 plugins/StereoControl/OLD_3/soloL_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/soloR_sel.png delete mode 100755 plugins/StereoControl/OLD_3/soloR_unsel.png delete mode 100755 plugins/StereoControl/OLD_3/soloStereo_sel.png delete mode 100755 plugins/StereoControl/OLD_3/soloStereo_unsel.png diff --git a/plugins/StereoControl/OLD_1/CMakeLists.txt b/plugins/StereoControl/OLD_1/CMakeLists.txt deleted file mode 100755 index 3a5d3dafbe4..00000000000 --- a/plugins/StereoControl/OLD_1/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -INCLUDE(BuildPlugin) - -BUILD_PLUGIN(stereocontrol StereoControl.cpp StereoControlControls.cpp StereoControlControlDialog.cpp MOCFILES StereoControlControls.h StereoControlControlDialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/StereoControl/OLD_1/StereoControl.cpp b/plugins/StereoControl/OLD_1/StereoControl.cpp deleted file mode 100755 index 7c3944b5298..00000000000 --- a/plugins/StereoControl/OLD_1/StereoControl.cpp +++ /dev/null @@ -1,399 +0,0 @@ -/* - * StereoControl.cpp - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#include "StereoControl.h" - -#include "embed.h" -#include "plugin_export.h" -#include "lmms_math.h" -#include "interpolation.h" - -extern "C" -{ - -Plugin::Descriptor PLUGIN_EXPORT stereocontrol_plugin_descriptor = -{ - STRINGIFY( PLUGIN_NAME ), - "Stereo Control", - QT_TRANSLATE_NOOP( "pluginBrowser", "A plugin generated by Lost Robot's LMMS Development Package. This is your plugin description. You should change this." ), - "Lost Robot ", - 0x0100, - Plugin::Effect, - new PluginPixmapLoader("logo"), - NULL, - NULL -} ; - -} - - - -StereoControlEffect::StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ) : - Effect( &stereocontrol_plugin_descriptor, parent, key ), - m_stereocontrolControls( this ) -{ - m_sampleRate = Engine::mixer()->processingSampleRate(); - - m_delayBufSize = int(m_sampleRate / 160.f) + 1.f; - m_delayBuf[0].resize(m_delayBufSize); - m_delayBuf[1].resize(m_delayBufSize); - - m_haasBufSize = int(m_sampleRate * 0.002f) + 1.f; - m_haasBuf[0].resize(m_haasBufSize); - m_haasBuf[1].resize(m_haasBufSize); -} - - - - -StereoControlEffect::~StereoControlEffect() -{ -} - - - - -bool StereoControlEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) -{ - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - - double outSum = 0.0; - const float d = dryLevel(); - const float w = wetLevel(); - - const ValueBuffer * volumeBuf = m_stereocontrolControls.m_volumeModel.valueBuffer(); - const ValueBuffer * stereoizerBuf = m_stereocontrolControls.m_stereoizerModel.valueBuffer(); - const ValueBuffer * widthBuf = m_stereocontrolControls.m_widthModel.valueBuffer(); - const ValueBuffer * panModeBuf = m_stereocontrolControls.m_panModeModel.valueBuffer(); - const ValueBuffer * panBuf = m_stereocontrolControls.m_panModel.valueBuffer(); - const ValueBuffer * monoBuf = m_stereocontrolControls.m_monoModel.valueBuffer(); - const ValueBuffer * dcBuf = m_stereocontrolControls.m_dcModel.valueBuffer(); - const ValueBuffer * muteBuf = m_stereocontrolControls.m_muteModel.valueBuffer(); - const ValueBuffer * monoBassBuf = m_stereocontrolControls.m_monoBassModel.valueBuffer(); - const ValueBuffer * auditionBuf = m_stereocontrolControls.m_auditionModel.valueBuffer(); - const ValueBuffer * invertLBuf = m_stereocontrolControls.m_invertLModel.valueBuffer(); - const ValueBuffer * invertRBuf = m_stereocontrolControls.m_invertRModel.valueBuffer(); - const ValueBuffer * soloChannelBuf = m_stereocontrolControls.m_soloChannelModel.valueBuffer(); - const ValueBuffer * monoBassFreqBuf = m_stereocontrolControls.m_monoBassFreqModel.valueBuffer(); - const ValueBuffer * stereoizerLPBuf = m_stereocontrolControls.m_stereoizerLPModel.valueBuffer(); - const ValueBuffer * stereoizerHPBuf = m_stereocontrolControls.m_stereoizerHPModel.valueBuffer(); - const ValueBuffer * panSpectralBuf = m_stereocontrolControls.m_panSpectralModel.valueBuffer(); - - for( fpp_t f = 0; f < frames; ++f ) - { - const float volume = (volumeBuf ? volumeBuf->value( f ) : m_stereocontrolControls.m_volumeModel.value()) * 0.01f; - const float stereoizer = (stereoizerBuf ? stereoizerBuf->value( f ) : m_stereocontrolControls.m_stereoizerModel.value()) * 0.01f; - const float width = (widthBuf ? widthBuf->value( f ) : m_stereocontrolControls.m_widthModel.value()) * 0.01f; - const int panMode = panModeBuf ? panModeBuf->value( f ) : m_stereocontrolControls.m_panModeModel.value(); - const float pan = (panBuf ? panBuf->value( f ) : m_stereocontrolControls.m_panModel.value()) * 0.01f; - const bool mono = monoBuf ? monoBuf->value( f ) : m_stereocontrolControls.m_monoModel.value(); - const bool dc = dcBuf ? dcBuf->value( f ) : m_stereocontrolControls.m_dcModel.value(); - const bool mute = muteBuf ? muteBuf->value( f ) : m_stereocontrolControls.m_muteModel.value(); - const bool monoBass = monoBassBuf ? monoBassBuf->value( f ) : m_stereocontrolControls.m_monoBassModel.value(); - const bool audition = auditionBuf ? auditionBuf->value( f ) : m_stereocontrolControls.m_auditionModel.value(); - const bool invertL = invertLBuf ? invertLBuf->value( f ) : m_stereocontrolControls.m_invertLModel.value(); - const bool invertR = invertRBuf ? invertRBuf->value( f ) : m_stereocontrolControls.m_invertRModel.value(); - const int soloChannel = soloChannelBuf ? soloChannelBuf->value( f ) : m_stereocontrolControls.m_soloChannelModel.value(); - const float monoBassFreq = monoBassFreqBuf ? monoBassFreqBuf->value( f ) : m_stereocontrolControls.m_monoBassFreqModel.value(); - const float stereoizerLP = stereoizerLPBuf ? stereoizerLPBuf->value( f ) : m_stereocontrolControls.m_stereoizerLPModel.value(); - const float stereoizerHP = stereoizerHPBuf ? stereoizerHPBuf->value( f ) : m_stereocontrolControls.m_stereoizerHPModel.value(); - const float panSpectral = panSpectralBuf ? panSpectralBuf->value( f ) : m_stereocontrolControls.m_panSpectralModel.value(); - - sample_t s[2] = { buf[f][0], buf[f][1] }; - - switch (soloChannel) - { - case 0: - { - break; - } - case 1: - { - s[1] = s[0]; - break; - } - case 2: - { - s[0] = s[1]; - break; - } - } - - if (invertL) - { - s[0] *= -1.f; - } - - if (invertR) - { - s[1] *= -1.f; - } - - float allpassFreq = 0; - float delayLength = 0; - allpassFreq = linearInterpolate(370.f, 170.f, stereoizer * 0.5f); - delayLength = allpassFreq; - - delayLength = m_sampleRate / delayLength; - - const float w0 = (F_2PI / m_sampleRate) * allpassFreq; - const float a0 = 1 + (sin(w0) / (0.707f * 2.f)); - m_filtA = (1 - (a0 - 1)) / a0; - m_filtB = (-2*cos(w0)) / a0; - - float delayResult[2] = {0}; - for (int i = 0; i < 2; ++i) - { - // Read next value from delay buffer - float readLoc = m_delayIndex[i] - delayLength; - if (readLoc < 0) {readLoc += m_delayBufSize;} - float readLocFrac = fraction(readLoc); - if (readLoc < m_delayBufSize - 1) - { - delayResult[i] = linearInterpolate(m_delayBuf[i][floor(readLoc)], m_delayBuf[i][ceil(readLoc)], readLocFrac); - } - else// For when the interpolation wraps around to the beginning of the buffer - { - delayResult[i] = linearInterpolate(m_delayBuf[i][m_delayBufSize - 1], m_delayBuf[i][0], readLocFrac); - } - - // Increment delay ring buffer index - ++m_delayIndex[i]; - if (m_delayIndex[i] >= m_delayBufSize) - { - m_delayIndex[i] -= m_delayBufSize; - } - // Send new value to delay line - m_delayBuf[i][m_delayIndex[i]] = s[i]; - } - - for (int i = 0; i < 2; ++i) - { - float allpassValue = (delayResult[0] + delayResult[1]) * 0.5f; - - for (int j = 0; j < 2; ++j) - { - allpassValue = calcAllpassFilter(allpassValue, m_sampleRate, j, i, m_filtA, m_filtB); - } - - allpassValue *= i ? -1.f : 1.f; - - float lp; - float hp; - float hp2; - float g = tan(F_PI * stereoizerHP / m_sampleRate); - g /= (1.f + g); - multimodeFilter(allpassValue, g, lp, hp, m_stereoizerFilter[0][i]); - float g2 = tan(F_PI * stereoizerLP / m_sampleRate); - g2 /= (1.f + g2); - multimodeFilter(hp, g2, lp, hp2, m_stereoizerFilter[1][i]); - - s[i] += lp * qMin(stereoizer, 1.f); - } - - const float sMid = (s[0] + s[1]) * 0.5f; - const float sSide = (s[0] - s[1]) * 0.5f; - - s[0] = sMid + sSide * width; - s[1] = sMid - sSide * width; - - if (mono) - { - s[0] = (s[0] + s[1]) * 0.5f; - s[1] = s[0]; - } - - if (monoBass) - { - float g = tan(F_PI * monoBassFreq / m_sampleRate); - g /= (1.f + g); - - float lp[2]; - float hp[2]; - - for (int i = 0 ; i < 2; ++i) - { - multimodeFilter(s[i], g, lp[i], hp[i], m_monoBassFilter[i]); - } - - float lowmono = (lp[0] + lp[1]) * 0.5f; - - if (audition) - { - s[0] = lowmono; - s[1] = lowmono; - } - else - { - s[0] = lowmono - hp[0];// Subtraction is needed due to filter phase shift - s[1] = lowmono - hp[1]; - } - } - - switch (panMode) - { - case 0:// Gain - { - const float lGain = pan > 0 ? 1.f - pan : 1.f; - const float rGain = pan < 0 ? 1.f + pan : 1.f; - s[0] *= lGain; - s[1] *= rGain; - break; - } - case 1:// Stereo - { - const float temp = s[0]; - const float llGain = pan > 0 ? 1.f - pan : ( pan + 1.f) * 0.5f + 0.5f; - const float rrGain = pan < 0 ? 1.f + pan : (-pan + 1.f) * 0.5f + 0.5f; - const float lrGain = pan < 0 ? -pan * 0.5f : 0.f; - const float rlGain = pan > 0 ? pan * 0.5f : 0.f; - s[0] = s[0] * llGain + s[1] * lrGain; - s[1] = temp * rlGain + s[1] * rrGain; - break; - } - case 2:// Haas - { - float haasResult = 0; - float haasDelayVal[2] = {0}; - - if (pan >= 0) - { - haasDelayVal[0] = linearInterpolate(0, 0.0008f * m_sampleRate, abs(pan)); - } - else - { - haasDelayVal[1] = linearInterpolate(0, 0.0008f * m_sampleRate, abs(pan)); - } - - for (int i = 0; i < 2; ++i) - { - if ((i == 0 && pan >= 0) || (i == 1 && pan < 0)) - { - // Read next value from delay buffer - float readLoc = m_haasIndex[i] - haasDelayVal[i]; - if (readLoc < 0) {readLoc += m_haasBufSize;} - float readLocFrac = fraction(readLoc); - if (readLoc < m_haasBufSize - 1) - { - haasResult = linearInterpolate(m_haasBuf[i][floor(readLoc)], m_haasBuf[i][ceil(readLoc)], readLocFrac); - } - else// For when the interpolation wraps around to the beginning of the buffer - { - haasResult = linearInterpolate(m_haasBuf[i][m_haasBufSize - 1], m_haasBuf[i][0], readLocFrac); - } - } - - // Increment delay ring buffer index - ++m_haasIndex[i]; - if (m_haasIndex[i] >= m_haasBufSize) - { - m_haasIndex[i] -= m_haasBufSize; - } - // Send new value to delay line - m_haasBuf[i][m_haasIndex[i]] = s[i]; - } - - const float minGain = linearInterpolate(1.f, 0.15f, abs(pan)); - if (pan >= 0) - { - const float lGain = ((pan > 0 ? 1.f - pan : 1.f) + minGain) / (1.f + minGain); - s[0] = haasResult * lGain; - } - else - { - const float rGain = ((pan < 0 ? 1.f + pan : 1.f) + minGain) / (1.f + minGain); - s[1] = haasResult * rGain; - } - } - } - - if (dc) - { - for (int i = 0; i < 2; ++i) - { - m_dcInfo[i] = m_dcInfo[i] * 0.999f + s[i] * 0.001f; - s[i] -= m_dcInfo[i]; - } - } - - if (mute) - { - s[0] = 0; - s[1] = 0; - } - - s[0] *= volume; - s[1] *= volume; - - buf[f][0] = d * buf[f][0] + w * s[0]; - buf[f][1] = d * buf[f][1] + w * s[1]; - - outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; - } - - checkGate( outSum / frames ); - - return isRunning(); -} - - -sample_t StereoControlEffect::calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b) -{ - float filterOutput = a * (inSamp - m_filtY[filtNum][channel][1]) + - b * (m_filtX[filtNum][channel][0] - m_filtY[filtNum][channel][0]) + - m_filtX[filtNum][channel][1]; - - m_filtX[filtNum][channel][1] = m_filtX[filtNum][channel][0]; - m_filtX[filtNum][channel][0] = inSamp; - m_filtY[filtNum][channel][1] = m_filtY[filtNum][channel][0]; - m_filtY[filtNum][channel][0] = filterOutput; - - return filterOutput; -} - - -void StereoControlEffect::multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf) -{ - lp = in * g + filtBuf; - hp = in - lp; - filtBuf = hp * g * 2.f + filtBuf; -} - - - - -extern "C" -{ - -// necessary for getting instance out of shared lib -PLUGIN_EXPORT Plugin * lmms_plugin_main( Model* parent, void* data ) -{ - return new StereoControlEffect( parent, static_cast( data ) ); -} - -} - diff --git a/plugins/StereoControl/OLD_1/StereoControl.h b/plugins/StereoControl/OLD_1/StereoControl.h deleted file mode 100755 index a70bc29dbfb..00000000000 --- a/plugins/StereoControl/OLD_1/StereoControl.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * StereoControl.h - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - - -#ifndef STEREOCONTROL_H -#define STEREOCONTROL_H - -#include "Effect.h" -#include "StereoControlControls.h" -#include "ValueBuffer.h" - -class StereoControlEffect : public Effect -{ -public: - StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); - virtual ~StereoControlEffect(); - virtual bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ); - - virtual EffectControls* controls() - { - return &m_stereocontrolControls; - } - - -private: - sample_t calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b); - void multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf); - - StereoControlControls m_stereocontrolControls; - - float m_filtX[2][2][2] = {{{0}}};// [filter number][channel][samples back in time] - float m_filtY[2][2][2] = {{{0}}}; - float m_filtA = 0; - float m_filtB = 0; - std::vector m_delayBuf[2]; - int m_delayBufSize = 0; - int m_delayIndex[2] = {0}; - - std::vector m_haasBuf[2]; - int m_haasBufSize = 0; - int m_haasIndex[2] = {0}; - - float m_sampleRate = 0; - - float m_dcInfo[2] = {0}; - - float m_monoBassFilter[2] = {0}; - float m_stereoizerFilter[2][2] = {0}; - - friend class StereoControlControls; - -} ; - -#endif diff --git a/plugins/StereoControl/OLD_1/StereoControlControlDialog.cpp b/plugins/StereoControl/OLD_1/StereoControlControlDialog.cpp deleted file mode 100755 index a5da6b7193f..00000000000 --- a/plugins/StereoControl/OLD_1/StereoControlControlDialog.cpp +++ /dev/null @@ -1,197 +0,0 @@ -/* - * StereoControlControlDialog.cpp - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#include - -#include "StereoControlControlDialog.h" -#include "StereoControlControls.h" -#include "embed.h" -#include "ToolTip.h" -#include "Knob.h" -#include "PixmapButton.h" - - - -StereoControlControlDialog::StereoControlControlDialog( StereoControlControls* controls ) : - EffectControlDialog( controls ) -{ - setAutoFillBackground( true ); - QPalette pal; - pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); - setPalette( pal ); - setFixedSize( 400, 350 ); - - Knob * volumeKnob = new Knob( knobBright_26, this); - volumeKnob -> move( 40, 40 ); - volumeKnob -> setVolumeKnob( true ); - volumeKnob->setModel( &controls->m_volumeModel ); - volumeKnob->setLabel( tr( "VOL" ) ); - volumeKnob->setHintText( tr( "Volume:" ) , "%" ); - - Knob * stereoizerKnob = new Knob( knobBright_26, this); - stereoizerKnob -> move( 80, 40 ); - stereoizerKnob->setModel( &controls->m_stereoizerModel ); - stereoizerKnob->setLabel( tr( "STEREOIZE" ) ); - stereoizerKnob->setHintText( tr( "Stereoize:" ) , "%" ); - - Knob * widthKnob = new Knob( knobBright_26, this); - widthKnob -> move( 160, 40 ); - widthKnob->setModel( &controls->m_widthModel ); - widthKnob->setLabel( tr( "WIDTH" ) ); - widthKnob->setHintText( tr( "Width:" ) , "%" ); - - Knob * monoBassFreqKnob = new Knob( knobBright_26, this); - monoBassFreqKnob -> move( 160, 80 ); - monoBassFreqKnob->setModel( &controls->m_monoBassFreqModel ); - monoBassFreqKnob->setLabel( tr( "MONO BASS FREQ" ) ); - monoBassFreqKnob->setHintText( tr( "Mono Bass Frequency:" ) , " Hz" ); - - Knob * stereoizerLPKnob = new Knob( knobBright_26, this); - stereoizerLPKnob -> move( 0, 110 ); - stereoizerLPKnob->setModel( &controls->m_stereoizerLPModel ); - stereoizerLPKnob->setLabel( tr( "Stereoizer Lowpass" ) ); - stereoizerLPKnob->setHintText( tr( "Stereoizer Lowpass:" ) , " Hz" ); - - Knob * stereoizerHPKnob = new Knob( knobBright_26, this); - stereoizerHPKnob -> move( 0, 140 ); - stereoizerHPKnob->setModel( &controls->m_stereoizerHPModel ); - stereoizerHPKnob->setLabel( tr( "Stereoizer Highpass" ) ); - stereoizerHPKnob->setHintText( tr( "Stereoizer Highpass:" ) , " Hz" ); - - Knob * panSpectralKnob = new Knob( knobBright_26, this); - panSpectralKnob -> move( 0, 170 ); - panSpectralKnob->setModel( &controls->m_panSpectralModel ); - panSpectralKnob->setLabel( tr( "Spectral" ) ); - panSpectralKnob->setHintText( tr( "Spectral Panning:" ) , "%" ); - - Knob * panKnob = new Knob( knobBright_26, this); - panKnob -> move( 200, 40 ); - panKnob->setModel( &controls->m_panModel ); - panKnob->setLabel( tr( "PAN" ) ); - panKnob->setHintText( tr( "Pan:" ) , "%" ); - - PixmapButton * gainButton = new PixmapButton(this, tr("Gain Panning")); - gainButton->move(300, 40); - gainButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("gain_sel")); - gainButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("gain_unsel")); - ToolTip::add(gainButton, tr("Change gain of each channel")); - - PixmapButton * stereoButton = new PixmapButton(this, tr("Stereo Panning")); - stereoButton->move(300, 57); - stereoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("stereo_sel")); - stereoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("stereo_unsel")); - ToolTip::add(stereoButton, tr("Pan one channel into the other")); - - PixmapButton * haasButton = new PixmapButton(this, tr("Haas Panning")); - haasButton->move(300, 74); - haasButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("haas_sel")); - haasButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("haas_unsel")); - ToolTip::add(haasButton, tr("Stereo panning with single-channel fractional delay")); - - automatableButtonGroup * panModeGroup = new automatableButtonGroup(this); - panModeGroup->addButton(gainButton); - panModeGroup->addButton(stereoButton); - panModeGroup->addButton(haasButton); - panModeGroup->setModel(&controls->m_panModeModel); - - PixmapButton * monoButton = new PixmapButton(this, tr("Mono")); - monoButton->move(300, 100); - monoButton->setModel(&controls->m_monoModel); - monoButton->setCheckable(true); - monoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mono_sel")); - monoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mono_unsel")); - ToolTip::add(monoButton, tr("Converts input to mono")); - - PixmapButton * dcButton = new PixmapButton(this, tr("DC Offset Removal")); - dcButton->move(100, 150); - dcButton->setModel(&controls->m_dcModel); - dcButton->setCheckable(true); - dcButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dc_sel")); - dcButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dc_unsel")); - ToolTip::add(dcButton, tr("Removes DC offset from the signal")); - - PixmapButton * muteButton = new PixmapButton(this, tr("Mute")); - muteButton->move(200, 100); - muteButton->setModel(&controls->m_muteModel); - muteButton->setCheckable(true); - muteButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mute_sel")); - muteButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mute_unsel")); - ToolTip::add(muteButton, tr("Mute audio")); - - PixmapButton * monoBassButton = new PixmapButton(this, tr("Mono Bass")); - monoBassButton->move(100, 250); - monoBassButton->setModel(&controls->m_monoBassModel); - monoBassButton->setCheckable(true); - monoBassButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("monoBass_sel")); - monoBassButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("monoBass_unsel")); - ToolTip::add(monoBassButton, tr("Mono Bass")); - - PixmapButton * auditionButton = new PixmapButton(this, tr("Bass Mono Audition")); - auditionButton->move(100, 300); - auditionButton->setModel(&controls->m_auditionModel); - auditionButton->setCheckable(true); - auditionButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("audition_sel")); - auditionButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("audition_unsel")); - ToolTip::add(auditionButton, tr("Bass Mono Audition")); - - PixmapButton * invertLButton = new PixmapButton(this, tr("Invert Left Channel")); - invertLButton->move(200, 150); - invertLButton->setModel(&controls->m_invertLModel); - invertLButton->setCheckable(true); - invertLButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_sel")); - invertLButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_unsel")); - ToolTip::add(invertLButton, tr("Invert Left Channel")); - - PixmapButton * invertRButton = new PixmapButton(this, tr("Invert Right Channel")); - invertRButton->move(200, 167); - invertRButton->setModel(&controls->m_invertRModel); - invertRButton->setCheckable(true); - invertRButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_sel")); - invertRButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_unsel")); - ToolTip::add(invertRButton, tr("Invert Right Channel")); - - PixmapButton * soloStereoButton = new PixmapButton(this, tr("Use both channels")); - soloStereoButton->move(200, 200); - soloStereoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloStereo_sel")); - soloStereoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloStereo_unsel")); - ToolTip::add(soloStereoButton, tr("Use both channels")); - - PixmapButton * soloLButton = new PixmapButton(this, tr("Solo left channel")); - soloLButton->move(200, 217); - soloLButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloL_sel")); - soloLButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloL_unsel")); - ToolTip::add(soloLButton, tr("Solo left channel")); - - PixmapButton * soloRButton = new PixmapButton(this, tr("Solo right channel")); - soloRButton->move(200, 234); - soloRButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloR_sel")); - soloRButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloR_unsel")); - ToolTip::add(soloRButton, tr("Solo right channel")); - - automatableButtonGroup * soloChannelGroup = new automatableButtonGroup(this); - soloChannelGroup->addButton(soloStereoButton); - soloChannelGroup->addButton(soloLButton); - soloChannelGroup->addButton(soloRButton); - soloChannelGroup->setModel(&controls->m_soloChannelModel); -} diff --git a/plugins/StereoControl/OLD_1/StereoControlControlDialog.h b/plugins/StereoControl/OLD_1/StereoControlControlDialog.h deleted file mode 100755 index 5b7681a7ef3..00000000000 --- a/plugins/StereoControl/OLD_1/StereoControlControlDialog.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * StereoControlControlDialog.h - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#ifndef STEREOCONTROL_CONTROL_DIALOG_H -#define STEREOCONTROL_CONTROL_DIALOG_H - -#include "EffectControlDialog.h" - - -class StereoControlControls; - - -class StereoControlControlDialog : public EffectControlDialog -{ - Q_OBJECT -public: - StereoControlControlDialog( StereoControlControls* controls ); - virtual ~StereoControlControlDialog() - { - } - -} ; - -#endif diff --git a/plugins/StereoControl/OLD_1/StereoControlControls.cpp b/plugins/StereoControl/OLD_1/StereoControlControls.cpp deleted file mode 100755 index cee5280f179..00000000000 --- a/plugins/StereoControl/OLD_1/StereoControlControls.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* - * StereoControlControls.cpp - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - - -#include - -#include "StereoControlControls.h" -#include "StereoControl.h" -#include "Engine.h" -#include "Song.h" - - -StereoControlControls::StereoControlControls( StereoControlEffect* effect ) : - EffectControls( effect ), - m_effect( effect ), - m_volumeModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Volume" ) ), - m_stereoizerModel( 0.0f, 0.0f, 200.0f, 0.01f, this, tr( "Stereoize" ) ), - m_widthModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Width" ) ), - m_panModel( 0.0f, -100.0f, 100.0f, 0.01f, this, tr( "Pan" ) ), - m_monoBassFreqModel( 120.0f, 0.0f, 500.0f, 0.01f, this, tr( "Mono Bass Frequency" ) ), - m_stereoizerLPModel( 20000.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Lowpass" ) ), - m_stereoizerHPModel( 0.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Highpass" ) ), - m_panSpectralModel( 0.0f, 0.0f, 100.0f, 0.01f, this, tr( "Spectral Panning" ) ), - m_panModeModel(0, 0, 2, this, tr("Panning Mode")), - m_soloChannelModel(0, 0, 2, this, tr("Solo Channel")), - m_monoModel(false, this, tr("Mono")), - m_dcModel(false, this, tr("DC Offset Removal")), - m_muteModel(false, this, tr("Mute")), - m_monoBassModel(false, this, tr("Mono Bass")), - m_auditionModel(false, this, tr("Mono Bass Audition")), - m_invertLModel(false, this, tr("Invert Left Channel")), - m_invertRModel(false, this, tr("Invert Right Channel")) -{ -} - - -void StereoControlControls::saveSettings( QDomDocument& doc, QDomElement& _this ) -{ - m_volumeModel.saveSettings( doc, _this, "volume" ); - m_stereoizerModel.saveSettings( doc, _this, "stereoizer" ); - m_widthModel.saveSettings( doc, _this, "width" ); - m_panModel.saveSettings( doc, _this, "pan" ); - m_panModeModel.saveSettings( doc, _this, "panMode" ); - m_monoModel.saveSettings( doc, _this, "mono" ); - m_dcModel.saveSettings( doc, _this, "dc" ); - m_muteModel.saveSettings( doc, _this, "mute" ); - m_monoBassModel.saveSettings( doc, _this, "monoBass" ); - m_auditionModel.saveSettings( doc, _this, "audition" ); - m_invertLModel.saveSettings( doc, _this, "invertL" ); - m_invertRModel.saveSettings( doc, _this, "invertR" ); - m_soloChannelModel.saveSettings( doc, _this, "soloChannel" ); - m_monoBassFreqModel.saveSettings( doc, _this, "monoBassFreq" ); - m_stereoizerLPModel.saveSettings( doc, _this, "stereoizerLP" ); - m_stereoizerHPModel.saveSettings( doc, _this, "stereoizerHP" ); - m_panSpectralModel.saveSettings( doc, _this, "panSpectral" ); -} - - - -void StereoControlControls::loadSettings( const QDomElement& _this ) -{ - m_volumeModel.loadSettings( _this, "volume" ); - m_stereoizerModel.loadSettings( _this, "stereoizer" ); - m_widthModel.loadSettings( _this, "width" ); - m_panModel.loadSettings( _this, "pan" ); - m_panModeModel.loadSettings( _this, "panMode" ); - m_monoModel.loadSettings( _this, "mono" ); - m_dcModel.loadSettings( _this, "dc" ); - m_muteModel.loadSettings( _this, "mute" ); - m_monoBassModel.loadSettings( _this, "monoBass" ); - m_auditionModel.loadSettings( _this, "audition" ); - m_invertLModel.loadSettings( _this, "invertL" ); - m_invertRModel.loadSettings( _this, "invertR" ); - m_soloChannelModel.loadSettings( _this, "soloChannel" ); - m_monoBassFreqModel.loadSettings( _this, "monoBassFreq" ); - m_stereoizerLPModel.loadSettings( _this, "stereoizerLP" ); - m_stereoizerHPModel.loadSettings( _this, "stereoizerHP" ); - m_panSpectralModel.loadSettings( _this, "panSpectral" ); -} - - diff --git a/plugins/StereoControl/OLD_1/StereoControlControls.h b/plugins/StereoControl/OLD_1/StereoControlControls.h deleted file mode 100755 index 6807bbe60df..00000000000 --- a/plugins/StereoControl/OLD_1/StereoControlControls.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * StereoControlControls.h - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#ifndef STEREOCONTROL_CONTROLS_H -#define STEREOCONTROL_CONTROLS_H - -#include "EffectControls.h" -#include "StereoControlControlDialog.h" - - -class StereoControlEffect; - - -class StereoControlControls : public EffectControls -{ - Q_OBJECT -public: - StereoControlControls( StereoControlEffect* effect ); - virtual ~StereoControlControls() - { - } - - virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent ); - virtual void loadSettings( const QDomElement & _this ); - inline virtual QString nodeName() const - { - return "StereoControlControls"; - } - - virtual int controlCount() - { - return 4; - } - - virtual EffectControlDialog* createView() - { - return new StereoControlControlDialog( this ); - } - -private: - StereoControlEffect* m_effect; - - FloatModel m_volumeModel; - FloatModel m_stereoizerModel; - FloatModel m_widthModel; - FloatModel m_panModel; - FloatModel m_monoBassFreqModel; - FloatModel m_stereoizerLPModel; - FloatModel m_stereoizerHPModel; - FloatModel m_panSpectralModel; - - IntModel m_panModeModel; - IntModel m_soloChannelModel; - - BoolModel m_monoModel; - BoolModel m_dcModel; - BoolModel m_muteModel; - BoolModel m_monoBassModel; - BoolModel m_auditionModel; - BoolModel m_invertLModel; - BoolModel m_invertRModel; - - friend class StereoControlControlDialog; - friend class StereoControlEffect; - -} ; - -#endif diff --git a/plugins/StereoControl/OLD_1/artwork.png b/plugins/StereoControl/OLD_1/artwork.png deleted file mode 100755 index 5598b32db47134819b686a2f2e282c297fe78c06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7739 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 Bz%u{< diff --git a/plugins/StereoControl/OLD_1/audition_sel.png b/plugins/StereoControl/OLD_1/audition_sel.png deleted file mode 100755 index 79699a84c00b5c31015d634ef76186bc8c26f11d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2489 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 DL_eDy diff --git a/plugins/StereoControl/OLD_1/audition_unsel.png b/plugins/StereoControl/OLD_1/audition_unsel.png deleted file mode 100755 index 108cd60dc15841b41b15ffe895fb16770cd80621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2615 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 ZichQAohc-f*2n+=002ovPDHLkV1iuL%6|X= diff --git a/plugins/StereoControl/OLD_1/dc_sel.png b/plugins/StereoControl/OLD_1/dc_sel.png deleted file mode 100755 index 984dc8a44f103cd7076a54f567abc5bfdd031cd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3018 zcmV;*3pMnKP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3#vlH@E7g#UAjJ%T|9!EyLf#NJ?!zYi`~PxnmE z%)1d=jw;(2gHWbYqQd^qzdihmPZCWbtJTs-FjPZ@lvTdw+C2&*Ini z5YzJ@(IlMZbz95RzG%OY{eyy(O0z~DtwD{q|`-+Z?ljVM`a2Q|Z+U}!qR6=Kh_JVAKW5yO!0B4Um zuGpi;eV=EXn3&T}#yO>#FG6$ruqEE}wtK!AD>JW1 z*Ay8H27P~o-#z$Wk9#2Z!@?MkGw)!$0ZxaKm~oIhzw`o-=#NkJCe8c!LC8Zq?*p$ykqh1n>4+eQA~hP!qdQ}Ne8T)75-SRaHy+jR@D;Jv})5{q-3J3 z6e~x1yNP9DtC(4}X1z+yRconMYi+f+)C6VLR+_ciT4=p9X=mup+npZ0k2GZDp`#2N zb+pkZ^qG0;EYoJ4ZT6LxEOcj;Wvi|hR^M?$rA?S`0({rqc6Yeu;@Q;^1+U(`f1viD z`t=Au>C2x{iw|n)M(XslAE?o6_8uZ0Injd|h@~7s+ztXq5)WoqjX9@-+`;T>iJ(BP z(1~!sS@9s20A$Cc9zU@Af!tql3tIj$Zs||Rg#+FH1G#XZ1G!&u`v$eu?}R5eKqm^1 zPcI?*{0dUHus9}g-7C8%HD-K#5(19?2xV}xVzQGlUm;b;p+gTijq3k1PDQr!HqwnFM1 z>FC>4=P3b-rCj$WFGS)WK>g9r(mdQiKFYv zbKq>&vhXm`5J%3VmeHv6W>33yJvzeDM@?OW!5|ckLKDWzIvo$ER%x1)n3^yiI(3#0 zc)ew5Dg$pU^q>+WgcbJHa9srVXJdEyH0}C`vZkC`DPw#u20w zBM2n^u91^~BMG5|y~m8hP-6B^6Oo5h+~C<0A7i4BnRkiA1hG=X`|c@)0RORpe-VvfVTD7F%DOKynhc%ixy6VE=dOR8r#6*1|1{&YpsR9V9}VXB$T- zrz69;u%#$hK5Bh=IcfCb9q5eIcDd(BZJs{@h-gHfqC;sY{p>+Vajj8tKwC0r*Hqg$ zQBa1DOO>oex(&ykm|PRA#Vrw*LQUJ~5V1iKw^O-;g5dF;jXf53wfBi{Nb$ZWhEcJB zQzR;!JhLW6AJq~9y$AcMP9fe=H0mNc_lk#p5^51(yY$88OqTIpPShSZHCTg;~+mh$o4os-{!EknvdMyv127RaoPm z{DtA1zP!YBnnOrn0gI3zLO}%^D8WXIR-F_JDcXRA0s5Z|*_2%=NK?q?f%h}|rYz8N3v{k}y*2i6`T(Su3>Fv=KJdq50000SbVXQnLvL+uWo~o;P;Yl-a%E&7VtF7(PE{{V zX>N6RKo=~a0003YNklk0NTE});b6RDW&E;d1AgyU8)SS2J^)f z+n_Ho7wG`}xbVE}3%*n##<!XHiP1-ndp@jBYhj7Jn{pp3_AtF(zOA z?8NCJ_8)*5_*9W+Yko`pnOvVTLuVegPEddkfLGxCWcRV|yWW78Upkb)8}!MuJOBUy M07*qoM6N<$g2;c&CjbBd diff --git a/plugins/StereoControl/OLD_1/dc_unsel.png b/plugins/StereoControl/OLD_1/dc_unsel.png deleted file mode 100755 index af634c507da9c8cad62080a75fdd9a8d55866861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2870 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 U^^vFf$N&HU07*qoM6N<$f`1fiod5s; diff --git a/plugins/StereoControl/OLD_1/gain_sel.png b/plugins/StereoControl/OLD_1/gain_sel.png deleted file mode 100755 index ab8284968137d7731cc00647a384299d9392ae5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4033 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 diff --git a/plugins/StereoControl/OLD_1/gain_unsel.png b/plugins/StereoControl/OLD_1/gain_unsel.png deleted file mode 100755 index b6e05b26f78e8564e58e4cfcb51fbb26061fc011..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3761 zcmV;i4o>ljP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3#tcB?B6ME^629s(dhFdUw1^$dFWy@l;0&dIs= zp4Dw9e&EkMRHahMZvW@s$Nh_&_~Kp4T1zX%b4x9?*m+U?0i=eJ=1Ee=Q{8v4DT>(2eIr z5}zxl$NT5PzO<@ekFe60o%&}O_;>b@eL1QnYb?2>=u6ZVebTgZjwelGxRqGm1@-RZ zW5L&Z_Zr}9Ev?L`#JDAhzmJbEM|u2r{tJ&Hc3lwVb-s_$NxXq3xNJgM>3OE}0)eQ$ z#pw0??dD!D{_*kZuavM??k7%2_?Z%#o>#~>B+F|@<<}4H{P}0-FTP(E*8bX2{Pux7 zIsLlT&;N5)J!d~o*HZza@;F-f2;qIjg#!%beywm<{xh%j-W&JIG842HWE^w?} z0|WxJUu-faCqgpB8f|U9qv2i~b9@Y=m;jMURRx9d)$PC-j+V=2@oBI@|0kE?MZ#Doa;g&8@z}hDw_>-z501yX}79+L4n^K8V7p zr=9+R+7s3HyZfdue~nsrq82YwcAb8r#<1#ZiePe*4KomnDS)^d0uVYHX1<1$q9JFP z`4&kE`p?`+p$k3_6he6}KNyTm2S1 zxd2%fT1>r=eaE}W!czB+A?}?C=c?PUT+g1f>KQBQE^<(#C33c`HqK&=S#w@&+}EDZ zf{;j}_H^cC-5hM_ZG?+srJAR4hQx68N$oVm)~dRE8FR0}F@C5$m%bP@O4s zotc$ugCI+~zkFc1n3=I4{&D6UCVVg=&rLZZ`xU|Qv7J-O_ejlL-*B+(w2kT_>JDgFx-7l`+fL1>q| zZc~QN$?HY_mNf@@Oh^O7u6r4R&b**)?SI{w`=f~dE}-o!_d`U#aeH)B?io|$?Kk{( z?}KAJ_is^5@^!22s00K+Dc}f5@>BDHKzo(Aj=D2-GZXn4LuwWOSV&9!#9pk?&Q6@5 z6bt*X#oj(xTuh8rQgP%LPnh7EyM>3U-Pb%mBh>X|D#JaHZ)@n;b>%*#+aXZL9p;Ki zZ96%-r6(73tJQ$BD>a^+W=ufL`Ba7_N2+I;x&R}&L*30=2v`eyOwMm81}6hNIW-c* znNven$BsGgJ;>rMI#w-6mJa1A9O_61ZC*>~N)u5{v-(kx+7Q_38Y>ae?ej(slv!qG ze9diBgehTNja_>Hwy&@igez^3ELenzgh$!Ppm`uJtX4ZNxGZEpp!?9cHq@YX)H_=8 z4_J+!$39M=ydcJSMA_&OVcrSBKdcuNyH|#V0M^YcT}$W7#jHpuct1)K)qs=bVYP9f z=8Z}~jOr;AXt5X?2L(7X$Ekf*#F>)<1G?ELydbd)h}S8C{%tFNpiw#b$&LntAoGQj zs0C}o4W!}dh=u@J3ImBFHB079$!w|*(hB`XF5$EVHmrZ#2@xtW`>C>eSlhyDyhbf) zEJ=|wO*ltuCDU2pzbw9o&SEEFeZa32G}?#LCoE~c^O12FSJmtEORt; zVUAPUT01KVAC3|*wuqr1W@G??P89I@1{jB(@w!w zAx(d}C$9wlv1^=s$j3np7*9~gX+4t~unng~7t+jbW2v+yHZZ(t{t;zQvtVb&pix(( z-x91Jr?f3A#cU}dx`j8iRSCgb1X9|T+-N6yW?uWfVv||bl&aIGHq;WGuxjJ5VvD#^ zi3;v$94IzoqTDPo!64AcL4_PvlV-^iSw^@UW{aRjN;C5(uQWJoX@K9GR?_)Iy z#V4uJ?ldY#FjG_p%f*QM+H#_0=fU}=>8KCd$%&~0ejv-sTj9W*E@I6yesg=gVsB%w zWhLhjXWC@e>YS!*D^cWH$HRPFVU1t%bx7*iwhZ?;^tz<=_z`$yMHB62!;n`=I6nbx zY_m0mIFy2G0Zhm+$3WN^u~U+Hb7Tyj<-S&H*i1lJea29V*8foab$biK=R_EZ=8Wm^HBJ-qx%wx{@BK-61{R~jh zb()sajClw!3X9lRnM!3#n09*3W?dyV(&Gm()P>HYpJz@79b{=XHFSblENDzHWSRLS zRZbW?!xtdvr4ygWg=JVK|6YyF-}9Tolc7I<`J#_JZ;vKK?Y^l7==*Is=QlNg4{if!|Ce zP-jNN=#cl}T;Lv8T;_Vjm*OG_ zkEM5c*aJVWcRH!ek&PHA^%(tD4?1uU}e(mhS6c1(aA z*A{bu$s$G}C)S7<(qKPZz#Wd;$7f1Cg7BGBmQl3Lc{xfB*@L$py9OgKO=&W62bkR_ zo)VXc+d)^dRW^*nQTr9kQe&%`mn*G~6%AE9(V`zm5QVy(;5bNtfq{sOBU3ccjoTe8 z5d3JJ25gr>?FZsbPe_}+?++OiS2{Rc6L`Lfj6-`dh3$*_8WQPUWPOa-Ikfz%YU`Wu zI<6>b@pkgTu}abV{t##Mr?XO#Jufp`_ z&+d=ESSn}U-TZ?2F_VqO2HbxE;Vwl=>2*w00004nX+uL$Nkc;*aB^>EX>4Tx0C=2z zkv&MmKpe$iQ?;TM2MdabWT;LSM5Q=t6^c+H)C#RSm|XfHG-*guTpR`0f`cE6RRirzZE)Tv4zYr)5}y-~ znRG$oN3JU#zj4mHEbz>bnM%$Phls^|6Dv*33Z_OpMI2T&o$`gW$13M7&RVg|>i6U? z3}*G^C9cyPLL3WNgai=^%Gf{=HX^j@q*zGOeyoLm(Dh5?QpmLdMvi%uph0&1;D7MD zTPrs?;UxuQK>Lg1e2f5rU7%KRobO}Dsht4+XW&Y2_)Aq_`jhlZLkk}Pz1zUWbwgA3 zfXf|V;K`6p*_He>gFsYybcN24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_ z00007bV*G`2jm7G7daQ|xtp*60010xMObu0Z*6U5Zgc=pZ+B&KWn>^?c_2qlRWD3w zZgqG-7c8Iv00Cu5L_t(o!|j*BPQx$^hX14~+!*Yz0|KULLgM|O25FkA4YUJ?X*&+q zm_s#`P3nl%?I0wjxW3IL6#FNs7XTg+c!LO8PJzLx-XCc~!_@c3)5 zpc9GOZ-Xw2SwFyYxB*pqArN~ovi4#@9D@Bcd5#0#mQdP1X;evx{+IeB|&@y$-B7OdK^K~6~pYP{(jVv(4gDyd?7{$y- zmA*h+KfXZf3hTLfxpVOuhr>{QWbB}zHAyF@eSLhfY6ydyK17MzEX6AXT@+AG&9Fq? z+?<>)Jf9LlD^;t?P_UZ#lI#vnABp(P&(>%HzUE@UnS96~g@EgG!Lq^&q5?qoj}s`R z(06-Z%#Yq5#?!E8c_OUd3aBj0X>d10eszsx?b`lxhs|aUGZ>DrU4Nh~zY>*}Ei*Z8 bZb$eA5`jx3tVKlL00000NkvXXu0mjf$Ke81 diff --git a/plugins/StereoControl/OLD_1/haas_sel.png b/plugins/StereoControl/OLD_1/haas_sel.png deleted file mode 100755 index 94384f997d7c100bedf12033702c3bcab66bf785..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4129 zcmV++5Z>>JP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3&sa^yM=g#Ysta|G@nkHZCwm>bOT=L1XSw%vZ) z#JJieStW4+5}Ao=r~mo)asT2c#pYcu(rT~O^OJk-ad6W7>u22e;PZXIKV?6kg|F9L zh|dR+ONnE8{n_esUAfLZp*+{uGtS_8`83dY1`6}*2V*?rw`YRq`g@`jUK99dg>F6r zrTEO8Uw=On``Vj)-onnGR_dQH@aycY_9Ik6n=(;cl`2m>TiBOO)TTRqWJZL zeEj?pfcES6oZZgR*X~BHq^Q2O7Cu6F&$y96a=MRIUcztTT<)v$YLw0*+Z(V=UMutv z9eF+>haE;ZLGN*e#S(MWC>G2Lq|N$hbYOMJFhI8jnhJGB&DTHqydIex4q+LuCk1zK}AN^PIS^aLliPg6wAiLd4vK#e_r#d=06D8ob0PArQw# zf(9#(DaT0$0<&#SmMxxp_vyy*HNlx(s8Ih(f6fx#?+;tegw@k=(%0D5>O9 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 diff --git a/plugins/StereoControl/OLD_1/haas_unsel.png b/plugins/StereoControl/OLD_1/haas_unsel.png deleted file mode 100755 index c47717468d0614609ecb63499460c9fc45f587cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3400 zcmV-O4Y%@%P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3#ta%(FNh5s{(9s(f5V>mpkdImlG{)FwsImtcu z-0F_Yd)sV`gx1oMh}-}9_i_K?FII^zX{ov8?DL``uK5_$Gh{+Tt#eNkiuuZSMMa=KoeY?C|G*#>AXN7s$XLC zy8rU$ULXE=d-Xdd?34S66B2%=L`lyX@(Ysrd85v+6nfvAdo!5aq|#!bb@2CngRsl>4*HtMFDnm-}kGDycI;dqK9rYlar01LqS` zSfPg#_Px(AaWTam3-=gjlsi_X#1^L*@X21`#3D_WSklUbFT!yA@FiTk?b@56VtECo z#=v3$KK=M|fA!#>zV1Tj7z;zNVBTcB0LM$!VBf{A%mR>bo-x%+n%C=-kZ-^W29J5K>$w0S!nWc}5D@S=h=v?|iLr!094i2IJdcv%0D%DQ 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 diff --git a/plugins/StereoControl/OLD_1/invertR_sel.png b/plugins/StereoControl/OLD_1/invertR_sel.png deleted file mode 100755 index f4e540d7ec10c3cd0e1bcb6c771abe5446feda5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2274 zcmV<82p#u{P)_8o000H+dQ@0+Qek%> zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1b@cI+w+{Ld<82}VK)mcy6MnH{|4PYK(d?xb&$ zd*<0`gJq0Fl~g!k{qtW7|G_~qQb?jD*PIU=sisN|opPK<+t+xceccCLk8uBD5Al9N zFfm#_Z%e-H3wDf&a@ofO!g_43Ns zl<;17mlO4PpAwp`5&VhCd`FbOKG^fid+Im8PmZELR{o2i7=cwzhV>!iFRQsJ8ACoBO#xNWiTik=7M<}NZeC&i66Pen`g#2 zL7UErqRwjqKm^}{U?PKoBS)5)&x7r2RyYlmat~feN{AyrXfC zC85&{#RL(;83kIvPy<;h3Gzo%K@K%xNg|Sis1&KvGUtRU%UQEaZ&TKU+RCb0v}!9{ zQjwC2mQreIl`2D-rRJ)&)Ea7QaN00+!`lrbTIUU|Op^QCXCaWWtW-TyCVw)N2)>Hti?GFeu0lKU1NmrVVbTuwB ziXkat!mKZ@f(NrYOq1)Lq@p6a@KPjX2ZPOh_Q|7nj@Fj3cI1TgHch)#T0?uRNXXpb zEe=~t$!IFH+U10=l^0_@P+L@;vb?4q+|G z_``1ksNbD$TIy3!eG_nE*E|=M>DaZI?q!DW*8Mlj4sX|u)SQ2rnqj7MweFW0ocF$Z zA9EoiXI}8RY~|h~s;h_$gbSlZ8bZqD8XwBoubK(4_BQ zJlE=rUQp1L==6?~(FXO*GK0xn&@L0_Lj0N9hV$??K))Ojc8YEAipP#%~uMj`| zHU00>p|oa_=_4Hi{q!0?3iqRvu^p&~3CIlvp11^I7!dI6UiH}T91b}J1KORrs!mmB zr$bpLS)U+PGtYvC8bk>?V?mKsH9rry9hWm9J((*0TYxiEjR4ANb9hp%v!=uMMxO=E% z3e+I1gs<3oTDr&WpS?Hnukiwd0Li`psrw~yIx5nBSJvV63H^3TDo|Rf@2_Zy@(2c_ z1>Z--oRbcmP+KztavSyJ#H(O)0-)I`d3t^(2c(?m&k2cf{;wb|spJzcjyF7?+r87) z?nwH^^gD*$weN%t43gmM2Zde16Yy|?e&~fa#!OyGTP^$pqtD+M!>@-z3Mc-*2>%1} z+aCCJW<{s~00Dz(LqkwWLqi~Na&Km7Y-Iodc$|HaJxIeq9K~PLN<}IT78G&FP@OD@ zia2T&iclfc3avVrT>1q~8j=(jN5Qq=;KyRs!Nplu2UkH5`~Y!sbW(JY691PJTEuv8 z+>dwn9(V5mp;2L)6&eRL-8R$7gqY2(is4s;5y1e02+7Pc<|HWv-|=;i0AKIoJj?&w zpQBgJTMP(@#IwvWZQ>2$=}p_Ty$CBnNc&7o+pkH zi^UFBI+&GAjd+SUrfNFn3t5j<&Rd+dN{zMd$zK@B>nqD#r#Xxy7O?~gA{5k6Mg=zF zwCbc-NYj48$3NuyC2}d`Dua<@0aa*_T|f9A{O;B&Oip-7kp$57;y528KzJ8u)*a{j z*m0UCK=2v3(%b%O1DN?Fz24ShM?l{;aBw3Vu2MI^!67hOr0jK{cXxO8_V1Zie?R2ka&E7xf-(RA00v@9M??Vs z0RI60puMM)00009a7bBm000XU000XU0RWnu7ytkO2XskIMF->u3>O3@7XM|C0000S zbVXQnLvL+uWo~o;P;Yl-a%E&7VtF7(PE{{VX>N6RKo=~a0002NNkl&G)~0_S&XNcgKSoHE9tL3&|cJkolM$04fgw!0vde2CxMHF#VvJl>=aa zz|BAAqhVukc5aPiV; w>ZT}w0=Uxs9)yT;o8UGTg*XGaJZxCKZYDl}p*|G9Hvj+t07*qoM6N<$g45?W?EnA( diff --git a/plugins/StereoControl/OLD_1/invertR_unsel.png b/plugins/StereoControl/OLD_1/invertR_unsel.png deleted file mode 100755 index 01e44af8195556f6648739b649213cc69a75ccb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2019 zcmV<92ORi`P)_8o000EkdQ@0+Qek%> zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1YwlIti8{bv=k1SBCI%Mq`t*}*J-4%klOPHx}Z zQxjsqNa%GWup9sUJ>6gUQ4Zb(O*xhrJ$|8t!iGuq$Io_8KJ0$~_$1-|w(jVnFqQ

jUfHAwAdIDaWv`FM{k8MD+Bd5YXq%c%@hK3l9gjjBc=?K%M@OpRG0=AXV6|2HL zgv9Uu*vxV~h9{vX@W8n}_Y%+tCwxEw=-4M{I(?cK2#D$}M%Vb|=dQ^gyO-ZnV$IyA zoGAWtN~Cad$QLBzWl?-5Z29^b`i<|4;$)Xad?!@z^%j8qeCF(V&T)8WAp)X!xJHi< z?im;%C&=Cw(GniTJndG{GD@cb?T%!tXpIW71J08IbuyYX_SmSw#K40SM&`z{*Rmuo z+++bCR-?&Digd}sP8#w>u*?rzXzMLoU!x4ooxsWjVaTA*&Hak-)3yc8xw4RG1+yHn zf?d2*l~!uV>cIs-Xr3|EoitZ_CgcmS0t9u3IYX}bdWfh>&)kxYvw%-AhC>jgehNT{ zpj%-K2@vp+L@AO_%!vqb%mBz>IZNOQ1PE#0VI-s01jWFamu~Dyw0T+iSjLG7AXFj> zGy@?6SRp9#Cxwh0G8GM~8l5K1TGXP%fGUeI#dY*rk`z!|F{PAKNtPvttU2bCb1vBm z7s1J_C6-ijDXy47sX?@1w}Hc~a+MmY)>u=`wNz_JpB9?7*iy@_H0#`@dHB zapUiha|^ov139;#19I=UeL$_-zVKuNw5o8$)C;O_7B@#WuCOQ;+#sWq;!gqI;;88d ziF5VZ23$69gTK)m(S1w(0nz>Ut#_h(r{bj^13r6jz=G3koe4qLwfsIJj-xwLNra0b zFIlrLu{~a_MpNH&4azVjFhOxxOztsz zOl0)2&A9COvUk&A?6S;alUk4>%e4vrQ?GN~FtW*zFqZ@_4@U~#cC^-~*Qe1v7m$k8 z$VRei-b%pH*$Ks@xE>XvHq-kAaUC$v(TcEbL+^WE6>bwl&+YUm+xqmpnd*LN>lahK zox@VMk-uwm_dUzbJq62Q3Jh4qv*LM#^DLib<7MAY$UjK9k0Z6&AsinV=!21~hpWiq z!`}6oc^^}6u*J{*m|!2a&6;5n!LU;C<KD^13b1qiDYm^JSTG$Y=V< zi?3n`G&sc^&V~N;H|(>b;AWzZEpeS1*9?O7I7EX>4Tx0C=2zkv&MmKpe$i(@I4u4i*$~$WWauh>AFB6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfa&%I3krMxx6k5c1aNLh~_a1le0HIM~niU!cG~G7S z$%L5At%~7Sgb~32f(XgXGUg;H1>f;?j{slq;yla$+@GUY&07ozh{UtZFm2)u;^|G> z;Ji;9WhGf9J|`YC>4L)|5Tqat9cEGGtSBr65hAPypV~=$mpt|1Hq7=JnRv$LRx*p{`Olz`-Ff zTBPiCpLch6_V(|YR)0U_-*RrRs)8~A000JJOGiWi{{a60|De66lK=n!32;bRa{vGf z6951U69E94oEQKA00(qQO+^Rf2MiYkDj!KHy8r+H9CSrkbVF}#ZDnqB08nptWpZU? zAYyqSM^05QOlfX)ct95{pa1{>*-1n}R7l6gmB9|eAPk0ohSR%=7u}RaO!WO9M&qU~ z+dHTSwO*#OOe3RPXu<(f=*M450na7?&|f;1l7s^2foaiw`VC}n(OV2H(=*n9QS>dA+_4X zk^Dyr>@2PVmkh~SW%%-ol}4Foov0DG7D1$Rtpr&Bt`;f%R=^d+DFwAYK-Bn@+N4DQ zplO^y2;rw2N*UsMIU^j7{Pg4TWJXekWce05A5V_ThW(P@j!6Ij002ovPDHLkV1hOu Bz`Fnd diff --git a/plugins/StereoControl/OLD_1/logo.png b/plugins/StereoControl/OLD_1/logo.png deleted file mode 100755 index 9340da708dd79ed97111eb535f51b81a91d6a15b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 774 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 LNkvXXu0mjf(VzwV diff --git a/plugins/StereoControl/OLD_1/monoBass_unsel.png b/plugins/StereoControl/OLD_1/monoBass_unsel.png deleted file mode 100755 index b5e6462f66b14761a4f053130f47674d168a4a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5529 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 b$ypme9CKl&Jb1X~00000NkvXXu0mjfZjnjR diff --git a/plugins/StereoControl/OLD_1/mono_sel.png b/plugins/StereoControl/OLD_1/mono_sel.png deleted file mode 100755 index e50bd3f0acfcbcdc9eb8cc7656232850457cf0b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3743 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 JPDHLkV1oP;8CC!Q diff --git a/plugins/StereoControl/OLD_1/mono_unsel.png b/plugins/StereoControl/OLD_1/mono_unsel.png deleted file mode 100755 index 796f1786a29dfd88f3eaceb5c0d6584c71c06643..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3933 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 ZyaP8x3Bb1#C?5a-002ovPDHLkV1iI5H2nYo diff --git a/plugins/StereoControl/OLD_1/soloL_sel.png b/plugins/StereoControl/OLD_1/soloL_sel.png deleted file mode 100755 index 8c48c959b972d9da8ddd8f56337bac1e9f06d44e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3369 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 Hu0mjfa-Pg< diff --git a/plugins/StereoControl/OLD_1/soloR_sel.png b/plugins/StereoControl/OLD_1/soloR_sel.png deleted file mode 100755 index 299078f717b8d81bc0bda96973b5d48da9a158c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4530 zcmV;j5l!xiP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3&sk{mg%g#Ysta|CW6$m4*U*}K6Ue?CM;sY_~2 zzizXsR8>aC!UYbvJ5u5N`~PnE7e7Tx4pp?b(OTrEjyke&(BtRFp1 =kN0)`@NQa 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 Q;{X5v07*qoM6N<$f(eSBzyJUM diff --git a/plugins/StereoControl/OLD_1/soloR_unsel.png b/plugins/StereoControl/OLD_1/soloR_unsel.png deleted file mode 100755 index dd799831a10c49cb2c8335cb838adbfa758c3f90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4154 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 Ef~!8o1ONa4 diff --git a/plugins/StereoControl/OLD_1/soloStereo_sel.png b/plugins/StereoControl/OLD_1/soloStereo_sel.png deleted file mode 100755 index d3974efa02884a4fbbd563188fc20a7694b3c4c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4423 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 N002ovPDHLkV1ga7P-_4H diff --git a/plugins/StereoControl/OLD_1/soloStereo_unsel.png b/plugins/StereoControl/OLD_1/soloStereo_unsel.png deleted file mode 100755 index 23cdd827544b895783274c03333b2340e74551dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4570 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 Ef|!w)qyPW_ diff --git a/plugins/StereoControl/OLD_1/stereo_sel.png b/plugins/StereoControl/OLD_1/stereo_sel.png deleted file mode 100755 index d1292d89bf41385e21265bff027cc243f07f1313..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3811 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 ek}AgW=@{=ct=3f%8vT_30000 - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#include "StereoControl.h" - -#include "embed.h" -#include "plugin_export.h" -#include "lmms_math.h" -#include "interpolation.h" - -extern "C" -{ - -Plugin::Descriptor PLUGIN_EXPORT stereocontrol_plugin_descriptor = -{ - STRINGIFY( PLUGIN_NAME ), - "Stereo Control", - QT_TRANSLATE_NOOP( "pluginBrowser", "A plugin generated by Lost Robot's LMMS Development Package. This is your plugin description. You should change this." ), - "Lost Robot ", - 0x0100, - Plugin::Effect, - new PluginPixmapLoader("logo"), - NULL, - NULL -} ; - -} - - - -StereoControlEffect::StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ) : - Effect( &stereocontrol_plugin_descriptor, parent, key ), - m_stereocontrolControls( this ) -{ - m_sampleRate = Engine::mixer()->processingSampleRate(); - - m_delayBufSize = int(m_sampleRate / 160.f) + 1.f; - m_delayBuf[0].resize(m_delayBufSize); - m_delayBuf[1].resize(m_delayBufSize); - - m_haasBufSize = int(m_sampleRate * 0.002f) + 1.f; - m_haasBuf[0].resize(m_haasBufSize); - m_haasBuf[1].resize(m_haasBufSize); -} - - - - -StereoControlEffect::~StereoControlEffect() -{ -} - - - - -bool StereoControlEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) -{ - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - - double outSum = 0.0; - const float d = dryLevel(); - const float w = wetLevel(); - - const ValueBuffer * volumeBuf = m_stereocontrolControls.m_volumeModel.valueBuffer(); - const ValueBuffer * stereoizerBuf = m_stereocontrolControls.m_stereoizerModel.valueBuffer(); - const ValueBuffer * widthBuf = m_stereocontrolControls.m_widthModel.valueBuffer(); - const ValueBuffer * panModeBuf = m_stereocontrolControls.m_panModeModel.valueBuffer(); - const ValueBuffer * panBuf = m_stereocontrolControls.m_panModel.valueBuffer(); - const ValueBuffer * monoBuf = m_stereocontrolControls.m_monoModel.valueBuffer(); - const ValueBuffer * dcBuf = m_stereocontrolControls.m_dcModel.valueBuffer(); - const ValueBuffer * muteBuf = m_stereocontrolControls.m_muteModel.valueBuffer(); - const ValueBuffer * monoBassBuf = m_stereocontrolControls.m_monoBassModel.valueBuffer(); - const ValueBuffer * auditionBuf = m_stereocontrolControls.m_auditionModel.valueBuffer(); - const ValueBuffer * invertLBuf = m_stereocontrolControls.m_invertLModel.valueBuffer(); - const ValueBuffer * invertRBuf = m_stereocontrolControls.m_invertRModel.valueBuffer(); - const ValueBuffer * soloChannelBuf = m_stereocontrolControls.m_soloChannelModel.valueBuffer(); - const ValueBuffer * monoBassFreqBuf = m_stereocontrolControls.m_monoBassFreqModel.valueBuffer(); - const ValueBuffer * stereoizerLPBuf = m_stereocontrolControls.m_stereoizerLPModel.valueBuffer(); - const ValueBuffer * stereoizerHPBuf = m_stereocontrolControls.m_stereoizerHPModel.valueBuffer(); - const ValueBuffer * panSpectralBuf = m_stereocontrolControls.m_panSpectralModel.valueBuffer(); - const ValueBuffer * panWidthBuf = m_stereocontrolControls.m_panWidthModel.valueBuffer(); - - for( fpp_t f = 0; f < frames; ++f ) - { - const float volume = (volumeBuf ? volumeBuf->value( f ) : m_stereocontrolControls.m_volumeModel.value()) * 0.01f; - const float stereoizer = (stereoizerBuf ? stereoizerBuf->value( f ) : m_stereocontrolControls.m_stereoizerModel.value()) * 0.01f; - const float width = (widthBuf ? widthBuf->value( f ) : m_stereocontrolControls.m_widthModel.value()) * 0.01f; - const int panMode = panModeBuf ? panModeBuf->value( f ) : m_stereocontrolControls.m_panModeModel.value(); - const float pan = (panBuf ? panBuf->value( f ) : m_stereocontrolControls.m_panModel.value()) * 0.01f; - const bool mono = monoBuf ? monoBuf->value( f ) : m_stereocontrolControls.m_monoModel.value(); - const bool dc = dcBuf ? dcBuf->value( f ) : m_stereocontrolControls.m_dcModel.value(); - const bool mute = muteBuf ? muteBuf->value( f ) : m_stereocontrolControls.m_muteModel.value(); - const bool monoBass = monoBassBuf ? monoBassBuf->value( f ) : m_stereocontrolControls.m_monoBassModel.value(); - const bool audition = auditionBuf ? auditionBuf->value( f ) : m_stereocontrolControls.m_auditionModel.value(); - const bool invertL = invertLBuf ? invertLBuf->value( f ) : m_stereocontrolControls.m_invertLModel.value(); - const bool invertR = invertRBuf ? invertRBuf->value( f ) : m_stereocontrolControls.m_invertRModel.value(); - const int soloChannel = soloChannelBuf ? soloChannelBuf->value( f ) : m_stereocontrolControls.m_soloChannelModel.value(); - const float monoBassFreq = monoBassFreqBuf ? monoBassFreqBuf->value( f ) : m_stereocontrolControls.m_monoBassFreqModel.value(); - const float stereoizerLP = stereoizerLPBuf ? stereoizerLPBuf->value( f ) : m_stereocontrolControls.m_stereoizerLPModel.value(); - const float stereoizerHP = stereoizerHPBuf ? stereoizerHPBuf->value( f ) : m_stereocontrolControls.m_stereoizerHPModel.value(); - const float panSpectral = (panSpectralBuf ? panSpectralBuf->value( f ) : m_stereocontrolControls.m_panSpectralModel.value()) * 0.01f; - const float panWidth = (panWidthBuf ? panWidthBuf->value( f ) : m_stereocontrolControls.m_panWidthModel.value()) * 0.01f; - - sample_t s[2] = { buf[f][0], buf[f][1] }; - - switch (soloChannel) - { - case 0: - { - break; - } - case 1: - { - s[1] = s[0]; - break; - } - case 2: - { - s[0] = s[1]; - break; - } - } - - if (invertL) - { - s[0] *= -1.f; - } - - if (invertR) - { - s[1] *= -1.f; - } - - float allpassFreq = 0; - float delayLength = 0; - allpassFreq = linearInterpolate(370.f, 170.f, stereoizer * 0.5f); - delayLength = allpassFreq; - - delayLength = m_sampleRate / delayLength; - - const float w0 = (F_2PI / m_sampleRate) * allpassFreq; - const float a0 = 1 + (sin(w0) / (0.707f * 2.f)); - m_filtA = (1 - (a0 - 1)) / a0; - m_filtB = (-2*cos(w0)) / a0; - - float delayResult[2] = {0}; - for (int i = 0; i < 2; ++i) - { - // Read next value from delay buffer - float readLoc = m_delayIndex[i] - delayLength; - if (readLoc < 0) {readLoc += m_delayBufSize;} - float readLocFrac = fraction(readLoc); - if (readLoc < m_delayBufSize - 1) - { - delayResult[i] = linearInterpolate(m_delayBuf[i][floor(readLoc)], m_delayBuf[i][ceil(readLoc)], readLocFrac); - } - else// For when the interpolation wraps around to the beginning of the buffer - { - delayResult[i] = linearInterpolate(m_delayBuf[i][m_delayBufSize - 1], m_delayBuf[i][0], readLocFrac); - } - - // Increment delay ring buffer index - ++m_delayIndex[i]; - if (m_delayIndex[i] >= m_delayBufSize) - { - m_delayIndex[i] -= m_delayBufSize; - } - // Send new value to delay line - m_delayBuf[i][m_delayIndex[i]] = s[i]; - } - - for (int i = 0; i < 2; ++i) - { - float allpassValue = (delayResult[0] + delayResult[1]) * 0.5f; - - for (int j = 0; j < 2; ++j) - { - allpassValue = calcAllpassFilter(allpassValue, m_sampleRate, j, i, m_filtA, m_filtB); - } - - allpassValue *= i ? -1.f : 1.f; - - float lp; - float hp; - float hp2; - multimodeFilter(allpassValue, multimodeCoeff(stereoizerHP), lp, hp, m_stereoizerFilter[0][i]); - multimodeFilter(hp, multimodeCoeff(stereoizerLP), lp, hp2, m_stereoizerFilter[1][i]); - - s[i] += lp * qMin(stereoizer, 1.f); - } - - const float sMid = (s[0] + s[1]) * 0.5f; - const float sSide = (s[0] - s[1]) * 0.5f; - - s[0] = sMid + sSide * width; - s[1] = sMid - sSide * width; - - if (mono) - { - s[0] = (s[0] + s[1]) * 0.5f; - s[1] = s[0]; - } - - if (monoBass) - { - float lp[2]; - float hp[2]; - - for (int i = 0 ; i < 2; ++i) - { - multimodeFilter(s[i], multimodeCoeff(monoBassFreq), lp[i], hp[i], m_monoBassFilter[i]); - } - - float lowmono = (lp[0] + lp[1]) * 0.5f; - - if (audition) - { - s[0] = lowmono; - s[1] = lowmono; - } - else - { - s[0] = lowmono - hp[0];// Subtraction is needed due to filter phase shift - s[1] = lowmono - hp[1]; - } - } - - switch (panMode) - { - case 0:// Gain - { - const float lGain = pan > 0 ? 1.f - pan : 1.f; - const float rGain = pan < 0 ? 1.f + pan : 1.f; - s[0] *= lGain; - s[1] *= rGain; - break; - } - case 1:// Stereo - { - const float temp = s[0]; - const float llGain = pan > 0 ? 1.f - pan : ( pan + 1.f) * 0.5f + 0.5f; - const float rrGain = pan < 0 ? 1.f + pan : (-pan + 1.f) * 0.5f + 0.5f; - const float lrGain = pan < 0 ? -pan * 0.5f : 0.f; - const float rlGain = pan > 0 ? pan * 0.5f : 0.f; - s[0] = s[0] * llGain + s[1] * lrGain; - s[1] = temp * rlGain + s[1] * rrGain; - break; - } - case 2:// Haas - { - float widthTemp = panWidth <= 1.f ? linearInterpolate(0.5f, 1.f, panWidth) : linearInterpolate(1.f, 0.5f, panWidth - 1.f); - s[0] = (s[0] + s[1] * (1.f - panWidth)) * widthTemp; - s[1] = (s[1] + s[0] * (1.f - panWidth)) * widthTemp; - - float haasResult = 0; - float haasDelayVal[2] = {0}; - - if (pan >= 0) - { - haasDelayVal[0] = linearInterpolate(0, 0.0008f * m_sampleRate, abs(pan)); - } - else - { - haasDelayVal[1] = linearInterpolate(0, 0.0008f * m_sampleRate, abs(pan)); - } - - for (int i = 0; i < 2; ++i) - { - if ((i == 0 && pan > 0) || (i == 1 && pan < 0)) - { - // Read next value from delay buffer - float readLoc = m_haasIndex[i] - haasDelayVal[i]; - if (readLoc < 0) {readLoc += m_haasBufSize;} - float readLocFrac = fraction(readLoc); - if (readLoc < m_haasBufSize - 1) - { - haasResult = linearInterpolate(m_haasBuf[i][floor(readLoc)], m_haasBuf[i][ceil(readLoc)], readLocFrac); - } - else// For when the interpolation wraps around to the beginning of the buffer - { - haasResult = linearInterpolate(m_haasBuf[i][m_haasBufSize - 1], m_haasBuf[i][0], readLocFrac); - } - } - - // Increment delay ring buffer index - ++m_haasIndex[i]; - if (m_haasIndex[i] >= m_haasBufSize) - { - m_haasIndex[i] -= m_haasBufSize; - } - // Send new value to delay line - m_haasBuf[i][m_haasIndex[i]] = s[i]; - } - - if (pan != 0) - { - const float minGain = linearInterpolate(1.f, 0.15f, abs(pan)); - if (pan >= 0) - { - const float lGain = ((1.f - pan) + minGain) / (1.f + minGain); - s[0] = haasResult * lGain; - } - else - { - const float rGain = ((1.f + pan) + minGain) / (1.f + minGain); - s[1] = haasResult * rGain; - } - } - - const int lowChnl = (pan <= 0); - const int highChnl = !lowChnl; - - float lp; - float hp; - - float temp = -abs(pan) + 1.f; - float filtFreq = 2000.f + 8000.f * temp * temp; - float hpGain = abs(pan) < 0.5 ? 1.f - abs(pan) * 2.f : 0.f; - hpGain = linearInterpolate(1.f, hpGain, panSpectral); - multimodeFilter(s[lowChnl], multimodeCoeff(filtFreq), lp, hp, m_haasSpectralPanFilter[lowChnl]); - - s[lowChnl] = lp + hp * hpGain; - - filtFreq = 2000.f; - hpGain = abs(pan) + 1.f; - hpGain = linearInterpolate(1.f, hpGain, panSpectral); - multimodeFilter(s[highChnl], multimodeCoeff(filtFreq), lp, hp, m_haasSpectralPanFilter[highChnl]); - - s[highChnl] = lp + hp * hpGain; - } - } - - if (dc) - { - for (int i = 0; i < 2; ++i) - { - m_dcInfo[i] = m_dcInfo[i] * 0.999f + s[i] * 0.001f; - s[i] -= m_dcInfo[i]; - } - } - - if (mute) - { - s[0] = 0; - s[1] = 0; - } - - s[0] *= volume; - s[1] *= volume; - - buf[f][0] = d * buf[f][0] + w * s[0]; - buf[f][1] = d * buf[f][1] + w * s[1]; - - outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; - } - - checkGate( outSum / frames ); - - return isRunning(); -} - - -sample_t StereoControlEffect::calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b) -{ - float filterOutput = a * (inSamp - m_filtY[filtNum][channel][1]) + - b * (m_filtX[filtNum][channel][0] - m_filtY[filtNum][channel][0]) + - m_filtX[filtNum][channel][1]; - - m_filtX[filtNum][channel][1] = m_filtX[filtNum][channel][0]; - m_filtX[filtNum][channel][0] = inSamp; - m_filtY[filtNum][channel][1] = m_filtY[filtNum][channel][0]; - m_filtY[filtNum][channel][0] = filterOutput; - - return filterOutput; -} - - -void StereoControlEffect::multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf) -{ - lp = in * g + filtBuf; - hp = in - lp; - filtBuf = hp * g * 2.f + filtBuf; -} - -float StereoControlEffect::multimodeCoeff(float freq) -{ - const float g = tan(F_PI * freq / m_sampleRate); - return g / (1.f + g); -} - - - - -extern "C" -{ - -// necessary for getting instance out of shared lib -PLUGIN_EXPORT Plugin * lmms_plugin_main( Model* parent, void* data ) -{ - return new StereoControlEffect( parent, static_cast( data ) ); -} - -} - diff --git a/plugins/StereoControl/OLD_2/StereoControl.h b/plugins/StereoControl/OLD_2/StereoControl.h deleted file mode 100755 index e3f7f15c7d9..00000000000 --- a/plugins/StereoControl/OLD_2/StereoControl.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * StereoControl.h - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - - -#ifndef STEREOCONTROL_H -#define STEREOCONTROL_H - -#include "Effect.h" -#include "StereoControlControls.h" -#include "ValueBuffer.h" - -class StereoControlEffect : public Effect -{ -public: - StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); - virtual ~StereoControlEffect(); - virtual bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ); - - virtual EffectControls* controls() - { - return &m_stereocontrolControls; - } - - -private: - inline sample_t calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b); - inline void multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf); - inline float multimodeCoeff(float freq); - - StereoControlControls m_stereocontrolControls; - - float m_filtX[2][2][2] = {{{0}}};// [filter number][channel][samples back in time] - float m_filtY[2][2][2] = {{{0}}}; - float m_filtA = 0; - float m_filtB = 0; - std::vector m_delayBuf[2]; - int m_delayBufSize = 0; - int m_delayIndex[2] = {0}; - - std::vector m_haasBuf[2]; - int m_haasBufSize = 0; - int m_haasIndex[2] = {0}; - - float m_sampleRate = 0; - - float m_dcInfo[2] = {0}; - - float m_monoBassFilter[2] = {0}; - float m_stereoizerFilter[2][2] = {0}; - - float m_haasSpectralPanFilter[2] = {0}; - - friend class StereoControlControls; - -} ; - -#endif diff --git a/plugins/StereoControl/OLD_2/StereoControlControlDialog.cpp b/plugins/StereoControl/OLD_2/StereoControlControlDialog.cpp deleted file mode 100755 index 84d1b808f02..00000000000 --- a/plugins/StereoControl/OLD_2/StereoControlControlDialog.cpp +++ /dev/null @@ -1,198 +0,0 @@ -/* - * StereoControlControlDialog.cpp - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#include - -#include "StereoControlControlDialog.h" -#include "StereoControlControls.h" -#include "embed.h" -#include "ToolTip.h" -#include "Knob.h" -#include "PixmapButton.h" - - - -StereoControlControlDialog::StereoControlControlDialog( StereoControlControls* controls ) : - EffectControlDialog( controls ) -{ - setAutoFillBackground( true ); - QPalette pal; - pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); - setPalette( pal ); - setFixedSize( 350, 255 ); - - Knob * volumeKnob = new Knob( knobBright_26, this); - volumeKnob -> move( 40, 40 ); - volumeKnob -> setVolumeKnob( true ); - volumeKnob->setModel( &controls->m_volumeModel ); - volumeKnob->setLabel( tr( "VOL" ) ); - volumeKnob->setHintText( tr( "Volume:" ) , "%" ); - - Knob * stereoizerKnob = new Knob( knobBright_26, this); - stereoizerKnob -> move( 169, 19 ); - stereoizerKnob->setModel( &controls->m_stereoizerModel ); - stereoizerKnob->setHintText( tr( "Stereoize:" ) , "%" ); - - Knob * widthKnob = new Knob( knobBright_26, this); - widthKnob -> move( 169, 68 ); - widthKnob->setModel( &controls->m_widthModel ); - widthKnob->setHintText( tr( "Width:" ) , "%" ); - - Knob * monoBassFreqKnob = new Knob( knobBright_26, this); - monoBassFreqKnob -> move( 278, 33 ); - monoBassFreqKnob->setModel( &controls->m_monoBassFreqModel ); - monoBassFreqKnob->setHintText( tr( "Mono Bass Frequency:" ) , " Hz" ); - - Knob * stereoizerLPKnob = new Knob( knobBright_26, this); - stereoizerLPKnob -> move( 206, 31 ); - stereoizerLPKnob->setModel( &controls->m_stereoizerLPModel ); - stereoizerLPKnob->setHintText( tr( "Stereoizer Lowpass:" ) , " Hz" ); - - Knob * stereoizerHPKnob = new Knob( knobBright_26, this); - stereoizerHPKnob -> move( 140, 31 ); - stereoizerHPKnob->setModel( &controls->m_stereoizerHPModel ); - stereoizerHPKnob->setHintText( tr( "Stereoizer Highpass:" ) , " Hz" ); - - Knob * panSpectralKnob = new Knob( knobBright_26, this); - panSpectralKnob -> move( 200, 250 ); - panSpectralKnob->setModel( &controls->m_panSpectralModel ); - panSpectralKnob->setLabel( tr( "Spectral" ) ); - panSpectralKnob->setHintText( tr( "Spectral Panning:" ) , "%" ); - - Knob * panWidthKnob = new Knob( knobBright_26, this); - panWidthKnob -> move( 200, 150 ); - panWidthKnob->setModel( &controls->m_panWidthModel ); - panWidthKnob->setLabel( tr( "Pan Width" ) ); - panWidthKnob->setHintText( tr( "Pan Width:" ) , "%" ); - - Knob * panKnob = new Knob( knobBright_26, this); - panKnob -> move( 200, 200 ); - panKnob->setModel( &controls->m_panModel ); - panKnob->setLabel( tr( "PAN" ) ); - panKnob->setHintText( tr( "Pan:" ) , "%" ); - - PixmapButton * gainButton = new PixmapButton(this, tr("Gain Panning")); - gainButton->move(123, 135); - gainButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("basic_sel")); - gainButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("basic_unsel")); - ToolTip::add(gainButton, tr("Change gain of each channel")); - - PixmapButton * stereoButton = new PixmapButton(this, tr("Stereo Panning")); - stereoButton->move(198, 135); - stereoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("stereo_sel")); - stereoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("stereo_unsel")); - ToolTip::add(stereoButton, tr("Pan one channel into the other")); - - PixmapButton * haasButton = new PixmapButton(this, tr("Haas Panning")); - haasButton->move(273, 135); - haasButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("binaural_sel")); - haasButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("binaural_unsel")); - ToolTip::add(haasButton, tr("Stereo panning with single-channel fractional delay")); - - automatableButtonGroup * panModeGroup = new automatableButtonGroup(this); - panModeGroup->addButton(gainButton); - panModeGroup->addButton(stereoButton); - panModeGroup->addButton(haasButton); - panModeGroup->setModel(&controls->m_panModeModel); - - PixmapButton * monoButton = new PixmapButton(this, tr("Mono")); - monoButton->move(263, 87); - monoButton->setModel(&controls->m_monoModel); - monoButton->setCheckable(true); - monoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mono_sel")); - monoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mono_unsel")); - ToolTip::add(monoButton, tr("Converts input to mono")); - - PixmapButton * dcButton = new PixmapButton(this, tr("DC Offset Removal")); - dcButton->move(59, 168); - dcButton->setModel(&controls->m_dcModel); - dcButton->setCheckable(true); - dcButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dc_sel")); - dcButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dc_unsel")); - ToolTip::add(dcButton, tr("Removes DC offset from the signal")); - - PixmapButton * muteButton = new PixmapButton(this, tr("Mute")); - muteButton->move(16, 212); - muteButton->setModel(&controls->m_muteModel); - muteButton->setCheckable(true); - muteButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mute_sel")); - muteButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mute_unsel")); - ToolTip::add(muteButton, tr("Mute audio")); - - PixmapButton * monoBassButton = new PixmapButton(this, tr("Mono Bass")); - monoBassButton->move(278, 3); - monoBassButton->setModel(&controls->m_monoBassModel); - monoBassButton->setCheckable(true); - monoBassButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("monoBass_sel")); - monoBassButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("monoBass_unsel")); - ToolTip::add(monoBassButton, tr("Mono Bass")); - - PixmapButton * auditionButton = new PixmapButton(this, tr("Bass Mono Audition")); - auditionButton->move(325, 27); - auditionButton->setModel(&controls->m_auditionModel); - auditionButton->setCheckable(true); - auditionButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("audition_sel")); - auditionButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("audition_unsel")); - ToolTip::add(auditionButton, tr("Bass Mono Audition")); - - PixmapButton * invertLButton = new PixmapButton(this, tr("Invert Left Channel")); - invertLButton->move(30, 79); - invertLButton->setModel(&controls->m_invertLModel); - invertLButton->setCheckable(true); - invertLButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_sel")); - invertLButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_unsel")); - ToolTip::add(invertLButton, tr("Invert Left Channel")); - - PixmapButton * invertRButton = new PixmapButton(this, tr("Invert Right Channel")); - invertRButton->move(60, 79); - invertRButton->setModel(&controls->m_invertRModel); - invertRButton->setCheckable(true); - invertRButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_sel")); - invertRButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_unsel")); - ToolTip::add(invertRButton, tr("Invert Right Channel")); - - PixmapButton * soloStereoButton = new PixmapButton(this, tr("Use both channels")); - soloStereoButton->move(200, 200); - soloStereoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloStereo_sel")); - soloStereoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloStereo_unsel")); - ToolTip::add(soloStereoButton, tr("Use both channels")); - - PixmapButton * soloLButton = new PixmapButton(this, tr("Solo left channel")); - soloLButton->move(200, 217); - soloLButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloL_sel")); - soloLButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloL_unsel")); - ToolTip::add(soloLButton, tr("Solo left channel")); - - PixmapButton * soloRButton = new PixmapButton(this, tr("Solo right channel")); - soloRButton->move(200, 234); - soloRButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("soloR_sel")); - soloRButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("soloR_unsel")); - ToolTip::add(soloRButton, tr("Solo right channel")); - - automatableButtonGroup * soloChannelGroup = new automatableButtonGroup(this); - soloChannelGroup->addButton(soloStereoButton); - soloChannelGroup->addButton(soloLButton); - soloChannelGroup->addButton(soloRButton); - soloChannelGroup->setModel(&controls->m_soloChannelModel); -} diff --git a/plugins/StereoControl/OLD_2/StereoControlControlDialog.h b/plugins/StereoControl/OLD_2/StereoControlControlDialog.h deleted file mode 100755 index 5b7681a7ef3..00000000000 --- a/plugins/StereoControl/OLD_2/StereoControlControlDialog.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * StereoControlControlDialog.h - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#ifndef STEREOCONTROL_CONTROL_DIALOG_H -#define STEREOCONTROL_CONTROL_DIALOG_H - -#include "EffectControlDialog.h" - - -class StereoControlControls; - - -class StereoControlControlDialog : public EffectControlDialog -{ - Q_OBJECT -public: - StereoControlControlDialog( StereoControlControls* controls ); - virtual ~StereoControlControlDialog() - { - } - -} ; - -#endif diff --git a/plugins/StereoControl/OLD_2/StereoControlControls.cpp b/plugins/StereoControl/OLD_2/StereoControlControls.cpp deleted file mode 100755 index 90608e38df9..00000000000 --- a/plugins/StereoControl/OLD_2/StereoControlControls.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* - * StereoControlControls.cpp - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - - -#include - -#include "StereoControlControls.h" -#include "StereoControl.h" -#include "Engine.h" -#include "Song.h" - - -StereoControlControls::StereoControlControls( StereoControlEffect* effect ) : - EffectControls( effect ), - m_effect( effect ), - m_volumeModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Volume" ) ), - m_stereoizerModel( 0.0f, 0.0f, 200.0f, 0.01f, this, tr( "Stereoize" ) ), - m_widthModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Width" ) ), - m_panModel( 0.0f, -100.0f, 100.0f, 0.01f, this, tr( "Pan" ) ), - m_monoBassFreqModel( 120.0f, 0.0f, 500.0f, 0.01f, this, tr( "Mono Bass Frequency" ) ), - m_stereoizerLPModel( 20000.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Lowpass" ) ), - m_stereoizerHPModel( 0.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Highpass" ) ), - m_panSpectralModel( 0.0f, 0.0f, 100.0f, 0.01f, this, tr( "Spectral Panning" ) ), - m_panWidthModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Pan Width" ) ), - m_panModeModel(0, 0, 2, this, tr("Panning Mode")), - m_soloChannelModel(0, 0, 2, this, tr("Solo Channel")), - m_monoModel(false, this, tr("Mono")), - m_dcModel(false, this, tr("DC Offset Removal")), - m_muteModel(false, this, tr("Mute")), - m_monoBassModel(false, this, tr("Mono Bass")), - m_auditionModel(false, this, tr("Mono Bass Audition")), - m_invertLModel(false, this, tr("Invert Left Channel")), - m_invertRModel(false, this, tr("Invert Right Channel")) -{ -} - - -void StereoControlControls::saveSettings( QDomDocument& doc, QDomElement& _this ) -{ - m_volumeModel.saveSettings( doc, _this, "volume" ); - m_stereoizerModel.saveSettings( doc, _this, "stereoizer" ); - m_widthModel.saveSettings( doc, _this, "width" ); - m_panModel.saveSettings( doc, _this, "pan" ); - m_panModeModel.saveSettings( doc, _this, "panMode" ); - m_monoModel.saveSettings( doc, _this, "mono" ); - m_dcModel.saveSettings( doc, _this, "dc" ); - m_muteModel.saveSettings( doc, _this, "mute" ); - m_monoBassModel.saveSettings( doc, _this, "monoBass" ); - m_auditionModel.saveSettings( doc, _this, "audition" ); - m_invertLModel.saveSettings( doc, _this, "invertL" ); - m_invertRModel.saveSettings( doc, _this, "invertR" ); - m_soloChannelModel.saveSettings( doc, _this, "soloChannel" ); - m_monoBassFreqModel.saveSettings( doc, _this, "monoBassFreq" ); - m_stereoizerLPModel.saveSettings( doc, _this, "stereoizerLP" ); - m_stereoizerHPModel.saveSettings( doc, _this, "stereoizerHP" ); - m_panSpectralModel.saveSettings( doc, _this, "panSpectral" ); - m_panWidthModel.saveSettings( doc, _this, "panWidth" ); -} - - - -void StereoControlControls::loadSettings( const QDomElement& _this ) -{ - m_volumeModel.loadSettings( _this, "volume" ); - m_stereoizerModel.loadSettings( _this, "stereoizer" ); - m_widthModel.loadSettings( _this, "width" ); - m_panModel.loadSettings( _this, "pan" ); - m_panModeModel.loadSettings( _this, "panMode" ); - m_monoModel.loadSettings( _this, "mono" ); - m_dcModel.loadSettings( _this, "dc" ); - m_muteModel.loadSettings( _this, "mute" ); - m_monoBassModel.loadSettings( _this, "monoBass" ); - m_auditionModel.loadSettings( _this, "audition" ); - m_invertLModel.loadSettings( _this, "invertL" ); - m_invertRModel.loadSettings( _this, "invertR" ); - m_soloChannelModel.loadSettings( _this, "soloChannel" ); - m_monoBassFreqModel.loadSettings( _this, "monoBassFreq" ); - m_stereoizerLPModel.loadSettings( _this, "stereoizerLP" ); - m_stereoizerHPModel.loadSettings( _this, "stereoizerHP" ); - m_panSpectralModel.loadSettings( _this, "panSpectral" ); - m_panWidthModel.loadSettings( _this, "panWidth" ); -} - - diff --git a/plugins/StereoControl/OLD_2/StereoControlControls.h b/plugins/StereoControl/OLD_2/StereoControlControls.h deleted file mode 100755 index eed9ed0f582..00000000000 --- a/plugins/StereoControl/OLD_2/StereoControlControls.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * StereoControlControls.h - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#ifndef STEREOCONTROL_CONTROLS_H -#define STEREOCONTROL_CONTROLS_H - -#include "EffectControls.h" -#include "StereoControlControlDialog.h" - - -class StereoControlEffect; - - -class StereoControlControls : public EffectControls -{ - Q_OBJECT -public: - StereoControlControls( StereoControlEffect* effect ); - virtual ~StereoControlControls() - { - } - - virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent ); - virtual void loadSettings( const QDomElement & _this ); - inline virtual QString nodeName() const - { - return "StereoControlControls"; - } - - virtual int controlCount() - { - return 4; - } - - virtual EffectControlDialog* createView() - { - return new StereoControlControlDialog( this ); - } - -private: - StereoControlEffect* m_effect; - - FloatModel m_volumeModel; - FloatModel m_stereoizerModel; - FloatModel m_widthModel; - FloatModel m_panModel; - FloatModel m_monoBassFreqModel; - FloatModel m_stereoizerLPModel; - FloatModel m_stereoizerHPModel; - FloatModel m_panSpectralModel; - FloatModel m_panWidthModel; - - IntModel m_panModeModel; - IntModel m_soloChannelModel; - - BoolModel m_monoModel; - BoolModel m_dcModel; - BoolModel m_muteModel; - BoolModel m_monoBassModel; - BoolModel m_auditionModel; - BoolModel m_invertLModel; - BoolModel m_invertRModel; - - friend class StereoControlControlDialog; - friend class StereoControlEffect; - -} ; - -#endif diff --git a/plugins/StereoControl/OLD_2/artwork.png b/plugins/StereoControl/OLD_2/artwork.png deleted file mode 100755 index 959473547d859caf0e901afbbfb03885d5587cb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62279 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%0DU!0#c~+lY-~KamaXgF~ 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 b`3U|7XjvY-)hiui00000NkvXXu0mjfeU>-d diff --git a/plugins/StereoControl/OLD_2/basic_sel.png b/plugins/StereoControl/OLD_2/basic_sel.png deleted file mode 100755 index 9fa15efcfbba1359194d328e3609cc4166398a35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 993 zcmV<710MW|P)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirufA7gTIj2dRtWDR(wNcw?or{EatFEJL6RfjXvCdr#FDhPHK{s?b z7zl#GyqVM$$B+s0d*W^;Y=|F7>!?)(zm{dT^CG0PnohHHS-wur$vIv`Qa5$>qA4i( z!wZMQbKV2L_j&%$!z&t_19mbIr)U~f_0Mw13c?{Pc3XQpE>~@p$TgJBrjd)LK`vh) zb$PBzhn8?4Tai2H?K=O&rC8JI2G=vU9gOmKeKC&Cz zu-qzAMn|2#fNS&=Vsfr>u$CSd_;w#h`XGwE(a-#ggBUwPIK$%r==a}7&FNY4Yy7x_ zUPNRb`}UR0KfW37TVJ8P{T+6|Lt!w8c}o-8@JSldI;r7a>en9vAanQuOuq;3=x0cu z$FO<==mTphcCA95j8_s?Xt|8x0WuB#RAfpM%yG>oD3IQM>v)zJu&Kz=_0 zu?!-XL7n*JZ}+qYSCb31;Cu8v#Q1C}}5C z_7K`fGo^Am62@^Pj0!lP=_Rwh6YVNij&L0Fp>FIgE#)%&&vwHr&b-ry{^Ta)-_jU& z-Gr3NQ@`fG!u+!DPO|-LaXh^NebZ{R6K9YnV$kYA@3|5Ar{rJGSR9*19qK0a!T|19 zCy^#*ur{=!KN!L}_9ODkUsnW{0Bqk%|B`N+oPKIybTBQH^GVzXPmvw&Mfo9)y6eM* z;Oku^KN+U(wJ*_o+cDaFSS}|bXP{2aQS9~{N*@Q{D*9`swA zu{>HS{@ev>_KzVd)D0^F>wi9!Rwwwy&skMg)y!IQSdGmAs+WI@yZrkd9~^tS8uBnW P00000NkvXXu0mjf-%8TE diff --git a/plugins/StereoControl/OLD_2/basic_unsel.png b/plugins/StereoControl/OLD_2/basic_unsel.png deleted file mode 100755 index 18084a7d2e4ae6aa6b57a8e4088c7a288c0e53bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1026 zcmV+d1pWJoP)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirupD!#(zkq{tlz z3kyRI;Pd$;HSU7X=OYvVL6Fp#1)ay zI}N)SwpiF+*ATp}Y*hiPRu-XDD)ISzjC(v7&UJ$T8>_1T_|5C3yt0Of@cYW zjfRI~qH(y~#66~_TEBs>PMzjV=QpULmE^9-CT__R8uxsH*Xw0{N7`#9UvCw>`a=v#N+Xhm6^fKo4-=BW_{4*)t9Qs&VHVCt4qktOvhm8 zW?;~WO7$SADap88Ki!sD=fAy3S*ew}9ouO?dYr*4Mv`<|3i9*l@BfZd9i5`QjtmeI zpG=?ApdBaMgQJ7r@5kYA(suX=l@)8TT5asze=z9#!2J7ZYd*-a<0r{TPeZMKgz)fi zrl+T|+3f5;@F~w`Wm2RZ)>iRQw34l_Zzf(7M^sc4)3000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirut03RPBaHofB3WGUv*4`o#~**aTg%D^*eS zi;Pu-v{KP2_+g655LSg1(XJB}E!%Kvb*0j+Db|*{B~6>R=Jg&wq)ih|Vv^~%JaFOO zbDrmapYwlS&fy5XqRM0>=o3U7`D~uG7a5%{H)D+5cB!)lmXN8dh zqN*y1L>yf_UMazUlU0rsq^z(}q$s6Q-X@d2=S<^VPQU!(tc0s!ryX1skJn8)X--uWQ_^42;$L;J9|4!}Yz z{cq1?7q)%JS$O;5ln#im(WvvOJNtB=G^6FULKSy};I%Hd8&iUorZ@_$F48zTOtvb?SiaINeV^L{i%hmaYu%fy`YU_L)X_+T5B zZ$DX!m4xI|EeK7bJ9Yu1qk-kS)}hKZdr3w@WaZTgMuVC7fmSq=if-g$LCj41a@%xS zWoSJ#$hA$cW83jArt>rSU)cV)RmrSxQ~x(a9F1rXHf8BVwr{{VHVa79kA5V6{WWO! z-w0a1k`a*5Qc30N!1Mjn1oqxRUGFgBCvRcQoc@)zZiRAKUa=PwOBmi7CGddbpT1NI5Bm7jz~(R^E$-oKT_(gcBBC20;zy?4I*a! zEFFD>#O9mOAG-h)!2II(Tygw=cf+i>wAhF~dk=~yn6njU@@DM)ituMoB2_&Sh`rK= z&L5$EWB=ND=I}PcJ8r`mN@AG2OsIPsmgH$jXoP$2!!YfIOTjd*ID46zmxow-Z5QIz zFvOGjF}Z54$~$NI`Z}NwL_$NI@lkVRm_+v$mJZ&Vn*X(vddC}U?nwz315};*jlgba zDg)YX!8Gd5Y9Q*-GiZBSNItQNs>8#CUTSCYoxMmQFid-?I&vzz;Yf+@q?=m%2>$2W z(JzDwVrKfjD)n81=uS))wQgavH&jlg#cXO<=20XSu1YAw3JE1N_zGLail|)v6@U5n Y7xoVMDp#6Gs{jB107*qoM6N<$g7jPWdH?_b diff --git a/plugins/StereoControl/OLD_2/binaural_unsel.png b/plugins/StereoControl/OLD_2/binaural_unsel.png deleted file mode 100755 index ba00d93977708c6e2acc0377a059f0c4dbf4e957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1071 zcmV+~1kn45P)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru?gWOr`@(22xBm7Hpla#Y!W~7HjX_1N5#pwx#WJzvd)8 z=X~e8-}%nDr?*!DIDkdO5e^RE14Z8YP2#-y^W$-ZfoF1(!R!4KN&y8<*F-##Fi1>H z1X!5h^?KuJ%mRN#N<=Z9MubQZfoMvvsS~TkgwI-G^{?b$wV3$qQ@zxtPF{%BVq)&x=VaIJGk39ixHjxVZ>%*d1@+))GyAo&$tV6ZGUIu@n&{bX)$$wOOa+9 z>vA(^(F_P=lbyw?jI^MfH7~E`^5q|S@Zc}X zOG|=s0`&s>|NiG+%zc-bnwlatb!k}5aJrGsTPc@`44-`bk@Vf^bfKIxCy1SCjNf%I zG(3!UPZjkIjWWCC#aj^sfh$-0Nl#zF+T83Q(S-Il@A)Klyjg}yrQ+us1G8un)L&F* zRxA-W>YFJpub^h%L56SN=3w0cLT)YKtMeDg$Vg}1+H4tTLLCO`t#8Kvq^JSFZL0gw(t>G$QjJ3zWqAdp*j-MXJVkx|hwS%w@Oqzy)C}n_ny_L?x#7rR0DL|l_wM~kOPhhp9p%*M-kmsJiz9UQ8w<`y?UJB~v2?ziH002ovPDHLkV1i$A{WJgo diff --git a/plugins/StereoControl/OLD_2/dc_sel.png b/plugins/StereoControl/OLD_2/dc_sel.png deleted file mode 100755 index f385966298b8867b2e9aaf9d7096d9741d51955b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmV-e0;m0nP)nfZQa-kbLr#?m>d zYPtj>F;&xLDxH%;)pR*NF@b6BAqrHhKlxlNqBR2_uhwAu$G1p?bzLV2d=voR_lXK^ zEe!xEi5eQev)&Drk2eV8I)oC{YhbLG8F}~~W#vn2!M+%^yJxA+j1!I;C~h6YE@Ljf zMHITHPiYOk9wJz`UXVJoMDorG!f&#*a2|O&14!IQ7pNc0kX(F&HT#(4LLPynIi2ar zsSO;Pl8aihF_&$^msjxSW{4+O@s4M)=9Uq!HvmxA*D#-~^`%qVDeh)F@z~{yt$w9( za4*4h7Omn!exoNxCr<4TbwBJ{)7~vQ%nb--fE54bYn(VhtoR-EgF|4AB2Q)it$*!= zdJx^5N%PVq)u$J!9~#5BUqC#wF+MqL&(9KEJ4$#sL2z{n_xWY~>nD413P4(^{ar({ zW#4R-lawf)Ps}be^57lHt5WMwlL>0K&rv^;CQQT;p5H3DdwE2`>0F|lPJiM5fy$=S mZXiSITtmLSQ$Xti5B3IO-kEnK|NLu=~+wz=ID3I%dG zjj_jJ(%J82c^&JH%WYub#t_|S&T{+CU5q~l{lTm3RhmEut_S;2TACRheMrx_UPkUc zKp;?Cnk_jiIySMmw9I%c&Uh@&t(ya!KGnsm*Kbf&g1~&Nv3+Ysy56G$fQ*kf&|f`jkJhB2UkI>q+PbO zWt*TVZPBI&?jl+VMuC{4m70wXiu3l)y*}mnKJQYVdmZIjrn}cs$BfFo?@c8zhn|EJyx0tn2_y(@3Wc zQ~<+pD8 zk9T98uUy-k?KOmg0U~d1Z1HVgt+h4(^=pkVyTg?A4B@{xfbYRO6vJfkQ9II7xh{?E zQp@a9SL!JoogsPDkJS0Hp34ViYToYhj~E5d$M9Z%iF;y!MAx~TO%tc9C>$I`pIySZ zd1g-~>B>h7lT9)7k!j+s$MHz!JF?XV0rPeviY2H|zv8Z|AklOfO|tvWOAoVO`I};_ zR%m6Dl>%uC5R$FOaF5Oag7$0#qp}#Qtvb7Jn`?2g&EK`>ien{%atD znlRAELil=KqkQ}gKvCa&V)rhw^rRC}6!fVuMGrrK2&v{;Jf9{v6;R8btqKUYS~MP*PlDEXp%%}APwg(OCn55k}VgI;0}gZ_YE5T%+Xq(x9z zX;9EY8blkcp{zxLwQw;;PC5oPqRzrn8^splIQO)uxuZEw&f?DMelEYoIp_X<_nhx} z-Xj5bfTKVX8sYE&&m=%DDB34&Oi0iq3B&Bn4355Dp#vlti64_wnkr$4jg1A6VgP(T zpQgxv2xz1OKnP8dH4+0LRJ1PZ6YMrC&%2(|(f*ibb0c}V*$6! z+sVn?uB3~0=V7;5xqZvLBKDrbd{yhe)D*!GLOlbn-?+({x{KUxxsPwrM}z4K#;hH| zT7>X{V7lzUeui8w(o$1N(r;PyJ=HB5BP_tQcb0eW`!F?G7#$tsM9nd!ER@gEw9$}5 zPtO}BCcaaBxN1f0=#Q|dNEXcdJUB>VV&W?DEcdCdEJK!MUcc?-)4%|`@^^-ft#(^t zqN3M7d4bs^%OYgCBuU7AKL{u;-iymM3<6%*U!m9Q$unlJuC>Z-(f#?Ry1S(K`vfo; zvKbp2XWHvUmSxh@l5q}w0U$kP8vv8jKM@ErGct&ai{oW?hvHvRevpsOp^&lFMyK?W z%52)O9-|?P%JM^`Bqw8PXkuYu5x0AU^L1xwd-w>yU*^KOTE@pcOip>JJypZp+%JwC zKdHp2uRBd?Y01hN8BM{|?xDs86G8~)=jZw6c4M|QGyHV~fR+cXT)tF~#e5Zz@OV7j zYi&ayC@d_%(cizUe%4MKRaF&~mz5~7mvYT);X|K8wYErr$jU9yPNZvK*y#xDk{S`6 p^fe+~!?b_Nh}JOe0x^OM#NU1}H*fC~v_1d;002ovPDHLkV1gs&SQY>P diff --git a/plugins/StereoControl/OLD_2/invertL_sel.png b/plugins/StereoControl/OLD_2/invertL_sel.png deleted file mode 100755 index d1bb52006613ccc53e13e30a0250367f63d978a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7X~gM>e|$kW9!#NzbYDUMu+3`AVwZ?m}E z>6o^waADku$sBuU+;bCHxFcj0hnCi|Uw1XMJftt#oOo7mbjC-aWb!^2FYX5=N=sG! zehImFoldY=ax>@Qp`SHLQ&U$|C+>*Jm+6yMS6plAn#jS}W4PnfzSRr@3-uILee<3R zzk3{*`dHq5ishuPztffFSFGwfvdO7CBf>R!o>rCX>h;bH9_sJ@#=aBR>~H%wbL(Zv zhb2FaZ$Euqq!?ZH^OvmeADjK`vh{r*zHYQ-e5X@V5}TC+^eqE}r>mdKI;Vst0PiVu AxBvhE diff --git a/plugins/StereoControl/OLD_2/invertL_unsel.png b/plugins/StereoControl/OLD_2/invertL_unsel.png deleted file mode 100755 index 57494efb9e331c59d4378fa62f48c889ff317516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7X~gMh~tsw9Xl&H3twD_w#aO;60hNl3b~UO^%KXdcwZA;f>#spGkWhJSQ=fBsZ*D^}%;ZOku#s@oRen7E!a8Ho t^8c|X1UT8MzG)nYX1<_nw{_PS=4igOL-|YPd4b+w@O1TaS?83{1OU5NZyo>u diff --git a/plugins/StereoControl/OLD_2/invertR_sel.png b/plugins/StereoControl/OLD_2/invertR_sel.png deleted file mode 100755 index b5b8a88b6e5b8892e7765514b88aba95a3a1aad8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmV;i0Z#sjP)TlfjmXrrVS z1;I)zBwG51C?qi#v*)cv41#7kxZJ?^<=R~ zDwQS*TCFCJ)hgo4S9t9X^~Q4~At@!kudo1=Qba|sR{)?jgF^7LwZEv{ZV)6T1RA^f zN&4)Lq3w!M$m*7U4+73s8F#)!_UMB8$_&Bsgpq57dVcF5O4rzpHo>$TGMZsU8qoP+ z)cPzzQesu^ja>2D(#Oo7}-B3aZ?M~QU9?S-7Mp*9br*d~F(o?&o%kFP b*T?n^x<0ABv#T$H00000NkvXXu0mjfyy~^p diff --git a/plugins/StereoControl/OLD_2/invertR_unsel.png b/plugins/StereoControl/OLD_2/invertR_unsel.png deleted file mode 100755 index 2a4454574daefd52b6367343e228371be6eaeac8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmV;o0Z9IdP)~d z5&Y=8T&8%PFR4JZMu?Bkk}o4o(*QaYfNHghUpZ@40BoC9rP4^OS*N)}bX})bv#C@p zF7lV`WDlf9%3nv#1+1)XkRG2RcXZ6q-~c_{hLly1oT;PAkKp9&9LutZ#X6;IJtO29 zh1=UO$5QCJ&Q;+?%Bo&ION$Et2qD7WEc)VQ)zLm`B#lSD% z0Wg;#IH?7|3b0p&fj_`2;A{cm@zx+(Ge?s$@EN$6LtMjg>;+(boCbaXw;ja=b6mQ?gRp67Yf18(18niCN0v&eY^{Cr&#;#IcF{ks?!* z&o!_q>9xbSw`QytRI!M?zP_o#K-8ExJaV?vi znPt?~0KhTu23U+Gy8^Tw;^SzWSet9n zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3*-l4Ge6hyUjkJ_3-Cz;Q^H2;acR_m@vnb#+gB z+>UV7w4O?OV#(#Vpb6(+|GeQJ{1mM@l-jxu)yPj7W#q||9$!E6c}%f9kIzrt@AuNr zuZNW1Z)9E)uJZb`>-+V?>)ey-`}Or6XYzXeHqd+zl=6sLe-xIuF|4bz5H9>r@ zFxYz_$?uuV>+ko(QAcmzx3J5%mBx1%_!s=4M!l_RZCR_995uI*V`=5onr~Ue@HAri zOxT`vd`ksR ziQD|FDF6J%T)zaO|M++B?)RS8?q*R^q_3@|uMj@ZxY5X=JRehj8~-ZL+w(j4?X=D! z+nZuDepebP2l9MVNjuGS(|N8dEtXjF$&G8yE6ej*mzGCf;)yT*n{IA0WJ{MEWKl1| z%lT_9>6v#t^R3jGc_(hoiNU;fe)}8#(;NTm?=#T7UWF-nFrQ|85}dsxS%zoMAGwQ! zr2CF(eTwGu`=cPgC058_eZt(?;EeVf!fN_aTk_;txUX_8uYpqA?*RxAb5|CVgbYMY zQj@0Ga&9RR$4-JKE6-B0k%2_nZx)$L5TO}z&ptPwY3aE)*Zg`J#C+OPY1U4LCdn$L zQa`P9YG_uerPivUw%Y5cQ$>MZRc-3fJDapZZ)t0-x6x*oUV81?Tkn1JIr0#Yxegs| z^fAJilSwB-Pd+`lV@}H^R;-#@vu?xYqI_0ab?IuWud(LNTQ<0}b+_I32z#D%D5XQ2 z9~%7hGtRu!+Lc>wy@0~)cij1vwRcv3{tdt2%im`$y|b2|O!i)4Ck1 zGbQc2UD1B!%uSS89!UjOMn1PD*4+c-HP*Pc#9EsyD)n>DDrFLJ(tehw=I)-96S z8YLt~9I}jX=rlf{H}6@QSeg2)F%wzb8`Nb6Z}^ee&TJ>?MgwhS*-b~7#K%?#Shro~ z)j}!uqCBiFd(|XkIg&^-c9v>kI+oOGVwQSOaVljXqF4M0*J^fhxsl{iIrHw3l?uxn z&e4*T^&O&2HOfL29ArwRSkhL@lcwE=5o~rPyLGeob&RS$B`$LnA-U}{h+@etGKKA! ziEOWh#E#Tj-D}=(*e+pD?`!qiV}(1DCeyK-mL1KC9vigiLKm^;%e^!Wt#i+;)a(dE zmm9{2drU53>V=UISBHNWwi?vusQj6Vjlp^*fAyuZ7AxIr9nvFV*V+9E*Kw;Qy`Bzb z0R<&wMYK_VCClnsuhiJqG(P^!)K{X2p8^R|Sw$pwn##_;zIu%Y{AJ5>I_*bszVh

b?)h{jS?yVl9Aom_Ev9zL&;5m0C?S`}^$EcD}XVI9kuG6r13{c39a(6Mzv*2eypFmqC-wz-sBuIz~g|wO)x)BwbXK z&e})^={W?bgO}zbgM%oEKBd>VC?gWF&>HFK&Q3y36l+-*lV2X}o10X%%AV~%MP8WKmts_QUEByyZnLoQz0KeRg z-s(dF9gb862T%>j&k_$hrZw>AP`_#F?Vxvc9AYule9uIXUDTUt!mX=tkrakp8jF2V z)P1^Us(g9^Ni^|jARR>1%+qtUo(wg>GMSso>!w4pmeC^n?3x?>CbISiPd--$OR|lo zQ`-PQKGwTl2WN`GvQU&`gHjfhrT|Y^2?O?9x3kq)tbjDkGuHOz1X8E`W)?tlz@^qs z00tdAfsRtT>ZYux`-6yb+U62*h;1o@UHb0!*T z^(}gk2#Hj*3ElJxZV;EL)cA!z$sl+M%G4RYH&kPKR!G&IP0b8yD&~7g*7bCVty42t zTu3-0fPM5oE#M3oh80TY)?vw@O^c8S!dMD@E9@%$5ha|M1p09f3L1PeQ&02iB zU^b*U7t`kc>1aB25}8dk0-RW0wCaF7E{IzlR0urVEvc-5Xh3J-l(E zurBM(gr*1F=~tGAUSELpx}ALx^9`|zuinNH!WYV1^fRD9;k61^Mvx$h2_I$b-A3gz z`8s3JeC@@RW8=RYK>$vSW80Es#P^l{@xz%VP_FQ7s) zB8Rub+ral>JV@!JI%Dv?BX%H=+=?_%E}g|gJq=|~l^Vi^io+~< zc|?b&;y~jtp&D%H^>V`*-=68d*~&ihQf!r^<)cd>?%Esvub{k6qkhvM5AI1=;)z#K z{&!LA)FcGa8{!Te1|W(;-ojMKAM76lS@(EIlLD+o82ny0R=%H}H0&ov>_8w46qi0bhB z@PLJrsT3ONo9w?ijq2%|d^pE8r~p+2mDODZ*;Jp(2X5NR;ZEuV)aFWn1;NR#sGLU6 z0h!*)Ae9};Yg2Qm29^|+a1--YpR57X68uT=#;iocTmfuI5l%CO+#AGFsSQOoAl(** zgA_xNu0zla$wQ5{joX2Zw%CT}$!IvVJ6MqE0!(d0h=YEpCUBh()BD>$*y%WGmsTJJ zz7SFe9&Jhlfy8TLRC8l-6a7Ngh*_eE9U|$_aWZL!oHQXk;B=a?x_X~;bb^hJDcXRP zNMPfIKL>K+97u{ZdguTReAu2?P9nhW7ZlLJ36~42xs_1y1B8YdoRLH=NEP5dmr_K( zS%I^T4wnp49Q=m5YF|iA(2hcB@!{9*g z4xMn_1YDj7WkUdHpw}z6ASzH1*b9)I6uDJ_`~U-gZ^JBdQU6du1FpGxnIJ0(1m*6M zC3Ja473Y|zeNh&-R1g!lx>1rBfT3TyUGNz93Ugry@5;P@>1{^3fa!oFc4l`61FB2~ zA#$qwVAk9}!>u$H4T+A)t{6}+$AKLdKx$l?oWj6{2XGHN2~N9!w2C*t0QStShg-;h zbvv+JOm^!ES$#RM>Tl78#cg(|R3o#Zk`|U~f!csPBGkZ@32nk}sA8Q@GA! zgYorXiqld=^#ky0d^5t!*nr3n^$9dL+!6S*svsT`TP~61-<{|wtPoY66IejXaaK^2 z*l3^^pz<;`4k}(W(fs`Afu}(|Qzz#-8#rb9>+Y!7OXfcpvxNdfIr;;vcAUY0d4xT+ z67Vmc^GV3R-3Yc(2Mv{PO>=xy7V3LN*R|FPJm+Ou`-DRZm4-gT1?JH+*04BNg7+QO zPO)KGs3@u$Hz!6n+*DX6B0qw-8mT) zo#a9+p-v$46p-tbwX$N~7#NaCTIv@!(}?q}$>A&q?}shB$LeAQ%QH;nqM`w0v>en;!EsI;sf0 z0ZPpX{h->I35Db|hyudM5%?4-c~}WD$y=jqDy*m|zC--O6C-Co0AHv2bw3Nm+;C0HXn0j$o(<=hFcB9N$o z@&4kG?zo6AM!)cW^Y;%RNuN;d zv>{Fgx5xMeZ&N+9NE3`OA*h1#kB{P5o9M0x9iuWPVhRv9+7l5AA~AGY8Ej;_pTtsWlP{d{){Pu{~`SD zbwpoR(ASNq8;d)ExC7#XC1v@@i4G#usCATPakru{hM!VZ+P{J8cibSwg}u7kgRv@_ z2j`CwW~+~&Fia8*nKP0S6u@62pw>`u;WU^A;wTCn;Ic(f6L<(2t6`-kw7ixR%ksZ) z;>8c1TK1sR0IZ8}Rs#B>4w&|pC# zo5xcDczjaCf<0;3fn~8N(9ZD^qoQb7V0W7!>BlM)722f~eAk+asYWpC|{Oifk-G>6<=BIPd#gE?MCh!%G z#e!1lG`yeKNd@2hsLHTF>(3X(__Z|+SekkZG9Y3wK_#rb+3lzhzK!*}x02g+i zhk!E0El_}aAuiE2q#Kc`$R7OhP?hfAB+#3Fp0DkvAWUdQp)NiX2pg`_r3Naqp|DnV zKBLn;vddV8pZQY8){y=R2K!giyEg`M2ih zCFBy!>v917K#`&L8bThR-X}~r(@QW)O`W>KG741yHpDhTDKr3d;;vGr;4`TxoC;1J zE7M?8R7>3;S%9Jv63xv$+8)nF=V8Chz(S#Mt{)|mWB=yBFX$TlYDB|^eijk zz)h%~L4?ux{v{_ZhYv)MBgFh1nnz;juHup&SDX|z6%*^8G|Gr>oHiDMD5B-#uNm0~ z1ez2pLYS`60{XG;$Bxsg5nYZ;WY0UEvuF5taX%?Ju^;3rI!OI13rG#R1czEuET++e zNLAbJu_I>4A-ellQK&)*{@n~eLMOK@KXo=$MUQ873 z3B;@&5^gKJahi52)i{ zkh+sVKGCN^rY!bLur2vFbD4Icyy#6@hs<<|i@)4+qGm|Vpm;{C4`nA$?eGJE=6r`B z9R~Q*ulX=DxS##x6U;;AqMt6dFR}#J_ZNo4+ZNybqr&sPenvIacz?(nCRIck`Ka$?%U5=BtgNhz>U|KAIypZoh+p7{Z1GI-!m6rn<>6dwn9(V5mp;2X;)inlax@~4sNimmS5ks#CA%cFy5tf-{%t}%kzT@j20lwZPc$WXU zKSx9@SPTe=#52q=ZQ^y}sZHD9yiXiuWmzRYCytwRLE=ZQD;~dbF1al5%&3{o%n?V4 z#Zm_=9n8w6Mm$LzQ#GCPg`CGK=Pk}!wZ>Za;~#SU61fy|RlvwGj}2&$T|f9A{O;B&PK4lwv+$foQ{L7GCb2)v)sH|2qW zTcCH<>#enq(+40+U8Qe;gF|4nMA>UT@9ydB?cX!4{(b;eD{`B_5&Gu<000JJOGiWi z000000Qp0^e*gdg32;bRa{vGf6951U69E94oEQKA00(qQO+^Rf2MrP}2}d7dtN;K2 z9CSrkbVF}#ZDnqB08nptWpZU?AYyqSM^05QOlfX)ct95{pa1{?pGibPR9M69n88kj zFc5}+3c6XMCzCz!LSB9Uqb3|Mo;0Yt+ZhjpSPF$sDHtM?G$Fe%GyU5Bofg<_bxQzn zes{l{qho8s9I`oi4EePEN#YU_RMH2Z9gevdz&4nxQ$ycLev<;L@^aF@`RsZ> zWY8pe5)+c7D+|hJ#K)2~-?g9Hj!GbIL8_$2%+0>ZBhbeHxRzk(vW_K9r@EN*H8rqH z4m=ywl>|x%9O(c`^|ys>=NIaGEZ@0H-L1Ngu?L!XtqBE&qnpKL^a`p61&PV zH%;Goz8h-%s?1YfV$HrKBqmhb=Sq#af}o2yTGY`;bk9?{=1DG)}#kH(p}(}^H&4?=Jo&;aB;KS6!8AN z%;o%z48R)`JrK*T8daL@Q~{8_%1)-hD*!wJc){;Mb#KeHX8?~smv4c7Aq)5Y00000 LNkvXXu0mjf(VzwV diff --git a/plugins/StereoControl/OLD_2/monoBass_unsel.png b/plugins/StereoControl/OLD_2/monoBass_unsel.png deleted file mode 100755 index b5e6462f66b14761a4f053130f47674d168a4a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5529 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 b$ypme9CKl&Jb1X~00000NkvXXu0mjfZjnjR diff --git a/plugins/StereoControl/OLD_2/mono_sel.png b/plugins/StereoControl/OLD_2/mono_sel.png deleted file mode 100755 index 4996a84eba22eadf6bb3fb1c99339665f6a20752..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783 zcmV+q1MvKbP)Br>Z-Py}W{1O+WxS&M2D6a=l3rgpk$ zQ&dnyMMy5(2+<2QL=5r~sWl3M_-Gn)X6_6#cjmN^8JzMl19NxxgR?o@@4Nhe=iI~p z9;vvbT>SRWkkI3pT3xcD;wdUcQWRBGR8`?{xJ)W*NYg@0`g|z59w!owu^5~+sjMMY zRnhf07Jzu%{2bR)ije|<5GIiZL_=BTVr1zz1eg%{9{|ehLG(>75@&XxHEhHBurIwo^xb7B{xI~-W%%Uo3F5^r zgj-z-8UKa-%M{v`hNWk6@EcK+W%(A*?*I}>>>tKiynY0ADuC2Iy~3KU;QQy8u(f_7 zy0eVriOL-P`LD@hBrgP5+j>aaRqW3PGU|~>X3&eAhje;!AV z53RXAH@^WjSq$cdm<+SArVXimJY!z!_=$CFj^MpU66dN())W%ESx=~O7mkj>%nZPK z_dT%+4+*y|YrhdS8Qh17)w6}bd8wU<_c(uU9V2N|Q34vSmjkFR-T!C&2;zJ@N-%Yx zXYJ3gBtR4umzo`EHofKiOsa7;JN?`mSCdz+zeXmptj{p>0x`D>#J?aIDQn|@yNv(< N002ovPDHLkV1i=@U}69O diff --git a/plugins/StereoControl/OLD_2/mono_unsel.png b/plugins/StereoControl/OLD_2/mono_unsel.png deleted file mode 100755 index 7c854ccd3c61e8138831fde7dbcfe9c2993faa34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 808 zcmV+@1K0eCP)+u)5aMcrEv!4?(TOvo5T6Od%pkq|L-~X z09*hj0iiUzO%I%R0}Roz@fvTn8U_D{*<_-(yLHwB(5&Fb%fDlSV9E1m}Uo=;vwyF%H(a5EoTx;LM`&tgg#ZpjML__m8)ZW{;b>k{w zp`l2Ugvn&0p|OeAmG7(?LI`rTchOJ%0-(J31+Pj<`O@08C119H$(3P}^WcCx|y7wp}ew&=9bSSC7!lw z)YR4y84*rMaDYuEIKr31ll!_QbGdv&V>7-Q4Mz{h5OW}!>bEsk!+V2+Fd9vaj8E9` zdV2ft_4UO|@&sVw=Oq0D17v4rteduQkneg=?lQ)U<>eJRySmA_a+#^=X$FVK*Vf0T zyf!T3hA}0jZwL+!;$T$7<{Gibm%-C&NxJ^A%(}dy3NJ5-y7~_`{Uf8J`1q*V6R_Kc z7abLe!7#_)g$3)_u?amtdV0u6PqW6t5xyLrWX&)H80O5Rq-D|G)oYUho!|S=>2%z? zt>yTUICk#XPF8v<2??k8)YxRBfq<9AW%&E=LZwnU&X>WHhb6=0fUu)25ai`QMw@$$ z+?&^tBnh+m5B2r$DXpm9q%mWdqqVJ_udi2nd7AK@Hc8000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru83PyA(I{9ajmZFP_ zbg6?lLK_z`;-EqYV@sqEtL7R>b4f|=?m4tclXz#^;R=QO!sEE#z4yKMzWlzw zd-tRbo3@C&I*p-MabXRwtPqKIB6(#+bj9NYgB`9aHYk;fWF{w(4ZTWvu0mnlw$ z6h%STt9SsaRo8<5LrotU03lpOmH-*R38~caK4euRy#GNxRvtc1@xWFh*Pi3~Fh%ZJ zFR|UXVWv{=lS^M9+WUyy@L6k1{3x()?|szqK1{#T^ej9whVSZIXT@?xE-?KH#<>LE zd!GS4yXL z0#G@>2mhBWl5VVW8#+|7#`y^YeoZoUur z@U9tpj~P%1Jp9*000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru)5kxFS3))ak4TuOuq*hyywifXw zwwS5~TL`3B(@?=8dJ}rH=PWv0?uroXF&HI>r zGdlnm0R<3NHLNk4JPfi03RX|nwyU! zfVOijEU&DR&1Orml#eTYHhRyjxf{h(W1dTxee;&>E*D1+H_&jv&E$)zk}xa5V2rEx z_AOqACkxfA#I0#Umx&}vXt`W5OM^M~4-64m z_*CuBaO+Dx!ihi-heKvMJX6%3QdKlfV|U%o!kD^UI{-+e*2-+@*%wtTrmrjnq}Dcc zlk?_gmT2@Fmpj@SeKJNar{TTiAr@0eBvoBoMn0;1bP#5-GPEra3_tdB)pvz^19t%l zMNt^>kLr%mYwNqyQ*v~e#y>V;8Y~GA_50k`iSr*?Sz65RhL$Q$@Rt53XIcM-70bH( ctMKyg7a)*9PKs+T^8f$<07*qoM6N<$g0lK7asU7T diff --git a/plugins/StereoControl/OLD_2/soloL_sel.png b/plugins/StereoControl/OLD_2/soloL_sel.png deleted file mode 100755 index 8c48c959b972d9da8ddd8f56337bac1e9f06d44e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3369 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 Hu0mjfa-Pg< diff --git a/plugins/StereoControl/OLD_2/soloR_sel.png b/plugins/StereoControl/OLD_2/soloR_sel.png deleted file mode 100755 index 299078f717b8d81bc0bda96973b5d48da9a158c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4530 zcmV;j5l!xiP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3&sk{mg%g#Ysta|CW6$m4*U*}K6Ue?CM;sY_~2 zzizXsR8>aC!UYbvJ5u5N`~PnE7e7Tx4pp?b(OTrEjyke&(BtRFp1 =kN0)`@NQa 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 Q;{X5v07*qoM6N<$f(eSBzyJUM diff --git a/plugins/StereoControl/OLD_2/soloR_unsel.png b/plugins/StereoControl/OLD_2/soloR_unsel.png deleted file mode 100755 index dd799831a10c49cb2c8335cb838adbfa758c3f90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4154 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 Ef~!8o1ONa4 diff --git a/plugins/StereoControl/OLD_2/soloStereo_sel.png b/plugins/StereoControl/OLD_2/soloStereo_sel.png deleted file mode 100755 index d3974efa02884a4fbbd563188fc20a7694b3c4c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4423 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 N002ovPDHLkV1ga7P-_4H diff --git a/plugins/StereoControl/OLD_2/soloStereo_unsel.png b/plugins/StereoControl/OLD_2/soloStereo_unsel.png deleted file mode 100755 index 23cdd827544b895783274c03333b2340e74551dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4570 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 Ef|!w)qyPW_ diff --git a/plugins/StereoControl/OLD_2/stereo_sel.png b/plugins/StereoControl/OLD_2/stereo_sel.png deleted file mode 100755 index d1292d89bf41385e21265bff027cc243f07f1313..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3811 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 ek}AgW=@{=ct=3f%8vT_30000 - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#include "StereoControl.h" - -#include "embed.h" -#include "plugin_export.h" -#include "lmms_math.h" -#include "interpolation.h" - -extern "C" -{ - -Plugin::Descriptor PLUGIN_EXPORT stereocontrol_plugin_descriptor = -{ - STRINGIFY( PLUGIN_NAME ), - "Stereo Control", - QT_TRANSLATE_NOOP( "pluginBrowser", "A plugin generated by Lost Robot's LMMS Development Package. This is your plugin description. You should change this." ), - "Lost Robot ", - 0x0100, - Plugin::Effect, - new PluginPixmapLoader("logo"), - NULL, - NULL -} ; - -} - - - -StereoControlEffect::StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ) : - Effect( &stereocontrol_plugin_descriptor, parent, key ), - m_stereocontrolControls( this ) -{ - m_sampleRate = Engine::mixer()->processingSampleRate(); - - m_delayBufSize = int(m_sampleRate / 160.f) + 1.f; - m_delayBuf[0].resize(m_delayBufSize); - m_delayBuf[1].resize(m_delayBufSize); - - m_haasBufSize = int(m_sampleRate * 0.002f) + 1.f; - m_haasBuf[0].resize(m_haasBufSize); - m_haasBuf[1].resize(m_haasBufSize); -} - - - - -StereoControlEffect::~StereoControlEffect() -{ -} - - - - -bool StereoControlEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) -{ - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - - double outSum = 0.0; - const float d = dryLevel(); - const float w = wetLevel(); - - const ValueBuffer * volumeBuf = m_stereocontrolControls.m_volumeModel.valueBuffer(); - const ValueBuffer * stereoizerBuf = m_stereocontrolControls.m_stereoizerModel.valueBuffer(); - const ValueBuffer * widthBuf = m_stereocontrolControls.m_widthModel.valueBuffer(); - const ValueBuffer * panModeBuf = m_stereocontrolControls.m_panModeModel.valueBuffer(); - const ValueBuffer * panBuf = m_stereocontrolControls.m_panModel.valueBuffer(); - const ValueBuffer * monoBuf = m_stereocontrolControls.m_monoModel.valueBuffer(); - const ValueBuffer * dcBuf = m_stereocontrolControls.m_dcModel.valueBuffer(); - const ValueBuffer * muteBuf = m_stereocontrolControls.m_muteModel.valueBuffer(); - const ValueBuffer * monoBassBuf = m_stereocontrolControls.m_monoBassModel.valueBuffer(); - const ValueBuffer * auditionBuf = m_stereocontrolControls.m_auditionModel.valueBuffer(); - const ValueBuffer * invertLBuf = m_stereocontrolControls.m_invertLModel.valueBuffer(); - const ValueBuffer * invertRBuf = m_stereocontrolControls.m_invertRModel.valueBuffer(); - const ValueBuffer * soloChannelBuf = m_stereocontrolControls.m_soloChannelModel.valueBuffer(); - const ValueBuffer * monoBassFreqBuf = m_stereocontrolControls.m_monoBassFreqModel.valueBuffer(); - const ValueBuffer * stereoizerLPBuf = m_stereocontrolControls.m_stereoizerLPModel.valueBuffer(); - const ValueBuffer * stereoizerHPBuf = m_stereocontrolControls.m_stereoizerHPModel.valueBuffer(); - const ValueBuffer * panSpectralBuf = m_stereocontrolControls.m_panSpectralModel.valueBuffer(); - const ValueBuffer * panDelayBuf = m_stereocontrolControls.m_panDelayModel.valueBuffer(); - const ValueBuffer * panDualLBuf = m_stereocontrolControls.m_panDualLModel.valueBuffer(); - const ValueBuffer * panDualRBuf = m_stereocontrolControls.m_panDualRModel.valueBuffer(); - - for( fpp_t f = 0; f < frames; ++f ) - { - const float volume = (volumeBuf ? volumeBuf->value( f ) : m_stereocontrolControls.m_volumeModel.value()) * 0.01f; - const float stereoizer = (stereoizerBuf ? stereoizerBuf->value( f ) : m_stereocontrolControls.m_stereoizerModel.value()) * 0.01f; - const float width = (widthBuf ? widthBuf->value( f ) : m_stereocontrolControls.m_widthModel.value()) * 0.01f; - const int panMode = panModeBuf ? panModeBuf->value( f ) : m_stereocontrolControls.m_panModeModel.value(); - const float pan = (panBuf ? panBuf->value( f ) : m_stereocontrolControls.m_panModel.value()) * 0.01f; - const bool mono = monoBuf ? monoBuf->value( f ) : m_stereocontrolControls.m_monoModel.value(); - const bool dc = dcBuf ? dcBuf->value( f ) : m_stereocontrolControls.m_dcModel.value(); - const bool mute = muteBuf ? muteBuf->value( f ) : m_stereocontrolControls.m_muteModel.value(); - const bool monoBass = monoBassBuf ? monoBassBuf->value( f ) : m_stereocontrolControls.m_monoBassModel.value(); - const bool audition = auditionBuf ? auditionBuf->value( f ) : m_stereocontrolControls.m_auditionModel.value(); - const bool invertL = invertLBuf ? invertLBuf->value( f ) : m_stereocontrolControls.m_invertLModel.value(); - const bool invertR = invertRBuf ? invertRBuf->value( f ) : m_stereocontrolControls.m_invertRModel.value(); - const int soloChannel = soloChannelBuf ? soloChannelBuf->value( f ) : m_stereocontrolControls.m_soloChannelModel.value(); - const float monoBassFreq = monoBassFreqBuf ? monoBassFreqBuf->value( f ) : m_stereocontrolControls.m_monoBassFreqModel.value(); - const float stereoizerLP = stereoizerLPBuf ? stereoizerLPBuf->value( f ) : m_stereocontrolControls.m_stereoizerLPModel.value(); - const float stereoizerHP = stereoizerHPBuf ? stereoizerHPBuf->value( f ) : m_stereocontrolControls.m_stereoizerHPModel.value(); - const float panSpectral = (panSpectralBuf ? panSpectralBuf->value( f ) : m_stereocontrolControls.m_panSpectralModel.value()) * 0.01f; - const float panDelay = (panDelayBuf ? panDelayBuf->value( f ) : m_stereocontrolControls.m_panDelayModel.value()) * 0.01f; - const float panDualL = (panDualLBuf ? panDualLBuf->value( f ) : m_stereocontrolControls.m_panDualLModel.value()) * 0.01f; - const float panDualR = (panDualRBuf ? panDualRBuf->value( f ) : m_stereocontrolControls.m_panDualRModel.value()) * 0.01f; - - sample_t s[2] = { buf[f][0], buf[f][1] }; - - switch (soloChannel) - { - case 0: - { - break; - } - case 1: - { - s[1] = s[0]; - break; - } - case 2: - { - s[0] = s[1]; - break; - } - } - - if (invertL) - { - s[0] *= -1.f; - } - - if (invertR) - { - s[1] *= -1.f; - } - - float allpassFreq = 0; - float delayLength = 0; - allpassFreq = linearInterpolate(370.f, 170.f, stereoizer * 0.5f); - delayLength = allpassFreq; - - delayLength = m_sampleRate / delayLength; - - const float w0 = (F_2PI / m_sampleRate) * allpassFreq; - const float a0 = 1 + (sin(w0) / (0.707f * 2.f)); - m_filtA = (1 - (a0 - 1)) / a0; - m_filtB = (-2*cos(w0)) / a0; - - float delayResult[2] = {0}; - for (int i = 0; i < 2; ++i) - { - // Read next value from delay buffer - float readLoc = m_delayIndex[i] - delayLength; - if (readLoc < 0) {readLoc += m_delayBufSize;} - float readLocFrac = fraction(readLoc); - if (readLoc < m_delayBufSize - 1) - { - delayResult[i] = linearInterpolate(m_delayBuf[i][floor(readLoc)], m_delayBuf[i][ceil(readLoc)], readLocFrac); - } - else// For when the interpolation wraps around to the beginning of the buffer - { - delayResult[i] = linearInterpolate(m_delayBuf[i][m_delayBufSize - 1], m_delayBuf[i][0], readLocFrac); - } - - // Increment delay ring buffer index - ++m_delayIndex[i]; - if (m_delayIndex[i] >= m_delayBufSize) - { - m_delayIndex[i] -= m_delayBufSize; - } - // Send new value to delay line - m_delayBuf[i][m_delayIndex[i]] = s[i]; - } - - for (int i = 0; i < 2; ++i) - { - float allpassValue = (delayResult[0] + delayResult[1]) * 0.5f; - - for (int j = 0; j < 2; ++j) - { - allpassValue = calcAllpassFilter(allpassValue, m_sampleRate, j, i, m_filtA, m_filtB); - } - - allpassValue *= i ? -1.f : 1.f; - - float lp; - float hp; - float hp2; - multimodeFilter(allpassValue, multimodeCoeff(stereoizerHP), lp, hp, m_stereoizerFilter[0][i]); - multimodeFilter(hp, multimodeCoeff(stereoizerLP), lp, hp2, m_stereoizerFilter[1][i]); - - s[i] += lp * qMin(stereoizer, 1.f); - } - - const float sMid = (s[0] + s[1]) * 0.5f; - const float sSide = (s[0] - s[1]) * 0.5f; - - s[0] = sMid + sSide * width; - s[1] = sMid - sSide * width; - - if (mono) - { - s[0] = (s[0] + s[1]) * 0.5f; - s[1] = s[0]; - } - - if (monoBass) - { - float lp[2]; - float hp[2]; - - for (int i = 0 ; i < 2; ++i) - { - multimodeFilter(s[i], multimodeCoeff(monoBassFreq), lp[i], hp[i], m_monoBassFilter[i]); - } - - float lowmono = (lp[0] + lp[1]) * 0.5f; - - if (audition) - { - s[0] = lowmono; - s[1] = lowmono; - } - else - { - s[0] = lowmono - hp[0];// Subtraction is needed due to filter phase shift - s[1] = lowmono - hp[1]; - } - } - - switch (panMode) - { - case 0:// Gain - { - const float lGain = pan > 0 ? 1.f - pan : 1.f; - const float rGain = pan < 0 ? 1.f + pan : 1.f; - s[0] *= lGain; - s[1] *= rGain; - break; - } - case 1:// Stereo - { - const float lGainL = panDualL > 0 ? 1.f - panDualL : 1.f; - const float rGainL = panDualL < 0 ? 1.f + panDualL : 1.f; - const float lGainR = panDualR > 0 ? 1.f - panDualR : 1.f; - const float rGainR = panDualR < 0 ? 1.f + panDualR : 1.f; - s[0] = s[0] * lGainL + s[1] * rGainL; - s[1] = s[0] * lGainR + s[1] * rGainR; - break; - } - case 2:// Haas - { - float haasResult = 0; - float haasDelayVal[2] = {0}; - - if (pan >= 0) - { - haasDelayVal[0] = linearInterpolate(0, 0.0008f * m_sampleRate * panDelay, abs(pan)); - } - else - { - haasDelayVal[1] = linearInterpolate(0, 0.0008f * m_sampleRate * panDelay, abs(pan)); - } - - for (int i = 0; i < 2; ++i) - { - if ((i == 0 && pan > 0) || (i == 1 && pan < 0)) - { - // Read next value from delay buffer - float readLoc = m_haasIndex[i] - haasDelayVal[i]; - if (readLoc < 0) {readLoc += m_haasBufSize;} - float readLocFrac = fraction(readLoc); - if (readLoc < m_haasBufSize - 1) - { - haasResult = linearInterpolate(m_haasBuf[i][floor(readLoc)], m_haasBuf[i][ceil(readLoc)], readLocFrac); - } - else// For when the interpolation wraps around to the beginning of the buffer - { - haasResult = linearInterpolate(m_haasBuf[i][m_haasBufSize - 1], m_haasBuf[i][0], readLocFrac); - } - } - - // Increment delay ring buffer index - ++m_haasIndex[i]; - if (m_haasIndex[i] >= m_haasBufSize) - { - m_haasIndex[i] -= m_haasBufSize; - } - // Send new value to delay line - m_haasBuf[i][m_haasIndex[i]] = s[i]; - } - - if (pan != 0) - { - const float minGain = linearInterpolate(1.f, 0.15f, abs(pan)); - if (pan >= 0) - { - const float lGain = ((1.f - pan) + minGain) / (1.f + minGain); - s[0] = haasResult * lGain; - } - else - { - const float rGain = ((1.f + pan) + minGain) / (1.f + minGain); - s[1] = haasResult * rGain; - } - } - - const int lowChnl = (pan <= 0); - const int highChnl = !lowChnl; - - float lp; - float hp; - - float temp = -abs(pan) + 1.f; - float filtFreq = 2000.f + 8000.f * temp * temp; - float hpGain = abs(pan) < 0.5 ? 1.f - abs(pan) * 2.f : 0.f; - hpGain = linearInterpolate(1.f, hpGain, panSpectral); - multimodeFilter(s[lowChnl], multimodeCoeff(filtFreq), lp, hp, m_haasSpectralPanFilter[lowChnl]); - - s[lowChnl] = lp + hp * hpGain; - - filtFreq = 2000.f; - hpGain = abs(pan) + 1.f; - hpGain = linearInterpolate(1.f, hpGain, panSpectral); - multimodeFilter(s[highChnl], multimodeCoeff(filtFreq), lp, hp, m_haasSpectralPanFilter[highChnl]); - - s[highChnl] = lp + hp * hpGain; - } - } - - if (dc) - { - for (int i = 0; i < 2; ++i) - { - m_dcInfo[i] = m_dcInfo[i] * 0.999f + s[i] * 0.001f; - s[i] -= m_dcInfo[i]; - } - } - - if (mute) - { - s[0] = 0; - s[1] = 0; - } - - s[0] *= volume; - s[1] *= volume; - - buf[f][0] = d * buf[f][0] + w * s[0]; - buf[f][1] = d * buf[f][1] + w * s[1]; - - outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; - } - - checkGate( outSum / frames ); - - return isRunning(); -} - - -sample_t StereoControlEffect::calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b) -{ - float filterOutput = a * (inSamp - m_filtY[filtNum][channel][1]) + - b * (m_filtX[filtNum][channel][0] - m_filtY[filtNum][channel][0]) + - m_filtX[filtNum][channel][1]; - - m_filtX[filtNum][channel][1] = m_filtX[filtNum][channel][0]; - m_filtX[filtNum][channel][0] = inSamp; - m_filtY[filtNum][channel][1] = m_filtY[filtNum][channel][0]; - m_filtY[filtNum][channel][0] = filterOutput; - - return filterOutput; -} - - -void StereoControlEffect::multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf) -{ - lp = in * g + filtBuf; - hp = in - lp; - filtBuf = hp * g * 2.f + filtBuf; -} - -float StereoControlEffect::multimodeCoeff(float freq) -{ - const float g = tan(F_PI * freq / m_sampleRate); - return g / (1.f + g); -} - - - - -extern "C" -{ - -// necessary for getting instance out of shared lib -PLUGIN_EXPORT Plugin * lmms_plugin_main( Model* parent, void* data ) -{ - return new StereoControlEffect( parent, static_cast( data ) ); -} - -} - diff --git a/plugins/StereoControl/OLD_3/StereoControl.h b/plugins/StereoControl/OLD_3/StereoControl.h deleted file mode 100755 index 70a3e82ea65..00000000000 --- a/plugins/StereoControl/OLD_3/StereoControl.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * StereoControl.h - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - - -#ifndef STEREOCONTROL_H -#define STEREOCONTROL_H - -#include "Effect.h" -#include "StereoControlControls.h" -#include "ValueBuffer.h" - -class StereoControlEffect : public Effect -{ -public: - StereoControlEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); - virtual ~StereoControlEffect(); - virtual bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ); - - virtual EffectControls* controls() - { - return &m_stereocontrolControls; - } - -private: - inline sample_t calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b); - inline void multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf); - inline float multimodeCoeff(float freq); - - StereoControlControls m_stereocontrolControls; - - float m_filtX[2][2][2] = {{{0}}};// [filter number][channel][samples back in time] - float m_filtY[2][2][2] = {{{0}}}; - float m_filtA = 0; - float m_filtB = 0; - std::vector m_delayBuf[2]; - int m_delayBufSize = 0; - int m_delayIndex[2] = {0}; - - std::vector m_haasBuf[2]; - int m_haasBufSize = 0; - int m_haasIndex[2] = {0}; - - float m_sampleRate = 0; - - float m_dcInfo[2] = {0}; - - float m_monoBassFilter[2] = {0}; - float m_stereoizerFilter[2][2] = {0}; - - float m_haasSpectralPanFilter[2] = {0}; - - friend class StereoControlControls; - -} ; - -#endif diff --git a/plugins/StereoControl/OLD_3/StereoControlControlDialog.cpp b/plugins/StereoControl/OLD_3/StereoControlControlDialog.cpp deleted file mode 100755 index 68740a3ab49..00000000000 --- a/plugins/StereoControl/OLD_3/StereoControlControlDialog.cpp +++ /dev/null @@ -1,191 +0,0 @@ -/* - * StereoControlControlDialog.cpp - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#include - -#include "StereoControlControlDialog.h" -#include "StereoControlControls.h" -#include "embed.h" -#include "ToolTip.h" -#include "Knob.h" -#include "PixmapButton.h" -#include "LedCheckbox.h" -#include "ComboBox.h" -#include "gui_templates.h" - - -StereoControlControlDialog::StereoControlControlDialog( StereoControlControls* controls ) : - EffectControlDialog(controls) -{ - setAutoFillBackground( true ); - QPalette pal; - pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); - setPalette( pal ); - setFixedSize( 359, 255 ); - - Knob * volumeKnob = new Knob( knobBright_26, this); - volumeKnob -> move( 18, 148 ); - volumeKnob -> setVolumeKnob( true ); - volumeKnob->setModel( &controls->m_volumeModel ); - volumeKnob->setHintText( tr( "Volume:" ) , "%" ); - - Knob * stereoizerKnob = new Knob( knobBright_26, this); - stereoizerKnob -> move( 168, 20 ); - stereoizerKnob->setModel( &controls->m_stereoizerModel ); - stereoizerKnob->setHintText( tr( "Stereoize:" ) , "%" ); - - Knob * widthKnob = new Knob( knobBright_26, this); - widthKnob -> move( 168, 69 ); - widthKnob->setModel( &controls->m_widthModel ); - widthKnob->setHintText( tr( "Width:" ) , "%" ); - - Knob * monoBassFreqKnob = new Knob( knobBright_26, this); - monoBassFreqKnob -> move( 277, 34 ); - monoBassFreqKnob->setModel( &controls->m_monoBassFreqModel ); - monoBassFreqKnob->setHintText( tr( "Mono Bass Frequency:" ) , " Hz" ); - - Knob * stereoizerLPKnob = new Knob( knobSmall_17, this); - stereoizerLPKnob -> move( 205, 32 ); - stereoizerLPKnob->setModel( &controls->m_stereoizerLPModel ); - stereoizerLPKnob->setHintText( tr( "Stereoizer Lowpass:" ) , " Hz" ); - - Knob * stereoizerHPKnob = new Knob( knobSmall_17, this); - stereoizerHPKnob -> move( 139, 32 ); - stereoizerHPKnob->setModel( &controls->m_stereoizerHPModel ); - stereoizerHPKnob->setHintText( tr( "Stereoizer Highpass:" ) , " Hz" ); - - Knob * panSpectralKnob = new Knob( knobBright_26, this); - panSpectralKnob -> move( 250, 200 ); - panSpectralKnob->setModel( &controls->m_panSpectralModel ); - panSpectralKnob->setLabel( tr( "Spectral" ) ); - panSpectralKnob->setHintText( tr( "Spectral Panning:" ) , "%" ); - - Knob * panDelayKnob = new Knob( knobBright_26, this); - panDelayKnob -> move( 150, 200 ); - panDelayKnob->setModel( &controls->m_panDelayModel ); - panDelayKnob->setLabel( tr( "Delay" ) ); - panDelayKnob->setHintText( tr( "Panning Delay:" ) , "%" ); - - Knob * panDualLKnob = new Knob( knobBright_26, this); - panDualLKnob -> move( 150, 230 ); - panDualLKnob->setModel( &controls->m_panDualLModel ); - panDualLKnob->setLabel( tr( "L" ) ); - panDualLKnob->setHintText( tr( "Left Pan:" ) , "%" ); - - Knob * panDualRKnob = new Knob( knobBright_26, this); - panDualRKnob -> move( 180, 230 ); - panDualRKnob->setModel( &controls->m_panDualRModel ); - panDualRKnob->setLabel( tr( "R" ) ); - panDualRKnob->setHintText( tr( "Right Pan:" ) , "%" ); - - Knob * panKnob = new Knob( knobBright_26, this); - panKnob -> move( 200, 200 ); - panKnob->setModel( &controls->m_panModel ); - panKnob->setLabel( tr( "PAN" ) ); - panKnob->setHintText( tr( "Pan:" ) , "%" ); - - PixmapButton * gainButton = new PixmapButton(this, tr("Gain Panning")); - gainButton->move(122, 136); - gainButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("basic_sel")); - gainButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("basic_unsel")); - ToolTip::add(gainButton, tr("Change gain of each channel")); - - PixmapButton * stereoButton = new PixmapButton(this, tr("Stereo Panning")); - stereoButton->move(197, 136); - stereoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dual_sel")); - stereoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dual_unsel")); - ToolTip::add(stereoButton, tr("Pan one channel into the other")); - - PixmapButton * haasButton = new PixmapButton(this, tr("Haas Panning")); - haasButton->move(273, 136); - haasButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("binaural_sel")); - haasButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("binaural_unsel")); - ToolTip::add(haasButton, tr("Stereo panning with single-channel fractional delay")); - - automatableButtonGroup * panModeGroup = new automatableButtonGroup(this); - panModeGroup->addButton(gainButton); - panModeGroup->addButton(stereoButton); - panModeGroup->addButton(haasButton); - panModeGroup->setModel(&controls->m_panModeModel); - - PixmapButton * monoButton = new PixmapButton(this, tr("Mono")); - monoButton->move(262, 88); - monoButton->setModel(&controls->m_monoModel); - monoButton->setCheckable(true); - monoButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mono_sel")); - monoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mono_unsel")); - ToolTip::add(monoButton, tr("Converts input to mono")); - - PixmapButton * dcButton = new PixmapButton(this, tr("DC Offset Removal")); - dcButton->move(58, 161); - dcButton->setModel(&controls->m_dcModel); - dcButton->setCheckable(true); - dcButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dc_sel")); - dcButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dc_unsel")); - ToolTip::add(dcButton, tr("Removes DC offset from the signal")); - - PixmapButton * muteButton = new PixmapButton(this, tr("Mute")); - muteButton->move(15, 213); - muteButton->setModel(&controls->m_muteModel); - muteButton->setCheckable(true); - muteButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("mute_sel")); - muteButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mute_unsel")); - ToolTip::add(muteButton, tr("Mute audio")); - - LedCheckBox * monoBassButton = new LedCheckBox("", this, tr("Mono Bass"), LedCheckBox::Green); - monoBassButton->move(260, 14); - monoBassButton->setModel(&controls->m_monoBassModel); - monoBassButton->setCheckable(true); - ToolTip::add(monoBassButton, tr("Mono Bass")); - - PixmapButton * auditionButton = new PixmapButton(this, tr("Bass Mono Audition")); - auditionButton->move(324, 28); - auditionButton->setModel(&controls->m_auditionModel); - auditionButton->setCheckable(true); - auditionButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("audition_sel")); - auditionButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("audition_unsel")); - ToolTip::add(auditionButton, tr("Bass Mono Audition")); - - PixmapButton * invertLButton = new PixmapButton(this, tr("Invert Left Channel")); - invertLButton->move(29, 89); - invertLButton->setModel(&controls->m_invertLModel); - invertLButton->setCheckable(true); - invertLButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_sel")); - invertLButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertL_unsel")); - ToolTip::add(invertLButton, tr("Invert Left Channel")); - - PixmapButton * invertRButton = new PixmapButton(this, tr("Invert Right Channel")); - invertRButton->move(59, 89); - invertRButton->setModel(&controls->m_invertRModel); - invertRButton->setCheckable(true); - invertRButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_sel")); - invertRButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("invertR_unsel")); - ToolTip::add(invertRButton, tr("Invert Right Channel")); - - ComboBox * m_soloChannelBox = new ComboBox(this); - m_soloChannelBox->setGeometry(13, 21, 82, 22); - m_soloChannelBox->setFont(pointSize<8>(m_soloChannelBox->font())); - m_soloChannelBox->move(12, 20); - m_soloChannelBox->setModel(&controls->m_soloChannelModel); -} diff --git a/plugins/StereoControl/OLD_3/StereoControlControlDialog.h b/plugins/StereoControl/OLD_3/StereoControlControlDialog.h deleted file mode 100755 index 25696286080..00000000000 --- a/plugins/StereoControl/OLD_3/StereoControlControlDialog.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * StereoControlControlDialog.h - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#ifndef STEREOCONTROL_CONTROL_DIALOG_H -#define STEREOCONTROL_CONTROL_DIALOG_H - -#include "EffectControlDialog.h" - - -class StereoControlControls; - - -class StereoControlControlDialog : public EffectControlDialog -{ - Q_OBJECT -public: - StereoControlControlDialog( StereoControlControls* controls ); - virtual ~StereoControlControlDialog() - { - } -} ; - -#endif diff --git a/plugins/StereoControl/OLD_3/StereoControlControls.cpp b/plugins/StereoControl/OLD_3/StereoControlControls.cpp deleted file mode 100755 index 9596294a25a..00000000000 --- a/plugins/StereoControl/OLD_3/StereoControlControls.cpp +++ /dev/null @@ -1,111 +0,0 @@ -/* - * StereoControlControls.cpp - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - - -#include - -#include "StereoControlControls.h" -#include "StereoControl.h" -#include "Engine.h" -#include "Song.h" - - -StereoControlControls::StereoControlControls( StereoControlEffect* effect ) : - EffectControls( effect ), - m_effect( effect ), - m_volumeModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Volume" ) ), - m_stereoizerModel( 0.0f, 0.0f, 200.0f, 0.01f, this, tr( "Stereoize" ) ), - m_widthModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Width" ) ), - m_panModel( 0.0f, -100.0f, 100.0f, 0.01f, this, tr( "Pan" ) ), - m_monoBassFreqModel( 120.0f, 0.0f, 500.0f, 0.01f, this, tr( "Mono Bass Frequency" ) ), - m_stereoizerLPModel( 20000.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Lowpass" ) ), - m_stereoizerHPModel( 0.0f, 0.0f, 20000.0f, 0.01f, this, tr( "Stereoizer Highpass" ) ), - m_panSpectralModel( 0.0f, 0.0f, 100.0f, 0.01f, this, tr( "Spectral Panning" ) ), - m_panDelayModel( 100.0f, 0.0f, 200.0f, 0.01f, this, tr( "Panning Delay" ) ), - m_panDualLModel( -100.0f, -100.0f, 100.0f, 0.01f, this, tr( "Left Pan" ) ), - m_panDualRModel( 100.0f, -100.0f, 100.0f, 0.01f, this, tr( "Right Pan" ) ), - m_panModeModel(0, 0, 2, this, tr("Panning Mode")), - m_soloChannelModel(0, 0, 2, this, tr("Solo Channel")), - m_monoModel(false, this, tr("Mono")), - m_dcModel(false, this, tr("DC Offset Removal")), - m_muteModel(false, this, tr("Mute")), - m_monoBassModel(false, this, tr("Mono Bass")), - m_auditionModel(false, this, tr("Mono Bass Audition")), - m_invertLModel(false, this, tr("Invert Left Channel")), - m_invertRModel(false, this, tr("Invert Right Channel")) -{ -} - - -void StereoControlControls::saveSettings( QDomDocument& doc, QDomElement& _this ) -{ - m_volumeModel.saveSettings( doc, _this, "volume" ); - m_stereoizerModel.saveSettings( doc, _this, "stereoizer" ); - m_widthModel.saveSettings( doc, _this, "width" ); - m_panModel.saveSettings( doc, _this, "pan" ); - m_panModeModel.saveSettings( doc, _this, "panMode" ); - m_monoModel.saveSettings( doc, _this, "mono" ); - m_dcModel.saveSettings( doc, _this, "dc" ); - m_muteModel.saveSettings( doc, _this, "mute" ); - m_monoBassModel.saveSettings( doc, _this, "monoBass" ); - m_auditionModel.saveSettings( doc, _this, "audition" ); - m_invertLModel.saveSettings( doc, _this, "invertL" ); - m_invertRModel.saveSettings( doc, _this, "invertR" ); - m_soloChannelModel.saveSettings( doc, _this, "soloChannel" ); - m_monoBassFreqModel.saveSettings( doc, _this, "monoBassFreq" ); - m_stereoizerLPModel.saveSettings( doc, _this, "stereoizerLP" ); - m_stereoizerHPModel.saveSettings( doc, _this, "stereoizerHP" ); - m_panSpectralModel.saveSettings( doc, _this, "panSpectral" ); - m_panDelayModel.saveSettings( doc, _this, "panDelay" ); - m_panDualLModel.saveSettings( doc, _this, "panDualL" ); - m_panDualRModel.saveSettings( doc, _this, "panDualR" ); -} - - - -void StereoControlControls::loadSettings( const QDomElement& _this ) -{ - m_volumeModel.loadSettings( _this, "volume" ); - m_stereoizerModel.loadSettings( _this, "stereoizer" ); - m_widthModel.loadSettings( _this, "width" ); - m_panModel.loadSettings( _this, "pan" ); - m_panModeModel.loadSettings( _this, "panMode" ); - m_monoModel.loadSettings( _this, "mono" ); - m_dcModel.loadSettings( _this, "dc" ); - m_muteModel.loadSettings( _this, "mute" ); - m_monoBassModel.loadSettings( _this, "monoBass" ); - m_auditionModel.loadSettings( _this, "audition" ); - m_invertLModel.loadSettings( _this, "invertL" ); - m_invertRModel.loadSettings( _this, "invertR" ); - m_soloChannelModel.loadSettings( _this, "soloChannel" ); - m_monoBassFreqModel.loadSettings( _this, "monoBassFreq" ); - m_stereoizerLPModel.loadSettings( _this, "stereoizerLP" ); - m_stereoizerHPModel.loadSettings( _this, "stereoizerHP" ); - m_panSpectralModel.loadSettings( _this, "panSpectral" ); - m_panDelayModel.loadSettings( _this, "panDelay" ); - m_panDualLModel.loadSettings( _this, "panDualL" ); - m_panDualRModel.loadSettings( _this, "panDualR" ); -} - - diff --git a/plugins/StereoControl/OLD_3/StereoControlControls.h b/plugins/StereoControl/OLD_3/StereoControlControls.h deleted file mode 100755 index cc2f22fd51d..00000000000 --- a/plugins/StereoControl/OLD_3/StereoControlControls.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * StereoControlControls.h - * - * Copyright (c) 2020 Lost Robot - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#ifndef STEREOCONTROL_CONTROLS_H -#define STEREOCONTROL_CONTROLS_H - -#include "EffectControls.h" -#include "StereoControlControlDialog.h" - - -class StereoControlEffect; - - -class StereoControlControls : public EffectControls -{ - Q_OBJECT -public: - StereoControlControls( StereoControlEffect* effect ); - virtual ~StereoControlControls() - { - } - - virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent ); - virtual void loadSettings( const QDomElement & _this ); - inline virtual QString nodeName() const - { - return "StereoControlControls"; - } - - virtual int controlCount() - { - return 4; - } - - virtual EffectControlDialog* createView() - { - return new StereoControlControlDialog( this ); - } - -private: - StereoControlEffect* m_effect; - - FloatModel m_volumeModel; - FloatModel m_stereoizerModel; - FloatModel m_widthModel; - FloatModel m_panModel; - FloatModel m_monoBassFreqModel; - FloatModel m_stereoizerLPModel; - FloatModel m_stereoizerHPModel; - FloatModel m_panSpectralModel; - FloatModel m_panDelayModel; - FloatModel m_panDualLModel; - FloatModel m_panDualRModel; - - IntModel m_panModeModel; - IntModel m_soloChannelModel; - - BoolModel m_monoModel; - BoolModel m_dcModel; - BoolModel m_muteModel; - BoolModel m_monoBassModel; - BoolModel m_auditionModel; - BoolModel m_invertLModel; - BoolModel m_invertRModel; - - friend class StereoControlControlDialog; - friend class StereoControlEffect; - -} ; - -#endif diff --git a/plugins/StereoControl/OLD_3/artwork.png b/plugins/StereoControl/OLD_3/artwork.png deleted file mode 100755 index 5ee97db8f10dc7a722a854c4f3574f984fe8fb6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62462 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�n4WL4$v3acEqtG)cI0BAs{w$-3C@NsW#QF%Q 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�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 SjM%g$O!27%G~j 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 b`3U|7XjvY-)hiui00000NkvXXu0mjfeU>-d diff --git a/plugins/StereoControl/OLD_3/basic_sel.png b/plugins/StereoControl/OLD_3/basic_sel.png deleted file mode 100755 index 9fa15efcfbba1359194d328e3609cc4166398a35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 993 zcmV<710MW|P)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirufA7gTIj2dRtWDR(wNcw?or{EatFEJL6RfjXvCdr#FDhPHK{s?b z7zl#GyqVM$$B+s0d*W^;Y=|F7>!?)(zm{dT^CG0PnohHHS-wur$vIv`Qa5$>qA4i( z!wZMQbKV2L_j&%$!z&t_19mbIr)U~f_0Mw13c?{Pc3XQpE>~@p$TgJBrjd)LK`vh) zb$PBzhn8?4Tai2H?K=O&rC8JI2G=vU9gOmKeKC&Cz zu-qzAMn|2#fNS&=Vsfr>u$CSd_;w#h`XGwE(a-#ggBUwPIK$%r==a}7&FNY4Yy7x_ zUPNRb`}UR0KfW37TVJ8P{T+6|Lt!w8c}o-8@JSldI;r7a>en9vAanQuOuq;3=x0cu z$FO<==mTphcCA95j8_s?Xt|8x0WuB#RAfpM%yG>oD3IQM>v)zJu&Kz=_0 zu?!-XL7n*JZ}+qYSCb31;Cu8v#Q1C}}5C z_7K`fGo^Am62@^Pj0!lP=_Rwh6YVNij&L0Fp>FIgE#)%&&vwHr&b-ry{^Ta)-_jU& z-Gr3NQ@`fG!u+!DPO|-LaXh^NebZ{R6K9YnV$kYA@3|5Ar{rJGSR9*19qK0a!T|19 zCy^#*ur{=!KN!L}_9ODkUsnW{0Bqk%|B`N+oPKIybTBQH^GVzXPmvw&Mfo9)y6eM* z;Oku^KN+U(wJ*_o+cDaFSS}|bXP{2aQS9~{N*@Q{D*9`swA zu{>HS{@ev>_KzVd)D0^F>wi9!Rwwwy&skMg)y!IQSdGmAs+WI@yZrkd9~^tS8uBnW P00000NkvXXu0mjf-%8TE diff --git a/plugins/StereoControl/OLD_3/basic_unsel.png b/plugins/StereoControl/OLD_3/basic_unsel.png deleted file mode 100755 index 18084a7d2e4ae6aa6b57a8e4088c7a288c0e53bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1026 zcmV+d1pWJoP)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirupD!#(zkq{tlz z3kyRI;Pd$;HSU7X=OYvVL6Fp#1)ay zI}N)SwpiF+*ATp}Y*hiPRu-XDD)ISzjC(v7&UJ$T8>_1T_|5C3yt0Of@cYW zjfRI~qH(y~#66~_TEBs>PMzjV=QpULmE^9-CT__R8uxsH*Xw0{N7`#9UvCw>`a=v#N+Xhm6^fKo4-=BW_{4*)t9Qs&VHVCt4qktOvhm8 zW?;~WO7$SADap88Ki!sD=fAy3S*ew}9ouO?dYr*4Mv`<|3i9*l@BfZd9i5`QjtmeI zpG=?ApdBaMgQJ7r@5kYA(suX=l@)8TT5asze=z9#!2J7ZYd*-a<0r{TPeZMKgz)fi zrl+T|+3f5;@F~w`Wm2RZ)>iRQw34l_Zzf(7M^sc4)3000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNlirut03RPBaHofB3WGUv*4`o#~**aTg%D^*eS zi;Pu-v{KP2_+g655LSg1(XJB}E!%Kvb*0j+Db|*{B~6>R=Jg&wq)ih|Vv^~%JaFOO zbDrmapYwlS&fy5XqRM0>=o3U7`D~uG7a5%{H)D+5cB!)lmXN8dh zqN*y1L>yf_UMazUlU0rsq^z(}q$s6Q-X@d2=S<^VPQU!(tc0s!ryX1skJn8)X--uWQ_^42;$L;J9|4!}Yz z{cq1?7q)%JS$O;5ln#im(WvvOJNtB=G^6FULKSy};I%Hd8&iUorZ@_$F48zTOtvb?SiaINeV^L{i%hmaYu%fy`YU_L)X_+T5B zZ$DX!m4xI|EeK7bJ9Yu1qk-kS)}hKZdr3w@WaZTgMuVC7fmSq=if-g$LCj41a@%xS zWoSJ#$hA$cW83jArt>rSU)cV)RmrSxQ~x(a9F1rXHf8BVwr{{VHVa79kA5V6{WWO! z-w0a1k`a*5Qc30N!1Mjn1oqxRUGFgBCvRcQoc@)zZiRAKUa=PwOBmi7CGddbpT1NI5Bm7jz~(R^E$-oKT_(gcBBC20;zy?4I*a! zEFFD>#O9mOAG-h)!2II(Tygw=cf+i>wAhF~dk=~yn6njU@@DM)ituMoB2_&Sh`rK= z&L5$EWB=ND=I}PcJ8r`mN@AG2OsIPsmgH$jXoP$2!!YfIOTjd*ID46zmxow-Z5QIz zFvOGjF}Z54$~$NI`Z}NwL_$NI@lkVRm_+v$mJZ&Vn*X(vddC}U?nwz315};*jlgba zDg)YX!8Gd5Y9Q*-GiZBSNItQNs>8#CUTSCYoxMmQFid-?I&vzz;Yf+@q?=m%2>$2W z(JzDwVrKfjD)n81=uS))wQgavH&jlg#cXO<=20XSu1YAw3JE1N_zGLail|)v6@U5n Y7xoVMDp#6Gs{jB107*qoM6N<$g7jPWdH?_b diff --git a/plugins/StereoControl/OLD_3/binaural_unsel.png b/plugins/StereoControl/OLD_3/binaural_unsel.png deleted file mode 100755 index ba00d93977708c6e2acc0377a059f0c4dbf4e957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1071 zcmV+~1kn45P)000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru?gWOr`@(22xBm7Hpla#Y!W~7HjX_1N5#pwx#WJzvd)8 z=X~e8-}%nDr?*!DIDkdO5e^RE14Z8YP2#-y^W$-ZfoF1(!R!4KN&y8<*F-##Fi1>H z1X!5h^?KuJ%mRN#N<=Z9MubQZfoMvvsS~TkgwI-G^{?b$wV3$qQ@zxtPF{%BVq)&x=VaIJGk39ixHjxVZ>%*d1@+))GyAo&$tV6ZGUIu@n&{bX)$$wOOa+9 z>vA(^(F_P=lbyw?jI^MfH7~E`^5q|S@Zc}X zOG|=s0`&s>|NiG+%zc-bnwlatb!k}5aJrGsTPc@`44-`bk@Vf^bfKIxCy1SCjNf%I zG(3!UPZjkIjWWCC#aj^sfh$-0Nl#zF+T83Q(S-Il@A)Klyjg}yrQ+us1G8un)L&F* zRxA-W>YFJpub^h%L56SN=3w0cLT)YKtMeDg$Vg}1+H4tTLLCO`t#8Kvq^JSFZL0gw(t>G$QjJ3zWqAdp*j-MXJVkx|hwS%w@Oqzy)C}n_ny_L?x#7rR0DL|l_wM~kOPhhp9p%*M-kmsJiz9UQ8w<`y?UJB~v2?ziH002ovPDHLkV1i$A{WJgo diff --git a/plugins/StereoControl/OLD_3/dc_sel.png b/plugins/StereoControl/OLD_3/dc_sel.png deleted file mode 100755 index f385966298b8867b2e9aaf9d7096d9741d51955b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmV-e0;m0nP)nfZQa-kbLr#?m>d zYPtj>F;&xLDxH%;)pR*NF@b6BAqrHhKlxlNqBR2_uhwAu$G1p?bzLV2d=voR_lXK^ zEe!xEi5eQev)&Drk2eV8I)oC{YhbLG8F}~~W#vn2!M+%^yJxA+j1!I;C~h6YE@Ljf zMHITHPiYOk9wJz`UXVJoMDorG!f&#*a2|O&14!IQ7pNc0kX(F&HT#(4LLPynIi2ar zsSO;Pl8aihF_&$^msjxSW{4+O@s4M)=9Uq!HvmxA*D#-~^`%qVDeh)F@z~{yt$w9( za4*4h7Omn!exoNxCr<4TbwBJ{)7~vQ%nb--fE54bYn(VhtoR-EgF|4AB2Q)it$*!= zdJx^5N%PVq)u$J!9~#5BUqC#wF+MqL&(9KEJ4$#sL2z{n_xWY~>nD413P4(^{ar({ zW#4R-lawf)Ps}be^57lHt5WMwlL>0K&rv^;CQQT;p5H3DdwE2`>0F|lPJiM5fy$=S mZXiSITtmLSQ$Xti5B3IO-kEnK|NLu=~+wz=ID3I%dG zjj_jJ(%J82c^&JH%WYub#t_|S&T{+CU5q~l{lTm3RhmEut_S;2TACRheMrx_UPkUc zKp;?Cnk_jiIySMmw9I%c&Uh@&t(ya!KGnsm*Kbf&g1~&Nv3+Ysy56G$fQ*kf&|f`jkJhB2UkI>q+PbO zWt*TVZPBI&?jl+VMuC{4m70wXiu3l)y*}mnKJQYVdmZIjrn}cs$BfFo?@c8zhn|EJyx0tn2_y(@3Wc zQ~<+pD8 zk9T98uUy-k?KOmg0U~d1Z1HVgt+h4(^=pkVyTg?A4B@{xfbYRO6vJfkQ9II7xh{?E zQp@a9SL!JoogsPDkJS0Hp34ViYToYhj~E5d$M9Z%iF;y!MAx~TO%tc9C>$I`pIySZ zd1g-~>B>h7lT9)7k!j+s$MHz!JF?XV0rPeviY2H|zv8Z|AklOfO|tvWOAoVO`I};_ zR%m6Dl>%uC5R$FOaF5Oag7$0#qp}#Qtvb7Jn`?2g&EK`>ien{%atD znlRAELil=KqkQ}gKvCa&V)rhw^rRC}6!fVuMGrrK2&v{;Jf9{v6;R8btqKUYS~MP*PlDEXp%%}APwg(OCn55k}VgI;0}gZ_YE5T%+Xq(x9z zX;9EY8blkcp{zxLwQw;;PC5oPqRzrn8^splIQO)uxuZEw&f?DMelEYoIp_X<_nhx} z-Xj5bfTKVX8sYE&&m=%DDB34&Oi0iq3B&Bn4355Dp#vlti64_wnkr$4jg1A6VgP(T zpQgxv2xz1OKnP8dH4+0LRJ1PZ6YMrC&%2(|(f*ibb0c}V*$6! z+sVn?uB3~0=V7;5xqZvLBKDrbd{yhe)D*!GLOlbn-?+({x{KUxxsPwrM}z4K#;hH| zT7>X{V7lzUeui8w(o$1N(r;PyJ=HB5BP_tQcb0eW`!F?G7#$tsM9nd!ER@gEw9$}5 zPtO}BCcaaBxN1f0=#Q|dNEXcdJUB>VV&W?DEcdCdEJK!MUcc?-)4%|`@^^-ft#(^t zqN3M7d4bs^%OYgCBuU7AKL{u;-iymM3<6%*U!m9Q$unlJuC>Z-(f#?Ry1S(K`vfo; zvKbp2XWHvUmSxh@l5q}w0U$kP8vv8jKM@ErGct&ai{oW?hvHvRevpsOp^&lFMyK?W z%52)O9-|?P%JM^`Bqw8PXkuYu5x0AU^L1xwd-w>yU*^KOTE@pcOip>JJypZp+%JwC zKdHp2uRBd?Y01hN8BM{|?xDs86G8~)=jZw6c4M|QGyHV~fR+cXT)tF~#e5Zz@OV7j zYi&ayC@d_%(cizUe%4MKRaF&~mz5~7mvYT);X|K8wYErr$jU9yPNZvK*y#xDk{S`6 p^fe+~!?b_Nh}JOe0x^OM#NU1}H*fC~v_1d;002ovPDHLkV1gs&SQY>P diff --git a/plugins/StereoControl/OLD_3/invertL_sel.png b/plugins/StereoControl/OLD_3/invertL_sel.png deleted file mode 100755 index d1bb52006613ccc53e13e30a0250367f63d978a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7X~gM>e|$kW9!#NzbYDUMu+3`AVwZ?m}E z>6o^waADku$sBuU+;bCHxFcj0hnCi|Uw1XMJftt#oOo7mbjC-aWb!^2FYX5=N=sG! zehImFoldY=ax>@Qp`SHLQ&U$|C+>*Jm+6yMS6plAn#jS}W4PnfzSRr@3-uILee<3R zzk3{*`dHq5ishuPztffFSFGwfvdO7CBf>R!o>rCX>h;bH9_sJ@#=aBR>~H%wbL(Zv zhb2FaZ$Euqq!?ZH^OvmeADjK`vh{r*zHYQ-e5X@V5}TC+^eqE}r>mdKI;Vst0PiVu AxBvhE diff --git a/plugins/StereoControl/OLD_3/invertL_unsel.png b/plugins/StereoControl/OLD_3/invertL_unsel.png deleted file mode 100755 index 57494efb9e331c59d4378fa62f48c889ff317516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|wj^(N7X~gMh~tsw9Xl&H3twD_w#aO;60hNl3b~UO^%KXdcwZA;f>#spGkWhJSQ=fBsZ*D^}%;ZOku#s@oRen7E!a8Ho t^8c|X1UT8MzG)nYX1<_nw{_PS=4igOL-|YPd4b+w@O1TaS?83{1OU5NZyo>u diff --git a/plugins/StereoControl/OLD_3/invertR_sel.png b/plugins/StereoControl/OLD_3/invertR_sel.png deleted file mode 100755 index b5b8a88b6e5b8892e7765514b88aba95a3a1aad8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmV;i0Z#sjP)TlfjmXrrVS z1;I)zBwG51C?qi#v*)cv41#7kxZJ?^<=R~ zDwQS*TCFCJ)hgo4S9t9X^~Q4~At@!kudo1=Qba|sR{)?jgF^7LwZEv{ZV)6T1RA^f zN&4)Lq3w!M$m*7U4+73s8F#)!_UMB8$_&Bsgpq57dVcF5O4rzpHo>$TGMZsU8qoP+ z)cPzzQesu^ja>2D(#Oo7}-B3aZ?M~QU9?S-7Mp*9br*d~F(o?&o%kFP b*T?n^x<0ABv#T$H00000NkvXXu0mjfyy~^p diff --git a/plugins/StereoControl/OLD_3/invertR_unsel.png b/plugins/StereoControl/OLD_3/invertR_unsel.png deleted file mode 100755 index 2a4454574daefd52b6367343e228371be6eaeac8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 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 LNkvXXu0mjf(VzwV diff --git a/plugins/StereoControl/OLD_3/monoBass_unsel.png b/plugins/StereoControl/OLD_3/monoBass_unsel.png deleted file mode 100755 index b5e6462f66b14761a4f053130f47674d168a4a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5529 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 b$ypme9CKl&Jb1X~00000NkvXXu0mjfZjnjR diff --git a/plugins/StereoControl/OLD_3/mono_sel.png b/plugins/StereoControl/OLD_3/mono_sel.png deleted file mode 100755 index 4996a84eba22eadf6bb3fb1c99339665f6a20752..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783 zcmV+q1MvKbP)Br>Z-Py}W{1O+WxS&M2D6a=l3rgpk$ zQ&dnyMMy5(2+<2QL=5r~sWl3M_-Gn)X6_6#cjmN^8JzMl19NxxgR?o@@4Nhe=iI~p z9;vvbT>SRWkkI3pT3xcD;wdUcQWRBGR8`?{xJ)W*NYg@0`g|z59w!owu^5~+sjMMY zRnhf07Jzu%{2bR)ije|<5GIiZL_=BTVr1zz1eg%{9{|ehLG(>75@&XxHEhHBurIwo^xb7B{xI~-W%%Uo3F5^r zgj-z-8UKa-%M{v`hNWk6@EcK+W%(A*?*I}>>>tKiynY0ADuC2Iy~3KU;QQy8u(f_7 zy0eVriOL-P`LD@hBrgP5+j>aaRqW3PGU|~>X3&eAhje;!AV z53RXAH@^WjSq$cdm<+SArVXimJY!z!_=$CFj^MpU66dN())W%ESx=~O7mkj>%nZPK z_dT%+4+*y|YrhdS8Qh17)w6}bd8wU<_c(uU9V2N|Q34vSmjkFR-T!C&2;zJ@N-%Yx zXYJ3gBtR4umzo`EHofKiOsa7;JN?`mSCdz+zeXmptj{p>0x`D>#J?aIDQn|@yNv(< N002ovPDHLkV1i=@U}69O diff --git a/plugins/StereoControl/OLD_3/mono_unsel.png b/plugins/StereoControl/OLD_3/mono_unsel.png deleted file mode 100755 index 7c854ccd3c61e8138831fde7dbcfe9c2993faa34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 808 zcmV+@1K0eCP)+u)5aMcrEv!4?(TOvo5T6Od%pkq|L-~X z09*hj0iiUzO%I%R0}Roz@fvTn8U_D{*<_-(yLHwB(5&Fb%fDlSV9E1m}Uo=;vwyF%H(a5EoTx;LM`&tgg#ZpjML__m8)ZW{;b>k{w zp`l2Ugvn&0p|OeAmG7(?LI`rTchOJ%0-(J31+Pj<`O@08C119H$(3P}^WcCx|y7wp}ew&=9bSSC7!lw z)YR4y84*rMaDYuEIKr31ll!_QbGdv&V>7-Q4Mz{h5OW}!>bEsk!+V2+Fd9vaj8E9` zdV2ft_4UO|@&sVw=Oq0D17v4rteduQkneg=?lQ)U<>eJRySmA_a+#^=X$FVK*Vf0T zyf!T3hA}0jZwL+!;$T$7<{Gibm%-C&NxJ^A%(}dy3NJ5-y7~_`{Uf8J`1q*V6R_Kc z7abLe!7#_)g$3)_u?amtdV0u6PqW6t5xyLrWX&)H80O5Rq-D|G)oYUho!|S=>2%z? zt>yTUICk#XPF8v<2??k8)YxRBfq<9AW%&E=LZwnU&X>WHhb6=0fUu)25ai`QMw@$$ z+?&^tBnh+m5B2r$DXpm9q%mWdqqVJ_udi2nd7AK@Hc8000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru83PyA(I{9ajmZFP_ zbg6?lLK_z`;-EqYV@sqEtL7R>b4f|=?m4tclXz#^;R=QO!sEE#z4yKMzWlzw zd-tRbo3@C&I*p-MabXRwtPqKIB6(#+bj9NYgB`9aHYk;fWF{w(4ZTWvu0mnlw$ z6h%STt9SsaRo8<5LrotU03lpOmH-*R38~caK4euRy#GNxRvtc1@xWFh*Pi3~Fh%ZJ zFR|UXVWv{=lS^M9+WUyy@L6k1{3x()?|szqK1{#T^ej9whVSZIXT@?xE-?KH#<>LE zd!GS4yXL z0#G@>2mhBWl5VVW8#+|7#`y^YeoZoUur z@U9tpj~P%1Jp9*000sQ1^@s66VD^n00006VoOIv04D$` z05R;~H9i0U010qNS#tmYE+YT{E+YYWr9XB6000McNliru)5kxFS3))ak4TuOuq*hyywifXw zwwS5~TL`3B(@?=8dJ}rH=PWv0?uroXF&HI>r zGdlnm0R<3NHLNk4JPfi03RX|nwyU! zfVOijEU&DR&1Orml#eTYHhRyjxf{h(W1dTxee;&>E*D1+H_&jv&E$)zk}xa5V2rEx z_AOqACkxfA#I0#Umx&}vXt`W5OM^M~4-64m z_*CuBaO+Dx!ihi-heKvMJX6%3QdKlfV|U%o!kD^UI{-+e*2-+@*%wtTrmrjnq}Dcc zlk?_gmT2@Fmpj@SeKJNar{TTiAr@0eBvoBoMn0;1bP#5-GPEra3_tdB)pvz^19t%l zMNt^>kLr%mYwNqyQ*v~e#y>V;8Y~GA_50k`iSr*?Sz65RhL$Q$@Rt53XIcM-70bH( ctMKyg7a)*9PKs+T^8f$<07*qoM6N<$g0lK7asU7T diff --git a/plugins/StereoControl/OLD_3/soloL_sel.png b/plugins/StereoControl/OLD_3/soloL_sel.png deleted file mode 100755 index 8c48c959b972d9da8ddd8f56337bac1e9f06d44e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3369 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 Hu0mjfa-Pg< diff --git a/plugins/StereoControl/OLD_3/soloR_sel.png b/plugins/StereoControl/OLD_3/soloR_sel.png deleted file mode 100755 index 299078f717b8d81bc0bda96973b5d48da9a158c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4530 zcmV;j5l!xiP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3&sk{mg%g#Ysta|CW6$m4*U*}K6Ue?CM;sY_~2 zzizXsR8>aC!UYbvJ5u5N`~PnE7e7Tx4pp?b(OTrEjyke&(BtRFp1 =kN0)`@NQa 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 Q;{X5v07*qoM6N<$f(eSBzyJUM diff --git a/plugins/StereoControl/OLD_3/soloR_unsel.png b/plugins/StereoControl/OLD_3/soloR_unsel.png deleted file mode 100755 index dd799831a10c49cb2c8335cb838adbfa758c3f90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4154 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 Ef~!8o1ONa4 diff --git a/plugins/StereoControl/OLD_3/soloStereo_sel.png b/plugins/StereoControl/OLD_3/soloStereo_sel.png deleted file mode 100755 index d3974efa02884a4fbbd563188fc20a7694b3c4c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4423 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 N002ovPDHLkV1ga7P-_4H diff --git a/plugins/StereoControl/OLD_3/soloStereo_unsel.png b/plugins/StereoControl/OLD_3/soloStereo_unsel.png deleted file mode 100755 index 23cdd827544b895783274c03333b2340e74551dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4570 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 Ef|!w)qyPW_ From 3eb396cd16fa6cff1ff235d4c5a9592851a3b8da Mon Sep 17 00:00:00 2001 From: Robert Daniel Black Date: Tue, 29 Dec 2020 20:22:41 -0700 Subject: [PATCH 3/7] Fix stuff and things and everything else --- plugins/StereoControl/StereoControl.cpp | 47 +++++----- plugins/StereoControl/StereoControl.h | 15 +-- .../StereoControlControlDialog.cpp | 20 ++-- .../StereoControlControlDialog.h | 8 +- .../StereoControl/StereoControlControls.cpp | 92 +++++++++---------- plugins/StereoControl/StereoControlControls.h | 11 +-- 6 files changed, 93 insertions(+), 100 deletions(-) diff --git a/plugins/StereoControl/StereoControl.cpp b/plugins/StereoControl/StereoControl.cpp index f4614b85262..b7e9f7d4fe4 100755 --- a/plugins/StereoControl/StereoControl.cpp +++ b/plugins/StereoControl/StereoControl.cpp @@ -53,27 +53,13 @@ StereoControlEffect::StereoControlEffect(Model* parent, const Descriptor::SubPlu Effect(&stereocontrol_plugin_descriptor, parent, key), m_stereocontrolControls(this) { - m_sampleRate = Engine::mixer()->processingSampleRate(); - - m_delayBufSize = int(m_sampleRate / 160.f) + 1.f; - m_delayBuf[0].resize(m_delayBufSize); - m_delayBuf[1].resize(m_delayBufSize); - - m_haasBufSize = int(m_sampleRate * 0.002f) + 1.f; - m_haasBuf[0].resize(m_haasBufSize); - m_haasBuf[1].resize(m_haasBufSize); -} - + changeSampleRate(); - - -StereoControlEffect::~StereoControlEffect() -{ + connect(Engine::mixer(), SIGNAL(sampleRateChanged()), this, SLOT(changeSampleRate())); } - bool StereoControlEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) { if(!isEnabled() || !isRunning ()) @@ -91,7 +77,7 @@ bool StereoControlEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frame const ValueBuffer * panModeBuf = m_stereocontrolControls.m_panModeModel.valueBuffer(); const ValueBuffer * panBuf = m_stereocontrolControls.m_panModel.valueBuffer(); const ValueBuffer * monoBuf = m_stereocontrolControls.m_monoModel.valueBuffer(); - const ValueBuffer * dcBuf = m_stereocontrolControls.m_dcModel.valueBuffer(); + const ValueBuffer * dcRemovalBuf = m_stereocontrolControls.m_dcRemovalModel.valueBuffer(); const ValueBuffer * muteBuf = m_stereocontrolControls.m_muteModel.valueBuffer(); const ValueBuffer * monoBassBuf = m_stereocontrolControls.m_monoBassModel.valueBuffer(); const ValueBuffer * auditionBuf = m_stereocontrolControls.m_auditionModel.valueBuffer(); @@ -114,7 +100,7 @@ bool StereoControlEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frame const int panMode = panModeBuf ? panModeBuf->value(f) : m_stereocontrolControls.m_panModeModel.value(); const float pan = (panBuf ? panBuf->value(f) : m_stereocontrolControls.m_panModel.value()) * 0.01f; const bool mono = monoBuf ? monoBuf->value(f) : m_stereocontrolControls.m_monoModel.value(); - const bool dc = dcBuf ? dcBuf->value(f) : m_stereocontrolControls.m_dcModel.value(); + const bool dcRemoval = dcRemovalBuf ? dcRemovalBuf->value(f) : m_stereocontrolControls.m_dcRemovalModel.value(); const bool mute = muteBuf ? muteBuf->value(f) : m_stereocontrolControls.m_muteModel.value(); const bool monoBass = monoBassBuf ? monoBassBuf->value(f) : m_stereocontrolControls.m_monoBassModel.value(); const bool audition = auditionBuf ? auditionBuf->value(f) : m_stereocontrolControls.m_auditionModel.value(); @@ -369,12 +355,12 @@ bool StereoControlEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frame } } - if (dc) + if (dcRemoval) { for (int i = 0; i < 2; ++i) { - m_dcInfo[i] = m_dcInfo[i] * 0.999f + s[i] * 0.001f; - s[i] -= m_dcInfo[i]; + m_dcRemovalInfo[i] = m_dcRemovalInfo[i] * (1.f - m_dcCoeff) + s[i] * m_dcCoeff; + s[i] -= m_dcRemovalInfo[i]; } } @@ -423,8 +409,23 @@ void StereoControlEffect::multimodeFilter(sample_t in, float g, sample_t &lp, sa float StereoControlEffect::multimodeCoeff(float freq) { - const float g = tan(F_PI * freq / m_sampleRate); - return g / (1.f + g); + const float g = 1.f / (1.f + 1.f / tan(F_PI * freq / m_sampleRate)); + return g; +} + +void StereoControlEffect::changeSampleRate() +{ + m_sampleRate = Engine::mixer()->processingSampleRate(); + + m_dcCoeff = 44.1f / m_sampleRate; + + m_delayBufSize = int(m_sampleRate / 160.f) + 1.f; + m_delayBuf[0].resize(m_delayBufSize); + m_delayBuf[1].resize(m_delayBufSize); + + m_haasBufSize = int(m_sampleRate * 0.002f) + 1.f; + m_haasBuf[0].resize(m_haasBufSize); + m_haasBuf[1].resize(m_haasBufSize); } diff --git a/plugins/StereoControl/StereoControl.h b/plugins/StereoControl/StereoControl.h index 3e6694bb8ca..71fefb421d2 100755 --- a/plugins/StereoControl/StereoControl.h +++ b/plugins/StereoControl/StereoControl.h @@ -26,15 +26,15 @@ #ifndef STEREOCONTROL_H #define STEREOCONTROL_H -#include "Effect.h" #include "StereoControlControls.h" + +#include "Effect.h" #include "ValueBuffer.h" class StereoControlEffect : public Effect { public: StereoControlEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key); - ~StereoControlEffect() override; bool processAudioBuffer(sampleFrame* buf, const fpp_t frames) override; EffectControls* controls() override @@ -42,6 +42,9 @@ class StereoControlEffect : public Effect return &m_stereocontrolControls; } +private slots: + void changeSampleRate(); + private: inline sample_t calcAllpassFilter(sample_t inSamp, sample_rate_t Fs, int filtNum, int channel, float a, float b); inline void multimodeFilter(sample_t in, float g, sample_t &lp, sample_t &hp, sample_t &filtBuf); @@ -63,15 +66,13 @@ class StereoControlEffect : public Effect float m_sampleRate = 0; - float m_dcInfo[2] = {0}; + float m_dcCoeff; + float m_dcRemovalInfo[2] = {0}; float m_monoBassFilter[2][2] = {{0}}; float m_stereoizerFilter[2][2] = {{0}}; float m_haasSpectralPanFilter[2] = {0}; - - friend class StereoControlControls; - }; -#endif +#endif diff --git a/plugins/StereoControl/StereoControlControlDialog.cpp b/plugins/StereoControl/StereoControlControlDialog.cpp index 67586f077a9..e3d5a10ed0f 100755 --- a/plugins/StereoControl/StereoControlControlDialog.cpp +++ b/plugins/StereoControl/StereoControlControlDialog.cpp @@ -22,11 +22,11 @@ * */ -#include - #include "StereoControlControlDialog.h" #include "StereoControlControls.h" +#include + #include "embed.h" #include "gui_templates.h" #include "ToolTip.h" @@ -145,13 +145,13 @@ StereoControlControlDialog::StereoControlControlDialog(StereoControlControls* co m_monoButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("mono_unsel")); ToolTip::add(m_monoButton, tr("Converts input to mono")); - m_dcButton = new PixmapButton(this, tr("DC Offset Removal")); - m_dcButton->move(55, 146); - m_dcButton->setModel(&m_controls->m_dcModel); - m_dcButton->setCheckable(true); - m_dcButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dc_sel")); - m_dcButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dc_unsel")); - ToolTip::add(m_dcButton, tr("Removes DC offset from the signal")); + m_dcRemovalButton = new PixmapButton(this, tr("DC Offset Removal")); + m_dcRemovalButton->move(55, 146); + m_dcRemovalButton->setModel(&m_controls->m_dcRemovalModel); + m_dcRemovalButton->setCheckable(true); + m_dcRemovalButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("dc_sel")); + m_dcRemovalButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("dc_unsel")); + ToolTip::add(m_dcRemovalButton, tr("Removes DC offset from the signal")); m_muteButton = new PixmapButton(this, tr("Mute")); m_muteButton->move(11, 181); @@ -198,7 +198,7 @@ StereoControlControlDialog::StereoControlControlDialog(StereoControlControls* co ToolTip::add(m_soloChannelBox, tr("Solo a single channel")); connect(&m_controls->m_panModeModel, SIGNAL(dataChanged()), this, SLOT(updateKnobVisibility())); - emit updateKnobVisibility(); + updateKnobVisibility(); } diff --git a/plugins/StereoControl/StereoControlControlDialog.h b/plugins/StereoControl/StereoControlControlDialog.h index 52f4ff23da7..9017d59ba98 100755 --- a/plugins/StereoControl/StereoControlControlDialog.h +++ b/plugins/StereoControl/StereoControlControlDialog.h @@ -25,9 +25,8 @@ #ifndef STEREOCONTROL_CONTROL_DIALOG_H #define STEREOCONTROL_CONTROL_DIALOG_H -#include "EffectControlDialog.h" - #include "ComboBox.h" +#include "EffectControlDialog.h" #include "LedCheckbox.h" #include "Knob.h" #include "PixmapButton.h" @@ -41,9 +40,6 @@ class StereoControlControlDialog : public EffectControlDialog Q_OBJECT public: StereoControlControlDialog(StereoControlControls* controls); - ~StereoControlControlDialog() override - { - } private: StereoControlControls * m_controls; @@ -64,7 +60,7 @@ class StereoControlControlDialog : public EffectControlDialog PixmapButton * m_haasButton; automatableButtonGroup * m_panModeGroup; PixmapButton * m_monoButton; - PixmapButton * m_dcButton; + PixmapButton * m_dcRemovalButton; PixmapButton * m_muteButton; LedCheckBox * m_monoBassButton; PixmapButton * m_auditionButton; diff --git a/plugins/StereoControl/StereoControlControls.cpp b/plugins/StereoControl/StereoControlControls.cpp index 092d7fb2dd8..a82b3808534 100755 --- a/plugins/StereoControl/StereoControlControls.cpp +++ b/plugins/StereoControl/StereoControlControls.cpp @@ -23,17 +23,17 @@ */ +#include "StereoControlControls.h" +#include "StereoControl.h" + #include #include "Engine.h" #include "Song.h" -#include "StereoControlControls.h" -#include "StereoControl.h" StereoControlControls::StereoControlControls(StereoControlEffect* effect) : EffectControls(effect), - m_effect(effect), m_gainModel(0.0f, -54.0f, 54.0f, 0.01f, this, tr("gain")), m_stereoizerModel(0.0f, 0.0f, 200.0f, 0.01f, this, tr("Stereoize")), m_widthModel(100.0f, 0.0f, 200.0f, 0.01f, this, tr("Width")), @@ -48,7 +48,7 @@ StereoControlControls::StereoControlControls(StereoControlEffect* effect) : m_panModeModel(0, 0, 2, this, tr("Panning Mode")), m_soloChannelModel(this, tr("Solo Channel")), m_monoModel(false, this, tr("Mono")), - m_dcModel(false, this, tr("DC Offset Removal")), + m_dcRemovalModel(false, this, tr("DC Offset Removal")), m_muteModel(false, this, tr("Mute")), m_monoBassModel(false, this, tr("Mono Bass")), m_auditionModel(false, this, tr("Mono Bass Audition")), @@ -65,54 +65,54 @@ StereoControlControls::StereoControlControls(StereoControlEffect* effect) : } -void StereoControlControls::saveSettings(QDomDocument& doc, QDomElement& _this) +void StereoControlControls::saveSettings(QDomDocument& doc, QDomElement& elem) { - m_gainModel.saveSettings(doc, _this, "gain"); - m_stereoizerModel.saveSettings(doc, _this, "stereoizer"); - m_widthModel.saveSettings(doc, _this, "width"); - m_panModel.saveSettings(doc, _this, "pan"); - m_panModeModel.saveSettings(doc, _this, "panMode"); - m_monoModel.saveSettings(doc, _this, "mono"); - m_dcModel.saveSettings(doc, _this, "dc"); - m_muteModel.saveSettings(doc, _this, "mute"); - m_monoBassModel.saveSettings(doc, _this, "monoBass"); - m_auditionModel.saveSettings(doc, _this, "audition"); - m_invertLModel.saveSettings(doc, _this, "invertL"); - m_invertRModel.saveSettings(doc, _this, "invertR"); - m_soloChannelModel.saveSettings(doc, _this, "soloChannel"); - m_monoBassFreqModel.saveSettings(doc, _this, "monoBassFreq"); - m_stereoizerLPModel.saveSettings(doc, _this, "stereoizerLP"); - m_stereoizerHPModel.saveSettings(doc, _this, "stereoizerHP"); - m_panSpectralModel.saveSettings(doc, _this, "panSpectral"); - m_panDelayModel.saveSettings(doc, _this, "panDelay"); - m_panDualLModel.saveSettings(doc, _this, "panDualL"); - m_panDualRModel.saveSettings(doc, _this, "panDualR"); + m_gainModel.saveSettings(doc, elem, "gain"); + m_stereoizerModel.saveSettings(doc, elem, "stereoizer"); + m_widthModel.saveSettings(doc, elem, "width"); + m_panModel.saveSettings(doc, elem, "pan"); + m_panModeModel.saveSettings(doc, elem, "panMode"); + m_monoModel.saveSettings(doc, elem, "mono"); + m_dcRemovalModel.saveSettings(doc, elem, "dcRemoval"); + m_muteModel.saveSettings(doc, elem, "mute"); + m_monoBassModel.saveSettings(doc, elem, "monoBass"); + m_auditionModel.saveSettings(doc, elem, "audition"); + m_invertLModel.saveSettings(doc, elem, "invertL"); + m_invertRModel.saveSettings(doc, elem, "invertR"); + m_soloChannelModel.saveSettings(doc, elem, "soloChannel"); + m_monoBassFreqModel.saveSettings(doc, elem, "monoBassFreq"); + m_stereoizerLPModel.saveSettings(doc, elem, "stereoizerLP"); + m_stereoizerHPModel.saveSettings(doc, elem, "stereoizerHP"); + m_panSpectralModel.saveSettings(doc, elem, "panSpectral"); + m_panDelayModel.saveSettings(doc, elem, "panDelay"); + m_panDualLModel.saveSettings(doc, elem, "panDualL"); + m_panDualRModel.saveSettings(doc, elem, "panDualR"); } -void StereoControlControls::loadSettings(const QDomElement& _this) +void StereoControlControls::loadSettings(const QDomElement& elem) { - m_gainModel.loadSettings(_this, "gain"); - m_stereoizerModel.loadSettings(_this, "stereoizer"); - m_widthModel.loadSettings(_this, "width"); - m_panModel.loadSettings(_this, "pan"); - m_panModeModel.loadSettings(_this, "panMode"); - m_monoModel.loadSettings(_this, "mono"); - m_dcModel.loadSettings(_this, "dc"); - m_muteModel.loadSettings(_this, "mute"); - m_monoBassModel.loadSettings(_this, "monoBass"); - m_auditionModel.loadSettings(_this, "audition"); - m_invertLModel.loadSettings(_this, "invertL"); - m_invertRModel.loadSettings(_this, "invertR"); - m_soloChannelModel.loadSettings(_this, "soloChannel"); - m_monoBassFreqModel.loadSettings(_this, "monoBassFreq"); - m_stereoizerLPModel.loadSettings(_this, "stereoizerLP"); - m_stereoizerHPModel.loadSettings(_this, "stereoizerHP"); - m_panSpectralModel.loadSettings(_this, "panSpectral"); - m_panDelayModel.loadSettings(_this, "panDelay"); - m_panDualLModel.loadSettings(_this, "panDualL"); - m_panDualRModel.loadSettings(_this, "panDualR"); + m_gainModel.loadSettings(elem, "gain"); + m_stereoizerModel.loadSettings(elem, "stereoizer"); + m_widthModel.loadSettings(elem, "width"); + m_panModel.loadSettings(elem, "pan"); + m_panModeModel.loadSettings(elem, "panMode"); + m_monoModel.loadSettings(elem, "mono"); + m_dcRemovalModel.loadSettings(elem, "dcRemoval"); + m_muteModel.loadSettings(elem, "mute"); + m_monoBassModel.loadSettings(elem, "monoBass"); + m_auditionModel.loadSettings(elem, "audition"); + m_invertLModel.loadSettings(elem, "invertL"); + m_invertRModel.loadSettings(elem, "invertR"); + m_soloChannelModel.loadSettings(elem, "soloChannel"); + m_monoBassFreqModel.loadSettings(elem, "monoBassFreq"); + m_stereoizerLPModel.loadSettings(elem, "stereoizerLP"); + m_stereoizerHPModel.loadSettings(elem, "stereoizerHP"); + m_panSpectralModel.loadSettings(elem, "panSpectral"); + m_panDelayModel.loadSettings(elem, "panDelay"); + m_panDualLModel.loadSettings(elem, "panDualL"); + m_panDualRModel.loadSettings(elem, "panDualR"); } diff --git a/plugins/StereoControl/StereoControlControls.h b/plugins/StereoControl/StereoControlControls.h index df4372ae392..373e1b03e76 100755 --- a/plugins/StereoControl/StereoControlControls.h +++ b/plugins/StereoControl/StereoControlControls.h @@ -39,12 +39,9 @@ class StereoControlControls : public EffectControls Q_OBJECT public: StereoControlControls(StereoControlEffect* effect); - ~StereoControlControls() override - { - } - void saveSettings(QDomDocument & _doc, QDomElement & _parent) override; - void loadSettings(const QDomElement & _this); + void saveSettings(QDomDocument & doc, QDomElement & elem) override; + void loadSettings(const QDomElement & elem); inline QString nodeName() const override { return "StereoControlControls"; @@ -61,8 +58,6 @@ class StereoControlControls : public EffectControls } private: - StereoControlEffect* m_effect; - FloatModel m_gainModel; FloatModel m_stereoizerModel; FloatModel m_widthModel; @@ -79,7 +74,7 @@ class StereoControlControls : public EffectControls ComboBoxModel m_soloChannelModel; BoolModel m_monoModel; - BoolModel m_dcModel; + BoolModel m_dcRemovalModel; BoolModel m_muteModel; BoolModel m_monoBassModel; BoolModel m_auditionModel; From f5f545aa181a2659136610fb0bf9929e3eef8a9f Mon Sep 17 00:00:00 2001 From: Lost Robot <34612565+DouglasDGI@users.noreply.github.com> Date: Tue, 29 Dec 2020 20:43:48 -0700 Subject: [PATCH 4/7] h Co-authored-by: Hyunjin Song --- plugins/StereoControl/StereoControl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/StereoControl/StereoControl.h b/plugins/StereoControl/StereoControl.h index 71fefb421d2..eede97de5b9 100755 --- a/plugins/StereoControl/StereoControl.h +++ b/plugins/StereoControl/StereoControl.h @@ -75,4 +75,4 @@ private slots: float m_haasSpectralPanFilter[2] = {0}; }; -#endif +#endif From 1fe44887a657fc6c26ad64a39ccbae860a8e3eb8 Mon Sep 17 00:00:00 2001 From: Robert Daniel Black Date: Tue, 29 Dec 2020 20:45:44 -0700 Subject: [PATCH 5/7] h --- plugins/StereoControl/StereoControl.h | 2 +- plugins/StereoControl/StereoControlControlDialog.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/StereoControl/StereoControl.h b/plugins/StereoControl/StereoControl.h index 71fefb421d2..eede97de5b9 100755 --- a/plugins/StereoControl/StereoControl.h +++ b/plugins/StereoControl/StereoControl.h @@ -75,4 +75,4 @@ private slots: float m_haasSpectralPanFilter[2] = {0}; }; -#endif +#endif diff --git a/plugins/StereoControl/StereoControlControlDialog.h b/plugins/StereoControl/StereoControlControlDialog.h index 9017d59ba98..72ba8837d80 100755 --- a/plugins/StereoControl/StereoControlControlDialog.h +++ b/plugins/StereoControl/StereoControlControlDialog.h @@ -71,6 +71,6 @@ class StereoControlControlDialog : public EffectControlDialog private slots: void updateKnobVisibility(); -} ; +}; #endif From b5d662746e39b229630e7ad5822ab82d670ba077 Mon Sep 17 00:00:00 2001 From: Robert Daniel Black Date: Fri, 15 Jan 2021 10:57:45 -0700 Subject: [PATCH 6/7] Why do ducks wear jackets? --- plugins/StereoControl/StereoControl.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/StereoControl/StereoControl.cpp b/plugins/StereoControl/StereoControl.cpp index b7e9f7d4fe4..badae21f65b 100755 --- a/plugins/StereoControl/StereoControl.cpp +++ b/plugins/StereoControl/StereoControl.cpp @@ -36,7 +36,7 @@ Plugin::Descriptor PLUGIN_EXPORT stereocontrol_plugin_descriptor = { STRINGIFY(PLUGIN_NAME), "Stereo Control", - QT_TRANSLATE_NOOP("pluginBrowser", "General utility and stereo processing, including multiple types of panning and stereo enhancement."), + QT_TRANSLATE_NOOP("PluginBrowser", "General utility and stereo processing, including multiple types of panning and stereo enhancement."), "Lost Robot ", 0x0100, Plugin::Effect, @@ -281,11 +281,11 @@ bool StereoControlEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frame if (pan >= 0) { - haasDelayVal[0] = linearInterpolate(0, 0.0008f * m_sampleRate * panDelay, abs(pan)); + haasDelayVal[0] = 0.0008f * m_sampleRate * panDelay * asin(pan); } else { - haasDelayVal[1] = linearInterpolate(0, 0.0008f * m_sampleRate * panDelay, abs(pan)); + haasDelayVal[1] = 0.0008f * m_sampleRate * panDelay * asin(-pan); } for (int i = 0; i < 2; ++i) @@ -337,7 +337,8 @@ bool StereoControlEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frame float lp; float hp; - // Filter parameters are semi-arbitrary, but are vaguely based on some random graphs I saw during research + // Filter parameters are semi-arbitrary, but are vaguely based on some random graphs I found here: + // https://goodhertz.co/panpot/ float temp = -abs(pan) + 1.f; float filtFreq = 2000.f + 8000.f * temp * temp; float hpGain = abs(pan) < 0.5 ? 1.f - abs(pan) * 2.f : 0.f; @@ -423,7 +424,7 @@ void StereoControlEffect::changeSampleRate() m_delayBuf[0].resize(m_delayBufSize); m_delayBuf[1].resize(m_delayBufSize); - m_haasBufSize = int(m_sampleRate * 0.002f) + 1.f; + m_haasBufSize = int(m_sampleRate * 0.0008f * F_PI) + 1.f; m_haasBuf[0].resize(m_haasBufSize); m_haasBuf[1].resize(m_haasBufSize); } From 5d8cbb004ac8e92aa15017aa3157464fed6e0497 Mon Sep 17 00:00:00 2001 From: Robert Daniel Black Date: Sat, 23 Jan 2021 17:20:01 -0700 Subject: [PATCH 7/7] How much water do you need to add to an egg before it will no longer cook --- plugins/StereoControl/StereoControlControls.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/StereoControl/StereoControlControls.cpp b/plugins/StereoControl/StereoControlControls.cpp index a82b3808534..01c33ee31c8 100755 --- a/plugins/StereoControl/StereoControlControls.cpp +++ b/plugins/StereoControl/StereoControlControls.cpp @@ -67,8 +67,8 @@ StereoControlControls::StereoControlControls(StereoControlEffect* effect) : void StereoControlControls::saveSettings(QDomDocument& doc, QDomElement& elem) { - m_gainModel.saveSettings(doc, elem, "gain"); - m_stereoizerModel.saveSettings(doc, elem, "stereoizer"); + m_gainModel.saveSettings(doc, elem, "gain"); + m_stereoizerModel.saveSettings(doc, elem, "stereoizer"); m_widthModel.saveSettings(doc, elem, "width"); m_panModel.saveSettings(doc, elem, "pan"); m_panModeModel.saveSettings(doc, elem, "panMode");