Prepare to allow adding offline rendering feature
This commit is contained in:
parent
13d03ecaeb
commit
47638ba0c6
@ -294,5 +294,3 @@ inline bool is_in_range(T val, T start, T end)
|
|||||||
{
|
{
|
||||||
return val >= start && val <= end;
|
return val >= start && val <= end;
|
||||||
}
|
}
|
||||||
|
|
||||||
//#define SOUNDRANGE_OFFSET_ENABLED
|
|
||||||
|
@ -143,9 +143,7 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor()
|
|||||||
m_inchansparam = new AudioParameterInt("numinchans0", "Num ins", 2, 8, 2); // 32
|
m_inchansparam = new AudioParameterInt("numinchans0", "Num ins", 2, 8, 2); // 32
|
||||||
addParameter(m_inchansparam); // 32
|
addParameter(m_inchansparam); // 32
|
||||||
addParameter(new AudioParameterBool("bypass_stretch0", "Bypass stretch", false)); // 33
|
addParameter(new AudioParameterBool("bypass_stretch0", "Bypass stretch", false)); // 33
|
||||||
#ifdef SOUNDRANGE_OFFSET_ENABLED
|
|
||||||
addParameter(new AudioParameterFloat("playrangeoffset_0", "Play offset", 0.0f, 1.0f, 0.0f)); // 33
|
|
||||||
#endif
|
|
||||||
auto& pars = getParameters();
|
auto& pars = getParameters();
|
||||||
for (const auto& p : pars)
|
for (const auto& p : pars)
|
||||||
m_reset_pars.push_back(p->getValue());
|
m_reset_pars.push_back(p->getValue());
|
||||||
@ -385,6 +383,34 @@ void PaulstretchpluginAudioProcessor::setParameters(const std::vector<double>& p
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PaulstretchpluginAudioProcessor::updateStretchParametersFromPluginParameters(ProcessParameters & pars)
|
||||||
|
{
|
||||||
|
pars.pitch_shift.cents = *getFloatParameter(cpi_pitchshift) * 100.0;
|
||||||
|
pars.freq_shift.Hz = *getFloatParameter(cpi_frequencyshift);
|
||||||
|
|
||||||
|
pars.spread.bandwidth = *getFloatParameter(cpi_spreadamount);
|
||||||
|
|
||||||
|
pars.compressor.power = *getFloatParameter(cpi_compress);
|
||||||
|
|
||||||
|
pars.harmonics.nharmonics = *getIntParameter(cpi_numharmonics);
|
||||||
|
pars.harmonics.freq = *getFloatParameter(cpi_harmonicsfreq);
|
||||||
|
pars.harmonics.bandwidth = *getFloatParameter(cpi_harmonicsbw);
|
||||||
|
pars.harmonics.gauss = getParameter(cpi_harmonicsgauss);
|
||||||
|
|
||||||
|
pars.octave.om2 = *getFloatParameter(cpi_octavesm2);
|
||||||
|
pars.octave.om1 = *getFloatParameter(cpi_octavesm1);
|
||||||
|
pars.octave.o0 = *getFloatParameter(cpi_octaves0);
|
||||||
|
pars.octave.o1 = *getFloatParameter(cpi_octaves1);
|
||||||
|
pars.octave.o15 = *getFloatParameter(cpi_octaves15);
|
||||||
|
pars.octave.o2 = *getFloatParameter(cpi_octaves2);
|
||||||
|
|
||||||
|
pars.filter.low = *getFloatParameter(cpi_filter_low);
|
||||||
|
pars.filter.high = *getFloatParameter(cpi_filter_high);
|
||||||
|
|
||||||
|
pars.tonal_vs_noise.bandwidth = *getFloatParameter(cpi_tonalvsnoisebw);
|
||||||
|
pars.tonal_vs_noise.preserve = *getFloatParameter(cpi_tonalvsnoisepreserve);
|
||||||
|
}
|
||||||
|
|
||||||
double PaulstretchpluginAudioProcessor::getSampleRateChecked()
|
double PaulstretchpluginAudioProcessor::getSampleRateChecked()
|
||||||
{
|
{
|
||||||
if (m_cur_sr < 1.0)
|
if (m_cur_sr < 1.0)
|
||||||
@ -534,48 +560,15 @@ void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, M
|
|||||||
m_stretch_source->setRate(*getFloatParameter(cpi_stretchamount));
|
m_stretch_source->setRate(*getFloatParameter(cpi_stretchamount));
|
||||||
m_stretch_source->setPreviewDry(*getBoolParameter(cpi_bypass_stretch));
|
m_stretch_source->setPreviewDry(*getBoolParameter(cpi_bypass_stretch));
|
||||||
setFFTSize(*getFloatParameter(cpi_fftsize));
|
setFFTSize(*getFloatParameter(cpi_fftsize));
|
||||||
m_ppar.pitch_shift.cents = *getFloatParameter(cpi_pitchshift) * 100.0;
|
|
||||||
m_ppar.freq_shift.Hz = *getFloatParameter(cpi_frequencyshift);
|
|
||||||
|
|
||||||
m_ppar.spread.bandwidth = *getFloatParameter(cpi_spreadamount);
|
updateStretchParametersFromPluginParameters(m_ppar);
|
||||||
|
|
||||||
m_ppar.compressor.power = *getFloatParameter(cpi_compress);
|
|
||||||
|
|
||||||
m_ppar.harmonics.nharmonics = *getIntParameter(cpi_numharmonics);
|
|
||||||
m_ppar.harmonics.freq = *getFloatParameter(cpi_harmonicsfreq);
|
|
||||||
m_ppar.harmonics.bandwidth = *getFloatParameter(cpi_harmonicsbw);
|
|
||||||
m_ppar.harmonics.gauss = getParameter(cpi_harmonicsgauss);
|
|
||||||
|
|
||||||
m_ppar.octave.om2 = *getFloatParameter(cpi_octavesm2);
|
|
||||||
m_ppar.octave.om1 = *getFloatParameter(cpi_octavesm1);
|
|
||||||
m_ppar.octave.o0 = *getFloatParameter(cpi_octaves0);
|
|
||||||
m_ppar.octave.o1 = *getFloatParameter(cpi_octaves1);
|
|
||||||
m_ppar.octave.o15 = *getFloatParameter(cpi_octaves15);
|
|
||||||
m_ppar.octave.o2 = *getFloatParameter(cpi_octaves2);
|
|
||||||
|
|
||||||
m_ppar.filter.low = *getFloatParameter(cpi_filter_low);
|
|
||||||
m_ppar.filter.high = *getFloatParameter(cpi_filter_high);
|
|
||||||
|
|
||||||
m_ppar.tonal_vs_noise.bandwidth = *getFloatParameter(cpi_tonalvsnoisebw);
|
|
||||||
m_ppar.tonal_vs_noise.preserve = *getFloatParameter(cpi_tonalvsnoisepreserve);
|
|
||||||
m_stretch_source->setOnsetDetection(*getFloatParameter(cpi_onsetdetection));
|
m_stretch_source->setOnsetDetection(*getFloatParameter(cpi_onsetdetection));
|
||||||
m_stretch_source->setLoopXFadeLength(*getFloatParameter(cpi_loopxfadelen));
|
m_stretch_source->setLoopXFadeLength(*getFloatParameter(cpi_loopxfadelen));
|
||||||
double t0 = *getFloatParameter(cpi_soundstart);
|
double t0 = *getFloatParameter(cpi_soundstart);
|
||||||
double t1 = *getFloatParameter(cpi_soundend);
|
double t1 = *getFloatParameter(cpi_soundend);
|
||||||
sanitizeTimeRange(t0, t1);
|
sanitizeTimeRange(t0, t1);
|
||||||
#ifdef SOUNDRANGE_OFFSET_ENABLED
|
|
||||||
if (m_cur_playrangeoffset != (*getFloatParameter(cpi_playrangeoffset)))
|
|
||||||
{
|
|
||||||
double prlen = t1 - t0;
|
|
||||||
m_cur_playrangeoffset = jlimit<float>(0.0f,1.0f-prlen,(float)*getFloatParameter(cpi_playrangeoffset));
|
|
||||||
t0 = m_cur_playrangeoffset;
|
|
||||||
t1 = t0 + prlen;
|
|
||||||
sanitizeTimeRange(t0, t1);
|
|
||||||
getFloatParameter(cpi_soundstart)->setValueNotifyingHost(t0);
|
|
||||||
getFloatParameter(cpi_soundend)->setValueNotifyingHost(t1);
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
m_stretch_source->setPlayRange({ t0,t1 }, true);
|
m_stretch_source->setPlayRange({ t0,t1 }, true);
|
||||||
m_stretch_source->setFreezing(getParameter(cpi_freeze));
|
m_stretch_source->setFreezing(getParameter(cpi_freeze));
|
||||||
m_stretch_source->setPaused(getParameter(cpi_pause_enabled));
|
m_stretch_source->setPaused(getParameter(cpi_pause_enabled));
|
||||||
|
@ -206,6 +206,7 @@ private:
|
|||||||
int m_cur_program = 0;
|
int m_cur_program = 0;
|
||||||
void setParameters(const std::vector<double>& pars);
|
void setParameters(const std::vector<double>& pars);
|
||||||
float m_cur_playrangeoffset = 0.0;
|
float m_cur_playrangeoffset = 0.0;
|
||||||
|
void updateStretchParametersFromPluginParameters(ProcessParameters& pars);
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessor)
|
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessor)
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user