AnalogTapeModel

Physical modelling signal processing for analog tape recording
Log | Files | Refs | Submodules | README | LICENSE

commit 103cd92f5b338819ce5240b4ce1362218f8f1541
parent 155c157f341baefcfc62290ebd43c8da7948fac4
Author: jatinchowdhury18 <[email protected]>
Date:   Mon, 25 Oct 2021 22:16:34 +0100

Fix bug where linear phase oversampling affected freq. response (#224)

* Fix bug where linear phase oversampling affected freq. response

* Apply clang-format

* Update CHANGELOG

* Fix unit tests compilation

Co-authored-by: jatinchowdhury18 <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Diffstat:
MCHANGELOG.md | 3+++
MPlugin/Source/Presets/PresetManager.cpp | 17++++++++---------
MPlugin/Source/Processors/Hysteresis/OversamplingManager.cpp | 2+-
MPlugin/modules/CMakeLists.txt | 1+
4 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md @@ -2,6 +2,9 @@ All notable changes to this project will be documented in this file. +## UNRELEASED +- Fixed linear phase oversampling affecting frequency response in STN mode. + ## [2.9.0] - 2021-09-09 - Added tape compression processor. - Improved hysteresis engine performance by ~1.5x. diff --git a/Plugin/Source/Presets/PresetManager.cpp b/Plugin/Source/Presets/PresetManager.cpp @@ -206,15 +206,14 @@ void PresetManager::chooseUserPresetFolder() #if ! JUCE_IOS constexpr auto flags = FileBrowserComponent::openMode | FileBrowserComponent::canSelectDirectories; fileChooser = std::make_shared<FileChooser> ("Choose preset folder"); - fileChooser->launchAsync (flags, [=] (const FileChooser& fc) - { - auto result = fc.getResult(); - auto config = getUserPresetConfigFile(); - config.deleteFile(); - config.create(); - config.replaceWithText (result.getFullPathName()); - updateUserPresets(); - }); + fileChooser->launchAsync (flags, [=] (const FileChooser& fc) { + auto result = fc.getResult(); + auto config = getUserPresetConfigFile(); + config.deleteFile(); + config.create(); + config.replaceWithText (result.getFullPathName()); + updateUserPresets(); + }); #endif } diff --git a/Plugin/Source/Processors/Hysteresis/OversamplingManager.cpp b/Plugin/Source/Processors/Hysteresis/OversamplingManager.cpp @@ -34,7 +34,7 @@ bool OversamplingManager::updateOSFactor() } if (curOS != prevOS) { - overSamplingFactor = 1 << curOS; + overSamplingFactor = 1 << (curOS % numOSChoices); prevOS = curOS; return true; } diff --git a/Plugin/modules/CMakeLists.txt b/Plugin/modules/CMakeLists.txt @@ -41,6 +41,7 @@ target_compile_definitions(juce_plugin_modules JUCE_WEB_BROWSER=0 JUCE_USE_CURL=0 JUCE_VST3_CAN_REPLACE_VST2=0 + JUCE_MODAL_LOOPS_PERMITTED=1 FOLEYS_SHOW_GUI_EDITOR_PALLETTE=0 FOLEYS_ENABLE_BINARY_DATA=1 CHOWDSP_USE_XSIMD=1