From 65fed2d32d5a48087745c17195d09689b27b4d4a Mon Sep 17 00:00:00 2001 From: Lily Date: Mon, 17 Jun 2024 21:03:47 -0500 Subject: [PATCH 01/22] Add Granular Pitch Shifter effect --- cmake/modules/PluginList.cmake | 1 + plugins/GranularPitchShifter/CMakeLists.txt | 3 + .../GranularPitchShifter.cpp | 273 ++++++++++++++++++ .../GranularPitchShifter.h | 168 +++++++++++ .../GranularPitchShifterControlDialog.cpp | 158 ++++++++++ .../GranularPitchShifterControlDialog.h | 78 +++++ .../GranularPitchShifterControls.cpp | 159 ++++++++++ .../GranularPitchShifterControls.h | 89 ++++++ plugins/GranularPitchShifter/artwork.png | Bin 0 -> 54230 bytes plugins/GranularPitchShifter/help_active.png | Bin 0 -> 5486 bytes .../GranularPitchShifter/help_inactive.png | Bin 0 -> 5448 bytes plugins/GranularPitchShifter/logo.png | Bin 0 -> 774 bytes .../GranularPitchShifter/prefilter_active.png | Bin 0 -> 805 bytes .../prefilter_inactive.png | Bin 0 -> 890 bytes 14 files changed, 929 insertions(+) create mode 100755 plugins/GranularPitchShifter/CMakeLists.txt create mode 100755 plugins/GranularPitchShifter/GranularPitchShifter.cpp create mode 100755 plugins/GranularPitchShifter/GranularPitchShifter.h create mode 100755 plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp create mode 100755 plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h create mode 100755 plugins/GranularPitchShifter/GranularPitchShifterControls.cpp create mode 100755 plugins/GranularPitchShifter/GranularPitchShifterControls.h create mode 100755 plugins/GranularPitchShifter/artwork.png create mode 100755 plugins/GranularPitchShifter/help_active.png create mode 100644 plugins/GranularPitchShifter/help_inactive.png create mode 100755 plugins/GranularPitchShifter/logo.png create mode 100755 plugins/GranularPitchShifter/prefilter_active.png create mode 100755 plugins/GranularPitchShifter/prefilter_inactive.png diff --git a/cmake/modules/PluginList.cmake b/cmake/modules/PluginList.cmake index 8b26d4ed530..009679533ae 100644 --- a/cmake/modules/PluginList.cmake +++ b/cmake/modules/PluginList.cmake @@ -38,6 +38,7 @@ SET(LMMS_PLUGIN_LIST DynamicsProcessor Eq Flanger + GranularPitchShifter HydrogenImport LadspaBrowser LadspaEffect diff --git a/plugins/GranularPitchShifter/CMakeLists.txt b/plugins/GranularPitchShifter/CMakeLists.txt new file mode 100755 index 00000000000..e5a15a65ed4 --- /dev/null +++ b/plugins/GranularPitchShifter/CMakeLists.txt @@ -0,0 +1,3 @@ +INCLUDE(BuildPlugin) + +BUILD_PLUGIN(granularpitchshifter GranularPitchShifter.cpp GranularPitchShifterControls.cpp GranularPitchShifterControlDialog.cpp MOCFILES GranularPitchShifterControls.h GranularPitchShifterControlDialog.h EMBEDDED_RESOURCES *.png) diff --git a/plugins/GranularPitchShifter/GranularPitchShifter.cpp b/plugins/GranularPitchShifter/GranularPitchShifter.cpp new file mode 100755 index 00000000000..2ac4cfa29e0 --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifter.cpp @@ -0,0 +1,273 @@ +/* + * GranularPitchShifter.cpp + * + * Copyright (c) 2024 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 "GranularPitchShifter.h" + +#include +#include "embed.h" +#include "plugin_export.h" + + +namespace lmms +{ + +extern "C" +{ + +Plugin::Descriptor PLUGIN_EXPORT granularpitchshifter_plugin_descriptor = +{ + LMMS_STRINGIFY(PLUGIN_NAME), + "Granular Pitch Shifter", + QT_TRANSLATE_NOOP("PluginBrowser", "Granular pitch shifter"), + "Lost Robot ", + 0x0100, + Plugin::Type::Effect, + new PluginPixmapLoader("logo"), + nullptr, + nullptr, +} ; + +} + + +GranularPitchShifterEffect::GranularPitchShifterEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key) : + Effect(&granularpitchshifter_plugin_descriptor, parent, key), + m_granularpitchshifterControls(this), + m_prefilter({PrefilterLowpass(), PrefilterLowpass()}) +{ + autoQuitModel()->setValue(autoQuitModel()->maxValue()); + + changeSampleRate(); +} + + +bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) +{ + if (!isEnabled() || !isRunning()) { return false; } + + const float d = dryLevel(); + const float w = wetLevel(); + + const ValueBuffer * pitchBuf = m_granularpitchshifterControls.m_pitchModel.valueBuffer(); + const ValueBuffer * pitchSpreadBuf = m_granularpitchshifterControls.m_pitchSpreadModel.valueBuffer(); + + const float size = m_granularpitchshifterControls.m_sizeModel.value(); + const float shape = m_granularpitchshifterControls.m_shapeModel.value(); + const float jitter = m_granularpitchshifterControls.m_jitterModel.value(); + const float twitch = m_granularpitchshifterControls.m_twitchModel.value(); + const float spray = m_granularpitchshifterControls.m_sprayModel.value(); + const float spraySpread = m_granularpitchshifterControls.m_spraySpreadModel.value(); + const float density = m_granularpitchshifterControls.m_densityModel.value(); + const float glide = m_granularpitchshifterControls.m_glideModel.value(); + const int minLatency = m_granularpitchshifterControls.m_minLatencyModel.value() * m_sampleRate; + const float densityInvRoot = std::sqrt(1.f / density); + const float feedback = m_granularpitchshifterControls.m_feedbackModel.value() * densityInvRoot; + const float fadeLength = 1.f / m_granularpitchshifterControls.m_fadeLengthModel.value(); + const bool prefilter = m_granularpitchshifterControls.m_prefilterModel.value(); + + if (glide != m_oldGlide) + { + m_oldGlide = glide; + m_glideCoef = std::exp(-1 / (glide * m_sampleRate)); + } + + const float shapeK = cosWindowApproxK(shape); + const int sizeSamples = static_cast((m_sampleRate / size) * 0.5) * 2; + const float waitMult = sizeSamples / (density * 2); + + for (fpp_t f = 0; f < frames; ++f) + { + const double pitch = pitchBuf ? pitchBuf->value(f) : m_granularpitchshifterControls.m_pitchModel.value(); + const double pitchSpread = (pitchSpreadBuf ? pitchSpreadBuf->value(f) : m_granularpitchshifterControls.m_pitchSpreadModel.value()) * 0.5f; + + // interpolate pitch depending on glide + for (int i = 0; i < 2; ++i) + { + double targetVal = pitch + pitchSpread * (i ? 1. : -1.); + + if (targetVal == m_truePitch[i]) { continue; } + m_updatePitches = true; + + m_truePitch[i] = m_glideCoef * m_truePitch[i] + (1. - m_glideCoef) * targetVal; + // we crudely lock the pitch to the target value once it gets close enough, so we can save on CPU + if (std::abs(targetVal - m_truePitch[i]) < GPS_GLIDE_SNAG_RADIUS) { m_truePitch[i] = targetVal; } + } + + // this stuff is computationally expensive, so we should only do it when necessary + if (m_updatePitches) + { + m_updatePitches = false; + + const double speed[2] = {std::exp2(m_truePitch[0] * (1. / 12.)), std::exp2(m_truePitch[1] * (1. / 12.))}; + std::array ratio = {speed[0] / m_speed[0], speed[1] / m_speed[1]}; + + for (int i = 0; i < m_grainCount; ++i) + { + for (int j = 0; j < 2; ++j) + { + m_grains[i].m_grainSpeed[j] *= ratio[j]; + + // we unfortunately need to do extra stuff to ensure these don't shoot past the write index... + if (m_grains[i].m_grainSpeed[j] > 1) + { + double distance = m_writePoint - m_grains[i].m_readPoint[j] - GPS_SAFETY_LATENCY; + if (distance <= 0) { distance += m_ringBufLength; } + double grainSpeedRequired = ((m_grains[i].m_grainSpeed[j] - 1.) / distance) * (1. - m_grains[i].m_phase); + m_grains[i].m_phaseSpeed[j] = std::max(m_grains[i].m_phaseSpeed[j], grainSpeedRequired); + } + } + } + m_speed[0] = speed[0]; + m_speed[1] = speed[1]; + + // prevent aliasing by lowpassing frequencies that the pitch shifting would push above nyquist + m_prefilter[0].setCoefs(m_sampleRate, std::min(m_nyquist / static_cast(speed[0]), m_nyquist) * GPS_PREFILTER_BW); + m_prefilter[1].setCoefs(m_sampleRate, std::min(m_nyquist / static_cast(speed[1]), m_nyquist) * GPS_PREFILTER_BW); + } + + std::array s = {0, 0}; + std::array filtered = {buf[f][0], buf[f][1]}; + + // spawn a new grain if it's time + if (++m_timeSinceLastGrain >= m_nextWaitRandomization * waitMult) + { + m_timeSinceLastGrain = 0; + double randThing = (fast_rand()/static_cast(FAST_RAND_MAX) * 2. - 1.); + m_nextWaitRandomization = std::exp2(randThing * twitch); + double grainSpeed = 1. / std::exp2(randThing * jitter); + + std::array sprayResult = {0, 0}; + if (spray > 0) + { + sprayResult[0] = (fast_rand() / static_cast(FAST_RAND_MAX)) * spray * m_sampleRate; + sprayResult[1] = linearInterpolate(sprayResult[0], + (fast_rand() / static_cast(FAST_RAND_MAX)) * spray * m_sampleRate, + spraySpread); + } + + std::array readPoint; + int latency = std::max(int(std::max(sizeSamples * (std::max(m_speed[0], m_speed[1]) * grainSpeed - 1.), 0.) + GPS_SAFETY_LATENCY), minLatency); + for (int i = 0; i < 2; ++i) + { + readPoint[i] = m_writePoint - latency - sprayResult[i]; + if (readPoint[i] < 0) {readPoint[i] += m_ringBufLength;} + } + const double phaseInc = 1. / sizeSamples; + m_grains.push_back(GranularPitchShifterGrain(grainSpeed * m_speed[0], grainSpeed * m_speed[1], phaseInc, phaseInc, readPoint[0], readPoint[1])); + ++m_grainCount; + } + + for (int i = 0; i < m_grainCount; ++i) + { + m_grains[i].m_phase += std::max(m_grains[i].m_phaseSpeed[0], m_grains[i].m_phaseSpeed[1]); + if (m_grains[i].m_phase >= 1) + { + // grain is done, delete it + std::swap(m_grains[i], m_grains[m_grainCount-1]); + m_grains.pop_back(); + --i; + --m_grainCount; + continue; + } + + m_grains[i].m_readPoint[0] += m_grains[i].m_grainSpeed[0]; + m_grains[i].m_readPoint[1] += m_grains[i].m_grainSpeed[1]; + if (m_grains[i].m_readPoint[0] >= m_ringBufLength) { m_grains[i].m_readPoint[0] -= m_ringBufLength; } + if (m_grains[i].m_readPoint[1] >= m_ringBufLength) { m_grains[i].m_readPoint[1] -= m_ringBufLength; } + + const float fadePos = std::clamp((-std::fabs(-2.f * static_cast(m_grains[i].m_phase) + 1.f) + 0.5f) * fadeLength + 0.5f, 0.f, 1.f); + const float windowVal = cosHalfWindowApprox(fadePos, shapeK); + s[0] += getHermiteSample(m_grains[i].m_readPoint[0], 0) * windowVal; + s[1] += getHermiteSample(m_grains[i].m_readPoint[1], 1) * windowVal; + } + + // note that adding two signals together, when uncorrelated, results in a signal power multiplication of sqrt(2), not 2 + s[0] *= densityInvRoot; + s[1] *= densityInvRoot; + + if (++m_writePoint >= m_ringBufLength) + { + m_writePoint = 0; + } + if (prefilter) + { + filtered[0] = m_prefilter[0].process(filtered[0]); + filtered[1] = m_prefilter[1].process(filtered[1]); + } + + m_ringBuf[m_writePoint][0] = filtered[0] + s[0] * feedback; + m_ringBuf[m_writePoint][1] = filtered[1] + s[1] * feedback; + + buf[f][0] = d * buf[f][0] + w * s[0]; + buf[f][1] = d * buf[f][1] + w * s[1]; + } + + if (m_sampleRateNeedsUpdate) + { + m_sampleRateNeedsUpdate = false; + changeSampleRate(); + } + + return isRunning(); +} + +void GranularPitchShifterEffect::changeSampleRate() +{ + const int range = m_granularpitchshifterControls.m_rangeModel.value(); + const float ringBufLength = GPS_RANGE_SECONDS[range]; + + m_sampleRate = Engine::audioEngine()->outputSampleRate(); + m_nyquist = m_sampleRate / 2; + + m_ringBufLength = m_sampleRate * ringBufLength; + m_ringBuf.resize(m_ringBufLength); + for (size_t i = 0; i < m_ringBufLength; ++i) + { + m_ringBuf[i][0] = 0; + m_ringBuf[i][1] = 0; + } + m_writePoint = 0; + + m_oldGlide = -1; + + m_updatePitches = true; + + m_grains.clear(); + m_grainCount = 0; + m_grains.reserve(8);// arbitrary +} + + +extern "C" +{ + +// necessary for getting instance out of shared lib +PLUGIN_EXPORT Plugin* lmms_plugin_main(Model* parent, void* data) +{ + return new GranularPitchShifterEffect(parent, static_cast(data)); +} + +} + +} // namespace lmms diff --git a/plugins/GranularPitchShifter/GranularPitchShifter.h b/plugins/GranularPitchShifter/GranularPitchShifter.h new file mode 100755 index 00000000000..1584b2e0c5f --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifter.h @@ -0,0 +1,168 @@ +/* + * GranularPitchShifter.h + * + * Copyright (c) 2024 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 GRANULARPITCHSHIFTER_H +#define GRANULARPITCHSHIFTER_H + +#include "Effect.h" +#include "GranularPitchShifterControls.h" + +#include "BasicFilters.h" +#include "interpolation.h" + +namespace lmms +{ + +constexpr float GPS_PREFILTER_BW = 0.96f;// 96% of nyquist +constexpr double GPS_GLIDE_SNAG_RADIUS = 0.001; +constexpr int GPS_SAFETY_LATENCY = 3; + +// adapted from signalsmith's crossfade approximation: +// https://signalsmith-audio.co.uk/writing/2021/cheap-energy-crossfade +inline float cosHalfWindowApprox(float x, float k) { + float A = x * (1 - x); + float B = A * (1 + k * A); + float C = (B + x); + return C * C; +} +// 1-2 fades between equal-gain and equal-power +inline float cosWindowApproxK(float p) { + return -6.0026608f + p * (6.8773512f - 1.5838104f * p); +} + +class PrefilterLowpass +{ +public: + inline void setCoefs(float sampleRate, float cutoff) + { + const float g = std::tan(M_PI * cutoff / sampleRate); + const float ginv = g / (1.0f + g * (g + 1.414213562)); + m_g1 = ginv; + m_g2 = 2.0f * (g + 1.414213562) * ginv; + m_g3 = g * ginv; + m_g4 = 2.0f * ginv; + } + + inline float process(float input) + { + const float v1z = m_v1; + const float v3 = input + m_v0z - 2.0f * m_v2; + m_v1 += m_g1 * v3 - m_g2 * v1z; + m_v2 += m_g3 * v3 + m_g4 * v1z; + m_v0z = input; + return m_v2; + } + +private: + float m_v0z = 0.0f, m_v1 = 0.0f, m_v2 = 0.0f; + float m_g1, m_g2, m_g3, m_g4; +}; + +class GranularPitchShifterGrain final { +public: + GranularPitchShifterGrain(double grainSpeedL, double grainSpeedR, double phaseSpeedL, double phaseSpeedR, double readPointL, double readPointR) : + m_readPoint({readPointL, readPointR}), + m_phaseSpeed({phaseSpeedL, phaseSpeedR}), + m_grainSpeed({grainSpeedL, grainSpeedR}), + m_phase(0) {} + std::array m_readPoint; + std::array m_phaseSpeed; + std::array m_grainSpeed; + double m_phase; +}; + +class GranularPitchShifterEffect : public Effect +{ +public: + GranularPitchShifterEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key); + ~GranularPitchShifterEffect() override = default; + bool processAudioBuffer(sampleFrame* buf, const fpp_t frames) override; + + EffectControls* controls() override + { + return &m_granularpitchshifterControls; + } + + // double index and fraction are required for good quality + inline float getHermiteSample(double index, int ch) { + const int index_floor = static_cast(index); + const double fraction = index - index_floor; + + float v0, v1, v2, v3; + + if (index_floor == 0) { + v0 = m_ringBuf[m_ringBuf.size() - 1][ch]; + } else { + v0 = m_ringBuf[index_floor - 1][ch]; + } + + v1 = m_ringBuf[index_floor][ch]; + + if(index_floor >= m_ringBuf.size() - 2) { + v2 = m_ringBuf[(index_floor + 1) % m_ringBuf.size()][ch]; + v3 = m_ringBuf[(index_floor + 2) % m_ringBuf.size()][ch]; + } else { + v2 = m_ringBuf[index_floor + 1][ch]; + v3 = m_ringBuf[index_floor + 2][ch]; + } + + return hermiteInterpolate(v0, v1, v2, v3, static_cast(fraction)); + } + + void sampleRateNeedsUpdate() { m_sampleRateNeedsUpdate = true; } + + void changeSampleRate(); + +private: + GranularPitchShifterControls m_granularpitchshifterControls; + + std::vector> m_ringBuf; + std::vector m_grains; + + std::array m_prefilter; + std::array m_speed = {1, 1}; + std::array m_truePitch = {0, 0}; + + float m_sampleRate; + float m_nyquist; + float m_nextWaitRandomization = 1; + + int m_ringBufLength = 0; + int m_writePoint = 0; + int m_grainCount = 0; + int m_timeSinceLastGrain = 0; + + double m_oldGlide = -1; + double m_glideCoef = 0; + + bool m_sampleRateNeedsUpdate = false; + bool m_updatePitches = true; + + friend class GranularPitchShifterControls; +}; + + +} // namespace lmms + +#endif diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp new file mode 100755 index 00000000000..515aa2985c6 --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp @@ -0,0 +1,158 @@ +/* + * GranularPitchShifterControlDialog.cpp + * + * Copyright (c) 2024 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 "GranularPitchShifterControlDialog.h" +#include "GranularPitchShifterControls.h" +#include "embed.h" +#include "LcdFloatSpinBox.h" +#include "Knob.h" +#include "GuiApplication.h" +#include "gui_templates.h" +#include "PixmapButton.h" + + +namespace lmms::gui +{ + +GranularPitchShifterControlDialog::GranularPitchShifterControlDialog(GranularPitchShifterControls* controls) : + EffectControlDialog(controls) +{ + setAutoFillBackground(true); + QPalette pal; + pal.setBrush(backgroundRole(), PLUGIN_NAME::getIconPixmap("artwork")); + setPalette(pal); + setFixedSize(295, 184); + + auto makeKnob = [this](KnobType style, int x, int y, const QString& hintText, const QString& unit, FloatModel* model) + { + Knob* newKnob = new Knob(style, this); + newKnob->move(x, y); + newKnob->setModel(model); + newKnob->setHintText(hintText, unit); + return newKnob; + }; + + makeKnob(KnobType::Bright26, 20, 81, tr("Grain Size:"), " Hz", &controls->m_sizeModel); + makeKnob(KnobType::Bright26, 110, 10, tr("Spray:"), " seconds", &controls->m_sprayModel); + makeKnob(KnobType::Bright26, 148, 10, tr("Jitter:"), " octaves", &controls->m_jitterModel); + makeKnob(KnobType::Bright26, 190, 10, tr("Twitch:"), " octaves", &controls->m_twitchModel); + makeKnob(KnobType::Bright26, 184, 63, tr("Spray Stereo Spread:"), "", &controls->m_spraySpreadModel); + makeKnob(KnobType::Bright26, 131, 116, tr("Grain Shape:"), "", &controls->m_shapeModel); + makeKnob(KnobType::Bright26, 184, 116, tr("Fade Length:"), "", &controls->m_fadeLengthModel); + makeKnob(KnobType::Bright26, 248, 48, tr("Feedback:"), "", &controls->m_feedbackModel); + makeKnob(KnobType::Bright26, 248, 95, tr("Minimum Allowed Latency:"), " seconds", &controls->m_minLatencyModel); + makeKnob(KnobType::Small17, 67, 162, tr("Density:"), "x", &controls->m_densityModel); + makeKnob(KnobType::Small17, 9, 162, tr("Glide:"), " seconds", &controls->m_glideModel); + + LcdFloatSpinBox* pitchBox = new LcdFloatSpinBox(3, 2, "11green", tr("Pitch"), this); + pitchBox->move(16, 44); + pitchBox->setModel(&controls->m_pitchModel); + pitchBox->setToolTip(tr("Pitch")); + pitchBox->setSeamless(true, true); + + LcdFloatSpinBox* pitchSpreadBox = new LcdFloatSpinBox(3, 2, "11green", tr("Pitch Stereo Spread"), this); + pitchSpreadBox->move(129, 69); + pitchSpreadBox->setModel(&controls->m_pitchSpreadModel); + pitchSpreadBox->setToolTip(tr("Pitch Stereo Spread")); + pitchSpreadBox->setSeamless(true, true); + + QPushButton button("Show Help", this); + connect(&button, &QPushButton::clicked, this, &GranularPitchShifterControlDialog::showHelpWindow); + + PixmapButton* m_helpBtn = new PixmapButton(this, nullptr); + m_helpBtn->move(272, 164); + m_helpBtn->setActiveGraphic(PLUGIN_NAME::getIconPixmap("help_active")); + m_helpBtn->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("help_inactive")); + m_helpBtn->setToolTip(tr("Open help window")); + connect(m_helpBtn, SIGNAL(clicked()), this, SLOT(showHelpWindow())); + + PixmapButton * prefilterButton = new PixmapButton(this, tr("Prefilter")); + prefilterButton->move(8, 139); + prefilterButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("prefilter_active")); + prefilterButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("prefilter_inactive")); + prefilterButton->setCheckable(true); + prefilterButton->setModel(&controls->m_prefilterModel); + prefilterButton->setToolTip(tr("Prefilter")); + + ComboBox* rangeBox = new ComboBox(this); + rangeBox->setGeometry(181, 160, 83, 22); + rangeBox->setModel(&controls->m_rangeModel); + controls->updateRange(); +} + +void GranularPitchShifterControlDialog::showHelpWindow() { + GranularPitchShifterHelpView::getInstance()->close(); + GranularPitchShifterHelpView::getInstance()->show(); +} + + +QString GranularPitchShifterHelpView::s_helpText= +"
" +"Granular Pitch Shifter

" +"Plugin by Lost Robot
" +"GUI by thismoon
" +"
" +"

Grain:

" +"Pitch - The amount of pitch shifting to perform, in 12EDO semitones.
" +"Size - The length of each grain, in Hz. By default, new grains will be created at double this rate.
In most cases, you'll want this to be set to higher frequencies when shifting the pitch upward, and vice-versa.
" +"

Random:

" +"Spray - The amount of randomization for the playback position of each grain, in seconds.
This does not change when the grain plays, but rather what audio the grain is pulling from.
For example, a value of 0.5 seconds will allow each grain to play back audio from up to half of a second ago.
It's oftentimes recommended to use at least a small amount of Spray, as this will break up the periodicity in the grains, which is usually the main artifact caused by a granular pitch shifter.
This will also make the grains uncorrelated with each other, guaranteeing that a grain Shape value of 2 will always be optimal.
" +"Jitter - The amount of randomization for the pitch of each grain, in octaves.
This does not impact how often grains are created.
" +"Twitch - The amount of randomization for how often new grains are created, in octaves.
Jitter and Twitch both use the same random numbers, so if they're at the same value, then the grain creation timings will be changed exactly proportionally to their change in pitch.
" +"

Stereo:

" +"Pitch - The total distance in pitch between both stereo channels, in 12EDO semitones.
Half of the amount of pitch shifting shown will be applied to the right channel, and the opposite to the left channel.
" +"Spray - The allowed distance between each channel's randomized position with the Spray feature in the Random category.
A value of 1 makes the Spray values in each channel entirely unlinked." +"

Shape:

" +"Shape - The shape of each grain's fades. In most cases, 2 is the optimal value, providing equal-power fades.
However, when the plugin is performing minimal pitch shifting and has most of its parameters at default, a value of 1 may be more optimal, providing equal-gain fades.
All fades are designed for 50\% grain overlap.
" +"Fade - The length of the grain fades. A value of 1 provides the cleanest fades, causing those fades to reach across the entire grain.
Values below 1 make the fade artifacts more audible, but those fades will only apply to the outer edges of each grain.
A value of 0 will result in clicking sounds due to the fades no longer being present.
" +"

Delay:

" +"Feedback - The amount of feedback for the pitch shifter.
This feeds a portion of the pitch shifter output back into the input buffer. Large values can be dangerous.
" +"Latency - The minimum amount of latency the pitch shifter will have.
This granular pitch shifter dynamically changes its latency to be at the minimum possible amount depending on your settings.
If you'd like for this latency to be more predictable, you may increase the value of this parameter until the latency no longer changes.
This parameter may also be used to be set the minimum amount of delay for the feedback.
A larger latency amount can remove subtle fluttering artifacts that may result from automating the pitch shifting amount at high speeds." +"

Miscellaneous:

" +"Prefilter - Enables a 24 dB lowpass filter prior to the pitch shifting which automatically adjusts its cutoff to drastically reduce any resulting aliasing.
" +"Density - The multiplier for how often grains are spawned.
This will increase the grain overlap above 50%.
It will create painful piercing sounds if you don't make use of any of the knobs in the Random category.
Otherwise, you can get some interesting effects similar to unison or a stationary Paulstretch.
Note that this knob uses by far the most CPU out of any parameter in this plugin when increased.
" +"Glide - The length of interpolation for the amount of pitch shifting.
A small amount of glide is very effective for cleaning up many of the artifacts that may result from changing the pitch shift amount over time.
" +"Range - The length of the pitch shifter's internal ring buffer.
Changing this will change the minimum and maximum values for some of the other parameters, which are listed in each of the options.
Increase it if you need parameter values that aren't supported with the minimum buffer length. Otherwise, it's best to leave it at its minimum value.
" +; + +GranularPitchShifterHelpView::GranularPitchShifterHelpView():QTextEdit(s_helpText) +{ +#if QT_VERSION < 0x50C00 + // Bug workaround: https://codereview.qt-project.org/c/qt/qtbase/+/225348 + using ::operator|; +#endif + setWindowTitle ( "Granular Pitch Shifter Help" ); + setTextInteractionFlags ( Qt::TextSelectableByKeyboard | Qt::TextSelectableByMouse ); + getGUI()->mainWindow()->addWindowedWidget( this ); + parentWidget()->setAttribute( Qt::WA_DeleteOnClose, false ); + parentWidget()->setWindowIcon( PLUGIN_NAME::getIconPixmap( "logo" ) ); + + // No maximize button + Qt::WindowFlags flags = parentWidget()->windowFlags(); + flags &= ~Qt::WindowMaximizeButtonHint; + parentWidget()->setWindowFlags( flags ); +} + + +} // namespace lmms::gui diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h new file mode 100755 index 00000000000..5027df8b741 --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h @@ -0,0 +1,78 @@ +/* + * GranularPitchShifterControlDialog.h + * + * Copyright (c) 2024 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 GRANULARPITCHSHIFTER_CONTROL_DIALOG_H +#define GRANULARPITCHSHIFTER_CONTROL_DIALOG_H + +#include "EffectControlDialog.h" + +#include +#include "ComboBox.h" +#include "GuiApplication.h" +#include "MainWindow.h" + +namespace lmms +{ + +class GranularPitchShifterControls; +class FloatModel; + +namespace gui +{ + +class Knob; + +class GranularPitchShifterControlDialog : public EffectControlDialog +{ + Q_OBJECT +public: + GranularPitchShifterControlDialog(GranularPitchShifterControls* controls); + ~GranularPitchShifterControlDialog() override = default; +public slots: + void showHelpWindow(); +}; + +class GranularPitchShifterHelpView : public QTextEdit +{ + Q_OBJECT +public: + static GranularPitchShifterHelpView* getInstance() + { + static GranularPitchShifterHelpView instance; + return &instance; + } + static void finalize() + { + } + +private: + GranularPitchShifterHelpView(); + static QString s_helpText; +}; + +} // namespace gui + +} // namespace lmms + +#endif diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp new file mode 100755 index 00000000000..f2f6746e205 --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp @@ -0,0 +1,159 @@ +/* + * GranularPitchShifterControls.cpp + * + * Copyright (c) 2024 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 "GranularPitchShifterControls.h" +#include "GranularPitchShifter.h" + +namespace lmms +{ + +GranularPitchShifterControls::GranularPitchShifterControls(GranularPitchShifterEffect* effect) : + EffectControls(effect), + m_effect(effect), + m_pitchModel(1.f, -48.f, 24.f, 0.01f, this, tr("Pitch")), + m_sizeModel(10.f, 2.f, 1000.f, 0.001f, this, tr("Grain Size")), + m_sprayModel(0.005f, 0.f, 0.5f, 0.0001f, this, tr("Spray")), + m_jitterModel(0.f, 0.f, 1.f, 0.0001f, this, tr("Jitter")), + m_twitchModel(0.f, 0.f, 1.f, 0.0001f, this, tr("Twitch")), + m_pitchSpreadModel(0.f, -24.f, 24.f, 0.01f, this, tr("Pitch Stereo Spread")), + m_spraySpreadModel(0.f, 0.f, 1.f, 0.0001f, this, tr("Spray Stereo")), + m_shapeModel(2.f, 1.f, 2.f, 0.0001f, this, tr("Shape")), + m_fadeLengthModel(1.f, 0.f, 1.f, 0.00001f, this, tr("Fade Length")), + m_feedbackModel(0.f, 0.f, 1.f, 0.00001f, this, tr("Feedback")), + m_minLatencyModel(0.01f, 0.f, 1.f, 0.00001f, this, tr("Minimum Allowed Latency")), + m_prefilterModel(true, this, tr("Prefilter")), + m_densityModel(1.f, 1.f, 16.f, 0.0001f, this, tr("Density")), + m_glideModel(0.01f, 0.f, 1.f, 0.0001f, this, tr("Glide")), + m_rangeModel(this, tr("Ring Buffer Length")) +{ + m_pitchModel.setScaleLogarithmic(true); + m_sizeModel.setScaleLogarithmic(true); + m_sprayModel.setScaleLogarithmic(true); + m_pitchSpreadModel.setScaleLogarithmic(true); + m_spraySpreadModel.setScaleLogarithmic(true); + m_minLatencyModel.setScaleLogarithmic(true); + m_densityModel.setScaleLogarithmic(true); + m_glideModel.setScaleLogarithmic(true); + + m_rangeModel.addItem(tr("5 seconds")); + m_rangeModel.addItem(tr("10 seconds (size)")); + m_rangeModel.addItem(tr("40 seconds (pitch)")); + m_rangeModel.addItem(tr("40 seconds (spray)")); + m_rangeModel.addItem(tr("80 seconds (spray and jitter)")); + + connect(&m_rangeModel, &ComboBoxModel::dataChanged, this, &GranularPitchShifterControls::updateRange); +} + +void GranularPitchShifterControls::updateRange() { + switch (m_rangeModel.value()) + { + case 0:// 5 seconds + { + m_sizeModel.setRange(4.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 24.f, 0.01f); + m_sprayModel.setRange(0.f, 0.5f, 0.0001f); + m_jitterModel.setRange(0.f, 1.f, 0.0001f); + break; + } + case 1:// 10 seconds (size) + { + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 24.f, 0.01f); + m_sprayModel.setRange(0.f, 0.5f, 0.0001f); + m_jitterModel.setRange(0.f, 1.f, 0.0001f); + break; + } + case 2:// 40 seconds (pitch) + { + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 48.f, 0.01f); + m_sprayModel.setRange(0.f, 0.5f, 0.0001f); + m_jitterModel.setRange(0.f, 1.f, 0.0001f); + break; + } + case 3:// 40 seconds (spray) + { + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 24.f, 0.01f); + m_sprayModel.setRange(0.f, 2.f, 0.0001f); + m_jitterModel.setRange(0.f, 1.f, 0.0001f); + break; + } + case 4:// 80 seconds (spray & jitter) + { + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 24.f, 0.01f); + m_sprayModel.setRange(0.f, 2.f, 0.0001f); + m_jitterModel.setRange(0.f, 2.f, 0.0001f); + break; + } + default: {} + } + m_effect->sampleRateNeedsUpdate(); +} + +void GranularPitchShifterControls::loadSettings(const QDomElement& parent) +{ + // must be loaded first so the ranges are set properly + m_rangeModel.loadSettings(parent, "range"); + + m_pitchModel.loadSettings(parent, "pitch"); + m_sizeModel.loadSettings(parent, "size"); + m_sprayModel.loadSettings(parent, "spray"); + m_jitterModel.loadSettings(parent, "jitter"); + m_twitchModel.loadSettings(parent, "twitch"); + m_pitchSpreadModel.loadSettings(parent, "pitchSpread"); + m_spraySpreadModel.loadSettings(parent, "spraySpread"); + m_shapeModel.loadSettings(parent, "shape"); + m_fadeLengthModel.loadSettings(parent, "fadeLength"); + m_feedbackModel.loadSettings(parent, "feedback"); + m_minLatencyModel.loadSettings(parent, "minLatency"); + m_prefilterModel.loadSettings(parent, "prefilter"); + m_densityModel.loadSettings(parent, "density"); + m_glideModel.loadSettings(parent, "glide"); +} + +void GranularPitchShifterControls::saveSettings(QDomDocument& doc, QDomElement& parent) +{ + m_rangeModel.saveSettings(doc, parent, "range"); + m_pitchModel.saveSettings(doc, parent, "pitch"); + m_sizeModel.saveSettings(doc, parent, "size"); + m_sprayModel.saveSettings(doc, parent, "spray"); + m_jitterModel.saveSettings(doc, parent, "jitter"); + m_twitchModel.saveSettings(doc, parent, "twitch"); + m_pitchSpreadModel.saveSettings(doc, parent, "pitchSpread"); + m_spraySpreadModel.saveSettings(doc, parent, "spraySpread"); + m_shapeModel.saveSettings(doc, parent, "shape"); + m_fadeLengthModel.saveSettings(doc, parent, "fadeLength"); + m_feedbackModel.saveSettings(doc, parent, "feedback"); + m_minLatencyModel.saveSettings(doc, parent, "minLatency"); + m_prefilterModel.saveSettings(doc, parent, "prefilter"); + m_densityModel.saveSettings(doc, parent, "density"); + m_glideModel.saveSettings(doc, parent, "glide"); +} + + +} // namespace lmms diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.h b/plugins/GranularPitchShifter/GranularPitchShifterControls.h new file mode 100755 index 00000000000..09d45309e47 --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.h @@ -0,0 +1,89 @@ +/* + * GranularPitchShifterControls.h + * + * Copyright (c) 2024 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 GRANULARPITCHSHIFTER_CONTROLS_H +#define GRANULARPITCHSHIFTER_CONTROLS_H + +#include "EffectControls.h" +#include "GranularPitchShifterControlDialog.h" + +constexpr float GPS_RANGE_SECONDS[5] = {5, 10, 40, 40, 80}; + +namespace lmms +{ + +class GranularPitchShifterEffect; + +namespace gui +{ +class GranularPitchShifterControlDialog; +} + +class GranularPitchShifterControls : public EffectControls +{ + Q_OBJECT +public: + GranularPitchShifterControls(GranularPitchShifterEffect* effect); + ~GranularPitchShifterControls() override = default; + + void saveSettings(QDomDocument& doc, QDomElement& parent) override; + void loadSettings(const QDomElement& parent) override; + inline QString nodeName() const override + { + return "GranularPitchShifterControls"; + } + gui::EffectControlDialog* createView() override + { + return new gui::GranularPitchShifterControlDialog(this); + } + int controlCount() override { return 4; } + +public slots: + void updateRange(); + +private: + GranularPitchShifterEffect* m_effect; + FloatModel m_pitchModel; + FloatModel m_sizeModel; + FloatModel m_sprayModel; + FloatModel m_jitterModel; + FloatModel m_twitchModel; + FloatModel m_pitchSpreadModel; + FloatModel m_spraySpreadModel; + FloatModel m_shapeModel; + FloatModel m_fadeLengthModel; + FloatModel m_feedbackModel; + FloatModel m_minLatencyModel; + BoolModel m_prefilterModel; + FloatModel m_densityModel; + FloatModel m_glideModel; + ComboBoxModel m_rangeModel; + + friend class gui::GranularPitchShifterControlDialog; + friend class GranularPitchShifterEffect; +}; + +} // namespace lmms + +#endif diff --git a/plugins/GranularPitchShifter/artwork.png b/plugins/GranularPitchShifter/artwork.png new file mode 100755 index 0000000000000000000000000000000000000000..2f3af34c484f129bb912c0056fc0625d21f6fdfd GIT binary patch literal 54230 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 QlK=n!07*qoM6N<$f=6_Y3jhEB literal 0 HcmV?d00001 From 15dbc8b1b0fe77b7ab8abb17c258026175479f48 Mon Sep 17 00:00:00 2001 From: Lily Date: Mon, 17 Jun 2024 21:20:43 -0500 Subject: [PATCH 02/22] Fix inaccuracy in documentation --- .../GranularPitchShifter/GranularPitchShifterControlDialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp index 515aa2985c6..ae562e22441 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp @@ -130,7 +130,7 @@ QString GranularPitchShifterHelpView::s_helpText= "Feedback - The amount of feedback for the pitch shifter.
This feeds a portion of the pitch shifter output back into the input buffer. Large values can be dangerous.
" "Latency - The minimum amount of latency the pitch shifter will have.
This granular pitch shifter dynamically changes its latency to be at the minimum possible amount depending on your settings.
If you'd like for this latency to be more predictable, you may increase the value of this parameter until the latency no longer changes.
This parameter may also be used to be set the minimum amount of delay for the feedback.
A larger latency amount can remove subtle fluttering artifacts that may result from automating the pitch shifting amount at high speeds." "

Miscellaneous:

" -"Prefilter - Enables a 24 dB lowpass filter prior to the pitch shifting which automatically adjusts its cutoff to drastically reduce any resulting aliasing.
" +"Prefilter - Enables a 12 dB lowpass filter prior to the pitch shifting which automatically adjusts its cutoff to drastically reduce any resulting aliasing.
" "Density - The multiplier for how often grains are spawned.
This will increase the grain overlap above 50%.
It will create painful piercing sounds if you don't make use of any of the knobs in the Random category.
Otherwise, you can get some interesting effects similar to unison or a stationary Paulstretch.
Note that this knob uses by far the most CPU out of any parameter in this plugin when increased.
" "Glide - The length of interpolation for the amount of pitch shifting.
A small amount of glide is very effective for cleaning up many of the artifacts that may result from changing the pitch shift amount over time.
" "Range - The length of the pitch shifter's internal ring buffer.
Changing this will change the minimum and maximum values for some of the other parameters, which are listed in each of the options.
Increase it if you need parameter values that aren't supported with the minimum buffer length. Otherwise, it's best to leave it at its minimum value.
" From 4f81b7423d6f3c8932c541a8e609b8201997fa9c Mon Sep 17 00:00:00 2001 From: Lily Date: Mon, 17 Jun 2024 21:52:35 -0500 Subject: [PATCH 03/22] fix/adjust Range options --- .../GranularPitchShifterControls.cpp | 20 +++++++++---------- .../GranularPitchShifterControls.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp index f2f6746e205..86013556198 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp @@ -60,9 +60,9 @@ GranularPitchShifterControls::GranularPitchShifterControls(GranularPitchShifterE m_rangeModel.addItem(tr("5 seconds")); m_rangeModel.addItem(tr("10 seconds (size)")); - m_rangeModel.addItem(tr("40 seconds (pitch)")); - m_rangeModel.addItem(tr("40 seconds (spray)")); - m_rangeModel.addItem(tr("80 seconds (spray and jitter)")); + m_rangeModel.addItem(tr("40 seconds (size and pitch)")); + m_rangeModel.addItem(tr("40 seconds (size and spray and jitter)")); + m_rangeModel.addItem(tr("120 seconds (all of the above)")); connect(&m_rangeModel, &ComboBoxModel::dataChanged, this, &GranularPitchShifterControls::updateRange); } @@ -86,7 +86,7 @@ void GranularPitchShifterControls::updateRange() { m_jitterModel.setRange(0.f, 1.f, 0.0001f); break; } - case 2:// 40 seconds (pitch) + case 2:// 40 seconds (size and pitch) { m_sizeModel.setRange(2.f, 1000.f, 0.001f); m_pitchModel.setRange(-48.f, 48.f, 0.01f); @@ -94,19 +94,19 @@ void GranularPitchShifterControls::updateRange() { m_jitterModel.setRange(0.f, 1.f, 0.0001f); break; } - case 3:// 40 seconds (spray) + case 3:// 40 seconds (size and spray and jitter) { m_sizeModel.setRange(2.f, 1000.f, 0.001f); m_pitchModel.setRange(-48.f, 24.f, 0.01f); - m_sprayModel.setRange(0.f, 2.f, 0.0001f); - m_jitterModel.setRange(0.f, 1.f, 0.0001f); + m_sprayModel.setRange(0.f, 20.f, 0.0001f); + m_jitterModel.setRange(0.f, 2.f, 0.0001f); break; } - case 4:// 80 seconds (spray & jitter) + case 4:// 120 seconds (all of the above) { m_sizeModel.setRange(2.f, 1000.f, 0.001f); - m_pitchModel.setRange(-48.f, 24.f, 0.01f); - m_sprayModel.setRange(0.f, 2.f, 0.0001f); + m_pitchModel.setRange(-48.f, 48.f, 0.01f); + m_sprayModel.setRange(0.f, 40.f, 0.0001f); m_jitterModel.setRange(0.f, 2.f, 0.0001f); break; } diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.h b/plugins/GranularPitchShifter/GranularPitchShifterControls.h index 09d45309e47..1a4483a3065 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControls.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.h @@ -28,7 +28,7 @@ #include "EffectControls.h" #include "GranularPitchShifterControlDialog.h" -constexpr float GPS_RANGE_SECONDS[5] = {5, 10, 40, 40, 80}; +constexpr float GPS_RANGE_SECONDS[5] = {5, 10, 40, 40, 120}; namespace lmms { From 62d9a849a0950f6718eb29bb1fe50e56baa3a6ec Mon Sep 17 00:00:00 2001 From: Lily Date: Mon, 17 Jun 2024 21:55:48 -0500 Subject: [PATCH 04/22] Appease the CodeFactor theocracy --- plugins/GranularPitchShifter/GranularPitchShifter.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifter.cpp b/plugins/GranularPitchShifter/GranularPitchShifter.cpp index 2ac4cfa29e0..eac0aa1eb9c 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifter.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifter.cpp @@ -34,7 +34,6 @@ namespace lmms extern "C" { - Plugin::Descriptor PLUGIN_EXPORT granularpitchshifter_plugin_descriptor = { LMMS_STRINGIFY(PLUGIN_NAME), @@ -47,7 +46,6 @@ Plugin::Descriptor PLUGIN_EXPORT granularpitchshifter_plugin_descriptor = nullptr, nullptr, } ; - } @@ -261,13 +259,11 @@ void GranularPitchShifterEffect::changeSampleRate() extern "C" { - // necessary for getting instance out of shared lib PLUGIN_EXPORT Plugin* lmms_plugin_main(Model* parent, void* data) { return new GranularPitchShifterEffect(parent, static_cast(data)); } - } } // namespace lmms From 409991fab5d1f54bb4c28fb008aadcf29cc29fa1 Mon Sep 17 00:00:00 2001 From: Lily Date: Mon, 17 Jun 2024 22:08:17 -0500 Subject: [PATCH 05/22] windows hates M_PI apparently --- plugins/GranularPitchShifter/GranularPitchShifter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifter.h b/plugins/GranularPitchShifter/GranularPitchShifter.h index 1584b2e0c5f..d1ed376d86e 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifter.h +++ b/plugins/GranularPitchShifter/GranularPitchShifter.h @@ -56,7 +56,7 @@ class PrefilterLowpass public: inline void setCoefs(float sampleRate, float cutoff) { - const float g = std::tan(M_PI * cutoff / sampleRate); + const float g = std::tan(F_PI * cutoff / sampleRate); const float ginv = g / (1.0f + g * (g + 1.414213562)); m_g1 = ginv; m_g2 = 2.0f * (g + 1.414213562) * ginv; From 9e667a1d83fb65571a419e15b8b53c943e5b54d4 Mon Sep 17 00:00:00 2001 From: Lily Date: Mon, 17 Jun 2024 22:56:46 -0500 Subject: [PATCH 06/22] grapefruit --- plugins/GranularPitchShifter/GranularPitchShifter.cpp | 4 ++-- .../GranularPitchShifterControlDialog.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifter.cpp b/plugins/GranularPitchShifter/GranularPitchShifter.cpp index eac0aa1eb9c..e533883fe34 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifter.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifter.cpp @@ -91,7 +91,7 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ } const float shapeK = cosWindowApproxK(shape); - const int sizeSamples = static_cast((m_sampleRate / size) * 0.5) * 2; + const int sizeSamples = m_sampleRate / size; const float waitMult = sizeSamples / (density * 2); for (fpp_t f = 0; f < frames; ++f) @@ -117,7 +117,7 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ { m_updatePitches = false; - const double speed[2] = {std::exp2(m_truePitch[0] * (1. / 12.)), std::exp2(m_truePitch[1] * (1. / 12.))}; + std::array speed = {std::exp2(m_truePitch[0] * (1. / 12.)), std::exp2(m_truePitch[1] * (1. / 12.))}; std::array ratio = {speed[0] / m_speed[0], speed[1] / m_speed[1]}; for (int i = 0; i < m_grainCount; ++i) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp index ae562e22441..894d428420f 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp @@ -138,7 +138,7 @@ QString GranularPitchShifterHelpView::s_helpText= GranularPitchShifterHelpView::GranularPitchShifterHelpView():QTextEdit(s_helpText) { -#if QT_VERSION < 0x50C00 +#if (QT_VERSION < QT_VERSION_CHECK(5,12,0)) // Bug workaround: https://codereview.qt-project.org/c/qt/qtbase/+/225348 using ::operator|; #endif From e2153d5cec5dcaab9326e91c3561913245860119 Mon Sep 17 00:00:00 2001 From: Lily Date: Tue, 18 Jun 2024 10:35:54 -0500 Subject: [PATCH 07/22] fix fade length zero division --- plugins/GranularPitchShifter/GranularPitchShifterControls.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp index 86013556198..0f98570d70a 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp @@ -41,7 +41,7 @@ GranularPitchShifterControls::GranularPitchShifterControls(GranularPitchShifterE m_pitchSpreadModel(0.f, -24.f, 24.f, 0.01f, this, tr("Pitch Stereo Spread")), m_spraySpreadModel(0.f, 0.f, 1.f, 0.0001f, this, tr("Spray Stereo")), m_shapeModel(2.f, 1.f, 2.f, 0.0001f, this, tr("Shape")), - m_fadeLengthModel(1.f, 0.f, 1.f, 0.00001f, this, tr("Fade Length")), + m_fadeLengthModel(1.f, 0.001f, 1.f, 0.00001f, this, tr("Fade Length")), m_feedbackModel(0.f, 0.f, 1.f, 0.00001f, this, tr("Feedback")), m_minLatencyModel(0.01f, 0.f, 1.f, 0.00001f, this, tr("Minimum Allowed Latency")), m_prefilterModel(true, this, tr("Prefilter")), From cf1e5668d738d4115852e6c654e9662af42ff427 Mon Sep 17 00:00:00 2001 From: Lily Date: Wed, 19 Jun 2024 21:44:26 -0500 Subject: [PATCH 08/22] fix bugged automation ranges --- plugins/GranularPitchShifter/GranularPitchShifterControls.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp index 0f98570d70a..44d8fa506a7 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp @@ -49,10 +49,8 @@ GranularPitchShifterControls::GranularPitchShifterControls(GranularPitchShifterE m_glideModel(0.01f, 0.f, 1.f, 0.0001f, this, tr("Glide")), m_rangeModel(this, tr("Ring Buffer Length")) { - m_pitchModel.setScaleLogarithmic(true); m_sizeModel.setScaleLogarithmic(true); m_sprayModel.setScaleLogarithmic(true); - m_pitchSpreadModel.setScaleLogarithmic(true); m_spraySpreadModel.setScaleLogarithmic(true); m_minLatencyModel.setScaleLogarithmic(true); m_densityModel.setScaleLogarithmic(true); From 3c745cedd0479f39a19f65b3e1716c67989114f7 Mon Sep 17 00:00:00 2001 From: Lily Date: Fri, 21 Jun 2024 12:55:06 -0500 Subject: [PATCH 09/22] h --- .../GranularPitchShifterControls.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp index 44d8fa506a7..05c0abd37d6 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp @@ -56,11 +56,11 @@ GranularPitchShifterControls::GranularPitchShifterControls(GranularPitchShifterE m_densityModel.setScaleLogarithmic(true); m_glideModel.setScaleLogarithmic(true); - m_rangeModel.addItem(tr("5 seconds")); - m_rangeModel.addItem(tr("10 seconds (size)")); - m_rangeModel.addItem(tr("40 seconds (size and pitch)")); - m_rangeModel.addItem(tr("40 seconds (size and spray and jitter)")); - m_rangeModel.addItem(tr("120 seconds (all of the above)")); + m_rangeModel.addItem(tr("5 Seconds")); + m_rangeModel.addItem(tr("10 Seconds (Size)")); + m_rangeModel.addItem(tr("40 Seconds (Size and Pitch)")); + m_rangeModel.addItem(tr("40 Seconds (Size and Spray and Jitter)")); + m_rangeModel.addItem(tr("120 Seconds (All of the above)")); connect(&m_rangeModel, &ComboBoxModel::dataChanged, this, &GranularPitchShifterControls::updateRange); } From ed1d1e04cac56a6664bed50a46551143edb9cf6f Mon Sep 17 00:00:00 2001 From: Lily Date: Fri, 21 Jun 2024 18:56:14 -0500 Subject: [PATCH 10/22] update artwork --- plugins/GranularPitchShifter/artwork.png | Bin 54230 -> 46231 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/plugins/GranularPitchShifter/artwork.png b/plugins/GranularPitchShifter/artwork.png index 2f3af34c484f129bb912c0056fc0625d21f6fdfd..446a9c1ee868c058c0a75c744ad0182a812e877b 100755 GIT binary patch literal 46231 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
&DI-P(2Z_P4%?4u9NZYrAJW{i*f* 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 literal 54230 zcmeEuWl)?=)9&I0t5&S!6CsN!r45p*ZKZ@Rp9KBs1 z_#XHP*o}^b^M`}?4c(aETwKjK8gxBe+~-{g&c3(Lk0GphruJ?fzX=HX2?%Z>JU`!v zUcd%<|FT(m349P8=p&1o+rA-Cv1@r{ZQ}L-$pRH~GKIhyEy7#jy0sS{Z_#1)EqZ+SYC7BZOncDmAszhqtU%2h5qaM^U zFN~WCt>~C;Hy`U-*JTtK_)eM!&JOuIgcv&yI{ECjw-*({aNh1ix3`pj3<+q^s?X$Y^DBi_I^9WwQ|K@zZ9d=%lo25xB*%ElV zJ5`i4A~;!LQY0h$)h(jH)lal7)R(d%484ft3=G;tzR@!#f6&m|rQ~%m-g{WQtE+hc z4~h6h1^om3V|}Kib0#Y0MYJ9PHV}6OMpU599FFWfriSsdL{mEs+ z{MXj>$D&7~iENs?!Fo_oQdhW1ivvtmF z>mGtFJfpyn(g%~-y()a&(xauxOduvlXB8pUQ`xL{XC<41Pq@czj*Pd1 zl z;S1*If0UgxKiUBB-%MXVz=a9e=O}7d<|s(c64K4I7;kMVWoLj*a4U_6eRnU*XL;di z5CIDnHLS5eiZ|zXSFi80n`jrb%c29P%R4IBo^=d&dm}t$oxwYuRj1REM)~yg*8EWO zJbl=PCQX48w%M!n^yPH_fx3$9RPUl@#-DPjE2Hm&Yx_+o9kt_gSplsIBqnB?cL%0g zB@X%~V(zba4T`3h5_Z>2=}7+K5EsebbhoIFCYf3DQLS<1VH{*PCbIq-o32B=9W{p; z>jvs3m%@tlm?aS{ifSCha9|JWufJ=fd$THDd7NPQe?p5Wo)y?^$p6M7L_3-D&0A1( zo!!aSh4o#iAreP6QjPwQT`UjV*Q$u-o<-J%oVXY_wsbc@W?Obac&`Td zYhZ#>uJs-=Z-Jx*xLM6iW8hqey5)kDWxi5@B~_T(09Cy}_{JUCNu*oDOBCjqqbplZsl~Dg17DX6Ewjn-rZnrR@codr z)~C>bjf@6=@>3mQaZH6E-s7^_ZG5Lno?9-DOPpCMpP{AgVp;u6#232vgIcC zBk-W-)`3cO+#yLjoWiQNYIi8XzSpOh4*82TL{~^Xb!n&!@AV%D^hLv?sIh?vs#v~p zP2U=YzoKg2onj30E0mC$o{FEHW|e#o&r%HThBOzO50DkkkkD$yt#KcW>JMBv=@!z*Ex=g9MMQ-#(9*LDneXr zZe@Y_8$aRTsBPn4GCp$h)0rN6`?O|x_M~A5#IJf&6osN(=wOqHW{hnxr6E1PiZF=X z!=yByBzC-5iIo$LX>3D!jY0^q4OuL&2g#`#ei8hxasEJbQ__GM?f~@@GENCx*!$j= zHi09mR77soHni6%Kk>mh=v{HY2+umn;w>P=hD;WxcsX&<6nwgd4~uA~bCugykOl2D zlv$m@`E?eZWSrOUUsuDKvWLDey+$4ohIbl>7r*PArsW6(nl;7B~ z`9ws~@4(o5BXp8d__8JJLI%Inm5ZUVhGM7q1>xEKn$Xo7Jm-jS^Z|u?|F&d2y@bWM zOGS+Uzbqn78kxLY0#-SP9Q2+ky*tM6DKFcrAZftO!`D8ti?j>j|+wBZSBsn4P{o5@W{0iIdA~{S}Gr; zC!%p`SEdF&N-Oan3FMEiqxtB_0bn$eEL=)a&t{VlpZEJi*e+FEwW5ZY$R4k}X;><3 zn}>r0S-33a6M&d-;c2OWaq}k?6YzH^{4r7WVT5Q%%gjE!47eWmV|z!SoIjJIwm7LC5zQGQmkcq&ke`DRg7P3^wPz zEG+_pA{kl|?R$(QUOn2ws+;7nuKuG#@&vSSYl|i=dQ}O7$kHjd^G<=vNkG0>ud|wq z88oJ47)vx(z&v*frgHT2+jo<`1Jpi!EQ%gsxbNm6To@pU5pwDZ}qd_wGeT z2nKo{aB$u$zd>g84RL)gR}RAhPlXTIPO612-n+$(?^V7(Gph7dL!d7mf*O4c-Q8>M zpBXs*Y^0w!z=!A00EyG~5t^6^Et!{pg(GqptDIP@s5yHb*_MlzH^NP!V5JZ|Xhd}W zOAzgEhIp%>-%=9#+^j1UdWJM(3>CJp8KjPF#{+Hc@H1&u=8Z!giWR-48-|v zzs5V*A!U!dl*0lgmwZkRTxg0SU-ota}(xN3s}05fG(jtu?5;_2?~(!qWV74HbbE-WoY zh9M-Gwg4<3x~XDHXo}cHK5n7a$Fqd^!@?p(9&__P5*kmg9PPcFttKA|T9fKdk}>3- zvncNKj32n*2-0l82-a`Ccb9auJuPmM0BI|dew+wQ;;kJjaZ_1w!Cv(-k6HzF$r?KWs&-JS#EG%ZE(ZD^rGSM|h<>Ei`uSD}apNgYcHQTQ>? z4|bqOdIsc#(SKJ{O)&w7m;3wWO*1mLp)dQOQ^Q7jG!c-MmTJ>3hmz`t4_OqGAyOwI zWJ6py4@8BcBGOaR&f%H0DP_4GVr3cj0^zV9jj>$?>uJdQki?GAYxlPz{PD!z7PV8s zufvXOC*7W>Tc6T?&EY;~+I7@5UWWXb|BCY)EDw?)_;yb0kg#~+qA1?ATQtr%J)sq# zQJVUdErS7r-s8>#bHQN%31#$MWdhKfs3kIFfU5an&)xd#lI(AU3xFogVI7j-#{1Tn zm$nOC5g`P@pY9R}1uw$A@}DPYl^7&~0-5Kn{6jip1%nL0+i0Hyr$#Br@{*U$1wS#9 zq>w^WZ;psGS81Z)ehY^P4Cj|LcYEA-%aD{Yz zzp)7iQb+_$v{ihZQMqxb;u}$k-~C!l4L*ctB;c$1ix?C)9?eAvzkVH_R)^>HabDnK zfj+7x_dQ$72XC&;03vuP-P-Ab7R>^*?*~}mh}?D3sy`niAG(BL+|CsU(Hsz{wS>ha zt@Vp*DNEh#~MSPnw4!Lhu-TJ;=)QOws0J5a&W`km422WO(Yd2Vbgxch3iq zNMQnHHLHENb&^T1mb(8;l1i=NF; z=87fA+WDysZ56Tl*ET5%XuOKS!s||c2)5#M24;!j2F$}X2%k2D>BOmX?;WG<2X>Q3 ziH2a7&QO*SIE){y#$>}SB@2L_cr`|d2`(-{O77sZ7?{8~S)3=D zE~CQ2#XnjK9cOwD96wBMk@!}2>D>WI!t~s1;fw8w4{wjQA&CH?#k*cPfAGlAd|f|7 z^(_X9)NaC?+H%*);s%N++fPt}OE)Cv`1sq_(T!p7pdplS?ALtr)X#E}?UdkY6>F7LT}FUM&J+YB4$vAJ8Zi*@4pOu9?!P zeoo|s;tcec)s1Vjlo+7E$C${kTI4W7dZ=T^T|NK701qU6-$D4r*Yf=vM37_c5}{># z3kgL7c;?1LvGv$D43>}l?Ok1px~rlK$_Hzni5>$;9G06eGN(HRn)nI!dfvazG#K^X ze=YInFWW)nGcmX58?Fa++XN|O=nhqd%8;DNP`<)8A6(Tu>WF`cvj-!CP!EhbX&9Bh zG*i#OJ7~ju&B@WET2GjS{^i3ggAx)Lu#G z@_W*LMK2B^!c};?&t^&-l$Qz@8S+Lr`cKi29kKj`uw*fSyAi)L`NR$sH`%w#v(ROv zQ!OicOOg2kphJ5<3<_+9k(RRy^ya46FfZ2+q0_zCo92pP9&f^^l;qm6)PLFx~;c&iC zH_xlZ>WYh?ZD_3ZJ+1o)UE*fjue|)&X0#N-pz!B%B9X!X_Za@9#6g}(pcrug+{*hP z&VmvmJwF^mS{t%Vh*X~?ZUCOQKN^h2!WcM2sJJK^g_UquNlKG|E*SKLhFXEaRr<~A z^YT|+$ek*JiMZSOHcd&?^(szJ)M@ghJ~I5;`^JP{m!vqmf%Yi`?jd43dmLd9RMqz| zZ8fO0U(bI?TQ;vwg2hI(T;B~)qZ={C=wB%`N`N%aNHiuJ6! zJ}JI_XEGye*=8&>zFmzP8;KK8rbC=CQ!cb>vtn87N{%ID*X3dq2WLZCLHKz|+u}q; z$tKZx%5`9M*kq}v8U>Qen9@&V|C+BZ2t&a5r(@bZf8qr5}f}#;aIFE`2(&X{KuqjKSmL2?~4) znvItP$Tie9y__`8)>LcoM7XLfJNn@&g|QXy8xcQGxPP!(cYw0*>WL`Nx#D3?_zm=` zm7gZzN?PZ9%w}-zZ0=AqqTAILjtF`a7^^2>B5}>oKHZ?=?cajwt+E;^PCzN|$N+Rd zHPmfn9Q_(ki|F1|R0_BY`Yi#i7yz{i;|3=7JxP^;+%jMKY1vr|x_QCs+rXIo9cz*7 zS*3DFYc-8P22eDPDAD z?iH5~fLD4lW`{Tx3K~QCkP7**!{FmQZf!dN@JS5S5#=;Cyhy0DSCBE!_xgJ ze5Hz$;p3*To(+Q((%z@0lrNmriEs&(bj>qc)8>OHDttK*@82A%*KAg&OeZa6L%9W9 zPKxs;3}Yhh=?r${Yr#~N-K%z2ge^W?)8-H&Hm9X&=2y`AVF{=;_nSyA=7f%zKB7wH zBm{ab*_U%+Qbyg>trM&0HjR!T!r1*Rg^vHZ#3+KG&171NfhuVf^W$84t)E($O6YbU zQc+~ih9D$k$}dymn6Dtw;itc}HKk@2fYHwVP+vJ#3}MSyVp9B2XsZR4->O#^an)ek zx`LK`PVBR*^!oEf`I{G7dB*nK6RlL0PHQBI2C8p)1IDMwe)lUk;%vN2p2mTS@n^#w zHEKc$0%1w+2Sz>=?xiDSSgjJdj-U0`VXqfOOz4_WL_7Ez2#m!Nyrs;|`(LD>9h$wc zzO})r@%}V3v$95h3~pRs+lyn7fmCs%h8wrVanQ3S_r)wb#!!Q2wa#5)gU=y8h+8bY zt;eJhc_^$H#pbVNST6N6J3~Yx97Q#@Afr~5%P5+km%`*Gl?-K9=}h!Adyz*rl|qAj zyMU7TK#SQwl%p3-_+1wZCTNi>84A2IaJszJh`fyeQzHGkti5`8K>X_MoB% zKd3fZQvyk00{)ih7)j-jt~;=i?W(sCTJdb+r`?wm9+DqKrJ+Hc2!`sqpw(XAr{lBV zeS#)hZx{HA*)uz>Bc_r9!^QnHZK)B!McEZ`91GEbXl%U$AruDISjT)(-4{Xim3dtx zIdx@UfX2c-rx|u|S9c%%0?Y^|b@>)>U5r7*pj%n-iutp^y?INAQQ}Q;JXvgaM~Qe= z3e=l@P7d+u*bq54p8&gryY&&_mnn-oak%b1<+l^w68o4-*8-LnBKxN!03p`Ui;%%@ zS1I{x@fXl>meK!sj%DfK0y^aKSQCgGKnh?+gm}*kLQPr~)(O8IiideYXhU0VOnp4> z%x?rnSz5>wo-00S-BK%^^Wve^Dff`nE2@%~r|se_HTr+)>S4~onB2$-xB{J`1zU=V zDa(k7{o~LKG(?VXqJZ>}GDfJ9S_^3^vKxxyxNbe1*Wbmv*!sBI}14t zV_cB+z(D>;Rd94u9dca|@gv0E`A*3(DaBSghVHP(?v>!I_mRW4Z@_#7>&z)G4ErW0 zTV+Yc)R%}tty^Mn1Gr3`(Hip7-A|t%U@zYoXPaIx-gMrq28@M;$@7fDEYZK9E7`6= zANlT4(@oJ{@myudAfX94>0dp@I!^!t%_V1S%;LCZ>C}?s1Ozn+QesO}0a7gv1!e^YF`$K|w3ic5%}Y_;#LL=*$COk^ z5T4(I7X)AnbTK0Ku(h#s=JgOD{R@{Dbp5B9iIn&+5f^I#Qf&ogVljIsATc{5J0mlL zgomXYE2$tnF~5_k8Lz6ic|o+0x#Q_z$L$vAwH{04XV`pZFj4**YjF{1e{J z`R^=%_+auda$sU%WM;CpW%_pwXBP=K5Xj#R`X4o%)j>zWOsYUChrY1~48=x&n)EP7?%YO_hC8MDHPmMnmm|NO9{G|mV`#&UIEY1E! z)_>Ucr{^zs{@oCe`ag01L;4@S|0N8PQc&O(w>NS9W1ft-0O_Ccc}?w2EKPa;y5wOq znW+)`->fk;;gz&^vNZyQ)6&++9LVHg zXa3h1e+cIl0qvJbSs9uC)uL=;@cfhUf6sX}pyS`}{x$_{EdS~vCjKjJd5ui|Hi)y4 z8_@Kxfk1kH>oT!0vNH#Q=J($d>L2Zv|3k1$xw+UlOj%hNSj~W-V6m});>}~q!oXw1 z!eMN}0%Qjo|IP7#qC4B0xwsoS0Y%I~o`SpqCD32q5L5p}CCz`@;%))_!xJ+rD1|r~ zSUA*~nR%I6c>mmT@G>)#GX33Qra!a#A0G2F{a>8$|0VEmWdNl2w>D6D0aYuef0nDi zbM}YE|BtV~$KwCv2q5VH4)VX^_rG-gm#+U61OF@G|7O>J>H1$W@V^rNZ+87ZqYM6D z8y=t?XcgoR+RhBw+e?79LeR!?QsMw`05Je*#D75))B@)qt>X*;Fp~XwgL#w+xq%vC zTx1j^V2+_bK!M@>)a&`9`O!r}+eOUY_RqQ*@Yiw0&|rXE~=8h>Q&Yp~{Gh zsC%rP_jqUM12d_fz1v(n`82u!6qr@4NW*2cD94sb@Y5#^GRFCCn22Rj7$MU>TO{IdG0gyQUn*3;qF=BDx++{H(R3BNwYflr}@iQ`25d% zmc8t^*Dzh5jq)6Y;=|U`U7wa8dbYivdisb6Udsq6Nyo9-#Cpx&?H));nVqlQr!9Ks zc6rv`ehV9XWyv}k1KXba@?6zP^rYig_xWzCdKNuCTF~BwVD|!`eAc8}8%95sbo5B{ z)M(;Cd}R0FOG^9eY^6i9>hNP5rL_zHlm6586I+76mcEh|VK?Ejf9++jrGyENb~sSJ|cH}?qXxIk|I*O$z#2PVEJGpEmxSy!fpdEXz!(TO_+yV`#~ z+-}#77#%8n<54xauEwSCu5lY{ne(RHwr`7ACn(?CXv|j|xjMh7Da<-K{Ox7%-m)}N z1S60Px5-cPq~E_O{B0z;>+<;FYf$~e!1TdsX5c^s*1kODlYHNlf^`zUNz0l!b75pR zSRA3(X>XBZ?RC{o+8me;>ciC1W6QdWU*@*>#oSVcc=Y^?9M93($Dm=Kyaw};ircvJ z&YY8s-aL?pRwxHE)BB@Exm^C=*3OwVqLm4%TiVU{dXH9;S#4l{MX$@(L*#7)7VZod zBaAk0YM0kVFU)*? zlIi(6z)?QRn)4xLt65FbrHt_B8Su?roa*suYxD8*uIqTAa}>v0bbjm)t}ol&21?H8 z@6j_e!P`s4h!#?`c0z{_N*39|xs}zM^7BAI1*@A9D*8 z4!&Ai>*+!r74WhnAgVllb1S6D z-oUOdls{n7;s3J7_w)#PLzhD|;?D-V6_AVz1JoM!Q3_AomF(vxHqqmFH_yU-a;<%@ z;2opE9N`L}iZCQ(0;1Q4R5O6=C+yPKMSbx-xiRn0i zTATA7Dbl0Yu}*B#iyxVjg^9Z3Ch;Y>0%yz@YuX#w^MCrFyCr(n;am1IX|yH=i(-tQ z3oQkQjuESk)4=A}R|BEf7OXiowIc-Q@Bw~?JSCRxrXA15iBuUfin^@3o=PNg9YpE) zE-vJp)fANu!stP`s_F%&?&=l)1abT1M@Ftg?)Q1 zyD>RBnC59iM&NA$ww@Vt7Q%KD`kO9vnv6%XlO8ZagcJPRkush}*;F~cr!=IkzQnI7 z{z|t{T_+N6d?e|MsQpJiD&a3bAPnA1;(z*)aZ*|X4g?OeC8QujbSXPb_}yKfKe!$-$c%;%syw=jiadpL zW@cBl%*rkZY1kna93_*TFUJjAi_6X>CchA^*p9d7wYXco5o4v!$jG@u;Y@!Rh+s0c z$E)K>X{8^16$Y0+d8F<&sn-fmu5~KNbK#B=U`?QNBz7$Clai z=StF@py~KA8Eg+vE1z8oUfha5Zt*HIDrwJ`EChQr2j~3hRu=Q+wN$oMPsVaO6^S~^ zm@l8y@+JwwXX-T7tD}Y~v3E1N{aBT_qE4b^n0}`-u|jvTEA|>ndkP{Zdd+W}6Fdvs zY|+nB%_Vz(%AAM|fDntk_I|o>>SI*89N)0dlry^99-(k3>mFtOpc01}xs5G3O3o`Y zOU4QvHWeykM!Whd(+-_fYxb_dUDY;Cw1GgvXwqk ztJ(?c`s`tqz0apail%2^oUEL47Ov}VKU%fs+Rx^?LU|rIy{xyaYY;v@$-ya&?d@z+iap^&JR~YrG(iu=%~pF zeLZxNM^|H1w2l2av4*`S;${*|#K`(#9P`$#y!E?DKsC3$;Qhxo(egBw5+4;jhy+}v zW#q62VeZtR4+tJM{G_ZTDeei{I6Snmu4jTy_TgUz$*J?2L}DY%y7+sk}?oCap}E%^EX!O$SBo6>X*UYSuLmxUQim_RDxntm~5W z55>i6!;{is4irn#lB8QdTRbqm=je58ZmGlPeeV5Y#>yHtRI8q9P&;OeEuW~eNBW>A zxJsIXvEI_-*I@#Q6&>pseW`?NeK3U2Jm@erdUa3~FzdR?$~)m*&fS1ai}l%2$CEoV zwN9CPwmzCY!s}XWl?C>}qk$mHjd0yyf-R%^`Zq8rTINu6_gbP+HXIoIHMJ2i`$;*+P%RZ#g~tiPM8vViegSJk;Vz0gwVi_janz*?rQni1NO;Lh zZ?xLMElL5tPkI_xncVtA49;w+x6fE9^PO@kYpmV@I+*F}WdNEB z4PL720f*d=i1Sr#;!*`7(@eRNDU*cGFNW!<4q&O%%~&e2g5i*nIFzQv5IApDmp1fM9`3x(wH`3yWAD;*4H~ zHwsxB^|G*0dJj;uG;6k#Fr;rOS>yB1tTa!emO1ud6C16oEfWkL`2kd^Fh3&TLy^oV zho6bzC;;B|ggmcAXOsrJ`l9>rqQzi8OZStr%vBi}tXr(c%rL`NWhexSNGT2yF6mjs z2j0TxM({t`;^zo=s71m~-l(W-sqH#VKUVBX{yJdpdW{?&9_hf`ZIPW$zI6dYs+8SM zN&~=QD1Rx}0snF5He{$*%Gh z-cWAHDx~82$+=;y0SOiXqKH;Xr_4>ou5e%?Xf7sQvTSb@nq>r>xxWk^N8%2almF)% zi4P%uK|!%`$+Ns7vDp!r_E7o(p(d)6S?Q56-LVt0X^ofwpHi+nB|qar{yK~4ZUc`! zH65L$DV+-RH_E9X`s!tH28JVuY-`uKsGucTbvyGOk*S;{dAadPbIZAQYCBXYh-!XB zwABjw2G7$cAXEOq3*>?=LNDyXPDNn~cbFi3Dgx{wKRMeqLrA#PGIT4G34*JXRDa|-m7sH;7^;)V6^Lu0lPjl;T z4Kw&3nQL4skBCM6SrIZ^1_Dcu#1=%z6URABEU{F76Qth6xcPM$AGCao7Z0uCbgvZ6 zO_NG(@RH0G;G~5e<-PdYJp2B#2;UM8QuD6JBo&l8^`Th2Ig4w&QjFa4E$B<_V7P`)|t)-;0%on*)C* zPF)I0Og}1A;t6FmQ&n`oAXBK`aE*)9V4{p}x#h{vk1@d`UlO)dGLtXCvZZJ!1N6B! zz_l75!faBbAcos+-ArZjccu>Qz}7b6NF{ERVb{&}$FC9RRZ+7FArmM4>R5&r zy61}@)#yClrly;?%@xwF5hwRU2h7eY;yVssSWRaRkvSgsq)U}t@;DeLttXyVAUjE? zlomGKx7t_SUHoCS*KIC%^?tz((El9k%`Di9P1JQOYP0(2t^mQ=j-s~s;v}R|1C2ar}D@Hr|#vIV@=mz6h;$>v5P=eMpOoFITs0 z@7VX}n`g8!GydNlFw;L-aRwh6DxcdmS;?|cn8Gtl)=bS;MPa9;Mnn1($(Bu>pVzYs zhxAP}NDk~#A*BaYoJcr?9ttQsUQENrvQ(VZCRIeFc#y0wO4ijNZxZZRrC{JNVL=P_ zDZ0it+E!>_s%z*4PRJT>4Yz;yL6SfJTnYO5^{;!bIL*j1g{c3>a(1;pbk5?3&oi>s^A)A~E4K+}hj<@B%yqaPnqrSgUP zpvLfH(XpApVOKlOFhL~Y|M4BaYsaF-_x@!BQm1pD;Sb~w@B4sc6o|0kOBm%KUA^3S z4W89ShZqBa>v1w>0RerSve%Zo(w~nzpY?(&Pb^(rX9v5s@5;FyuS7va@1WL67T zfx#{@JPXHe*8S?3^*CJa&X*%pjM$a8xHj3S;OClHj3oPShG=I^IX`qXC3z%731eF3elr{rcybGe z%+4}yTy`iy061-Ykf{&}IT; z$Yo_^(XNZ%zD1&AG12$lyv|1(LU;0-@78$}QpXJc*!D$>f4@u4$jgHctoM0ZXEwht zT?EeIzu{xC@O&Q_6x^*L(YNuq6wmdwyE zMx+!7kQ1*o5Q~dy$LHtbbLV0WI~h-Z5-r~U!5)C(*82(%D&PnnuU$&C5rbi|bGxC~ z2E(BFDjb5%`38#+$AkN+&2DT~|BK<(4k;*a#pn%u`2R!!l&Kl6WYq=pPm*k3fKGj4 zo-))OesT#o9TD@Sc{gA=d0X*yvx*0u4BUqn0fFd>+7Y#%+8`k16)v<&UUPGs>W!b) zL6IsRK)jt6#AxC*&x9EUMNLcL^5kvtIEMp4O-+qqs1o&8BT4(?3VX3=(dLZye$#bR z{!_}c$L4dacH3_lKvv|?hwgWQ$AxrzTinBC`#60E#5lftoSNUW?kx6OsE_^MFKGOP zI0Ryk@`(mJ@9-p~jg!A%gkfB#Hb5aql?r#}2GT%Tu-mzodD#RMEXj$B&_yePQJYr$ z;#UP8A8w;zz>l;S>`-wog@GNgb=ej`!ka2v`ZgAP&PHV!!Mlep#Mi%c!_xAaamjB9$@43JGIGvh~y?u6i4l2EhEo)u8d=0NZ z{ewKE2;;stng6N79*5uipdv0o)p@u}$rpyx=8+^V_cl#40$XMB_*l$Q4hlyGn6sze zB0igjuBl=a@i`{`V&MFHxG_k1waJ{RtgPJOLEyumTkY0chKx0#*jb(2*){*eswq%4 za(>)E;xh5_!p-m9yM|pQjxoc{p#0iilP~}$->@EuPl`T9;EnjJ{mcM_3kIv*viCEC z>q6S+t$r|eqwK;xkd{=kjz51_Z?uY@B1gbGs#gq}99vS)2hkg-j=1Z&LvDNd?= zQDtKYYs8J-s;ipdKY<^H3~%NGVXYcY3t?}{4PV-M#dpq!6R?zs>!H@5N;B79yhUTtdo zIC=0;@4Q0CeH}66I1E|?+@FhG4bDf?YGE49*s$gmtzn{C$%NDn_zQaxVj(TDf`guB zSJVE_f`Wc0Qp{bh&bhg{+&`CuMxJBmQuClDx9|bSIo~4h@bZS1_A$(eyr@BW=+am< zNz!HV)Z5Ld%1#I*<$^XO{bgeH)&)G{wE5nNB=q}AlmBtP?P|G{3iIK5F_-DbFgmp3 zM#C87x9+rbE{<4+PoD?l+iXU*g@i(sUJuF}tVaC%8^#zd1cSiYQag~?rA&s1FXURK z;w6&yKP$_FX9kfx!k3KJSaJr@9}6K+o23LH@krnu)JD8&m^G-Qeb5M8q`fgsDou_) zEfo@?Q%arjrbkoDBhcjRGnZ&Tp-mXMXd?C<*?p|W$54sc$A*>$r!PfC&d&PC?Ka?( zb6@AalWG2rH64S^*%MJJ_q!rOHX@*D+c`|eoYf5UFj}@{GMd}!0Tr9!1qyqbn6uw+ zi>sHxM-Btwvm>qPVW<~MVTD0ER{?{w1;PIP^*F7O-~aeXD6gbsa#W|KZkdbUY7rKc{4sl; z3k9blsU*lq+omT!yzU7yCogX>*L^d1&cK<1vHRF$W_1HhodO;=BP$D328853K zwSvC4WSU4EWUssI8;%8(M+G;a>K2U%p+b?1SCQAGJ~3=!-6ugHj(Pg>(em1VdnH0# znlPK4Q$}dYD4zm%NT)M$L9VzWhA7k>b^&?mHW8>T9q~gDwWHpsu~{E(q21?jaw@wr zq|)-->j`ticW$MjMWcSL)0Xc~3H|)|`t8q@<>fPP8RW>6BICc>q`GR5V;qi3-VV#l z6U+W4#E5i@AeP;*x8JsF{lH%^f*nLjSkdaN8R5DfId4Qn357w5k80#8xu7}5d6_%* z4!!NUXFt#8%~@7n&XUTc2>{jUo#OQ0rF*}0Ud|st6=1v2d6_=uVzW5z$^1g#3%Azq zt_^9w+eW2O4OxWwWIlv-EKD{q{1(fzy9-6Vn2D1&07Q8W|3~XQKS_-vzfNcDW&SsM zL8pPI_LIXe5g|nQcM^VE`M)+ow}tEi`TT#+lZB?Qu4ZtehvyG6F<{_E(ocFzMd6H4eL8OJq@clbndI9?6B@Z8Ww#sA`@ir#eCl^?#Y$DP&1(+Ua)IfwW)@ zpw#QA{;lovn<~m=+IU9LJ1uD0begtMT$<#^Wr(jBptpWht&tr3X3VFPwH@7dcW#TL} zrLt1>_8v;K9$`^QoC6B^tYO21>^c;1se2{vgW0pz2r=gSG?uu4fu#P)XnB>vV+{ZK z5Qdu(?|X|`2C-};NtMv#k;YQFt)SGYcZg-dn>Up6Dlmwop9PTaQuE~O(aw>?G9w$A z(J)3OiAWI=C~S>nAA(2RU|*3Ur&TDm!SEZ?BrFD56o+NGnuY<9ja(FNK0J&c{NA!3 zPjer3?)feT9LE@iwY0Q6>ees1@ycs>KRO@YY7?M_a?bTMFnnsQe4w@Ine}$qz&>JD znWt)*wqOj>!F29r-$nY^E5_vZOq~jcM-WWjqHId` zkoEGV$ssP{|8x>siEr|?Z^E%rL#;UN60%D5Byk=_)iUw0lPaGylDb$UN zYcCLVhv%O`?U%t{ueQV%(OBwNa$_iL1yu|6ukUZQRsJOucAZI~0Oq_;YHa zb0l>_x;W)eOkuR1j~20z+^QND$=8TM6Meub&GU^8glf&an21~dhez%_-5bPNP(feN z;lTU?+5_c){#PXk>@~g5UoZgGLZ5>ZeG`bEnGDSdPqq<;h6Bb#1$6UY1Rz39nl5gf z18bY;({L7di>K8l$T=3S_360^v`=9RV^mWh&6Al|0@T(;3i6UeP%*aC4a|A+5Vu+T zWrD+3`A}1>Lg00ISG34?1{|YRnL9agNdR;FFTOULt@>}mU%Wr)H|z&tNW!RxxlXsD z%)f+VnaYQ_ z58mCb*_9yd)Fj8G@=!R^)5sS_Ds&uUFy=``Tct)Jg>4kO_Je~(+>&O0tXUJ4HBFYc zpbsFk3RFuF*EIS(+n_!#9z9}wrDH12I^!!rnhl#*>CFh=n>bJnH{vP2uy0|=s*eN) zAFg(Z9Ni?k=151oS0bRGx_?1~229R2d(wA$n3^sK-saA>&1k)75x~)|pC1`cgVwkr zF6S3JNTj(G8;2lgX#Q!c%yR+Y+a*RBXtY@@E5yAbmfp@5zfSsr5?)(o)0L0L#bX5R@wfO3o`yq!nLqIfl7&&*)J^*1Q;#`TRbtrTijjk*Pol0O+0)? z_WM!g>_TW_k902AD=r%Fn}nZMoC=Gr1k=AH+A{4GaLsC_>#7-hMAE`#ZUiiPnZ&xo zdxj4GKCGt?JUbGVxaWaS%Ya1g^jvN8wcuSxEEF@x;KDJ8)NEU8U<#k~!P`+e7VKF$ z{WvxF8VUNf{GoIx1^f@wIxz>RXTyyn=&2U1L#as?4(3RDEito)9M;*SD4UM4{vs|W zObu4^TF2%$r*pmP6bFg4hc1?3ZmY?RQ-u(YNIa^9%dc;`tqN|$f+lvw3Ez(FzTY!W zKA{8Yb#JC=z9(d|kw4=?Y+#Gr97`EvYL4KBeM?0uuI@fVmPwJTmI5j)TJ5nb_gUahrmYj;1vh%<0 zK#7~Yt7L|wg^c5#Cg_#CZp~)pa!xTwz$?EGYR3Lpk8cXiBu!|yD{iE}O=N5nzdO#v z0XT2s@FX6RmMc5eCtE-+%C%1!g2o`pLeWay`~Y;y;MNCJsgOF<*C^|nOv{Qo*N>y; zfkVM*^dCgxZ;9jZq?PPLIs2Xs-_okKa5{PLr_qd&#jVYAZ0NtHw?e`5-SpJV{ow}NiNLWQHh zYHZp3PLd~?uvWFYf^sG*J8B6=?NXn0-V?T_YJ($|x;T-oX)P51OCr-}XK0{eJrcY0 zWS&xE&@ge*`9Ex(V{~Lq)bFE-GhxTJZ6_0JV%xSg!Nj(0+qP{R6Wh4`ym!6pe!2aj zd-YkpYW3Mwwa>1-|G%mV!B}Z8BaP7dCLa0#^ts+_8t=GdGuS(G^n1evapD;gESRvd z2{%QrDp;p15N-!#j73U(6I`g%50swYR6_CQT8-aHfotS9CcoTcI)zBA#!_ z?CME~%nSobIV&ozbW{a<$te$((O%T!N%dmiiG^rr#ec%zNgY4EiGS!BhFbdHu~}VF ziQkFUl~ROY@z1@FXhLjHAl0|_w1#VQDh<6fim)A^Lqtpa46jl;`Wn412BMA0V->F; zogO2@>^nDv!n0F7)aIJxF#jutyyVV=rUImCkHazUf72eyuEow-0n15uz=)t=#KOX{;6Y$j=bpY4ue^G;QgZyVq}DH zk&!yM+073kSTIL9?I!Pr2js6X@z)HhWg|>bkRdVfWAdgL@;f?kwsdqbZCDvOTP4Wm z(){b{m_P*e>~gsG2M0_`1F{h!&e&3e=+o6@ zn-6cZy~(YHkxZu(Fjgj6snt@a-V1&Y#n|bi?(uwof~aroPAW)Qv=Oj6tub+`q&yjQ zBN1Ef2f~?vWG^V{yE*Q$Ze{T6kBw7rB8Z39w5tUU?y4*n#(Z0vvLNb{L*0yk1(YxrI3jDVx8PCk_y!2g%hMC`ePKDcT*zcZQE?0d)t^bD4 zwN@N>+s|FRj~CQ{;{^&7*iLB2RVx5!XpqU%YPY?!-+G{oH$ylzP$2N|xIuk=LI2&n z{Wg?>7+|MQur7vg|PiuU2L z6!VtBG5=Tqfr?uak%S7e_sa#zk8=?9KnecOp?}q4N$s(qsq!GrqK!Y#VH8roVbDat z$dDB41)%Q*k>x}s;p0M3>u=*L&HDan`-WodL370S*lAH}dkS?_$8m>tAwpG+5=d0{ zO0(g4)|BE+V@wS{|Sp`lI%-$&uofx3egg}Br z+;+3y@j*b%}38+HgGdu4O{v`QvSNI}lfG*PtMgKwG&##Epa-*%09O0TVU$<5V_Ex)nFasmd4Hk~4^5e(UdwfZjt9C-&DmDGLyLC4=+MBz(`7{4)bGcuy zofz(P!yq9i(`f}XOmic&d@QMLO%{rPaT?~Uz;P%KlO5IBGt-g3)E`1xts;_c0sV76 zd(bkIWmEd{MS`nfyK3=LBp_DmLlp)$wgmaMo#dhuQS=j}1`b_gKDI;L!ne+y$LYO`IR4P@6?Z%8UKcCN3$0&i~yD*hW_b~?=v6{=Oe zK+{L}RS!ojb`avAuu+GnrOUMl*UZfKLPSDrJzmY9lWpD5<|O?MV#GXOwj12lU(nKS zwuZ57J7TBRYKO=@-T_`_4Rbm@bU$x+1^)zgohHy1Qf7YwJLmSO=gl%yK1MmPps{0P zcamIMNUv-Gz~SjR-dn~RPEWcDmPhxuRX4at;Z~C>=+9lzS>`5G@5&p#PEoSMuvtc|J}TXS@zrmEA)S(_oj)bC)}#0 z10VIBT$_kk6Sa_0tzJgXL?OrpuppIaHsl1-?RugX@xyUKZ!35&4%ts(Q(8}t0pG*8 zX&p&I#c=_n!^a)-B**P%DvR^VIp%sJ7D2@dDCF_e<9<+{EM(N>Yj;MTQA+<3!122O zKR;-beJ&wFXhK8`H^4%+l@;>Eh%mN{S{D~+j_O1x*|5hcSV84XNg=w9p!K0htyri( z7Fx~G!%sXwgkO_OEJUeOz4CMcx)k0BkO#Nat_bB+@QwlP1htc3gm0!==mFLD1>cT+ zL0Ga(Rk?O$<|{VNcOwNSswLz-CyT9m0Etc)Hq6w<$~0+dXV}9a(*q4iT$weG+$&?V zx;;!U0nR~0jvZ%`uMeMVhJ@iL1#8RBaE3px%ga~etNgscZ7914{`f9qskhjYU{}>z zE{y~J^9$Y2D=~nP?iQCc26&tPQ*-d&)gGFAEvvclWvi;AUX4e9L3+6yp`^iG&i@?wPVzIY2?&&+Cgs6}`+COfwzF z$KzGlO6j#Wx6BLtU+72&`=F2&&uOsMY1DV0(wTg$fXY zmD7q#rQ|$j@JI$(sGFzQk!&-D6(A|~6&V#`+Zpm1_Z9NUHNEBP{F!TI9eRBP{vg0b z^WbYdeIE$wCL0#9CkT}VBYAA7d4cP$KN;bE4FB4s-+R{{y`^76EycqsG|4B$R%9=w zR_&*Sp;XaVmPS^R4?BnW_fY_KlXuS_Iw5ddhUCw~+E}LH&n!6_76ua;&2Inf^L%jC zVLPH^l|2l!l+(NC?TDS0u1sP_k1G@;6o!HM0y#%rB~O-~($1#t$C`%O?nKLGc$?EZ zBNJ1Z^bug|Z9cY7N?bJEz3N$990vs3{j7}brGaH;knee$fD|W>w8|PK78=+^;MK2_ zDy<(0Y9Js$U+5R}=K_WI^-$A=U#$wzWiT*6^73MmqHn85ASRAONSx_%{152HEwL#w zSd%|32eFxn-<1I`YIlxx(_Pr3f6>NObd4FG#|-g>IpNNmyHY2HRi~HiUS;zpVv-+Y#v6)!f!W%6$wJz5I(#x!KUsagbKmLMpo6 zB`4!ST@+V$;rG1B8kDF*hoSssNVPhgC%OZ4=263xS6}Owz%Z-UeU4b$YwHnIr+N@A zjQO)0hWF#f();wo37E(w2L@PZ1kXyptNQl)fbkRdU6~fjr~}i_f`S4NOt&2u9^lj7 zVM5JzA+dqTK3?gR+vTF;x?Klzd#d$h`+YH$|6|nhW5kZ{ZwP@$W7<8{u*`nQ=!9ZZ z_Q>q<6woOfnVUm{F!J&SbZ_$mH8+MUGvw$eny_v*SP!h~8~6b4fQ8;nEkt`ugJlYyh2Ss(a-r_uB1*%Bh+LTY?EYh02imq3zg>9XF*R zIGz4=iD^QXPwD0GW=R z>o@5SB?T&B2v`!;>CB@>_GcXTk#+%HuNp$cEyFM$Hi8r|XtLe=2zssA3-W!%H zdlwxl5_W31eII-qAj;Zoq%y_O9p@RHVhLyXa2$PX=L+aaxbjx_-u59Oft~ksxlsZO7ajgLszsc<5Eeb{Cl%77K^(kA2Am?hv6Zv^oM&p14JO$& zD%w``(Z+H(*}m_Xm)2w&HSyof8>u;Rmf`p;waI)kVTGVlOApmZ|K(m37@N7%%;$=_ zjm_Obg#JYfoK!f)47`SM3@Jph9S;wJLHW<<@U#WuWyuCTu}O$b#+tjD=)^lIm3TMu z8VxJezhb8=kDueYm11;4lCCCpYDu*+xx!-up1hhLiVfWCTMlCeD)}y3*+XKo0w9OjoOV!H)JijVuMQZ*`~VhKt6h$4zOGXjC56~}~V z^=f!$WYGT7MD@MzcQw(r{LAbSN6jlZRP)wQB6~TD&>YVDQ|Kexi_f% zk~J?K${|A>Zg%49&L~!TJ$EQ%?zqFFopqMycJaK$6_}*wqN{hm3#DOe9j^Qb(En zapW;JyrSNr7(9^tz_9fFubZJ_eX?&DT?r;>C00dsTEo4EGz?d%4JXMsnfcztg#mF^ z-;*P2KWZL9Kg+UdC0BE4k`t0D(j1%w1dqB8-H%CSfJVhj>h(P3(S04O9M~MRRR$DqO%UrSs;n_-8f!~3(us6!#Xo= z3?)waxmla%lhypWX&)OR`ytA312b*wO{fv-B#*f)rE<*|{7UFhp6BzJ&m9$FkMi~k zb+v6%3)LEc!gTOE_wsIrot&`>NzW$+kS~rQ9+i5cvn^)5cB2A@|EnBlU`SD8?kX4k zjQOQ-Fb_>8FFa*Zepc2A*D}Q-IrC4@ zNkV03CTc~dze^ie!JlRDk9e17y(3gbJM1^3$wgKF4+vJuuzsw4L(RJml^&stXXs zmoG195jTRlWc}KiQrUz|QdaV@Ckotq7t%%Lh9lXCbO-er{Yfj<2Y;4UnG1@^|H53- z&Uu}+9R=?R-b+DYFN+3S06oQ3CpDwNpmS4L5UvymQSHU>Wl5>>Mt__#U!?NdCK(5+ zkI7N77(KF-!4aTZQSG7T$Bvnj4^!Fv%ew^Si{@E|vTqQ=;her#>mA3NE>$Z=gyQry zpH&jF62g&%&VhTRB6AdSFVmxr8yyN7weiwLP;q3Xl9++&*?R1}rhbpF;;RKn7&()8 zgklp?p=>3<&Nz*xB4u6o5?ZMflxtT0La>M7&xvnF7;LKXRe`%@$$CwBuPv1+#D?}* zUw;Zai=|XFX-kQAmep(uZ6BD9xOB!!Pkw+>I8={P^+EwhNjl zE^pvAKP5N}Pkt)pH`oQT(){OWO))+{(Ma=_KI}7KrN|?&Y(0@N(vEIQ1V_kKAe^ey zVmt5RMytMg_R*UT{qYp`8M@EG!BGnxC7|AXI}SE>l2{lQ(xj;qmLp-GcbY*U;&)Xb zr##5a2a> zqSUuU&~zfe`IlSnrX0u$g@WcYDmO%^+DesEb^pkau%RXUqiNk+)D9z>%2ID#1<*y^ z73PUQ{od`P#x}CI$MyeVq@bfbZ+4fNeG(LDpvKyTW*wxA>ozl3R7-zwt-kko# zu&Fa0GoM4>yV8H)1flba8u!2mVbV$`MRq@hNI28)?^sYF^jYO?*qv)MqI59Xa1zC9 z$H%p%>_joD3i&LRe0*Hglxtiq6R!2>C~=J7wil*q`VFlxzM6;E-Xq0uW|Ub;Hi?(5 zeT#VjlL92o9sVICQka}NZX%W%1~m?e1{Zsn2MX0GHNJbeyXN0IL(T!xE+&h^LL%i5 zQq^!S>JR5^z+zM2JdSoqy&o=_A*j6Mv97?2e&@ph!QP;NcKC(fmkDHAs9sg#I=|PZ zG0_ak4aW>lZ*tYQpJ!LK7B`X?y7}cgs=&^B#`>e3ZcT>TbDtfvn2KRSWqkP2U&Fp* z%_lp_+o;S}pj@(345Odx_1WUlOpj?dJ zmk9#7eqAEafyaGUE`Qk49e__Lb_pr}m^-w(%axZine~hQx!CFf`dCfRfDV0^QM&dc z=JgX*SQHa;W~7S%1nJSX1Yp8ds$8_a5a#W8(s1Q_wmIamN?F@$)hqf;5X34GDay)z zd9}iRCZ-$1r@Qp3c%Yg!{Cmd=TK?yD!a)kQ^mC@MZ45NS=SvVF6fIheJe+W%rc zj3y=?6V4Z%Vab^i`GG70rA2FrvHi{b0lz9kC))tUwt-M|)@wQ47FQ4QccNWzq2F(fM~K46ynSn6L3m1l15nW;U*RBb zCy|75iM3P3-s0Q~N3sRe6p@MNiem7}@w>Y=uHF_3ZbP$}5z-baRZ!F#J5|?WAPV!3e@Ki4re&6EM_j9}R**0ZavPA%2_&Pep+knS+tKCCgA?-k z0JiA}3L<1zaYS@JIQ;Wc`Kf>c%Hzo8;UEPU*$d~#PJIJ(OzNFMnhG)BIoL4UF{|q8 z6jVO_ZF^>Y&xck<=cC&M$|5kEi^EB+o}`{}X7*1*-%RAmqDIr!$s`4@KRxE+VT%FQ zE)jT$Tp4XTn+09IVF*T3iT`k7SJjpW4U7-y74pkvjO7f!gY{Bw91qHWgree@#daDD z&}{E5VuZru3(b0``_I9g9QSl}g&5fC**T2LX8cjcwe$T}z+AgUoh0Cd)p=}}fCV?I z=?)h=Pyy-97yaW0%uhx}MFA5_1b~&roj+*7ZXbo}#aoZu!0aG!@d4quv`lUjLr4)) za`7{U52E60A4-iu>blc`=*nV-sEa!7cWy5b63Bf024sDR2DaJvMR+YBbYFx}E5|Px zq_|3?4aKu}1+=R`OA+IeUo47(;Vjktj5)M?+$4%V824nGmPh-Xg-cm+#{jz zL`U5M7?+10>ad_Lr<={^>x{vJ5~h`gus|-Ak^+>4opi6Z57IY%z<0&u_q_dK ziBGR{C$8SMe`zWmQz`t;J*jY7G>{+#~~QuP>`bbKFs za1}7lF6U&u{2|si_sMrY#s;`l?(eP*7YwnrMcL>m?2g7HMRVXu! zw@lm;G#jv)7i%fl@{dj|{6I52xz#Y_XdB(r2EEcE0eITA*UbheHX0;ag0)C|ytH9JVefQzPkXudr zegdYpGcR@&6F9MSTwo}ax;_=eilQjJkP1uXM|EE$gs<8p94Ys|wP4*Mxi-t%SkBD9hS5?NiVupjqcP^@^kR$i}mXkAd zG$j5zJ#hmD0{Irxzc9mFfij-cvlju9uE>Y-n^;8xuT;TPL54mp8-*#-GjX32huFe$ z+vuCqMoxHcrgr&YVV6shN4ZVGxE!Sjt|G0!Xw<$AmlfrVsM#|y&C9}3ooi0sAu5_+ zJq$69#^qOJV76ZWlRVm4*hdz%W9VOgEkdd=T~$b?GI=@y338N2Qtq=Q6gF6Ft!oo zq#Ab3*H?l4yG;vPPsPglYU^!?XFQ~eKt%b`-`^QB?@W0&}y4Gmd;rjT5l=<)H z3e7tHDY+3b@E!$Ss!_^dl+a-hl=CoRvk;PR=;)Xoo~M9K$qej_E}iQuBVQHWT(64I zj@xaNql-2MYkQc&Wt69B!u*|yFvGs;PFB?k%PfwKNm2hPY-)6>$j55E#yjOwwkTeY zsJrVmc`J3v|L*%Lf8+ys)DwRJl-N&qe2&jO z`C-+nigtzSJY89U7ZODWu8E{Al2!X}hycJHA1dd)TDu3wQ!$J#yR((6e`9U1$| zc*}R-eW)m5IpUNWe;ni6Z1#MvirG~0u5S>D>np^1uQ*D0w)c}?XaJ~{miA9GD{=E80b-pjWX5{k(=wQF#*4rBDb*zx|{ zZ|bV?GFbez{ZL#Rqj22`2}IQIU`1%TGEq*SOQE7|R&&4w!SxGCzgzJ3fAZ3TL+>M* zne7E6hal!VCTH|S%62O-t5dHAJ_$-A>fR*rAdYD9hIbdR;y;?v+7I-B}bjlam>}xNZkEL&mzY2d!blo`O3}IAcXF*@J z0q2ynu2qEuj40M{!Z(D{rMRL_`XkccvlmsUPWMxvBkAF)*4sM#9Kd2Zhm)hq)~-|T z9hXFxSaKM*==#{1u5Y^$TstC{vPUHz{WN?nTelvKYg$8Z=+q$Nt2ZcH9=J_;z?{ou zWe81oNUhU0N>!NYUSeT%q9AqoNLpW6X_z&&lw81iv#We->j{GZ+y80-$~PEDo5SKh zCwg*ATCQDaBGVm;jSCKKv+@VYm=Nh6D=+sE({MF#sCw#ZRT&JF_*5kwsLOpd@>HOz zrt{4WWhx}<^Kr?(=cyvF75un>Mf3T_V_l3m1M|^@?SA_>mhgTBqJy?Fi9W+iq~J!p z*Zw-G#yR5X$N_)Wuyv!vFjvm!%+a$>g%>;@_;>z(uiE|~;{$`}gaT#JJ>=M#5zw{} zbBWoEaiT+8&tfXMrRxCMSOj*liNm*(hjTQ+PZwM$r2bN&pTPiHp~xg{w(#%ma$n`r zTBO*5Py!`S67^i94w{5|sr6W0mGmOOGX z5?Os{TTM0Is+E5lM~@3x;Z-n^eT)v*QI#o4v6G>5d_Up`yXS%ZgfD1XAqS zmmCk{2d5C~&1+(1_ ziAZb}8Dvj?`>IirXhIX4%8^D#DFnz?4(8A9dhw0jpa&%h>>(h}MGEsqJW*^M4|QV$ z@HXNG(md?C+@rc-31K(0ZG`&ljDO6Ep=->xFTV9?Mkx;t%59YfI}4C`$RxSDP}UGZ zhg7mPpr-{s{Tns6APaRJH@N9sGSCCWM}l-4QsA4HzxSk8q9qPWgA_d!FWOFm4wC}* z2WW|<35dp}WCzf8&6!;bb=T$VY4Tc>W?x;peE~#E+L$Vry@SQ_3Mg5kCVyTx5AEQ- z2rUj}k0ezkbWCQ#tdn<*Z9a078~_4}y;TU+V&US3*uirPDDxIZqSO(;*c?ub{RjFD zaWJ=YsmsgIYvcZ&WrCyqmJeXMf1V(Ge{l(G#lndGn2j3d!R+v zfqlI{-d|;c4_iPHN9Lhvh`8h$Rj|m+vG4+u0@c%KqtMWR6J~tb)?_|e3`UU)3#H73 z!dThKqpkbrr`jc^;dfwAGcG4|$5^C{}0Sh zko)B%qGb|eg(CKm`XEEL;v<_tm7Ql8;`*Xeo}R2se{ttQBcK z2F=(wt(ACz{6n=;pCpzqiW$PHPm85>nJ7vNRR#_$QjGj>d`$gILoz$7O0N0uS_}yW z6nRU34!&GLeHo%%fZrmI!yC4wiIHJB8u<#UdQkCMDX^X=DJJTGX* zV`gabeP2~vq9NkKcpR_%7>x*v{jXA=CB|pmwArPlpoQOF6mq-=~p#USdr>Ez&lAOZfI}p*p z{g490Z(+&~-{->NKZwNH&Fx^*X*)#At^*Zh7O2TV%ywe8?Yfkck&$cPOtSd}u5WR; z`9{MzxIi3|%(<03MYkH)A8cSFIGTiFQd&x{nP_r9Jjs{{KUTX7Z-`=?KI(GxzMo>- z`SZ_rKT`GQCdMq66}p_jrLwb&>poDo3xd2CUE_;YlH<~xzaQ0EOI!!Nh9UYxiqo(( zRs{*LP6ZzY&*5X%ZrNk-rFI+Yt72D~h<7NsFsJBZpRWk8wOBs@^t8ke zby#-@cwO6LNN>NnW;+ZhL>m0>ci+1l!1Y4J>G|c*rQRnqyWJOZ`?(J0sX#fSjGE4^ zBoMEZO-;?bQ&AC<{|NVTx?Hc;xDfU7=f||g*-$>EQu^9)^SIj;o==2W2Za53};aJpwiD ziwJDFf>rrz?R~}<@%Z5(kqXdrrygmWjuAG^1RTUMoRw0|iYEt#HQZ}KGP@({YP>Y>D9fpb;NE+>|CQ{w{ut4pS~r^mPR|uxA2RyyiQh(+maru`U-X&o z{e<}M({4aOE$p}V2g;`Ny&8}g>Kp}ER+Tf0J$QFH4)?7RE~hh4u5LXwwpBa~)7C}N z)mXWFDsCsu2&JhRfR-qf$)(F-d9OAu!Q4!?>PG0y!lF^@#EU@x0>$hdCip-a7~t7l z5p%r|baPW<%00>UVpnC?6$LKogT-C-9UW2rOIw`jwB80=-JYI}FfrE``1l(^x=Yv) zIM#D%6|12aHNl6!^Z*Z_a)yqdk#)RFMJL=M)?WhVUG#d9Bh|FXDd0JcUXT6th+u$HTcyF*AKylC?!7#A6$m(bMbyg+)yT2U)2k3K3_WL8~ z2d-}UK>V_^*VNnYjQ@j_xbh~)Kd|PZ-zXUpQD~;Vzg%F8RZj{_yV#=8G*M;}Y^;a5 z8BAPmDj__VRux4vQjGKMdy-z*q;g6u4K{Xydr10kZhl676k13OW7iZ{TpIe=Zoc3K zYYm^w1K0Y!y$Y$Bsg}Xsh`fJUe*XbdFfYWw-&tO0*z;BIiY*OS{wl9(H`^{(1r+Mh z(kNE8dNr<#(5;3c-4$z1pXNh__^i0Eg`QTRI5LZl$XxP9C-vRvp(5*U@kR4owPUpG zcpyge*n-MwwBe56cYw6)IJ7jp|A$s_IeFS&vZXYUT#YRAWiCD#eB-DyE7{+xBMSN#Qb?y;X{HbIJ^1C;gcZ(dF<)HZQ6rh zciFg6WCGX8YG5>zLj+o3fAVo>>?Ly8~e;}fdQkJcyr2vr9EJL!k zw8RGD9Ic{-`L4q@sJMm|o;}|PI&-(aW$Vd$js<|tF)JEVJ zZxA2vP*2@y`O`R*2b0y8qKH!Q(QUj|%n(wwrFtArHU75w$0V9JF=9JVp$Y!^c?!%4 zP9$gk{jKBS!esmTDejMTdUZ7n1*|ZuX?rxae@roaL6eXO^m&|g6FdvN#QLwtCY;pE zhxQsKWuv0B5>2V-@GH~7T)uZs%$E(+w^PINwDU{;kfO7Mt-BtrubLl^YivgUBnC)u zmEJ+vLn6<+y14AGTUGZT<#g6V*Qi!$M{jkEB=Kymt%d#jN5%X70mpg%pwtI4>~<}r zW=28(HmbMVSMx_nRss^}PjG?G?eyP2i{t8E&ie!Guy-<(}toR%Cisg*ec->m(mjA!Ka6`GRC2~|@VHUKGyq9m3Jua(p?yjt-x zD$X!4IB0yE@d_?(FqeP8#KjagqxT0jSllkMlm#tzcVaWbn`! zCvIgGJaU<23DL74!zbZgcL3Rrza0#NG`0*aD8O^)=>hIevWN<{38%_QhPk;Zcjh5m z$M@;(cZh<(Y1CPEjQ9QA^aKc|S@x~%$8CL4YI?Sqni+;`Ow7R(&(-kN?G_=@H0Oa1 zr^%5c@6Ds#zCg`}-}gb)1kit9_XByehlj~wpz7^r^o+t@{WoHD*Aun(OTTo)Ij8kB zuC~{d$|_$s6p*I?+M1*K>*8_hV<8h?+igk(lVB$hI9Ypv%AUS6AU#ABU1A!RgF`f& zs=*+QKhlye?6Re0CyE{DyuR#JhgO{aaH3#dlKE4V1N=yb022q6Cfa>#dml!f(qZb> zXJD(rhn(Ttxg#UvK3Y?svroN(WQG-jeVA&#;{o5T_W_h|d0t`|tZ-?i?wmkR@mWS> zn-dwC-1n9R_xAYp35&8lRNlqVluP=04DuwDk>rX81^|m7!o=E|_#4D7GyOS}Tsobl z1Pa9H`Ks%RM@L5|H8WF@vjpgT7}=T#l#~)6P0mY%?mHHM7#;Jocq)q-J2^#3?Vs;2 z5P9&opOpjzqHqFj+A^b}^xwzBZByD!`6zqd zzpe9KJI7_YT?AaO&a9H1SoC7VzqXl{aKeqI3t>|wlZe8Ucp)~H9rZ2zPTvaaCZZA^ zin-&%P+6dUX_BFGnxJD67Fy;>@MVO`gc#PUno|3b=0b~tlaG`$0SM^@t~Cj+ zeOMaDdB~_rZlVv>jLPc*uNpg zMnYCc<|?9^7WkP`9fSOU5J5G&rhWP!uSTd1ZovRR3)E2^r0@i zCnM*3|HSK7tA|f|>s~0NQ&H&1AV7 zKN_9!S8%P30jxToNrb;bU2>P=a_&kcBqCSaDx&Qo#0A&x#m&!kO5XvEJ@12?5PsiJ zdfx)Lcf)HID>FgFRKgO`39|r?iB&i$Wos$}^NW@xud2tFb$pi@5U|IjTx$!j4CU*L z#Fk{P80}NULUiwOr4@Cwsf|N;qBPM73p#E+n8;gFdn%^O%hC5x*GxkMgDkS92TX4eN#5&O^6_b15Tc=+?oatkNZ#B!8=rC9p%@oUEY zaL990LFtD47>Z2^as)exV?ygavLDkTD0+rniHg(EXW2#O`ODZS9hLEWrq`YsBK4j( z+Vh3$ca;gnh$8aRQJg)!p;0!5F%sFSnbxXyg`>7#kx?J+ZfKbY0kdL@6;3@{xQn$B6GOg{|d zWT4r2Ns6kTLXC`r^FRqz=mU0{bA@hB$jEsQw5pLg2NOXAZeto-lmnxK+msvX0%@a zFpT5L*jS0^?(W`i4`H{l)se7KVpcsvu zD;G5`uB!hlrA0%gBLZ#BQlS4>aB#_x8}p}^l)$B$F1;Uo*n-t(r-R_3M? zDG5104+;Gc=)$*3G(WNzj`Mesrkbla2Qi+(fs-TE?Oe%^0Svw5-BnN26^`9fAGl4l zQhig{{K8bMkB^ym?keVykIzR&%geM3Vb}(0m+Ax5<>oukh12Nz8zyx-;ul~wQ~dhD z+mC2k_O{;%tnt9djKRS%@oemT7%h80^S>T-*rRYYg(4-Vp=#I#8=*Fl%PO_0Up3uZO zd;uWag*)4++#1o8=#>;dDMyYh#PXuktA%surI=V@i4-tfhbdxKx{9?hs(6whNr&`g z%Rzx22v1b+$1Y62TFI$~9vw6(E|M3Uk@*USzM_XkA2!2szcCgjS*g*0{<}&eVs9@l zwto$qlM#5pE(&Tw0_XYULWCC=@ZDj29Khcoi?F9ahg#EN2 zhV8n@Wl{-f&aP)ZKLMVK*X_YUQhZ-$w(0NPHV~HWI!m(UN{xs)v4PEy$*4XX#!Q%G znGQiKHZ@sV*tSXz(%Q+Mcw%1~#2M_K%w8hLT2(+4;GeEqt3>*ecg!GSs?qY*M@dtm zIMGWq+`)i^YDTN2S<@yrZsFIIx^cVeMZfV87uK|Hu#bDZ5L0QR1ULysutuXkOW$Ds zm=@)#XMp2Mib04U?4hYrc8$8X#xXf8PP15#pARLy8@=Se3CCmV?3ez^3f{CsRKo^6 z7R;QNLx4JOE7E^G-TgQPRcpP50=#4JXc)n5GXvZP8BDUSR?t6}j5D&!W!O=WKmb6! z$@0hB+Z!VjR~W?#FCHZn$IMbz%XsL$^U^u+xlQTYV7;cuyGaed*m17Ui0^U81V4E_ z0;DQ{Dt1R+pavM(Qffx8;E7DEVvTi@2r)r8oko|rE4a`h*|{&iWJAQllzy#SKq-|; z#g)m2%`Cwhk|c_RQThD1WNlSO(Db)^dj((yxMPCW_=iw(PmDvXuIVK z1XjD#BpsgFB_9a~0VPy{kshv(=khk@vEhlsbh&~LJv99H;T#d@EU-E85e3U?m4FcK zvD!Z3O(o~4vU51so~tWv!QR2{u`}+diM-*`zH#mt|F%PBSsx#t{|r@9sR@H*f9bMP zFo!w7rltpDOLmTUcJ&`?)p^o&0)!-xf$DfE>-7g>KXRcB3Vx3tVmLswj05W@@9qWQb> z`&xEQTZ5zYD^- z`gf4>84sb9_BS~e8xL>D+z9QziP_z)yXn1vag+U=wZJM<0F3vrF)gk8r&_#=T9fzo z@cvVT-=3Id`Mcn-@8|rditju~{C|jp%IL?Jp1T1mP%r-+cw^fUV4xq`i|zQ54q zT2ht%^TT)nhlY=8t*%!UO?5OPWyw)TVMWo@x22Abt1QzMVB$J;q+_i+L~DF>2(=jC zxM#&>qY61m<^WzSh7}$gx-oIbkb-w!{mzR*zb8d8fuevxPi-X=)ty~ANf9gGq2J0V zwdbCi(8dO6mSn?R9c+tkhTSc4-U+OQhUBXhMtJ%cqnIV~w+7cOE9Kyq0cKeR@x?sY zByKU>cwNZwLoEKu2M3TDw7*ZWr4?Y=yPPeSb-ybssk2xxJ<^QM@e~29*~9GD218ZEK4CovVNOu)+(}bAGQUfJq^FAW!=n5A;<53y{Q=S>6DX zNzFw}O%ySUcux{#m>J)+0~=B`_P_%#Kijs42MoHRpM9W3gd)*8{?1H<`BP-lNabv| zjwn7$Rk|dBmJ48dCMY@~Q=8nb)kwq$&~50y7k0?WqxSL4LapX!5ltRM+2*`J@;{R` zw-G$Ri(E}32%J1{9HrV(9@sknf0%(#uIN5iQn0h3AsC`SJvPDHY@54*xl=@Nb7wD* zsE-;7gkxf5HHHtLs!Hb{C{>E-;*bG@DC48((x6U_hs&akvd(qg6rPxHr78=Ay2Jko zUg~uu3I=?g|FV03oVV+f2wVtAy-A*GUfplxpu+ zJK$!7{+%1ZLDgEo+Vu*ClGvWgln>H@JqF1%5(%sK9) zw^h1wUiH;|x>gsL7Gu(F4H%bNkd|$B-~4bN%U0pi692X+nFzsWvg?lXldQyoaf~j- z*AD!g#Bm=uHg72VTT55hvq;L2#(3y4ExDc-jpm>_Cs9fcZ!tjws!ty6l1k#hL<(vS zc-2G4&mbIg-b)Xhk-q*7Mh%V(6_Mn>p8-3+oEclMN)rbEgEr6je8t=>%~*UcAt^1M zp6UqO^_8#765IioLa(p{lMD$TaxChDUqXRe6aYcdAOhXEgc(g34ep7OJpW{Js-VQv zeXR}R=krcpYq!HsIO$-1M5s~(dzj*^7C4;}|5>dwe8%O4I2bRh{zDI`a|F4Tpmu0? z?Mo0nFEw_%zSl&4kX*4D{V=kHOiO6-;vxd~LY;=B()fN5PjXz-2&@SuV}!QwMj2u% zxU7<)NPYrWntkmY4vr5p91+2};ZB}=<+x)fNz3-_E)?t$>s>I=Az_&K#9*aV_g%U= z5k-xc-xhRGv`#bb*W{msa-h_tMZ$=#Q*?wl%?Wzg@ey6WRMSSnsH>8=DZBdUF$r>t zU(Ks3js0SHc62QnrW0}To`g(DjOerBu{vrOf4(1bp4wtLcQhj(Q~&(bO8+iRGik*H zJ@prp(vq|#@1CJGNyrSdRp|L;?rdNvz?z80|%)V*ag|z#; z#0i3O%0>-^ahp?1%*P-^u2o%?=F{FnqT?yJh!0~NP3MOucQ}@q zNZqPL?u$@Bs!}y@J2rd`oO<(6LB#g{F@8L1z%E*Twxgx8a0`%ir{Mfmw%{G=*^&dJ z{%2k2SKaWHjmSMDIgu}P-Rv+U-M-!&Q`l}dukh`hZ85E;pj#&?c*MM@2di;4SP^%GmF zvk|*Y!RJ=IBdI+~AmIOap3al_dtw!gpg=u?3i7(nt9+8Dinnv)Ly^%-FCTsDfco@uPm=qMXlp1n+L|@ph79x_8+mGB`6KRnTbg#rYOmpX4|%H+n%;<+xE0=+jdXe?rBWhwr$(K z_5Ewzhk7_?)vBy>A~G^_N5tN8U=*dH4I5SybxV$@Bw13HLYJw<7eLt7)>%~k zG*v5$<|6wcD{{BI=Ao;Q79i{*(>9fV1ja*%$9fE!sS@3ZNb2~L`;pxKRg6E$dQal> zM_(la-xUWbas*PHTttHf0Gc(K{QU#~AOReFizZ~}MfpnSES5KVw2n35d>szXdJLem z5s($GGDH)}=7=^;O2bwrmz(pwF{`9L%PQ;Vk`u&~$&e5@#HKTBsSw36njfHjt)X`L zsiCBD_Tms2?U5ZDy}n21c0~}?No=YpmKU$CGk=g(YcF4Po>ETQZqZJzEhX78&s0Xe z(W!`A(iMA0vBv)5S4@0i#26fp`qDl^TSdW%47EyU`lcnqW3BPRTh<`pqH zFbPGKP9C0`Dp~g=-=6`4Q9Gn8&kqN%-wsq!uNiDv(Tg_&q^UOBeF1w%NT%1FjgMz0 z+KG$poplhU3_iBl1nh!Ht5D9>lN=xz0QD|&Y_pJLRykH|tT^pmQu*94?py|JRzxHQ z*>+L65*zgDLqvvzCHg609P}((e?}igfwK}*&1F|OUg6foXG70~_J!Wf-xrTF=RD_* zhYW1V44D>!nR z(1ceI?SwrB>7zZVe)l1TTtqk8)Cl#Y8vRh!{i$LiQKGt`9HYU@eX4nKT508~A^U4B zY1DRTGp$r6@JRLH5qS5l*`2i*TTN;QN71|5SE|rj-rqv$pqLWkQzVrBP03%ytxwTn zB1~|!5hg@*8^LvuL{415G~4k6wvMv;HmxHfpn+YUzl5*8%?mDA>JopCfcOjx`Pfi? zLyr)KvkL6&7U_3BQ|ElIg~HboIugHZIvYH{)%p7}ci+|EHog3^TaTe!u7#~amPNpb z3O1MFjC8qSSM@#UIbZ&Hdha<-Rf{JjZlSvyDeji?WNJ6M8&K>6M_9li<@9M1_t(;E z4wF5dPet*gH&a0oQHzI?I2@*q>fnf8vonP?vHnO_s_e@@2w z!Ns8Cgce!CX|>-v4r=5hqs7)%ik61&*pPA$oCxh40UCl44aN+ayNQYS? zy`lA(;UVDR>J;Re+}b0BSKaUWb8%0j#sJn=nE^HeQtf1)qC?kv>hQS!7=}yytXLeW z3-v$*liiSgJPw3ei44DyoZqwEO+Gqy#0ON24^DLIH7ko*S{6s1!GZ>5MqUUGx`R9i zs>5HyRGH+mbbdp@hbGf+lY{C!cmx}p@@Q;qY7OKtQ8UqC_{~fAe&Kw#ho~^T_43K| z5OT=O!^2Y#xbO2cZj<85d-Knk>8IEe2$;v)ec$^polR2PGxQp7EDuTDK2UfS6!G6U z?y{YSCEom@jw5Pin&0GPPwU#YP^A=wZSf8!d;QMq(hC2cBJsI35gybUf6L$XjPq)} z%bw3((YT7_49i171an0p6>8}>6aee+u-4dOSrSWNOhi)~i?+97Wf2Tn&600uk>TX< zN;UqgBHbNxDI&#`nuc=F5)-~=Vc$g;5|@O7MjmRwOJYafOuDyy?`nb8^0SbD>~?=} zzqO@dCzF335=-gWWqAz%ho)f4P zjC^&@^4kkVy6!LmUmv#v!U7Erwr_Xq`}B-8eMz%JO8LU6A9}k}xybdMRzhB{+Vt!o-{Pb3)+7d()*BE8_MkSdOeK@v>}f=KfdWHH7upOw8@ zX(R|j7ep7X5m#nw!cP7~UT%3Q%6y)3d>ENFE<@lI!*H*BClHe#sF&<-3}c}LNoFFa zKnRF))1`~hsG5R0M;*FG9I&VEI#7I$1tFY9+WU6MsfBI@E)!tQSTF2po#C*bF*=!e;W`BF5sEeg8|EALNoX zyhD^7vyS?1`0lsII2GDwAs^)=t3>rb*KUggMmQh=j; zOH#1efO3;L0+PGF1?DWZS!`oueyrMn3h{DGS?olEFxI?c;+`-H94tYZYHuohF`i0? zsED|13ixAaFbG1lF=BR9lQM#OzDU{x^iiPGVe_Bgt$8>Fc@{u;?6^oWt$fhuZ2!!F zKXeA6){2{JB&($J8!WYjh8q`;^U_1d*q~6HIN${opk^~#8*I7M!mK}-jOLL8?B1g* zB0Y%ESQ$_$WCdHa#aguI3MAMC5#G9PS*3&_v>_rgE~Mi4W?weM#mKN@3eRyfHreGW zDv6@*-R`TG7ogf3mJM@D#Vk-sqr)M6U1z1q6YShL~{vE zA*f71rgjq6;&aOBmz+N#78VjL)z0%dh)&-#77RvmxDy(%t5jM)krCqq@O~kyJ$f0D?a^I#54y(LD}_4Im#z}|jVB4m5=RI@P<5wpuV{5twDiA5sjl&D>F6wrll7x8lKfv1 zP@k!eGbh2h`PFFBG51KJk#0c>QRPmo^M;CG>0*gnS~2XTgXdzj(PI|Uaqi|1!F|_> zUNaohCT=Yt^Xx1jbKfj5fd+x!DN2_nGqJ?IRp$-*c>15&Lp#P6uK1*Wen$3NVHsdX9Q$p$lXw{d;drT@4J+{ zZ+B&qNXZgm;1#F&3sBZMx-q4kzf?LcI{pZDXF=L95-ke~PDvlg8@K0GUTQ;tzI{c6 zB<9v@BWDE9aHQC;k+p~gZ87*|y0Djs3yT_$jjD=iudVUOqV`G+`&Kt@5^o z?f*P?6&Mbqf=ijh<`NHn&;yur`itkwV0#Ui6?9{T`)kr`vBJ z0ivW7vKp(uM`^>HirYI zMdbp#pWwRx;!&XxVxMkarO6h|b;Dy)yDUu78a%95MNUd@1nmQH7y|n`aX1oht#~d7yCE;gB^cI40t_+qs0G$WAcCl-0+=)gjxymBbxF|Yk!uiu9i zw^2t#Ser^iE^(gyj)v= zsr}dwViU9I0WMozErP0Z)C`h_kV7F})DLx5BBYNtB0b2C)GFJR3H7Rlt6Zo7#S)#P zD@lz`#$BuoV>QLQ;!LrpMNv;pen7NrQLG7RK|~HAxyO5sqgvv?{5~LUAV!U2L*8 zW*BTpgBtZHugWeNK>Lqq!iz5fKRGYS_GMN!6K#@^ zN1a2Iq+t!0^_a?@bo3wy``6AVzOLgCJA-=p=5knx%#L#nzQtkCPf`#XUe&mE5JttOa7EYSFlr* zy)?g!F)Jw@s!n;rB8D@EN-lGOfDkEmrp5-<5agCn5#`jI_Gg;$_Ej__C;~D^IX0sb z#QUuTNF+&CIccR>$h5Ib+#BcZ?i@#Xu^bLN1_{l6!Fv?%gv2SX3Y-X;&E1B7my z#clWf0t3{tx!Tpu&2ae9YPG`^mwS6Ba3;4KDgS-as$;Z>NCc-;QJF3)E`uC*WuCf+ z4JFm$U%^V{pxG@VY?PJjqDocr2=F>~kFBOdag?QbL46>O|amUpfr?c78-^+O9?Ab}{ZfE-0v^vlJEqHvhpiS4uU@x0l0HhCqO;)iy`g>wgCvKryk|-%5fE zB+#07G(&wJe*6O@iM%wClbYb=nsI?@g|H$&w=cAQ}4D!Ycn&@k&9yrqcVQXv0G{((>$66#)q*vYwCM|cY zX(B+(kmo$oTCy7(VLN-T2Q@#KOXxW(hW7BT0oIqkTTQO)5b~^n!iih>aVqxZ7C5)I z(;PydA--LVlnq)Gl)Wh-b z3xz`{o#ErEifIU3V1P^A2#~poe-f3u%Yuv(8`2;tugo=wBkbQ0(frVlIWq%*Aj8xN z!($Do-TWvA$0!rcsRC$1W#R)`aF}3qrX&xhmDP~fo)WBdd#Q1ck&5^hV zH*eW928f!#q^Dm|%oqzYV1Zlv&nS-NMe|M1m4JUC?1(VkLhB$NKYbgchU<2fd{JHmH%$_=B9bV zY;n_}VMm`juP)0e_d=F&tZt%TI-AEb(=kDYmW!4MLy`JcxKa_qRJZqSZ??w`VVpD1 zWcrp9>iY+z;|-$5e*X7c{$0aC{JEJdN~|$hEs<ngY_f8xrB*K5q4^)3!jD};ZGB}Muy8SO$;NTEw_P|K`VHs@^VKm4p z>z2lGt@(nW*gEX!1`0UBtv_a&_duujElX1hKSHwZc%6&u%GEq?0^|z8q0b(<4e(cE z=j=?H)*AiGgAnn#mUKyt9#2K?dVSrE_RcKKP%R%%=Qxd~9X*`3W^Nl$<3{FG;`^WR z8O;UqJ>8t$3?vA*LNfu*o55Vv^a5nKJc+&9^x}%=J?Rod=+4=C9e2&EbR z^9H6jd`*td$?C!Tp(C|g#Bygerap~f2BJNbC4_UPo%v-Pn%J??b;t&}B0oiSZRr zm#~kO#!B_zl=3EQFEmQoPdsdKNe-lFtkI=n-H;JXRB&ZkIli zfIy49t(eRa*^xDi+{~%0o2_Or!GkW7_{=!xX>Qha<$)Z^8+vEcThHaCUzs*ae6den z7&sLV=FQzkp^AhvOuUsAQZz4rL`2~!jgonixfI(`Z4M-&-WD2Vts%sh>Dl}EwCs>L zGRP3vfJ|nDnqtfYY<%O@nR*>JV}6@^ffQO+KERNH_(}xgz?luWx*@BtQW1KiEE(d` zGzy|O+$LzTc8PnzB4Tr$&;DLL-0BPd{YRI8$981pIt^n@2gYsS_}UBZVKs?V|F(~= zT1MXCb~pPq_=Vuw%Uj^*4Fk{nl9}`5l9l<2^amaY;O!GY0RRa!BJo(9$j<9_L~jFs z{4dbp|J=dwE6l$a_xI(%jDI)yhWn%8&Grhj)1jnn<|n1cH>M8r!z%Xb-`|ASI&VnN z*IUv4??-jFM*wEouXl@Efu9lEfPhrQPblx_%OL{ja5uZTZod2r7U9*-I6J`j~y}Gf`iZm(B!GXe5%<3SbQ#LcDIn zrM3SZVg)Pz4i?AX0V~k<#lRHsB_gus{&Kk%+{$dig82&A$?Zju@<;sl`hbSxuK3nG z{X1>kpP9m*5sm(PSN5MDw}qtq0Rp+}p}+NeI2Fd@v4b7Mdk|Z+YZS*?_k_-F$GsYH z82aQ%*&rhik;0E*sllRG5-Nv8>}f;I8cO!Qk_LQlDrR~GgGblMfcYo_3t0js9q6ZD zS&B3>L#d#Qf}MC0K^z;)ToPK0Le7{lei7bgoXmbRshu8zsJ?^&r#BWJrWES&S+zS2 zxXjo@v45A=X+Y`^|6nq1q)d2m#ACDK93Tkr-lbqM{;LP=bh{eHr~SsDT{SXC`f@9y z=f#%5y92KF*_H6Ho7tulKHmzyh$?ff?Q=S%; z1}hxRrc3HLP#e2hwlh<@*eoeDtx$D(KlMo{|D8c*nGVZq{^JFGNtHKv>kd^*dtHJ{ zO~d#X!r*zVG9N6-II!4Pk2C0SMlKCkLh9C2>>qWTS5~Qs$O*PxQTZf&qh+$PZ42BX zyaoW{daw&5bzz1NR{x{C7>Pyfp7)r-f(^+Mlt|1u>cI3Ct^c&k{$UR*KIoRc0bnXL z7e5oN(O7xqIXO<^6IEj%?H?mEQ}{Kt!LW(76OrVEw)wxa)`I^SEl^ zGX!Fd&y6cA{92>aWcp#eoovcxVq*(YnEn9^3wt(Msolb2eP`1BEO}^f+nTAjn7P0b z@WYemc`~hT`?3cwN}yph+Fy9wpk{EQA`TVo&Mgq32s45*GVMD7&rSb}uQ8}-u!8-dMtWMCCn8jUtwkk$6z|C6O$C!dBa`dj_|2F1m~ zH6g@4Cu8j3-YgQCnMc4m&Xh#sQ^v`!Z44}IoFOd#Nt)tVo24`)#r&_Rhuw{SwcZO_ zx9ismQ?tLoa122(pZCjdY4&e;Ave;5KD6`D}C4?7XfJ>{r_43v#TRP4Mu^UJL~f&xW8mUqdA$x2MXcG#Ktua zBY~d?Rr+#_6-g?4mWXK5J9P}aAlTC+meOSbIpZ_l;Kk1J42sSN8~6A}|6bshRN*X3 zFoCF2sRpQ(iSSgScofkRXWLVG(`sA_VW(Uk+@S<@QUrEhk(e|k;Ydmas*W2^ zpBS>P`CU@_L;eyPhXsHDw~+p~9U}tnLS8OQI7*0-k~$;l7N>$}qHd)w0U8r+NIeV- zXSKN|Bg0_l+rc!}>Bdrv_{6k=_I!w+zznRSIe@&}eaUkVZxM3BIEm1X;XmS#49=t2xDg~n>oArg_q?cBAga0Gh8pUH*w(ecE8~}EYu#{E70wuG z9*IJJo=yL*$1=&CpaA2n#~mU{#GLo?>{JeC_T02tRn%*kc)rWDsWr^2t!*vlog7ml zF=9u`xFP&YSOAYIsPWRvSvTTQn9P+`T9hm)2+c$4%$?oJ%f5|MYaJd}cs~nGI6iq! zxzI!uaYAxeao3Y;m712cBowCxiIjR-ii0nlc*Zpj`0V>_rU4KO{G8GT@UvhOeK7om zqcUWr2`h%x1*Md@2paD#dF@cfJQAk8Q0SHeXN4oP`r&Pbm$ouOXKH9YQn0n=Q7UMD z?{m;Zw_+e*^kmRQAx3#a6x47hgZQR>fC~42FNCf1Ok)Pe4|Rv z;eyKP3ns0_q#Vt7oqGl{??NI!*o$VA|4F${1)UkTcn~^27sM^OZGr&F@rjnQU4)LM z{8b&vAsvaC;%N~m1jpODSj=KoNMptZ3Zt317-q&prh?2G4K06`n;HDlk^dvci>GM5 zqsm88;=AMk>jqTCtdP?J!hCkFZD?rwL(-6}BD`=NH(6j-?CILX{JK&d!VS+}PxeOz zV(jq|{a!heU^HO4{W?0calo?Dl4A@_8$jgO7emLnzQDx}G4ZEYEr9Vl8lSW;4h$nH zLeNehp)3UjdkRvvV=T};wMrpB!4MS83_MmPmUn_ zFgea40@g6}@CegLC=8Qr(UTl zcB)7*|7H;phIE{kRn!6CSPin%9U$rzM?$cgrt$B^hu==K&9t*RRj zzfAQNso0bK_y-RhV6@SDXtVRmq4l!^4?^nV6?hnwT6NasK1 zWy;lUh=-z)Cl*a8fij@OXyKF|Areq)*}t~{09A`NJe(omt7K>`u`d&Lb{Q-HKo9uo z`C7C^dxFMop;SRd!SF-AQyxpzN7$y zL!Ip~W|)iVd7&}8UWK0A0`cy&3wMOe^lR6tIi{clf@2%ndTW(xds@t=JJ}_d7ikU4s zl=V0M>8lt`I(LO24e=QT)uv*+!-L$fUEiAzk$;}MK(*cX0HIL7r+zox=hW!C{|=83 z5RgrG-+Nu|yK^IcNqQsc47`NtdT!7J{+~C1E^lRfV??mtY4!f29KDz=62n387$$grBrBbj z6G5F^1nF|}{TpShc5zS^LD`)AGeJvX{H~-EZIuQaoKV`$o>y+oUt(+#DIk0n9z!*m zAr2xwrkUL_Qx4dkEZI3xdyP2vL+rUWQI#%xVJ^3$!ZoTQ4;Hybn5fmk=0l&>tr0*M zg)kI|F)IcQgOs5f;*jWq8DHVSmnER3Cao$B6ll3tFC6t4??z?_moXVgHlGGZf#zc&smp$ zjDT9K;s3*$>+wzirnqi@@te%|N4f4k3D<(^aJ}HzbiVo89Yp>2@cch~jR_PqxQ^oH zY>}x4ZE~T8*a5HWw1LCwog}i}f`= z^?_wZCmo1x-_78x6AYIQbqNSm{i!>BGxDl9 zN1k6j7Bupfhnm=d_%yX}G)1McRFL-Ej>9&ew6T$MTC%iA-Qb@FD8!aSxdB|*q;rsB znf_R$LIm(rL*%Pt$){oUp;B;$^?Ta5bn<_w)d|Z%uq8<>?^$r0X(v_Eswi+V;us@j zbL7J#4>>75Xhdz5)Ya11&!TQA7*$I&-Cjq=lU(0LZEvNxz(6~n%kWrOKIlLWZyF3j zEor!EPC8tj%YYP)(bc-^DxjPRBX?zVsaV`{`fdaO6@gwIvHbTA^E5jVfSAng6Wb1+ zkJh?!{O8DV6vQB+(S_b6un`9x4_DpX+;*o4H`Cx3z%lh>&K63ImWl+#OOyu~TW#$Q z^IGjxT-eUAX_jyR6)J}2vY9?)*Png&wsZOpdqeA|1q5h(s!s`Q)0D|_e`!X58POpN z78bMb3&4m8);&_^V2T-+3mR0lFCmek#Pre1VT*M=2(nG^iJ2KN9+xD6$iu*u^>}~r zht;qsWKFbW0a2kr#5y4lPYNn6|Dcd966^j=z{p8u29FF2#B(Tm#kGBcn-*Rs_ktB< zEjD+Eco{m90sZ5{SSrXrzLfn}O^|D|px5SJ`bGJ5p2iP=F&i#b5}E*>2mpu4>-ul4 zIDCs4Kwz~UEg!uOE!V8&yc+nwEQCct15@Jp`wWxn+1mgdlG13Yas(}fM>E0R~0s_aiRLmxJ8KbC$1tbPN zH|9|*$D(x$ooBw&P?^0qpoFQ_el3k`!Jr?|Bua$9$Q8hXnTrM@Km? z*-ltvd`+KKDYvMm^!=u|E#n?7X6DtJ2hkKM`-#R&5ze_esi=lJfSo+M=Y*$w9m~#F%_r)j$A%?pAWQZcFB$Any8k%~!69RV! zHXh20gyi03vXRwnjCzJ{uQ~)xo;4GSq&Z|hiy2F8&$af`n^QZzqUIbY({A#ELVpwP zuRRriPwRsoh5RVg5bMkTK>X)1R}Z%X3RRmWAYE#32;NLu@;);1v{ftG#Pd-y4jfW< z^4zrPX#@Za?sIvN-&^*5ull(bncthkHBwk(C(9JZTBNtD6S9^Fb-On#m@ipL44q-BZgf zygHB)>(iJS2T)^3QWRYfjHMAfk_2$ZpQgB{n(SvR?n;}Kspn-3X#JRN8{0D(TS0Os zSI25URCl%O7V#IPNKI=8t%tTe(n1y%RJ*e3U}}))P#K6S=Lj8&jHaHXVNsZr53(Od z{*D{0A+E1`S>aKtQgc|rr)6T|jKF3s-TPhJwmzX3{>sjrozZO~*p0)nA263lpPkSJ)?yl4ADo_|JKs>;qN<>YVrC z*lZ?1Dv=2b7GrV%Few!o{uXN2?0>@c zK|DCH=4P{c#Up6wgAD3y({&SS8HE-)1)?JMu`y`PDAbo56mLs4lINV%ui;aZd848U zy!{zyn!3YQ-D7uo!JPFSMc5?hnbj_y9;|aANYfxqWuZ}Tq&$K#L#;5k*yC|hU3)9L z#eQWXOx>!X88Q1|pwq2wQ(vgy#Q7E3dT#n8%&h}(NT{nTv*y$ZtW!d$s#yna3*kMi zr|u<+hv5ZMV=_`NBrz)_5Q2N6Jo2A4O~Z;O-JlV)9K_HrSE&A<(XaJnB%}J@mW4nP58vfhkBy*^2id+7rh=jfXyB zIAsMRM};4rHHk9QFj=--)N9A~UqFM{14rSD|Ii2W9+7VV-RU4=8ue0!^a3c?)l_Mg z3MwbZJXdMX%8Sc3k?52uQU;B;mI@>bOlbsct?kvtEq3}xnc&oQ2T<-#A}wp6E(N24 zEyjf$L0QP6hBRXml4a?(XJvxsf^CPVBS|p(+0BVP3&8@#X|@CfuY!p#7pe=lDP|=j zaAU+0sHR1jG0aSV{~)UH7gIyvwFODMio*~j^h-X}GZE3K`v$&u^`4##x=RLa#s!Ab37(OE-U_$k)G3lZ0ivVP`l z4IYoTqr!|dWMJ@?DfSpmuv#N-0WoOv_}b!EjK|<&S2oF23xb1}nm?+Bel;c&wqLB^>&v00gPr@%N#b3h4(;HXW^78tXW}2alCjsTWKWKbvhBZq~NBrYj^nQ-QAOv1AO_uFT>eUPOL zY{*4w**S5{dC$tT&!suGfU9kpE(nT|0~ZIgJ%G0`oXE{Ri%%yrg&8rVz0afkAB*O< z6B+{y0tW~o`K4N9e*^Se|JRsKeZ8;@a>$6-$a9_u+zcx2MjP?dh+z6`4dw{ce%InG z;z5TVMWoU6jWK%8EjlV=q+WVD2Q13|SxYhWo#Be}tSAKNTF_`I2NN=Z;|%=Wr_zUa zL)Dsee)ee7mtT3%kJnevgSDd{hI*y84BcP9+SR+R8y$*C^A(O98_Oe{aGTBT$aFf8 zkR@(^$0kD(A`jv$^UjoQWqAXVRXAI21C+V;<_&OIF;lZOq^kLenOjDyS`J5NKbJygI?h2K>>?U8v)v z7G3?hvDO#Xd4V{P!Si;2Y!2d?A}LYk|oxW;xQza7b4kNXy$%-sil2cp)LN;GL{zY5bx5J=43HJ5%Mf(itN5ESAv zblmKx2X#1+p0GK;mCoKIt-w_u1&I-&JSxaFQRd=(X}&B0y(!}BjQ$V#C`|SSfn~of zPtdlM@-*eEuDB}JunOCOf$kRchaL637IZ%&GCIDnoKr)9lVg%PoXT8Jv|EEDcqAxg ze2`w<+S~c|DmGq>xCg6rI9|}pzY{(zX5)}07)D+~_KHJ6EX*xP4MlBt`QOZJ!u&D2 zhj>GEInQA<1n)j{${ZxLBND|@tVB{cR~`=9t*n!^WT!<<&={?b)I}GyA~i8&1o#&C zhJ8;FHg-%2cp!0fs_lJfYtZfA#H%i>ChPm}j6zr3L&T_6{00T8H0`w6lRMFit|n2` zObm>P17-MHV25-l%6j2%p63XUoCCO}(u~VU7kMYfBBt$aTq)-apoM3(TvLV0RVG(%2Cs)uR_w7?TJT?cau$^|+y>ZYK=$CI11?5vMS4-$R` z%6dEpBGtWyDcFT%pUn_de2AGX71_HXeM!xtXCEk->NKf1mqZbdZ;{MTZ&3YDH=}(@ zRe*xQoP=y)cNG+_XQz(%xt;{Rm1?rfMG#TUopris3-=fy#`+xZ_^!sTQt00*P%>e<5gc z640Sm*&6Q4V$GBU93q%ljbXfOoX$gRr#`+9Q^{r0lrWe|@N}mus3{y%KC->O`hUy_ zysQj(Dp7VGMsZR5-V#1v=}~k@vgMRp+8eLCLn2NmL|r;>(wxjiWbow4?zhyjgJZ+(pbKtfjrxNw@VTZ|$DD2p?U~Pl0ZT8b*(!cbZ z*(*j9NcFE;WusbWX7hfrKg!J`i4H?)En&dK5_*eAndOPkLXPccZ3SE)hz^$q)hw2w z9Z8b%DZdrc>6&mjv*@`+Wz2;+vnWgIM;&pnY1bxNyMFOpBu6j%M|MRfYI;sX8xvuY z_w(1%xk|cmtcGo2;JMnfM79(Cqh0R;oe^imlLF4!D^K!HKowo+72Wi`5CVswxg#45 zVLkL9Sv1YTLb#F{Y$6#bGD+n!j&zQ?DrUY}%XDdgSKN{?AwHRzVC(647$jM}%7C)+ zS}W0CX-8f`6(5vT$`dhWys>P5)3g7)-C?lv?sz>X`9+oo56M^J6@#7>@pVB?Z2Skl zsh~P8krB?~t4dcpIma>bU!>js`XiaGb`qdVKQ)0Q>c$M>Y+QeOR265D#2Lj2c>-T9 z2^QQ$ZE0w zV=9Okk{>!&-K3@t;)ZTE{zh-P^;>;`6H#pRll9e8QpJw*aI*Lzy;IyAD5oSX4NT&t zyOdR?Bs&=hwJ#21CDD;@v`@mH1&$M`^k4J>UxG=27RnwY(pWr2DXH0t`Y*yBNgYQNUmHM_jv-5&pC@J&8H zyU}%>@c`NbqM2--ZFRk*g56vVN`l~VzX_@|>VR1fPK(O+*X!ujEqd-NtL~%?danBt z5ruD}6jcYsRrxPSWyc$~L*x*-+%7dYJx36eE;hsAFMbGSTm|C4zx{xE=Sy~miX%~* zE_4Bd`gI&TR(l;vwC#^q&F$>uhjOgwbz<%4JCXLrIM2L+m``OzI(cK;EPvvw*Xe@- zwLQe4x9#>b9<1A7npkV3;{;!ybT;^YM86hEp*sGILpCuf~s2o z%fl@{nL@6gn$jQQ>+8#-q>k|G%lGtxP|&+QMn!=O`|9fI_3WHIb|(7`&0#T&>mL%^ zp@(}CzodskS{z&oMdAZUwnZC=I){ua{R#G&309$|7$n$Svjjz#V68^UNYr67B|R^0 zKh~uKg7+6sCgdNYaY+TfATgENmdRoZ{qwHFn3VnmE=TLI9;SSix{_c1kiNcO|1*o# zyeOUCyPj&5TD3tBuu5k~eRr4MRTKcA=tu(p<+u-ad3x42{y`}CvFhftciF^bwGZ}r z)wrR^kgimrT7MXZ+f?^L9!9-djKiYt)*^+ZAg(S!%^`ZLoEe_mysO!1J z4iwN%nHM2J;0FcE|CU~^N|V9vOfmggHDiHTrd$ySG?~SY`it?4f#3c3gf*D6<$?+T zZRR<#{AacQN)WHE?Akof+ySD};n&wEb4%>#K=nRvFwK9{??M@KV!ylns(0#%4{SOf zlOXRN!{ASEE=B;Z;dnom-`9Bbw@)66B^0U-#Aa;3e3~1>S%DXM;A4gQes@^ZnwFV%IkTtc#evy-DQ1f`A_%{{c8k|KT*5Pth>w zz|5sfmjrcx`xW#MYUsMctMh##4YvxcdemtP85r~=s=zqG+M;Z{g|M|lVE=Ni-{tCDuyeNq$F;#*fL8!2rTn1t z)=ZIhO@Z=S_ygl>k|D6&=O&5r)K*%kWF_hN=0=+h@M*sM?hEHcbi^JI@Nhy|S=o}2DJ(n!d8-nF=Z z@p>=Un(F<&b`H+UR!*G3dNIB~stH#2CRPyGJv(T4%4rAoRz#5pA^g;H#l zL3GX*N`5cN4;%kp*~c`LE|N{Ggxb(X%MoOtN72u*hD3cyozj>IPJdo~h$%PxO4j^Q zE_Z9Y=&9ExElND}63-yOR5x>WCWWR)gT2TpRBrNKL_y=;X2)CtkVE71@mW)D&pnX1 zU7kYIaB%G;E8ygNOZc8F$|2I{fj)DoKbdiE5AoDOq9ucB+BLcN} z;ZC=NWmuyj+k7Pu&1dp5w{}X>^>g6Y&e?5dcUGX@(stZ%3BKn%6CCyrPsu&>a4Lw&^QVa6_bb#LUB-h@I!^S`u=- zkpX{-cu-LG1oZbe0Sd)Drx>4f07c@mEr|e^d&|9Mm_?Fv6r8(#3dc~t>HIm*2{;y} zbfJ?7in8HMVo1s#n#nXMq)D>2we6NCMjK>pnQ7I~j_8Wxj7M&)Wy7fN+VjPP7L7j$Wq&GjK`928-dTyxoJ=-s#R$+v-9=m1|w0Ky`Sk)CawUo4NVPRQ#h(L z=mCMxPCS5#nhHM=htHSklc?6})aEwIyoz#QcBd2TQz}v;12lg0OqM>J!Sf>O;_Awd zayVvTLB2FT87(c`<}y^H`$k0I`Pz3m=zNlwp?XFD3Cwu{Yhm(skB-uzt9foQ0Atw2 zXB~PW-53Z1+5lMLz}dc@lW>_@eQniiWDP8GJk{O00ShAc!$0*pKVH^GnRLHjAD@k8 zfA_whA(`B4z0-=Ku_x$u=tLO@b6R2Wi7~ZS3-Byu%uLAcSxZ0ki>^cVh;R`?+j+Hg z$yDgc8d?`isfi$zLF2$8xK|ytj#IaXp6YUVBhR9Ca}ltaofd!PjDv+MqL4twfocZg zb&jhQhKwpZ)&hd|!AR^t5cmUgOVxi9q_&Ma^Xj zxp-CH#^j`IUdnP_`*3x!37RpJ4BnYos;E|BMUE;I1Ll@dizspvp;L{JY_t1hJ(lJ_|HWwGrfVfPG++5M3**LZQ zp3WDzBzYr8j>KW3N8`YO1Ni;^{lPJsoht^`Bu8}Ok0wn5gVEnV&=NN`B>+>36PdB; zlk+?om(rvd)U8=z^gm_^l#%9dau<{>t@&KQ?|OaYBzAm_+jh%w0) zDIuA{pT^}m9+jM59w*hiwfQr6(oR zs`5j0ClzIEm%Lu=tWM>I9ZD3fvzaR+=>|$Cxo7~aE#ISUd5JL`x0gXzezt!YngkX*t(O2zf%4? z*-%yB=YsHx!*v-vVCG!BP#D0ld*>Zm|L(P#-bp)eN|A{|@&;^kehlB{l_DtyavQF} z8SbJqUWc0y_QMV`lTg64@+wZrAju^}B8o8*2CS&8Tx2j}8ev|;v+P6TNF|27DlJ9E znNj#$hO?OrXCAcXF;dgHVG_tpvg;uvYABkQ+6XjxUZmSZiqj0?^9>j>O+RJ6f$Drz z%$UG_-fXgg0ejo)-$9V0kbERr8;2g&_Ex!HBiv!Wx6-PM-;&hR+kLe{!tO6gvi01z z6PgT5c;TH;Fo}hEEuQy~Lk`JldPPD!IvHBoK$_iuEc9-2TyH1$LXODwaFb^p99K~D z25p+=SZF18h2n6oXe_vu`+WyqEvD|%*v!(oZ>*eS45R%ot1!GsVbH3GkD$3y$oX@8{;kuA}=GK-fL-VNuASxA| zvsv!Seg~$14rr##tqWbPJR3G%U$gVj+t{a~uTm?MpgxSn)l`85#r#1n9m@pu&At~G z#x1;#LhU@y9k18xh2f+3y=MO&j<+!^BS@`3&!*v>6MnUlQ!1iveyhgGx!x#~WqvM@ zMysblRRWbtSv5TSAC;2-^509P#!qB_lXNv{Qwz)6&aj>N*rk+d(Y#j%8xZ*i@*a!G zJ7wH>MMQ7n*+}X#isage^9!aXz5>71^*^kzPD#SN%RBbln2c{d%zGC-ows|Bt>oI? zsb}&|jzO!}^j5;cSoqN5^+zj4(J;8V|J3w4$mRp1@^2K82xrH>xAwebj?JOYrI>do z8z7pdG~U5iiQj@(!~jYWYSf~n^Kf_gRwu$+@*H&1uQ2)gb{Fc~{eG+W=slCSJSK(j z>(92518U|`(J-zlme}VO#Z~1gsnEMMmAuxE?T(`@Jg_*2SLyW&IpMPiJywd3AqC Date: Fri, 21 Jun 2024 19:18:31 -0500 Subject: [PATCH 11/22] code style --- plugins/GranularPitchShifter/CMakeLists.txt | 2 +- .../GranularPitchShifterControlDialog.cpp | 12 +++--- .../GranularPitchShifterControlDialog.h | 3 -- .../GranularPitchShifterControls.cpp | 5 ++- .../GranularPitchShifterControls.h | 2 - ...ter.cpp => GranularPitchShifterEffect.cpp} | 40 +++++++++---------- ...Shifter.h => GranularPitchShifterEffect.h} | 33 +++++++-------- 7 files changed, 47 insertions(+), 50 deletions(-) rename plugins/GranularPitchShifter/{GranularPitchShifter.cpp => GranularPitchShifterEffect.cpp} (84%) rename plugins/GranularPitchShifter/{GranularPitchShifter.h => GranularPitchShifterEffect.h} (87%) diff --git a/plugins/GranularPitchShifter/CMakeLists.txt b/plugins/GranularPitchShifter/CMakeLists.txt index e5a15a65ed4..3d478f5bba5 100755 --- a/plugins/GranularPitchShifter/CMakeLists.txt +++ b/plugins/GranularPitchShifter/CMakeLists.txt @@ -1,3 +1,3 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(granularpitchshifter GranularPitchShifter.cpp GranularPitchShifterControls.cpp GranularPitchShifterControlDialog.cpp MOCFILES GranularPitchShifterControls.h GranularPitchShifterControlDialog.h EMBEDDED_RESOURCES *.png) +BUILD_PLUGIN(granularpitchshifter GranularPitchShifterEffect.cpp GranularPitchShifterControls.cpp GranularPitchShifterControlDialog.cpp MOCFILES GranularPitchShifterControls.h GranularPitchShifterControlDialog.h EMBEDDED_RESOURCES *.png) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp index 894d428420f..6915f3093fd 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp @@ -142,16 +142,16 @@ GranularPitchShifterHelpView::GranularPitchShifterHelpView():QTextEdit(s_helpTex // Bug workaround: https://codereview.qt-project.org/c/qt/qtbase/+/225348 using ::operator|; #endif - setWindowTitle ( "Granular Pitch Shifter Help" ); - setTextInteractionFlags ( Qt::TextSelectableByKeyboard | Qt::TextSelectableByMouse ); - getGUI()->mainWindow()->addWindowedWidget( this ); - parentWidget()->setAttribute( Qt::WA_DeleteOnClose, false ); - parentWidget()->setWindowIcon( PLUGIN_NAME::getIconPixmap( "logo" ) ); + setWindowTitle("Granular Pitch Shifter Help"); + setTextInteractionFlags(Qt::TextSelectableByKeyboard | Qt::TextSelectableByMouse); + getGUI()->mainWindow()->addWindowedWidget(this); + parentWidget()->setAttribute(Qt::WA_DeleteOnClose, false); + parentWidget()->setWindowIcon(PLUGIN_NAME::getIconPixmap("logo")); // No maximize button Qt::WindowFlags flags = parentWidget()->windowFlags(); flags &= ~Qt::WindowMaximizeButtonHint; - parentWidget()->setWindowFlags( flags ); + parentWidget()->setWindowFlags(flags); } diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h index 5027df8b741..cd49d7317e1 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h @@ -62,9 +62,6 @@ class GranularPitchShifterHelpView : public QTextEdit static GranularPitchShifterHelpView instance; return &instance; } - static void finalize() - { - } private: GranularPitchShifterHelpView(); diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp index 05c0abd37d6..7bb72537b39 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp @@ -25,7 +25,7 @@ #include #include "GranularPitchShifterControls.h" -#include "GranularPitchShifter.h" +#include "GranularPitchShifterEffect.h" namespace lmms { @@ -108,7 +108,8 @@ void GranularPitchShifterControls::updateRange() { m_jitterModel.setRange(0.f, 2.f, 0.0001f); break; } - default: {} + default: + break; } m_effect->sampleRateNeedsUpdate(); } diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.h b/plugins/GranularPitchShifter/GranularPitchShifterControls.h index 1a4483a3065..99452ca82a5 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControls.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.h @@ -28,8 +28,6 @@ #include "EffectControls.h" #include "GranularPitchShifterControlDialog.h" -constexpr float GPS_RANGE_SECONDS[5] = {5, 10, 40, 40, 120}; - namespace lmms { diff --git a/plugins/GranularPitchShifter/GranularPitchShifter.cpp b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp similarity index 84% rename from plugins/GranularPitchShifter/GranularPitchShifter.cpp rename to plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp index e533883fe34..3809ae36f42 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifter.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp @@ -22,7 +22,7 @@ * */ -#include "GranularPitchShifter.h" +#include "GranularPitchShifterEffect.h" #include #include "embed.h" @@ -109,7 +109,7 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ m_truePitch[i] = m_glideCoef * m_truePitch[i] + (1. - m_glideCoef) * targetVal; // we crudely lock the pitch to the target value once it gets close enough, so we can save on CPU - if (std::abs(targetVal - m_truePitch[i]) < GPS_GLIDE_SNAG_RADIUS) { m_truePitch[i] = targetVal; } + if (std::abs(targetVal - m_truePitch[i]) < GlideSnagRadius) { m_truePitch[i] = targetVal; } } // this stuff is computationally expensive, so we should only do it when necessary @@ -124,15 +124,15 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ { for (int j = 0; j < 2; ++j) { - m_grains[i].m_grainSpeed[j] *= ratio[j]; + m_grains[i].grainSpeed[j] *= ratio[j]; // we unfortunately need to do extra stuff to ensure these don't shoot past the write index... - if (m_grains[i].m_grainSpeed[j] > 1) + if (m_grains[i].grainSpeed[j] > 1) { - double distance = m_writePoint - m_grains[i].m_readPoint[j] - GPS_SAFETY_LATENCY; + double distance = m_writePoint - m_grains[i].readPoint[j] - SafetyLatency; if (distance <= 0) { distance += m_ringBufLength; } - double grainSpeedRequired = ((m_grains[i].m_grainSpeed[j] - 1.) / distance) * (1. - m_grains[i].m_phase); - m_grains[i].m_phaseSpeed[j] = std::max(m_grains[i].m_phaseSpeed[j], grainSpeedRequired); + double grainSpeedRequired = ((m_grains[i].grainSpeed[j] - 1.) / distance) * (1. - m_grains[i].phase); + m_grains[i].phaseSpeed[j] = std::max(m_grains[i].phaseSpeed[j], grainSpeedRequired); } } } @@ -140,8 +140,8 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ m_speed[1] = speed[1]; // prevent aliasing by lowpassing frequencies that the pitch shifting would push above nyquist - m_prefilter[0].setCoefs(m_sampleRate, std::min(m_nyquist / static_cast(speed[0]), m_nyquist) * GPS_PREFILTER_BW); - m_prefilter[1].setCoefs(m_sampleRate, std::min(m_nyquist / static_cast(speed[1]), m_nyquist) * GPS_PREFILTER_BW); + m_prefilter[0].setCoefs(m_sampleRate, std::min(m_nyquist / static_cast(speed[0]), m_nyquist) * PrefilterBandwidth); + m_prefilter[1].setCoefs(m_sampleRate, std::min(m_nyquist / static_cast(speed[1]), m_nyquist) * PrefilterBandwidth); } std::array s = {0, 0}; @@ -165,7 +165,7 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ } std::array readPoint; - int latency = std::max(int(std::max(sizeSamples * (std::max(m_speed[0], m_speed[1]) * grainSpeed - 1.), 0.) + GPS_SAFETY_LATENCY), minLatency); + int latency = std::max(int(std::max(sizeSamples * (std::max(m_speed[0], m_speed[1]) * grainSpeed - 1.), 0.) + SafetyLatency), minLatency); for (int i = 0; i < 2; ++i) { readPoint[i] = m_writePoint - latency - sprayResult[i]; @@ -178,8 +178,8 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ for (int i = 0; i < m_grainCount; ++i) { - m_grains[i].m_phase += std::max(m_grains[i].m_phaseSpeed[0], m_grains[i].m_phaseSpeed[1]); - if (m_grains[i].m_phase >= 1) + m_grains[i].phase += std::max(m_grains[i].phaseSpeed[0], m_grains[i].phaseSpeed[1]); + if (m_grains[i].phase >= 1) { // grain is done, delete it std::swap(m_grains[i], m_grains[m_grainCount-1]); @@ -189,15 +189,15 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ continue; } - m_grains[i].m_readPoint[0] += m_grains[i].m_grainSpeed[0]; - m_grains[i].m_readPoint[1] += m_grains[i].m_grainSpeed[1]; - if (m_grains[i].m_readPoint[0] >= m_ringBufLength) { m_grains[i].m_readPoint[0] -= m_ringBufLength; } - if (m_grains[i].m_readPoint[1] >= m_ringBufLength) { m_grains[i].m_readPoint[1] -= m_ringBufLength; } + m_grains[i].readPoint[0] += m_grains[i].grainSpeed[0]; + m_grains[i].readPoint[1] += m_grains[i].grainSpeed[1]; + if (m_grains[i].readPoint[0] >= m_ringBufLength) { m_grains[i].readPoint[0] -= m_ringBufLength; } + if (m_grains[i].readPoint[1] >= m_ringBufLength) { m_grains[i].readPoint[1] -= m_ringBufLength; } - const float fadePos = std::clamp((-std::fabs(-2.f * static_cast(m_grains[i].m_phase) + 1.f) + 0.5f) * fadeLength + 0.5f, 0.f, 1.f); + const float fadePos = std::clamp((-std::fabs(-2.f * static_cast(m_grains[i].phase) + 1.f) + 0.5f) * fadeLength + 0.5f, 0.f, 1.f); const float windowVal = cosHalfWindowApprox(fadePos, shapeK); - s[0] += getHermiteSample(m_grains[i].m_readPoint[0], 0) * windowVal; - s[1] += getHermiteSample(m_grains[i].m_readPoint[1], 1) * windowVal; + s[0] += getHermiteSample(m_grains[i].readPoint[0], 0) * windowVal; + s[1] += getHermiteSample(m_grains[i].readPoint[1], 1) * windowVal; } // note that adding two signals together, when uncorrelated, results in a signal power multiplication of sqrt(2), not 2 @@ -233,7 +233,7 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ void GranularPitchShifterEffect::changeSampleRate() { const int range = m_granularpitchshifterControls.m_rangeModel.value(); - const float ringBufLength = GPS_RANGE_SECONDS[range]; + const float ringBufLength = RangeSeconds[range]; m_sampleRate = Engine::audioEngine()->outputSampleRate(); m_nyquist = m_sampleRate / 2; diff --git a/plugins/GranularPitchShifter/GranularPitchShifter.h b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h similarity index 87% rename from plugins/GranularPitchShifter/GranularPitchShifter.h rename to plugins/GranularPitchShifter/GranularPitchShifterEffect.h index d1ed376d86e..d7bc3a6332b 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifter.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h @@ -22,8 +22,8 @@ * */ -#ifndef GRANULARPITCHSHIFTER_H -#define GRANULARPITCHSHIFTER_H +#ifndef LMMS_GRANULAR_PITCH_SHIFTER_EFFECT_H +#define LMMS_GRANULAR_PITCH_SHIFTER_EFFECT_H #include "Effect.h" #include "GranularPitchShifterControls.h" @@ -34,9 +34,10 @@ namespace lmms { -constexpr float GPS_PREFILTER_BW = 0.96f;// 96% of nyquist -constexpr double GPS_GLIDE_SNAG_RADIUS = 0.001; -constexpr int GPS_SAFETY_LATENCY = 3; +constexpr float PrefilterBandwidth = 0.96f;// 96% of nyquist +constexpr double GlideSnagRadius = 0.001; +constexpr int SafetyLatency = 3; +constexpr float RangeSeconds[5] = {5, 10, 40, 40, 120}; // adapted from signalsmith's crossfade approximation: // https://signalsmith-audio.co.uk/writing/2021/cheap-energy-crossfade @@ -79,17 +80,17 @@ class PrefilterLowpass float m_g1, m_g2, m_g3, m_g4; }; -class GranularPitchShifterGrain final { -public: +struct GranularPitchShifterGrain +{ GranularPitchShifterGrain(double grainSpeedL, double grainSpeedR, double phaseSpeedL, double phaseSpeedR, double readPointL, double readPointR) : - m_readPoint({readPointL, readPointR}), - m_phaseSpeed({phaseSpeedL, phaseSpeedR}), - m_grainSpeed({grainSpeedL, grainSpeedR}), - m_phase(0) {} - std::array m_readPoint; - std::array m_phaseSpeed; - std::array m_grainSpeed; - double m_phase; + readPoint{readPointL, readPointR}, + phaseSpeed{phaseSpeedL, phaseSpeedR}, + grainSpeed{grainSpeedL, grainSpeedR}, + phase{0} {} + std::array readPoint; + std::array phaseSpeed; + std::array grainSpeed; + double phase; }; class GranularPitchShifterEffect : public Effect @@ -165,4 +166,4 @@ class GranularPitchShifterEffect : public Effect } // namespace lmms -#endif +#endif // LMMS_GRANULAR_PITCH_SHIFTER_H From a4bb80d07c2607cba9c623f39fb2a223ec7c3681 Mon Sep 17 00:00:00 2001 From: Lily Date: Fri, 21 Jun 2024 20:16:02 -0500 Subject: [PATCH 12/22] code style 2: electric boogaloo --- .../GranularPitchShifterEffect.cpp | 2 +- .../GranularPitchShifterEffect.h | 109 +++++++++--------- 2 files changed, 55 insertions(+), 56 deletions(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp index 3809ae36f42..f290e92b27c 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp @@ -172,7 +172,7 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ if (readPoint[i] < 0) {readPoint[i] += m_ringBufLength;} } const double phaseInc = 1. / sizeSamples; - m_grains.push_back(GranularPitchShifterGrain(grainSpeed * m_speed[0], grainSpeed * m_speed[1], phaseInc, phaseInc, readPoint[0], readPoint[1])); + m_grains.push_back(Grain(grainSpeed * m_speed[0], grainSpeed * m_speed[1], phaseInc, phaseInc, readPoint[0], readPoint[1])); ++m_grainCount; } diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h index d7bc3a6332b..4126c528aa1 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h @@ -39,59 +39,6 @@ constexpr double GlideSnagRadius = 0.001; constexpr int SafetyLatency = 3; constexpr float RangeSeconds[5] = {5, 10, 40, 40, 120}; -// adapted from signalsmith's crossfade approximation: -// https://signalsmith-audio.co.uk/writing/2021/cheap-energy-crossfade -inline float cosHalfWindowApprox(float x, float k) { - float A = x * (1 - x); - float B = A * (1 + k * A); - float C = (B + x); - return C * C; -} -// 1-2 fades between equal-gain and equal-power -inline float cosWindowApproxK(float p) { - return -6.0026608f + p * (6.8773512f - 1.5838104f * p); -} - -class PrefilterLowpass -{ -public: - inline void setCoefs(float sampleRate, float cutoff) - { - const float g = std::tan(F_PI * cutoff / sampleRate); - const float ginv = g / (1.0f + g * (g + 1.414213562)); - m_g1 = ginv; - m_g2 = 2.0f * (g + 1.414213562) * ginv; - m_g3 = g * ginv; - m_g4 = 2.0f * ginv; - } - - inline float process(float input) - { - const float v1z = m_v1; - const float v3 = input + m_v0z - 2.0f * m_v2; - m_v1 += m_g1 * v3 - m_g2 * v1z; - m_v2 += m_g3 * v3 + m_g4 * v1z; - m_v0z = input; - return m_v2; - } - -private: - float m_v0z = 0.0f, m_v1 = 0.0f, m_v2 = 0.0f; - float m_g1, m_g2, m_g3, m_g4; -}; - -struct GranularPitchShifterGrain -{ - GranularPitchShifterGrain(double grainSpeedL, double grainSpeedR, double phaseSpeedL, double phaseSpeedR, double readPointL, double readPointR) : - readPoint{readPointL, readPointR}, - phaseSpeed{phaseSpeedL, phaseSpeedR}, - grainSpeed{grainSpeedL, grainSpeedR}, - phase{0} {} - std::array readPoint; - std::array phaseSpeed; - std::array grainSpeed; - double phase; -}; class GranularPitchShifterEffect : public Effect { @@ -106,7 +53,7 @@ class GranularPitchShifterEffect : public Effect } // double index and fraction are required for good quality - inline float getHermiteSample(double index, int ch) { + float getHermiteSample(double index, int ch) { const int index_floor = static_cast(index); const double fraction = index - index_floor; @@ -131,15 +78,67 @@ class GranularPitchShifterEffect : public Effect return hermiteInterpolate(v0, v1, v2, v3, static_cast(fraction)); } + // adapted from signalsmith's crossfade approximation: + // https://signalsmith-audio.co.uk/writing/2021/cheap-energy-crossfade + float cosHalfWindowApprox(float x, float k) { + float A = x * (1 - x); + float B = A * (1 + k * A); + float C = (B + x); + return C * C; + } + // 1-2 fades between equal-gain and equal-power + float cosWindowApproxK(float p) { + return -6.0026608f + p * (6.8773512f - 1.5838104f * p); + } + void sampleRateNeedsUpdate() { m_sampleRateNeedsUpdate = true; } void changeSampleRate(); private: + struct PrefilterLowpass + { + float m_v0z = 0.0f, m_v1 = 0.0f, m_v2 = 0.0f; + float m_g1, m_g2, m_g3, m_g4; + + void setCoefs(float sampleRate, float cutoff) + { + const float g = std::tan(F_PI * cutoff / sampleRate); + const float ginv = g / (1.0f + g * (g + 1.414213562)); + m_g1 = ginv; + m_g2 = 2.0f * (g + 1.414213562) * ginv; + m_g3 = g * ginv; + m_g4 = 2.0f * ginv; + } + + float process(float input) + { + const float v1z = m_v1; + const float v3 = input + m_v0z - 2.0f * m_v2; + m_v1 += m_g1 * v3 - m_g2 * v1z; + m_v2 += m_g3 * v3 + m_g4 * v1z; + m_v0z = input; + return m_v2; + } + }; + + struct Grain + { + Grain(double grainSpeedL, double grainSpeedR, double phaseSpeedL, double phaseSpeedR, double readPointL, double readPointR) : + readPoint{readPointL, readPointR}, + phaseSpeed{phaseSpeedL, phaseSpeedR}, + grainSpeed{grainSpeedL, grainSpeedR}, + phase{0} {} + std::array readPoint; + std::array phaseSpeed; + std::array grainSpeed; + double phase; + }; + GranularPitchShifterControls m_granularpitchshifterControls; std::vector> m_ringBuf; - std::vector m_grains; + std::vector m_grains; std::array m_prefilter; std::array m_speed = {1, 1}; From 70b93ba31d1f1faaf59dd973957c0086044f8a3f Mon Sep 17 00:00:00 2001 From: Lily Date: Fri, 21 Jun 2024 20:20:06 -0500 Subject: [PATCH 13/22] code style 3: revenge of the synth --- plugins/GranularPitchShifter/GranularPitchShifterEffect.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h index 4126c528aa1..e5c5767d6a4 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h @@ -165,4 +165,4 @@ class GranularPitchShifterEffect : public Effect } // namespace lmms -#endif // LMMS_GRANULAR_PITCH_SHIFTER_H +#endif // LMMS_GRANULAR_PITCH_SHIFTER_EFFECT_H From 58088f091d5fddaf8f4c418f64147d131cf33d32 Mon Sep 17 00:00:00 2001 From: Lily Date: Fri, 21 Jun 2024 20:50:39 -0500 Subject: [PATCH 14/22] code style 4 and knuckles --- .../GranularPitchShifterControlDialog.h | 6 +++--- plugins/GranularPitchShifter/GranularPitchShifterControls.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h index cd49d7317e1..751106b2ce2 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h @@ -22,8 +22,8 @@ * */ -#ifndef GRANULARPITCHSHIFTER_CONTROL_DIALOG_H -#define GRANULARPITCHSHIFTER_CONTROL_DIALOG_H +#ifndef LMMS_GRANULAR_PITCH_SHIFTER_CONTROLS_H +#define LMMS_GRANULAR_PITCH_SHIFTER_CONTROLS_H #include "EffectControlDialog.h" @@ -72,4 +72,4 @@ class GranularPitchShifterHelpView : public QTextEdit } // namespace lmms -#endif +#endif // LMMS_GRANULAR_PITCH_SHIFTER_CONTROLS_H diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.h b/plugins/GranularPitchShifter/GranularPitchShifterControls.h index 99452ca82a5..3ae8f881941 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControls.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.h @@ -22,8 +22,8 @@ * */ -#ifndef GRANULARPITCHSHIFTER_CONTROLS_H -#define GRANULARPITCHSHIFTER_CONTROLS_H +#ifndef LMMS_GRANULAR_PITCH_SHIFTER_CONTROL_DIALOG_H +#define LMMS_GRANULAR_PITCH_SHIFTER_CONTROL_DIALOG_H #include "EffectControls.h" #include "GranularPitchShifterControlDialog.h" @@ -84,4 +84,4 @@ public slots: } // namespace lmms -#endif +#endif // LMMS_GRANULAR_PITCH_SHIFTER_CONTROL_DIALOG_H From 71a817ea2537087c585900d4908260bccb5d77d5 Mon Sep 17 00:00:00 2001 From: Lily Date: Sat, 22 Jun 2024 01:08:41 -0500 Subject: [PATCH 15/22] code style 5: meakashi --- plugins/GranularPitchShifter/CMakeLists.txt | 12 ++- .../GranularPitchShifterControlDialog.cpp | 2 +- .../GranularPitchShifterControls.cpp | 77 ++++++++----------- .../GranularPitchShifterEffect.cpp | 25 +++--- .../GranularPitchShifterEffect.h | 26 ++++--- 5 files changed, 75 insertions(+), 67 deletions(-) diff --git a/plugins/GranularPitchShifter/CMakeLists.txt b/plugins/GranularPitchShifter/CMakeLists.txt index 3d478f5bba5..c8f70fc7882 100755 --- a/plugins/GranularPitchShifter/CMakeLists.txt +++ b/plugins/GranularPitchShifter/CMakeLists.txt @@ -1,3 +1,9 @@ -INCLUDE(BuildPlugin) - -BUILD_PLUGIN(granularpitchshifter GranularPitchShifterEffect.cpp GranularPitchShifterControls.cpp GranularPitchShifterControlDialog.cpp MOCFILES GranularPitchShifterControls.h GranularPitchShifterControlDialog.h EMBEDDED_RESOURCES *.png) +include(BuildPlugin) +build_plugin(granularpitchshifter + GranularPitchShifterEffect.cpp + GranularPitchShifterControls.cpp + GranularPitchShifterControlDialog.cpp + MOCFILES + GranularPitchShifterControls.h + GranularPitchShifterControlDialog.h + EMBEDDED_RESOURCES *.png) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp index 6915f3093fd..a73ac651c49 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp @@ -87,7 +87,7 @@ GranularPitchShifterControlDialog::GranularPitchShifterControlDialog(GranularPit m_helpBtn->setToolTip(tr("Open help window")); connect(m_helpBtn, SIGNAL(clicked()), this, SLOT(showHelpWindow())); - PixmapButton * prefilterButton = new PixmapButton(this, tr("Prefilter")); + PixmapButton* prefilterButton = new PixmapButton(this, tr("Prefilter")); prefilterButton->move(8, 139); prefilterButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("prefilter_active")); prefilterButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("prefilter_inactive")); diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp index 7bb72537b39..86e9a0cfd7b 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp @@ -65,51 +65,42 @@ GranularPitchShifterControls::GranularPitchShifterControls(GranularPitchShifterE connect(&m_rangeModel, &ComboBoxModel::dataChanged, this, &GranularPitchShifterControls::updateRange); } -void GranularPitchShifterControls::updateRange() { +void GranularPitchShifterControls::updateRange() +{ switch (m_rangeModel.value()) { - case 0:// 5 seconds - { - m_sizeModel.setRange(4.f, 1000.f, 0.001f); - m_pitchModel.setRange(-48.f, 24.f, 0.01f); - m_sprayModel.setRange(0.f, 0.5f, 0.0001f); - m_jitterModel.setRange(0.f, 1.f, 0.0001f); - break; - } - case 1:// 10 seconds (size) - { - m_sizeModel.setRange(2.f, 1000.f, 0.001f); - m_pitchModel.setRange(-48.f, 24.f, 0.01f); - m_sprayModel.setRange(0.f, 0.5f, 0.0001f); - m_jitterModel.setRange(0.f, 1.f, 0.0001f); - break; - } - case 2:// 40 seconds (size and pitch) - { - m_sizeModel.setRange(2.f, 1000.f, 0.001f); - m_pitchModel.setRange(-48.f, 48.f, 0.01f); - m_sprayModel.setRange(0.f, 0.5f, 0.0001f); - m_jitterModel.setRange(0.f, 1.f, 0.0001f); - break; - } - case 3:// 40 seconds (size and spray and jitter) - { - m_sizeModel.setRange(2.f, 1000.f, 0.001f); - m_pitchModel.setRange(-48.f, 24.f, 0.01f); - m_sprayModel.setRange(0.f, 20.f, 0.0001f); - m_jitterModel.setRange(0.f, 2.f, 0.0001f); - break; - } - case 4:// 120 seconds (all of the above) - { - m_sizeModel.setRange(2.f, 1000.f, 0.001f); - m_pitchModel.setRange(-48.f, 48.f, 0.01f); - m_sprayModel.setRange(0.f, 40.f, 0.0001f); - m_jitterModel.setRange(0.f, 2.f, 0.0001f); - break; - } - default: - break; + case 0:// 5 seconds + m_sizeModel.setRange(4.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 24.f, 0.01f); + m_sprayModel.setRange(0.f, 0.5f, 0.0001f); + m_jitterModel.setRange(0.f, 1.f, 0.0001f); + break; + case 1:// 10 seconds (size) + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 24.f, 0.01f); + m_sprayModel.setRange(0.f, 0.5f, 0.0001f); + m_jitterModel.setRange(0.f, 1.f, 0.0001f); + break; + case 2:// 40 seconds (size and pitch) + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 48.f, 0.01f); + m_sprayModel.setRange(0.f, 0.5f, 0.0001f); + m_jitterModel.setRange(0.f, 1.f, 0.0001f); + break; + case 3:// 40 seconds (size and spray and jitter) + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 24.f, 0.01f); + m_sprayModel.setRange(0.f, 20.f, 0.0001f); + m_jitterModel.setRange(0.f, 2.f, 0.0001f); + break; + case 4:// 120 seconds (all of the above) + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 48.f, 0.01f); + m_sprayModel.setRange(0.f, 40.f, 0.0001f); + m_jitterModel.setRange(0.f, 2.f, 0.0001f); + break; + default: + break; } m_effect->sampleRateNeedsUpdate(); } diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp index f290e92b27c..d9867cb3d1c 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp @@ -67,8 +67,8 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ const float d = dryLevel(); const float w = wetLevel(); - const ValueBuffer * pitchBuf = m_granularpitchshifterControls.m_pitchModel.valueBuffer(); - const ValueBuffer * pitchSpreadBuf = m_granularpitchshifterControls.m_pitchSpreadModel.valueBuffer(); + const ValueBuffer* pitchBuf = m_granularpitchshifterControls.m_pitchModel.valueBuffer(); + const ValueBuffer* pitchSpreadBuf = m_granularpitchshifterControls.m_pitchSpreadModel.valueBuffer(); const float size = m_granularpitchshifterControls.m_sizeModel.value(); const float shape = m_granularpitchshifterControls.m_shapeModel.value(); @@ -117,8 +117,14 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ { m_updatePitches = false; - std::array speed = {std::exp2(m_truePitch[0] * (1. / 12.)), std::exp2(m_truePitch[1] * (1. / 12.))}; - std::array ratio = {speed[0] / m_speed[0], speed[1] / m_speed[1]}; + std::array speed = { + std::exp2(m_truePitch[0] * (1. / 12.)), + std::exp2(m_truePitch[1] * (1. / 12.)) + }; + std::array ratio = { + speed[0] / m_speed[0], + speed[1] / m_speed[1] + }; for (int i = 0; i < m_grainCount; ++i) { @@ -159,17 +165,18 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ if (spray > 0) { sprayResult[0] = (fast_rand() / static_cast(FAST_RAND_MAX)) * spray * m_sampleRate; - sprayResult[1] = linearInterpolate(sprayResult[0], - (fast_rand() / static_cast(FAST_RAND_MAX)) * spray * m_sampleRate, - spraySpread); + sprayResult[1] = linearInterpolate( + sprayResult[0], + (fast_rand() / static_cast(FAST_RAND_MAX)) * spray * m_sampleRate, + spraySpread); } std::array readPoint; - int latency = std::max(int(std::max(sizeSamples * (std::max(m_speed[0], m_speed[1]) * grainSpeed - 1.), 0.) + SafetyLatency), minLatency); + int latency = std::max(static_cast(std::max(sizeSamples * (std::max(m_speed[0], m_speed[1]) * grainSpeed - 1.), 0.) + SafetyLatency), minLatency); for (int i = 0; i < 2; ++i) { readPoint[i] = m_writePoint - latency - sprayResult[i]; - if (readPoint[i] < 0) {readPoint[i] += m_ringBufLength;} + if (readPoint[i] < 0) { readPoint[i] += m_ringBufLength; } } const double phaseInc = 1. / sizeSamples; m_grains.push_back(Grain(grainSpeed * m_speed[0], grainSpeed * m_speed[1], phaseInc, phaseInc, readPoint[0], readPoint[1])); diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h index e5c5767d6a4..daa35f26d7f 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h @@ -53,24 +53,25 @@ class GranularPitchShifterEffect : public Effect } // double index and fraction are required for good quality - float getHermiteSample(double index, int ch) { + float getHermiteSample(double index, int ch) + { const int index_floor = static_cast(index); const double fraction = index - index_floor; float v0, v1, v2, v3; - if (index_floor == 0) { - v0 = m_ringBuf[m_ringBuf.size() - 1][ch]; - } else { - v0 = m_ringBuf[index_floor - 1][ch]; - } + if (index_floor == 0) { v0 = m_ringBuf[m_ringBuf.size() - 1][ch]; } + else { v0 = m_ringBuf[index_floor - 1][ch]; } v1 = m_ringBuf[index_floor][ch]; - if(index_floor >= m_ringBuf.size() - 2) { + if(index_floor >= m_ringBuf.size() - 2) + { v2 = m_ringBuf[(index_floor + 1) % m_ringBuf.size()][ch]; v3 = m_ringBuf[(index_floor + 2) % m_ringBuf.size()][ch]; - } else { + } + else + { v2 = m_ringBuf[index_floor + 1][ch]; v3 = m_ringBuf[index_floor + 2][ch]; } @@ -80,14 +81,16 @@ class GranularPitchShifterEffect : public Effect // adapted from signalsmith's crossfade approximation: // https://signalsmith-audio.co.uk/writing/2021/cheap-energy-crossfade - float cosHalfWindowApprox(float x, float k) { + float cosHalfWindowApprox(float x, float k) + { float A = x * (1 - x); float B = A * (1 + k * A); float C = (B + x); return C * C; } // 1-2 fades between equal-gain and equal-power - float cosWindowApproxK(float p) { + float cosWindowApproxK(float p) + { return -6.0026608f + p * (6.8773512f - 1.5838104f * p); } @@ -128,7 +131,8 @@ class GranularPitchShifterEffect : public Effect readPoint{readPointL, readPointR}, phaseSpeed{phaseSpeedL, phaseSpeedR}, grainSpeed{grainSpeedL, grainSpeedR}, - phase{0} {} + phase{0} + {} std::array readPoint; std::array phaseSpeed; std::array grainSpeed; From f0ba517b9fc99b8b037ac2726ed40fd5123c4bb5 Mon Sep 17 00:00:00 2001 From: Lily Date: Sat, 22 Jun 2024 01:19:30 -0500 Subject: [PATCH 16/22] code style 6: the number of grapefruits i ate this week --- include/lmms_constants.h | 3 +++ .../GranularPitchShifter/GranularPitchShifterEffect.h | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/lmms_constants.h b/include/lmms_constants.h index c6452d6c619..0c2ee175351 100644 --- a/include/lmms_constants.h +++ b/include/lmms_constants.h @@ -36,6 +36,7 @@ constexpr long double LD_PI_R = 1.0 / LD_PI; constexpr long double LD_PI_SQR = LD_PI * LD_PI; constexpr long double LD_E = 2.71828182845904523536028747135266249775724709369995; constexpr long double LD_E_R = 1.0 / LD_E; +constexpr long double LD_SQRT_2 = 1.41421356237309504880168872420969807856967187537695; constexpr double D_PI = (double) LD_PI; constexpr double D_2PI = (double) LD_2PI; @@ -44,6 +45,7 @@ constexpr double D_PI_R = (double) LD_PI_R; constexpr double D_PI_SQR = (double) LD_PI_SQR; constexpr double D_E = (double) LD_E; constexpr double D_E_R = (double) LD_E_R; +constexpr double D_SQRT_2 = (double) LD_SQRT_2; constexpr float F_PI = (float) LD_PI; constexpr float F_2PI = (float) LD_2PI; @@ -52,6 +54,7 @@ constexpr float F_PI_R = (float) LD_PI_R; constexpr float F_PI_SQR = (float) LD_PI_SQR; constexpr float F_E = (float) LD_E; constexpr float F_E_R = (float) LD_E_R; +constexpr float F_SQRT_2 = (float) LD_SQRT_2; // Microtuner constexpr unsigned int MaxScaleCount = 10; //!< number of scales per project diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h index daa35f26d7f..f898d8f34e4 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h @@ -101,23 +101,23 @@ class GranularPitchShifterEffect : public Effect private: struct PrefilterLowpass { - float m_v0z = 0.0f, m_v1 = 0.0f, m_v2 = 0.0f; + float m_v0z = 0.f, m_v1 = 0.f, m_v2 = 0.f; float m_g1, m_g2, m_g3, m_g4; void setCoefs(float sampleRate, float cutoff) { const float g = std::tan(F_PI * cutoff / sampleRate); - const float ginv = g / (1.0f + g * (g + 1.414213562)); + const float ginv = g / (1.f + g * (g + F_SQRT_2)); m_g1 = ginv; - m_g2 = 2.0f * (g + 1.414213562) * ginv; + m_g2 = 2.f * (g + F_SQRT_2) * ginv; m_g3 = g * ginv; - m_g4 = 2.0f * ginv; + m_g4 = 2.f * ginv; } float process(float input) { const float v1z = m_v1; - const float v3 = input + m_v0z - 2.0f * m_v2; + const float v3 = input + m_v0z - 2.f * m_v2; m_v1 += m_g1 * v3 - m_g2 * v1z; m_v2 += m_g3 * v3 + m_g4 * v1z; m_v0z = input; From ff9b7b0bd5d9b317eb2f417d5ed8159afb9d1891 Mon Sep 17 00:00:00 2001 From: Lily Date: Sat, 22 Jun 2024 01:33:29 -0500 Subject: [PATCH 17/22] yum i am so full of msvc-exclusive compilation errors --- .../GranularPitchShifter/GranularPitchShifterControlDialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp index a73ac651c49..29a4c0bbfbc 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp @@ -124,7 +124,7 @@ QString GranularPitchShifterHelpView::s_helpText= "Pitch - The total distance in pitch between both stereo channels, in 12EDO semitones.
Half of the amount of pitch shifting shown will be applied to the right channel, and the opposite to the left channel.
" "Spray - The allowed distance between each channel's randomized position with the Spray feature in the Random category.
A value of 1 makes the Spray values in each channel entirely unlinked." "

Shape:

" -"Shape - The shape of each grain's fades. In most cases, 2 is the optimal value, providing equal-power fades.
However, when the plugin is performing minimal pitch shifting and has most of its parameters at default, a value of 1 may be more optimal, providing equal-gain fades.
All fades are designed for 50\% grain overlap.
" +"Shape - The shape of each grain's fades. In most cases, 2 is the optimal value, providing equal-power fades.
However, when the plugin is performing minimal pitch shifting and has most of its parameters at default, a value of 1 may be more optimal, providing equal-gain fades.
All fades are designed for 50% grain overlap.
" "Fade - The length of the grain fades. A value of 1 provides the cleanest fades, causing those fades to reach across the entire grain.
Values below 1 make the fade artifacts more audible, but those fades will only apply to the outer edges of each grain.
A value of 0 will result in clicking sounds due to the fades no longer being present.
" "

Delay:

" "Feedback - The amount of feedback for the pitch shifter.
This feeds a portion of the pitch shifter output back into the input buffer. Large values can be dangerous.
" From dced16361abfcb2e145f4869d45a4acbcc50a922 Mon Sep 17 00:00:00 2001 From: Lily Date: Sat, 22 Jun 2024 13:45:17 -0500 Subject: [PATCH 18/22] gui alignment adjustments --- .../GranularPitchShifterControlDialog.cpp | 34 +++++++++--------- plugins/GranularPitchShifter/artwork.png | Bin 46231 -> 45731 bytes 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp index 29a4c0bbfbc..71a8d15f716 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp @@ -42,7 +42,7 @@ GranularPitchShifterControlDialog::GranularPitchShifterControlDialog(GranularPit QPalette pal; pal.setBrush(backgroundRole(), PLUGIN_NAME::getIconPixmap("artwork")); setPalette(pal); - setFixedSize(295, 184); + setFixedSize(305, 180); auto makeKnob = [this](KnobType style, int x, int y, const QString& hintText, const QString& unit, FloatModel* model) { @@ -53,26 +53,26 @@ GranularPitchShifterControlDialog::GranularPitchShifterControlDialog(GranularPit return newKnob; }; - makeKnob(KnobType::Bright26, 20, 81, tr("Grain Size:"), " Hz", &controls->m_sizeModel); - makeKnob(KnobType::Bright26, 110, 10, tr("Spray:"), " seconds", &controls->m_sprayModel); - makeKnob(KnobType::Bright26, 148, 10, tr("Jitter:"), " octaves", &controls->m_jitterModel); - makeKnob(KnobType::Bright26, 190, 10, tr("Twitch:"), " octaves", &controls->m_twitchModel); - makeKnob(KnobType::Bright26, 184, 63, tr("Spray Stereo Spread:"), "", &controls->m_spraySpreadModel); - makeKnob(KnobType::Bright26, 131, 116, tr("Grain Shape:"), "", &controls->m_shapeModel); - makeKnob(KnobType::Bright26, 184, 116, tr("Fade Length:"), "", &controls->m_fadeLengthModel); - makeKnob(KnobType::Bright26, 248, 48, tr("Feedback:"), "", &controls->m_feedbackModel); - makeKnob(KnobType::Bright26, 248, 95, tr("Minimum Allowed Latency:"), " seconds", &controls->m_minLatencyModel); - makeKnob(KnobType::Small17, 67, 162, tr("Density:"), "x", &controls->m_densityModel); - makeKnob(KnobType::Small17, 9, 162, tr("Glide:"), " seconds", &controls->m_glideModel); + makeKnob(KnobType::Bright26, 19, 78, tr("Grain Size:"), " Hz", &controls->m_sizeModel); + makeKnob(KnobType::Bright26, 116, 10, tr("Spray:"), " seconds", &controls->m_sprayModel); + makeKnob(KnobType::Bright26, 158, 10, tr("Jitter:"), " octaves", &controls->m_jitterModel); + makeKnob(KnobType::Bright26, 200, 10, tr("Twitch:"), " octaves", &controls->m_twitchModel); + makeKnob(KnobType::Bright26, 188, 60, tr("Spray Stereo Spread:"), "", &controls->m_spraySpreadModel); + makeKnob(KnobType::Bright26, 135, 110, tr("Grain Shape:"), "", &controls->m_shapeModel); + makeKnob(KnobType::Bright26, 188, 110, tr("Fade Length:"), "", &controls->m_fadeLengthModel); + makeKnob(KnobType::Bright26, 258, 45, tr("Feedback:"), "", &controls->m_feedbackModel); + makeKnob(KnobType::Bright26, 258, 92, tr("Minimum Allowed Latency:"), " seconds", &controls->m_minLatencyModel); + makeKnob(KnobType::Small17, 66, 157, tr("Density:"), "x", &controls->m_densityModel); + makeKnob(KnobType::Small17, 8, 157, tr("Glide:"), " seconds", &controls->m_glideModel); LcdFloatSpinBox* pitchBox = new LcdFloatSpinBox(3, 2, "11green", tr("Pitch"), this); - pitchBox->move(16, 44); + pitchBox->move(15, 41); pitchBox->setModel(&controls->m_pitchModel); pitchBox->setToolTip(tr("Pitch")); pitchBox->setSeamless(true, true); LcdFloatSpinBox* pitchSpreadBox = new LcdFloatSpinBox(3, 2, "11green", tr("Pitch Stereo Spread"), this); - pitchSpreadBox->move(129, 69); + pitchSpreadBox->move(133, 66); pitchSpreadBox->setModel(&controls->m_pitchSpreadModel); pitchSpreadBox->setToolTip(tr("Pitch Stereo Spread")); pitchSpreadBox->setSeamless(true, true); @@ -81,14 +81,14 @@ GranularPitchShifterControlDialog::GranularPitchShifterControlDialog(GranularPit connect(&button, &QPushButton::clicked, this, &GranularPitchShifterControlDialog::showHelpWindow); PixmapButton* m_helpBtn = new PixmapButton(this, nullptr); - m_helpBtn->move(272, 164); + m_helpBtn->move(278, 159); m_helpBtn->setActiveGraphic(PLUGIN_NAME::getIconPixmap("help_active")); m_helpBtn->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("help_inactive")); m_helpBtn->setToolTip(tr("Open help window")); connect(m_helpBtn, SIGNAL(clicked()), this, SLOT(showHelpWindow())); PixmapButton* prefilterButton = new PixmapButton(this, tr("Prefilter")); - prefilterButton->move(8, 139); + prefilterButton->move(8, 133); prefilterButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("prefilter_active")); prefilterButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("prefilter_inactive")); prefilterButton->setCheckable(true); @@ -96,7 +96,7 @@ GranularPitchShifterControlDialog::GranularPitchShifterControlDialog(GranularPit prefilterButton->setToolTip(tr("Prefilter")); ComboBox* rangeBox = new ComboBox(this); - rangeBox->setGeometry(181, 160, 83, 22); + rangeBox->setGeometry(189, 155, 80, 22); rangeBox->setModel(&controls->m_rangeModel); controls->updateRange(); } diff --git a/plugins/GranularPitchShifter/artwork.png b/plugins/GranularPitchShifter/artwork.png index 446a9c1ee868c058c0a75c744ad0182a812e877b..74f0531caf5a46937a7616ec9b3c41e962a1e5fd 100755 GIT binary patch literal 45731 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 Uk#zM$K!BH&n7n9>utC8804d{_#sB~S literal 46231 zcmV)5K*_&}P)XL@OqEc3ETNta09L`FKJJ`-=IBPj1|Yc)F<=&;krGFb@hp!dDL>}Jvo zJSV=hOjb1J;nv~*D{a7xNF#>>H4@N>BuC>>n-OE!E|(9Sl+jrQwsNe%RQ8LLVlVAH z4|weQ!gJ~Ts%?}P)g?G4L;tc$A0sEPvJ61Z^rC&?7*aHfOn+n{G8&80G|Rb~PPANE z&GZHvgYjGSB{XG;zPKMNsrEn=?GwiY>7%^T2Mr$B;jN1P5ovOW}iu+Cr*aqJ?yGS1G_(YtDpg_W)8aijwQ zd+7UJVl#uy^aBJK`=F#Flx6ugfjY6A%W8J0fQ>qs z+tE@Vn`H@^bWR%)tk7TS*6jZ)=2cl~F=Nqz3l7HZ^vJ<7W64Qr8BlUJcXQNe6IC!4iyLg`mtE>MXZyc{L}8 z8agEQ1?o0hi60v9T$?82?8Z@Gqit-mO65X+rMFGv#rW@&p#Ta>Jv%q{C<$yqj!q9r z*WGM^qjGaL9vD?Qq5aTzQeSdw_J6*^o$kDt8%X0t_@*CTPyah?(|VgZ?2m7}j{al& zkL}j7O@7(p#s5CGi84={tg(anw1L^Z|Bw5HhT?PR@VnXunaGgV&E3ZJQI4BWLwWz! z1?P4d(!K6;K!`p|vENh%;WyCKa~*GqUdoQT@d(Gj!%+5B_{nv* zHNIBfXnNwbT+b*+(ErWodt|$~4fU~vZ!I5x>xs*%sYp!nOpGvLP#-k%466OYJzP%)A=DR&z7ug%Fv`UiZmO<&!xMf(Dg^R~cfKGA!z{wJ0^j}(1z5oS` zmE7@{>Uatn>3VhDmrg#T7Ytom7Xq@)b+9iQ=z_YQ2!wBRIoB#zs-m;Zb!Wb1(T*D} z)fokT7tnszN(7apKarp#*CJ|Rd?teeC0YD80#ZCL-ME$G1&#~lP^ROt2t83g64%$9 z#<+gRHlRVX>9+kB>tsHnEXMEbBg0!h3=jr@8+me{auC6OVx76)J_u*PL*Ko5{;xj9 zLjZ-k4n#Ch>uOsqB#M`TU7)#|EuE%Vh)m>Y92> zf$1O8gg#XEq6(;+v!ZCI+SUOI=_+UhlS17>-L?ce_Yd`0g~X%+K-&5sw>#^OLzjdd zOVF7Fe(<WUgQJdgUpEHZviTd2o!iHR15FXnpo8ypJjCDCv!k#`Ka6xXQGyqBE)K(g3Ar2T9%<00)^JAtEhNK(3?t3l31WCpO288C>kc z+X^LTgYw*Ui+MC_WbTz~U&=w7G)c#mAB(yJ7>;=uJ537EJfCeR4FqY{f7ZE+?SW)zGd4lbT5QS-o+Xztx2?B0#yo?D0i#d1`#mOh?kSGUMS5F23 zqUbGtP6P1>BqHAwDIi_R35qKtomrX@#b!PK*dBk^`1#%tX6AV*2(<1fV;Z720s=0A zip2IB@el@mm|ML(pk~$MP4d3PvzRpzdBi1_K-wc8_M03x^{j?mp~W%+hax2tVNn}6 zMQev@R^k9{&abcIREkW&F=obPp5k#L*U?8)ciD79@Lyqexm*ju_&p*=J!!CUKE(kV z+pzy?{m`G{xZqTb9PpW1mekAQfZ3H0?v}|KhfJ~o@5o+&X9+=-EKBxr0o#fa0~dZO zWFzF`fSUzn*aE1T%uGB$Dm^vw|BP3Ryg<pc}z5^WW&(jm%}MSL>?C5*JC0`QaAy z7U~BXGdfCMchIY6vmw`gZ%SZ)bAM^5dTZyHEg2FMM8P=bs0`I*n3}Y8nrdBXKuTGR zA7HI^td7Q^Yn+zFl%FYLowrxMG%FvgNC$gxqAS}wFQn?u;x$y^@sI#ad%9$Ete*zgAB?l%jGUhP$XbU=Y+K1}M zXtV~-Bk0sJvPJ6#7MI2OPh0bIOdq++cD6B1>ix+PoLYpP>!A-2>Td~M8T8X+vYW#w z^Co?!2J&ErRCd<@@kW1EhN5msfh|gLV4ZZhfIYHQnYmMhbONHG1H$sFFhyiBPQvqO!B88036woMpy9wt1Rw%npyUXln+Q|^!fRHtLY|d~gG>g?IkY!? z8#p0R00Rkq0x#+;Ne+>oqUofqiC23m>t`$Kc+zkk$HVm`BH4t@VFQr!NE#Z-n9W8~ zMij=8Qr{HE$%6rz9J+2MvC)_pqG4YMwgUW`hs~gasRBhsF~wj%w^=L}Fqs%78r+px z1xOCWW(T_FDKz%QOvdZtl0@XeWkT##z}AZaYg8z!#nHJn?Y59c2vo{2p3Cw|VlZYj zdTu^WAlB&v`U{zqZV-_f`O(2dz9E8P{sGwuK%E6xyE|h2b5}3MD0E&J&~tj9X14}eBshmVG(5>3QyTU z#j4O`uSTAH9zKtbXpm^_)v!F5VCDh0`TmJEnBp31K$x z#oOel8Zs;0lLnqO5@N=d`XVwrwZj&$f}?`d%zOz<;b3GHbXvco`(}azijfbSxhCp@ z;yw+Gavt;5Gt>wNgMKBt^a6NrOL5tWJ;*44gsfyi5J)NPC@*M!t8j+S=b$9Rc1xlV z6Xp^mzP4DWuf`}5aRv`3WAQTg68rpO~3@|B&~%jcp|S4 zL5clP2NwNw%_4x~v;@!~0G{u=yi)nsNF4w!O&DUo3j<|oeWG5q z4(dC|53&&UtL+nbsE*y@A`NrqKr{9?4A96oA(%87af~JD2Y;I*3h*J)LrEXxB0EH2 z=L6j)a>TJIsS($;PHo3*lL5cCOKn(X0B+a;&Vn_8uGkt9XYK_(6zL6^*W`fJ_i4BW z31%E9l+C7f5EUcl=0UN4T2LN@OmjfxLrd;{{kW=Y;KR*H7m{WsDGdwyKs`x9773WKOs{$`Qt4^kw8)VLhKIl_Dd9kuY`z05ZjtA;W*YHMfqq|CXhxR>6}(9bL!J$ z4nKrZf+Q4iSEBtw9e?+e#|v;ICNLVkGAAyrPer6_>rrt*8Ms1*2br0IG65}tfzA$y zn@BW0jN)|_hgu(VE@E`prF_7UV-c7X0e$P>sHBnC?TnmLVZ9fLHaIP3^W>FO1j z(LQ_MiyrpS-=y7kyE|Qf{f%_?-~D$w`<(xtI%3oy&{IQVTDx{Fz2{xW(wmQcCtdm7 z?~@Q@UyVkD5;q%6DMjU3w4NYZM`fe=Q4YZbCO!`gd+M6YBH3CwMEyJk4JyPz1j%M& zZbx7QO!yC^^mZzN5O}=x;U4OJLx6Yfj)Deo305i`c@XwK{g=H=)u7oG!<91V33a7) zY#7@4*=!}%m&i+_DA+HIOALY(Y(aUq`^99|&kC)$vs$yxt;zISXn^jGUGD?1c-Au{ zF_iBe!tC?OPkbEhc8|Lme^-9*`}C#1{F})qZ!l8}reQWgwEN_{2R-oD>EoaJOzP8p zQ0rn^rH`rT!sl3WwA6qI^VRcqWo%_h+jf5sq195e2BT+>dl;8Y_d8%;de$?ZO6Q*c zO?uO@@1k=iV0!c){4PEGp}*CXC_dEzXQYlMG(WzDS;ONhsz@d3O=@;*)A|!NxVx&b?A4IWC(gf zIh6<06Hx?i9d8~RoW}a9Ya!67U_a6~a(f9GXxQdv_n3gG_~B_^ID(TAWPdtoHIPqk<=%Pz%`B`V*K-W##(~DmCoGF9)ziZ9=?Y|#w z{mItpcVGI%r#?$txBi3LWDPo&d{E&BqakMM#-i}Gc`_j*8wN`dI+y-1ELUWl7(qx4h}qwEf!c>)4dK1;w}DzO?(jnreQ1s#n@Q>zPlbFl=U= zJwO<*9F0wIG#lz;R*{_|7#IE`UZ~RHk*i-Q(`H zXzljf)3I-SRoyR3FZbL3zVxIg97YzX8b2i|D6^r9Cx1Qf{BKM%p+jk(d+$}3Y>Iyt zfGfbe-Q=Us{-Yz31X(DFS+)r38|HXr%}GO7x`Lp#uLEXS(+qaLO+B{ReiC-e)~!Z= z`|Y-;``vF}>$QMNA+UDsc69uQPqJun+86#Coi>$k-7>d**aTD??sO-*a_je$&)P?! zUox%ITT#-9$G^8KrcD2g>4wZ`8_k+P{0dyGootX}f)FPJa5V#c3rv-k&t2gY3 zqs&3SNX@b^!YqUaJg^I^nJ`hJ+h~eku!tFr@=bo#%k&FEk_4R+@a%N0a>!?JD7_v5 zZH~0Uh2tzwZj9h#=@+cO;dp2^H;+^CvEoM?cG_v0sq8f+4wqK{D_hC3-uv#i(CL46 z2JlHWOFH+wf1GADTPyvNM3h-hNiIs8113-_b;^=X`5k3VI3rjzQ1S$5fXY;+b$IxxWs1)^@)`7wcOGXl=liho80s^0aazz^ zft{Z^w7uPfX2HeqeMN$F0I)ckin~8GCs5h+1O*w4m4-lU#>%06Fzsf@sPh1lwiBJ# zrao{J08S-bM>ZjJMuC=uH&J*UY5lrRK%WBb?ShC0c(WC9onszfT`*7W#75X`2+hoN zMfvuQC|v=Nhu!11>P4$pzv9K_%f)}o+LWn)X4|Y6xTcJ&fZ9&e6!0(p>Thb<>C;-) zqo(ZX>~sEaI(VAZl+4TmM_^l;NeP9EZGkI2oNLdoOv%raG{uJdPH46ck02{Ek}Z)yKSq zf+tGICoD?1AX&KRiN-0T!2}Gmq`~e=mJrQLVmjZXR4 zCu0Ys#=giWNWI*2st(`QWr{)k@@~6@%v7XzlmMV$1l?3bJIEO^jZjM96x?SOorT;{ z#Yr+`Hkr2Mey}SJ$2JIEn-L${jonSA2CWhhu4i@P26`iXc$DV=@&j?iZyT^&U9cEb(D zkMC#$^Q0#{uCDQZe44eCHQvWO>h}y>u9()J3c!^mot-A&`uch2hov&NB^+alS)$AA zqr(2(IsxTMRJ;-v%IUGz(c_Xied({hJS~1dmv-84r+U6jyUJQoN%ywaw6IYVk8EZ7 zch)(7UxBG0bIG6r=)ef!RU153@WkO{`;RC(AZ+jzkouNG=~29F7hZVrG^pR2vcHSz znt?GUD*_)pFhfkdTo7a~)qd(Xk-%wXViLw3}&>YJ~E-4}~b6Xy-R)G9`Tp z)D;T^@t9(^(#{uB3*g`RTO{hhd+0CnB5f@3ZfcYjtQ>R(XC(4xwblPw7rRkMUP-Kd zx{r-|I7Iq(A)EV2p12o7prvLH90E+pPFq=-#gsLovVdLMpF085!3X|EtywQDO}~FQ zUC;^}&oi5gC)+OxNAc%_CV*4SFYCw!+{#+h#r47!qX`8Mq(R^kak*v>o<%P{88WB3 zPZ_Mil353iLe`6bb=qnFt)73&8(&kWU1ffI?z!J=_e;c_#oA1B-jZ6DXG zC%k(I`Ue_rsLq=V?m(TNSA$U`f>)ttM@^b&QDAM${>r(74?2(zd+a0W)X#mPMx5sy z`OKPO6%Z@nR5GkDp7~eP;9p-sNXs7lpo1pR`h%(6pVfgbG_>ywz{WvWri0KNggH1U zcQg=y7z`x-<~y}V`WV%v*mJA5pm<-5Se=oqKD8V1!r*XGB48|?OYSWcbdZ5zu|)rZ zX(IID_eKS?Bs|KpNXHpufB-;v=lT4@X-d@hVRAM)^DJZrk#d!-+?rD^P?fD@P-jm` z!CT(+n#p!=tRVCkfB84YllEKu^F=Rs?z|Q}B^~98IRe0W6UaUMcYbT4eG;iB+IloE zxh;kiRG}}zWMkUh@t1ZIJXu=Y^rIVS&%O7JC2akUi}wPog7_I+|{l{9UmSkII`f4LZQ)Vn%Ctoe= zx15p(rC4q^D0S+ED~N-;?{*J*_H^a^<*#}@>Eb&EwVpo*Hsz}N<1g*his$od>n#1h;yYKSj3EK4>X68H>K!X)THD$< z(F)lLdBj|_Hz6pmBOSzb(3#Je{rEaeh-E={J*|2?0H_Q?s1F|WjcxRtxw`2e-GPSz zgquAgH+qvJq16%@{DkF}oG}swN;s7&|CXd+USsoh<+#aQ2mO|)PVpY`JHPGsI%#Gp z)PbA=m%)s5oEhxaX=@WZDU0P@XQ~s` zeQ?gCbC4l#2v+V;P#4Bp>xVLj5MT`)H1IIj*D(%u1pP1j#8SM{L!{X|>cRjfwGXmb zUFYBWPZ?EDAKT%Ac^nrzX0s*lQ<*2RK&)USpeNOp^}86nh9`*`hD80N{My6P77-*T2mkgddtia`29N0E!r+)4Xt z*EO=Te)PDy$-*#*TE~042LauWiyg&cqm*_tCxi`J*9mmoMA9!zFFb@&{ zpaB+}0nC33Fmb0J>-EyBBRP#`P?uI-&6)*e?Zu zuuL6vVB`p#Nac{=eqK|2jE!b%gG)}zKW63#;tYKX$c2C{P(R2?5;7>G({xqMf`KkF z);h;A@Y##<#x`pR0Mz6`t(XU)td!*L96i+mTFxR<1X1bfG!SiC2>dqvitck=c%#Tq zT@b(beZwGY9c0R*T9hj@?}93S4E#XrkL-hzb7y&DAEU+R?|$b}v(2*I1PkIleKH;xmRL&KQK!gQk(ad1G&53; zoV$UeJ!B12y0CF(Gp;2oPnUhm7sT~+eSD?ey&66xIonFQ=`YCWC@zV2J6Ec(bOx1O zHu0Ip8JsGd&-}nXkLYXPPO-_C)QM;=(Xk8|=5m`0Pi5C#cO&5o-PPn;1%qbmrFFY` z^X3LfZ2GGA<&ia|`BO>p#z^VD z0M*T`tCiFz(q5_ZaKuK#ILEsM+1=fuW55ZNTA2v=iR)sOPd;~B>a>@!S*24q-u5!X@G-yEk0ya@&l4<-sO-p2J4+7a*&^pEw(0&i^< zzFGv?v_v{^+E$g<)XSC7Z2$%wbTo9h+#m$!D2?Y5Fx57adK9Ed$Q1i0ns|KMf+-LX zPC{1TQ4;%Wpd5J!ybicm<)eDSy&TXAlo4ndyACe1({tCWM(GYmkzX@3jyy(XVyuo^&0=>>M6J!d*$ zd=d(`zc6<-gNAY<$STB@!f|O(pNx0(j_#G;g+xPJA-{>U*Ob@kG?^-6RA;{)+PV@tdD&kq25(>x0w5AwWOZkg*k44ea83YGY(1h!ZI^{3AIdxG zAOP^vj1csI^wiZQ@~`@FF(d(&&=Sw^zJeND*Ae8PkB*o?CfAE(K_8$2byq zzS$0dE`V83Z=>n;7NL)zH{^|4kl~nx)O}cJM1V0JvaiEfW=ItD<8Byt%rYgGFVjuX zkvOpATVY%`(aP-VD)tka*&zA1B`N9^r@Yoj2k0DZLlPj(ID?vrfXn1d4*HSSn9aIx zBfw*lg1qBwXN|q&KLZpeK{$5A;#Y-ykvFz?_S$m~y5`zzY15|7 z6P=x_InEG9}Ze69b|9<-h z2PpejPyLnOT_(O!FPpY(p-V5hjP| zte+ir*kO|Wo-=LG=cSiT^e3I1_l<8@7O?-MQ`K47icX5I_S$pLN$$%hKJQX>tbA(F zK7XQ7j!Rz$9rVDuj#%DYp-x@+z4X${W;|(8tLM zw9RKVP>X+r6_7Vi-89?rX>#jFRqh?9DP-TbR&7H03kmhy$_lqxk<~H_0)%g~!ukFu=AnaIy#eEdjGKc}*EgAB8mEx-XmkX^_1q#260{AVEYKH5>@E_Z zZtyqJaD&n)H}8vpb7wsh+Mo0QKW%^f!spd{q>AIe{cUfi!w-LKEqlh(pHk27zu$f9 ztq#Y3@VF}b9((LTM<0Du1&HE+rA=`Tm9v1(CqI7DRK8#3ZPTVrbo>Y2TS0Bn`2EDk zPO8AAse9ImkVn4Py!x1W`k(`Uqw-ULt$=Ci`_-?0MZKr1?605r-*e)l@OAiMkD2&? zYCXSK1rwpSzx7Si@yzpnlT3xrvc3JSZ*J%Jr5C>7D0=48k8rzMEF3y{e$(UrweNlB zc0~u%U+MeRuYP&ut+XxWMdrd!k*Acu=2fq#`)_~So2uMaT{=~;VQh7Y+zz5QQJ^j=QW~Hq3Yc4q*m!NX=G=?MF5x3Fi0Ay1DTcl^NZ`p=6 zBLeV1Uua-p6m>RXrb^zKgQaFdIlJMeYi&H&p&>BgW;QRz)X2Z;qdRMKN@u^M$;Ujn zh<14jfsvn6=W47b`3PiGkZuY^y`xf0ZApfikn;+^xjg(bk0y?G6^Fn8a=iel3O?M1 zJ;|!+uSTIRt19&I6W-MHy;ua@?m8KEaiAlg^Za`5j4yr(Zs6p4eEt;uOJDDN$6M%L zQ`9a3UV7=}^x==p4`x32;DhP#$32!_|Hfl$t3wZY7@atk9san-OcDR=DXZE-pZ@Hr z^o*w+LGOOgarC>B<9%_WTQV1yhq`f=;aErowG(UKRA2S_na`YBGoVtVWDjReSw?a0 zlJ%YVk&{~oGu0D6dUB`BLbcS>xbkOT_*|3C%WLeP%1c(IeHXyidWHJgQ@;g}&pP{@ z3g9K1D*RnG{T2W_f6D%B^d?$`&k?UXPy5fD!0L&A_%zzQY0gLwo-(MS&v*aH`;;ZZ zDN8%mPbobh_7CCXyH+gY%9_C;5CgUO3bxz5-X!e` z@M*u|l1a{Za<*f@#NJM%?~PFsSb#Ko=-{PnLAY31wyUqcre-vUJmTRsN|))`pMUX8 z(v&;Pyl(B<$S=*=#OBSLjFW>8K4=1?&(-7g>(|zLpZUz^YF1EyuQ>ImCqNO>v4m(E zKvtqnNFRNp9Y`E60*6yw=TB#$RX5#~EXP`l&xVYbq!R^%uS}qHzybT#{UYbP|Kzy( zmWk5!!P9ZMi(i6u6X<|Urh84nq6CFa8#kG(h4#B9dLh%~C^IL`QQ{F7WJN-QK2T;~ z(EU6e6j+N2%8wLvJ=tvAz>1RJ`7(^_o+1dNpBQj8UVvwu$&@qmtprVe60sXTs!`-A z(rCISxaK5=tn-nZTfPi!0x(fnm~3-heW8}piCy~DitHSyWLy9rf+npp$fJ(Q?|hc5 z2Zjb<2+E^uqhITr(V23#HlKa*OOB}#zD}Q}3U8P)paNQ@`JsnCd~&#H%CvrcjqYU) zW&i28Osih|npf8L1$18g(pOY^<@}|WUP>D$$13Y2haYy>oM}wDE59dv@O?GIDpS27 z(=^ZpA&?u}1ka5{5N;K5`k>btPB{L3rmzAY^EwSx*~{s&K2|a@)Un@zOccUZb2L3u zXg%{8Ppk9_z?D~j{PEH2YMny2tVao8Q@uxO1v8HMe3@R0iynVz<{jm5Gm&ItX<8S4 ziDD3s$9a|_c|OqWD$IVG@2S19qmO@IqSAw;0l-g#MYw7VJXyfjW8^vThNwF;I8W=y zoVYVRWgz@ELO&``DAyYiTJp70?n}V$B@CEo^-9TYrvDTZdcqEgC9qigz2UVi=;6Ul0H~Y4Diweh~^_m#^C7{>yQhUj6wO zuddO$0MI+%{uX-TlaHu%uD<%(T7Jzn-=KHC`#q$W@GqGh@xv#cL{FI3rwRxaFe`nO zDayeI9Yp`_&-SbBubHM>A3kx8bmyLTey#WCXMEAsERh$~6;T8omp~deGy;Ml1J08h zy8_I!k9=O#XCqyJvt)qpddFMo#h-n->6Iuty?_G-`qO_K3*ZXXY)Kcw3qT!u=p)=- zkT1)O+X%@lZ<#ul#e3zm&|f!Yx4Z1T%QRKIwAOppkw;m-<^1bj`$`M4ag5`yi04cK z=LrM1;FZvLl@5RX=2Hg>X&DmURBP%6fMEgu7lF^hA?JNoDB0JLf9|hxw&`r8V{1<4 zusm=iM8Ii($Z^#(OTLC!n zXjjf9&ufT=voNSqr*$!V$n~QG{P@P}X`ladfBO1AoJ|{c-i2;$+x6F8L%;fK2hn#f z{}$c8Ty8eUVj85B%>FOo8p(WI3+ox1&S^t}OQtf)9Of<0jw#VlGr@aFG+4Uh`mmNu z?AKg#bp@EKCs_}e7Ia_##y1m=oURKQz==Cm0gkeMRHifMPXJUd=j)Z0(%_6~{i;kE z&pr3N3F%}0#v#3DduwEMNScAI+!jz4(eql3$slCeoZdCQfQ$-tT4_#l>WPxw6c9p9 z7Fj;^$y27^&(=%$;iC^t%cym`d%f91p;^}O&aashSD?}9a2W7LB4^iSD^uPwO)gX5 zlC`eiVf~bWolhT{c=a1bU5|kz0x_qxr)0A^jAKH{sZ9VKLYs^I2by_S(K=xlz5^ts z7Vnqxwn(evzdPqJTl*~!{tCkMw3RpS-E*)1le%qc`=jfxo3f^T>ATW9?11r>Msm#^3obERn^oMkqVm;k2 zJe94kPqoUHEwGuL>53>`0Ll7AkU~C2V2^b(uM#Q^$|z4mIF50vh|f0qIKi5$>R|fa zs5$^yf>TRdS0x0Wx$@QD|4x1ISL<#3@r|^{z5eq^ge1RM1{U-q(r(o30Yb}NCk92p z7uc49AIZ2MW|G{72DX{XzJ19*Re!AKTf(%4DC!SK*cfO%^@+z6Tz6mJom*V7sh8eNJ6ke>M7}^OYx|5V0J&UOt^crJ zJQ1_j;8Bb8?J>-}j1GD!d_CCh1MdlS+PbTmL0Q1wxN&2n%Mh8-d_hbr&&S*x1&u44 z5`jMAjk7rWC_MFjM_KI7=cYqdVd--vE%c(>28sj3l2FglP}+WwZ|*SAmjP-?(+fGC z5Tz`VV7yA*c}%d;Ob(x7k|S#CIKieTxWURGhC=JI^=f1WOskN zKgHV)?CPGKg8Q;00uf3SEN#9z*T9eFH(|CBYwm)c+XRs1>n+Q+0yHBK`gzq~ZIhLv z@LAP3X!u*}sl1S)YE)DMu5B2~LPvN)tX`@V2LPNYXw|Sz+$pSy7^ZQeS=%opOegZ*+pQnNDe3lWAe#R&;L-rsx8jJCSF63NF>dT#%tR1em=5W-K)gQ~OwTHX{AnBPdl3Q|%4wY^MJRClWq$Evir}IeGmhEZ zeAa`C$}mE$445!IkqF{89CKYH$5FL&5}^*CiR7H7CoLD!YqUZJCQrxRsYPxXK;eeK zb4%;zjA~n3;d$jYw~GeP;>VsUqRFt14c=RWk#Pnf4$dA2pq?=vFv6?j1CtQRBQ569 zRSXS595VpQe7HaY`mj1Ue>8`}W0%v2F%8DvEhhBc{zW}$zj!4nuhB{8yx1RPlaAt* zMx<}mlkPnOLLHmD9LLcUGL(b6I;I~8Gd8UOz9;}!v?H_|v;|AM#Q{L-5>Y_+0#21a*SGC( ze9n!42u$ymYzQDfYsRx|Q$Q+x+?C?18g^UWK+m)ne;wQZD-R8NWDbOP#9+9b&&p-s>K7>u<} z%r1IbS*}?sH+YpjgB^ZMA;pX#=;th;AAjwy*#htt6QE45?<+7fEbH~Irft(^ZLdLD zD`|V^n&*b*A3||zNOlArB|ZlL6J$g^+0sE&y@fkP8oOHO{t8{Qi7|Ju1f3L^Fsmv1 zwlO~GT(>9Jj`0U zB^h+~4BQR1IP-u27P`)Wnt}##1T@ROD9T1X=B+`&8S_MMBNoatT>VIdAmo>szT-W<1F(;I-%b&GA@-mZy%mHMQ!JrM8F1oEmV<^(<1sk)bJat=BnfcXdp` zSGu{|h(2a(xnF--E&>0F=1eemt4gRwSF6~i(BKV?j5#L&f`XLWuh*^TrP(PsJGFCo ztb90MX&xZ60B*b}e)a^yWP5IUxc>liY@0LY#8NkvpH+u{pCw z446L8sT?b$9SNw^1rg2Pa{i?|b#d;2? zeLLp}>WK4(21g-c`^Ku{Y?(e-E`tUF%q{w2Vsz!0Z`XoBJee0-Tg(2togY4l{8eV>EH8Ma&O^wP6ngTjBhIe+F>q{*pc{F zQ!MK;xmLEuNHM1mOy-Vc6=>?WWot;c^!&Ey=XSF!rtVg8+qa2hq!Q9W=_#mo>(VUHQF z{#g8KsT|5}t~7fW>$Ed~1n81+nrP&~83}aV_QRw_L0)CizSQZXg~A3|j{z?Lv`)d= z*b#9zgSM=i5?yWE$p|vEx}APdZXIWkS(=StnPZ1n3Ry_VNFr`U)&tH(K=37vK^P$L zeu+qcx9Esl7pb=q!7V0LVg0lcZbN`m?IuifFp4m(VrC0}ud}!bQ9;ou+;P z=xkyy#zWY5_GUH|;DAj@T1LAO)F0;ZxE2GtQN0buU_J+!EM(c988SY7kN!(Yqz81% zmRlCUf$J6^X6_ke7Erv0ZVn*iSI4*knQ#!7Fdad=QV^GxP*^yp zF{mIr)<)t@nphvt<>L%&v+YL{7-ey(U3*rW+k?M^(MZ%#=AcUvwo3;qx4BJyhOIm* za%sUAtyYcE6YL@9)kcBZk7t<7UO4uY^L{L8Go2WcHb34%AHiae_mzG+Vbr@Zb zQuFnN@U-u-i6|;N--Ne zl7TGQK6mst-Sop%dl~HC+>MtU^UbWkEjl-s_ATX|f5tj|3+w-^+b!X5wK3e54F9Y8 z3ETP|?>LutP#-gp=FyOXMNsmx0U!Xd^*1PU4^WEJDJ+CX#SpxBNjBHc&3BRuvThew z%C^RUNy6Nkqc$98Mf%KI{Y^1ipDRnHku7Dc0udcHkeXWe-pWPZL(cdPL{ zsx#6N@|fitZKE;x)&=Kk_UxG$yOieekfqE%-1pu0wGzs0hSdCPCOv~j^nU;<(4|hW zIiRC9S^`$ax+gthXa0(;uQ^deEfQ?t#^`8ZqI3z^Flrh8FSE41~O8x1;Zcqk@{=xa+?v1j6iOr z^VL8B+h!f(SV9||l5z};X^bS=O<4H$q^6eG!^XkC2QAUx;!wxn*2*Qo4JSRJ%!wxQ z?O9VLu!0`Nlu@1sqlE*3e_A{qD6emvq&~!rB`A~(^D+-AWCRc>1AZbO9ieVB#fNG- z0ISkmWfRa3vNwaEe(A(%qFj`8iy57sUsydDR?va=FSLy1Zrm2KL~7)z(X?k0nWDK$ z7p*f5v=0%z_fF*_qmk`MkPW0Q62?9QNRrad;22n$@v}%}T{xk<1-Tb->~ne8Y;8{0 zqCle!3`$8Y)-v-Olv{^L%+=iWxa(4V(c}xqE@uo*D3F%t`iTU%f4~?KyMcU7Z3zh7 z5fI5P;^-gF&qw8RI6Lor7d!inZ~UX}m+yyNcKNrb-(RV(F~z3WT>AsMwtUBIg=xS0 z{^$Bdi)*jBmcIFq|6~f*_R8G4b!+Q8jjo;ABB-%0b^?FObE^Oq$-Es=ULNU?#% zX-XVEJO??Cr{)%kxCm(qNm2QYS(mr{J4aPuioCsLHjOb|J~uOjzFL?F#wy}6 z6J_e{+~*@s{TBhgNL1H&5mKe?=& z>(>eqM$m(dH~3V&iwL)!@cg{5qE(v3i;qk~Jx;t}tA{`Ap>)_|9yI~Xed!U?{^w8q zWCf7&I@lLH?>V(r`3Bj3``(wHf7ElPI=@r*%eTBrcP}{VNP5~4Pp-$0c=$u7I!9Kz zyX<`D*4~Hqzz61^f2$>deV0BC)>8w!u=*N0)gWx?Yte3++X|579 zKt{IwqXf>If=B>ZayDflUI#$I+iDM-fQeFFRSknqaZEgG5^+!$)qz0ZF)37TI44~V z>%;KESk~yMb_k2$0B{6)Rl61JL&U(lw=duFgh>K3M0lX%-OVg?cqwPNIySS1>iGDK zDY;>jYt8Hc^Sv(OoU>Y;WX3@!IETieKKt+fp1$;@zpA8O@cie}fd~EueG@XM&wlRo zTD1VynP2(~`o=f^sh&UN5x-Njp`%{#ViWt7uXsrXuaZ?6d+d=ZGnDz#i~%<|W)Hoy znpQNz;sB{Ggut)`0tScI__DpCf_!{98a0BHR<;FKjaXJuUt~vvjRQfE9$?78%`*&( zW$?vU>%Uc4h`^c!QwUZN@deiP1iW31OzYaqd5L%DhNj_TiK2BG3|>nlawL?HQ_n+1wkd$u<)jnWjYoI3 z2QL`FqP0;#G;YPuJGZqje<__W#-i>RbZ5qGK)DFAa(Dx&>(4k5zaNKCMq+?Et=Gnd z-JllMW?^IC4%b{%DD>gjgL*TPrbD!gp)2Tk`?$4x4Z)(pzGpc=Mn+l^Mj~#WrP-8J zM^Pjt9F(#yybZuiAUsAf<<50oX#kx-V!!`=_oXw>{L8?AIj+o#(LpIwxoheR_mwLSj$Xj){qKF3 z(JIr$bEYgUM168lkcd{Hf2B`@2#Hb3qB>qN>l$QzP>7@mK+2L|*-CAoZsb~79z}Hs z9wR=mnr0W8F)hZKLYF;;-ukgO$EP@jLeNFJj;R7wd8o@Qi6N@7}7wGx`+=n0>86?fL%A$B#^uFerADGbPOBlLcJ}rhH_544!wq?DkObx?&l60Qb zDJdz#Ybdypm@()=<06?LgQjpQrlt4;32D&f+&vZ-?f&~U!nBVk{S;@R#KhwodKj;Yg0AAI3O}{ua zX_ycYUCG0bRzW+7DxwR<=80v&0>YL8Jo}0@22rNwGsVvIb`GZFc z9faumWbgeoNDOtrkwu1WYv}?arj`dfoaB)-c3`{<3ABEA{dKq652J3seg|+~qLgBS z(c^u1prue{GjcnEUw~ByT9_&;R*i1d%v+!z&I@J6`%D&0pCQY^phpbxgguk$ zz?cJI1O{gZ=*w~?0Q5lHWMD&8nO%ht#K;0_|7CIA)`V_F@MT%U2II|eF?%TmqqB^{ z0S2Ss`QP~Fv{-)Hvsn)*fhd18p zKa6^ZJKk}YXD~G<_VEp%;EOV3<7UwV#({ZNer&`Ab>2$#V}u;X3x5&BaJmFhE7nW> z>&E$N4g|%yf|F6M?c06rT)fcHELeynMO@F^TS#C6Jwv*a5RXT7n$B&3L?~wNW||=h z(xIIf#@Fw7M@ibCO+UVocKelkTjOP$rKd~kD2S{^V;P-tuT;5zX;jzlOXKm~xugDa zM7!eK7t^{Oe#yYNJX=@34QBn&z~xlW1{?qY%Qkjmxhf+_C;rfmR_iD8IpP~hlzx76 z{SW^C=EJD}XqT+?z88?r*xNJ@=y9~ zT}>D^Z~PJe@*extnnkXal~HzvQjYq|y^aOJ*@nAODxVo!Iu0Eu6M~RXPU*_OS6qIP z$xO}K*JQf7AU<+%j8Jtw1~P;djQ&-DD_vw;MsHN6z?6Z@gI~r}UKO~o%xJb(yx)Tl(nA2v+0+13hi{rR zo9LWg(L%`5-5es-ZkhuaNVS0_M&okL+q#n)pvePzBZ#nVpzOXMuh_=L4LA1Jo5IiY z1E@a_I+Z7B?mfsX1$3?Zb|02nyMY7*6l)K3@>a+!C?>4AB4lOSM}9}P2Re!aX~lN2?${ugZL59Ibo92-W%YlaA5!%X zqt2Uu9XHBj_gt}9HY<6qMFd}07+)Q8!eD31RhIbhK*DLtLJ%`b`rKXRt-Q@#ELj5a z5GI0oHQ~KUktbRLJ|q6gz*4ig&Zigs{ZA@lnS3DMNUt&>VPrKU$1GDM@CeF?*$fe8QvRF!aX*$A)u6o^hbjVNPFReiZ_k=Jkb9C@S!Sdc9+@IV-iokt%yO4(YZy{#|k{5-e+nGdNJdCP}U!#Z4e z!CDJ?`r232FKlXqqZhT=&7G7lXDe`lRSw3*eTFS?3xEb?vsM{|LObLe`AC5jeifvI zLOLUH`2r0i^56V(1vu#Ze{QcAWt5(@TZmMoe(A;+LDN8#|Gc!>B>IQB?-Mwx(zWV!u93A_|dH z+6(tpw}bMAQoUohvB3Vx_;GuQc0+{rGV{D>`-{k@Ri8IMB=-|MS$@iMnlkb+_bax5 z>2fM9OiCP39I)aPjkX^=bB*3I(6wP2UNZUA3$|!018pY50^_%~hZMBbD_=i!~SWYq9v`?q=4X0)j&_~cA zoFjsJl)!-r113qBrd79EP|Eb@5>KjK=XGP_&UnQjLEO33|6fxpjXf@I1@z`x^bo46+n&zy0>~*vCAQe)WF) z)7Gt9>2J?Eht53nuZ+bFJKc${yWvJci$r5kUSl~?b|ufG;+0RMqek431W*TI`|NW0 z{XMIFVfmJ3O}FIJ^vl+q3Y&`#s0o6jUg-qqXmndqKdpAAy@ISQvB2-vdbh)ILdz@h=Sp+D;6{W@~MF(^~<`RZ_|L<-; z>$eMW^Un@S42tzP8G0xC!0-bw&A)E8888|THOpSHy1|5XEM&=LdGUP_4;q$HXBkq) z1$OGdL{J8T3Q@;9Zl(U7_xzO#Jmp4b-1eA&=}pJJZGLoY&wJ7J=}YXuO>^ZQ2wPmT2q1TlN7CKiZb_ zvkF$eXd|Z?i>A3Vw)a=ZBwJ96Kw=}KT}ZD)O))KV=>OH}&SD{n-7%nO6`Vth!~}bO z0atgExbr=2C2QKSVJABIluyxh*WW-_TyZ6R;P?}1^Oh~Oyku1RyW4K}s1beb)aHOuYzT5Z=->mbtnfjY zL9%Ni$lcCbR^5*O7vRz@+ExWG{V?ia!!;VW&&8k~*?F;JTCz!M8!xnkK+raBydcZ~ zJc8d0AW|gsWp7~cBqH6FJ7!)3@=9Q?GwIa(c)RSfZ_}|8$UOasr`Ww>x_(+7C%d{l z^9ue{faxu7egnN{%D}F^<{Fb_wRK&SWpLbdWre!tq!L*$!K+?cXlaXON#r24fOQxH zHt3&5>A6o=I5X>$@_v5aDW6jYG2Zg+5&qg#{B^)9hg&8Py6*bxrxf>*^p&riQ}+un zeeuk{sC6#9@M59~n9A?-op`+0pZb=424)&zX9&5XdR=c!K1T=M;JlG;gX+eLi~!bC#b;6v9$ zq0FzcYGt@WH}uhPa$9ar<7|I$OTu*gh$&$1x8J_?@a%K`u7XjfRi=CE)~~hp&zPof z$qXmuMPT_Q`s(@KnQ>DGi5~uSWZ6W6ZN(gi-uWLi`X&Na%-N4l-_2lpxU zW3;U?3+?Jk%c#%LZ|Y;1xm4i!HeGi4<@GQ;8U|}st*UKjo&Dcyn^IC9$}iKo&6~H- zUVH8_O%p#>{o=f7s#r3sTe9(BtxO!9E5xiZU~;ZJS7I160tIPx?2O2w627n5BM}~W z^2OwXV%;;@Tk?=TEN2ZBIRlcfb79|@vAKvE66cfdz^D?T>u`r`^dhdkn; zbf5d|P4EA}hoJ9SPrL7aj|pIQqBp$ml~z^&XZPK9tJzfrD49QIFi+EnUiRV_8cXHe z*S>y!og$X{1(;OUE3UkH?Ni|@aWV|Q*IJu&;f^yA9(&u->TT! zh1tABegMUccEDb89x!Xmb;@+A0LGOQFqC>1TzJv6?sNrx@cr-UBk1(s<_Ubh^PTU~ z$shj&$U03AxBjF~>+rUOEmH*AGG$EfpMWpc-CEbJHr#n9&`sQe(;CJ2tCD1pUbo{N zZq*+~{gw7%)G~FbG;ADca8U&MYIYTgyFHt>BwlHbz~c6nK}zFT_LIm%j+R(=rj2y4 zO$s_;c*7KS(BCpZz-){p1KHemk0}c(SM2tjeh)hE*XiZQyv7t<7Rk%Dej1CXKm956 z@>jgt`Iu-FkUHqH->6sXK6=u}dN~4*&izP!9WE_f<80IT3oKDo?G0X?F>>|<9BCa# z&-uO(#(g!$`N_b!Tr}Mhh<@yC1#$*%EqqiWj{(qvw4Bz%rUmiswxc(^_LcOammbsB zl%~1+BOXTAm5c@iT0336E7Q5JeeLUX__RJ%PM55wfZOw)^Q>tq_6g^`fnZrXDr;J0 zx;9S>=gYTW`O4YzRBo#Ce@q!#0mQXy*U=GAc~XsD1OY+8G#EfjGsJX60J?ME+pk}D ztNt)*(VOyWj#U0fv~6;dr^Nwu^qw}Kvb9Fs9&qIh?@C)5hPhYU!@|6p^Tl&MD~LP< zz<@f85lR_L*-<-~eK7C=L3t)hxS(I&>#tuaV(^Rd4*xP$D`(2o?7340w0YC!O6IJo zO}S!MvZYN^Abr!D-%giK>r@4(&TQWZDDB?+z7JNrE$8(@QI=bxfx+Z{x+e=7Zm+1k3po4KkwiB z`0jTuEw4;5-ce?Zn5B=y4tq2`c$!Yl8O_=XD)0Z`hblmo?Qw@aiVmFs>!fL&sjNr+ z=7SEZgLVCMb#KEorTg2n&YBhuPp3QIc>}$En(iI>oEMrzWy)8kfLiyu>#w8NyzWi4 z-wjY!ri*7xi|{izxl?gtc=Tb$ycuXC2qzu3yGmx`Cm$k(!>}w#%QKnrdF{LL8^%k^ zRqGT29AK{58JeF4G{h>*uA_r&YjZI2{p9?#Oa~rlQMW2j_hwRw)JmOTn^T?5H~kP^ zVMM@(2mClr*?0Oa>mz3|qeN_5nQPZa;>r7g8-p96EC2ah!5=GFPbbi-t4VIz_+!4u z?t7U8b2LIv*V?o#e;^Zz`{RI5fhHahjqM`wVsu@}T@}#mcdrYk6QCAR?pT~ z-Y#vgeDUBN=1~vWOFWMOEAkeA4eNx6CLJF_6sIhspq2-@t3%tgRR^G``wDnO37nEa zrvCb1JZejk1_W^cr^-RGO$Da_io?tVC^OnyT=!bO^@_UrZKG5-ujaf3aB9k{Uta+! zI6O7qem$Lxu`Jwt)}mB2B|vMrPj!*6S=JTg3JIZ#;~39})I zAkt(jnUVu5e%6`l`cdF<`uo8Tu6G)#OncU^z5L(@*O5Q5E`iPKufLHzTWqWfkxgLQ z7-3|t`q9@|H2!Om9#=UeWQaNy+<*UlO;sh;zovbbtGt<}I6P&-F~~*DJ`Bi`su&^gm%2covag#vDif`O#&rh}V)d?QV=+v%VF>%W-H){vrXax>0_ zPF9VWNne99)mQ!<3)V+Fx*3KLx4Hf&KK4=i;f+6}op-ql9sPpm)$k*sk4SD73&gD+xkDhpZ1)-8n9)9>^rmIAk(Tx+m zqhI*E+P(mu%JGp8A3sf1KOb3OTAlA)A+^cl(v4H`y}{cgyCnnZZ8ww$78J0!1Etu* za$8W~+BmSyJN(j4gEs9Kqa9LYtjNQ*D8c-axm9cu%0|`3ZIQ3#gL~7DZYVM%vF;t> zsW%M@Vv)`UN!K039Z+?kse7F_S_mS-Ohf7GaY!4*1+}b5>%*@O?M-b+Uw^#Z#3>TBw~TxG%a z)vtU-J*RgYcUPX`JgBJ)l+lSP7SSv39acs9qGLe}*_n7h3MdTsM78loT51cSk8BfR z+6wY8v=U&>WNLS0$2;94rL+zbebHr&>p4s#aKQTkogQ_*ftiy?@>A_m+{X+r%wfUa zmH?CYRo@L|kI?yd>(ZtJflq&X8i~pvix$KV3az5klN4E+a9Mcj=s6*_SA~)rP~#+~ zpYu6iCqp9>TDn1Bqk+m!lbtM6)`7|~D_?GQph4r0b{~Je|F9lF0+D%E9$GgCo};5` ztE9p@1uLKSGNy>!(NiEOcNUi^+%*$0X}>iK8&H}#pvpKm z1)i*rW=q5YT$~rs(`p~TG@EA{O$qUXpYA(kA*usJGRx^Iwe2NxLOZNq zKTU^sp4QPW3xSn@FUdd~j(oQ`s(ocB$v!K90Z1*M1`zR##;EJCafV7O04`z>)PCSz zEYge+gB6hn7Dur8XF(afl1#9zw9W;7g+OgNt;I)6g3FopwstAYLavv&Va!C_iDc-w zOXwrt(#w$go1u|=1P8%V)7c26{gSE-+v0iBVxQ8~l4f*PKXd^!usi@!1D_~SEYIiF zfDp;ac_YX?Y6dj@z3WfjH%;44wz}Nt&u!x8xk`O~{RZ-T!2bJ@n%2AD^FBKAInST6 zsTb5=11ginWs4)+sKQt+K*uTrzD)0rkA5B
&DI-P(2Z_P4%?4u9NZYrAJW{i*f* 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 From ab3f5ed6dcd1c64ac57e88ee5757cece508a0d8f Mon Sep 17 00:00:00 2001 From: Lily Date: Mon, 24 Jun 2024 11:16:20 -0500 Subject: [PATCH 19/22] literally 1984 --- plugins/GranularPitchShifter/artwork.png | Bin 45731 -> 55110 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/plugins/GranularPitchShifter/artwork.png b/plugins/GranularPitchShifter/artwork.png index 74f0531caf5a46937a7616ec9b3c41e962a1e5fd..632750bcf5efb00daa936b4f7c495af21a4f359f 100755 GIT binary patch literal 55110 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 z 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 N002ovPDHLkV1iora$^7h delta 45291 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 k!~M# Date: Tue, 25 Jun 2024 12:08:14 -0500 Subject: [PATCH 20/22] dc removal and safety saturation and more --- .../GranularPitchShifterEffect.cpp | 17 +++++++++++++++-- .../GranularPitchShifterEffect.h | 10 ++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp index d9867cb3d1c..feff22faa7a 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp @@ -80,7 +80,7 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ const float glide = m_granularpitchshifterControls.m_glideModel.value(); const int minLatency = m_granularpitchshifterControls.m_minLatencyModel.value() * m_sampleRate; const float densityInvRoot = std::sqrt(1.f / density); - const float feedback = m_granularpitchshifterControls.m_feedbackModel.value() * densityInvRoot; + const float feedback = m_granularpitchshifterControls.m_feedbackModel.value(); const float fadeLength = 1.f / m_granularpitchshifterControls.m_fadeLengthModel.value(); const bool prefilter = m_granularpitchshifterControls.m_prefilterModel.value(); @@ -201,7 +201,7 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ if (m_grains[i].readPoint[0] >= m_ringBufLength) { m_grains[i].readPoint[0] -= m_ringBufLength; } if (m_grains[i].readPoint[1] >= m_ringBufLength) { m_grains[i].readPoint[1] -= m_ringBufLength; } - const float fadePos = std::clamp((-std::fabs(-2.f * static_cast(m_grains[i].phase) + 1.f) + 0.5f) * fadeLength + 0.5f, 0.f, 1.f); + const float fadePos = std::clamp((-std::abs(-2.f * static_cast(m_grains[i].phase) + 1.f) + 0.5f) * fadeLength + 0.5f, 0.f, 1.f); const float windowVal = cosHalfWindowApprox(fadePos, shapeK); s[0] += getHermiteSample(m_grains[i].readPoint[0], 0) * windowVal; s[1] += getHermiteSample(m_grains[i].readPoint[1], 1) * windowVal; @@ -211,6 +211,17 @@ bool GranularPitchShifterEffect::processAudioBuffer(sampleFrame* buf, const fpp_ s[0] *= densityInvRoot; s[1] *= densityInvRoot; + // 1-pole highpass for DC offset removal, to make feedback safer + s[0] -= (m_dcVal[0] = (1.f - m_dcCoeff) * s[0] + m_dcCoeff * m_dcVal[0]); + s[1] -= (m_dcVal[1] = (1.f - m_dcCoeff) * s[1] + m_dcCoeff * m_dcVal[1]); + + // cheap safety saturator to protect against infinite feedback + if (feedback > 0) + { + s[0] = safetySaturate(s[0]); + s[1] = safetySaturate(s[1]); + } + if (++m_writePoint >= m_ringBufLength) { m_writePoint = 0; @@ -261,6 +272,8 @@ void GranularPitchShifterEffect::changeSampleRate() m_grains.clear(); m_grainCount = 0; m_grains.reserve(8);// arbitrary + + m_dcCoeff = std::exp(-2.0 * M_PI * DcRemovalHz / m_sampleRate); } diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h index f898d8f34e4..4287d834ec3 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h @@ -38,6 +38,7 @@ constexpr float PrefilterBandwidth = 0.96f;// 96% of nyquist constexpr double GlideSnagRadius = 0.001; constexpr int SafetyLatency = 3; constexpr float RangeSeconds[5] = {5, 10, 40, 40, 120}; +constexpr float DcRemovalHz = 7; class GranularPitchShifterEffect : public Effect @@ -94,6 +95,13 @@ class GranularPitchShifterEffect : public Effect return -6.0026608f + p * (6.8773512f - 1.5838104f * p); } + // designed to use minimal CPU if the input isn't loud + float safetySaturate(float input) + { + float absInput = std::abs(input); + return absInput <= 16 ? input : std::copysign((absInput - 16) / (1 + (absInput - 16) * 0.001f) + 16, input); + } + void sampleRateNeedsUpdate() { m_sampleRateNeedsUpdate = true; } void changeSampleRate(); @@ -147,10 +155,12 @@ class GranularPitchShifterEffect : public Effect std::array m_prefilter; std::array m_speed = {1, 1}; std::array m_truePitch = {0, 0}; + std::array m_dcVal = {0, 0}; float m_sampleRate; float m_nyquist; float m_nextWaitRandomization = 1; + float m_dcCoeff; int m_ringBufLength = 0; int m_writePoint = 0; From 0a60b72ed82b6d9e0edf56c8f9ab9f869e96340b Mon Sep 17 00:00:00 2001 From: Lily Date: Tue, 25 Jun 2024 12:14:24 -0500 Subject: [PATCH 21/22] fix magic numbers --- plugins/GranularPitchShifter/GranularPitchShifterEffect.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h index 4287d834ec3..111d0538d0c 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h @@ -38,7 +38,9 @@ constexpr float PrefilterBandwidth = 0.96f;// 96% of nyquist constexpr double GlideSnagRadius = 0.001; constexpr int SafetyLatency = 3; constexpr float RangeSeconds[5] = {5, 10, 40, 40, 120}; -constexpr float DcRemovalHz = 7; +constexpr float DcRemovalHz = 7.f; +constexpr float SatuSafeVol = 16.f; +constexpr float SatuStrength = 0.001f; class GranularPitchShifterEffect : public Effect @@ -99,7 +101,8 @@ class GranularPitchShifterEffect : public Effect float safetySaturate(float input) { float absInput = std::abs(input); - return absInput <= 16 ? input : std::copysign((absInput - 16) / (1 + (absInput - 16) * 0.001f) + 16, input); + return absInput <= SatuSafeVol ? input : + std::copysign((absInput - SatuSafeVol) / (1 + (absInput - SatuSafeVol) * SatuStrength) + SatuSafeVol, input); } void sampleRateNeedsUpdate() { m_sampleRateNeedsUpdate = true; } From 50cd9d80c218c259d221bb1c59b56507c74e3676 Mon Sep 17 00:00:00 2001 From: Lily Date: Tue, 25 Jun 2024 12:24:57 -0500 Subject: [PATCH 22/22] yum a second helping of msvc-exclusive compilation errors --- plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp index feff22faa7a..ee796d8e3a9 100755 --- a/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp @@ -273,7 +273,7 @@ void GranularPitchShifterEffect::changeSampleRate() m_grainCount = 0; m_grains.reserve(8);// arbitrary - m_dcCoeff = std::exp(-2.0 * M_PI * DcRemovalHz / m_sampleRate); + m_dcCoeff = std::exp(-2.0 * F_PI * DcRemovalHz / m_sampleRate); }