Add harmonics processing parameters. Add harmonics processing visualization etc
This commit is contained in:
parent
75be994714
commit
b4502ba442
@ -104,9 +104,9 @@ void ProcessedStretch::process_spectrum(REALTYPE *freq)
|
|||||||
{
|
{
|
||||||
for (auto& e : m_spectrum_processes)
|
for (auto& e : m_spectrum_processes)
|
||||||
{
|
{
|
||||||
copy(freq, infreq.data());
|
spectrum_copy(nfreq, freq, infreq.data());
|
||||||
if (e == 0 && pars.harmonics.enabled)
|
if (e == 0 && pars.harmonics.enabled)
|
||||||
do_harmonics(infreq.data(), freq);
|
spectrum_do_harmonics(pars, tmpfreq1, nfreq, samplerate, infreq.data(), freq);
|
||||||
if (e == 1 && pars.tonal_vs_noise.enabled)
|
if (e == 1 && pars.tonal_vs_noise.enabled)
|
||||||
do_tonal_vs_noise(infreq.data(), freq);
|
do_tonal_vs_noise(infreq.data(), freq);
|
||||||
if (e == 2 && pars.freq_shift.enabled)
|
if (e == 2 && pars.freq_shift.enabled)
|
||||||
|
@ -188,6 +188,12 @@ inline REALTYPE profile(REALTYPE fi, REALTYPE bwi) {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inline void spectrum_copy(int nfreq, REALTYPE* freq1, REALTYPE* freq2)
|
||||||
|
{
|
||||||
|
for (int i = 0; i<nfreq; i++) freq2[i] = freq1[i];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
inline void spectrum_spread(int nfreq, double samplerate,
|
inline void spectrum_spread(int nfreq, double samplerate,
|
||||||
std::vector<REALTYPE>& tmpfreq1,
|
std::vector<REALTYPE>& tmpfreq1,
|
||||||
REALTYPE *freq1, REALTYPE *freq2, REALTYPE spread_bandwidth) {
|
REALTYPE *freq1, REALTYPE *freq2, REALTYPE spread_bandwidth) {
|
||||||
|
@ -192,7 +192,7 @@ class Stretch
|
|||||||
|
|
||||||
virtual void process_spectrum(REALTYPE *){};
|
virtual void process_spectrum(REALTYPE *){};
|
||||||
virtual REALTYPE get_stretch_multiplier(REALTYPE pos_percents);
|
virtual REALTYPE get_stretch_multiplier(REALTYPE pos_percents);
|
||||||
REALTYPE samplerate;
|
REALTYPE samplerate=0.0f;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -488,6 +488,9 @@ void SpectralVisualizer::setState(const ProcessParameters & pars, int nfreqs, do
|
|||||||
spectrum_do_freq_shift(pars, nfreqs, samplerate, m_freqs2.data(), m_freqs1.data());
|
spectrum_do_freq_shift(pars, nfreqs, samplerate, m_freqs2.data(), m_freqs1.data());
|
||||||
spectrum_do_compressor(pars, nfreqs, m_freqs1.data(), m_freqs2.data());
|
spectrum_do_compressor(pars, nfreqs, m_freqs1.data(), m_freqs2.data());
|
||||||
spectrum_spread(nfreqs, samplerate, m_freqs3, m_freqs2.data(), m_freqs1.data(), pars.spread.bandwidth);
|
spectrum_spread(nfreqs, samplerate, m_freqs3, m_freqs2.data(), m_freqs1.data(), pars.spread.bandwidth);
|
||||||
|
if (pars.harmonics.enabled)
|
||||||
|
spectrum_do_harmonics(pars, m_freqs3, nfreqs, samplerate, m_freqs1.data(), m_freqs2.data());
|
||||||
|
else spectrum_copy(nfreqs, m_freqs1.data(), m_freqs2.data());
|
||||||
Graphics g(m_img);
|
Graphics g(m_img);
|
||||||
g.fillAll(Colours::black);
|
g.fillAll(Colours::black);
|
||||||
g.setColour(Colours::white);
|
g.setColour(Colours::white);
|
||||||
@ -495,7 +498,7 @@ void SpectralVisualizer::setState(const ProcessParameters & pars, int nfreqs, do
|
|||||||
{
|
{
|
||||||
double binfreq = (samplerate / 2 / nfreqs)*i;
|
double binfreq = (samplerate / 2 / nfreqs)*i;
|
||||||
double xcor = jmap<double>(binfreq, 0.0, samplerate / 2.0, 0.0, getWidth());
|
double xcor = jmap<double>(binfreq, 0.0, samplerate / 2.0, 0.0, getWidth());
|
||||||
double ycor = getHeight()- jmap<double>(m_freqs1[i], 0.0, nfreqs/64, 0.0, getHeight());
|
double ycor = getHeight()- jmap<double>(m_freqs2[i], 0.0, nfreqs/128, 0.0, getHeight());
|
||||||
ycor = jlimit<double>(0.0, getHeight(), ycor);
|
ycor = jlimit<double>(0.0, getHeight(), ycor);
|
||||||
g.drawLine(xcor, getHeight(), xcor, ycor, 1.0);
|
g.drawLine(xcor, getHeight(), xcor, ycor, 1.0);
|
||||||
}
|
}
|
||||||
|
@ -97,6 +97,8 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor()
|
|||||||
addParameter(new AudioParameterFloat("spread0", "Frequency spread", 0.0f, 1.0f, 0.0f)); // 8
|
addParameter(new AudioParameterFloat("spread0", "Frequency spread", 0.0f, 1.0f, 0.0f)); // 8
|
||||||
addParameter(new AudioParameterFloat("compress0", "Compress", 0.0f, 1.0f, 0.0f)); // 9
|
addParameter(new AudioParameterFloat("compress0", "Compress", 0.0f, 1.0f, 0.0f)); // 9
|
||||||
addParameter(new AudioParameterFloat("loopxfadelen0", "Loop xfade length", 0.0f, 1.0f, 0.0f)); // 10
|
addParameter(new AudioParameterFloat("loopxfadelen0", "Loop xfade length", 0.0f, 1.0f, 0.0f)); // 10
|
||||||
|
addParameter(new AudioParameterFloat("numharmonics0", "Num harmonics", 0.0f, 100.0f, 0.0f)); // 11
|
||||||
|
addParameter(new AudioParameterFloat("harmonicsfreq0", "Harmonics base freq", 1.0f, 5000.0f, 100.0f)); // 12
|
||||||
}
|
}
|
||||||
|
|
||||||
PaulstretchpluginAudioProcessor::~PaulstretchpluginAudioProcessor()
|
PaulstretchpluginAudioProcessor::~PaulstretchpluginAudioProcessor()
|
||||||
@ -320,6 +322,9 @@ void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, M
|
|||||||
m_ppar.spread.enabled = *getFloatParameter(8) > 0.0f;
|
m_ppar.spread.enabled = *getFloatParameter(8) > 0.0f;
|
||||||
m_ppar.spread.bandwidth = *getFloatParameter(8);
|
m_ppar.spread.bandwidth = *getFloatParameter(8);
|
||||||
m_ppar.compressor.power = *getFloatParameter(9);
|
m_ppar.compressor.power = *getFloatParameter(9);
|
||||||
|
m_ppar.harmonics.enabled = *getFloatParameter(11)>=1.0;
|
||||||
|
m_ppar.harmonics.nharmonics = *getFloatParameter(11);
|
||||||
|
m_ppar.harmonics.freq = *getFloatParameter(12);
|
||||||
m_stretch_source->setLoopXFadeLength(*getFloatParameter(10));
|
m_stretch_source->setLoopXFadeLength(*getFloatParameter(10));
|
||||||
double t0 = *getFloatParameter(5);
|
double t0 = *getFloatParameter(5);
|
||||||
double t1 = *getFloatParameter(6);
|
double t1 = *getFloatParameter(6);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user