Skip to content

Commit

Permalink
Merge branch 'release/2.1.11'
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewreeman committed Jul 17, 2024
2 parents 9433217 + 17f8c24 commit 855aef6
Show file tree
Hide file tree
Showing 45 changed files with 531 additions and 115 deletions.
2 changes: 1 addition & 1 deletion BinScrambler/BinScramble.jucer
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT id="WPt5si" name="Bin Scrambler" projectType="audioplug" displaySplashScreen="1" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.10" defines="VersionCode=16" pluginDesc="Scramble the frequency components of a signal" pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPBS" jucerFormatVersion="1">
<JUCERPROJECT id="WPt5si" name="Bin Scrambler" projectType="audioplug" displaySplashScreen="1" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.11" defines="VersionCode=17" pluginDesc="Scramble the frequency components of a signal" pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPBS" jucerFormatVersion="1">
<MAINGROUP id="NNl5AK" name="Bin Scrambler">
<GROUP id="{C7CC9691-F182-4F70-85C0-972905B94E77}" name="Source">
<FILE id="RY8U3h" name="BinScramblerFFTProcessor.cpp" compile="1" resource="0" file="Source/BinScramblerFFTProcessor.cpp"/>
Expand Down
3 changes: 3 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
% Spectral Suite
## Version 2.1.11
* Fix au validation so plugins should work better in Logic on Mac
* Added max and min settings for frequency magnet
## Version 2.1.10
* Contribution by a5632645 fixed spectral gate tilt checkbox issue
* Fixed some memory leaks
Expand Down
2 changes: 1 addition & 1 deletion FrequencyMagnet/FrequencyMagnet.jucer
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT id="WPt5si" name="Frequency Magnet" projectType="audioplug" displaySplashScreen="1" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.10" defines="VersionCode=16" pluginDesc="Frequency content will gradually shift towards being centered on one frequency." pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPFM" jucerFormatVersion="1">
<JUCERPROJECT id="WPt5si" name="Frequency Magnet" projectType="audioplug" displaySplashScreen="1" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.11" defines="VersionCode=17" pluginDesc="Frequency content will gradually shift towards being centered on one frequency." pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPFM" jucerFormatVersion="1">
<MAINGROUP id="NNl5AK" name="Frequency Magnet">
<GROUP id="{C7CC9691-F182-4F70-85C0-972905B94E77}" name="Source">
<FILE id="k99sk5" name="PitchInfoParser.cpp" compile="1" resource="0" file="Source/PitchInfoParser.cpp"/>
Expand Down
4 changes: 4 additions & 0 deletions FrequencyMagnet/Source/FreqSlider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,7 @@ void FreqSlider::resized()
// freq.setBounds(0, y, getWidth(), getHeight() / 2);
freq.setBounds(0, y, getWidth(), getHeight() - y);
}

void FreqSlider::setRange (double newMin, double newMax, double newInt) {
freq.setRange(newMin, newMax, newInt);
}
1 change: 1 addition & 0 deletions FrequencyMagnet/Source/FreqSlider.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class FreqSlider : public Component

void paint (Graphics&) override;
void resized() override;
void setRange (double newMin, double newMax, double newInt);
private:
typedef AudioProcessorValueTreeState::SliderAttachment SliderAttachment;

Expand Down
9 changes: 9 additions & 0 deletions FrequencyMagnet/Source/FrequencyMagnetFFTProcessor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,15 @@ void FrequencyMagnetFFTProcessor::spectral_process(const PolarVector &in, PolarV
const float widthLimit = 1.f-pow(m_widthBias, 0.125f); // this is the lower limit for the width (less width, narrower band ... higher volume!)

int target_bin = (int)((m_freq / (float)this->getSampleRate()) * (float)m_fftSize);
if (target_bin > bins)
{
for(int i=0; i<bins; ++i)
{
out[i] = in[i];
}

return;
}
float width = m_width;
width = utilities::clip(width, widthLimit, 1.f);
width = pow(width, widthBias);
Expand Down
57 changes: 55 additions & 2 deletions FrequencyMagnet/Source/FrequencyMagnetParameters.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,37 @@
FrequencyMagnetParameters::FrequencyMagnetParameters(AudioProcessor * processor) : PluginParameters(processor) {

const String freqHertzLabel = "Hz";
const String shiftHertzLabel = " Hz";
const float minRangeDefault = 20.0f;
const float maxRangeDefault = 2000.0f;
const float increment = 1.0f;

createAndAddParameter(std::make_unique<AudioParameterFloat>(
ParameterID("magMinRange", 1),
"Frequency magnet minimum range",
NormalisableRange<float>(0, 20000, increment), minRangeDefault, "",
AudioProcessorParameter::Category::genericParameter,
[shiftHertzLabel](float v, int) { return String(v, 2) + shiftHertzLabel; },
[shiftHertzLabel](const String& text) { return text.dropLastCharacters(shiftHertzLabel.length()).getFloatValue(); }
));

createAndAddParameter(std::make_unique<AudioParameterFloat>(
ParameterID("magMaxRange", 1),
"Frequency magnet maximum range",
NormalisableRange<float>(0, 20000, increment), maxRangeDefault, "",
AudioProcessorParameter::Category::genericParameter,
[shiftHertzLabel](float v, int) { return String(v, 2) + shiftHertzLabel; },
[shiftHertzLabel](const String& text) { return text.dropLastCharacters(shiftHertzLabel.length()).getFloatValue(); }
));



createAndAddParameter(std::make_unique<AudioParameterFloat>(
ParameterID("freq", 1),
"Frequency",
NormalisableRange<float>(20.0f, 2000.0f), 800.0f, "",
AudioProcessorParameter::Category::genericParameter,
// [freqHertzLabel](float v, int) { return String(v, 2) + " " + freqHertzLabel; },
[freqHertzLabel](float v, int) { return PitchInfoParser::generateLabel(v);},
//[freqHertzLabel](const String& text) { return text.dropLastCharacters(freqHertzLabel.length()).getFloatValue(); }
[freqHertzLabel](const String& text) { return PitchInfoParser::parseFrequency(text.toStdString()); }
));

Expand Down Expand Up @@ -43,3 +66,33 @@ void FrequencyMagnetParameters::setFrequency(float frequency) {
void FrequencyMagnetParameters::setWidth(float width) {
getParameterAsValue("width").setValue(width);
}

void FrequencyMagnetParameters::updateValue(FreqSlider* frequencyMagSlider, double valueToUpdateTo)
{
AudioParameterFloat* freqParam = (AudioParameterFloat*)getParameter("freq");
float currentValue = (float)valueToUpdateTo;

const AudioParameterFloat* lowestValueParam = (AudioParameterFloat*)getParameter("magMinRange");
const AudioParameterFloat* highestValueParam = (AudioParameterFloat*)getParameter("magMaxRange");

float lowestValue = lowestValueParam->get();
float highestValue = highestValueParam->get();

if (lowestValue >= highestValue)
{
std::swap(lowestValue, highestValue);
}

if (currentValue < lowestValue) {
currentValue = lowestValue;
}

if (currentValue > highestValue) {
currentValue = highestValue;
}

freqParam->range.start = lowestValue;
freqParam->range.end = highestValue;
frequencyMagSlider->setRange(freqParam->range.start, freqParam->range.end, freqParam->range.interval);
freqParam->setValueNotifyingHost(freqParam->convertTo0to1(currentValue));
}
2 changes: 2 additions & 0 deletions FrequencyMagnet/Source/FrequencyMagnetParameters.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include "../../shared/PluginParameters.h"
#include "FreqSlider.h"

class FrequencyMagnetParameters : public PluginParameters {
public:
Expand All @@ -13,4 +14,5 @@ class FrequencyMagnetParameters : public PluginParameters {

void setFrequency(float frequency);
void setWidth(float width);
void updateValue(FreqSlider* frequencyMagSlider, double valueToUpdateTo);
};
22 changes: 22 additions & 0 deletions FrequencyMagnet/Source/SliderContainer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,29 @@ Array<PropertyComponent*> SliderContainer::getSettingsProperties()

Array<PropertyComponent*> settingsPropertyComponents;
settingsPropertyComponents.add(useLegacyHighFrequencyShiftMode);

const NormalisableRange<float> shiftDownRange = this->params->getParameterRange("magMinRange");
SliderPropertyComponent* shiftMinRangeValue = new SliderPropertyComponent(params->getParameterAsValue("magMinRange"), "Freq mag min", shiftDownRange.start, shiftDownRange.end, shiftDownRange.interval, shiftDownRange.skew);

const NormalisableRange<float> shiftUpRange = this->params->getParameterRange("magMaxRange");
SliderPropertyComponent* shiftMaxRangeValue = new SliderPropertyComponent(params->getParameterAsValue("magMaxRange"), "Freq mag max", shiftUpRange.start, shiftUpRange.end, shiftUpRange.interval, shiftUpRange.skew);

settingsPropertyComponents.add(shiftMinRangeValue);
settingsPropertyComponents.add(shiftMaxRangeValue);
settingsPropertyComponents.addArray(ParameterContainerComponent::getSettingsProperties());

return settingsPropertyComponents;
}

void SliderContainer::onPropertiesChanged()
{
AudioParameterFloat* freqParam = (AudioParameterFloat*)this->params->getParameter("freq");
this->params->updateValue(&freqSlider, freqParam->get());
}

void SliderContainer::onAudioValueTreeStateLoadedFromXmlState(PluginParameters*, XmlElement* xmlState)
{
AudioParameterFloat* shiftParam = (AudioParameterFloat*)this->params->getParameter("freq");
const double originalShiftValue = xmlState->getChildByAttribute("id", "freq")->getDoubleAttribute("value", shiftParam->get());
this->params->updateValue(&freqSlider, originalShiftValue);
}
2 changes: 2 additions & 0 deletions FrequencyMagnet/Source/SliderContainer.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ class SliderContainer : public ParameterContainerComponent
void paint (Graphics&) override;
void resized() override;
Array<PropertyComponent*> getSettingsProperties() override;
void onPropertiesChanged() override;
void onAudioValueTreeStateLoadedFromXmlState(PluginParameters* newState, XmlElement* xmlState) override;

private:
FreqSlider freqSlider;
Expand Down
2 changes: 1 addition & 1 deletion FrequencyShift/FrequencyShift.jucer
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT id="WPt5si" name="Frequency Shifter" projectType="audioplug" displaySplashScreen="1" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.10" defines="VersionCode=16" pluginDesc="Shifts frequencies up and down" pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPFS" jucerFormatVersion="1">
<JUCERPROJECT id="WPt5si" name="Frequency Shifter" projectType="audioplug" displaySplashScreen="1" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.11" defines="VersionCode=17" pluginDesc="Shifts frequencies up and down" pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPFS" jucerFormatVersion="1">
<MAINGROUP id="NNl5AK" name="Frequency Shifter">
<GROUP id="{C7CC9691-F182-4F70-85C0-972905B94E77}" name="Source">
<FILE id="HJgauP" name="FrequencyShiftPluginParameters.cpp" compile="1" resource="0" file="Source/FrequencyShiftPluginParameters.cpp"/>
Expand Down
8 changes: 8 additions & 0 deletions FrequencyShift/Source/FrequencyShiftAudioPlugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ class Factory : public SpectralAudioPlugin::DependencyFactory {
// This creates new instances of the plugin..
AudioProcessor* JUCE_CALLTYPE createPluginFilter()
{
// To debug AUval
//#if DEBUG
// while (!Process::isRunningUnderDebugger())
// {
// Thread::sleep(250);
// }
//#endif

return new SpectralAudioPlugin(
new Factory()
);
Expand Down
14 changes: 6 additions & 8 deletions FrequencyShift/Source/FrequencyShiftInteractor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,11 @@ std::unique_ptr<StandardFFTProcessor> FrequencyShiftInteractor::createSpectralPr

float FrequencyShiftInteractor::getShift()
{
{
if (m_shift != nullptr) {
return *m_shift;
}
else {
return 0.0;
}
}
if (m_shift != nullptr) {
return *m_shift;
}
else {
return 0.0;
}
}

1 change: 0 additions & 1 deletion FrequencyShift/Source/FrequencySlider.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ class FrequencySlider : public ParameterContainerComponent
void onPropertiesChanged() override;
void onAudioValueTreeStateLoadedFromXmlState(PluginParameters* newState, XmlElement* xmlState) override;


private:
typedef AudioProcessorValueTreeState::SliderAttachment SliderAttachment;
Slider frequencyShift;
Expand Down
4 changes: 3 additions & 1 deletion Morph/Morph.jucer
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT id="WPt5si" name="Morph" projectType="audioplug" displaySplashScreen="1" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.10" defines="VersionCode=16" pluginDesc="Manipulate the shape of the frequency content" pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPMO" jucerFormatVersion="1">
<JUCERPROJECT id="WPt5si" name="Morph" projectType="audioplug" displaySplashScreen="1" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.11" defines="VersionCode=17" pluginDesc="Manipulate the shape of the frequency content" pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPMO" jucerFormatVersion="1">
<MAINGROUP id="NNl5AK" name="Morph">
<GROUP id="{C7CC9691-F182-4F70-85C0-972905B94E77}" name="Source">
<FILE id="ZD3sxq" name="ControlPoints.h" compile="0" resource="0" file="Source/ControlPoints.h"/>
Expand All @@ -24,6 +24,8 @@
<FILE id="uXqO3H" name="LicensesComponent.h" compile="0" resource="0" file="../shared/components/LicensesComponent.h"/>
<FILE id="CxupVI" name="Spline.cpp" compile="1" resource="0" file="../shared/components/Spline.cpp"/>
<FILE id="GCHJPY" name="Spline.h" compile="0" resource="0" file="../shared/components/Spline.h"/>
<FILE id="qUN5vk" name="SplineHelper.cpp" compile="1" resource="0" file="../shared/components/SplineHelper.cpp"/>
<FILE id="A3ZpY1" name="SplineHelper.h" compile="0" resource="0" file="../shared/components/SplineHelper.h"/>
</GROUP>
<FILE id="UNPTWI" name="SpectralAudioProcessorInteractor.cpp" compile="1" resource="0" file="../shared/SpectralAudioProcessorInteractor.cpp"/>
<FILE id="ghpeV9" name="SpectralAudioProcessorInteractor.h" compile="0" resource="0" file="../shared/SpectralAudioProcessorInteractor.h"/>
Expand Down
2 changes: 1 addition & 1 deletion PhaseLock/PhaseLock.jucer
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT id="WPt5si" name="Phase Lock" projectType="audioplug" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.10" defines="VersionCode=16" pluginDesc="Locks the phase and/or locks the frequency" pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPPL" jucerFormatVersion="1" displaySplashScreen="1">
<JUCERPROJECT id="WPt5si" name="Phase Lock" projectType="audioplug" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.11" defines="VersionCode=17" pluginDesc="Locks the phase and/or locks the frequency" pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPPL" jucerFormatVersion="1" displaySplashScreen="1">
<MAINGROUP id="NNl5AK" name="Phase Lock">
<GROUP id="{C7CC9691-F182-4F70-85C0-972905B94E77}" name="Source">
<FILE id="GftT5o" name="TransitionState.cpp" compile="1" resource="0" file="Source/TransitionState.cpp"/>
Expand Down
7 changes: 7 additions & 0 deletions PhaseLock/Source/PhaseLockAudioPlugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,12 @@ class Factory : public SpectralAudioPlugin::DependencyFactory {
// This creates new instances of the plugin..
AudioProcessor* JUCE_CALLTYPE createPluginFilter()
{
// To debug AUval
//#if DEBUG
// while (!Process::isRunningUnderDebugger())
// {
// Thread::sleep(250);
// }
//#endif
return new SpectralAudioPlugin(new Factory());
}
2 changes: 1 addition & 1 deletion Playground/Playground.jucer
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT id="WPt5si" name="Playground" projectType="audioplug" displaySplashScreen="1" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.10" defines="VersionCode=16" pluginDesc="This plugin will scramble the frequency components of a signal at a provided range and rate." pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="AAAA" jucerFormatVersion="1">
<JUCERPROJECT id="WPt5si" name="Playground" projectType="audioplug" displaySplashScreen="1" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.11" defines="VersionCode=17" pluginDesc="This plugin will scramble the frequency components of a signal at a provided range and rate." pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="AAAA" jucerFormatVersion="1">
<MAINGROUP id="NNl5AK" name="Playground">
<GROUP id="{E11A4544-C473-A9D8-27C6-3240AE094866}" name="Source">
<FILE id="zMoi62" name="PlaygroundAudioPlugin.cpp" compile="1" resource="0" file="PlaygroundAudioPlugin.cpp"/>
Expand Down
2 changes: 1 addition & 1 deletion SinusoidalShapedFilter/SSF.jucer
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT id="WPt5si" name="Sinusoidal Shaped Filter" displaySplashScreen="1" projectType="audioplug" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.10" defines="VersionCode=16" pluginDesc="Filters the frequency components by applying a sinusoudal shape over the spectrum." pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPSS" jucerFormatVersion="1">
<JUCERPROJECT id="WPt5si" name="Sinusoidal Shaped Filter" displaySplashScreen="1" projectType="audioplug" pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn" version="2.1.11" defines="VersionCode=17" pluginDesc="Filters the frequency components by applying a sinusoudal shape over the spectrum." pluginFormats="buildAU,buildVST3" companyName="Stepwise" companyCopyright="2021" companyWebsite="www.andrewreeman.com" companyEmail="andrew.reeman@gmail.com" pluginManufacturerCode="STPW" pluginCode="SPSS" jucerFormatVersion="1">
<MAINGROUP id="NNl5AK" name="Sinusoidal Shaped Filter">
<GROUP id="{C7CC9691-F182-4F70-85C0-972905B94E77}" name="Source">
<FILE id="X7zsdn" name="SSFInteractor.cpp" compile="1" resource="0" file="Source/SSFInteractor.cpp"/>
Expand Down
7 changes: 7 additions & 0 deletions SinusoidalShapedFilter/Source/SSFAudioPlugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,12 @@ class Factory : public SpectralAudioPlugin::DependencyFactory {
// This creates new instances of the plugin..
AudioProcessor* JUCE_CALLTYPE createPluginFilter()
{
// To debug AUval
//#if DEBUG
// while (!Process::isRunningUnderDebugger())
// {
// Thread::sleep(250);
// }
//#endif
return new SpectralAudioPlugin(new Factory());
}
4 changes: 4 additions & 0 deletions SinusoidalShapedFilter/Source/SSFInteractor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,9 @@ std::unique_ptr<StandardFFTProcessor> SSFInteractor::createSpectralProcess(
}

void SSFInteractor::onFftSizeChanged(){
if(m_wavetable == nullptr) {
m_wavetable = std::make_shared<Table<float> >(getFftSize() / 2, 1, 1);
}

m_wavetable->resize(getFftSize() / 2);
}
Loading

0 comments on commit 855aef6

Please sign in to comment.