From 605852d85301571b3ecbf607816ceb5381ed8e4d Mon Sep 17 00:00:00 2001 From: xenakios Date: Sun, 11 Nov 2018 14:06:18 +0200 Subject: [PATCH] Use enum for spectral processing module type --- Source/PS_Source/ProcessedStretch.cpp | 23 +++++++++-------------- Source/PS_Source/ProcessedStretch.h | 17 +++++++++++++++-- Source/PS_Source/StretchSource.cpp | 2 +- Source/PluginProcessor.cpp | 2 +- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/Source/PS_Source/ProcessedStretch.cpp b/Source/PS_Source/ProcessedStretch.cpp index 3307cd8..78d28a8 100644 --- a/Source/PS_Source/ProcessedStretch.cpp +++ b/Source/PS_Source/ProcessedStretch.cpp @@ -30,8 +30,6 @@ ProcessedStretch::ProcessedStretch(REALTYPE rap_,int in_bufsize_,FFTWindow w,boo ProcessedStretch::~ProcessedStretch() { - -// delete [] fbfreq; }; void ProcessedStretch::set_parameters(ProcessParameters *ppar) @@ -56,7 +54,6 @@ void ProcessedStretch::setBufferSize(int sz) m_sumfreq = floatvector(nfreq); m_tmpfreq1 = floatvector(nfreq); m_tmpfreq2 = floatvector(nfreq); - //fbfreq=new REALTYPE[nfreq]; m_free_filter_freqs = floatvector(nfreq); fill_container(m_free_filter_freqs, 1.0f); } @@ -104,25 +101,23 @@ void ProcessedStretch::process_spectrum(REALTYPE *freq) for (auto& e : m_spectrum_processes) { spectrum_copy(nfreq, freq, m_infreq.data()); - if (e.m_index == 0 && *e.m_enabled == true) + if (e.m_index == SPT_Harmonics && *e.m_enabled == true) spectrum_do_harmonics(pars, m_tmpfreq1, nfreq, samplerate, m_infreq.data(), freq); - if (e.m_index == 1 && *e.m_enabled == true) + if (e.m_index == SPT_TonalVsNoise && *e.m_enabled == true) spectrum_do_tonal_vs_noise(pars,nfreq,samplerate,m_tmpfreq1, m_infreq.data(), freq); - if (e.m_index == 2 && *e.m_enabled == true) + if (e.m_index == SPT_FreqShift && *e.m_enabled == true) spectrum_do_freq_shift(pars,nfreq,samplerate,m_infreq.data(), freq); - if (e.m_index == 3 && *e.m_enabled == true) + if (e.m_index == SPT_PitchShift && *e.m_enabled == true) spectrum_do_pitch_shift(pars,nfreq,m_infreq.data(), freq, pow(2.0f, pars.pitch_shift.cents / 1200.0f)); - //if (e.m_index == 4 && *e.m_enabled == true) - // spectrum_do_octave(pars,nfreq,samplerate, m_sumfreq, m_tmpfreq1, m_infreq.data(), freq); - if (e.m_index == 4 && *e.m_enabled == true) + if (e.m_index == SPT_RatioMix && *e.m_enabled == true) spectrum_do_ratiomix(pars,nfreq,samplerate, m_sumfreq, m_tmpfreq1, m_infreq.data(), freq); - if (e.m_index == 5 && *e.m_enabled == true) + if (e.m_index == SPT_Spread && *e.m_enabled == true) spectrum_spread(nfreq,samplerate,m_tmpfreq1,m_infreq.data(), freq, pars.spread.bandwidth); - if (e.m_index == 6 && *e.m_enabled == true) + if (e.m_index == SPT_Filter && *e.m_enabled == true) spectrum_do_filter(pars,nfreq,samplerate,m_infreq.data(), freq); - if (e.m_index == 8 && *e.m_enabled == true) + if (e.m_index == SPT_Compressor && *e.m_enabled == true) spectrum_do_compressor(pars,nfreq, m_infreq.data(), freq); - if (e.m_index == 7 && *e.m_enabled == true) + if (e.m_index == SPT_FreeFilter && *e.m_enabled == true) spectrum_do_free_filter(m_free_filter_envelope, nfreq, samplerate, m_infreq.data(), freq); } }; diff --git a/Source/PS_Source/ProcessedStretch.h b/Source/PS_Source/ProcessedStretch.h index e1a68c1..0e3980c 100644 --- a/Source/PS_Source/ProcessedStretch.h +++ b/Source/PS_Source/ProcessedStretch.h @@ -471,13 +471,26 @@ inline void spectrum_do_free_filter(shared_envelope& env, int nfreq, double samp }; }; +enum SpectrumProcessType +{ + SPT_Harmonics = 0, + SPT_TonalVsNoise, + SPT_FreqShift, + SPT_PitchShift, + SPT_RatioMix, + SPT_Spread, + SPT_Filter, + SPT_FreeFilter, + SPT_Compressor, + SPT_Unknown = 1000 +}; class SpectrumProcess { public: SpectrumProcess() {} - SpectrumProcess(int index, AudioParameterBool* enabled) : m_index(index), m_enabled(enabled) {} - int m_index = -1; + SpectrumProcess(SpectrumProcessType index, AudioParameterBool* enabled) : m_index(index), m_enabled(enabled) {} + SpectrumProcessType m_index = SPT_Unknown; AudioParameterBool* m_enabled = nullptr; }; diff --git a/Source/PS_Source/StretchSource.cpp b/Source/PS_Source/StretchSource.cpp index 6e85205..ae7a67b 100644 --- a/Source/PS_Source/StretchSource.cpp +++ b/Source/PS_Source/StretchSource.cpp @@ -35,7 +35,7 @@ StretchAudioSource::StretchAudioSource(int initialnumoutchans, m_inputfile = std::make_unique(m_afm); for (int i = 0; i < enab_pars.size(); ++i) { - m_specproc_order.emplace_back(i, enab_pars[i]); + m_specproc_order.emplace_back((SpectrumProcessType)i, enab_pars[i]); } //m_specproc_order = { {0,false} , { 1, false} ,{2,true},{3,true},{4,true},{5,false},{6,true},{7,true},{8,false} }; setNumOutChannels(initialnumoutchans); diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index 4ddfb7e..7f39eda 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -291,7 +291,7 @@ void PaulstretchpluginAudioProcessor::setStateFromTree(ValueTree tree) for (int i = 0; i < ordersize; ++i) { int index = tree.getProperty("specorderb" + String(i)); - new_order.push_back({ index, old_order[index].m_enabled }); + new_order.push_back({ (SpectrumProcessType)index, old_order[index].m_enabled }); } m_stretch_source->setSpectrumProcessOrder(new_order); }