Almost getting there but some still is still messed up...

This commit is contained in:
xenakios 2018-04-26 23:07:08 +03:00
parent a4a8f99f0b
commit c8f865dd4a
5 changed files with 47 additions and 4 deletions

View File

@ -78,6 +78,10 @@ void StretchAudioSource::setSpectrumProcessOrder(std::vector<SpectrumProcess> or
for (int i = 0; i < order.size(); ++i)
m_specprocmap[i] = order[i].m_index;
m_specproc_order = order;
Logger::writeToLog("<**");
for (auto& e : m_specproc_order)
Logger::writeToLog(e.m_enabled->name + " " + String(e.m_index));
Logger::writeToLog("**>");
for (int i = 0; i < m_stretchers.size(); ++i)
{
m_stretchers[i]->m_spectrum_processes = order;
@ -170,6 +174,7 @@ void StretchAudioSource::setMainVolume(double decibels)
}
}
#ifdef OLDMODULE_ENAB
void StretchAudioSource::setSpectralModulesEnabled(const std::array<AudioParameterBool*, 9>& params)
{
jassert(m_specprocmap.size() > 0);
@ -202,7 +207,17 @@ void StretchAudioSource::setSpectralModulesEnabled(const std::array<AudioParamet
m_cs.exit();
}
}
#endif
void StretchAudioSource::setSpectralModuleEnabled(int index, bool b)
{
Logger::writeToLog(String(index));
ScopedLock locker(m_cs);
for (int i = 0; i < m_stretchers.size(); ++i)
{
m_stretchers[i]->m_spectrum_processes = m_specproc_order;
}
++m_param_change_count;
}
void StretchAudioSource::setLoopXFadeLength(double lenseconds)
{
if (lenseconds == m_loopxfadelen)

View File

@ -99,7 +99,8 @@ public:
void setAudioBufferAsInputSource(AudioBuffer<float>* buf, int sr, int len);
void setMainVolume(double decibels);
double getMainVolume() const { return m_main_volume; }
void setSpectralModulesEnabled(const std::array<AudioParameterBool*, 9>& params);
//void setSpectralModulesEnabled(const std::array<AudioParameterBool*, 9>& params);
void setSpectralModuleEnabled(int index, bool b);
void setLoopXFadeLength(double lenseconds);
double getLoopXFadeLengtj() const { return m_loopxfadelen; }
void setPreviewDry(bool b);

View File

@ -995,7 +995,17 @@ void SpectralChainEditor::mouseDown(const MouseEvent & ev)
juce::Rectangle<int> r(box_w*m_cur_index, 1, 12, 12);
if (r.contains(ev.x, ev.y))
{
for (int i = 0; i < m_order.size(); ++i)
{
if (m_order[i].m_index == m_cur_index)
{
//Logger::writeToLog("SpectralChainEditor::mouseDown "+m_order[i].m_enabled->name);
//return;
}
}
toggleBool(m_order[m_cur_index].m_enabled);
Logger::writeToLog("SpectralChainEditor::mouseDown " + m_order[m_cur_index].m_enabled->name);
//m_src->setSpectrumProcessOrder(m_order);
//if (ModuleOrderOrEnabledChangedCallback)
// ModuleOrderOrEnabledChangedCallback();

View File

@ -90,6 +90,7 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor()
m_sm_enab_pars[7] = new AudioParameterBool("enab_specmodule7", "Enable free filter", true);
m_sm_enab_pars[8] = new AudioParameterBool("enab_specmodule8", "Enable compressor", false);
m_stretch_source = std::make_unique<StretchAudioSource>(2, m_afm,m_sm_enab_pars);
m_stretch_source->setOnsetDetection(0.0);
@ -157,6 +158,7 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor()
for (int i = 0; i < 9; ++i) // 41-49
{
addParameter(m_sm_enab_pars[i]);
m_sm_enab_pars[i]->addListener(this);
}
addParameter(make_floatpar("octavemix_extra0_0", "Ratio mix 7 level", 0.0f, 1.0f, 0.0f, 0.001, 1.0)); // 50
@ -362,6 +364,18 @@ void PaulstretchpluginAudioProcessor::changeProgramName (int index, const String
{
}
void PaulstretchpluginAudioProcessor::parameterValueChanged(int parameterIndex, float newValue)
{
if (parameterIndex >= cpi_enable_spec_module0 && parameterIndex <= cpi_enable_spec_module8)
{
m_stretch_source->setSpectralModuleEnabled(parameterIndex - cpi_enable_spec_module0, newValue >= 0.5);
}
}
void PaulstretchpluginAudioProcessor::parameterGestureChanged(int parameterIndex, bool gestureIsStarting)
{
}
void PaulstretchpluginAudioProcessor::setFFTSize(double size)
{
if (m_prebuffer_amount == 5)
@ -663,7 +677,7 @@ void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, M
m_free_filter_envelope->m_transform_y_random_rate = *getIntParameter(cpi_freefilter_randomy_rate);
m_free_filter_envelope->m_transform_y_random_amount = *getFloatParameter(cpi_freefilter_randomy_amount);
m_stretch_source->setSpectralModulesEnabled(m_sm_enab_pars);
//m_stretch_source->setSpectralModulesEnabled(m_sm_enab_pars);
m_stretch_source->setMainVolume(*getFloatParameter(cpi_main_volume));
m_stretch_source->setRate(*getFloatParameter(cpi_stretchamount));

View File

@ -115,7 +115,7 @@ public:
class PaulstretchpluginAudioProcessorEditor;
class PaulstretchpluginAudioProcessor : public AudioProcessor,
public MultiTimer, public VSTCallbackHandler
public MultiTimer, public VSTCallbackHandler, public AudioProcessorParameter::Listener
{
public:
using EditorType = PaulstretchpluginAudioProcessorEditor;
@ -152,6 +152,9 @@ public:
const String getProgramName (int index) override;
void changeProgramName (int index, const String& newName) override;
void parameterValueChanged(int parameterIndex, float newValue) override;
void parameterGestureChanged(int parameterIndex, bool gestureIsStarting) override;
//==============================================================================
void getStateInformation (MemoryBlock& destData) override;
void setStateInformation (const void* data, int sizeInBytes) override;