diff --git a/Source/PS_Source/ProcessedStretch.h b/Source/PS_Source/ProcessedStretch.h index 7be7563..abc954a 100644 --- a/Source/PS_Source/ProcessedStretch.h +++ b/Source/PS_Source/ProcessedStretch.h @@ -423,8 +423,8 @@ inline void spectrum_do_free_filter(shared_envelope& env, int nfreq, double samp double binhz = (samplerate / 2.0) / nfreq * i; if (binhz >= 30.0) { - double norm = jmap(binhz, 0.0, samplerate / 2.0, 0.0, 1.0); - double db = jmap(env->GetInterpolatedNodeValue(pow(norm, 0.25)), 0.0, 1.0, -36.0, 12.0); + double norm = 0.150542*log(0.0333333*binhz); + double db = jmap(env->GetInterpolatedNodeValue(norm), 0.0, 1.0, -36.0, 12.0); freq2[i] = freq1[i] * Decibels::decibelsToGain(db); } else diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index ec08b83..acb6280 100644 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -36,7 +36,8 @@ PaulstretchpluginAudioProcessorEditor::PaulstretchpluginAudioProcessorEditor(Pau m_free_filter_component.set_envelope(processor.m_free_filter_envelope); m_free_filter_component.TimeFromNormalized = [this](double x) { - return jmap(pow(x, 4.0), 0.0, 1.0, 30.0, processor.getSampleRateChecked()/2.0); + //return jmap(pow(x, 3.0), 0.0, 1.0, 30.0, processor.getSampleRateChecked()/2.0); + return 30.0*pow(1.05946309436, x*115.0); }; m_free_filter_component.ValueFromNormalized = [this](double x) { diff --git a/readme.txt b/readme.txt index b809a2f..2a22d55 100644 --- a/readme.txt +++ b/readme.txt @@ -9,7 +9,7 @@ Released under GNU General Public License v.2 license. History : 02-27-2018 1.0.3 - -Added free filter spectral processing module (may use lots of CPU) + -Added free filter spectral processing module -Basic feature to allow offline rendering of the output of the plugin into a new file -Fixed bug with the number of harmonics parameter not getting saved and recalled 02-23-2018 1.0.2