Finally added enabled buttons for the spectral steps.
This commit is contained in:
@ -109,21 +109,21 @@ void ProcessedStretch::process_spectrum(REALTYPE *freq)
|
||||
for (auto& e : m_spectrum_processes)
|
||||
{
|
||||
spectrum_copy(nfreq, freq, infreq.data());
|
||||
if (e == 0 && pars.harmonics.enabled)
|
||||
if (e.m_index == 0 && e.m_enabled == true)
|
||||
spectrum_do_harmonics(pars, tmpfreq1, nfreq, samplerate, infreq.data(), freq);
|
||||
if (e == 1 && pars.tonal_vs_noise.enabled)
|
||||
if (e.m_index == 1 && e.m_enabled == true)
|
||||
spectrum_do_tonal_vs_noise(pars,nfreq,samplerate,tmpfreq1, infreq.data(), freq);
|
||||
if (e == 2 && pars.freq_shift.enabled)
|
||||
if (e.m_index == 2 && e.m_enabled == true)
|
||||
spectrum_do_freq_shift(pars,nfreq,samplerate,infreq.data(), freq);
|
||||
if (e == 3 && pars.pitch_shift.enabled)
|
||||
if (e.m_index == 3 && e.m_enabled == true)
|
||||
spectrum_do_pitch_shift(pars,nfreq,infreq.data(), freq, pow(2.0f, pars.pitch_shift.cents / 1200.0f));
|
||||
if (e == 4 && pars.octave.enabled)
|
||||
if (e.m_index == 4 && e.m_enabled == true)
|
||||
spectrum_do_octave(pars,nfreq,samplerate, sumfreq, tmpfreq1, infreq.data(), freq);
|
||||
if (e == 5 && pars.spread.enabled)
|
||||
if (e.m_index == 5 && e.m_enabled == true)
|
||||
spectrum_spread(nfreq,samplerate,tmpfreq1,infreq.data(), freq, pars.spread.bandwidth);
|
||||
if (e == 6 && pars.filter.enabled)
|
||||
if (e.m_index == 6 && e.m_enabled == true)
|
||||
spectrum_do_filter(pars,nfreq,samplerate,infreq.data(), freq);
|
||||
if (e == 7 && pars.compressor.enabled)
|
||||
if (e.m_index == 7 && e.m_enabled == true)
|
||||
spectrum_do_compressor(pars,nfreq, infreq.data(), freq);
|
||||
}
|
||||
|
||||
@ -197,16 +197,3 @@ void ProcessedStretch::update_free_filter()
|
||||
*/
|
||||
};
|
||||
|
||||
std::vector<SpectrumProcess> make_spectrum_processes()
|
||||
{
|
||||
std::vector<SpectrumProcess> m_spectrum_processes;
|
||||
m_spectrum_processes.emplace_back("Harmonics",0);
|
||||
m_spectrum_processes.emplace_back("Tonal vs Noise",1);
|
||||
m_spectrum_processes.emplace_back("Frequency shift",2);
|
||||
m_spectrum_processes.emplace_back("Pitch shift",3);
|
||||
m_spectrum_processes.emplace_back("Octaves mix",4);
|
||||
m_spectrum_processes.emplace_back("Spread",5);
|
||||
m_spectrum_processes.emplace_back("Filter",6);
|
||||
m_spectrum_processes.emplace_back("Compressor",7);
|
||||
return m_spectrum_processes;
|
||||
}
|
||||
|
@ -440,16 +440,12 @@ inline void spectrum_do_filter(const ProcessParameters& pars, int nfreq, double
|
||||
class SpectrumProcess
|
||||
{
|
||||
public:
|
||||
SpectrumProcess() {}
|
||||
SpectrumProcess(String name, int index) :
|
||||
m_name(name), m_index(index) {}
|
||||
String m_name;
|
||||
SpectrumProcess() {}
|
||||
SpectrumProcess(int index, bool enabled) : m_index(index), m_enabled(enabled) {}
|
||||
int m_index = -1;
|
||||
private:
|
||||
bool m_enabled = true;
|
||||
};
|
||||
|
||||
std::vector<SpectrumProcess> make_spectrum_processes();
|
||||
|
||||
class ProcessedStretch final : public Stretch
|
||||
{
|
||||
public:
|
||||
@ -458,7 +454,7 @@ public:
|
||||
ProcessedStretch(REALTYPE rap_,int in_bufsize_,FFTWindow w=W_HAMMING,bool bypass_=false,REALTYPE samplerate_=44100.0f,int stereo_mode=0);
|
||||
~ProcessedStretch();
|
||||
void set_parameters(ProcessParameters *ppar);
|
||||
std::vector<int> m_spectrum_processes;
|
||||
std::vector<SpectrumProcess> m_spectrum_processes;
|
||||
void setBufferSize(int sz) override;
|
||||
private:
|
||||
REALTYPE get_stretch_multiplier(REALTYPE pos_percents) override;
|
||||
|
@ -12,7 +12,7 @@ StretchAudioSource::StretchAudioSource(int initialnumoutchans, AudioFormatManage
|
||||
m_resampler = std::make_unique<WDL_Resampler>();
|
||||
m_resampler_outbuf.resize(1024*1024);
|
||||
m_inputfile = std::make_unique<AInputS>(m_afm);
|
||||
m_specproc_order = { 0,1,2,3,4,5,6,7 };
|
||||
m_specproc_order = { {0,false} , { 1, false} ,{2,true},{3,true},{4,true},{5,true},{6,true},{7,true} };
|
||||
setNumOutChannels(initialnumoutchans);
|
||||
m_xfadetask.buffer.setSize(8, 65536);
|
||||
m_xfadetask.buffer.clear();
|
||||
@ -58,12 +58,12 @@ bool StretchAudioSource::isResampling()
|
||||
return (int)m_outsr!=m_inputfile->info.samplerate;
|
||||
}
|
||||
|
||||
std::vector<int> StretchAudioSource::getSpectrumProcessOrder()
|
||||
std::vector<SpectrumProcess> StretchAudioSource::getSpectrumProcessOrder()
|
||||
{
|
||||
return m_specproc_order;
|
||||
}
|
||||
|
||||
void StretchAudioSource::setSpectrumProcessOrder(std::vector<int> order)
|
||||
void StretchAudioSource::setSpectrumProcessOrder(std::vector<SpectrumProcess> order)
|
||||
{
|
||||
ScopedLock locker(m_cs);
|
||||
m_specproc_order = order;
|
||||
@ -920,12 +920,12 @@ bool MultiStretchAudioSource::isResampling()
|
||||
return getActiveStretchSource()->isResampling();
|
||||
}
|
||||
|
||||
std::vector<int> MultiStretchAudioSource::getSpectrumProcessOrder()
|
||||
std::vector<SpectrumProcess> MultiStretchAudioSource::getSpectrumProcessOrder()
|
||||
{
|
||||
return getActiveStretchSource()->getSpectrumProcessOrder();
|
||||
}
|
||||
|
||||
void MultiStretchAudioSource::setSpectrumProcessOrder(std::vector<int> order)
|
||||
void MultiStretchAudioSource::setSpectrumProcessOrder(std::vector<SpectrumProcess> order)
|
||||
{
|
||||
getActiveStretchSource()->setSpectrumProcessOrder(order);
|
||||
}
|
||||
|
@ -82,8 +82,8 @@ public:
|
||||
bool isLoopEnabled();
|
||||
bool hasReachedEnd();
|
||||
bool isResampling();
|
||||
std::vector<int> getSpectrumProcessOrder();
|
||||
void setSpectrumProcessOrder(std::vector<int> order);
|
||||
std::vector<SpectrumProcess> getSpectrumProcessOrder();
|
||||
void setSpectrumProcessOrder(std::vector<SpectrumProcess> order);
|
||||
void setFFTWindowingType(int windowtype);
|
||||
int getFFTWindowingType() { return m_fft_window_type; }
|
||||
std::pair<Range<double>,Range<double>> getFileCachedRangesNormalized();
|
||||
@ -135,7 +135,7 @@ private:
|
||||
std::unique_ptr<WDL_Resampler> m_resampler;
|
||||
std::vector<double> m_resampler_outbuf;
|
||||
CriticalSection m_cs;
|
||||
std::vector<int> m_specproc_order;
|
||||
std::vector<SpectrumProcess> m_specproc_order;
|
||||
bool m_stop_play_requested = false;
|
||||
double m_freeze_pos = 0.0;
|
||||
int64_t m_output_counter = 0;
|
||||
@ -199,8 +199,8 @@ public:
|
||||
void setLoopingEnabled(bool b);
|
||||
bool hasReachedEnd();
|
||||
bool isResampling();
|
||||
std::vector<int> getSpectrumProcessOrder();
|
||||
void setSpectrumProcessOrder(std::vector<int> order);
|
||||
std::vector<SpectrumProcess> getSpectrumProcessOrder();
|
||||
void setSpectrumProcessOrder(std::vector<SpectrumProcess> order);
|
||||
void setFFTWindowingType(int windowtype);
|
||||
std::pair<Range<double>, Range<double>> getFileCachedRangesNormalized();
|
||||
void setFreezing(bool b) { m_freezing = b; }
|
||||
|
Reference in New Issue
Block a user